<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
<tt>Hello Mark,<br>
<br>
Your script does not handle sequential request (like BYE) at all.
I would strongly suggest to follow this webinar
<a class="moz-txt-link-freetext" href="http://www.opensips.org/Documentation/Webinars#toc12">http://www.opensips.org/Documentation/Webinars#toc12</a> in order to
understand the record routing and loose routing mechanisms in SIP.
After that, you need to change your script accordingly (you can
check the default opensips script - the part with the
loose_route() function ).<br>
<br>
Regards,<br>
</tt>
<pre class="moz-signature" cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a class="moz-txt-link-freetext" href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a></pre>
<br>
On 05/10/2013 06:36 PM, Mark Lassing wrote:
<blockquote
cite="mid:zarafa.518d1404.579c.7a36e22b246e2daa@truus.netformatie.lan"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<meta name="Generator" content="Microsoft Word 12 (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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.E-mailStijl17
{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:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
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]-->
<div class="WordSection1">
<p class="MsoNormal">Hi all,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am trying to use the drouting module, <o:p></o:p></p>
<p class="MsoNormal">this is working as expected, calls get
passed to the right gw, call setup and audio is all working
fine, <o:p></o:p></p>
<p class="MsoNormal">but the bye request packets do not seem to
be relayed to the destination gw, causing lot of retransmits.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">How to solve this issue ? If more
informations is needed please feel free to ask me.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">--<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Mark<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#### Global ####<o:p></o:p></p>
<p class="MsoNormal">debug=6<o:p></o:p></p>
<p class="MsoNormal">log_stderror=no<o:p></o:p></p>
<p class="MsoNormal">log_facility=LOG_LOCAL0<o:p></o:p></p>
<p class="MsoNormal">fork=yes<o:p></o:p></p>
<p class="MsoNormal">children=4<o:p></o:p></p>
<p class="MsoNormal">auto_aliases=no<o:p></o:p></p>
<p class="MsoNormal">listen=udp:213.***.***.***:5060<o:p></o:p></p>
<p class="MsoNormal">disable_tcp=no<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">####### Modules Section ########<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#set module path<o:p></o:p></p>
<p class="MsoNormal">mpath="/usr/lib/opensips/modules/"<o:p></o:p></p>
<p class="MsoNormal">loadmodule "db_mysql.so"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#### DROUTING module<o:p></o:p></p>
<p class="MsoNormal">loadmodule "drouting.so"<o:p></o:p></p>
<p class="MsoNormal">modparam("drouting", "db_url",
"mysql://*****:*****@localhost/opensips")<o:p></o:p></p>
<p class="MsoNormal">modparam("drouting", "probing_interval",
60)<o:p></o:p></p>
<p class="MsoNormal">modparam("drouting", "probing_from",
<a class="moz-txt-link-rfc2396E" href="sip:probe@q.*****.**">"sip:probe@q.*****.**"</a>)<o:p></o:p></p>
<p class="MsoNormal">modparam("drouting", "probing_method",
"OPTIONS")<o:p></o:p></p>
<p class="MsoNormal">modparam("drouting", "probing_reply_codes",
"501, 403, 404")<o:p></o:p></p>
<p class="MsoNormal">modparam("drouting", "use_domain", 1)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#### Transaction Module<o:p></o:p></p>
<p class="MsoNormal">loadmodule "tm.so"<o:p></o:p></p>
<p class="MsoNormal">modparam("tm", "fr_timer", 5)<o:p></o:p></p>
<p class="MsoNormal">modparam("tm", "fr_inv_timer", 30)<o:p></o:p></p>
<p class="MsoNormal">modparam("tm", "restart_fr_on_each_reply",
0)<o:p></o:p></p>
<p class="MsoNormal">modparam("tm", "onreply_avp_mode", 1)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#### SIGNALING module<o:p></o:p></p>
<p class="MsoNormal">loadmodule "signaling.so"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#### StateLess module<o:p></o:p></p>
<p class="MsoNormal">loadmodule "sl.so"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#### SIP MSG OPerationS module<o:p></o:p></p>
<p class="MsoNormal">loadmodule "sipmsgops.so"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#### Record Route Module<o:p></o:p></p>
<p class="MsoNormal">loadmodule "rr.so"<o:p></o:p></p>
<p class="MsoNormal">/* do not append from tag to the RR (no
need for this script) */<o:p></o:p></p>
<p class="MsoNormal">modparam("rr", "append_fromtag", 1)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#### MAX ForWarD module<o:p></o:p></p>
<p class="MsoNormal">loadmodule "maxfwd.so"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">####### Routing Logic ########<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># main request routing logic<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">route{<o:p></o:p></p>
<p class="MsoNormal"> if
(!mf_process_maxfwd_header("10")) {<o:p></o:p></p>
<p class="MsoNormal"> sl_send_reply("483","Too
Many Hops");<o:p></o:p></p>
<p class="MsoNormal"> exit;<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> if (method == "INVITE") {<o:p></o:p></p>
<p class="MsoNormal"> setflag(1); <o:p></o:p></p>
<p class="MsoNormal"> record_route();<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"> xlog("INBOUND
CALL,$dd,$ru,$ci,$fn,$fu,$tU@$td");<o:p></o:p></p>
<p class="MsoNormal"> route(10);<o:p></o:p></p>
<p class="MsoNormal"> exit;<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">route[10] {<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> if (!do_routing("0")) { <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> xlog("do_routing: No rules
matching the URI\n");<o:p></o:p></p>
<p class="MsoNormal"> send_reply("503","No rules
matching the URI");<o:p></o:p></p>
<p class="MsoNormal"> exit;<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> if (is_method("INVITE")) { <o:p></o:p></p>
<p class="MsoNormal"> t_on_failure("10");<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"> route(1);<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">route[1] {<o:p></o:p></p>
<p class="MsoNormal"> xlog("route(1)\n");<o:p></o:p></p>
<p class="MsoNormal"># sl_send_reply("100", "Trying");<o:p></o:p></p>
<p class="MsoNormal"> if(!t_relay())<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal"> sl_reply_error();<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">failure_route[10] {<o:p></o:p></p>
<p class="MsoNormal"> xlog("DEBUG: DROUTING failure route
active\n");<o:p></o:p></p>
<p class="MsoNormal"> if (t_was_cancelled()) {<o:p></o:p></p>
<p class="MsoNormal"> exit;<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"> if (t_check_status("[34][0-9][0-9]")) {<o:p></o:p></p>
<p class="MsoNormal"> exit;<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> if (use_next_gw()) {<o:p></o:p></p>
<p class="MsoNormal"> t_relay();<o:p></o:p></p>
<p class="MsoNormal"> exit;<o:p></o:p></p>
<p class="MsoNormal"> } else {<o:p></o:p></p>
<p class="MsoNormal"> t_reply ("503", "Service not
available");<o:p></o:p></p>
<p class="MsoNormal"> exit;<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
Users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a>
<a class="moz-txt-link-freetext" href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
</blockquote>
</body>
</html>