ConfBridge: Channel immediately leaves when connecting in DYNAMIC_FEATURE


Asterisk 13.14 on Debian 9.

I defined a dynamic feature that puts the two parties in a ConfBridge conference. However only the bridged peer is put in the conference room successfully. The caller starting the dynamic feature is put in the conference room for a millisecond but is kicked immediately.

However there is no error message or anything similar.

Does anybody know why or how I can debug / troubleshoot this?


Here is my configuration:

conference-start-caller => *3,self/caller,AGI(asterisk-gosub.agi,Ltd-conference,start)
exten => start,1,Set(CONFNO=${RAND(9001,9999)})  ; Finde eindeutige Konferenz-Nummer
       same => n,ChannelRedirect(${BRIDGEPEER},Ltd-conference-join,${CONFNO},1)  ; Schiebe den anderen Kanal in die Konferenz
       same => n,ConfBridge(${CONFNO},conference,conference-admin,conference-menu)  ; Tritt der Konferenz als Admin bei
       same => n,Return()  ; Ende

exten => _[0-9+#*].,1,Answer()  ; Vorsichthalber Gespraech annehmen
            same => n,ConfBridge(${EXTEN},conference,conference-user)  ; Verschiebe Channel in die Konferenz
            same => n,Hangup()  ; Lege nach Ablauf der Konferenz auf.

And this is the output:

    -- Launched AGI Script /usr/share/asterisk/agi-bin/asterisk-gosub.agi
    -- SIP/xxxx-00000531 AGI Gosub(Ltd-conference,start,1) start
    -- Executing [start@Ltd-conference:1] Set("SIP/xxxx-00000531", "CONFNO=9248") in new stack
    -- Executing [start@Ltd-conference:2] ChannelRedirect("SIP/xxxx-00000531", "SIP/BTtrunk-00000532,Ltd-conference-join,9248,1") in new stack
    -- Executing [start@Ltd-conference:3] ConfBridge("SIP/xxxx-00000531", "9248,conference,conference-admin,conference-menu") in new stack
    -- Channel SIP/BTtrunk-00000532 left 'simple_bridge' basic-bridge <b3883e76-7e8e-40b1-a58c-599140bb45ee>
    -- Executing [9248@Ltd-conference-join:1] Answer("SIP/BTtrunk-00000532", "") in new stack
    -- Executing [9248@Ltd-conference-join:2] ConfBridge("SIP/BTtrunk-00000532", "9248,conference,conference-user") in new stack
    -- <SIP/BTtrunk-00000532> Playing 'confbridge-join.slin' (language 'en')
    -- Executing [start@Ltd-conference:4] Return("SIP/xxxx-00000531") in new stack
    -- Channel CBAnn/9248-000003c0;2 joined 'softmix' base-bridge <46adc709-20f6-4d2f-8a6a-3bc953297d88>
    -- <CBAnn/9248-000003c0;1> Playing 'confbridge-join.slin' (language 'de')
    -- <CBAnn/9248-000003c0;1> Playing 'confbridge-leave.slin' (language 'de')
    -- Started music on hold, class 'default', on channel 'SIP/BTtrunk-00000532'
    -- Channel SIP/BTtrunk-00000532 joined 'softmix' base-bridge <46adc709-20f6-4d2f-8a6a-3bc953297d88>
  == Spawn extension (Ltd-conference, start, 4) exited non-zero on 'SIP/xxxx-00000531'
[Jan 23 02:35:57] NOTICE[26968][C-0000c0c8]: app_stack.c:1240 handle_gosub: SIP/xxxx-00000531 Abnormal AGI Gosub(Ltd-conference,start,1) exit.  Popping routine return locations.
    -- <SIP/xxxx-00000531>AGI Script asterisk-gosub.agi completed, returning 4
    -- Channel SIP/xxxx-00000531 left 'simple_bridge' basic-bridge <b3883e76-7e8e-40b1-a58c-599140bb45ee>

An issue[1] was created awhile ago that brought this up. Calling ConfBridge from a dynamic feature was always an undefined behavior and is more strictly enforced. You can’t be in two places at once, essentially.