Hi Antonis,

What exactly does not work ? sending the CANCEL out? or the callee "refuses" to cancel and sends a 200 OK ?

Regards,

Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  https://www.opensips-solutions.com
OpenSIPS Bootcamp 2021 online
  https://opensips.org/training/OpenSIPS_eBootcamp_2021/

On 4/20/21 11:13 PM, Antonis Psaras wrote:
I did the following

if (t_check_status("180"))
{
        t_cancel_branch();
                drop;
}

But there is an issue.

When 180 is followed by 200 instantly, the CANCEL is not working as expected.

When I add a delay on Answer ie 1sec then CANCEL works.

Any suggestion?

Antonis Psaras

-----Original Message-----
From: Users <users-boun...@lists.opensips.org> On Behalf Of Kingsley Tart
Sent: Τρίτη, 20 Απριλίου 2021 20:10
To: OpenSIPS users mailling list <users@lists.opensips.org>
Subject: Re: [OpenSIPS-Users] Generate CANCEL on 180

Firstly, I'm new to OpenSIPS so treat my comments accordingly.

But, can you do something in an onreply route?

eg, in a test setup I have, when I get an INVITE I do this:

        create_dialog("pPB");
        t_on_reply("doodle");

(I can't remember whether the dialog is needed for this)

and then I have this:

onreply_route[doodle] {
        # expect $T_reply_code to likely first be 100
        # then 180 or 183 for a progressing call
        # 200 when call is answered
        # or failure code (eg 4xx) or whatever
        if (t_check_status("^1[0-9][0-9]$")) {
                switch ($T_reply_code) {
                        case 180: $acc_extra(t_ringing) = $Ts; break;
                        case 183: $acc_extra(t_progress) = $Ts; break;
                }
        } else if (t_check_status("^2[0-9][0-9]$")) {
                $acc_extra(t_answer) = $Ts;
        } else {
                xlog("Something else\n");
        }
}

so when a 180 is received, it calls the above route function. Could you send a 
CANCEL from there?

Cheers,
Kingsley.

On Tue, 2021-04-20 at 16:55 +0300, Antonis Psaras wrote:
Dear all

I am trying to create a service which will generate missed calls. In
order to be more accurate, I want to CANCEL the request when 180 is
received.

The scenario is the following

Asterisk Invite -> OpenSIPs -> Carrier

Carrier 183 -> OpenSIPs -> Asterisk

Carrier 180 -> OpenSIPs

OpenSIPs Cancel -> Carrier

Is that possible to be done from script without external app? Regards _______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

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


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


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

Reply via email to