Upgrade 3CX to v18 and get it hosted free!

Asterisk cmd MessageSend

Author image

MessageSend

Asterisk 10 now has protocol independent support for processing text messages outside of a call. Messages are routed through the Asterisk dialplan. SIP MESSAGE and XMPP are currently supported. There are options in jabber.conf and sip.conf to allow enabling these features.

jabber.conf: see the “sendtodialplan” and “context” options.
sip.conf: see the “accept_outofcall_message”, “auth_message_requests” and “outofcall_message_context” options.

The MESSAGE() dialplan function and MessageSend() application have been added to go along with this functionality. More detailed usage information can be found on the Asterisk wiki (https://wiki.asterisk.org/wiki/display/AST/Asterisk+10+Application_MessageSend).

Examples

exten => send_msg,1,NoOp()
same => n,Answer()
same => n,Set(MESSAGE_DATA(X-Movial-Content)=application/x-movial-control\;forwarding=true)
same => n,MessageSend(sip:127.0.0.1:5060)
same => n,Hangup()

; = SIP MESSAGE only works if in sip.conf "accept_outofcall_message=yes" is set! =
exten => 123,1,GotoIf($[${LEN(${MESSAGE(from)})} < 1]?nomessage)
exten => 123,n,NoOp(Message from: ${MESSAGE(from)})
exten => 123,n,NoOp(Message to: ${MESSAGE(to)})
exten => 123,n,NoOp(Message body: ${MESSAGE(body)})
; = Asterisk 11.1.0 has a bug in SIPPEER(ip) that only shows the first two octets of the IP address =
~np~;exten => 123,n,MessageSend(sip:[email protected]:61018,${MESSAGE(from)})~/np~
exten => 123,n,MessageSend(sip:$[SIPPEER(mypeername,ip)]:$[SIPPEER(mypeername,port)])
exten => 123,n,NoOp(Message send status: ${MESSAGE_SEND_STATUS})
exten => 123,n,HangUp
exten => 123,n(nomessage),Dial(SIP/mypeername,30)
exten => 123,n,HangUp

Connecting a GoIP GSM VoIP gateway to an Asterisk AGI

Related AMI command

Q: Regarding the AMI MessageSend function available on Asterisk 11, I see on the syntax that it supports an argument named “Variable:”. The doc is not very clear on this. Does this argument allows us to add custom SIP headers to the MESSAGE as well?

A: Yes. The syntax is similar to the Variable: header in other AMI commands, such as Originate. Instead of setting a dialplan variable, however, you are instead setting a Message technology variable that will be interpreted by the channel technology that services the Message request. For the SIP channel driver, that implies that each one specifies a header to set.

For example:

Action: MessageSend
To: sip:foo.com
From: mypeer
Variable: X-Movial-Content=application/x-movial-control;forwarding=true
Variable: X-Other-Header=bar

Another Example (PJSIP/Asterisk 13.x):

Based on documentation at: (https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+ManagerAction_MessageSend)

and within res_pjsip_messaging.c

The following works with a Kamailio registrar to send a message from Asterisk to a registered phone.

Action: MessageSend
ActionID: 3
To: pjsip:endpoint/sip:[email protected]
From: “Billy Bob” <sip:[email protected]>
Body: test..test..test

See also


Article Reviews

Write a Review

Your email address will not be published. Required fields are marked *

Required Field. Minimum 5 characters.

Required Field. Minimum 5 characters, maximum 50.

Required field.There is an error with this field.

Required Field.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

There are no reviews for this article. Be the first one to write a review.

Related Posts:

Get 3CX - Absolutely Free!
Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.