Receiving And Processing Unsolicited XMPP Messages With Asterisk 11

Home » Asterisk Users » Receiving And Processing Unsolicited XMPP Messages With Asterisk 11
Asterisk Users 3 Comments

I’m trying to set up a way that our users can send an XMPP message to Asterisk (unsolicited) to request information, such as voicemail status or the like. No matter what I set for the dialplan, I’m only seeing Asterisk execute the s,1 priority in the context defined in xmpp.conf for incoming messages, and then the “call” hangs up without executing further instructions. Anything I’ve tried to accomplish in that first priority has worked, but it never continues to an additional priority.

Debug output looks like:
[Aug 31 14:41:15] DEBUG[6964]: res_xmpp.c:2988 xmpp_pak_message: XMPP client ‘testaccount’ received a message
[Aug 31 14:41:15] DEBUG[6964]: res_xmpp.c:3029 xmpp_pak_message: Deleted 1 messages for client testaccount from JID jabberclient@my.jabber.server
[Aug 31 14:41:15] DEBUG[6954][C-00000000]: pbx.c:4410 pbx_extension_helper: Launching ‘Gosub’
[Aug 31 14:41:15] DEBUG[6964]: res_xmpp.c:3494 xmpp_client_receive: XML parsing successful
— Executing [s@xmpp-incoming:1] Gosub(“Message/ast_msg_queue”, “xmpp-incoming,message,1”) in new stack
[Aug 31 14:41:15] DEBUG[6954][C-00000000]: app_stack.c:578 gosub_exec: Channel Message/ast_msg_queue has no datastore, so we’re allocating one.
[Aug 31 14:41:15] DEBUG[6954][C-00000000]: pbx.c:6065 __ast_pbx_run: Extension message, priority 0 returned normally even though call was hung up

The exact specifics of the debug after priority 1 varies a little based on what I try to do, but in every case, the next thing immediately after the priority 1 application is “Extension s, priority 1 returned normally even though call was hungup” if I don’t use a Goto/Gosub, or “Extension gotoextension, priority 0 returned normally even though call was hungup” if I do.

I’m running Asterisk SVN-branch-11-r371592M on CentOS 6.3 64-bit. Asterisk is able to send using JabberSend via other processing in my dialplan.

Thank you,

Noah Engelberth MetaLINK Technologies

3 thoughts on - Receiving And Processing Unsolicited XMPP Messages With Asterisk 11

  • This might be a separate, but related issue, as I am not using XMPP messaging yet, but I found that at least with SIP messaging in Asterisk 11, if I had a Hangup() in the dialplan for message routing, every message sent AFTER the first would fail just as you describe, since the first message routed through the dialplan hung up the channel.

    This did not happen to me in Asterisk 10. After removing the traditional Hangup() at the end, and restarting Asterisk, the messages route properly for me. -A

  • Ah ha. That’s what’s happening here as well. If there is no Hangup() in the “call path” for incoming XMPP messages, everything runs smoothly and you can send and process messages as expected. If you put a Hangup() in the path, send 1 message and it works, and then subsequent messages hit the first priority and quit. Once that first priority and quit behavior starts, no further XMPP messages will go past the first priority until you completely restart Asterisk — even removing the Hangup() from the dialplan and reloading the dialplan will not cause inbound XMPP processing to resume working until you completely restart Asterisk.

    Thank you,

    Noah Engelberth MetaLINK Technologies