Тихо, сам с собою я веду беседу... Да, действительно, проблема фонер лайта. Окончательный вариант разговора втроём, получилось вообще шикарно:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Сочетание *0 включает режим конференции
[macro-MyFeature1]
exten => s,1,Noop(Perevod v konfu)
same => n,Set(__confno=${CALLERID(num)}_${RAND()})
same => n,Noop(Perevod sobesed)
same => n,ChannelRedirect(${BRIDGEPEER},my-addtoconf,${confno},asuser_welcome)
same => n,Noop(Perevod sebya)
same => n,ChannelRedirect(${CHANNEL},my-addtoconf,${confno},asadmin_welcome)
same => n,Hangup
same => n,MacroExit()
;; Редирект канала в конференцию $EXTEN
[my-addtoconf]
exten => _X.,1(asadmin_welcome),Playback(konferencii)
same => n(asadmin),Noop(...as ADMIN)
same => n,ConfBridge(${EXTEN},my_mybridge,my_myadmin,my_myadminmenu)
same => n,Read(dst,speed-enternumber)
same => n,Set(devinfo_context=${ODBC_CHECK_CONTEXT(${CALLERID(num)})})
same => n,Dial(LOCAL/${dst}@${devinfo_context},10,gG(my-addtoconf^${EXTEN}^redir))
same => n,GotoIF($[${DIALSTATUS} = NOANSWER]?noansw)
same => n,GotoIF($[${DIALSTATUS} = BUSY]?zanjat)
same => n(wrongnum),Playback(invalid)
same => n,GoTo(asadmin)
same => n(noansw),Playback(ne-otvechaet&poprobujte-eshhe-raz)
same => n,GoTo(asadmin)
same => n(zanjat),Playback(extension&zanjat)
same => n,GoTo(asadmin)
same => n(redir),GoTo(asadmin)
same => n(redir2),GoTo(asuser)
same => n(asuser_welcome),Playback(konferencii)
same => n(asuser),Noop(...as USER)
same => n,Set(TIMEOUT(absolute)=3600)
same => n,ConfBridge(${EXTEN},my_mybridge,my_myuser,user_menu)
same => n,Hangup
;exten => T,1,Playback(vm-goodbye)
Важно включить сквозное прохождение dtmf-кодов для админа, чтобы тот мог набрать пин-код для выхода на закрытые направления, для этого в меню конференции отключить однокнопочные сочетания, оставить только со звёздочкой:
(dtmf_passthrough=yes)
[my_myadminmenu]
type=menu
* = playback_and_continue(conf-adminmenu)
*1 = toggle_mute
*2 = admin_toggle_conference_lock
*3 = admin_kick_last
*4 = decrease_listening_volume
*5 = leave_conference
*6 = increase_listening_volume
*7 = decrease_talking_volume
*8 = no_op
*9 = increase_talking_volume
*0 = leave_conference