实现功能:
1、三方通话功能,只允许被叫通过##邀请第三方加入到通话
2、多方通话功能,座席可以通过拨打0000来启动多方通话。
3、多方通话功能,座席主叫可以通过**来启动多方通话。
dialplan脚本:
[test]
exten => 0000,1,Goto(dynamic-nway-start,0000,1)
exten => _[docs:0-8].,1,Set(DYNAMIC_FEATURES=threeway-start)
exten => _9X.,1,Set(DYNAMIC_FEATURES=threeway-start)
[macro-threeway-start]
exten => s,1,noop(macro-threeway-start)
exten => s,n,Set(CONFNO=8600)
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway-join,${CONFNO},1)
exten => s,n,Set(DYNAMIC_FEATURES=)
exten => s,n,MeetMe(${CONFNO},pdMX1)
exten => s,n,Hangup
[dynamic-nway-start]
exten => _X.,1,NoOp(dynamic-nway-start)
exten => _X.,n,Set(CONFNO=9999)
exten => _X.,n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)
exten => _X.,n,MeetMe(${CONFNO},pdMX)
exten => _X.,n,Hangup
[dynamic-nway-invite]
exten => *,1,NoOp(dynamic-nway-invite)
exten => *,n,Read(DEST,dial,,i)
exten => *,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
exten => *,n,Dial(Local/${DEST}@dynamic-nway-invite-dest,,g)
exten => *,n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)
exten => *,n,Set(DYNAMIC_FEATURES=)
exten => *,n,MeetMe(${CONFNO},pdMX1)
exten => *,n,Hangup
[dynamic-nway-invite-dest]
exten => _X.,1,NoOp(dynamic-nway-invite-dest)
exten => _X.,n,Dial(SIP/${EXTEN})
[dynamic-nway-join]
exten => _XXXX,1,noop(dynamic-nway-join)
exten => _XXXX,n,Answer
exten => _XXXX,n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)
exten => _XXXX,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
exten => _XXXX,n,Set(CONFNO=${EXTEN})
exten => _XXXX,n,MeetMe(${CONFNO},pdMX1)
exten => _XXXX,n,Set(DYNAMIC_FEATURES=)
exten => _XXXX,n,Hangup
[macro-nway-ok]
exten => s,1,noop(macro-nway-ok)
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway-join,${CONFNO},1)
[macro-nway-notok]
exten => s,1,noop(macro-nway-notok)
exten => s,n,SoftHangup(${BRIDGEPEER})
按键设置:
threeway-start => ##,callee/callee,Macro,threeway-start
nway-start => **,caller,Macro,nway-start
nway-inv => 11,caller/caller,Macro,nway-ok
nway-noinv => 00,callee/caller,Macro,nway-notok