SMS()

Since 1.6.1.0 Applications Found this useful? Upvote it. ×

Communicates with SMS service centres and SMS capable analogue phones.

Last reviewed 2026-04-14

SMS(name[,options,addr,body])
Dialplan Builder -- build your SMS() command
The name of the queue used in `/var/spool/asterisk/sms`
Answer, i.e. send initial FSK packet.
Do not log any SMS content to log file (privacy).
The body should be coded as octets not 7-bit symbols.
Set the initial delay to N ms (default is `300`). addr and body are a deprecated format to send messages out.
Set the Status Report Request (SRR) bit.
Act as service centre talking to a phone.
Use protocol 2 (default used is protocol 1).
Full arguments reference
  • name required - The name of the queue used in /var/spool/asterisk/sms
  • options
    • a - Answer, i.e. send initial FSK packet.
    • s - Act as service centre talking to a phone.
    • t - Use protocol 2 (default used is protocol 1).
    • p - Set the initial delay to N ms (default is 300). addr and body are a deprecated format to send messages out.
    • r - Set the Status Report Request (SRR) bit.
    • o - The body should be coded as octets not 7-bit symbols.
    • n - Do not log any SMS content to log file (privacy).
  • addr
  • body
Description

SMS handles exchange of SMS data with a call to/from SMS capable phone or SMS PSTN service center. Can send and/or receive SMS messages. Works to ETSI ES 201 912; compatible with BT SMS PSTN service in UK and Telecom Italia in Italy. It has also been tested to work with DOMO phones from Telefónica Spain.

Typical usage is to use to handle calls from the SMS service centre CLI, or to set up a call using outgoing or manager interface to connect service centre to SMS().

"Messages are processed as per text file message queues. smsq (a separate software) is a command to generate message queues and send messages.

Note

The protocol has tight delay bounds. Please use short frames and disable/keep short the jitter buffer on the ATA to make sure that responses (ACK etc.) are received in time. It is also important to adjust the gain dB of the ATA. Some Telefónica DOMO Mensajes phones may require the gain to be set to +3dB, and others even up to +6dB, in order to work.

Arguments
  • name required - The name of the queue used in /var/spool/asterisk/sms
  • options
    • a - Answer, i.e. send initial FSK packet.
    • s - Act as service centre talking to a phone.
    • t - Use protocol 2 (default used is protocol 1).
    • p - Set the initial delay to N ms (default is 300). addr and body are a deprecated format to send messages out.
    • r - Set the Status Report Request (SRR) bit.
    • o - The body should be coded as octets not 7-bit symbols.
    • n - Do not log any SMS content to log file (privacy).
  • addr
  • body
User Notes

Know a tip or gotcha for this topic? Share it below and help others.

Contribute a note

Share a tip, gotcha, or practical example. Keep it under 2000 characters. No questions (use the Asterisk community forums for support). Wrap code in backticks.

Moderated before publishing. Email never shown.
Applications
MusicOnHold() ADSIProg() AELSub() AGI() AMD() AddQueueMember() AgentLogin() AgentRequest() AlarmReceiver() Answer() AttendedTransfer() AudioSocket() Authenticate() Background() BackgroundDetect() BlindTransfer() Bridge() BridgeAdd() BridgeWait() Broadcast() Busy() CELGenUserEvent() CallCompletionCancel() CallCompletionRequest() ChanIsAvail() ChanSpy() ChangeMonitor() ChannelRedirect() ClearHash() ConfBridge() ConfKick() Congestion() ContinueWhile() ControlPlayback() DAHDIAcceptR2Call() DAHDIRAS() DAHDIScan() DAHDISendCallreroutingFacility() DAHDISendKeypadFacility() DBdeltree() DISA() DateTime() DeadAGI() Dial() Dictate() Directory() DumpChan() EAGI() Echo() Else() ElseIf() EndIf() EndWhile() Exec() ExecIf() ExecIfTime() ExitIf() ExitWhile() ExtenSpy() ExternalIVR() Festival() Flash() FollowMe() ForkCDR() GetCPEID() Gosub() GosubIf() Goto() GotoIf() GotoIfTime() Hangup() HangupCauseClear() IAX2Provision() ICES() IVRDemo() If() ImportVar() Incomplete() JACK() JabberJoin() JabberLeave() JabberSend() JabberSendGroup() JabberStatus() Log() MP3Player() MSet() Macro() MacroExclusive() MacroExit() MacroIf() MailboxExists() MeetMe() MeetMeAdmin() MeetMeChannelAdmin() MeetMeCount() MessageSend() Milliwatt() MinivmAccMess() MinivmDelete() MinivmGreet() MinivmMWI() MinivmNotify() MinivmRecord() MixMonitor() Monitor() Morsecode() NBScat() NoCDR() NoOp() ODBCFinish() ODBC_Commit() ODBC_Rollback() OSPAuth() OSPFinish() OSPLookup() OSPNext() Originate() PJSIPHangup() PJSIPNotify() Page() Park() ParkAndAnnounce() ParkedCall() PauseMonitor() PauseQueueMember() Pickup() PickupChan() PlayTones() Playback() PrivacyManager() Proceeding() Progress() Queue() QueueLog() QueueUpdate() RaiseException() Read() ReadExten() ReceiveFAX() ReceiveMF() ReceiveSF() ReceiveText() Record() Reload() RemoveQueueMember() ResetCDR() RetryDial() Return() Ringing() SIPAddHeader() SIPDtmfMode() SIPRemoveHeader() SIPSendCustomINFO() SLAStation() SLATrunk() SMS() SayAlpha() SayAlphaCase() SayCountedAdj() SayCountedNoun() SayDigits() SayMoney() SayNumber() SayOrdinal() SayPhonetic() SayUnixTime() SendDTMF() SendFAX() SendImage() SendMF() SendSF() SendText() SendURL() Set() SetAMAFlags() Signal() SkelGuessNumber() SoftHangup() SpeechActivateGrammar() SpeechBackground() SpeechCreate() SpeechDeactivateGrammar() SpeechDestroy() SpeechLoadGrammar() SpeechProcessingSound() SpeechStart() SpeechUnloadGrammar() StackPop() StartMusicOnHold() Stasis() StatsD() StopMixMonitor() StopMonitor() StopMusicOnHold() StopPlayTones() StoreDTMF() StreamEcho() System() TestClient() TestServer() ToneScan() Transfer() TryExec() TrySystem() UnpauseMonitor() UnpauseQueueMember() UserEvent() VMAuthenticate() VMSayName() Verbose() VoiceMail() VoiceMailMain() VoiceMailPlayMsg() Wait() WaitDigit() WaitExten() WaitForCondition() WaitForNoise() WaitForRing() WaitForSignal() WaitForSilence() WaitForTone() WaitUntil() While() Zapateller()
Applications
MusicOnHold() ADSIProg() AELSub() AGI() AMD() AddQueueMember() AgentLogin() AgentRequest() AlarmReceiver() Answer() AttendedTransfer() AudioSocket() Authenticate() Background() BackgroundDetect() BlindTransfer() Bridge() BridgeAdd() BridgeWait() Broadcast() Busy() CELGenUserEvent() CallCompletionCancel() CallCompletionRequest() ChanIsAvail() ChanSpy() ChangeMonitor() ChannelRedirect() ClearHash() ConfBridge() ConfKick() Congestion() ContinueWhile() ControlPlayback() DAHDIAcceptR2Call() DAHDIRAS() DAHDIScan() DAHDISendCallreroutingFacility() DAHDISendKeypadFacility() DBdeltree() DISA() DateTime() DeadAGI() Dial() Dictate() Directory() DumpChan() EAGI() Echo() Else() ElseIf() EndIf() EndWhile() Exec() ExecIf() ExecIfTime() ExitIf() ExitWhile() ExtenSpy() ExternalIVR() Festival() Flash() FollowMe() ForkCDR() GetCPEID() Gosub() GosubIf() Goto() GotoIf() GotoIfTime() Hangup() HangupCauseClear() IAX2Provision() ICES() IVRDemo() If() ImportVar() Incomplete() JACK() JabberJoin() JabberLeave() JabberSend() JabberSendGroup() JabberStatus() Log() MP3Player() MSet() Macro() MacroExclusive() MacroExit() MacroIf() MailboxExists() MeetMe() MeetMeAdmin() MeetMeChannelAdmin() MeetMeCount() MessageSend() Milliwatt() MinivmAccMess() MinivmDelete() MinivmGreet() MinivmMWI() MinivmNotify() MinivmRecord() MixMonitor() Monitor() Morsecode() NBScat() NoCDR() NoOp() ODBCFinish() ODBC_Commit() ODBC_Rollback() OSPAuth() OSPFinish() OSPLookup() OSPNext() Originate() PJSIPHangup() PJSIPNotify() Page() Park() ParkAndAnnounce() ParkedCall() PauseMonitor() PauseQueueMember() Pickup() PickupChan() PlayTones() Playback() PrivacyManager() Proceeding() Progress() Queue() QueueLog() QueueUpdate() RaiseException() Read() ReadExten() ReceiveFAX() ReceiveMF() ReceiveSF() ReceiveText() Record() Reload() RemoveQueueMember() ResetCDR() RetryDial() Return() Ringing() SIPAddHeader() SIPDtmfMode() SIPRemoveHeader() SIPSendCustomINFO() SLAStation() SLATrunk() SMS() SayAlpha() SayAlphaCase() SayCountedAdj() SayCountedNoun() SayDigits() SayMoney() SayNumber() SayOrdinal() SayPhonetic() SayUnixTime() SendDTMF() SendFAX() SendImage() SendMF() SendSF() SendText() SendURL() Set() SetAMAFlags() Signal() SkelGuessNumber() SoftHangup() SpeechActivateGrammar() SpeechBackground() SpeechCreate() SpeechDeactivateGrammar() SpeechDestroy() SpeechLoadGrammar() SpeechProcessingSound() SpeechStart() SpeechUnloadGrammar() StackPop() StartMusicOnHold() Stasis() StatsD() StopMixMonitor() StopMonitor() StopMusicOnHold() StopPlayTones() StoreDTMF() StreamEcho() System() TestClient() TestServer() ToneScan() Transfer() TryExec() TrySystem() UnpauseMonitor() UnpauseQueueMember() UserEvent() VMAuthenticate() VMSayName() Verbose() VoiceMail() VoiceMailMain() VoiceMailPlayMsg() Wait() WaitDigit() WaitExten() WaitForCondition() WaitForNoise() WaitForRing() WaitForSignal() WaitForSilence() WaitForTone() WaitUntil() While() Zapateller()