I have a similar problem, but not solution, my probably is actually occurring 
because the originating UA is ignoring a contact header that is sent back 
during a 183 progress message.  OpenSIPS uses information from that contact 
header to figure out where to relay the incoming message (BYE in my case, 
CANCEL in yours).  It seems like it would be possible for OpenSIPS to use a 
call-id or tag to determine where to relay the message though.

Russell Bierschbach
em: [email protected]<mailto:[email protected]>, 
im: [email protected]<mailto:[email protected]>

From: [email protected] 
[mailto:[email protected]] On Behalf Of Juri Nysschen
Sent: Friday, February 11, 2011 7:44 AM
To: [email protected]
Subject: [OpenSIPS-Users] FW: CANCELs with no transaction

Hi All,

Need help with a nagging issue:

UA->Opensips 1->Opensips 2->PSTN

UA sends an invite on Opensips 1, and is routed via do_routing() to Opensips 2, 
Opensips 2 uses do_routing to get to the PSTN, call starts ringing.

UA cancels call before answer, but now t_check_trans fails and the CANCEL is 
not passed onto the PSTN, with the result that the call rings forever and can 
only be terminated by the remote answering and dropping the call or through a 
timeout.

The scripts on Opensips 1 & Opensips 2 is virtuall identical:

How do I get the CANCEL to the PSTN ?

route{
.....
      if (is_method("CANCEL") ) {
            route(5); # drop media proxy
            if (t_check_trans()){ # this always fails after a do_routing()
                  xlog("L_INFO","CANCEL Transaction[$fd/$fu/$rd/$ru/$si/]\n");
                  t_relay();
                  exit;
            };
            exit;
      }
}


route[4] {
      xlog("L_INFO","Route4 [$fd/$fu/$rd/$ru/$si/]\n");

      $avp(i:102)=1; # Default dr-group
      route(10); # Do custom stuff
      t_on_failure("4");
      if (do_routing("$avp(i:102)")){
            xlog("L_INFO","Route4 Route to Dyna Group: 
$avp(i:102)[$fd/$fu/$rd/$ru/$si/]\n");
            t_newtran();
            route(1);
            exit;
      };
      xlog("L_INFO","Route4 No Route to Host[$fd/$fu/$rd/$ru/$si/]\n");
      sl_reply_error();
      exit;
}

Regards
Juri Nysschen<http://www.greydotelecom.net/bcard/jnysschen.htm>

_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to