ChannelRedirect及多方实例

 

ChannelRedirect: Redirect an existing channel to the dialplan. (1.4)

功能:

让指定的通道重定向拨号方案中指定的目标位置,在1.4版本时被引进的,同时也可以代接(偷取)一个正在振玲的来电.

描述:

ChannelRedirect(channel|[[context|]extension|]priority) 
发送指定通道到指定的拨号方案中的目标位置
(Sends the specified channel to the specified extension priority)

 

下面有一个示例:

实现Asterisk多方通话

这里面我将试图描述如果从二方通话创建多方通话。(Here I will attempt to describe how to make n-way calls from 2-way calls.)

实现此功能要用到二个命令函数:MeetMe和ChannelRedirect,你需要 Dahdi/Zaptel timing 驱动让MeetMe工作。(All work done by two applications: MeetMe and ChannelRedirect. You need the Dahdi/Zaptel timing driver to have MeetMe working. )

问题: For Asterisk 1.4 do wee need to replace 'ChannelRedirect' as used below with 'ManagerRedirect' as in bug/patch 6508

这里有一个示例拨号方案脚本: 

[default] 
exten => _XXX,1,Set(DYNAMIC_FEATURES=nway-start) 
exten => _XXX,n,Dial(SIP/${EXTEN}) 

[dynamic-nway] 
exten => _XXX,1,Answer 
exten => _XXX,n,Set(CONFNO=${EXTEN}) 
exten => _XXX,n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite) 
exten => _XXX,n,Set(DYNAMIC_FEATURES=) 
exten => _XXX,n,MeetMe(${CONFNO},pdMX) 
exten => _XXX,n,Hangup 

[dynamic-nway-invite] 
exten => 0,1,Read(DEST,dial,,i) 
exten => 0,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv) 
exten => 0,n,Dial(Local/${DEST}@dynamic-nway-dest,,g) 
exten => 0,n,Set(DYNAMIC_FEATURES=) 
exten => 0,n,Goto(dynamic-nway,${CONFNO},1) 
exten => i,1,Goto(dynamic-nway,${CONFNO},1) 

[dynamic-nway-dest] 
exten => _XXX,1,Dial(SIP/${EXTEN}) 

[macro-nway-start] 
exten => s,1,Set(CONFNO=${FindFreeConf()}) 
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1) 
exten => s,n,Read(DEST,dial,,i) 
exten => s,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv) 
exten => s,n,Dial(Local/${DEST}@dynamic-nway-dest,,g) 
exten => s,n,Set(DYNAMIC_FEATURES=) 
exten => s,n,Goto(dynamic-nway,${CONFNO},1) 

[macro-nway-ok] 
exten => s,1,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1) 

[macro-nway-notok] 
exten => s,1,SoftHangup(${BRIDGEPEER}) 
 
Note, You need to provide FindFreeConf() function (or any other way) to get free Conference number. 

要使得这些生效要在features.conf做如下工作:

首先
[applicationmap] 
nway-start => *0,caller,Macro,nway-start 
nway-inv => **,caller,Macro,nway-ok 
nway-noinv => *#,caller,Macro,nway-notok 

再次在执行前必须对通道变量DYNAMIC_FEATURES进行赋值。
 

看看它怎么工作的:

 当你和别人通话的时候,按*0 (执行宏 nway-start)。 被叫马上被传递到一个空闲的会议室,而你将听到拨号音,等待你输入你要邀请的电话号码。当被邀请方接通后,你在和这个第三方通话的过程中,可以按 ** (在features.conf可以定义)加入会议,按 *# 挂掉他然后返回会议。

 

在示例所遇问题及解决方法:

1.Function FindFreeConf not registered

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值