<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="http://www.w3.org/TR/REC-html40"><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;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"Times New Roman \,serif";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
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";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle23
        {mso-style-type:personal-compose;
        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 bgcolor=white lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D'>Hi,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>I tried to not calling append_branch() when last successful next_gw() using below code :<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>$var(z)=0;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>$var(a)=0;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>if (!load_gws(1, $rU, $fu)) <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                                                                  {<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                  sl_send_reply("502", "Unable To lOad GatEwAyS");<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                  exit; }<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>while(next_gw()) $var(z) = $var(z) +1;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>xlog("L_INFO", "number of gateways : $var(z)\n");   <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>load_gws(1, $rU, $fu);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                                                while (next_gw()){<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                                xlog("L_INFO", "gateway is : $ru\n");  <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                                $var(a)=$var(a)+1;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                                if($var(a)!=$var(z))append_branch();<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                                <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                                }</span><span style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>In this case I’m getting in contact headers the following gateways : 3,1,2<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Regards,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Ali<o:p></o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='color:windowtext'>From:</span></b><span style='color:windowtext'> Ali Taher [mailto:ataher@vanrise.com] <br><b>Sent:</b> Thursday, June 04, 2015 5:44 PM<br><b>To:</b> miconda@gmail.com; 'Kamailio (SER) - Users Mailing List'<br><b>Cc:</b> 'Ali Taher~Vanrise Technical Support'<br><b>Subject:</b> RE: [SR-Users] Kamailio second contact header<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='color:#1F497D'>Hi Daniel,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>If it is the case then the ordering shouldn’t be 1,2,3,3  ?  but I’m getting 3,1,2,3.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>I tried to set $(branch(uri)[-1]) = $null; after the while block , but nothing changed </span><span style='font-family:Wingdings;color:#1F497D'>L</span><span style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Ali<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='color:windowtext'>From:</span></b><span style='color:windowtext'> Daniel-Constantin Mierla [<a href="mailto:miconda@gmail.com">mailto:miconda@gmail.com</a>] <br><b>Sent:</b> Thursday, June 04, 2015 5:28 PM<br><b>To:</b> Ali Taher; 'Kamailio (SER) - Users Mailing List'<br><b>Subject:</b> Re: [SR-Users] Kamailio second contact header<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>Hello,<br><br>next_gw() is also setting the r-uri, so for the last successful next_gw() you should not call anymore append_branch(). Try to remove the last branch after the while block:<br><br>$(branch(uri)[-1]) = $null;<br><br>Cheers,<br>Daniel<span style='font-size:12.0pt'><o:p></o:p></span></p><div><p class=MsoNormal>On 04/06/15 16:01, Ali Taher wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span style='color:#1F497D'>Hi Daniel,</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>I’m using this method because I’m having issue with append_branch where last gateway is listed first.</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>For example if gateways are ordered in LCR_rule_target as 1,2,3  , I’m having them in contact header as : 3,1,2,3</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>I’m using below code : </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>if (!load_gws(1, $rU, $fu)) {</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                  sl_send_reply("502", "Unable To lOad GatEwAyS");</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                  exit;}</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                  while(next_gw()){</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                  append_branch(); }</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                  sl_send_reply("302","Moved Temporary");</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                  exit;                                     </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D;background:silver;mso-highlight:silver'>                }</span><span style='color:#1F497D'>  </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>Any hint regarding the above would be appreciated.</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>Regards,</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>Ali</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'> </span><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><span style='color:windowtext'>From:</span></b><span style='color:windowtext'> sr-users [<a href="mailto:sr-users-bounces@lists.sip-router.org">mailto:sr-users-bounces@lists.sip-router.org</a>] <b>On Behalf Of </b>Daniel-Constantin Mierla<br><b>Sent:</b> Thursday, June 04, 2015 4:41 PM<br><b>To:</b> Kamailio (SER) - Users Mailing List<br><b>Subject:</b> Re: [SR-Users] Kamailio second contact header</span><o:p></o:p></p></div></div><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>Hello,<br><br>the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either).<br><br>The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely.<br><br>Cheers,<br>Daniel<o:p></o:p></p><div><p class=MsoNormal>On 04/06/15 13:59, Ali Taher wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal>Hello,<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>I’m trying to build new contact header that will be sent from Kamailio as below :<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><span style='background:silver;mso-highlight:silver'>load_gws(1, $rU, $fu);</span><o:p></o:p></p><p class=MsoNormal><span style='background:silver;mso-highlight:silver'>append_to_reply("Contact:");</span><o:p></o:p></p><p class=MsoNormal><span style='background:silver;mso-highlight:silver'>                                                while (next_gw())</span><o:p></o:p></p><p class=MsoNormal><span style='background:silver;mso-highlight:silver'>                                {</span><o:p></o:p></p><p class=MsoNormal><span style='background:silver;mso-highlight:silver'>                                                                append_to_reply("$ru");</span><o:p></o:p></p><p class=MsoNormal><span style='background:silver;mso-highlight:silver'>                                }</span><o:p></o:p></p><p class=MsoNormal><span style='background:silver;mso-highlight:silver'>                                append_to_reply("\r\n");</span><o:p></o:p></p><p class=MsoNormal><span style='background:silver;mso-highlight:silver'>                                sl_send_reply("300","Multiple Choices");</span><o:p></o:p></p><p class=MsoNormal style='margin-left:.5in'><span style='background:silver;mso-highlight:silver'>                exit;</span>   <o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>yet I’m getting two Contact headers as shown in below SIP message.<o:p></o:p></p><p class=MsoNormal>How can I remove second contact header (highlighted below in gray)<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport=42528;received=192.168.26.3<o:p></o:p></p><p class=MsoNormal>To: “9612"<a href="sip:9612@192.168.110.181"><sip:9612@192.168.110.181></a>;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d<o:p></o:p></p><p class=MsoNormal>From: "test"<a href="sip:test@192.168.110.181"><sip:test@192.168.110.181></a>;tag=8571af74<o:p></o:p></p><p class=MsoNormal>Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY<o:p></o:p></p><p class=MsoNormal>CSeq: 2 INVITE<o:p></o:p></p><p class=MsoNormal><span style='background:yellow;mso-highlight:yellow'>Contact: <a href="sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.26.8">sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.26.8</a></span><o:p></o:p></p><p class=MsoNormal><span style='background:silver;mso-highlight:silver'>Contact: <a href="sip:9612@192.168.26.8">sip:9612@192.168.26.8</a></span><o:p></o:p></p><p class=MsoNormal>Server: kamailio (4.1.8 (x86_64/linux))<o:p></o:p></p><p class=MsoNormal>Content-Length: 0<o:p></o:p></p><p class=MsoNormal> <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>Ali<o:p></o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'><span style='font-size:12.0pt;font-family:"Times New Roman \,serif"'><br><br><br></span><o:p></o:p></p><pre>_______________________________________________<o:p></o:p></pre><pre>SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list<o:p></o:p></pre><pre><a href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a><o:p></o:p></pre><pre><a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><o:p></o:p></pre></blockquote><p class=MsoNormal style='margin-bottom:12.0pt'><span style='font-size:12.0pt;font-family:"Times New Roman \,serif"'><br><br></span><o:p></o:p></p><pre>-- <o:p></o:p></pre><pre>Daniel-Constantin Mierla<o:p></o:p></pre><pre><a href="http://twitter.com/#%21/miconda">http://twitter.com/#!/miconda</a> - <a href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a><o:p></o:p></pre><pre>Book: SIP Routing With Kamailio - <a href="http://www.asipto.com">http://www.asipto.com</a><o:p></o:p></pre></blockquote><p class=MsoNormal style='margin-bottom:12.0pt'><span style='font-size:12.0pt;font-family:"Times New Roman",serif'><o:p> </o:p></span></p><pre>-- <o:p></o:p></pre><pre>Daniel-Constantin Mierla<o:p></o:p></pre><pre><a href="http://twitter.com/#!/miconda">http://twitter.com/#!/miconda</a> - <a href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a><o:p></o:p></pre><pre>Book: SIP Routing With Kamailio - <a href="http://www.asipto.com">http://www.asipto.com</a><o:p></o:p></pre></div></body></html>