<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 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]--></head><body lang=NL link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hi all,<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</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>&nbsp;</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>&nbsp;</o:p></p><p class=MsoNormal>--<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Mark<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</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>&nbsp;</o:p></p><p class=MsoNormal>####### Modules Section ########<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>#set module path<o:p></o:p></p><p class=MsoNormal>mpath=&quot;/usr/lib/opensips/modules/&quot;<o:p></o:p></p><p class=MsoNormal>loadmodule &quot;db_mysql.so&quot;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>#### DROUTING module<o:p></o:p></p><p class=MsoNormal>loadmodule &quot;drouting.so&quot;<o:p></o:p></p><p class=MsoNormal>modparam(&quot;drouting&quot;, &quot;db_url&quot;, &quot;mysql://*****:*****@localhost/opensips&quot;)<o:p></o:p></p><p class=MsoNormal>modparam(&quot;drouting&quot;, &quot;probing_interval&quot;, 60)<o:p></o:p></p><p class=MsoNormal>modparam(&quot;drouting&quot;, &quot;probing_from&quot;, &quot;sip:probe@q.*****.**&quot;)<o:p></o:p></p><p class=MsoNormal>modparam(&quot;drouting&quot;, &quot;probing_method&quot;, &quot;OPTIONS&quot;)<o:p></o:p></p><p class=MsoNormal>modparam(&quot;drouting&quot;, &quot;probing_reply_codes&quot;, &quot;501, 403, 404&quot;)<o:p></o:p></p><p class=MsoNormal>modparam(&quot;drouting&quot;, &quot;use_domain&quot;, 1)<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>#### Transaction Module<o:p></o:p></p><p class=MsoNormal>loadmodule &quot;tm.so&quot;<o:p></o:p></p><p class=MsoNormal>modparam(&quot;tm&quot;, &quot;fr_timer&quot;, 5)<o:p></o:p></p><p class=MsoNormal>modparam(&quot;tm&quot;, &quot;fr_inv_timer&quot;, 30)<o:p></o:p></p><p class=MsoNormal>modparam(&quot;tm&quot;, &quot;restart_fr_on_each_reply&quot;, 0)<o:p></o:p></p><p class=MsoNormal>modparam(&quot;tm&quot;, &quot;onreply_avp_mode&quot;, 1)<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>#### SIGNALING module<o:p></o:p></p><p class=MsoNormal>loadmodule &quot;signaling.so&quot;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>#### StateLess module<o:p></o:p></p><p class=MsoNormal>loadmodule &quot;sl.so&quot;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>#### SIP MSG OPerationS module<o:p></o:p></p><p class=MsoNormal>loadmodule &quot;sipmsgops.so&quot;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>#### Record Route Module<o:p></o:p></p><p class=MsoNormal>loadmodule &quot;rr.so&quot;<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(&quot;rr&quot;, &quot;append_fromtag&quot;, 1)<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>#### MAX ForWarD module<o:p></o:p></p><p class=MsoNormal>loadmodule &quot;maxfwd.so&quot;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>####### Routing Logic ########<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal># main request routing logic<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>route{<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!mf_process_maxfwd_header(&quot;10&quot;)) {<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply(&quot;483&quot;,&quot;Too Many Hops&quot;);<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (method == &quot;INVITE&quot;) {<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setflag(1);&nbsp;&nbsp;&nbsp; <o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;record_route();<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xlog(&quot;INBOUND CALL,$dd,$ru,$ci,$fn,$fu,$tU@$td&quot;);<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route(10);<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>route[10] {<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!do_routing(&quot;0&quot;)) { <o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog(&quot;do_routing: No rules matching the URI\n&quot;);<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; send_reply(&quot;503&quot;,&quot;No rules matching the URI&quot;);<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (is_method(&quot;INVITE&quot;)) { <o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_on_failure(&quot;10&quot;);<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route(1);<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>route[1] {<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog(&quot;route(1)\n&quot;);<o:p></o:p></p><p class=MsoNormal>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply(&quot;100&quot;, &quot;Trying&quot;);<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!t_relay())<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_reply_error();<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>failure_route[10] {<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; xlog(&quot;DEBUG: DROUTING failure route active\n&quot;);<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; if (t_was_cancelled()) {<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; &nbsp; &nbsp; exit;<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; }<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; if (t_check_status(&quot;[34][0-9][0-9]&quot;)) {<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; &nbsp; &nbsp; exit;<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; }<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>&nbsp; &nbsp; if (use_next_gw()) {<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; &nbsp; &nbsp; t_relay();<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; &nbsp; &nbsp; exit;<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; } else {<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_reply (&quot;503&quot;, &quot;Service not available&quot;);<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; &nbsp; &nbsp; exit;<o:p></o:p></p><p class=MsoNormal>&nbsp; &nbsp; }<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></body></html>