[OpenSIPS-Users] Each call sends multiple invites using DR module

Fernando Rios fernando.rios at hyettemail.com
Wed Apr 7 17:51:37 CEST 2010


Hi all,

I'm trying to configure my OpenSIPS according to doc, with DR module.
The issue happen when I send a call (from a softphone), in the second 
leg of the call I see several INVITES to TermGw.

I'm new in OpenSIPS ( I'm experienced with Nextone ), I could do working 
OpenSIPS routing just through opensips.cfg, but I need to have thousand 
of routes, so keep updated that file would be a heavy task.

Please your help to know what's the mistake, where I'm wrong ? What's it 
is missed or omitted ??

Or please give me a working example !! With that I have enough.
When I find the working template I want to work in scripting tools in 
order to handle thousand of routes easily, I'd share that with the 
community.



Softphone IP is 192.168.0.18
OpenSIPS IP is 192.168.0.112
TermGw is 192.168.0.250 (Asterisk)

Here the tshark trace:

   6.833804 192.168.0.18 -> 192.168.0.112 SIP/SDP Request: INVITE 
sip:471254287223 at 192.168.0.112, with session descript
ion
   6.835459 192.168.0.112 -> 192.168.0.18 SIP Status: 100 Giving a try
   6.835657 192.168.0.112 -> 192.168.0.250 SIP/SDP Request: INVITE 
sip:954287223 at 192.168.0.250, with session descriptio
n
   6.836579 192.168.0.250 -> 192.168.0.112 SIP Status: 100 Trying
   6.839673 192.168.0.112 -> 192.168.0.250 SIP/SDP Request: INVITE 
sip:954287223 at 192.168.0.250, with session descriptio
n
   6.840750 192.168.0.250 -> 192.168.0.112 SIP Status: 100 Trying
   6.844255 192.168.0.112 -> 192.168.0.250 SIP/SDP Request: INVITE 
sip:954287223 at 192.168.0.250, with session 
descriptio                                     n
   6.844842 192.168.0.250 -> 192.168.0.112 SIP Status: 100 Trying
   6.847648 192.168.0.112 -> 192.168.0.250 SIP/SDP Request: INVITE 
sip:954287223 at 192.168.0.250, with session 
descriptio                                     n
   6.848220 192.168.0.250 -> 192.168.0.112 SIP Status: 100 Trying
   6.851395 192.168.0.112 -> 192.168.0.250 SIP/SDP Request: INVITE 
sip:954287223 at 192.168.0.250, with session 
descriptio                                     n
   6.852144 192.168.0.250 -> 192.168.0.112 SIP Status: 100 Trying
   6.964467 192.168.0.250 -> 192.168.0.112 SIP/SDP Status: 183 Session 
Progress, with session description
   6.965185 192.168.0.112 -> 192.168.0.18 SIP/SDP Status: 183 Session 
Progress, with session description
--- After several secs I hang the call...
  12.852208 192.168.0.18 -> 192.168.0.112 SIP Request: CANCEL 
sip:471254287223 at 192.168.0.112
  12.854316 192.168.0.112 -> 192.168.0.18 SIP Status: 200 canceling
  12.855668 192.168.0.112 -> 192.168.0.250 SIP Request: CANCEL 
sip:954287223 at 192.168.0.250
  12.856157 192.168.0.250 -> 192.168.0.112 SIP Status: 487 Request 
Terminated
  12.856179 192.168.0.250 -> 192.168.0.112 SIP Status: 200 OK
  12.856308 192.168.0.112 -> 192.168.0.250 SIP Request: ACK 
sip:954287223 at 192.168.0.250
  12.858402 192.168.0.112 -> 192.168.0.18 SIP Status: 487 Request Terminated
  12.863562 192.168.0.18 -> 192.168.0.112 SIP Request: ACK 
sip:471254287223 at 192.168.0.112

These are my data config in the database:
* dr_gateways
"gwid"    "type"    "address"    "strip"    "pri_prefix"    "attrs"    
"probe_mode"    "description"
"2"    "2"    "192.168.0.250"    "4"    "9"    null    "0"    "mygw1"

* dr_groups
"id"    "username"    "domain"    "groupid"    "description"
"1"    "9000"    "192.168.0.112"    "1"    "edeww"
"2"    "1003"    "192.168.0.112"    "1"    "Fer"

* dr_gw_lists
"id"    "gwlist"    "description"
"1"    "2"    "GatewaysLocales"

* dr_rules
"ruleid"    "groupid"    "prefix"    "timerec"    "priority"    
"routeid"    "gwlist"    "description"
"1"    "1"    "4712"    ""    "1"    "4"    "2"    "MyFirstRoute"
"2"    "2"    "4712"    ""    "1"    "4"    "2"    "RouteFer"

* subscriber
"id"    "username"    "domain"    "password"    "email_address"    
"ha1"    "ha1b"    "rpid"
"6"    "1003"    "sip.rudy-test.com"    "12345"    
"fernando.rios at hyettemail.com"    ""    ""    null
"5"    "9000"    "sip.rudy-test.com"    "1234"    
"xxxx at hyettemail.com"    ""    ""    null

Config in opensips.cfg:

route{
        # Do Accounting on INVITE, CANCEL AND BYE
         setflag(2);
         setflag(3);
         setflag(4);

         if (!mf_process_maxfwd_header("10")) {
                 sl_send_reply("483","Too Many Hops");
                 exit;
         };

         if (msg:len >=  2048 ) {
                 sl_send_reply("513", "Message too big");
                 exit;
         };

         if (!method=="REGISTER")
                 record_route();

         if (loose_route()) {

                append_hf("P-hint: rr-enforced\r\n");
                route(1);

         }


         if (uri==myself) {

                 if (method=="REGISTER") {
                         setflag(6);
                         force_rport();
                         # Uncomment this if you want to use digest 
authentication
                         if (!www_authorize("192.168.0.112", 
"subscriber")) {
                                 www_challenge("192.168.0.112", "0");
                                 exit;
                         };

                         save("location");
                         exit;
                 };

                 lookup("aliases");
                 if (!uri==myself) {
                         append_hf("P-hint: outbound alias\r\n");

                         route(1);
                 };


                 if (uri=~"^sip:4712+@*" ) {

                         route(4);
                         exit;
                 }

}

route[1] {
         # for INVITEs enable some additional helper routes
         if (is_method("INVITE")) {
#               t_on_branch("2");
                 t_on_reply("2");
#               t_on_failure("1");
         }

         if (!t_relay()) {
                 sl_reply_error();
         };
         exit;
}


route[4] {
#---- pSTN route ----#
         if(!do_routing()){
                 send_reply("503", "No rules found matching the given 
URI prefix ");
                 exit;
         }

          # flag 10 flag the transaction to handle the failure route
          #setflag(10);
          route(1);
}




More information about the Users mailing list