Circuit-busy

Since the most recent module update for 2.3 beta-1 my Teliax trunk fails outbound.

I’ve tried both SIP & IAX with the same result, other outbound SIP & H323 trunks work. And the Teliax account works fine in Idefisk. I get a “is circuit-busy” Inbound calls to the trunk seem to be fine.

Any thoughts or where else to look?

It seems to see the peer…

[code:1]asterisk1CLI> iax2 show peer Teliax
asterisk1
CLI>

  • Name : Teliax
    Secret :
    Context : default
    Mailbox :
    Dynamic : No
    Callerid : “” <>
    Expire : -1
    ACL : No
    Addr->IP : 216.89.79.2 Port 4569
    Defaddr->IP : 0.0.0.0 Port 0
    Username : REMOVED
    Codecs : 0xfd00 (g729|ilbc)
    Codec Order : (ilbc|g729)
    Status : OK (138 ms)
    Qualify : every 60000ms when OK, every 10000ms when UNREACHABLE (sample smoothing Off)
    [/code:1]

But outbound calls die…

[code:1]
– Starting simple switch on ‘Zap/1-1’
– Executing Macro(“Zap/1-1”, “dialout-trunk|1|00191676726676||”) in new stack
– Executing Set(“Zap/1-1”, “DIAL_TRUNK=1”) in new stack
– Executing Set(“Zap/1-1”, “DIAL_NUMBER=00191676726676”) in new stack
– Executing Set(“Zap/1-1”, “ROUTE_PASSWD=”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?noauth”) in new stack
– Goto (macro-dialout-trunk,s,6)
– Executing GotoIf(“Zap/1-1”, “0?disabletrunk|1”) in new stack
– Executing Set(“Zap/1-1”, “_NODEST=”) in new stack
– Executing Set(“Zap/1-1”, “DIAL_TRUNK_OPTIONS=tr”) in new stack
– Executing Set(“Zap/1-1”, “GROUP()=OUT_1”) in new stack
– Executing Macro(“Zap/1-1”, “user-callerid|SKIPTTL”) in new stack
– Executing NoOp(“Zap/1-1”, “user-callerid: device 4500”) in new stack
– Executing Set(“Zap/1-1”, “AMPUSER=4500”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?report”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?start”) in new stack
– Executing Set(“Zap/1-1”, “REALCALLERIDNUM=4500”) in new stack
– Executing NoOp(“Zap/1-1”, “REALCALLERIDNUM is 4500”) in new stack
– Executing Set(“Zap/1-1”, “AMPUSER=4500”) in new stack
– Executing Set(“Zap/1-1”, “AMPUSERCIDNAME=House Phone”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?report”) in new stack
– Executing Set(“Zap/1-1”, “AMPUSERCID=4500”) in new stack
– Executing Set(“Zap/1-1”, “CALLERID(all)=House Phone <4500>”) in new stack
– Executing Set(“Zap/1-1”, “REALCALLERIDNUM=4500”) in new stack
– Executing NoOp(“Zap/1-1”, “TTL: ARG1: SKIPTTL”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?continue”) in new stack
– Goto (macro-user-callerid,s,23)
– Executing NoOp(“Zap/1-1”, “Using CallerID “House Phone” <4500>”) in new stack
– Executing Macro(“Zap/1-1”, “record-enable|4500|OUT”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?2:4”) in new stack
– Goto (macro-record-enable,s,4)
– Executing DeadAGI(“Zap/1-1”, “recordingcheck|20070701-135012|1183294203.24”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
recordingcheck|20070701-135012|1183294203.24: Outbound recording not enabled
– AGI Script recordingcheck completed, returning 0
– Executing NoOp(“Zap/1-1”, “No recording needed”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?skipoutcid”) in new stack
– Executing Set(“Zap/1-1”, “DIAL_TRUNK_OPTIONS=W”) in new stack
– Executing Macro(“Zap/1-1”, “outbound-callerid|1”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?start”) in new stack
– Goto (macro-outbound-callerid,s,3)
– Executing NoOp(“Zap/1-1”, “REALCALLERIDNUM is 4500”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?normcid”) in new stack
– Goto (macro-outbound-callerid,s,9)
– Executing Set(“Zap/1-1”, “USEROUTCID=”) in new stack
– Executing Set(“Zap/1-1”, “EMERGENCYCID=”) in new stack
– Executing Set(“Zap/1-1”, “TRUNKOUTCID=“Waite & Hartmann” <916 555 1212>”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?trunkcid”) in new stack
– Goto (macro-outbound-callerid,s,16)
– Executing GotoIf(“Zap/1-1”, “0?usercid”) in new stack
– Executing Set(“Zap/1-1”, “CALLERID(all)=“Waite & Hartmann” <916 555 1212>”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?report”) in new stack
– Goto (macro-outbound-callerid,s,22)
– Executing NoOp(“Zap/1-1”, “CallerID set to “Waite & Hartmann” <9165551212>”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?nomax”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?chanfull”) in new stack
– Executing AGI(“Zap/1-1”, “fixlocalprefix”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/fixlocalprefix
– AGI Script fixlocalprefix completed, returning 0
– Executing Set(“Zap/1-1”, “OUTNUM=00191676726676”) in new stack
– Executing Set(“Zap/1-1”, “custom=IAX2/Teliax”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?gocall”) in new stack
– Goto (macro-dialout-trunk,s,22)
– Executing GotoIf(“Zap/1-1”, “0?customtrunk”) in new stack
– Executing Dial(“Zap/1-1”, “IAX2/Teliax/00191676726676|300|W”) in new stack
– Called Teliax/00191676726676
– IAX2/Teliax-3 is circuit-busy
– Hungup ‘IAX2/Teliax-3’
== Everyone is busy/congested at this time (1:0/1/0)
– Executing Goto(“Zap/1-1”, “s-CONGESTION|1”) in new stack
– Goto (macro-dialout-trunk,s-CONGESTION,1)
– Executing GotoIf(“Zap/1-1”, “1?noreport”) in new stack
– Goto (macro-dialout-trunk,s-CONGESTION,3)
– Executing NoOp(“Zap/1-1”, “TRUNK Dial failed due to CONGESTION - failing through to other trunks”) in new stack
– Executing Macro(“Zap/1-1”, “outisbusy|”) in new stack
– Executing Playback(“Zap/1-1”, “all-circuits-busy-now|noanswer”) in new stack
– Playing ‘all-circuits-busy-now’ (language ‘en’)
– Executing Playback(“Zap/1-1”, “pls-try-call-later|noanswer”) in new stack
– Playing ‘pls-try-call-later’ (language ‘en’)
== Spawn extension (macro-outisbusy, s, 2) exited non-zero on ‘Zap/1-1’ in macro ‘outisbusy’
== Spawn extension (macro-outisbusy, s, 2) exited non-zero on ‘Zap/1-1’
– Hungup ‘Zap/1-1’
[/code:1]

conference button?

Yes.

But I just found the answer.

I posted it here http://www.freepbx.org/forums/viewtopic.php?p=5289#5289

James,

post a bug, and please spell out specific ‘repro’ steps of an example trunk configuration that results in this issue. Thanks.

Will do.

Now if i could just get my conference button issue figured out.

Thanks.

It was a dial string issue.

I’m in IE but Teliax expects NANP dial stings, so to make it transparent with the other trunks, in my dial 9 outbound route I’ve:

9|001. - to drop the 9 and pass the rest

and on the Teliax trunk

00|1. - for the NANP string Teliax expects.

The 2.3.0beta1.5 Core module seems to have resolved the problem.

A minor usability issue…

The trunk configuration screen doesn’t prevent you from entering a ‘Trunk Name’ that’s the same as the ‘USER Context’ but doing so prevents the peer from registering.

James

that would be a problem, the reject. Note, it shouldn’t be related, but the last core update broke fixlocalprefix which deals with trunk dial patterns. I just fixed that so in case that was related you may want to pull that. (and in either case you DO want to pull that fix).

I have…

[code:1]
asterisk1CLI> iax2 show registry
Host Username Perceived Refresh State
216.89.79.2:4569 REMOVED 88.151.24.161:4569 60 Registered
asterisk1
CLI>
[/code:1]

and I’d think the inbound calls on the trunk wouldn’t work if it wasn’t registering correctly…

I think I’ve found it…though I’m not entire sure why I’d get a ‘No such context/extension’ message now, or what context/extension they’re expecting or which field this corrosponds to in the trunk config…

[code:1]
Tx-Frame Retry[000] – OSeqno: 000 ISeqno: 000 Type: IAX Subclass: NEW
Timestamp: 00008ms SCall: 00003 DCall: 00000 [216.89.79.2:4569]
VERSION : 2
CALLED NUMBER : 0019167672676
CODEC_PREFS : (ilbc|g729)
CALLING NUMBER : 9165551212
CALLING PRESNTN : 0
CALLING TYPEOFN : 0
CALLING TRANSIT : 0
CALLING NAME : Waite & Hartmann
LANGUAGE : en
USERNAME : REMOVED
FORMAT : 256
CAPABILITY : 64768
ADSICPE : 2
DATE TIME : 2007-07-01 15:09:40

-- Called Teliax/0019167672676

Rx-Frame Retry[ No] – OSeqno: 000 ISeqno: 001 Type: IAX Subclass: AUTHREQ
Timestamp: 00015ms SCall: 00074 DCall: 00003 [216.89.79.2:4569]
AUTHMETHODS : 2
CHALLENGE : 33825161
USERNAME : REMOVED
asterisk1*CLI>
Tx-Frame Retry[000] – OSeqno: 001 ISeqno: 001 Type: IAX Subclass: AUTHREP
Timestamp: 00112ms SCall: 00003 DCall: 00074 [216.89.79.2:4569]
MD5 RESULT : 54049884eebd162b67ae9ed9b740610d

Rx-Frame Retry[ No] – OSeqno: 001 ISeqno: 002 Type: IAX Subclass: REJECT
Timestamp: 00117ms SCall: 00074 DCall: 00003 [216.89.79.2:4569]
CAUSE : No such context/extension
CAUSE CODE : 3

-- IAX2/Teliax-3 is circuit-busy

Tx-Frame Retry[-01] – OSeqno: 002 ISeqno: 002 Type: IAX Subclass: ACK
Timestamp: 00117ms SCall: 00003 DCall: 00074 [216.89.79.2:4569]
– Hungup ‘IAX2/Teliax-3’[/code:1]

hmm, there shouldn’t have been anything that changed that effected turnks or this part of the code. It does look like it is dialing correctly:

[code:1] – Executing Dial(“Zap/1-1”, “IAX2/Teliax/00191676726676|300|W”) in new stack
– Called Teliax/00191676726676 [/code:1]
And if other trunks are working fine?

Have you checked to make sure it is properly registerd? (iax2 show registery).

Have you checked the log to see if it has any more clues?

Have you turned on ‘iax2 debug’ to see if it shows anything more?

If you ever have problems with Teliax you can reach the support line at 888-270-3688. It looks like you figured this one out.

I am having kinda the same problem. Can you guys hep me out?
Thank you
Postby dnltosa » Wed Jan 25, 2012 12:21 am
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
– Executing [0000000000@from-trunk:1] Set(“SIP/vitel-inbound-00000006”, “__FROM_DID=000000000”) in new stack
– Executing [0000000000@from-trunk:2] ExecIf(“SIP/vitel-inbound-00000006”, “0 ?Set(CALLERID(name)=00000000)”) in new stack
– Executing [0000000000@from-trunk:3] Set(“SIP/vitel-inbound-00000006”, “__CALLINGPRES_SV=allowed_not_screened”) in new stack
– Executing [0000000000@from-trunk:4] Set(“SIP/vitel-inbound-00000006”, “CALLERPRES()=allowed_not_screened”) in new stack
– Executing [0000000000@from-trunk:5] Goto(“SIP/vitel-inbound-00000006”, “ext-trunk,1,1”) in new stack
– Goto (ext-trunk,1,1)
– Executing [1@ext-trunk:1] Set(“SIP/vitel-inbound-00000006”, “TDIAL_STRING=SIP/vitel-inbound”) in new stack
– Executing [1@ext-trunk:2] Set(“SIP/vitel-inbound-00000006”, “DIAL_TRUNK=1”) in new stack
– Executing [1@ext-trunk:3] Goto(“SIP/vitel-inbound-00000006”, “ext-trunk,tdial,1”) in new stack
– Goto (ext-trunk,tdial,1)
– Executing [tdial@ext-trunk:1] Set(“SIP/vitel-inbound-00000006”, “OUTBOUND_GROUP=OUT_1”) in new stack
– Executing [tdial@ext-trunk:2] GotoIf(“SIP/vitel-inbound-00000006”, “1?nomax”) in new stack
– Goto (ext-trunk,tdial,4)
– Executing [tdial@ext-trunk:4] ExecIf(“SIP/vitel-inbound-00000006”, “1?Set(CALLERPRES()=allowed_not_screened)”) in new stack
– Executing [tdial@ext-trunk:5] Set(“SIP/vitel-inbound-00000006”, “DIAL_NUMBER=6027530644”) in new stack
– Executing [tdial@ext-trunk:6] GosubIf(“SIP/vitel-inbound-00000006”, “0?sub-flp-1,s,1”) in new stack
– Executing [tdial@ext-trunk:7] Dial(“SIP/vitel-inbound-00000006”, “SIP/vitel-inbound/,300,”) in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
– Called SIP/vitel-inbound/
– SIP/vitel-inbound-00000007 is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
– Executing [tdial@ext-trunk:8] Hangup(“SIP/vitel-inbound-00000006”, “”) in new stack
== Spawn extension (ext-trunk, tdial, 8) exited non-zero on 'SIP/vitel-inbound-00000006’
inbound
username=xxxxxx
type=friend
dtmfmode=auto
secret=xxxxxx
insecure=port,invite
host=inbound16.vitelity.net
allow=all
context=from-trunk
canreinvite=no
outbound
type=friend
dtmfmode=auto
host=outbound.vitelity.net
username=xxxxxx
fromuser=xxxxxx
secret=xxxxxxx
trustrpid=yes
sendrpid=yes
allow=all
canreinvite=no