<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mv="http://macVmlSchemaUri" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Title" content="">
<meta name="Keywords" content="">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Arial;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Courier New";
        panose-1:2 7 3 9 2 2 5 2 4 4;}
@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;}
@font-face
        {font-family:"Times New Roman \, serif ";}
@font-face
        {font-family:"Courier New \, serif ";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:Calibri;}
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;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New","serif";}
tt
        {mso-style-priority:99;
        font-family:"Courier New","serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:Calibri;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Courier;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:Calibri;
        color:windowtext;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:Calibri;
        color:windowtext;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:Calibri;
        color:windowtext;}
span.EmailStyle23
        {mso-style-type:personal;
        font-family:Calibri;
        color:windowtext;}
span.EmailStyle24
        {mso-style-type:personal-reply;
        font-family:Calibri;
        color:windowtext;}
span.msoIns
        {mso-style-type:export-only;
        mso-style-name:"";
        text-decoration:underline;
        color:teal;}
.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;}
/* List Definitions */
@list l0
        {mso-list-id:259526721;
        mso-list-type:hybrid;
        mso-list-template-ids:1700045222 -772389202 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:11.0pt;
        mso-ascii-font-family:Calibri;
        mso-fareast-font-family:Calibri;
        mso-hansi-font-family:Calibri;
        mso-bidi-font-family:"Courier New";}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1
        {mso-list-id:466432774;
        mso-list-type:hybrid;
        mso-list-template-ids:-2132235036 1072096064 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:11.0pt;
        mso-ascii-font-family:Calibri;
        mso-fareast-font-family:Calibri;
        mso-hansi-font-family:Calibri;
        mso-bidi-font-family:"Courier New";}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l2
        {mso-list-id:1875851347;
        mso-list-type:hybrid;
        mso-list-template-ids:-1751715162 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l2:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l2:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l2:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style>
</head>
<body bgcolor="white" lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">Bogdan,<tt><span style="font-family:Calibri"><o:p></o:p></span></tt></span></p>
<p class="MsoNormal"><tt><span style="font-size:11.0pt;font-family:Calibri"><o:p>&nbsp;</o:p></span></tt></p>
<p class="MsoNormal"><tt><span style="font-size:11.0pt;font-family:Calibri">2) All Record-Routing is done for the sake of other servers. The Route headers are always useless to the server that generated them. Record-Routes are always inserted to force another
 server “not to look” at the RURI and instead route somewhere else. That is the entire purpose of Record-Routes! I can’t see why you feel this scenario somehow violates their normal usage.<o:p></o:p></span></tt></p>
<p class="MsoNormal"><tt><span style="font-size:11.0pt;font-family:Calibri"><o:p>&nbsp;</o:p></span></tt></p>
<p class="MsoNormal"><tt><span style="font-size:11.0pt;font-family:Calibri">4) </span>
</tt><span style="font-size:11.0pt">Again, I don’t see why this would be considered nonsense. SIP allows any server to use Record-Routing not just proxies, but even if it didn’t OpenSIPS is a proxy unless using B2BUA. Even when using TH, it is still a proxy
 from SIP standpoint because it is not changing the fundamental identifiers of the call (From-tag, To-tag, Call-ID).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">5) Again, Record-Routing is very much in the normal SIP process, no matter where it is being done.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">6) I appreciate you looking into the crashes I have reported in a separate thread, but they have nothing to do with this scenario.</span><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;,&quot;serif&quot;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">All that being said, I can agree to disagree. You have confirmed that OpenSIPS doesn’t and won’t support the functionality I’m looking for. I have several options for workarounds that I am investigating.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p>&nbsp;</o:p></span></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black"><o:p>&nbsp;</o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">Ben Newlin</span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p>&nbsp;</o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="color:black">From: </span></b><span style="color:black">Bogdan-Andrei Iancu &lt;bogdan@opensips.org&gt;<br>
<b>Date: </b>Monday, August 1, 2016 at 10:01 AM<br>
<b>To: </b>&quot;Newlin, Ben&quot; &lt;Ben.Newlin@inin.com&gt;, OpenSIPS users mailling list &lt;users@lists.opensips.org&gt;<br>
<b>Subject: </b>Re: [OpenSIPS-Users] Record-Route and Dialog topology_hiding()<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:&quot;Times New Roman&quot;,&quot;serif&quot;"><o:p>&nbsp;</o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><tt><span style="font-size:10.0pt">Hi Ben,</span></tt><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;,&quot;serif&quot;"><br>
<br>
<tt>1) I'm not recommending, I'm giving a workaround to your problem, considering the limited SBC that cannot do TH or advertise the desired contact IP (and abusing OpenSIPS to deal with this limitation of the SBC).</tt><br>
<br>
<tt>2) I'm saying &quot;fake&quot; RR as you do it just for the SBC sake - from OpenSIPS perspective has 0 value and usage. You insert the RR header with the single purpose of forcing the SBC &quot;not to look&quot; into the RURI and to provide a workaround for routing to OpenSIPS.
 And it is fake as you do not have to do the other half, the loose_route() part.</tt><br>
<br>
<tt>4) No, I do not agree - the RR and TH are excluding one each other IMO. Once again, from the logical perspective of the SIP routing, this is is a non-sense. I'm suggesting this forced &quot;marriage&quot;&nbsp; just to solve the SBC problem and nothing more.
</tt><br>
<br>
<tt>5) what you are attempting is not in the SIP normals - you are forcing the boundaries just to overcome the limitations of the SBC.</tt><br>
<br>
<tt>6) I agree there should be no crash, whatever crazy combination is used from the script, and if ok with you, I would like to push forward here.
</tt><br>
<br>
<tt>Regards,</tt><br>
<br>
</span><o:p></o:p></p>
<pre>Bogdan-Andrei Iancu<o:p></o:p></pre>
<pre>OpenSIPS Founder and Developer<o:p></o:p></pre>
<pre><a href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a><o:p></o:p></pre>
<div>
<p class="MsoNormal">On 01.08.2016 16:42, Newlin, Ben wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="font-size:11.0pt">Bogdan,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">You are recommending using RR on my server with TH, which is exactly what I want to do. Your solution is to do it manually because the RR module can’t be used with the TH module. This is not faking or tricking
 just because it is done manually; it is a real RR header and the SBC would be following correct SIP routing processes.
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">So we agree that the SIP concepts of RR and TH are not mutually exclusive, it is only the OpenSIPS modules that are incompatible. This confirms what I saw in my testing and reported in the initial email.</span><o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I think it would be a useful enhancement if the two modules did work together and the RR module supported doing everything you suggest doing manually below, just as it does today when TH is not used. But if
 that is not feasible or practical within the OpenSIPS architecture I understand. In that case, I believe a note in the documentation of the incompatibility between these modules would be beneficial as well, as it would have saved me many hours attempting to
 make this work and may save others that time as well.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">Ben Newlin</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="color:black">From: </span></b><span style="color:black">Bogdan-Andrei Iancu
<a href="mailto:bogdan@opensips.org">&lt;bogdan@opensips.org&gt;</a><br>
<b>Date: </b>Monday, August 1, 2016 at 7:13 AM<br>
<b>To: </b>&quot;Newlin, Ben&quot; <a href="mailto:Ben.Newlin@inin.com">&lt;Ben.Newlin@inin.com&gt;</a>, OpenSIPS users mailling list
<a href="mailto:users@lists.opensips.org">&lt;users@lists.opensips.org&gt;</a><br>
<b>Subject: </b>Re: [OpenSIPS-Users] Record-Route and Dialog topology_hiding()</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:&quot;Times New Roman&quot;,&quot;serif&quot;">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><tt><span style="font-size:10.0pt">Hi Ben,</span></tt><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;,&quot;serif&quot;"><br>
<br>
<tt>I see your problem here. So, let's explore this:</tt><br>
<tt>1) for sending the call to carrier, on OpenSIPS, you do TH (with advertise) resulting in a Contact with the public IP of the SBC.</tt><br>
<tt>2) also, manually add a RR header with the private IP of OpenSIPS.</tt><br>
<tt>3) send call to SBC, which will add its own RR stuff.</tt><br>
<br>
<tt>Now, on the sequential request from Carrier, the RURI will contain the Contact of OpenSIPS (the pub IP of SBC), some Route hdrs due the SBC and the Route we added on OpenSIPS.</tt><br>
<tt>- when request gets to SBC, the SBC will do loose route, consume its Route headers, and it will use the next available Route which points to the priv IP of OpenSIPS (and it will not use the public IP in RURI for routing)</tt><br>
<tt>- requests gets to OpenSIPS, simply remove_hf() and Route headers (do not do any loose_route() as it is useless) and hit th_matching -&gt; this will refactor the request (RURI, Contact, Route) for the leg on the other side -&gt; this should be fine.</tt><br>
<br>
<tt>For the other direction (still sequential), you do th_matching on OpenSIPS and nothing more. This will send a request holding the Routes due the SBC, a Contact with the public IP and and RURI pointing probably to the carrier.</tt><br>
<br>
<tt>Shortly you do standard TH, but on outbound scenario, add a fake RR header to trick the SBC to route the sequential to your OpenSIPS.</tt><br>
<br>
<tt>Does it make sense ? </tt><br>
<br>
<br>
<tt>Regards,</tt><br>
<br>
<br>
</span><o:p></o:p></p>
<pre>Bogdan-Andrei Iancu<o:p></o:p></pre>
<pre>OpenSIPS Founder and Developer<o:p></o:p></pre>
<pre><a href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a><o:p></o:p></pre>
<div>
<p class="MsoNormal">On 29.07.2016 18:05, Newlin, Ben wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="font-size:11.0pt">Here is the scenario:</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">My servers are only listening on a private IP address. There is a public address on our SBC. I have a carrier that requires that the Contact IP address matches the public address we provided to them. So when
 I do TH on my server I have to also do set_advertised_address to advertise the public address in the Contact header. Sequential requests use the Contact as the Request URI and the SBC is doing RR so all requests will come back through it. When the SBC receives
 a sequential request it strips its Route headers and forwards to the Request URI (previous Contact URI). But that URI now points back to the SBC, so it cannot deliver the request. If my server could Record-Route the initial request with its private address,
 the SBC would be able to route the request back to it.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Here is a trace of my scenario:
<a href="http://pastebin.com/x927mFtq">http://pastebin.com/x927mFtq</a>. I created it with SIPp so some endpoints are on the same IPs but with different ports. The public IP is 192.168.99.100, with port 7060 representing the PSTN carrier and port 5060 the SBC.
 The private IP is 10.0.2.15, with port 5060 being the SBC again and port 6060 being my server. You can see that the ACK cannot be delivered correctly to my server with this configuration.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">The problem here stems from the fact that Topology Hiding should really be done at the edge of the network in order to be most effective. But my OpenSIPS server doesn’t sit on the Edge of the network, it is
 behind an SBC. So TH is complicated by the fact that my OpenSIPS has no public IP of its own and must advertise the public IP of the SBC instead, but future requests must still be routable into the private network. I am really using TH to hide the two ends
 of the call from each other, not to hide my internal network topology.</span><o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">Ben Newlin</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="color:black">From: </span></b><span style="color:black">Bogdan-Andrei Iancu
<a href="mailto:bogdan@opensips.org">&lt;bogdan@opensips.org&gt;</a><br>
<b>Date: </b>Friday, July 29, 2016 at 8:40 AM<br>
<b>To: </b>&quot;Newlin, Ben&quot; <a href="mailto:Ben.Newlin@inin.com">&lt;Ben.Newlin@inin.com&gt;</a>, OpenSIPS users mailling list
<a href="mailto:users@lists.opensips.org">&lt;users@lists.opensips.org&gt;</a><br>
<b>Subject: </b>Re: [OpenSIPS-Users] Record-Route and Dialog topology_hiding()</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:&quot;Times New Roman \, serif &quot;">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><tt><span style="font-size:10.0pt">Hi Ben,</span></tt><span style="font-size:10.0pt;font-family:&quot;Courier New \, serif &quot;"><br>
<br>
</span><tt><span style="font-size:10.0pt">Sorry to disagree, but IMHO they do exclude one each other.
</span></tt><span style="font-size:10.0pt;font-family:&quot;Courier New \, serif &quot;"><br>
<br>
</span><tt><span style="font-size:10.0pt">Adding RR to TH should not be seen as a way of fixing some broken TH scenarios (with advertise).</span></tt><span style="font-size:10.0pt;font-family:&quot;Courier New \, serif &quot;"><br>
</span><tt><span style="font-size:10.0pt">So, let me try to understand what is not working for you. You do TH and advertise. In this case, normally, in the Contact headers generated by OpenSIPS (as a result of TH), it should be the TH interface, right ? What
 exactly seems to be the problem ? do you have a trace to show the issues ?</span></tt><span style="font-size:10.0pt;font-family:&quot;Courier New \, serif &quot;"><br>
<br>
</span><tt><span style="font-size:10.0pt">Regards,</span></tt><span style="font-size:10.0pt;font-family:&quot;Courier New \, serif &quot;"><br>
<br>
<br>
<br>
</span><o:p></o:p></p>
<pre>Bogdan-Andrei Iancu<o:p></o:p></pre>
<pre>OpenSIPS Founder and Developer<o:p></o:p></pre>
<pre><a href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a><o:p></o:p></pre>
<div>
<p class="MsoNormal">On 27.07.2016 16:05, Newlin, Ben wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="font-size:11.0pt">I understand that normally you would not need RR with TH, but the two concepts are not mutually exclusive in SIP. As I said, I have a need to Record-Route the call on my server as I am advertising a different
 address than I am listening on. This means that TH will populate the Contact header with the advertised address and if I cannot Record-Route with the actual address then I will not receive sequential requests.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><span style="font-size:10.5pt;color:black">Ben Newlin</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="color:black">From: </span></b><span style="color:black">Bogdan-Andrei Iancu
<a href="mailto:bogdan@opensips.org">&lt;bogdan@opensips.org&gt;</a><br>
<b>Date: </b>Wednesday, July 27, 2016 at 3:59 AM<br>
<b>To: </b>OpenSIPS users mailling list <a href="mailto:users@lists.opensips.org">
&lt;users@lists.opensips.org&gt;</a>, &quot;Newlin, Ben&quot; <a href="mailto:Ben.Newlin@inin.com">
&lt;Ben.Newlin@inin.com&gt;</a><br>
<b>Subject: </b>Re: [OpenSIPS-Users] Record-Route and Dialog topology_hiding()</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:&quot;Times New Roman \, serif &quot;">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><tt><span style="font-size:10.0pt">Hi Ben,</span></tt><span style="font-size:10.0pt;font-family:&quot;Courier New \, serif &quot;"><br>
<br>
</span><tt><span style="font-size:10.0pt">As I mentioned in different thread, TH is not compatible with the RR mechanism. If you do TH, your OpenSIPS will act as and end point (from SIP perspective), so there will be no Route/RR headers at all. So no need to
 do loose_route or so. You just do TH matching for the sequential requests and nothing more.</span></tt><span style="font-size:10.0pt;font-family:&quot;Courier New \, serif &quot;"><br>
<br>
</span><tt><span style="font-size:10.0pt">Regards,</span></tt><span style="font-size:10.0pt;font-family:&quot;Courier New \, serif &quot;"><br>
<br>
<br>
<br>
<br>
</span><o:p></o:p></p>
<pre>Bogdan-Andrei Iancu<o:p></o:p></pre>
<pre>OpenSIPS Founder and Developer<o:p></o:p></pre>
<pre><a href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a><o:p></o:p></pre>
<div>
<p class="MsoNormal">On 22.07.2016 16:48, Newlin, Ben wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="font-size:11.0pt">Hi,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I am using the Dialog module with topology_hiding() in my server and I have a need to Record-Route the call on my server as I am advertising a different address than I am listening on. I have found what I
 believe is an inconsistency in the handling of Record-Route within the Dialog topology_hiding functionality. The topology_hiding isn’t a true B2BUA, but it does set up different parameters for the incoming UAC and outgoing UAS sides of the call for the Via
 headers, Record-Route and Route headers, and the Contact header(s).</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">The problem is that the record_route() and loose_route() functions operate on different sides of the call. The record_route() function will only add a Record-Route header to the outgoing UAS side of the call.
 And since the record_route() function cannot be called from onreply_route, but is no way to add a Record-Route header to the UAC side of the call.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">On the other hand, the loose_route() function only operates on the incoming UAC side of the call and there is no way to perform loose_route() on the UAS side of the call.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">So there is a situation where Record-Route headers can only be added on the outgoing UAS side, but the associated Route headers can only be removed on the incoming UAC side (where they won’t exist since they
 can’t be added) and any added headers on the UAS side cannot be processed properly due to the lack of loose_route.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I can provide further information if this is unclear. It should be easily reproducible by attempting to use record_route in a topology_hiding scenario. The route is added to the outbound leg, but is not removed
 by loose_route so the message is looped back every time.</span><o:p></o:p></p>
<div>
<p class="MsoNormal" style="line-height:16.8pt;background:white"><span style="font-size:9.0pt;font-family:Arial;color:#666666">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="line-height:16.8pt;background:white"><b><span style="font-size:10.0pt;font-family:Arial;color:#155570">Ben Newlin</span></b><b><span style="font-size:10.0pt;font-family:Arial;color:#666666">&nbsp;</span></b><span style="font-size:10.0pt;font-family:Arial;color:#666666">|
 Sr Voice Network Engineer, PureCloud</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="line-height:16.8pt;background:white"><span style="font-size:10.0pt;font-family:Arial;color:#666666">phone &amp; fax &#43;1.317.957.1009 |&nbsp;</span><span style="font-size:10.0pt;font-family:Arial;color:#0585A7"><a href="mailto:ben.newlin@inin.com">ben.newlin@inin.com</a>&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="line-height:16.8pt;background:white"><span style="font-size:9.0pt;font-family:Arial;color:#666666;border:solid windowtext 1.0pt;padding:0in"><img border="0" width="196" height="21" id="_x0000_i1025" src="cid:Word%20Work%20File%20D_.jpg" alt="e removed by sender."></span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="line-height:12.0pt;background:white"><span style="font-size:10.0pt;font-family:Arial;color:#0585A7"><a href="http://www.inin.com">www.inin.com</a></span><o:p></o:p></p>
</div>
<p class="MsoNormal">&nbsp;<o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:&quot;Times New Roman \, serif &quot;"><br>
<br>
<br>
<br>
<br>
<br>
</span><o:p></o:p></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>Users mailing list<o:p></o:p></pre>
<pre><a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><o:p></o:p></pre>
<pre><a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><span style="font-family:&quot;Times New Roman \, serif &quot;">&nbsp;</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<p class="MsoNormal"><span style="font-family:&quot;Times New Roman \, serif &quot;">&nbsp;</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<p class="MsoNormal"><span style="font-family:&quot;Times New Roman&quot;,&quot;serif&quot;">&nbsp;</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<p class="MsoNormal"><span style="font-family:&quot;Times New Roman&quot;,&quot;serif&quot;"><o:p>&nbsp;</o:p></span></p>
</div>
</div>
</div>
</body>
</html>