<div dir="ltr"><div><div>RFC 3261 says...</div></div><div><br></div><div>'The "expires" parameter of a Contact header field value indicates how long the URI is valid.  The value of the parameter is a number indicating seconds.  If this parameter is not provided, the value of the Expires header field determines how long the URI is valid.'</div><div><br></div><div>...I know that Asterisk is returning a value in both fields, but the mid_registrar seems to be only updating the *Contact* header's expiry value in some cases. This means that the simple solution is to just remove the *Expires* header value to avoid any conflict. The value in the *Contact* header is now the single version of the truth for all apps to use as per the RFC. I just use a reply route in opensips.cfg to remove the *Expires* header from the 200OK when it arrives from Asterisk...</div><div><br></div><div>onreply_route[fix_expiry] {<br></div><div>    if ($rs == "200" && $rm == "REGISTER") {</div><div>        remove_hf("Expires");<br></div><div>    }<br></div><div>}<br><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 19 Mar 2021 at 19:48, Ricardo Martinez <<a href="mailto:rmartinez@redvoiss.net">rmartinez@redvoiss.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Do you have some tip to solve this issue ??.<div dir="auto">Did you use the .conf file or did you have to modify the sources ??</div><div dir="auto"><br></div><div dir="auto">Thanks </div><div dir="auto">Ricardo </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El vie., 19 de marzo de 2021 4:04 p. m., Mark Allen <<a href="mailto:mark@allenclan.co.uk" target="_blank">mark@allenclan.co.uk</a>> escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Yes it was still happening the last time I checked. I got the script to re-write the value to get around the problem</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 19 Mar 2021, 18:15 Ricardo Martinez, <<a href="mailto:rmartinez@redvoiss.net" rel="noreferrer" target="_blank">rmartinez@redvoiss.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="ES-CL" style="overflow-wrap: break-word;"><div><p class="MsoNormal"><span>Hi Mark.</span></p><p class="MsoNormal"><span lang="EN-US">Do you still have the same problem?.</span></p><p class="MsoNormal"><span lang="EN-US">Did you manage to solve it?.</span></p><p class="MsoNormal"><span lang="EN-US"> </span></p><p class="MsoNormal"><span lang="EN-US">Ricardo.-</span></p><p class="MsoNormal"><span lang="EN-US"> </span></p><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0cm 0cm"><p class="MsoNormal"><b><span lang="ES">De:</span></b><span lang="ES"> Users <<a href="mailto:users-bounces@lists.opensips.org" rel="noreferrer noreferrer" target="_blank">users-bounces@lists.opensips.org</a>> <b>En nombre de </b>Mark Allen<br><b>Enviado el:</b> miércoles, 3 de febrero de 2021 8:42<br><b>Para:</b> OpenSIPS users mailling list <<a href="mailto:users@lists.opensips.org" rel="noreferrer noreferrer" target="_blank">users@lists.opensips.org</a>><br><b>Asunto:</b> [OpenSIPS-Users] OpenSIPS 3.1 - Mid_Registrar AOR throttling & FreePBX/Asterisk Expiry problem</span></p></div><p class="MsoNormal"> </p><div><p class="MsoNormal"><span style="font-family:"Courier New"">I'm seeing strange behaviour using mid_registrar with AOR throttling...</span></p><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">On initial registration, I do a mid_registrar_save():</span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">        mid_registrar_save("location","mp0v","<a rel="noreferrer noreferrer">sip:$tU@midreg</a>",,"vipx");</span></p><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">Return value from save is "1" (success) and then I successfully forward the REGISTER to the FreePBX/Asterisk main registrar (so far so good!).</span></p></div></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">Asterisk returns a "200 OK" to OpenSIPS which has the registration expiry value set in both the "Expires" header and in the "Contact" header...</span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal" style="margin-bottom:12pt"><span style="font-family:"Courier New"">        SIP/2.0 200 OK<br>        Expires: 600<br>        Contact: <<a rel="noreferrer noreferrer">sip:xxxx%40midreg@xxx.xxx.xxx.xxx:5060</a>>;expires=600</span></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">Mid_Registrar forwards this on to the UAC after modifying the expiry value for AOR throttling, but only the "expires" setting in the "Contact" header gets modified...</span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">        SIP/2.0 200 OK<br>        Expires: 600<br>        Contact: <<a rel="noreferrer noreferrer">sip:350203@192.168.50.7:50614;ob</a>>;expires=300</span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">This leads to the unpredictable behaviour I'm seeing. MicoSIP seems to prefer to use the "Contact" header expiry value, and so works fine, however, Blink and a test MizuTech softphone seem to prefer the "Expires" header value, and so are not using the AOR throttling value. </span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">In the above example, Mid_Registrar is expecting the UAC to REGISTER again before 300 seconds have elapsed to maintain the registration, but Blink or the MizuTech softphone believe they should renew their registration before 600 seconds. When Mid_Registrar does not get the expected registration at around 300 seconds it assumes the connection is lost and de-registers on Asterisk. Finally, the UAC renews the registration at around 600 seconds meaning the UAC is effectively cycling between being available/unavailable.</span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">I have written a workaround in our config file to remove the invalid value before the "200 OK" gets forwarded to the UAC, but should mid_registrar be changing the expiry value in both places?</span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"> </p></div></div></div></div>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org" rel="noreferrer noreferrer" target="_blank">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" rel="noreferrer noreferrer noreferrer" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
</blockquote></div>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org" rel="noreferrer" target="_blank">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" rel="noreferrer noreferrer" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
</blockquote></div>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
</blockquote></div>