<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/2475/">https://reviewboard.asterisk.org/r/2475/</a>
</td>
</tr>
</table>
<br />
<p>Ship it!</p>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I'll quote Alec from #asterisk-dev here, as he provided a good explanation as to why this change is needed:
{quote}
(03:58:13 PM) alecdavis: @mjordan, yes the discussion you refer to, is grandstream specific, where the grandstream accepts a uncolicited NOTIFY after a rebbot from a stale subscription. But most of the times the phone has been rebooted would have been because 'a' BLF had stopped working. Which then lead in to the specific 'stale version no' issue on the grandstream.
(04:02:01 PM) alecdavis: @mjordan, review2475 after a failed NOTIFY transaction (due to a network event), removes the subscription, as the RFC says it 'SHOULD'. The phone resubscribes in it's own time, and the BLF magically starts working again. then
(04:05:11 PM) alecdavis: and the reporter has just reported that his devices are not on a LAN but are internet connected, so network outage probability is high.
(04:07:18 PM) alecdavis: the BLF fix, is a simple 1 word change, XMIT_RELIABLE changed to XMIT_CRITICAL, thus the subsription gets removed after it fails.
{quote}</pre>
<br />
<p>- Matt</p>
<br />
<p>On May 6th, 2013, 8:40 p.m. UTC, Alec Davis wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/static/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.</div>
<div>By Alec Davis.</div>
<p style="color: grey;"><i>Updated May 6, 2013, 8:40 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21677">ASTERISK-21677</a>
</div>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
Asterisk
</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;">The notify subsystem relies on a NOTIFY 200OK response to clear the SIP_PAGE2_STATECHANGEQUEUE flag and p->pendinginvite.
If the response never arrives, then any further NOTIFYs cannot EVER be sent, they just 'queue' up by replacing the previous queued notify.
The fix: Follow RFC6665 4.2.2 more closely, after failed NOTIFY transaction remove the subscription.
Then after a period of time the client will (re-)subscribe, which will create a new subscription.
For minimum BLF 'not working' time maxexpiry in sip.conf needs to be around 300, not the default of 3600 seconds.
</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;">As per bug report https://issues.asterisk.org/jira/browse/ASTERISK-21677
Asterisk 1.8, subscribers will NOT update their status when they re-subscribe, but will on the next event.
Asterisk 11, subscribers WILL update their status when they re-subscribes.
Reporter of ASTERISK-21677 has also tested on a number of production servers.</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>branches/1.8/channels/chan_sip.c <span style="color: grey">(380212)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/2475/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>