<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/1925/">https://reviewboard.asterisk.org/r/1925/</a>
     </td>
    </tr>
   </table>
   <br />


<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/media/rb/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, Jason Parker and Matt Jordan.</div>
<div>By Mark Michelson.</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;">Digium phones have a couple of ways to send calls to voicemail.

On an incoming call, a call may be diverted to either the user&#39;s own, or to another user&#39;s, voicemail using the &quot;send to vm&quot; softkey.
On an bridged call, a user may select a contact and press the &quot;transfer vm&quot; key in order to blind transfer the call to the contact&#39;s voicemail.

Contrary to the way this is likely done in other Asterisk installations, sending a call to a contact&#39;s voicemail does not send the call to a different extension than would be used for dialing the contact. Instead, something must be available in the dialplan to distinguish an incoming call that is intended for a phone vs. an incoming call that is intended for voicemail.

The mechanism by which this is accomplished is via a Diversion header&#39;s reason parameter. When a call is being sent to voicemail, the reason parameter will be set to &quot;send_to_vm&quot;.

For the first case, on a redirected incoming call, the Diversion header is in the 302 response sent from the Digium phone.
The second case is a bit unorthodox, but from our readings, not harmful or non-compliant. In the second case, the Diversion header is in the REFER request sent from the Digium phone when it performs its blind transfer.

The changes to Asterisk are minimal here. First, the AST_REDIRECTING_REASON_SEND_TO_VM value had to be defined in callerid.h, and its string value and definition had to be added to a table in callerid.c. Finally, parsing of the Diversion header had to be added to handle_request_refer() in chan_sip.c</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;">Testing is posted as a separate review: https://reviewboard.asterisk.org/r/1926</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>/certified/branches/1.8.11/channels/chan_sip.c <span style="color: grey">(366547)</span></li>

 <li>/certified/branches/1.8.11/include/asterisk/callerid.h <span style="color: grey">(366547)</span></li>

 <li>/certified/branches/1.8.11/main/callerid.c <span style="color: grey">(366547)</span></li>

</ul>

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




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




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