[OpenSIPS-Users] FW: CANCELs with no transaction

Russell Bierschbach rbierschbach at telepointglobal.com
Fri Feb 11 21:05:01 CET 2011


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: rbierschbach at telepointglobal.com<mailto:rjphillips at telepointglobal.com>, im: rbierschbach at hotmail.com<mailto:rbierschbach at hotmail.com>

From: users-bounces at lists.opensips.org [mailto:users-bounces at lists.opensips.org] On Behalf Of Juri Nysschen
Sent: Friday, February 11, 2011 7:44 AM
To: users at lists.opensips.org
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>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20110211/02b0803a/attachment-0001.htm>


More information about the Users mailing list