Linux USSD application is sought

darius2

Well-Known Member
Joined
Feb 27, 2009
Messages
122
Reaction score
0
Hi,

could you tell me if there is any working USSD application, shell script for Linux ?

I have got some xml modem chat examples, but I am not much experienced in modem chat in xml and have no idea what application supported it.

Darius
 
The problem is the modems do not always play nice with the LINUX scripts - I've looked into this at work and need to roll my own, just not getting time to do it though.

* The problem is the timeout sessions, and knowing how to reply to the feedback *
 
ok, lets try again, so you want a linux based application that will respond to USSD commands send from a mobile device to your modem?
No, he wants a Linux application that will send USSD commands to his network operator through his modem.
 

thanks,
already visited that place.

from Android project
http://www.google.com/codesearch/p?hl=en#3snSSQMlsl0/telephony/android_modem.c&q=ussd

/* see onRadioPowerOn() */
{ "%CPHS=1", NULL, NULL },
{ "%CTZV=1", NULL, NULL },

/* see onSIMReady() */
{ "+CSMS=1", "+CSMS: 1, 1, 1", NULL },
{ "+CNMI=1,2,2,1,1", NULL, NULL },

/* see requestRadioPower() */
{ "+CFUN=0", NULL, handleRadioPower },
{ "+CFUN=1", NULL, handleRadioPower },

/* see requestOrSendPDPContextList() */
{ "+CGACT?", "", handleListPDPContexts },

/* see requestOperator() */
{ "+COPS=3,0;+COPS?;+COPS=3,1;+COPS?;+COPS=3,2;+COPS?", NULL, handleRequestOperator },

/* see requestQueryNetworkSelectionMode() */
{ "!+COPS", NULL, handleOperatorSelection },

/* see requestGetCurrentCalls() */
{ "+CLCC", NULL, handleListCurrentCalls },

/* see requestWriteSmsToSim() */
{ "!+CMGW=", NULL, handleSendSMStoSIM },

/* see requestHangup() */
{ "!+CHLD=", NULL, handleHangup },

/* see requestSignalStrength() */
{ "+CSQ", "+CSQ: 7,99", NULL }, /* XXX: TODO: implement variable signal strength and error rates */

/* see requestRegistrationState() */
{ "!+CREG", NULL, handleNetworkRegistration },
{ "!+CGREG", NULL, handleNetworkRegistration },

/* see requestSendSMS() */
{ "!+CMGS=", NULL, handleSendSMS },

/* see requestSetupDefaultPDP() */
{ "%CPRIM=\"GMM\",\"CONFIG MULTISLOT_CLASS=<10>\"", NULL, NULL },
{ "%DATA=2,\"UART\",1,,\"SER\",\"UART\",0", NULL, NULL },

{ "!+CGDCONT=", NULL, handleDefinePDPContext },

{ "+CGQREQ=1", NULL, NULL },
{ "+CGQMIN=1", NULL, NULL },
{ "+CGEREP=1,0", NULL, NULL },
{ "+CGACT=1,0", NULL, NULL },
{ "D*99***1#", NULL, handleStartPDPContext },

/* see requestDial() */
{ "!D", NULL, handleDial }, /* the code says that success/error is ignored, the call state will
be polled through +CLCC instead */

/* see requestSMSAcknowledge() */
{ "+CNMA=1", NULL, NULL },
{ "+CNMA=2", NULL, NULL },

/* see requestSIM_IO() */
{ "!+CRSM=", NULL, handleSIM_IO },

/* see onRequest() */
{ "+CHLD=0", NULL, handleHangup },
{ "+CHLD=1", NULL, handleHangup },
{ "+CHLD=2", NULL, handleHangup },
{ "+CHLD=3", NULL, handleHangup },
{ "A", NULL, handleAnswer }, /* answer the call */
{ "H", NULL, handleAnswer }, /* user is busy */
{ "!+VTS=", NULL, handleSetDialTone },
{ "+CIMI", OPERATOR_HOME_MCCMNC "000000000", NULL }, /* request internation subscriber identification number */
{ "+CGSN", "000000000000000", NULL }, /* request model version */
{ "+CUSD=2",NULL, NULL }, /* Cancel USSD */
{ "+COPS=0", NULL, handleOperatorSelection }, /* set network selection to automatic */
{ "!+CMGD=", NULL, handleDeleteSMSonSIM }, /* delete SMS on SIM */
{ "!+CPIN=", NULL, handleChangeOrEnterPIN },

/* see getSIMStatus() */
{ "+CPIN?", NULL, handleSIMStatusReq },
{ "+CNMI?", "+CNMI: 1,2,2,1,1", NULL },

/* see isRadioOn() */
{ "+CFUN?", NULL, handleRadioPowerReq },

/* see initializeCallback() */
{ "E0Q0V1", NULL, NULL },
{ "S0=0", NULL, NULL },
{ "+CMEE=1", NULL, NULL },
{ "+CREG=2", NULL, handleNetworkRegistration },
{ "+CREG=1", NULL, handleNetworkRegistration },
{ "+CGREG=1", NULL, handleNetworkRegistration },
{ "+CCWA=1", NULL, NULL },
{ "+CMOD=0", NULL, NULL },
{ "+CMUT=0", NULL, NULL },
{ "+CSSN=0,1", NULL, NULL },
{ "+COLP=0", NULL, NULL },
{ "+CSCS=\"HEX\"", NULL, NULL },
{ "+CUSD=1", NULL, NULL },
{ "+CGEREP=1,0", NULL, NULL },
{ "+CMGF=0", NULL, handleEndOfInit }, /* now is a goof time to send the current tme and timezone */
{ "%CPI=3", NULL, NULL },
{ "%CSTAT=1", NULL, NULL },

/* end of list */

and more from Huawei forum

---
As with most 3G Modems AT+COPS only accepts 3 Parameters and though it will not work.
But those work:
GPRSONLY: AT^SYSCFG=13,1,3FFFFFFF,2,4
3GONLY: AT^SYSCFG=14,2,3FFFFFFF,2,4
GPRSPREF : AT^SYSCFG=2,1,3FFFFFFF,2,4
3GPREF: AT^SYSCFG=2,2,3FFFFFFF,2,4

This information was taken out of Vodafone Mobile Connect Software (Linux Version) Python Code.
------
 
Last edited:
Top
Sign up to the MyBroadband newsletter
X