<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head><body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">I triaged this issue further, the root cause was the contact was modified at opensips presence server using fixed_nated_contact API call as it traverses a non sip aware load balancer on the way. Due to this the NOTIFY request URI had a
 TCP ephemeral port and check_self API call failed and topology hiding match logic was not getting triggered.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Had to force the port to method check_self to 5060 and the issue got resolved. Not sure if there is a cleaner fix for this issue. I think the fact a non sip aware load balancer is in the path is the root cause. Please suggest if there is
 a way to fix this without any code change.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Govindaraj, Rajesh <br>
<b>Sent:</b> Tuesday, December 29, 2020 1:15 PM<br>
<b>To:</b> users@lists.opensips.org<br>
<b>Subject:</b> Topology hiding for presence: NOTIFY/Subscription refresh not successfully matching topology hiding<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am facing issues with topology hiding implementation for presence which was necessitated as existing TCP connections have to be used at Presence server and couldn’t achieve this with record route routing and having original contact of
 application server.<o:p></o:p></p>
<p class="MsoNormal">Thanks for all your time and help. I am sure I am missing something small but I spent hours searching and reading up on Internet and would solicit your expertise to resolve this.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Objective: TCP transport for presence.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Topology:   opensips presence server <span style="font-family:Wingdings">
ßà</span> opensips proxy <span style="font-family:Wingdings">ßà</span> IPC’s Application Server.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Approach: <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><u>Case i: Without topology hiding and using record route:<br>
<br>
</u>In this case opensips proxy was adding two record route one for itself with <a href="sip:%3cip%3e;transport=tcp">
sip:<ip>;transport=tcp</a> and via header carried rport. Opensips presence server while sending NOTIFY was throwing as TCP error,<o:p></o:p></p>
<p class="MsoNormal">Read through forum and understood that initial tcp request has to be re-used. Studied if alias can be used and also experimented with force_tcp_alias, but no luck.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><u>Case ii: With topology hiding, no record route, use new contact:<o:p></o:p></u></p>
<p class="MsoNormal"><u><o:p><span style="text-decoration:none"> </span></o:p></u></p>
<p class="MsoNormal">With this approach able to get back initial NOTIFY <o:p></o:p></p>
<p class="MsoNormal">NOTIFY <a href="sip:172.29.109.119:40968;transport=tcp;thinfo=VG8tbzAdIFskPyccJRwmBhBQY31mX2RBckxiT2FkblpgWnpPJBMyPScfPx03SSUFI2gjAyMcIB00XGVmZltjCXVBMwdlaCcGIA4zBCMEICA9AD4GJ0kxESN+YxUjAC8aYlEiJTMcaxgvByMHMDowUiMGM1lhFzlqOx4qBjQXaAs+RVQaNB95RWBPYWNgQWFXcVpiVmlmZFlg">
sip:172.29.109.119:40968;transport=tcp;thinfo=VG8tbzAdIFskPyccJRwmBhBQY31mX2RBckxiT2FkblpgWnpPJBMyPScfPx03SSUFI2gjAyMcIB00XGVmZltjCXVBMwdlaCcGIA4zBCMEICA9AD4GJ0kxESN+YxUjAC8aYlEiJTMcaxgvByMHMDowUiMGM1lhFzlqOx4qBjQXaAs+RVQaNB95RWBPYWNgQWFXcVpiVmlmZFlg</a> SIP/2.0<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">With thinfo in request URI. Contact header of opensips sip server is present.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Now as per docs, tried to do topology_hiding_match by calling topology_hiding_match(), get this response,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">DID NOT found,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I tried to add DID_NONE but don’t see any log in the syslog.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The NOTIFY with contact header of opensip sip server is sent to Application Server. Record_route is called on this NOTIFY and record route is added without DID param.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">When the subscription response comes back, the sample request below,(having the contact of opensips presence server no thinfo from 200ok for subscribe) the topology_hiding_match fails and the request does not go out.<o:p></o:p></p>
<p class="MsoNormal">I tried to load dialog module, call create_dialog but I understand that for subscribe the dialog would not be created. Please correct me if I am wrong. I also read about route header being used in opensips 2.1 per this thread,<o:p></o:p></p>
<p class="MsoNormal"><a href="https://opensips.org/pipermail/users/2017-December/038606.html">https://opensips.org/pipermail/users/2017-December/038606.html</a> but this is not being used in opensips version 2.4.7.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Not sure what am I missing. Please advise.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">10.204.182.27 – Server running opensips proxy and application server.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">10.29.109.130 – Opensips presence server<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><u>NOTIFY sent to application server:<o:p></o:p></u></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">NOTIFY <a href="sip:10.204.182.27:5059;transport=tcp;thinfo=VG8sbzAdIFskPyccJRwmBhBQY31mX2RBckxiT2FkblpgWnpPJBMyPScfPx03SSUFI2gjAyMcIB00XGVmZltjCXVBMwdlaCcGIA4zBCMEICA9AD4GJ0kxESN+JhYxXiZDYgNrJT4BaxgvByMHMDowUiMGM1lnFCJrbVY1WiBANldFUyELIFVyRH5TY2d6XmhdbUZnW2ZjYl8-">
sip:10.204.182.27:5059;transport=tcp;thinfo=VG8sbzAdIFskPyccJRwmBhBQY31mX2RBckxiT2FkblpgWnpPJBMyPScfPx03SSUFI2gjAyMcIB00XGVmZltjCXVBMwdlaCcGIA4zBCMEICA9AD4GJ0kxESN+JhYxXiZDYgNrJT4BaxgvByMHMDowUiMGM1lnFCJrbVY1WiBANldFUyELIFVyRH5TY2d6XmhdbUZnW2ZjYl8-</a> SIP/2.0<o:p></o:p></p>
<p class="MsoNormal"><b>Record-Route: <<a href="sip:10.204.182.27;r2=on;lr">sip:10.204.182.27;r2=on;lr</a>><o:p></o:p></b></p>
<p class="MsoNormal"><b>Record-Route: <<a href="sip:10.204.182.27;transport=tcp;r2=on;lr">sip:10.204.182.27;transport=tcp;r2=on;lr</a>><o:p></o:p></b></p>
<p class="MsoNormal">Via: SIP/2.0/UDP 10.204.182.27:5060;branch=z9hG4bK354b.18876e240190157c6feb29c18068a57a.0;i=685d8901<o:p></o:p></p>
<p class="MsoNormal">Via: SIP/2.0/TCP 10.42.3.115:5060;received=172.29.109.130;branch=z9hG4bK354b.faa91951.0<o:p></o:p></p>
<p class="MsoNormal">To: <<a href="sip:9797@10.204.182.27">sip:9797@10.204.182.27</a>>;tag=19867159<o:p></o:p></p>
<p class="MsoNormal">From: <<a href="sip:9797-1@ipc11.com">sip:9797-1@ipc11.com</a>>;tag=ab40-e3d19262d5e041c285ec0e9b00967d4b<o:p></o:p></p>
<p class="MsoNormal">CSeq: 1 NOTIFY<o:p></o:p></p>
<p class="MsoNormal">Call-ID: <a href="mailto:wlss-29dc9ccc-3d09899a4a9e634d0256bdf3c2cf8f0b@10.204.182.27">
wlss-29dc9ccc-3d09899a4a9e634d0256bdf3c2cf8f0b@10.204.182.27</a><o:p></o:p></p>
<p class="MsoNormal">Max-Forwards: 69<o:p></o:p></p>
<p class="MsoNormal">Content-Length: 566<o:p></o:p></p>
<p class="MsoNormal">User-Agent: OpenSIPS (2.4.8 (x86_64/linux))<o:p></o:p></p>
<p class="MsoNormal">Event: presence<o:p></o:p></p>
<p class="MsoNormal">Contact: <<a href="sip:sa@10.29.109.130:5060;transport=tcp">sip:sa@10.29.109.130:5060;transport=tcp</a>><o:p></o:p></p>
<p class="MsoNormal">Subscription-State: active;expires=300<o:p></o:p></p>
<p class="MsoNormal">Content-Type: application/pidf+xml<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><u>Refresh subscribe:<o:p></o:p></u></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Received SUBSCRIBE <a href="sip:sa@10.29.109.130:5060;transport=tcp">
sip:sa@10.29.109.130:5060;transport=tcp</a> SIP/2.0^M<o:p></o:p></p>
<p class="MsoNormal">Content-Length: 0^M<o:p></o:p></p>
<p class="MsoNormal">CSeq: 2 SUBSCRIBE^M<o:p></o:p></p>
<p class="MsoNormal">Expires: 300^M<o:p></o:p></p>
<p class="MsoNormal">Route: <<a href="sip:10.204.182.27;r2=on;lr">sip:10.204.182.27;r2=on;lr</a>>^M<o:p></o:p></p>
<p class="MsoNormal">Route: <<a href="sip:10.204.182.27;transport=tcp;r2=on;lr">sip:10.204.182.27;transport=tcp;r2=on;lr</a>>^M<o:p></o:p></p>
<p class="MsoNormal">Contact: <<a href="sip:wlssuser@10.204.182.27:5059;transport=udp;wlsscid=65243f65cf6;sipappsessionid=app-7sa7kf2qbv51;wlssfcid=sip-1xgt8c89zz6kk">sip:wlssuser@10.204.182.27:5059;transport=udp;wlsscid=65243f65cf6;sipappsessionid=app-7sa7kf2qbv51;wlssfcid=sip-1xgt8c89zz6kk</a>>^M<o:p></o:p></p>
<p class="MsoNormal">Call-ID: <a href="mailto:wlss-af3350b7-c077bdf207ff802e84fa32ed40d47aed@10.204.182.27%5eM">
wlss-af3350b7-c077bdf207ff802e84fa32ed40d47aed@10.204.182.27^M</a><o:p></o:p></p>
<p class="MsoNormal">Max-Forwards: 70^M<o:p></o:p></p>
<p class="MsoNormal">From: <<a href="sip:9797@10.204.182.27">sip:9797@10.204.182.27</a>>;tag=3427a3ff^M<o:p></o:p></p>
<p class="MsoNormal">To: <<a href="sip:9797-1@ipc11.com">sip:9797-1@ipc11.com</a>>;tag=ab40-f97bec0eac0c0e4c851f049586838577^M<o:p></o:p></p>
<p class="MsoNormal">Event: presence^M<o:p></o:p></p>
<p class="MsoNormal">Via: SIP/2.0/UDP 10.204.182.27:5059;wlsscid=65243f65cf6;branch=z9hG4bK186c9181e96cf3053271dcd2b59330cd<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
</div>


<br><br><br>


DISCLAIMER:
This e-mail may contain information that is confidential, privileged or otherwise protected from disclosure. If you are not an intended recipient of this e-mail, do not duplicate or redistribute it by any means. Please delete it and any attachments and notify the sender that you have received it in error. Unintended recipients are prohibited from taking action on the basis of information in this e-mail. 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. If you are not comfortable with the risks associated with e-mail messages, you may decide not to use e-mail to communicate with IPC. IPC reserves the right, to the extent and under circumstances permitted by applicable law, to retain, monitor and intercept e-mail messages to and from its systems.<p></p></body></html>