<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://reviewboard.asterisk.org/r/1042/">https://reviewboard.asterisk.org/r/1042/</a>
     </td>
    </tr>
   </table>
   <br />


<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.orgrb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Asterisk Developers.</div>
<div>By Russell Bryant.</div>





<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This branch contains a proposal for adding protocol independent support for processing text messages into and out of the dialplan, outside of a call.  The file doc/asterisk-messaging.txt contains more details on the proposal.  The introduction of the document is quoted here:

&quot;    Asterisk has some limited support today for messaging.  The support that
exists primarily includes passing text messages in the context of a call.  The
SIP and IAX2 protocols have support for this, but that&#39;s it.

    There are a couple of other messaging protocols that are supported: Skype
and XMPP (Jabber).  The support of these is very minimal and not very integrated
into the architecture of Asterisk since these messages are not in the context of
a phone call.  They provide a combination of dialplan and manager interface
interfaces that are specific to each protocol.  There just is no current
architectural concept of dealing with text messages.

    The purpose of this proposal is to introduce text messaging into the
architecture of Asterisk.  For messaging support to exist in the true spirit of
Asterisk architecture, the design needs to achieve the following two goals:

    a) Protocol Independence
    b) Scriptable message routing

    The rest of this document goes through some details about how these goals
will be achieved in a way that is both architecturally compatible with Asterisk
as well as practical to implement.&quot;

----------

In addition to the documented proposal, I have made some good progress on implementation.  Here is what is done so far:

 - core modifications to allow sending incoming messages through the dialplan
 - core modifications to allow outbound messages from the dialplan
 - modifications to res_jabber to allow inbound and outbound messages in the new architecture
 - The beginning of changes to chan_sip, with support for inbound and outbound MESSAGE outside of a call</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The branch contains two automated tests:
 - Use SIPp to send a MESSAGE to Asterisk and then receive a MESSAGE with no calls
 - Use SIPp to send a call to Asterisk that shows how an out-of-call MESSAGE can be sent from the dialplan while processing a normal call

I have also done some manual testing of XMPP messages in and out of Asterisk using this code.</pre>
  </td>
 </tr>
</table>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>/trunk/res/res_jabber.c <span style="color: grey">(297183)</span></li>

 <li>/trunk/main/message.c <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/main/asterisk.c <span style="color: grey">(297183)</span></li>

 <li>/trunk/main/channel.c <span style="color: grey">(297183)</span></li>

 <li>/trunk/include/asterisk/message.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/include/asterisk/_private.h <span style="color: grey">(297183)</span></li>

 <li>/trunk/include/asterisk/channel.h <span style="color: grey">(297183)</span></li>

 <li>/trunk/include/asterisk/jabber.h <span style="color: grey">(297183)</span></li>

 <li>/trunk/doc/asterisk-messaging.txt <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/configs/jabber.conf.sample <span style="color: grey">(297183)</span></li>

 <li>/trunk/channels/chan_sip.c <span style="color: grey">(297183)</span></li>

 <li>/trunk/testsuite-tests/message_unauth/test-config.yaml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/testsuite-tests/message_unauth/sipp/message_recv.xml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/testsuite-tests/message_unauth/sipp/message.xml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/testsuite-tests/message_from_call/sipp/message_recv.xml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/testsuite-tests/message_from_call/test-config.yaml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/testsuite-tests/message_unauth/configs/ast1/extensions.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/testsuite-tests/message_unauth/run-test <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/testsuite-tests/message_from_call/configs/ast1/extensions.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/testsuite-tests/message_from_call/run-test <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/testsuite-tests/message_from_call/sipp/call.xml <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

<p><a href="https://reviewboard.asterisk.org/r/1042/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>




  </div>
 </body>
</html>