Can't dialout on dahdi analog trunk on freepbx

Hi all,
I am really
I used freepbx in the past and just install a new version.
I have analog dahdi card with one FXO connected to the PSTN.
I can receive call on that analog channel but when trying to call out I am getting a message “all lines are busy now…”.

I see in the log the following:
– Executing [s@macro-dialout-trunk:10] GotoIf(“PJSIP/700-00000011”, “0?nomax”) in new stack
– Executing [s@macro-dialout-trunk:11] GotoIf(“PJSIP/700-00000011”, “1?chanfull”) in new stack
– Goto (macro-dialout-trunk,s,45)
– Executing [s@macro-dialout-trunk:45] NoOp(“PJSIP/700-00000011”, “max channels used up”) in new stack
– Executing [9XXXXXXXXXX@from-internal:12] Macro(“PJSIP/700-00000011”, “outisbusy,”) in new stack
even though the line is not busy.

The complete log is (actual number was replaces with “XXXXXXXXXX”):

-- Executing [9XXXXXXXXXX@from-internal:1] Macro("PJSIP/700-00000011", "user-callerid,LIMIT,EXTERNAL,") in new stack
-- Executing [s@macro-user-callerid:1] Set("PJSIP/700-00000011", "TOUCH_MONITOR=1624166505.20") in new stack
-- Executing [s@macro-user-callerid:2] Set("PJSIP/700-00000011", "AMPUSER=700") in new stack
-- Executing [s@macro-user-callerid:3] Set("PJSIP/700-00000011", "HOTDESCKCHAN=700-00000011") in new stack
-- Executing [s@macro-user-callerid:4] Set("PJSIP/700-00000011", "HOTDESKEXTEN=700") in new stack
-- Executing [s@macro-user-callerid:5] Set("PJSIP/700-00000011", "HOTDESKCALL=0") in new stack
-- Executing [s@macro-user-callerid:6] ExecIf("PJSIP/700-00000011", "0?Set(HOTDESKCALL=1)") in new stack
-- Executing [s@macro-user-callerid:7] ExecIf("PJSIP/700-00000011", "0?Set(CALLERID(name)=)") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("PJSIP/700-00000011", "0?report") in new stack
-- Executing [s@macro-user-callerid:9] ExecIf("PJSIP/700-00000011", "1?Set(REALCALLERIDNUM=700)") in new stack
-- Executing [s@macro-user-callerid:10] Set("PJSIP/700-00000011", "AMPUSER=700") in new stack
-- Executing [s@macro-user-callerid:11] GotoIf("PJSIP/700-00000011", "0?limit") in new stack
-- Executing [s@macro-user-callerid:12] Set("PJSIP/700-00000011", "AMPUSERCIDNAME=אלי") in new stack
-- Executing [s@macro-user-callerid:13] ExecIf("PJSIP/700-00000011", "0?Set(__CIDMASQUERADING=TRUE)") in new stack
-- Executing [s@macro-user-callerid:14] GotoIf("PJSIP/700-00000011", "0?report") in new stack
-- Executing [s@macro-user-callerid:15] Set("PJSIP/700-00000011", "AMPUSERCID=700") in new stack
-- Executing [s@macro-user-callerid:16] Set("PJSIP/700-00000011", "__DIAL_OPTIONS=HhTtr") in new stack
-- Executing [s@macro-user-callerid:17] Set("PJSIP/700-00000011", "CALLERID(all)="אלי" <700>") in new stack
-- Executing [s@macro-user-callerid:18] ExecIf("PJSIP/700-00000011", "0?Set(CUSDIAL=)") in new stack
-- Executing [s@macro-user-callerid:19] ExecIf("PJSIP/700-00000011", "0?Set(CALLERID(all)="אלי" <700>)") in new stack
-- Executing [s@macro-user-callerid:20] GotoIf("PJSIP/700-00000011", "0?limit") in new stack
-- Executing [s@macro-user-callerid:21] ExecIf("PJSIP/700-00000011", "1?Set(GROUP(concurrency_limit)=700)") in new stack
-- Executing [s@macro-user-callerid:22] ExecIf("PJSIP/700-00000011", "0?Set(CHANNEL(language)=)") in new stack
-- Executing [s@macro-user-callerid:23] NoOp("PJSIP/700-00000011", "Macro Depth is 1") in new stack
-- Executing [s@macro-user-callerid:24] GotoIf("PJSIP/700-00000011", "1?report2:macroerror") in new stack
-- Goto (macro-user-callerid,s,25)
-- Executing [s@macro-user-callerid:25] GotoIf("PJSIP/700-00000011", "1?continue") in new stack
-- Goto (macro-user-callerid,s,44)
-- Executing [s@macro-user-callerid:44] Set("PJSIP/700-00000011", "CALLERID(number)=700") in new stack
-- Executing [s@macro-user-callerid:45] Set("PJSIP/700-00000011", "CALLERID(name)=אלי") in new stack
-- Executing [s@macro-user-callerid:46] GotoIf("PJSIP/700-00000011", "0?cnum") in new stack
-- Executing [s@macro-user-callerid:47] Set("PJSIP/700-00000011", "CDR(cnam)=אלי") in new stack
-- Executing [s@macro-user-callerid:48] Set("PJSIP/700-00000011", "CDR(cnum)=700") in new stack
-- Executing [s@macro-user-callerid:49] Set("PJSIP/700-00000011", "CHANNEL(language)=he") in new stack
-- Executing [9XXXXXXXXXX@from-internal:2] Gosub("PJSIP/700-00000011", "sub-record-check,s,1(out,9XXXXXXXXXX,dontcare)") in new stack
-- Executing [s@sub-record-check:1] GotoIf("PJSIP/700-00000011", "0?initialized") in new stack
-- Executing [s@sub-record-check:2] Set("PJSIP/700-00000011", "__REC_STATUS=INITIALIZED") in new stack
-- Executing [s@sub-record-check:3] Set("PJSIP/700-00000011", "NOW=1624166505") in new stack
-- Executing [s@sub-record-check:4] Set("PJSIP/700-00000011", "__DAY=20") in new stack
-- Executing [s@sub-record-check:5] Set("PJSIP/700-00000011", "__MONTH=06") in new stack
-- Executing [s@sub-record-check:6] Set("PJSIP/700-00000011", "__YEAR=2021") in new stack
-- Executing [s@sub-record-check:7] Set("PJSIP/700-00000011", "__TIMESTR=20210620-052145") in new stack
-- Executing [s@sub-record-check:8] Set("PJSIP/700-00000011", "__FROMEXTEN=700") in new stack
-- Executing [s@sub-record-check:9] Set("PJSIP/700-00000011", "__MON_FMT=wav") in new stack
-- Executing [s@sub-record-check:10] NoOp("PJSIP/700-00000011", "Recordings initialized") in new stack
-- Executing [s@sub-record-check:11] ExecIf("PJSIP/700-00000011", "0?Set(ARG3=dontcare)") in new stack
-- Executing [s@sub-record-check:12] Set("PJSIP/700-00000011", "REC_POLICY_MODE_SAVE=") in new stack
-- Executing [s@sub-record-check:13] ExecIf("PJSIP/700-00000011", "0?Set(REC_STATUS=NO)") in new stack
-- Executing [s@sub-record-check:14] GotoIf("PJSIP/700-00000011", "3?checkaction") in new stack
-- Goto (sub-record-check,s,17)
-- Executing [s@sub-record-check:17] GotoIf("PJSIP/700-00000011", "1?sub-record-check,out,1") in new stack
-- Goto (sub-record-check,out,1)
-- Executing [out@sub-record-check:1] NoOp("PJSIP/700-00000011", "Outbound Recording Check from 700 to 9XXXXXXXXXX") in new stack
-- Executing [out@sub-record-check:2] Set("PJSIP/700-00000011", "RECMODE=dontcare") in new stack
-- Executing [out@sub-record-check:3] ExecIf("PJSIP/700-00000011", "1?Goto(routewins)") in new stack
-- Goto (sub-record-check,out,7)
-- Executing [out@sub-record-check:7] Gosub("PJSIP/700-00000011", "recordcheck,1(dontcare,out,9XXXXXXXXXX)") in new stack
-- Executing [recordcheck@sub-record-check:1] NoOp("PJSIP/700-00000011", "Starting recording check against dontcare") in new stack
-- Executing [recordcheck@sub-record-check:2] Goto("PJSIP/700-00000011", "dontcare") in new stack
-- Goto (sub-record-check,recordcheck,3)
-- Executing [recordcheck@sub-record-check:3] Return("PJSIP/700-00000011", "") in new stack
-- Executing [out@sub-record-check:8] Return("PJSIP/700-00000011", "") in new stack
-- Executing [9XXXXXXXXXX@from-internal:3] ExecIf("PJSIP/700-00000011", "0 ?Set(CDR(accountcode)=)") in new stack
-- Executing [9XXXXXXXXXX@from-internal:4] Set("PJSIP/700-00000011", "_ROUTEID=1") in new stack
-- Executing [9XXXXXXXXXX@from-internal:5] Set("PJSIP/700-00000011", "_ROUTENAME=toBezeq") in new stack
-- Executing [9XXXXXXXXXX@from-internal:6] Set("PJSIP/700-00000011", "MOHCLASS=default") in new stack
-- Executing [9XXXXXXXXXX@from-internal:7] Set("PJSIP/700-00000011", "_CALLERIDNAMEINTERNAL=אלי") in new stack
-- Executing [9XXXXXXXXXX@from-internal:8] Set("PJSIP/700-00000011", "_CALLERIDNUMINTERNAL=700") in new stack
-- Executing [9XXXXXXXXXX@from-internal:9] Set("PJSIP/700-00000011", "_EMAILNOTIFICATION=FALSE") in new stack
-- Executing [9XXXXXXXXXX@from-internal:10] Set("PJSIP/700-00000011", "_NODEST=") in new stack
-- Executing [9XXXXXXXXXX@from-internal:11] Macro("PJSIP/700-00000011", "dialout-trunk,1,XXXXXXXXXX,,off") in new stack
-- Executing [s@macro-dialout-trunk:1] Set("PJSIP/700-00000011", "DIAL_TRUNK=1") in new stack
-- Executing [s@macro-dialout-trunk:2] ExecIf("PJSIP/700-00000011", "0?Set(DIAL_OPTIONS=Hhtr)") in new stack
-- Executing [s@macro-dialout-trunk:3] GosubIf("PJSIP/700-00000011", "0?sub-pincheck,s,1()") in new stack
-- Executing [s@macro-dialout-trunk:4] ExecIf("PJSIP/700-00000011", "0?Set(CALLERID(num)=700)") in new stack
-- Executing [s@macro-dialout-trunk:5] GotoIf("PJSIP/700-00000011", "0?disabletrunk,1") in new stack
-- Executing [s@macro-dialout-trunk:6] Set("PJSIP/700-00000011", "DIAL_NUMBER=XXXXXXXXXX") in new stack
-- Executing [s@macro-dialout-trunk:7] Set("PJSIP/700-00000011", "DIAL_TRUNK_OPTIONS=HhTtr") in new stack
-- Executing [s@macro-dialout-trunk:8] Set("PJSIP/700-00000011", "OUTBOUND_GROUP=OUT_1") in new stack
-- Executing [s@macro-dialout-trunk:9] Set("PJSIP/700-00000011", "DIAL_TRUNK_OPTIONS=T") in new stack
-- Executing [s@macro-dialout-trunk:10] GotoIf("PJSIP/700-00000011", "0?nomax") in new stack
-- Executing [s@macro-dialout-trunk:11] GotoIf("PJSIP/700-00000011", "1?chanfull") in new stack
-- Goto (macro-dialout-trunk,s,45)
-- Executing [s@macro-dialout-trunk:45] NoOp("PJSIP/700-00000011", "max channels used up") in new stack
-- Executing [9XXXXXXXXXX@from-internal:12] Macro("PJSIP/700-00000011", "outisbusy,") in new stack
-- Executing [s@macro-outisbusy:1] Progress("PJSIP/700-00000011", "") in new stack
-- Executing [s@macro-outisbusy:2] GotoIf("PJSIP/700-00000011", "0?emergency,1") in new stack
-- Executing [s@macro-outisbusy:3] GotoIf("PJSIP/700-00000011", "0?intracompany,1") in new stack
-- Executing [s@macro-outisbusy:4] Playback("PJSIP/700-00000011", "all-circuits-busy-now&please-try-call-later, noanswer") in new stack
-- <PJSIP/700-00000011> Playing 'all-circuits-busy-now.g722' (language 'he')
-- Remote UNIX connection
-- Remote UNIX connection disconnected
-- <PJSIP/700-00000011> Playing 'please-try-call-later.ulaw' (language 'he')
-- Remote UNIX connection
-- Remote UNIX connection disconnected
-- Executing [s@macro-outisbusy:5] Congestion("PJSIP/700-00000011", "20") in new stack

== Spawn extension (macro-outisbusy, s, 5) exited non-zero on ‘PJSIP/700-00000011’ in macro ‘outisbusy’
== Spawn extension (from-internal, 9XXXXXXXXXX, 12) exited non-zero on ‘PJSIP/700-00000011’
– Executing [h@from-internal:1] Macro(“PJSIP/700-00000011”, “hangupcall”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“PJSIP/700-00000011”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [s@macro-hangupcall:3] ExecIf(“PJSIP/700-00000011”, “0?Set(CDR(recordingfile)=)”) in new stack
– Executing [s@macro-hangupcall:4] NoOp(“PJSIP/700-00000011”, " montior file= ") in new stack
– Executing [s@macro-hangupcall:5] GotoIf(“PJSIP/700-00000011”, “1?skipagi”) in new stack
– Goto (macro-hangupcall,s,7)
– Executing [s@macro-hangupcall:7] Hangup(“PJSIP/700-00000011”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 7) exited non-zero on ‘PJSIP/700-00000011’ in macro ‘hangupcall’
== Spawn extension (from-internal, h, 1) exited non-zero on ‘PJSIP/700-00000011’

Thanks in advance,
Eli

Looks like this was a very simple configuration issue.
While waiting for help from the community decided to continue trying to figure it my self.
Looked in the macro: macro-dialout-trunk and figured the problem is that it always identify all the channel are being used since the number of max channels was configured to be 0.
After I changed it to 1, I was able to use the analog channel for dialing out with no issue.

A self inflicted wound indeed, probably not a good thing that you did that in the first place :wink:

Always best to RTFM .

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