Asterisk通过rawman发起外呼并播放录音的channel参数问题
解决Asterisk rawman发起外呼的Channel参数问题
看起来你在通过rawman接口发起外呼时,卡在了Channel参数的正确格式上——之前用SIP/23656429@57522666的写法是错误的,这相当于把被叫号码当成了SIP服务器地址,肯定没法正常发起呼叫。结合你的SIP ATA中继(编号23656429),我来给你梳理正确的配置方式:
正确的请求URL
直接修改Channel参数为SIP/23656429/57522666,完整请求如下:
http://192.168.11.11:8088/rawman?action=originate&channel=SIP/23656429/57522666&context=outboundmsg1&exten=s&priority=1&timeout=30000
格式为什么要这么写?
SIP/23656429:这部分指定了呼叫要通过的SIP Peer,也就是你的ATA中继。这个名称必须和你sip.conf里配置的Peer名称完全一致(比如你在sip.conf里定义的[23656429])。/57522666:紧跟在Peer名称后的是目标被叫号码,Asterisk会通过指定的ATA中继把呼叫路由到这个号码上。
额外需要检查的几个点
为了确保呼叫能成功,你还可以做以下验证:
核对SIP Peer配置
打开sip.conf,确认23656429这个Peer的配置是正确的,示例参考:[23656429] type=peer host=192.168.x.x # 替换成你的ATA设备实际IP地址 context=outboundmsg1 allow=ulaw,alaw insecure=port,invite重点保证
host是ATA的真实IP,且Asterisk服务器能ping通这个地址。确认语音文件存在
检查custom/message对应的声音文件(比如message.wav或message.gsm)是否在Asterisk的声音目录下(通常是/var/lib/asterisk/sounds/custom/)。如果文件不存在,Background应用会失败,导致呼叫异常结束。先用命令行测试连通性
登录Asterisk命令行,先手动发起呼叫测试通道是否正常:asterisk -r originate SIP/23656429/57522666 extension s@outboundmsg1如果这个命令能成功呼出,说明Channel参数没问题,再用rawman接口请求就应该能正常工作了。
内容的提问来源于stack exchange,提问作者JoeGalind
相关产品推荐
相关产品推荐

