[asterisk-dev] [16.1.1] Call pickup with chan_sip fails, if dialed in subroutine, but works within macro

Hans-Peter Jansen hpj at urpla.net
Sat Jan 12 10:09:45 CST 2019


I just hunted down an issue with call pickup (DIALOG_INFO_XML format) and 

It boils down to: if the extension is dialed from a subroutine, call pickup 
fails. It succeeds, if extension is dialed from a macro.


Since Asterisk 16, macros are deprecated. After rewriting my dialplan to 
eliminate macros, call pickups were defective, which has gone unnoticed for 
some time. Looking at my git logs (yes, I'm managing my asterisk config with 
git), the only relevant change was moving from macros to subroutines. 

Here are the relevant dialplan excerpts:

; dial internal extension
; ${ARG1}: extension
exten = start,1,NoOp()
 same = n,Dial(${ARG1},30)
 same = n,Hangup()

; dial internal extension macro
; ${ARG1}: extensions to dial
exten = s,1,NoOp()
 same = n,Dial(${ARG1},30)
 same = n,Hangup()

; OK:
exten = 123,1,Macro(extension,${TEL123})

[2019-01-12 16:37:12] NOTICE[5013][C-00000002]: app_directed_pickup.c:250 
pickup_by_exten: SIP/00041323bbf7-00000001 pickup by SIP/00041323463e-00000002

exten = 123,1,GoSub(extension,start,1(${TEL123}))

[2019-01-12 16:37:56] NOTICE[5096][C-00000002]: app_directed_pickup.c:365 
pickup_exec: No target channel found for 123 at internal 

Any idea, what could affect this? It looks, like the subroutine Dial() call 
disrupt the channel contexts somehow. 

Thanks in advance,

More information about the asterisk-dev mailing list