常见的 SIP中继外呼失败原因 及解决办法

在asterCC系统中,配置外呼中继最简单的配置方法是将该中继分配给一个团队,这样该团队所有的对外呼叫都会被默认经由此中继外呼,如图:

配置完成后,使用软电话注册一个该团队下的分机,就可以进行外呼测试了。

问题一: 外呼振铃后, 电话一接听即挂断(SIP错误 488 )

问题现象

电话外呼后被叫号码会振铃,但是当接通时,通话挂断.

SIP错误代码

当使用抓包工具时可以看到错误编码为 488 not acceptable here

[/crayon]  

问题原因

一般由于电话编码和中继编码不匹配,且系统无法进行编码转换的原因造成。

解决办法

检查终端,系统,中继三者是否设定了相同的语音编码,如果没有,则需要确认系统有语音编码转换功能.

问题二: 无法外呼 (SIP 错误 404)

问题现象

电话无法外呼

SIP错误代码

当使用抓包工具时可以看到错误编码为 404 Not Found

问题原因

一般原因是被叫号码格式错误

解决办法

请确保被叫号码格式是中继指定的格式,部分中继会要求设定号码前缀等.

问题三: 无法外呼 (SIP 错误 500 或 603 )

问题现象

电话无法外呼

SIP错误代码

当使用抓包工具时可以看到错误编码为 500 Internal Error 或者 603 Decline

问题原因

一般原因是验证错误

解决办法

确保使用了正确的用户名密码, 部分中继要求使用特定的 SIP From Header 请阅读 网路中继教程之-asterisk-sip中继配置 , 或者 要求使用指定的主叫号码 主叫号码callerid的管理 .

问题四: 无法外呼 (SIP 错误 408 )

问题现象

电话无法外呼

SIP错误代码

当使用抓包工具时可以看到错误编码为 408 Timeout

问题原因

电话无法连接到系统或者系统无法连接到对方网络

解决办法

  • 确定电话正确配置,即软电话能够正常注册到asterisk/astercc服务器
    • 当使用非标准端口时,注册地址需要填写端口号码,例如 sip.astercc.org:8060
  • 确定电话请求可以抵达服务器
    • 确定防火墙开启了正确的端口
      • 在 CentOS 下使用 service iptables stop 命令可以暂停 iptables 防火墙
    • 使用 ngrep 命令可以看到系统接受到的包 sip调试-使用ngrep进行快速sip包分析
  • 确定服务器中继配置使用了正确的ip地址和端口

问题五: 呼入错误

问题现象

拨打系统上的DID号码后,没有反应或者直接被挂断

问题原因

中继没有正确的注册

解决办法

  • 如果是中继注册,请确认已将系统公网IP和端口提供给供应商 并且对方已经正确配置
  • 如果是用户名密码注册, 请确认填写了正确的注册串 阅读 网路中继教程之-asterisk-sip中继配置

你可能感兴趣的:(常见的 SIP中继外呼失败原因 及解决办法)