Asterisk中基于ari-client(Node.js)实现盲呼叫转移的方法咨询
盲呼叫转移实现方案(Zoiper + Asterisk)
一、现有配置验证与调整
1. features.conf(盲转核心配置)
你已配置的盲转触发码及相关参数是生效的基础,确认配置如下并重载Asterisk:
blindxfer = #2 ; 盲呼叫转移触发快捷键 transferdigittimeout = 1 ; 输入分机号的按键间隔秒数 xfersound = beep ; 转移成功提示音 xferfailsound = beeperr ; 转移失败提示音 transferdialattempts = 3 ; 转接失败前的尝试次数 transferretrysound = beep ; 无效分机重试提示音 transferinvalidsound = beeperr ; 无效分机错误提示音
执行命令重载配置:asterisk -rx "core reload"
2. extension.conf(分机路由配置)
确保所有参与通话/转接的分机,Dial命令携带tT参数(允许通话中触发转移),比如你的分机201配置已符合要求,分机100也需同步配置:
exten => 100,1,Dial(SIP/100,20,tT) exten => 201,1,Dial(SIP/201,20,tT)
3. ARI客户端代码(按需保留)
若你的通话通过ARI桥接管理,现有监听BridgeAttendedTransfer事件的代码不影响盲转流程,可保持原样:
bridge.once('BridgeAttendedTransfer', event => { var transferee = new ari.Channel(event.transferee.id); transferee.continueInDialplan({ context: event.context, extension: event.exten, priority: 1 }); });
二、Zoiper端操作步骤
在与分机100的通话中,直接执行以下盲转操作:
- 按下快捷键
#2 - 听到
beep提示音后,快速输入目标分机号(如201) - 立即挂断电话,Asterisk会自动将原通话转接到目标分机
三、故障排查要点
- 检查Asterisk重载配置时是否有报错,执行
asterisk -rx "core reload"确认 - 验证分机的
Dial命令是否都包含tT参数 - 查看Asterisk日志(
/var/log/asterisk/full),定位转移触发、分机可达性等问题
内容的提问来源于stack exchange,提问作者Anas Lakhany
相关产品推荐
相关产品推荐

