<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:"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";
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* 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;}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
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:windowtext;}
span.EmailStyle23
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle24
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle25
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle26
        {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:blue">Hi Bogdan,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:blue"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:blue">In onreply_route(), it logs all the incoming response to OpenSIPS.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:blue">My intention is to log and print the outgoing response from OpenSIPS.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:blue"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:blue">A -------->OpenSIPS------->B <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:blue"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:blue">Here when User A calling User B, via OpenSIPS proxy, I am logging response am getting from User B.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:blue">I also want to log the response sent from OpenSIPS to User A.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:blue">
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:blue">As per my understanding , to log the response I have to do in source code from where the response is sent. Due to some formatting we need for the project it is easy if I handle it in config file. So am calling
relay2(route) and printing the logs. <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:blue"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:blue">Now please guide me what am doing is right or not, if not let me know what could be the best way to handle this.?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:blue"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:blue">P.S : I want to log something like this.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:blue">xlog("INFO: event=Reply_from_client; reason=$rr; status=$rs [from=$fu;fromtag=$ft;to=$tu;totag=$tt;callId=$ci]\n");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:blue"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:blue">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:blue">Agalya<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"> Bogdan-Andrei Iancu [mailto:bogdan@opensips.org]
<br>
<b>Sent:</b> Friday, July 29, 2016 8:46 AM<br>
<b>To:</b> Ramachandran, Agalya (Contractor) <Agalya_Ramachandran@comcast.com>; OpenSIPS users mailling list <users@lists.opensips.org><br>
<b>Subject:</b> Re: [OpenSIPS-Users] Provisional response handling in case of forking<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><tt><span style="font-size:10.0pt">Hi Agalya,</span></tt><span style="font-size:10.0pt;font-family:"Courier New""><br>
<br>
<tt>In the onreply_route(), the logic seems ok: </tt><br>
<tt> * if flag set -> drop and log</tt><br>
<tt> * for all 180, set the flag.</tt><br>
<tt>This should allow only the first 180 reply to pass.</tt><br>
<br>
<tt>But I do not understand what is the purpose of the relay2 route? the onreply route should go everything you need (in terms of 180 logic).</tt><br>
<br>
<tt>Regards,</tt><br>
<br>
</span><span style="font-size:12.0pt"><o:p></o:p></span></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:27, Ramachandran, Agalya (Contractor) wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:blue">Hi Bogdan, </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">Yes you are correct. Am trying to implement that logic. (</span><tt><span style="font-size:10.0pt">keep and log the first 180, drop the others)</span></tt><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">Am giving you snippet of onreply_route and relay2 attached here with this mail.
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">My intention is just to log the response sent by OpenSIPS. For other responses logic seems good and I could see that response sent out are logged. </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">Only for 180 resposne, am not meeting my condition.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">Correct me if am wrong. </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">Regards,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">Agalya</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"> Bogdan-Andrei Iancu [<a href="mailto:bogdan@opensips.org">mailto:bogdan@opensips.org</a>]
<br>
<b>Sent:</b> Wednesday, July 27, 2016 3:22 AM<br>
<b>To:</b> Ramachandran, Agalya (Contractor) <a href="mailto:Agalya_Ramachandran@comcast.com">
<Agalya_Ramachandran@comcast.com></a>; OpenSIPS users mailling list <a href="mailto:users@lists.opensips.org">
<users@lists.opensips.org></a><br>
<b>Subject:</b> Re: [OpenSIPS-Users] Provisional response handling in case of forking</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><tt><span style="font-size:10.0pt">Hi Agalya,</span></tt><span style="font-size:10.0pt;font-family:"Courier New""><br>
<br>
<tt>First, take care that you can set and trigger only one reply route per transaction !</tt><br>
<br>
<tt>Now, looking at your logic in the script, it does not reflect your statement : keep and log the first 180, drop the others <- is this correct ?</tt><br>
<br>
<tt>Best 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 26.07.2016 21:26, Ramachandran, Agalya (Contractor) wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:blue">Hi Bogdan,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">I have a question related to the below topic.
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">When am receiving more than 180 response from different destinations , am sending 1<sup>st</sup> 180 to the caller and dropping consecutive 180 ‘s.
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">And this logic is working fine.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">Now I have a scenario, where I need to log what are the responses sent out of Opensips.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">My logic for this is, am checking the flag value. If flag is set, log the 1<sup>st</sup> 180 response, reset the flag and drop the remaining 180 response.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">I could see FLAG_180 is set, and when I try to reset flag
<b>is not getting reset</b>. Is it not possible to reset the flag values when relay is done?</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">I have added a route(relay2) in onreply_route Below is the snippet of it.
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">Please guide me if am doing something wrong.
</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:red">route[relay2] {</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> if ($rs==100)</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> drop();</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> if ($rs==180) {</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> if (isflagset(FLAG_180)){</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> xlog(<a href="INFO:opensips:Flagisset%5Cn">"INFO:opensips: Flag is set \n"</a>);</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> resetflag(FLAG_180);</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> }</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> else{</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> drop();</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> }</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> #setflag(FLAG_180);</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> }</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red"> xlog(<a href="INFO:opensips:Sending$rsresposneout\n">"INFO:opensips: Sending $rs resposne out \n"</a>);</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:red">}</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"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:blue">Regards,<br>
Agalya</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"> Bogdan-Andrei Iancu [<a href="mailto:bogdan@opensips.org">mailto:bogdan@opensips.org</a>]
<br>
<b>Sent:</b> Monday, June 13, 2016 6:31 AM<br>
<b>To:</b> OpenSIPS users mailling list <a href="mailto:users@lists.opensips.org">
<users@lists.opensips.org></a>; Ramachandran, Agalya (Contractor) <a href="mailto:Agalya_Ramachandran@comcast.com">
<Agalya_Ramachandran@comcast.com></a><br>
<b>Subject:</b> Re: [OpenSIPS-Users] Provisional response handling in case of forking</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><tt><span style="font-size:10.0pt">Hi Agalya,</span></tt><span style="font-size:10.0pt;font-family:"Courier New""><br>
<br>
<tt>Use the onreply route (be sure to onreply_avp_mode to be set to 1 - see <a href="http://www.opensips.org/html/docs/modules/2.2.x/tm.html#id294290">
http://www.opensips.org/html/docs/modules/2.2.x/tm.html#id294290</a>) in combination with flags, to record when the an 180 reply was set.
</tt><br>
<br>
<tt>Like:</tt><br>
<br>
<tt>if ($rs==180) {</tt><br>
<tt> if (isflagset(FLAG_180))</tt><br>
<tt> drop();</tt><br>
<tt> setflag(FALG_180);</tt><br>
<tt>}</tt><br>
<br>
<tt>The onreply_avp_mode 1 will ensure that the onreply route will not overlap for 2 replies .</tt><br>
<br>
<tt>Regards,</tt><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 10.06.2016 23:07, Ramachandran, Agalya (Contractor) wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal">Hi team,<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">We are using opensips for our project and we are currently using opensips as proxy.<o:p></o:p></p>
<p class="MsoNormal">Am forking the incoming sip call, to two destinations. It Rings in both Dest A and Dest B, as a result I get two 180 Ringing response from A and B.<o:p></o:p></p>
<p class="MsoNormal">I want to filter only the first incoming 180 Ringing response and send to the actual caller. Is there a way to do this in opensips config file?<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">I have seen drop() function which drops the complete provisional response. But in my case I have to forward one 180 Ringing to the caller.
<o:p></o:p></p>
<p class="MsoNormal">Can it be achieved by the changes in config file? Please guide me.<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Regards,<br>
Agalya<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif"><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-size:12.0pt;font-family:"Times New Roman",serif"> </span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman ,serif",serif"> </span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif"><o:p> </o:p></span></p>
</div>
</body>
</html>