[OpenSIPS-Users] trying to use the drouting module

Mark Lassing mlassing at netformatie.nl
Tue May 14 09:26:01 CEST 2013


Hello Bogdan-Andrei,

Thank you for pointing me in the right direction on how to handle sequential requests.
My setup is working now!

--

Regards,

Mark



Van: users-bounces at lists.opensips.org [mailto:users-bounces at lists.opensips.org] Namens Bogdan-Andrei Iancu
Verzonden: vrijdag 10 mei 2013 18:36
Aan: OpenSIPS users mailling list
Onderwerp: Re: [OpenSIPS-Users] trying to use the drouting module

Hello Mark,

Your script does not handle sequential request (like BYE) at all. I would strongly suggest to follow this webinar http://www.opensips.org/Documentation/Webinars#toc12 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 ).

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

On 05/10/2013 06:36 PM, Mark Lassing wrote: 
Hi all,
 
I am trying to use the drouting module, 
this is working as expected, calls get passed to the right gw, call setup and audio is all working fine, 
but the bye request packets do not seem to be relayed to the destination gw, causing lot of retransmits.
 
How to solve this issue ? If more informations is needed please feel free to ask me.
 
--
 
Mark
 
#### Global ####
debug=6
log_stderror=no
log_facility=LOG_LOCAL0
fork=yes
children=4
auto_aliases=no
listen=udp:213.***.***.***:5060
disable_tcp=no
 
####### Modules Section ########
 
#set module path
mpath="/usr/lib/opensips/modules/"
loadmodule "db_mysql.so"
 
 
#### DROUTING module
loadmodule "drouting.so"
modparam("drouting", "db_url", "mysql://*****:*****@localhost/opensips")
modparam("drouting", "probing_interval", 60)
modparam("drouting", "probing_from", "sip:probe at q.*****.**")
modparam("drouting", "probing_method", "OPTIONS")
modparam("drouting", "probing_reply_codes", "501, 403, 404")
modparam("drouting", "use_domain", 1)
 
#### Transaction Module
loadmodule "tm.so"
modparam("tm", "fr_timer", 5)
modparam("tm", "fr_inv_timer", 30)
modparam("tm", "restart_fr_on_each_reply", 0)
modparam("tm", "onreply_avp_mode", 1)
 
#### SIGNALING module
loadmodule "signaling.so"
 
#### StateLess module
loadmodule "sl.so"
 
#### SIP MSG OPerationS module
loadmodule "sipmsgops.so"
 
#### Record Route Module
loadmodule "rr.so"
/* do not append from tag to the RR (no need for this script) */
modparam("rr", "append_fromtag", 1)
 
#### MAX ForWarD module
loadmodule "maxfwd.so"
 
 
 
####### Routing Logic ########
 
# main request routing logic
 
route{
        if (!mf_process_maxfwd_header("10")) {
                sl_send_reply("483","Too Many Hops");
                exit;
        }
 
        if (method == "INVITE") {
                setflag(1);    
                record_route();
                
                xlog("INBOUND CALL,$dd,$ru,$ci,$fn,$fu,$tU@$td");
                route(10);
                exit;
        }
 
}
 
 
route[10] {
 
        if (!do_routing("0")) { 
 
                xlog("do_routing: No rules matching the URI\n");
                send_reply("503","No rules matching the URI");
                exit;
        }
 
        if (is_method("INVITE")) { 
                t_on_failure("10");
        }
        route(1);
}
 
 
route[1] {
          xlog("route(1)\n");
#         sl_send_reply("100", "Trying");
          if(!t_relay())
          {
             sl_reply_error();
          }
}
 
 
failure_route[10] {
    xlog("DEBUG: DROUTING failure route active\n");
    if (t_was_cancelled()) {
        exit;
    }
    if (t_check_status("[34][0-9][0-9]")) {
        exit;
    }
 
    if (use_next_gw()) {
        t_relay();
        exit;
    } else {
        t_reply ("503", "Service not available");
        exit;
    }
}
 
 


_______________________________________________
Users mailing list
Users at lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




More information about the Users mailing list