Page tree
Skip to end of metadata
Go to start of metadata

SMS Gateway communication protocol

Communication line configuration
Communication station configuration
I/O tag configuration
Document revisions


SMS Gateway protocol supports:

  • sending SMS
  • receiving SMS
  • dialing calls
  • receiving calls

The implementation is based on the sending and processing of AT commands that are changed through asynchronous serial line.

Communication line configuration

Communication line category: Modem

Communication line parameters:

ParameterDefault valueMeaning
Name of communication port.
Init commandAT&F

AT command that reinitializes a device.
In case of some GSM modems (e.g. HUAWEI E3372) this command needs to be enhanced to  AT&F^CURC=0 so that the modem stops reporting signal levels (RSSI- Radio Signal Strength Indication) by sending spontaneous messages e.g.  <CR><LF>^RSSI:28<CR><LF>.

Dial commandATDAT command used when dialing of a telephone number.
Hangup+++~~~~ATHAT command to hang up the connection.
DTRCheckedDTR signal is used to hang up connection instead of AT command.

Communication station configuration

ParameterDefault valueMeaning
Trace Data
YESBoth received and sent data are written to log file.
PIN Code
0000PIN code of SIM card (GSM modem).
Use Semicolon
YESSemicolon is inserted at the end of ATD command.
Hang Up Incoming Call
YESEnable to hang up the incoming call in a defined time.
Hang Up Time
35 secDefines a duration of incoming call.
Delay Between Rings
3 secSome of the modems do not inform about change of status: "ringing -> received", "ringing -> hung up". In "ringing" status, the flags that indicates ringing are sent. If during the set interval the ringing is not indicated, status automat of protocol will change its status to "hang up". Zero disables to use this indication.
Outgoing Call Duration
3 secThe time after which the outgoing call is terminated.
Modem Is Ready Interval
600 secAfter elapsing of this time, the modem is reinitiated.
Acknowledgment of Receipt
YESIt switches receipts when sending SMS messages.
Service Center Address
+421905303303Phone number of service center for SMS messages.
O2: +421 949 909 909
Orange: +421 905 303 303
Telekom (T-Mobile): +421 903 333 000
Read From Modem SMS
60 secInterval of checking the received messages and receipts in modem.
Expect OK After Dial
YESIndicates whether a device sends the answer "OK" after dialing the phone number.

I/O tag configuration

I/O tags: Ci, Co, Di , Do, TxtI, TxtO

Value typeAddressMeaning
Outgoing calls
TxtOOUTGOINGTELNUMit sets the phone number of outgoing call.
TxtIOUTGOINGRESULTNUMBERThe protocol can send multiple requests to dial a phone number at the same time. These requests are saved to the list and they are dialed gradually. In the I/O tad, the value of the last dialed number is saved. Together with I/O tag with OUTGOINGRESULTFLAG address it informs about a result of call.
CoOUTGOINGRINGTIMEIt sets duration of outgoing call including the dialing. It can be used as trigger to start dialing. If the phone number (the value of I/O tag with BUSY address is TRUE) cannot be dialed at that time, the values of I/O tags keep in a queue and postponed for later processing.
DiOUTGOINGRESULTFLAGIt informs about the result of call. If outgoing call has been received, the value is TRUE, otherwise FALSE.
Incoming calls
TxtIINCOMMINGTELNUMContains the phone number of incoming call.
DiINCOMMINGRINGINGIt indicates that the incoming call is active. At a given moment the value INCOMMINGTELNUM is not valid yet.
Outgoing SMS messages
TxtOOUTGOINGSMSNUMBERSets the phone number to which SMS message will be sent.
TxtOOUTGOINGSMSIDIt keeps the value of own unique identifier of message. This value helps to find out whether the message could have been sent. It also couples the message receipts with the sent message.
TxtOOUTGOINGSMSBODYSets the text of SMS message. It is a trigger of sending the message, which means that its value must be set as the last. After starting the trigger, the values of necessary I/O tags are saved into the queue. SMS message is ready to send.
DiOUTGOINGSMSRESULTTogether with the identifier, which is set in I/O tag with address OUTGOINGSMSRESULTID it informs about the status of sending the SMS message.
TxtIOUTGOINGSMSRESULTIDIf there are multiple SMS messages in the queue, there is necessary, together with the identifier, which is set in I/O tag with address, to inform about the status of each SMS message.
Incoming SMS messages
TxtiINCOMMINGSMSNUMBERIt contains the phone number of received SMS message.
TxtiINCOMMINGSMSBODYIt contains the text of received SMS message.
CiINCOMMINGSMSTRIGGERINIf the new SMS message has been received, the value is incremented by 1. It may be used as the trigger of receiving the new SMS message.
CoINCOMMINGSMSTRIGGEROUTIt confirms the reading of SMS message. The value from the I/O tag with address INCOMMINGSMSTRIGGERIN is set up in this I/O tag.
SMS receipts
TxtIINCOMMINGRECEIPTIDIt keeps the unique identifier of SMS message, which was chosen during its sending.
CiINCOMMINGRECEIPTTRIGGERINIf the new SMS receipt has been received, the value is incremented by 1. The value of identifier INCOMMINGRECEIPTID is valid at the particular moment.
CoINCOMMINGRECEIPTTRIGGEROUTIt confirms the reading of SMS receipt. The value from the I/O tag with address INCOMMINGRECEIPTTRIGGERIN is set up in this I/O tag.
DiBUSYIt informs about modem status.

Document revisions

  • Ver. 1.0 – January 23, 2012 – Creation of document.
Write a comment…