extensions.conf: [fail-test] ; to minimize the # of things in the call, test using the console channel driver: "channel originate Local/s@fail-test application Wait 35" exten => s,1,Answer() same => n,MixMonitor(fail-${EPOCH}.wav) same => n,Originate(Local/s@bridge,exten,outgoing-ring,2579,1,,a) same => n,Goto(bridge,s,1) [bridge] exten => s,1,Answer() same => n,ConfBridge(testbridge,silentbridge,incogtalker) [outgoing-ring] exten => 2579,1,Set(CDR_PROP(disable)=1) same => n,Answer() same => n,Dial(Local/${EXTEN}@originate-local/n,,G(split)) same => n(split),Hangup() same => n(callee),Goto(bridge,s,1) [originate-local] ; actual outgoing call exten => 2579,1,Dial(IAX2/REDACTED/REDACTED) ; <-- this is a call to another Asterisk which uses DAHDI to complete a call to an analog switch using an analog trunk. On its end, it uses the D option with Dial(DAHDI...) and if DTMF is sent on answer, that's when all this weirdness happens! same => n,Hangup() confbridge.conf: ; these are provided mainly so that the confbridge is silent and not in our way, so we can hear everything that's happening, all the time [silentbridge] type=bridge sound_join=/var/lib/asterisk/sounds/en/silence/1 sound_leave=/var/lib/asterisk/sounds/en/silence/1 [incogtalker] type=user dsp_drop_silence=no quiet=yes dtmf_passthrough=yes answer_channel=no