; extensions.conf: [conf] exten => s,1,Progress() same => n,MSet(CONFBRIDGE(bridge,template)=silentbridge,CONFBRIDGE(user,template)=incogtalkeroptimized) same => n,MSet(CONFBRIDGE(user,wait_marked)=yes,CONFBRIDGE(user,end_marked)=yes,CONFBRIDGE(user,dtmf_passthrough)=no,CONFBRIDGE(user,dsp_drop_silence)=yes) same => n,Set(join=silence/2) same => n,Set(leave=silence/2) same => n,Set(CONFBRIDGE(user,quiet)=no) same => n,Set(CONFBRIDGE(bridge,sound_join)=${IF(${EXISTS(${join})}?${join}:silence/1)}) same => n,Set(CONFBRIDGE(bridge,sound_leave)=${IF(${EXISTS(${join})}?${leave}:silence/1)}) same => n,Set(CONFBRIDGE(bridge,sound_kicked)=silence/1) same => n,Set(CONFBRIDGE(bridge,sound_wait_for_leader)=silence/3) same => n,Originate(Local/123@conf-announce,exten,conf-announcement,${ARG1},1,,a) same => n,Wait(0.8) ; this is to force the bug to manifest, to make the call SUCCEED, comment this out. same => n,ConfBridge(interceptdrum123) same => n,Hangup() [conf-announcement] exten => _[0-9A-Za-z].,1,Originate(Local/${EXTEN}@conf-spy,app,Wait,10) same => n,Playback(silence/9) same => n,Hangup() [conf-announce] exten => _[0-9A-Za-z].,1,Answer() same => n,ConfBridge(interceptdrum123,silentbridge,incogtalkeroptimized) same => n,Hangup() [conf-monitor] exten => _[0-9A-Za-z].,1,Answer() same => n,ConfBridge(interceptdrum123,silentbridge,incogtalkeroptimized) same => n,Hangup() [conf-spy] exten => _[0-9A-Za-z].,1,Set(CDR_PROP(disable)=1) same => n,Answer() same => n,ConfBridge(interceptdrum123,silentbridge,incogtalkeroptimized) same => n,Hangup() ; confbridge.conf: ;[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 ;[incogtalkeroptimized] ;type=user ;dsp_drop_silence=no ;quiet=yes ;dtmf_passthrough=yes ;answer_channel=no BAD call (with bug): pbxdev*CLI> core set debug 0 Core debug was 1 and is now OFF. pbxdev*CLI> channel originate Local/s@conf application Wait 10 [Jan 30 18:17:12] -- Called s@conf [Jan 30 18:17:12] -- Executing [s@conf:1] Progress("Local/s@conf-00000077;2", "") in new stack [Jan 30 18:17:12] -- Local/s@conf-00000077;1 is making progress [Jan 30 18:17:12] -- Executing [s@conf:2] MSet("Local/s@conf-00000077;2", "CONFBRIDGE(bridge,template)=silentbridge,CONFBRIDGE(user,template)=incogtalkeroptimized") in new stack [Jan 30 18:17:12] -- Executing [s@conf:3] MSet("Local/s@conf-00000077;2", "CONFBRIDGE(user,wait_marked)=yes,CONFBRIDGE(user,end_marked)=yes,CONFBRIDGE(user,dtmf_passthrough)=no,CONFBRIDGE(user,dsp_drop_silence)=yes") in new stack [Jan 30 18:17:12] -- Executing [s@conf:4] Set("Local/s@conf-00000077;2", "join=silence/2") in new stack [Jan 30 18:17:12] -- Executing [s@conf:5] Set("Local/s@conf-00000077;2", "leave=silence/2") in new stack [Jan 30 18:17:12] -- Executing [s@conf:6] Set("Local/s@conf-00000077;2", "CONFBRIDGE(user,quiet)=no") in new stack [Jan 30 18:17:12] -- Executing [s@conf:7] Set("Local/s@conf-00000077;2", "CONFBRIDGE(bridge,sound_join)=silence/2") in new stack [Jan 30 18:17:12] -- Executing [s@conf:8] Set("Local/s@conf-00000077;2", "CONFBRIDGE(bridge,sound_leave)=silence/2") in new stack [Jan 30 18:17:12] -- Executing [s@conf:9] Set("Local/s@conf-00000077;2", "CONFBRIDGE(bridge,sound_kicked)=silence/1") in new stack [Jan 30 18:17:12] -- Executing [s@conf:10] Set("Local/s@conf-00000077;2", "CONFBRIDGE(bridge,sound_wait_for_leader)=silence/3") in new stack [Jan 30 18:17:12] -- Executing [s@conf:11] Originate("Local/s@conf-00000077;2", "Local/123@conf-announce,exten,conf-announcement,,1") in new stack [Jan 30 18:17:12] -- Called 123@conf-announce [Jan 30 18:17:12] -- Executing [123@conf-announce:1] Answer("Local/123@conf-announce-00000078;2", "") in new stack [Jan 30 18:17:12] -- Local/123@conf-announce-00000078;1 answered [Jan 30 18:17:12] -- Executing [123@conf-announcement:1] Originate("Local/123@conf-announce-00000078;1", "Local/123@conf-spy,app,Wait,10") in new stack [Jan 30 18:17:12] -- Called 123@conf-spy [Jan 30 18:17:12] -- Executing [123@conf-spy:1] Set("Local/123@conf-spy-00000079;2", "CDR_PROP(disable)=1") in new stack [Jan 30 18:17:12] -- Executing [123@conf-spy:2] Answer("Local/123@conf-spy-00000079;2", "") in new stack [Jan 30 18:17:12] -- Local/123@conf-spy-00000079;1 answered [Jan 30 18:17:12] -- Executing [s@conf:12] Wait("Local/s@conf-00000077;2", "0.8") in new stack [Jan 30 18:17:12] -- Executing [123@conf-announcement:2] Playback("Local/123@conf-announce-00000078;1", "silence/9") in new stack [Jan 30 18:17:12] -- Playing 'silence/9.ulaw' (language 'en') [Jan 30 18:17:12] -- Executing [123@conf-announce:2] ConfBridge("Local/123@conf-announce-00000078;2", "interceptdrum123,silentbridge,incogtalkeroptimized") in new stack [Jan 30 18:17:12] -- Channel CBAnn/interceptdrum123-0000007a;2 joined 'softmix' base-bridge <451803c7-d1aa-42a8-98c7-30250ec0e2c0> [Jan 30 18:17:12] -- Channel Local/123@conf-announce-00000078;2 joined 'softmix' base-bridge <451803c7-d1aa-42a8-98c7-30250ec0e2c0> [Jan 30 18:17:13] -- Executing [123@conf-spy:3] ConfBridge("Local/123@conf-spy-00000079;2", "interceptdrum123,silentbridge,incogtalkeroptimized") in new stack <---------------- another channel joins the bridge first [Jan 30 18:17:13] -- Channel Local/123@conf-spy-00000079;2 joined 'softmix' base-bridge <451803c7-d1aa-42a8-98c7-30250ec0e2c0> [Jan 30 18:17:13] -- Executing [s@conf:13] ConfBridge("Local/s@conf-00000077;2", "interceptdrum123") in new stack <------------------------ we join the bridge second. [Jan 30 18:17:13] -- Playing 'conf-waitforleader.ulaw' (language 'en') <----------------------------------------------- THIS SHOULD NOT PLAY!!!!!!!!! [Jan 30 18:17:16] -- Channel Local/s@conf-00000077;2 joined 'softmix' base-bridge <451803c7-d1aa-42a8-98c7-30250ec0e2c0> [Jan 30 18:17:16] -- Playing '/var/lib/asterisk/sounds/en/silence/1.ulaw' (language 'en') pbxdev*CLI> Disconnected from Asterisk server Now, suppose I tweak some things to guarantee that the original channel joins the confbridge first. Issue goes away: GOOD call (no bug): pbxdev*CLI> channel originate Local/s@conf application Wait 10 [Jan 30 18:19:24] -- Called s@conf [Jan 30 18:19:24] -- Executing [s@conf:1] Progress("Local/s@conf-00000083;2", "") in new stack [Jan 30 18:19:24] -- Local/s@conf-00000083;1 is making progress [Jan 30 18:19:24] -- Executing [s@conf:2] MSet("Local/s@conf-00000083;2", "CONFBRIDGE(bridge,template)=silentbridge,CONFBRIDGE(user,template)=incogtalkeroptimized") in new stack [Jan 30 18:19:24] -- Executing [s@conf:3] MSet("Local/s@conf-00000083;2", "CONFBRIDGE(user,wait_marked)=yes,CONFBRIDGE(user,end_marked)=yes,CONFBRIDGE(user,dtmf_passthrough)=no,CONFBRIDGE(user,dsp_drop_silence)=yes") in new stack [Jan 30 18:19:24] -- Executing [s@conf:4] Set("Local/s@conf-00000083;2", "join=silence/2") in new stack [Jan 30 18:19:24] -- Executing [s@conf:5] Set("Local/s@conf-00000083;2", "leave=silence/2") in new stack [Jan 30 18:19:24] -- Executing [s@conf:6] Set("Local/s@conf-00000083;2", "CONFBRIDGE(user,quiet)=no") in new stack [Jan 30 18:19:24] -- Executing [s@conf:7] Set("Local/s@conf-00000083;2", "CONFBRIDGE(bridge,sound_join)=silence/2") in new stack [Jan 30 18:19:24] -- Executing [s@conf:8] Set("Local/s@conf-00000083;2", "CONFBRIDGE(bridge,sound_leave)=silence/2") in new stack [Jan 30 18:19:24] -- Executing [s@conf:9] Set("Local/s@conf-00000083;2", "CONFBRIDGE(bridge,sound_kicked)=silence/1") in new stack [Jan 30 18:19:24] -- Executing [s@conf:10] Set("Local/s@conf-00000083;2", "CONFBRIDGE(bridge,sound_wait_for_leader)=silence/3") in new stack [Jan 30 18:19:24] -- Executing [s@conf:11] Originate("Local/s@conf-00000083;2", "Local/123@conf-announce,exten,conf-announcement,,1,,a") in new stack [Jan 30 18:19:24] -- Executing [s@conf:12] Wait("Local/s@conf-00000083;2", "0.01") in new stack [Jan 30 18:19:24] -- Called 123@conf-announce [Jan 30 18:19:24] -- Executing [123@conf-announce:1] Answer("Local/123@conf-announce-00000084;2", "") in new stack [Jan 30 18:19:24] -- Local/123@conf-announce-00000084;1 answered [Jan 30 18:19:24] -- Executing [123@conf-announcement:1] Originate("Local/123@conf-announce-00000084;1", "Local/123@conf-spy,app,Wait,10") in new stack [Jan 30 18:19:24] -- Called 123@conf-spy [Jan 30 18:19:24] -- Executing [123@conf-spy:1] Set("Local/123@conf-spy-00000085;2", "CDR_PROP(disable)=1") in new stack [Jan 30 18:19:24] -- Executing [123@conf-spy:2] Answer("Local/123@conf-spy-00000085;2", "") in new stack [Jan 30 18:19:24] -- Local/123@conf-spy-00000085;1 answered [Jan 30 18:19:24] -- Executing [123@conf-announcement:2] Playback("Local/123@conf-announce-00000084;1", "silence/9") in new stack [Jan 30 18:19:24] -- Playing 'silence/9.ulaw' (language 'en') [Jan 30 18:19:24] -- Executing [123@conf-announce:2] Wait("Local/123@conf-announce-00000084;2", "1") in new stack [Jan 30 18:19:24] -- Executing [s@conf:13] ConfBridge("Local/s@conf-00000083;2", "interceptdrum123") in new stack <-------------------------- we join the bridge first [Jan 30 18:19:24] -- Channel CBAnn/interceptdrum123-00000086;2 joined 'softmix' base-bridge <60c763b2-2d48-49a5-a3c6-8d3f5a0fcffe> [Jan 30 18:19:24] -- Playing 'silence/3.ulaw' (language 'en') <-------------------------------- the specified file is correctly played [Jan 30 18:19:24] -- Executing [123@conf-spy:3] ConfBridge("Local/123@conf-spy-00000085;2", "interceptdrum123,silentbridge,incogtalkeroptimized") in new stack <------------------------- then another channel joins [Jan 30 18:19:24] -- Channel Local/123@conf-spy-00000085;2 joined 'softmix' base-bridge <60c763b2-2d48-49a5-a3c6-8d3f5a0fcffe> [Jan 30 18:19:25] -- Executing [123@conf-announce:3] ConfBridge("Local/123@conf-announce-00000084;2", "interceptdrum123,silentbridge,incogtalkeroptimized") in new stack [Jan 30 18:19:25] -- Channel Local/123@conf-announce-00000084;2 joined 'softmix' base-bridge <60c763b2-2d48-49a5-a3c6-8d3f5a0fcffe> [Jan 30 18:19:27] -- Channel Local/s@conf-00000083;2 joined 'softmix' base-bridge <60c763b2-2d48-49a5-a3c6-8d3f5a0fcffe> [Jan 30 18:19:27] -- Playing 'silence/2.ulaw' (language 'en') [Jan 30 18:19:33] -- Executing [123@conf-announcement:3] Hangup("Local/123@conf-announce-00000084;1", "") in new stack [Jan 30 18:19:33] == Spawn extension (conf-announcement, 123, 3) exited non-zero on 'Local/123@conf-announce-00000084;1' [Jan 30 18:19:33] -- Channel Local/123@conf-announce-00000084;2 left 'softmix' base-bridge <60c763b2-2d48-49a5-a3c6-8d3f5a0fcffe>