[OpenSIPS-Users] Generate CANCEL on 180

Antonis Psaras apsaras at microbase.gr
Wed Apr 21 09:46:12 EST 2021


Hello Bogdan

The flow is the following

INVITE
Trying (instantly)
(after 2sec)
183
(after 3sec)
180
(here I do the process but during that I receive)
200 (instantly)
(here the CANCEL is sent)
CANCEL

And the call is keep going, hence the CANCEL was ignored by the carrier by the carrier because the call was answered.

Regards


Antonis Psaras 

-----Original Message-----
From: Bogdan-Andrei Iancu <bogdan at opensips.org> 
Sent: Τετάρτη, 21 Απριλίου 2021 12:32
To: apsaras at microbase.gr; OpenSIPS users mailling list <users at lists.opensips.org>
Subject: Re: [OpenSIPS-Users] Generate CANCEL on 180

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-bounces at lists.opensips.org> On Behalf Of Kingsley 
> Tart
> Sent: Τρίτη, 20 Απριλίου 2021 20:10
> To: OpenSIPS users mailling list <users at 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 at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users





More information about the Users mailing list