There's a new branch now available for some testing at the following SVN URL:
http://svn.digium.com/asterisk/team/bweschke/originate_w_jabber/
This branch is based on the 1.4 branch and has had the res_jabber module that was in /trunk back-ported to it.
What does it do?
Phase 1 of the work here was to enable call progress messages to be sent via XMPP on Manager Originate actions and also within the Dial application when the appropriate channel variables are set.
What do the messages look like?
They are XML messages. Long term, we should probably have two different formats for those that don't care for XML, but XML is all that is available right now. Here's an example message so you get an idea of what the tree looks like.
progress
12345^^CALLID^^12345
PEER/1234567890: channel start
How do I make it work?
First, you'll need to make certain that you have the res_jabber module built and loaded in your Asterisk setup connected to a Jabber server of your choice.
For the AMI Originate call there's a couple new parameters to provide:
CallID: This is the call identifier passed back in the progress messages so multiple calls can be tracked at the same time.
OrigJID: This is the JID of the recipient that should received the progress messages.
JabberClient: This is the name of the jabber context/client defined in jabber.conf so the code that leverages res_jabber knows which one to use.
For the app_dial call progress functionality, the same values need to be provided but should be done with channel variables set on the channel before calling Dial. These channel variable names are "orig_callid", "orig_origjid", and "orig_jabberclient".
What's next for this branch?
We'd like to work on the Manager interface so that one can use an XMPP transport to reach AMI in addition to the HTTP and TCP socket transports that already exist to access AMI. This includes sending commands to AMI through Jabber as well as receiving events back from the AMI.
Any feedback and suggestions are certainly welcome and a good indicator to see if there is more interest beyond our own in this kind of functionality!
BJ
