The diaplan stops in set app

Hi,

I have a problem with my asterisk, the calls arrive to a set application and do not continue the dialplan, the call is still alive. When I hang up, the hangup does not come to me instantly, but after a while.
This is the dialplan

[inbound_all_calls]
exten => _X.,1,Answer()
same => n,Set(__CLIENT=${CALLERID(num)})
same => n,set(CDR(rtp_src)=${CHANNEL(rtp,src)})
same => n,Set(__NUM_GEO=${EXTEN})
same => n,set(CDR(did)=${EXTEN})
same => n,Set(__ChID=${PJSIP_HEADER(read,X-CallID)})
same => n,Set(CDR(cnam)=${ChID})
same => n,Set(ARRAY(_VARLOOP1,_VARLOOP2)=${EXTEN},${CALLERID(num)})
;WHILE CONTROL
same => n,ExecIf($[!${EXISTS(${control_var})}]?Set(__control_var=${loop_var}))
same => n,GotoIf($[${control_var} <= 0]?funcion_bucle,s,1)
same => n,ExecIf($[${EXISTS(${control_var})}]?Set(__control_var=$[${control_var}-1]))
;
same => n,Set(__uuid_client=${UNIQUEID})
same => n,Set(__type_call=1)
same => n,AGI(headers_to_var)
same => n,Set(__lenguage=${PJSIP_HEADER(read,X-Chrysalis-lenguage)})
same => n,Set(__callerid=${PJSIP_HEADER(read,X-Chrysalis-callerid)})
same => n,ExecIf($[${EXISTS(${PJSIP_HEADER(read,User-to-User)})}]?Set(__X-User-to-User=${PJSIP_HEADER(read,User-to-User)}))
same => n,NoOp({“TYPE”:“Inbound_call”,“PROCESS”:“Inbound_call”,“CLIENT”:"${CALLERID(num)}",“DDI”:"${EXTEN}"})
same => n,Set(ARRAY(__cod_load_smc,__company,pb,flag_1,type_destination,destination,id,flag_2)=${GEO_data_in(${NUM_GEO})})
same => n,GotoIf($["${flag_1}"=“1”]?noactive)
same => n,ExecIf($["${flag_2}"=“1”]?MixMonitor(/ramdisk/${UNIQUEID}_0.alaw,/var/lib/asterisk/sh/records “${UNIQUEID}_0” “${company}” “${NUM_GEO}” “${EPOCH}”)
same => n(music),ExecIf($[${EXISTS(${PLAYBACK})}]?Playback(${PLAYBACK}))
same => n(dest),Goto(${type_destination},${destination},1)
same => n,Hangup()

and this is your when the problem occurs

[2021-09-02 08:02:48.917] VERBOSE[415] pbx_variables.c: Setting global variable ‘SIPDOMAIN’ to ‘192.168.72.234’
[2021-09-02 08:02:48.962] VERBOSE[20223][C-0000056d] pbx.c: Executing [931228207@inbound_call:1] Answer(“PJSIP/kamout-00000821”, “”) in new stack
[2021-09-02 08:02:48.963] VERBOSE[21151] res_rtp_asterisk.c: 0x7fd268000f00 – Strict RTP learning after remote address set to: 192.168.10.234:43224
[2021-09-02 08:02:49.466] VERBOSE[20223][C-0000056d] pbx.c: Executing [931228207@inbound_call:2] Set(“PJSIP/kamout-00000821”, “CDR(rtp_src)=192.168.10.230:16070”) in new stack
[2021-09-02 08:07:15.390] VERBOSE[20223][C-0000056d] pbx.c: Executing [h@inbound_call:1] NoOp(“PJSIP/kamout-00000821”, “{“TYPE”: “Hangup”,“PROCESS”:“Hangup_llamada_inbound_call”,“CLIENT”: “xxxxxxxx”,“HANGUP_CAUSE”:“0”,“DIAL_STATUS”:”", “LAST_EXTEN”: “h”. “DDI”: “”,“ORIGIN_HANGUP”:“CALLER”}") in new stack
[2021-09-02 08:07:15.391] VERBOSE[20223][C-0000056d] pbx.c: Executing [h@inbound_call:2] Hangup(“PJSIP/kamout-00000821”, “”) in new stack
[2021-09-02 08:07:15.391] VERBOSE[20223][C-0000056d] pbx.c: Spawn extension (inbound_call, h, 2) exited non-zero on ‘PJSIP/kamout-00000821’

and this is an example of a successful call

[2021-09-02 08:08:20.495] VERBOSE[415] pbx_variables.c: Setting global variable ‘SIPDOMAIN’ to ‘192.168.72.234’
[2021-09-02 08:08:20.543] VERBOSE[1149][C-00000572] pbx.c: Executing [931228207@inbound_call:1] Answer(“PJSIP/kamout-00000826”, “”) in new stack
[2021-09-02 08:08:20.544] VERBOSE[21151] res_rtp_asterisk.c: 0x7fd2687159b0 – Strict RTP learning after remote address set to: 192.168.10.234:43390
[2021-09-02 08:08:21.047] VERBOSE[1149][C-00000572] pbx.c: Executing [931228207@inbound_call:2] Set(“PJSIP/kamout-00000826”, “CDR(rtp_src)=192.168.10.230:16208”) in new stack
[2021-09-02 08:08:21.047] VERBOSE[1149][C-00000572] pbx.c: Executing [931228207@inbound_call:3] Set(“PJSIP/kamout-00000826”, “CDR(did)=yyyyyy”) in new stack
[2021-09-02 08:08:21.047] VERBOSE[1149][C-00000572] pbx.c: Executing [931228207@inbound_call:4] Set(“PJSIP/kamout-00000826”, “__ChID=FDBAD6750BDC4------”) in new stack
[2021-09-02 08:08:21.088] VERBOSE[1149][C-00000572] pbx.c: Executing [yyyyyyyy@inbound_call:5] ExecIf(“PJSIP/kamout-00000826”, “0?Set(__ChID=2C8924AA0BB4------)”) in new stack
[2021-09-02 08:08:21.088] VERBOSE[1149][C-00000572] pbx.c: Executing [yyyyyyyy@inbound_call:6] Set(“PJSIP/kamout-00000826”, “CDR(cnam)=FDBAD6750BDC42-------”) in new stack
[2021-09-02 08:08:21.089] VERBOSE[1149][C-00000572] pbx.c: Executing [yyyyyyyy@inbound_call:7] Set(“PJSIP/kamout-00000826”, “__NUM_GEO=yyyyyy”) in new stack
[2021-09-02 08:08:21.089] VERBOSE[1149][C-00000572] pbx.c: Executing [yyyyyyyy@inbound_call:8] Set(“PJSIP/kamout-00000826”, “__CLIENT=xxxxxx”) in new stack
[2021-09-02 08:08:21.089] VERBOSE[1149][C-00000572] pbx.c: Executing [yyyyyyyy@inbound_call:9] Set(“PJSIP/kamout-00000826”, “ARRAY(_VARLOOP1,_VARLOOP2)=yyyyyy,xxxxxxx”) in new stack
[2021-09-02 08:08:21.089] VERBOSE[1149][C-00000572] pbx.c: Executing [yyyyyyyy@inbound_call:10] ExecIf(“PJSIP/kamout-00000826”, “1?Set(__control_var=100)”) in new stack
[2021-09-02 08:08:21.089] VERBOSE[1149][C-00000572] pbx.c: Executing [yyyyyyyy@inbound_call:11] GotoIf(“PJSIP/kamout-00000826”, “0?funcion_bucle,s,1”) in new stack
[2021-09-02 08:08:21.090] VERBOSE[1149][C-00000572] pbx.c: Executing [yyyyyyyy@inbound_call:12] ExecIf(“PJSIP/kamout-00000826”, “1?Set(__control_var=99)”) in new stack
[2021-09-02 08:08:21.090] VERBOSE[1149][C-00000572] pbx.c: Executing [yyyyyyyy@inbound_call:13] Set(“PJSIP/kamout-00000826”, “__uuid_client=2-1630562900.3487”) in new stack
[2021-09-02 08:08:21.090] VERBOSE[1149][C-00000572] pbx.c: Executing [yyyyyyyy@inbound_call:14] Set(“PJSIP/kamout-00000826”, “__type_call=1”) in new stack
… OK

the version we use of asterisk is 16.12.0
I don’t see anything unusual in the core dumps.

Thank you very much in advance

Having a core dump to look at is unusual in itself. What is the exception? I don’t think you had any core files.

The reason for it ending is that the caller has terminated the call. This is a slightly unusual case in that you don’t have an “exited non-zero” message, but I think that is because Set doesn’t check for hangups, so the dialplan interpreter, itself, is detecting the hangup.

You need to use “pjsip set logger on” to see if the caller cancelled the call. If they didn’t, you will need to turn up the logging until you see the reason that Asterisk aborted it.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.