IAX Incoming calls won't hangup

I’ve got FreePBX 2.5.1.0 installed and working nicely with a Grandstream SIP phone and my ISP’s voip account.

I thought I’d try an IAX client (Zoiper) on my PC. Everything works well, except if the incoming call hangs up before it’s answered, the IAX client keeps ringing indefinitely.

Looking at the IAX debug I can’t see a HANGUP ever being sent by Asterisk;

In the logs below 201 is the Grandstream SIP phone, and 223 is the Zoiper IAX client. I also get the same symptoms if the call is initiated by another IAX client.

-- Executing [s@macro-dial:7] Dial("SIP/201-08a52990", "IAX2/223,,tr") in new stack
-- Called 223

Tx-Frame Retry[000] – OSeqno: 000 ISeqno: 000 Type: IAX Subclass: NEW
Timestamp: 00008ms SCall: 07138 DCall: 00000 [192.168.100.118:4570]
VERSION : 2
CALLED NUMBER : s
CODEC_PREFS : (ulaw)
CALLING NUMBER : 201
CALLING PRESNTN : 0
CALLING TYPEOFN : 0
CALLING TRANSIT : 0
CALLING NAME : Andy Wright
LANGUAGE : en
FORMAT : 4
CAPABILITY : 24580
ADSICPE : 2
DATE TIME : 2008-11-05 22:02:08

Rx-Frame Retry[ No] – OSeqno: 000 ISeqno: 001 Type: IAX Subclass: ACK
Timestamp: 00008ms SCall: 00014 DCall: 07138 [192.168.100.118:4570]
Rx-Frame Retry[ No] – OSeqno: 000 ISeqno: 001 Type: IAX Subclass: ACCEPT
Timestamp: 00016ms SCall: 00014 DCall: 07138 [192.168.100.118:4570]
FORMAT : 4
pbx*CLI>
– Call accepted by 192.168.100.118 (format ulaw)
– Format for call is ulaw
Tx-Frame Retry[-01] – OSeqno: 001 ISeqno: 001 Type: IAX Subclass: ACK
Timestamp: 00016ms SCall: 07138 DCall: 00014 [192.168.100.118:4570]
Rx-Frame Retry[ No] – OSeqno: 001 ISeqno: 001 Type: CONTROL Subclass: RINGING
Timestamp: 00003ms SCall: 00014 DCall: 07138 [192.168.100.118:4570]
Tx-Frame Retry[-01] – OSeqno: 001 ISeqno: 002 Type: IAX Subclass: ACK
Timestamp: 00003ms SCall: 07138 DCall: 00014 [192.168.100.118:4570]
– IAX2/223-7138 is ringing

So far so good, the IAX client starts ringing.

I hang up without answering the call, but no HANGUP is sent by asterisk…

-- Hungup 'IAX2/223-7138'

== Spawn extension (macro-dial, s, 7) exited non-zero on ‘SIP/201-08a52990’ in macro ‘dial’
== Spawn extension (macro-dial, s, 7) exited non-zero on ‘SIP/201-08a52990’ in macro ‘exten-vm’
== Spawn extension (macro-dial, s, 7) exited non-zero on ‘SIP/201-08a52990’
– Executing [h@macro-dial:1] Macro(“SIP/201-08a52990”, “hangupcall”) in new stack
– Executing [s@macro-hangupcall:1] ResetCDR(“SIP/201-08a52990”, “w”) in new stack
– Executing [s@macro-hangupcall:2] NoCDR(“SIP/201-08a52990”, “”) in new stack
– Executing [s@macro-hangupcall:3] GotoIf(“SIP/201-08a52990”, “1?skiprg”) in new stack
– Goto (macro-hangupcall,s,6)
– Executing [s@macro-hangupcall:6] GotoIf(“SIP/201-08a52990”, “1?skipblkvm”) in new stack
– Goto (macro-hangupcall,s,9)
– Executing [s@macro-hangupcall:9] GotoIf(“SIP/201-08a52990”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,11)
– Executing [s@macro-hangupcall:11] Hangup(“SIP/201-08a52990”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on ‘SIP/201-08a52990’ in macro ‘hangupcall’
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on ‘SIP/201-08a52990’

I’m really not sure where to start looking - any ideas?

Thanks!

Andy, I am experiencing the exact same problem and have a discussion going on the Asterisk Now forum (http://forums.digium.com/viewtopic.php?p=120300). I am using the same version of FreePBX as you.

I have, however, used FreePBX for several years and have just recently found this problem (after changing server to use an *Now distribution - 1.5 Beta)

Did you resolve your problem? If so would you mind sharing what you did?