Zoiper软电话无法注册到Asterisk与IAX2:导致连接被拒绝,导致代码29

我正在尝试configuration一个Zoiper软电话(iOS应用程序版本),以便它可以连接到我的Asterisk PBX。 Zoiperconfiguration如下:

Account name: Account1 Server: <ip-address-of-my-asterisk-server> User name: guest Password: test Caller ID: guest 

在Asterisk服务器上,/ /etc/asterisk/iax.conf asterisk/ /etc/asterisk/iax.conf包含以下行:

 [guest] username=guest type=friend context=public callerid="Guest IAX User" secret=test auth=md5 

iax2 show users表示Asterisk知道这些设置。 启用额外的日志function后,我收到以下日志消息。 实际上,Zoiper注册到Asterisk被拒绝(原因码29)。 什么可能是错误的,以及哪种IAXauthentication方法是Zoiper使用的(我尝试了md5plaintext都是相同的结果。)

(进一步的问题:Asterisk是否提供(可选的) IAX2注册工具,Zoiper为什么显然发送REGREL ?)

 Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREQ Timestamp: 00002ms SCall: 00209 DCall: 00000 [10.0.7.1:51130] USERNAME : guest REFRESH : 60 CALLTOKEN : Present FW BLOCK DATA : 14 bytes Tx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: CTOKEN Timestamp: 00002ms SCall: 00001 DCall: 00209 [10.0.7.1:51130] CALLTOKEN : 51 bytes Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREL Timestamp: 00003ms SCall: 00208 DCall: 00001 [10.0.7.1:51130] USERNAME : guest CALLTOKEN : 51 bytes FW BLOCK DATA : 14 bytes Tx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGREJ Timestamp: 00003ms SCall: 00001 DCall: 00208 [10.0.7.1:51130] Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREQ Timestamp: 00003ms SCall: 00209 DCall: 00000 [10.0.7.1:51130] USERNAME : guest REFRESH : 60 CALLTOKEN : 51 bytes FW BLOCK DATA : 14 bytes Tx-Frame Retry[-01] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: ACK Timestamp: 00003ms SCall: 06363 DCall: 00209 [10.0.7.1:51130] Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGREJ Timestamp: 00001ms SCall: 06363 DCall: 00209 [10.0.7.1:51130] Timestamp: 00003ms SCall: 00001 DCall: 00208 [10.0.7.1:51130] CAUSE : Registration Refused CAUSE CODE : 29 

尝试在iax.conf中将值host=dynamic添加到您的guestconfiguration文件中