403 登录失败

解决:等待 1 分钟,等超时之后重新连接即可。一般是切换 IP 时或者换软电话登录会碰到。

401 登录失败

解决:检查账户和密码是否正确?检查连接地址是否正确?检查 Asterisk 是否启动?检查防火墙端口是否打开?

408 连接超时

解决:一般是 Asterisk 服务不通,检查 Asterisk 服务是否启动,检查防火墙是否打开?

可以拨通,没有声音?

一般是 NAT 造成,配置这三个参数:rtp_symmetric,force_rport,rewrite_contact。

SIP 客户端没有自动挂机?

一般是没有设置 stun 造成的,在 SIP 客户端,设置 stun 即可。如果没有 stun server,可以设置这个stun.l.google.com:19302

AGI 脚本返回状态 4,正常应该为 0?

查看网上资料,是 AGI 脚本中调用 Hangup 导致,将脚本中的 Hangup 去掉,放在拨号计划配置文件中执行 Hangup,可以解决这个问题。

AGI Script agidemo completed, returning 0

查看客户端是否在线?

pjsip show endpoints

要求最大一个客户端在线,请在aors配置中使用配置

max_contacts 设置为 1

MicroSIP客户端配置后还显示IDLE?

SIP SERVER字段必须填写,和域名地址保持一致。这样状态IDLE会变为ONline。

MicroSIP客户端连接后,Asterisk不显示在线?

如果是服务器在公网,客户端在局域网的网络结构:
我的Asterisk显示的客户端Contact是局域网地址,针对这种情况。
1,临时解决方法:请在账户配置中,勾选IP REWRITE或ICE,具体选择哪个看服务端的配置。他们分别表示IP地址重写和启用更智能的 NAT 穿透技术。如果需要向好友显示在线状态,请勾选Publish Presence。
2,更推荐的解决方法:检查Asterisk的PJSIP配置,需要添加 rewrite_contact=yes这是解决 NAT 的“银弹”。它告诉 Asterisk:“忽略报文里写的内网 IP,直接回复给数据包发过来的那个公网地址和端口。”
设置 rtp_symmetric=yes:确保语音流(RTP)也走同样的路径,防止通话时单通(没声音)。