我正在尝试配置一个 Zoiper 软件电话(iOS 应用程序版本),以便它可以连接到我的 Asterisk PBX。Zoiper 配置如下:
Account name: Account1
Server: <ip-address-of-my-asterisk-server>
User name: guest
Password: test
Caller ID: guest
在 Asterisk 服务器上,/etc/asterisk/iax.conf
包含以下行:
[guest]
username=guest
type=friend
context=public
callerid="Guest IAX User"
secret=test
auth=md5
iax2 show users
表示 Asterisk 知道这些设置。启用额外日志记录后,我会收到以下日志消息。实际上,Zoiper 向 Asterisk 的注册被拒绝(原因代码为 29)。可能出了什么问题,Zoiper 使用的是哪种 IAX 身份验证方法(我都尝试了md5
,plaintext
结果相同。)
(进一步的问题: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
尝试
host=dynamic
在 iax.conf 中将值添加到您的来宾配置中