<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 />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
<thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
<a href="https://reviewboard.asterisk.org/r/1925/diff/1/?file=28014#file28014line15394" style="color: black; font-weight: bold; text-decoration: underline;">/certified/branches/1.8.11/channels/chan_sip.c</a>
<span style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
<tr>
<td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">static int get_rdnis(struct sip_pvt *p, struct sip_request *oreq, char **name, char **number, int *reason)</pre></td>
</tr>
</tbody>
<tbody>
<tr>
<th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">15393</font></th>
<td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">                                <span class="n">ast_strip_quoted</span><span class="p">(</span><span class="n">reason_param</span><span class="p">,</span> <span class="s">"</span><span class="se">\"</span><span class="s">"</span><span class="p">,</span> <span class="s">"</span><span class="se">\"</span><span class="s">"</span><span class="p">);</span></pre></td>
<th bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">15394</font></th>
<td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">                                <span class="n"><span class="hl">reason_param</span></span><span class="hl"> </span><span class="o"><span class="hl">=</span></span><span class="hl"> </span><span class="n">ast_strip_quoted</span><span class="p">(</span><span class="n">reason_param</span><span class="p">,</span> <span class="s">"</span><span class="se">\"</span><span class="s">"</span><span class="p">,</span> <span class="s">"</span><span class="se">\"</span><span class="s">"</span><span class="p">);</span></pre></td>
</tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This change is actually revision 366597 of the 1.8 branch. However, since that change had not been merged into the 1.8.11 certified branch, I had to add it to this diff.</pre>
</div>
<br />
<p>- Mark</p>
<br />
<p>On May 17th, 2012, 9:54 a.m., Mark Michelson wrote:</p>
<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>
<p style="color: grey;"><i>Updated May 17, 2012, 9:54 a.m.</i></p>
<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's own, or to another user's, voicemail using the "send to vm" softkey.
On an bridged call, a user may select a contact and press the "transfer vm" key in order to blind transfer the call to the contact's voicemail.
Contrary to the way this is likely done in other Asterisk installations, sending a call to a contact'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's reason parameter. When a call is being sent to voicemail, the reason parameter will be set to "send_to_vm".
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>