Closed spidy0x0 closed 2 years ago
after the changing the command to 7-bit
*124#
--> 2A31323423
i get this output
Modem Sucessfully Opened
Modem Write: ATZ
Modem Received: ATZ
Activate Message Processing for: ATZ
Modem Received:
Modem Received: OK
Call callback for: ATZ
Modem Write: ATE1
Modem Received: ATE1
Activate Message Processing for: ATE1
Modem Received:
Modem Received: OK
Call callback for: ATE1
Modem Write: AT+CPIN?
Modem Received: AT+CPIN?
Activate Message Processing for: AT+CPIN?
Modem Received:
Modem Received: +CPIN: READY
Call callback for: AT+CPIN?
Modem Received:
Modem Received: OK
Modem Write: AT+CMEE=1;+CREG=2
Modem Received: AT+CMEE=1;+CREG=2
Activate Message Processing for: AT+CMEE=1;+CREG=2
Modem Received:
Modem Received: OK
Call callback for: AT+CMEE=1;+CREG=2
Modem Write: AT+CLIP=1
Modem Received: AT+CLIP=1
Activate Message Processing for: AT+CLIP=1
Modem Received:
Modem Received: OK
Call callback for: AT+CLIP=1
Modem Write: AT+CMGF=0
Modem Received: AT+CMGF=0
Activate Message Processing for: AT+CMGF=0
Modem Received:
Modem Received: OK
Call callback for: AT+CMGF=0
Modem Write: AT+CUSD=1,"2A31323423",15
set pdu msg: { status: 'success', request: 'modemMode', data: 'PDU_Mode' }
Modem Received: AT+CUSD=1,"2A31323423",15
Activate Message Processing for: AT+CUSD=1,"2A31323423",15
Modem Received:
Modem Received: OK
Call callback for: AT+CUSD=1,"2A31323423",15
Modem Write: AT+CNMI=2,1,0,2,1
{ status: 'success', request: 'ussd', data: 'OK' }
Modem Received: AT+CNMI=2,1,0,2,1
Activate Message Processing for: AT+CNMI=2,1,0,2,1
Modem Received:
Modem Received: OK
Call callback for: AT+CNMI=2,1,0,2,1
Modem Received:
Modem Received: +CUSD: 2
onNewIncomingUSSD {
data: {
status: 'Incoming USSD',
data: {
text: undefined,
follow: 'terminated by network',
followCode: '2'
}
}
}
i am not getting the balance message
After days of intense suffering, i found the solution.
first run this : AT+CSCS="IRA"
goto http://www.rednaxela.net/pdu.php
alphabet size: 7
enter USSD code (eg. *124#) , click convert
in the 2nd box, copy the third line
add it to your ussd section: AT+CUSD=1,"AA988C3602", 15
after getting the output in 7bit (CUSD=1,"xxxxxxxxxx..7bit"), copy it
goto http://smstools3.kekekasvi.com/topic.php?id=288
in the "USSD Entry/Display" section, select GSM 7bit packed
paste the result you had from the modem
click convert
after the changing the command to 7-bit *124# --> 2A31323423
the issue here is, i was using the 8-bit alphabet conversion. 7-bit solved the issue
to do this programmatically, use https://www.npmjs.com/package/ussd-pdu-text-converter
My full working ussd example
let serialportgsm = require('serialport-gsm')
const ussd = require('./node_modules/serialport-gsm/lib/functions/ussd.js');
let modem = serialportgsm.Modem();
ussd(modem);
const sleep = (waitTimeInMs) => new Promise(resolve => setTimeout(resolve, waitTimeInMs));
let options = {
baudRate: 115200,
dataBits: 8,
stopBits: 1,
parity: 'none',
rtscts: false,
xon: false,
xoff: false,
xany: false,
autoDeleteOnReceive: true,
enableConcatenation: true,
incomingCallIndication: true,
incomingSMSIndication: true,
pin: '',
customInitCommand: '',
cnmiCommand: 'AT+CNMI=2,1,0,2,1',
logger: console
}
modem.on('open', () => {
console.log(`\nModem Sucessfully Opened\n`);
modem.initializeModem(() => {
async function main() {
await modem.setModemMode(async (msg, err) => {
if (err) {
console.log(`Error Setting Modem Mode - ${err}`);
} else {
console.log(`Set Mode: ${JSON.stringify(msg)}`);
modem.executeCommand('AT+CSCS="IRA"', (result, err) => {
if (err) {
console.log(`Error - ${err}`);
} else {
console.log(`Result ${JSON.stringify(result)}`);
}
});
//*170#
let rootCmd = 'AAD80D3602';
try {
await modem.sendUSSD(rootCmd);
await sleep(3000); //sleep for 3secs
await modem.sendUSSD('31'); //response to request
} catch (err) {
console.error(err);
// handle the error here
}
}
}, 'PDU');
}
main();
modem.on('onNewIncomingUSSD', (data) => {
console.log('onNewIncomingUSSD ', {
data
});
})
});
})
modem.open('/dev/ttyUSB0', options);
hi, i am trying to make a simple ussd query to check balance and i have been struggling for hours. My brain hurts. this is my code
after running it,this is the output i get
is there anything i am doing wrong? Please help