I need to implement a simple application to send short notify messages on gsm phone display via a GSM modem.
I know that I can use the gsm USSD protocol to send messages instead of sms in order to speed up the delivery.
Lorenzo
USSD (Unstructured Supplementary Service Data) is a Global System for Mobile Communications (GSM) protocol that is used to send text messages. USSD is similar to Short Message Service (SMS).
Text=USSDBalance: USSD command #225# is sent, and the text of the original message (which could be blank) is used to prefix the text of the USSD response, and is treated as a received message.
To send an USSD request you need to send an SMS:TEXT message and you should put the USSD information into the recipient number (Figure 1). You can send USSD from the user interface and from any application for example you can use a database server to send USSD requests.
You need an USSD server/gateway in your mobile network operators environment, connected to the operators SS7 network. USSD messages can be sent either from mobile phone to USSD server or from USSD server to mobile phone. It is not possible to send an USSD message directly from one phone to another, you would need to relay the message via the USSD server.
USSD messages are not standardized, they are specific to the mobile network and the USSD-capable applications. However, there are some de-facto standard USSD messages understood by many HLRs for querying and configuring things like call forwarding.
USSD is transported via SS7 using the MAP protocol. The business logic implemented on top of MAP is bound to the actual protocol stack implementation. On the server side that could be hardware (interface cards) plus operating system drivers or software-only, e.g. a SIGTRAN-Stack, depending on the physical layer to be supported (E1, SDH over fiber, ATM or Ethernet). A sample application depends on the protocol stack it runs on. Look for sample applications from the vendor of your interface hardware or protocol stack. On the client side the USSD support is device-dependent, e.g. via J2ME JSR 120 "Wireless Messaging API".
USSD is not guaranteed to be delivered, especially not in roaming scenarios. That solely depends on your mobile network operator. If you do not have an agreement with the operator, he might firewall away your USSD messages, especially if he detects high volumes circumventing his pay-messaging services.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With