<div><div dir="auto">The MS documentation should be taken with a grain of salt. For SIP proxies there’s no need for an FQDN in the Contact header, instead an FQDN is required in the top Record-Route header. The FQDN is required in the Contact header of the OPTIONS ping because this is a direct message between the proxy and MS and there are no Record-Route headers in this particular SIP request.</div></div><div dir="auto">Everything is covered by the blog posted on the OpenSIPS website. Each item/step can be implemented as described there or slightly different, based on one’s needs.</div><div dir="auto"><br></div><div><div dir="auto">Regards,</div><div dir="auto">Ovidiu Sas</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, May 10, 2020 at 12:27 James Hogbin <<a href="mailto:james@ip-sentinel.com">james@ip-sentinel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="word-wrap:break-word;line-break:after-white-space">OK.
<div><br>
</div>
<div>Thank you for the Record_Route_Preset fix.  I had followed the example without understanding what it was doing.  It always seemed odd to put the 5060 port after the TLS port.  I understand why now. And more importantly why not to do it.<br>
<div><br>
</div>
<div>Adding a * to the listen port caused an error in the script. I’m running 3.0.2 if that matters?</div>
<div><br>
</div>
<div>However the routing is still not working correctly </div>
<div><br>
</div>
<div>
<div>        if (is_method("INVITE") && !has_totag() && check_source_address(0)) {</div>
<div>                xlog("[ROUTE]Incoming call to MS: RURI=$ruri, SI=$si, M=$rm\n");</div>
<div>                strip(1);</div>
<div>                prefix("+44");</div>
<div>                uac_replace_from( , "<a>sip:$fU@sbc.ip-sentinel.com:5091</a>");</div>
<div>               </div>
<div><span style="white-space:pre-wrap"></span>$rd="<a href="http://sip.pstnhub.microsoft.com" target="_blank">sip.pstnhub.microsoft.com</a>";</div>
<div>                $rp=5061;</div>
<div><br>
</div>
<div>                $var(ct) = $ct;</div>
<div>                xlog("[INFO] Old Contact = $var(ct)\n”);</div>
<div><br>
</div>
<div>                remove_hf("Contact");</div>
<div>                append_hf("Contact: <<a>sip:$fU@sbc.ip-sentinel.com:5091;transport=tls</a>>\r\n");</div>
<div><br>
</div>
<div>                record_route_preset("<a href="http://sbc.ip-sentinel.com:5091" target="_blank">sbc.ip-sentinel.com:5091</a>;transport=tls");</div>
<div><br>
</div>
<div>                route(relay);</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>This routes the call from Zoiper -> Freeswich -> OpenSIPS -> Teams and I get ringing.</div>
<div><br>
</div>
<div>If I pick up the call In Teams the Zopier client knows it has been accepted.</div>
<div>I can hang up the call from Zoiper and Teams hangs up</div>
<div><br>
</div>
<div>I don’t get Audio from Zoiper -> Teams but I do get Audio from Teams back to Teams with a slight delay</div>
<div>Teams then hangs up the call after 20 seconds but the call remains open on Zoiper </div>
<div><br>
</div>
<div>I’m pretty sure it has something to do with how/where I’m fixing the contact.  Any suggestions?</div>
<div><br>
</div>
<div>Also how do I get one of those nice sip traffic flows given everything is on TLS?  I’m grabbing stuff out of the debug log and it’s not pretty.</div>
<div><br>
</div>
<div><br>
</div>
<div>For future reference this is a great resource on MSTeams expected SIP traffic <a href="https://docs.microsoft.com/en-us/microsoftteams/direct-routing-protocols-sip" target="_blank">https://docs.microsoft.com/en-us/microsoftteams/direct-routing-protocols-sip</a></div>
<div><br>
</div>
<div>For all incoming calls to the Microsoft SIP proxy, the Contact header must have the paired SBC FQDN in the URI hostname as follows:<br>
</div>
<div>Syntax: Contact: <<a>sip:phone or sip address@FQDN of the SBC;transport=tls</a>> </div>
<div><br>
</div>
<div>If more than one value in the Contact header presented in a SIP message is sent by the SBC, only the FQDN portion of the first value of the Contact header is used.</div>
<div><br>
</div>
<div>Use of an IP address is not supported in either Record-Route or Contact. The only supported option is an FQDN, which must match either the Common Name or Subject Alternative Name of the SBC certificate (wildcard values in the certificate are supported).<br>
<div><span style="white-space:pre-wrap"></span>• If an IP address is presented in Record-route or Contact, the certificate check fails and the call fails.<br>
</div>
<div><span style="white-space:pre-wrap"></span>• If the FQDN does not match the value of the Common or Subject Alternative Name in the presented certificate, the call fails.</div>
</div>
<div><br>
</div>
<div>But there is nothing in the instructions in the <a href="https://blog.opensips.org/2019/09/16/opensips-as-ms-teams-sbc/" target="_blank">https://blog.opensips.org/2019/09/16/opensips-as-ms-teams-sbc/</a> that specifies fixing the contact in anything
 other than OPTIONS</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div><br>
<blockquote type="cite">
<div>
    <br>
    <p style="font-family:Open Sans,sans-serif">
    <b><span style="font-family:Open Sans,sans-serif;font-size:10.0pt;color:#888888">James Hogbin</span></b>
    <b><span style="font-family:Open Sans,sans-serif;font-size:8.0pt;color:#888888"><br>Director</span></b>
    </p>
    <table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td><a href="http://ip-sentinel.com" target="_blank"><img border="0" alt="IP Sentinel Logo" src="cid:171ffc04cef6f2bc151" style="width:100px;max-width:100%"></a></td></tr></tbody></table>
                <span style="font-family:Open Sans,sans-serif;font-size:8.0pt;color:#222222"><br>t. <a href="tel:+442030114150" target="_blank">+44 (0)20 3011 4150</a><br></span><span style="font-family:Open Sans,sans-serif;font-size:8.0pt;color:#222222">m. +44 7786910895<br></span><span style="font-family:Open Sans,sans-serif;font-size:8.0pt;color:#222222">w. <a href="https://www.ip-sentinel.com/" target="_blank">https://www.ip-sentinel.com</a><br></span><table>
                <tbody><tr>
                        </tr>
                <tr>
                        
                </tr>
                <tr>
                        
                </tr>
                <tr>
                        
                </tr>
    </tbody></table>
    <br>
    
On 8 May 2020, at 09:12, John Quick <<a href="mailto:john.quick@smartvox.co.uk" target="_blank">john.quick@smartvox.co.uk</a>> wrote:</div>
<br>
<div>
<div>James,<br>
<br>
Just to add to Alexey's last comment, if your SBC *is* changing the<br>
transport from UDP to TLS, then you must ensure the correct socket is used<br>
on the SBC when it is sending requests to the Teams Proxy:<br>
force_send_socket(tls:<a href="http://137.117.136.143:5091" target="_blank">137.117.136.143:5091</a>);<br>
<br>
You may also find it helpful to add " AS <a href="http://sbc.ip-sentinel.com:5091" target="_blank">
sbc.ip-sentinel.com:5091</a>" on the<br>
end of your tls listen statement<br>
<br>
John Quick<br>
Smartvox Limited<br>
Web: <a href="http://www.smartvox.co.uk" target="_blank">www.smartvox.co.uk</a><br>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>



    <p style="font-family:Open Sans,Arial,sans-serif;padding:5px;background:#d5eaff">
    <span style="font-family:Open Sans,sans-serif;font-size:8.0pt;color:red">IP Sentinel Disclaimer <br></span>
    <span style="font-family:Open Sans,sans-serif;font-size:6.0pt;color:black">The information contained in this e-mail, and any attachment, is confidential and is intended solely for the use of the intended recipient. Access, copying or re-use of the e-mail or any attachment, or any information contained therein, by any other person is not authorized. Unintended recipients are prohibited from taking action on the basis of information in this e-mail. If you are not the intended recipient or have received this email in error, please notify the sender immediately by return email and delete the email from your computer.
E-mail messages may contain computer viruses or other defects, may not be accurately replicated on other systems, or may be intercepted, deleted or interfered with without the knowledge of the sender or the intended recipient. We do not guarantee that either are virus-free and accept no liability for any damage sustained as a result of computer viruses or other defects. 
. IP Sentinel Ltd is a limited company registered in England and Wales under Registered Number 08648097. Registered Office: Newnhams Wood, Horsted Keynes, West Sussex, RH17 7BT. </span>
    </p><span style="font-size:1.0pt;color:white">Q3dhRSrm_disclaimer</span>
</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></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">VoIP Embedded, Inc.<br><a href="http://www.voipembedded.com" target="_blank">http://www.voipembedded.com</a></div>