1 of 4 Registered IAX2 Trunks giving "All Circuits Busy"

Asterisk Version: 16.11.1
Your system is currently up to date!
Your PBX is up to date.

I have x4 IAX2 trunks, all configured in what I believe are the same way, but when I link an outbound route to our 888 trunk, I immediately get Asterisk’s “All Circuits are Busy”.

I can receive calls. I have tried recreating the Trunk, resetting the password with the provider, called the provider and they said they can’t see anything when I attempt an outbound call.

From the logs:

NoOp(“PJSIP/304-0000007c”, “TRUNK Dial failed due to CHANUNAVAIL HANGUPCAUSE: 3 - failing through to other trunks”) in new stack

Outbound isn’t currently set to fall over to other trunks for testing.

I even checked the iax_additional.conf file to ensure they’re written the same:

[416WORKING] (x3 with dif #s and Secrets)
type=user
context=from-trunk

[416WORKING-out]
username=416WORKING
type=peer
secret=ABC123
host=providers-iax2-hostname
context=from-trunk-iax2-416WORKING-out

[888ALLBUSY]
type=user
context=from-trunk

[888ALLBUSY-out]
username=888ALLBUSY
type=peer
secret=EFG456
host=providers-iax2-hostname
context=from-trunk-iax2-888ALLBUSY-out

Everything else in the Trunk settings for them all are identical other than their CallerID.

When I use outbound routers to force one or the other trunk, no matter which outbound route I assign to 888ALLBUSY I always get “All Circuits are Busy”.

The logs:

-- Executing [1877TESTNUM@from-internal:1] Macro("PJSIP/304-0000007c", "user-callerid,LIMIT,EXTERNAL,") in new stack
-- Executing [s@macro-user-callerid:1] Set("PJSIP/304-0000007c", "TOUCH_MONITOR=1595878336.266") in new stack
-- Executing [s@macro-user-callerid:2] Set("PJSIP/304-0000007c", "AMPUSER=304") in new stack
-- Executing [s@macro-user-callerid:3] Set("PJSIP/304-0000007c", "HOTDESCKCHAN=304-0000007c") in new stack
-- Executing [s@macro-user-callerid:4] Set("PJSIP/304-0000007c", "HOTDESKEXTEN=304") in new stack
-- Executing [s@macro-user-callerid:5] Set("PJSIP/304-0000007c", "HOTDESKCALL=0") in new stack
-- Executing [s@macro-user-callerid:6] ExecIf("PJSIP/304-0000007c", "0?Set(HOTDESKCALL=1)") in new stack
-- Executing [s@macro-user-callerid:7] ExecIf("PJSIP/304-0000007c", "0?Set(CALLERID(name)=)") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("PJSIP/304-0000007c", "0?report") in new stack
-- Executing [s@macro-user-callerid:9] ExecIf("PJSIP/304-0000007c", "1?Set(REALCALLERIDNUM=304)") in new stack
-- Executing [s@macro-user-callerid:10] Set("PJSIP/304-0000007c", "AMPUSER=304") in new stack
-- Executing [s@macro-user-callerid:11] GotoIf("PJSIP/304-0000007c", "0?limit") in new stack
-- Executing [s@macro-user-callerid:12] Set("PJSIP/304-0000007c", "AMPUSERCIDNAME=Jonathan Davis") in new stack
-- Executing [s@macro-user-callerid:13] ExecIf("PJSIP/304-0000007c", "0?Set(__CIDMASQUERADING=TRUE)") in new stack
-- Executing [s@macro-user-callerid:14] GotoIf("PJSIP/304-0000007c", "0?report") in new stack
-- Executing [s@macro-user-callerid:15] Set("PJSIP/304-0000007c", "AMPUSERCID=304") in new stack
-- Executing [s@macro-user-callerid:16] Set("PJSIP/304-0000007c", "__DIAL_OPTIONS=HhTtr") in new stack
-- Executing [s@macro-user-callerid:17] Set("PJSIP/304-0000007c", "CALLERID(all)="Jonathan Davis" <304>") in new stack
-- Executing [s@macro-user-callerid:18] ExecIf("PJSIP/304-0000007c", "0?Set(CUSDIAL=)") in new stack
-- Executing [s@macro-user-callerid:19] ExecIf("PJSIP/304-0000007c", "0?Set(CALLERID(all)="Jonathan Davis" <304>)") in new stack
-- Executing [s@macro-user-callerid:20] GotoIf("PJSIP/304-0000007c", "0?limit") in new stack
-- Executing [s@macro-user-callerid:21] ExecIf("PJSIP/304-0000007c", "1?Set(GROUP(concurrency_limit)=304)") in new stack
-- Executing [s@macro-user-callerid:22] ExecIf("PJSIP/304-0000007c", "0?Set(CHANNEL(language)=)") in new stack
-- Executing [s@macro-user-callerid:23] NoOp("PJSIP/304-0000007c", "Macro Depth is 1") in new stack
-- Executing [s@macro-user-callerid:24] GotoIf("PJSIP/304-0000007c", "1?report2:macroerror") in new stack
-- Goto (macro-user-callerid,s,25)
-- Executing [s@macro-user-callerid:25] GotoIf("PJSIP/304-0000007c", "1?continue") in new stack
-- Goto (macro-user-callerid,s,44)
-- Executing [s@macro-user-callerid:44] Set("PJSIP/304-0000007c", "CALLERID(number)=304") in new stack
-- Executing [s@macro-user-callerid:45] Set("PJSIP/304-0000007c", "CALLERID(name)=Jonathan Davis") in new stack
-- Executing [s@macro-user-callerid:46] GotoIf("PJSIP/304-0000007c", "0?cnum") in new stack
-- Executing [s@macro-user-callerid:47] Set("PJSIP/304-0000007c", "CDR(cnam)=Jonathan Davis") in new stack
-- Executing [s@macro-user-callerid:48] Set("PJSIP/304-0000007c", "CDR(cnum)=304") in new stack
-- Executing [s@macro-user-callerid:49] Set("PJSIP/304-0000007c", "CHANNEL(language)=en") in new stack
-- Executing [1877TESTNUM@from-internal:2] Gosub("PJSIP/304-0000007c", "sub-record-check,s,1(out,1877TESTNUM,dontcare)") in new stack
-- Executing [s@sub-record-check:1] GotoIf("PJSIP/304-0000007c", "0?initialized") in new stack
-- Executing [s@sub-record-check:2] Set("PJSIP/304-0000007c", "__REC_STATUS=INITIALIZED") in new stack
-- Executing [s@sub-record-check:3] Set("PJSIP/304-0000007c", "NOW=1595878336") in new stack
-- Executing [s@sub-record-check:4] Set("PJSIP/304-0000007c", "__DAY=27") in new stack
-- Executing [s@sub-record-check:5] Set("PJSIP/304-0000007c", "__MONTH=07") in new stack
-- Executing [s@sub-record-check:6] Set("PJSIP/304-0000007c", "__YEAR=2020") in new stack
-- Executing [s@sub-record-check:7] Set("PJSIP/304-0000007c", "__TIMESTR=20200727-153216") in new stack
-- Executing [s@sub-record-check:8] Set("PJSIP/304-0000007c", "__FROMEXTEN=304") in new stack
-- Executing [s@sub-record-check:9] Set("PJSIP/304-0000007c", "__MON_FMT=wav") in new stack
-- Executing [s@sub-record-check:10] NoOp("PJSIP/304-0000007c", "Recordings initialized") in new stack
-- Executing [s@sub-record-check:11] ExecIf("PJSIP/304-0000007c", "0?Set(ARG3=dontcare)") in new stack
-- Executing [s@sub-record-check:12] Set("PJSIP/304-0000007c", "REC_POLICY_MODE_SAVE=") in new stack
-- Executing [s@sub-record-check:13] ExecIf("PJSIP/304-0000007c", "0?Set(REC_STATUS=NO)") in new stack
-- Executing [s@sub-record-check:14] GotoIf("PJSIP/304-0000007c", "3?checkaction") in new stack
-- Goto (sub-record-check,s,17)
-- Executing [s@sub-record-check:17] GotoIf("PJSIP/304-0000007c", "1?sub-record-check,out,1") in new stack
-- Goto (sub-record-check,out,1)
-- Executing [out@sub-record-check:1] NoOp("PJSIP/304-0000007c", "Outbound Recording Check from 304 to 1877TESTNUM") in new stack
-- Executing [out@sub-record-check:2] Set("PJSIP/304-0000007c", "RECMODE=dontcare") in new stack
-- Executing [out@sub-record-check:3] ExecIf("PJSIP/304-0000007c", "1?Goto(routewins)") in new stack
-- Goto (sub-record-check,out,7)
-- Executing [out@sub-record-check:7] Gosub("PJSIP/304-0000007c", "recordcheck,1(dontcare,out,1877TESTNUM)") in new stack
-- Executing [recordcheck@sub-record-check:1] NoOp("PJSIP/304-0000007c", "Starting recording check against dontcare") in new stack
-- Executing [recordcheck@sub-record-check:2] Goto("PJSIP/304-0000007c", "dontcare") in new stack
-- Goto (sub-record-check,recordcheck,3)
-- Executing [recordcheck@sub-record-check:3] Return("PJSIP/304-0000007c", "") in new stack
-- Executing [out@sub-record-check:8] Return("PJSIP/304-0000007c", "") in new stack
-- Executing [1877TESTNUM@from-internal:3] ExecIf("PJSIP/304-0000007c", "0 ?Set(CDR(accountcode)=)") in new stack
-- Executing [1877TESTNUM@from-internal:4] Set("PJSIP/304-0000007c", "_ROUTEID=6") in new stack
-- Executing [1877TESTNUM@from-internal:5] Set("PJSIP/304-0000007c", "_ROUTENAME=Unlimitel Tollfree") in new stack
-- Executing [1877TESTNUM@from-internal:6] Set("PJSIP/304-0000007c", "MOHCLASS=default") in new stack
-- Executing [1877TESTNUM@from-internal:7] ExecIf("PJSIP/304-0000007c", "1?Set(TRUNKCIDOVERRIDE=<888ALLBUSY>)") in new stack
-- Executing [1877TESTNUM@from-internal:8] Set("PJSIP/304-0000007c", "_CALLERIDNAMEINTERNAL=Jonathan Davis") in new stack
-- Executing [1877TESTNUM@from-internal:9] Set("PJSIP/304-0000007c", "_CALLERIDNUMINTERNAL=304") in new stack
-- Executing [1877TESTNUM@from-internal:10] Set("PJSIP/304-0000007c", "_EMAILNOTIFICATION=FALSE") in new stack
-- Executing [1877TESTNUM@from-internal:11] Set("PJSIP/304-0000007c", "_NODEST=") in new stack
-- Executing [1877TESTNUM@from-internal:12] Macro("PJSIP/304-0000007c", "dialout-trunk,1,1877TESTNUM,,off") in new stack
-- Executing [s@macro-dialout-trunk:1] Set("PJSIP/304-0000007c", "DIAL_TRUNK=1") in new stack
-- Executing [s@macro-dialout-trunk:2] ExecIf("PJSIP/304-0000007c", "0?Set(DIAL_OPTIONS=Hhtr)") in new stack
-- Executing [s@macro-dialout-trunk:3] GosubIf("PJSIP/304-0000007c", "0?sub-pincheck,s,1()") in new stack
-- Executing [s@macro-dialout-trunk:4] ExecIf("PJSIP/304-0000007c", "0?Set(CALLERID(num)=304)") in new stack
-- Executing [s@macro-dialout-trunk:5] GotoIf("PJSIP/304-0000007c", "0?disabletrunk,1") in new stack
-- Executing [s@macro-dialout-trunk:6] Set("PJSIP/304-0000007c", "DIAL_NUMBER=1877TESTNUM") in new stack
-- Executing [s@macro-dialout-trunk:7] Set("PJSIP/304-0000007c", "DIAL_TRUNK_OPTIONS=HhTtr") in new stack
-- Executing [s@macro-dialout-trunk:8] Set("PJSIP/304-0000007c", "OUTBOUND_GROUP=OUT_1") in new stack
-- Executing [s@macro-dialout-trunk:9] Set("PJSIP/304-0000007c", "DIAL_TRUNK_OPTIONS=T") in new stack
-- Executing [s@macro-dialout-trunk:10] GotoIf("PJSIP/304-0000007c", "0?nomax") in new stack
-- Executing [s@macro-dialout-trunk:11] GotoIf("PJSIP/304-0000007c", "0?chanfull") in new stack
-- Executing [s@macro-dialout-trunk:12] GotoIf("PJSIP/304-0000007c", "0?skipoutcid") in new stack
-- Executing [s@macro-dialout-trunk:13] Macro("PJSIP/304-0000007c", "outbound-callerid,1") in new stack
-- Executing [s@macro-outbound-callerid:1] NoOp("PJSIP/304-0000007c", "304") in new stack
-- Executing [s@macro-outbound-callerid:2] NoOp("PJSIP/304-0000007c", "") in new stack
-- Executing [s@macro-outbound-callerid:3] NoOp("PJSIP/304-0000007c", "off") in new stack
-- Executing [s@macro-outbound-callerid:4] ExecIf("PJSIP/304-0000007c", "0?Set(CALLERPRES(name-pres)=)") in new stack
-- Executing [s@macro-outbound-callerid:5] ExecIf("PJSIP/304-0000007c", "0?Set(CALLERPRES(num-pres)=)") in new stack
-- Executing [s@macro-outbound-callerid:6] Set("PJSIP/304-0000007c", "HOTDESCKCHAN=304-0000007c") in new stack
-- Executing [s@macro-outbound-callerid:7] Set("PJSIP/304-0000007c", "HOTDESKEXTEN=304") in new stack
-- Executing [s@macro-outbound-callerid:8] Set("PJSIP/304-0000007c", "HOTDESKCALL=0") in new stack
-- Executing [s@macro-outbound-callerid:9] ExecIf("PJSIP/304-0000007c", "0?Set(HOTDESKCALL=1)") in new stack
-- Executing [s@macro-outbound-callerid:10] ExecIf("PJSIP/304-0000007c", "0?Set(CALLERID(name)=)") in new stack
-- Executing [s@macro-outbound-callerid:11] Set("PJSIP/304-0000007c", "ALLOWTHISROUTE=NO") in new stack
-- Executing [s@macro-outbound-callerid:12] ExecIf("PJSIP/304-0000007c", "0?Set(ALLOWTHISROUTE=YES)") in new stack
-- Executing [s@macro-outbound-callerid:13] ExecIf("PJSIP/304-0000007c", "0?Hangup()") in new stack
-- Executing [s@macro-outbound-callerid:14] ExecIf("PJSIP/304-0000007c", "0?Set(REALCALLERIDNUM=304)") in new stack
-- Executing [s@macro-outbound-callerid:15] ExecIf("PJSIP/304-0000007c", "0?Set(AMPUSER=304)") in new stack
-- Executing [s@macro-outbound-callerid:16] GotoIf("PJSIP/304-0000007c", "1?normcid") in new stack
-- Goto (macro-outbound-callerid,s,20)
-- Executing [s@macro-outbound-callerid:20] Set("PJSIP/304-0000007c", "USEROUTCID=") in new stack
-- Executing [s@macro-outbound-callerid:21] Set("PJSIP/304-0000007c", "EMERGENCYCID=") in new stack
-- Executing [s@macro-outbound-callerid:22] ExecIf("PJSIP/304-0000007c", "0?Set(EMERGENCYCID=)") in new stack
-- Executing [s@macro-outbound-callerid:23] Set("PJSIP/304-0000007c", "TRUNKOUTCID=<888ALLBUSY>") in new stack
-- Executing [s@macro-outbound-callerid:24] GotoIf("PJSIP/304-0000007c", "1?trunkcid") in new stack
-- Goto (macro-outbound-callerid,s,30)
-- Executing [s@macro-outbound-callerid:30] ExecIf("PJSIP/304-0000007c", "1?Set(CALLERID(all)=<888ALLBUSY>)") in new stack
-- Executing [s@macro-outbound-callerid:31] ExecIf("PJSIP/304-0000007c", "0?Set(CALLERID(all)=)") in new stack
-- Executing [s@macro-outbound-callerid:32] ExecIf("PJSIP/304-0000007c", "1?Set(CALLERID(all)=<888ALLBUSY>)") in new stack
-- Executing [s@macro-outbound-callerid:33] ExecIf("PJSIP/304-0000007c", "0?Set(CALLERID(all)=304)") in new stack
-- Executing [s@macro-outbound-callerid:34] Set("PJSIP/304-0000007c", "TIOHIDE=no") in new stack
-- Executing [s@macro-outbound-callerid:35] ExecIf("PJSIP/304-0000007c", "0?Set(CALLERPRES(name-pres)=prohib_passed_screen)") in new stack
-- Executing [s@macro-outbound-callerid:36] ExecIf("PJSIP/304-0000007c", "0?Set(CALLERPRES(num-pres)=prohib_passed_screen)") in new stack
-- Executing [s@macro-outbound-callerid:37] ExecIf("PJSIP/304-0000007c", "0?Set(CALLERPRES(name-pres)=prohib_passed_screen)") in new stack
-- Executing [s@macro-outbound-callerid:38] ExecIf("PJSIP/304-0000007c", "0?Set(CALLERPRES(num-pres)=prohib_passed_screen)") in new stack
-- Executing [s@macro-outbound-callerid:39] Set("PJSIP/304-0000007c", "CDR(outbound_cnum)=888ALLBUSY") in new stack
-- Executing [s@macro-outbound-callerid:40] Set("PJSIP/304-0000007c", "CDR(outbound_cnam)=") in new stack
-- Executing [s@macro-dialout-trunk:14] GosubIf("PJSIP/304-0000007c", "0?sub-flp-1,s,1()") in new stack
-- Executing [s@macro-dialout-trunk:15] Set("PJSIP/304-0000007c", "OUTNUM=1877TESTNUM") in new stack
-- Executing [s@macro-dialout-trunk:16] Set("PJSIP/304-0000007c", "custom=IAX2/888ALLBUSY-out") in new stack
-- Executing [s@macro-dialout-trunk:17] ExecIf("PJSIP/304-0000007c", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)T)") in new stack
-- Executing [s@macro-dialout-trunk:18] ExecIf("PJSIP/304-0000007c", "0?Set(DIAL_TRUNK_OPTIONS=TM(confirm))") in new stack
-- Executing [s@macro-dialout-trunk:19] Macro("PJSIP/304-0000007c", "dialout-trunk-predial-hook,") in new stack
-- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("PJSIP/304-0000007c", "") in new stack
-- Executing [s@macro-dialout-trunk:20] GotoIf("PJSIP/304-0000007c", "0?bypass,1") in new stack
-- Executing [s@macro-dialout-trunk:21] ExecIf("PJSIP/304-0000007c", "1?Set(CONNECTEDLINE(num,i)=1877TESTNUM)") in new stack
-- Executing [s@macro-dialout-trunk:22] ExecIf("PJSIP/304-0000007c", "1?Set(CONNECTEDLINE(name,i)=CID:888ALLBUSY)") in new stack
-- Executing [s@macro-dialout-trunk:23] ExecIf("PJSIP/304-0000007c", "0?Set(CONNECTEDLINE(name,i)=CID:(Hidden)888ALLBUSY)") in new stack
-- Executing [s@macro-dialout-trunk:24] GotoIf("PJSIP/304-0000007c", "0?customtrunk") in new stack
-- Executing [s@macro-dialout-trunk:25] ExecIf("PJSIP/304-0000007c", "0?Set(DIAL_TRUNK_OPTIONS=)") in new stack
-- Executing [s@macro-dialout-trunk:26] Set("PJSIP/304-0000007c", "HASH(__SIPHEADERS,Alert-Info)=unset") in new stack
-- Executing [s@macro-dialout-trunk:27] Dial("PJSIP/304-0000007c", "IAX2/888ALLBUSY-out/1877TESTNUM,300,Tb(func-apply-sipheaders^s^1,(1))U(sub-send-obroute-email^1877TESTNUM^1877TESTNUM^1^1595878336^^888ALLBUSY)") in new stack
-- IAX2/888ALLBUSY-out-12427 Internal Gosub(func-apply-sipheaders,s,1(1)) start
-- Executing [s@func-apply-sipheaders:1] NoOp("IAX2/888ALLBUSY-out-12427", "Applying SIP Headers to channel IAX2/888ALLBUSY-out-12427") in new stack
-- Executing [s@func-apply-sipheaders:2] Set("IAX2/888ALLBUSY-out-12427", "TECH=IAX2") in new stack
-- Executing [s@func-apply-sipheaders:3] Set("IAX2/888ALLBUSY-out-12427", "SIPHEADERKEYS=Alert-Info") in new stack
-- Executing [s@func-apply-sipheaders:4] While("IAX2/888ALLBUSY-out-12427", "1") in new stack
-- Executing [s@func-apply-sipheaders:5] Set("IAX2/888ALLBUSY-out-12427", "sipheader=unset") in new stack
-- Executing [s@func-apply-sipheaders:6] ExecIf("IAX2/888ALLBUSY-out-12427", "0?SIPRemoveHeader(Alert-Info:)") in new stack
-- Executing [s@func-apply-sipheaders:7] ExecIf("IAX2/888ALLBUSY-out-12427", "0?Set(PJSIP_HEADER(remove,Alert-Info)=)") in new stack
-- Executing [s@func-apply-sipheaders:8] ExecIf("IAX2/888ALLBUSY-out-12427", "0?Set(sipheader=<http://127.0.0.1>;info=unset)") in new stack
-- Executing [s@func-apply-sipheaders:9] ExecIf("IAX2/888ALLBUSY-out-12427", "0?Set(sipheader=<http://127.0.0.1>unset)") in new stack
-- Executing [s@func-apply-sipheaders:10] ExecIf("IAX2/888ALLBUSY-out-12427", "0?SIPAddHeader(Alert-Info:unset)") in new stack
-- Executing [s@func-apply-sipheaders:11] ExecIf("IAX2/888ALLBUSY-out-12427", "0?Set(PJSIP_HEADER(add,Alert-Info)=unset)") in new stack
-- Executing [s@func-apply-sipheaders:12] EndWhile("IAX2/888ALLBUSY-out-12427", "") in new stack
-- Executing [s@func-apply-sipheaders:4] While("IAX2/888ALLBUSY-out-12427", "0") in new stack
-- Executing [s@func-apply-sipheaders:13] Return("IAX2/888ALLBUSY-out-12427", "") in new stack
-- == Spawn extension (, 1877TESTNUM, 1) exited non-zero on 'IAX2/888ALLBUSY-out-12427'
-- IAX2/888ALLBUSY-out-12427 Internal Gosub(func-apply-sipheaders,s,1(1)) complete GOSUB_RETVAL=
-- Called IAX2/888ALLBUSY-out/1877TESTNUM
-- Hungup 'IAX2/888ALLBUSY-out-12427'
-- Everyone is busy/congested at this time (1:0/0/1)
-- Executing [s@macro-dialout-trunk:28] NoOp("PJSIP/304-0000007c", "Dial failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE = 3") in new stack
-- Executing [s@macro-dialout-trunk:29] GotoIf("PJSIP/304-0000007c", "0?continue,1:s-CHANUNAVAIL,1") in new stack
-- Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
-- Executing [s-CHANUNAVAIL@macro-dialout-trunk:1] Set("PJSIP/304-0000007c", "RC=3") in new stack
-- Executing [s-CHANUNAVAIL@macro-dialout-trunk:2] Goto("PJSIP/304-0000007c", "3,1") in new stack
-- Goto (macro-dialout-trunk,3,1)
-- Executing [3@macro-dialout-trunk:1] Goto("PJSIP/304-0000007c", "continue,1") in new stack
-- Goto (macro-dialout-trunk,continue,1)
-- Executing [continue@macro-dialout-trunk:1] NoOp("PJSIP/304-0000007c", "TRUNK Dial failed due to CHANUNAVAIL HANGUPCAUSE: 3 - failing through to other trunks") in new stack
-- Executing [continue@macro-dialout-trunk:2] ExecIf("PJSIP/304-0000007c", "1?Set(CALLERID(number)=304)") in new stack
-- Executing [1877TESTNUM@from-internal:13] Macro("PJSIP/304-0000007c", "outisbusy,") in new stack
-- Executing [s@macro-outisbusy:1] Progress("PJSIP/304-0000007c", "") in new stack
-- Executing [s@macro-outisbusy:2] GotoIf("PJSIP/304-0000007c", "0?emergency,1") in new stack
-- Executing [s@macro-outisbusy:3] GotoIf("PJSIP/304-0000007c", "0?intracompany,1") in new stack
-- Executing [s@macro-outisbusy:4] Playback("PJSIP/304-0000007c", "all-circuits-busy-now&please-try-call-later, noanswer") in new stack
-- > 0x7fb91c0296f0 -- Strict RTP learning after remote address set to: 99.XXX.XXX.136:4054
-- <PJSIP/304-0000007c> Playing 'all-circuits-busy-now.ulaw' (language 'en')
-- > 0x7fb91c0296f0 -- Strict RTP qualifying stream type: audio
-- > 0x7fb91c0296f0 -- Strict RTP switching source address to 99.XXX.XXX.136:1024
-- <PJSIP/304-0000007c> Playing 'please-try-call-later.ulaw' (language 'en')
-- Executing [h@from-internal:1] Macro("PJSIP/304-0000007c", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("PJSIP/304-0000007c", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] ExecIf("PJSIP/304-0000007c", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:4] NoOp("PJSIP/304-0000007c", " montior file= ") in new stack
-- Executing [s@macro-hangupcall:5] GotoIf("PJSIP/304-0000007c", "1?skipagi") in new stack
-- Goto (macro-hangupcall,s,7)
-- Executing [s@macro-hangupcall:7] Hangup("PJSIP/304-0000007c", "") in new stack
-- == Spawn extension (macro-hangupcall, s, 7) exited non-zero on 'PJSIP/304-0000007c' in macro 'hangupcall'
-- == Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/304-0000007c'

I know nothing about IAX2, but here’s how I would debug this:

First, try setting the outbound caller ID for the failing trunk to the 416 number used by the working trunk. If that works, the provider may be intentionally blocking the 888 caller ID. I don’t know whether this applies to Canada, but the US has a (usually unenforced) regulation that prohibits sending a toll-free caller ID when calling a toll-free number. Even if not, it may be prohibited to send a Canada toll-free caller ID when calling a US toll-free number.

If that’s not it, at the Asterisk command prompt, type
iax2 set debug on
and make a failing test call. With luck, the status sent back from the provider will be a clue as to what is wrong.

If still no luck, assuming that the working and failing trunks are on different sub-accounts on the same VoIP.ms account and server, I’d create a third sub-account and set up the failing trunk to use that. If that works, I’d abandon the old sub-account and call it a day. Otherwise, I’d test to see whether the working trunk can function with the third sub-account. If not, it’s almost certain that the sub-accounts have different settings and with close inspection you’ll likely find the discrepancy. If the working trunk does work with the third sub-account, see if a newly created trunk will work. If so, abandon the failing trunk and call it a day.

If you get this far, paste the relevant section of the Asterisk log with iax2 debugging enabled at pastebin.freepbx.org and post the link here. With luck, someone who knows about IAX2 may be able to spot the trouble.

If it’s still not working, see if a pjsip trunk fails in the same way. If so, there are lots of SIP experts here and someone can probably help.

Hi Stewart1,

The blocking 888 numbers is one we’ve run into in the past. If we called some 8xx numbers with a caller ID set to the 888 one, the call won’t complete. It’s not the IAX provider blocking it, it’s Bell Canada. The error is also very different, with a pre-recorded message of “Your call cannot be completed from your area” which kicks in after a couple of rings.

This is an immediate (almost cutting off the first word) asterisk default “all circuits are busy” recording.

This is also different from trying to establish the IAX connection and failing. I got our IP blocked from our IAX provider on all our four IAX trunks when I reset the password for the 888 trunk (their system takes up to 15 mins for the password to take effect and 4 incorrect passwords resulted in a temporary ban). This IP blocked error also differs from the one we’re running into, as there would be a good 4-8 second delay before asterisk would play the “all circuits are busy” recording. Ours again is almost immediate, as if it’s not even trying?

To answer some of the other questions, I have forced our 416, 905s, and 888 outbound routes to use the 888 IAX trunk, and it fails in the same fashion. Doesn’t matter if I call 416 or 705 (long distance). Doesn’t matter if the caller ID is 416, 905, or 888. Fails immediately. The three other IAX trunks are AFAIAK setup identically (unless there are .conf files other than the iax_additional.conf that I should be checking for hidden differences not presented in the GUI).

IAX provider tells me they don’t see anything from their end when I try these calls, combined with FreePBX’s immediate “all circuits are busy” leads me to believe it’s a config problem.

Here’s out IAX Debugging logs:
https://pastebin.freepbx.org/view/4ec33ad4

I know nothing about IAX2 or Unlimitel, but they are rejecting the call and should be able to tell you why. Starting at line 216:

Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 002 Type: IAX     Subclass: REJECT
    Timestamp: 00010ms  SCall: 01518  DCall: 00379 216.254.220.17:4569
    CAUSE           : No such context/extension
    CAUSE CODE      : 3

Just guessing here, maybe instead of 4162XXXX55 they want 14162XXXX55 or +14162XXXX55. Likewise for the calling number. If that’s not it, try allowing only ulaw. Or, perhaps they are rejecting username 8882XXXX76 for some reason (even though auth is ok). If you can’t figure it out by changing these variables, find someone at Unlimitel who can tell you why the call is being rejected.

I’ll have to call our provider tomorrow. Not sure why I missed that, but from a quick google it looks like they might have their side misconfigured or configured that way on purpose for some reason…

Shame the first support rep wasn’t that helpful. I’ll follow up after I speak with them.

The wild goose chase has come to an end.

Different rep at our provider informs me our 888 is setup as a toll free (kinda guessed that from the area code) and that they block outbound calls on it.

Go figure. Anyway, thank you for all the assistance, mystery solved!

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.