Zoiper softphone cannot register to Asterisk with IAX2: cause connection refused, cause code 29

asteriskvoip

I am trying to configure a Zoiper softphone (iOS app version) so that it can connect to my Asterisk PBX. The Zoiper configuration is as follows:

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

On the Asterisk server, /etc/asterisk/iax.conf contains these lines:

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

iax2 show users indicates that Asterisk is aware of these settings.
With extra logging enabled I get the following log messages. In effect, Zoiper's registration to Asterisk is refused (with cause code 29). What could be wrong, and which IAX authentication method is Zoiper using (I tried both md5 and plaintext with same results.)

(Further questions: Does Asterisk even provide the (optional) IAX2 registration facility and why is Zoiper apparently sending 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

Best Answer

Try adding the valuehost=dynamic to your guest config in iax.conf

Related Topic