<div dir="ltr"><div style="font-size:12.8px"><span style="font-family:monospace"><span style="color:rgb(0,0,0)">I confirm, your suggestion works perfect :</span></span></div><div style="font-size:12.8px"><span style="font-family:monospace"><span style="color:rgb(0,0,0)"><br></span></span></div><div style="font-size:12.8px"><span style="font-family:monospace"><span style="color:rgb(0,0,0)">failure_route</span><span style="font-weight:bold;color:rgb(84,255,84)">[GW_FAILOVER]</span><span style="color:rgb(0,0,0)"> { </span><br><br> if (t_was_cancelled()) { <br> exit<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br> } <br><br> <span style="font-weight:bold;color:rgb(84,255,255)"># detect failure and redirect to next available GW</span><span style="color:rgb(0,0,0)"> </span><br> if (t_check_status("(408)|488|(<span style="font-weight:bold;color:rgb(84,255,84)">[<wbr>56][0-9][0-9]</span><span style="color:rgb(0,0,0)">)")) { </span><br> xlog("Failed GW $rd detected \n")<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br><br> if ( use_next_gw() ) { <br> t_on_<wbr>failure("GW_FAILOVER")<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span></span></div><div style="font-size:12.8px"><span style="font-family:monospace"><font color="#000000"> </font><font color="#ff0000"> </font></span><font color="#ff0000"><b><span style="font-family:monospace;font-size:10.4px">do_accounting("db|log","</span><span style="font-family:monospace;font-size:10.4px">faile<wbr>d|missed",)</span><span style="font-family:monospace;font-size:10.4px">;</span></b></font><span style="font-family:monospace"><font color="#000000"><br></font> t_<wbr>relay()<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br> exit<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br> } <br><br> send_reply("<wbr>500","All GW are down")<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br> } <br>}</span></div><div style="font-size:12.8px"><span style="font-family:monospace"><br></span></div><div style="font-size:12.8px"><span style="font-family:monospace"><br></span></div><div style="font-size:12.8px"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 16, 2017 at 11:35 AM, Răzvan Crainea <span dir="ltr"><<a href="mailto:razvan@opensips.org" target="_blank">razvan@opensips.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<tt>Yes, please try that. To be honest, I've never done it using the
new accounting module, but this might do the trick.<br>
Also, did you take a look at the multi-legging accounting?<br>
<br>
Best regards,<br>
</tt><span class="">
<pre class="m_395205357596653101moz-signature" cols="72">Răzvan Crainea
OpenSIPS Solutions
<a class="m_395205357596653101moz-txt-link-abbreviated" href="http://www.opensips-solutions.com" target="_blank">www.opensips-solutions.com</a></pre>
</span><div><div class="h5"><div class="m_395205357596653101moz-cite-prefix">On 01/16/2017 01:18 PM, Khalil
Khamlichi wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Oki, I will modify my old failure_route :
<div><br>
</div>
<div><br>
</div>
<div><span style="font-family:monospace"><span style="color:rgb(0,0,0)">failure_route</span><span style="font-weight:bold;color:rgb(84,255,84)">[GW_FAILOVER]</span><span style="color:rgb(0,0,0)"> {
</span><br>
<br>
if (t_was_cancelled()) {
<br>
exit<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)">
</span><br>
}
<br>
<br>
<span style="font-weight:bold;color:rgb(84,255,255)">#
detect failure and redirect to next available GW</span><span style="color:rgb(0,0,0)">
</span><br>
if (t_check_status("(408)|488|(<span style="font-weight:bold;color:rgb(84,255,84)">[<wbr>56][0-9][0-9]</span><span style="color:rgb(0,0,0)">)")) {
</span><br>
#xlog("Failed GW $rd detected \n")<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)">
</span><br>
<br>
if ( use_next_gw() ) {
<br>
t_on_<wbr>failure("GW_FAILOVER")<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)">
</span><br>
t_<wbr>relay()<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)">
</span><br>
exit<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)">
</span><br>
}
<br>
<br>
send_reply("<wbr>500","All GW are down")<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)">
</span><br>
}
<br>
}<br>
<br>
</span></div>
<div><span style="font-family:monospace"><br>
</span></div>
<div><span style="font-family:monospace">to :</span></div>
<div><span style="font-family:monospace"><br>
</span></div>
<div><span style="font-family:monospace"><br>
</span></div>
<div><span style="font-family:monospace"><span style="color:rgb(0,0,0)">failure_route</span><span style="font-weight:bold;color:rgb(84,255,84)">[GW_FAILOVER]</span><span style="color:rgb(0,0,0)"> {
</span><br>
<br>
if (t_was_cancelled()) {
<br>
exit<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)">
</span><br>
}
<br>
<br>
<span style="font-weight:bold;color:rgb(84,255,255)">#
detect failure and redirect to next available GW</span><span style="color:rgb(0,0,0)">
</span><br>
if (t_check_status("(408)|488|(<span style="font-weight:bold;color:rgb(84,255,84)">[<wbr>56][0-9][0-9]</span><span style="color:rgb(0,0,0)">)")) {
</span><br>
xlog("Failed GW $rd detected \n")<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)">
</span><br>
<br>
if ( use_next_gw() ) {
<br>
t_on_<wbr>failure("GW_FAILOVER")<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span></span></div>
<div><span style="font-family:monospace"><font color="#000000">
</font><font color="#ff0000"> </font></span><font color="#ff0000"><b><span style="font-family:monospace;font-size:10.4px">do_accounting("db|log","</span><span style="font-family:monospace;font-size:10.4px">faile<wbr>d|missed",)</span><span style="font-family:monospace;font-size:10.4px">;</span></b></font><span style="font-family:monospace"><font color="#000000"><br>
</font> t_<wbr>relay()<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)">
</span><br>
exit<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)">
</span><br>
}
<br>
<br>
send_reply("<wbr>500","All GW are down")<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)">
</span><br>
}
<br>
}<br>
<br>
</span></div>
<div><br>
</div>
<div><font face="monospace">right ?</font></div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Jan 16, 2017 at 11:07 AM,
Răzvan Crainea <span dir="ltr"><<a href="mailto:razvan@opensips.org" target="_blank">razvan@opensips.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"> <tt>I was asking you
to call do_accounting() in failure route, for each leg.<br>
<br>
Best regards,<br>
</tt><span>
<pre class="m_395205357596653101m_-6428306416065768007moz-signature" cols="72">Răzvan Crainea
OpenSIPS Solutions
<a class="m_395205357596653101m_-6428306416065768007moz-txt-link-abbreviated" href="http://www.opensips-solutions.com" target="_blank">www.opensips-solutions.com</a></pre>
</span>
<div>
<div class="m_395205357596653101h5">
<div class="m_395205357596653101m_-6428306416065768007moz-cite-prefix">On
01/16/2017 12:02 PM, Khalil Khamlichi wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">sorry mistype, I am calling
do_accounting() twice.</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Jan 16, 2017 at
9:47 AM, Khalil Khamlichi <span dir="ltr"><<a href="mailto:khamlichi.khalil@gmail.com" target="_blank">khamlichi.khalil@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">thanks for your much
appreciated help,
<div>I am calling do_routing twice.</div>
<div><br>
<div>Here is my actual opensips.cfg : </div>
<div><br>
</div>
<div>route {</div>
<div>
<div><span style="font-family:monospace">...</span></div>
<div><span style="font-family:monospace">...</span></div>
<div><span style="font-family:monospace"><br>
</span></div>
<div><span style="font-family:monospace">...</span></div>
<div><span style="font-family:monospace">...</span></div>
</div>
<div><span style="font-family:monospace"><span style="color:rgb(0,0,0)"> if
(has_totag()) { </span><br>
<span style="font-weight:bold;color:rgb(84,255,255)">#
sequential request withing a dialog
should</span><span style="color:rgb(0,0,0)"> </span><br>
<span style="font-weight:bold;color:rgb(84,255,255)">#
take the path determined by
record-routing</span><span style="color:rgb(0,0,0)"> </span><br>
if (loose_route()) { <br>
<br>
<span style="font-weight:bold;color:rgb(84,255,255)">#
validate the sequential request
against dialog</span><span style="color:rgb(0,0,0)"> </span><br>
if (
$DLG_status!=<span style="font-weight:bold;color:rgb(255,84,255)">NULL
&& !validate_dialog() ) {</span><span style="color:rgb(0,0,0)"> </span><br>
<wbr> xlog("In-Dialog
$rm from $si (callid=<span style="font-weight:bold;color:rgb(255,84,255)">$ci)
is not valid according to dialog\n")</span><span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br>
} <br>
<br>
if
(is_method("BYE")) { <br>
<wbr> <span style="font-weight:bold;color:rgb(84,255,255)"># do accounting even if
the transaction fails</span><span style="color:rgb(0,0,0)"> </span><br>
<wbr> do_accounting("db|log","faile<wbr>d|missed",)<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br>
} else if
(is_method("INVITE")) { <br>
<wbr> <span style="font-weight:bold;color:rgb(84,255,255)"># even if in most of the
cases is useless, do RR for</span><span style="color:rgb(0,0,0)"> </span><br>
<wbr> <span style="font-weight:bold;color:rgb(84,255,255)"># re-INVITEs alos, as
some buggy clients do change route
set</span><span style="color:rgb(0,0,0)"> </span><br>
<wbr> <span style="font-weight:bold;color:rgb(84,255,255)"># during the dialog.</span><span style="color:rgb(0,0,0)"> </span><br>
<wbr> record_route()<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br>
}<br>
...</span></div>
<div><span style="font-family:monospace">...</span></div>
<div><span style="font-family:monospace"><br>
</span></div>
<div><span style="font-family:monospace">...</span></div>
<div><span style="font-family:monospace">...</span></div>
<div><span style="font-family:monospace"><span style="color:rgb(0,0,0)">
$acc_extra(gwid)=</span><span style="font-weight:bold;color:rgb(255,84,255)">$avp(gw_id)</span><span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br>
<br>
t_on_failure("GW_FAILOV<wbr>ER")<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br>
<br>
do_accounting("db|log",<wbr>"cdr|missed",)<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br>
<span style="font-weight:bold;color:rgb(84,255,255)">#NAT
</span><span style="color:rgb(0,0,0)"> </span><br>
if (isbflagset(NAT))
setflag(NAT)<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br>
<span style="font-weight:bold;color:rgb(84,255,255)">#NAT</span><span style="color:rgb(0,0,0)"> </span><br>
route(RELAY)<span style="font-weight:bold;color:rgb(84,255,255)">;</span><span style="color:rgb(0,0,0)"> </span><br>
}<br>
<br>
</span></div>
<div># END OF MAIN ROUTE</div>
<div>
<div class="m_395205357596653101m_-6428306416065768007h5">
<div><br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Jan
16, 2017 at 8:51 AM, Răzvan
Crainea <span dir="ltr"><<a href="mailto:razvan@opensips.org" target="_blank">razvan@opensips.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF"> <tt>Hi,
Khalil!<br>
<br>
Did you try to call the
do_accounting() function for
each leg going to the next
gateway?<br>
<br>
Best regards,<br>
</tt>
<pre class="m_395205357596653101m_-6428306416065768007m_5885067735228918325gmail-m_4018356164897762301m_1440895108582141234moz-signature" cols="72">Răzvan Crainea
OpenSIPS Solutions
<a class="m_395205357596653101m_-6428306416065768007m_5885067735228918325gmail-m_4018356164897762301m_1440895108582141234moz-txt-link-abbreviated" href="http://www.opensips-solutions.com" target="_blank">www.opensips-solutions.com</a></pre>
<div>
<div class="m_395205357596653101m_-6428306416065768007m_5885067735228918325gmail-m_4018356164897762301h5">
<div class="m_395205357596653101m_-6428306416065768007m_5885067735228918325gmail-m_4018356164897762301m_1440895108582141234moz-cite-prefix">On
01/15/2017 12:24 AM,
Khalil Khamlichi wrote:<br>
</div>
</div>
</div>
<blockquote type="cite">
<div>
<div class="m_395205357596653101m_-6428306416065768007m_5885067735228918325gmail-m_4018356164897762301h5">
<div dir="ltr">Hi,
<div>I am testing
opensips 2.2, 2.3 I
have tried to
configure acc module
to save to db failed
calls on drouting
configuration, I
have found that it
does save only the
first failed call
(that is the first
gateway) it does not
save to database any
other failures on
second and third
gateways that are
tried for the call.</div>
<div>is this the
expected behavioure
?</div>
<div>Thanks for your
help.</div>
<div><br>
</div>
<div>regards,</div>
<div>kh</div>
</div>
<br>
<fieldset class="m_395205357596653101m_-6428306416065768007m_5885067735228918325gmail-m_4018356164897762301m_1440895108582141234mimeAttachmentHeader"></fieldset>
<br>
</div>
</div>
<pre>______________________________<wbr>_________________
Users mailing list
<a class="m_395205357596653101m_-6428306416065768007m_5885067735228918325gmail-m_4018356164897762301m_1440895108582141234moz-txt-link-abbreviated" href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a class="m_395205357596653101m_-6428306416065768007m_5885067735228918325gmail-m_4018356164897762301m_1440895108582141234moz-txt-link-freetext" href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-<wbr>bin/mailman/listinfo/users</a>
</pre>
</blockquote>
</div>
______________________________<wbr>_________________
Users mailing list
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.opensips.org/cgi-<wbr>bin/mailman/listinfo/users</a>
</blockquote></div>
</div></div></div></div></div>
</blockquote></div>
</div>
<fieldset class="m_395205357596653101m_-6428306416065768007mimeAttachmentHeader"></fieldset>
<pre>______________________________<wbr>_________________
Users mailing list
<a class="m_395205357596653101m_-6428306416065768007moz-txt-link-abbreviated" href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a class="m_395205357596653101m_-6428306416065768007moz-txt-link-freetext" href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-<wbr>bin/mailman/listinfo/users</a>
</pre>
</blockquote>
</div></div></div>
______________________________<wbr>_________________
Users mailing list
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.opensips.org/cgi-<wbr>bin/mailman/listinfo/users</a>
</blockquote></div>
</div>
<fieldset class="m_395205357596653101mimeAttachmentHeader"></fieldset>
<pre>______________________________<wbr>_________________
Users mailing list
<a class="m_395205357596653101moz-txt-link-abbreviated" href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a class="m_395205357596653101moz-txt-link-freetext" href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-<wbr>bin/mailman/listinfo/users</a>
</pre>
</blockquote>
</div></div></div><br>______________________________<wbr>_________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org">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-<wbr>bin/mailman/listinfo/users</a><br>
<br></blockquote></div><br></div>