Sangoma A200 not working after installing FreePBX 14

I have an A200 with 2-FXO, 2-FXS installed. The second FXO port is connected to POTS. The card itself is set up as a PCI passthrough device to a VM running under ESXI 6.7.

Everything worked great with FreePBX 13 (AsteriskNow Distro 10.13). I had no issue making or receiving calls. However, I broke that installation trying to upgrade to FreePBX 14 using the built-in upgrader.

Now, I have a clean install of FreePBX 14 (FreePBX Distro SNG7-FPBX-64bit-1805-1), but the card doesn’t work anymore. It’s detected, and I can even see the ring voltage on incoming calls, but asterisk never picks up. Outgoing calls just hold forever in silence.

When everything works under FreePBX 13, an outgoing call gives me (excerpt):

-- Executing [s@macro-dialout-trunk:24] Dial("PJSIP/225-00000003", "DAHDI/2/wXXXXXX9971,300,T") in new stack
-- Called DAHDI/2/wXXXXXX9971
-- DAHDI/2-1 answered PJSIP/225-00000003
-- Channel DAHDI/2-1 joined 'simple_bridge' basic-bridge <88a799b0-1058-4fb6-be4e-2c6081b49184>
-- Channel PJSIP/225-00000003 joined 'simple_bridge' basic-bridge <88a799b0-1058-4fb6-be4e-2c6081b49184>
-- Channel PJSIP/225-00000003 left 'simple_bridge' basic-bridge <88a799b0-1058-4fb6-be4e-2c6081b49184>
  == Spawn extension (macro-dialout-trunk, s, 24) exited non-zero on 'PJSIP/225-00000003' in macro 'dialout-trunk'
  == Spawn extension (from-internal, XXXXXX9971, 6) exited non-zero on 'PJSIP/225-00000003'
-- Executing [h@from-internal:1] Macro("PJSIP/225-00000003", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("PJSIP/225-00000003", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Channel DAHDI/2-1 left 'simple_bridge' basic-bridge <88a799b0-1058-4fb6-be4e-2c6081b49184>
-- Hanging up on 'DAHDI/2-1'
-- Hungup 'DAHDI/2-1'

With 14, the comparable excerpt is:

-- Executing [s@macro-dialout-trunk:25] Dial("PJSIP/123-00000001", "DAHDI/2/wXXXXXX9971,300,Tb(func-apply-sipheaders^s^1)") in new stack
-- DAHDI/2-1 Internal Gosub(func-apply-sipheaders,s,1) start
-- Executing [s@func-apply-sipheaders:1] NoOp("DAHDI/2-1", "Applying SIP Headers to channel") in new stack
-- Executing [s@func-apply-sipheaders:2] Set("DAHDI/2-1", "SIPHEADERKEYS=") in new stack
-- Executing [s@func-apply-sipheaders:3] ExecIf("DAHDI/2-1", "0?Set(Rheader=1)") in new stack
-- Executing [s@func-apply-sipheaders:4] While("DAHDI/2-1", "0") in new stack
-- Jumping to priority 8
-- Executing [s@func-apply-sipheaders:9] ExecIf("DAHDI/2-1", "0?SIPRemoveHeader(Alert-Info:)") in new stack
-- Executing [s@func-apply-sipheaders:10] ExecIf("DAHDI/2-1", "0?Set(PJSIP_HEADER(remove,Alert-Info)=)") in new stack
-- Executing [s@func-apply-sipheaders:11] Return("DAHDI/2-1", "") in new stack
  == Spawn extension (from-analog, XXXXXX9971, 1) exited non-zero on 'DAHDI/2-1'
-- DAHDI/2-1 Internal Gosub(func-apply-sipheaders,s,1) complete GOSUB_RETVAL=
-- Called DAHDI/2/wXXXXXX9971
-- Hanging up on 'DAHDI/2-1'
-- Hungup 'DAHDI/2-1'

The biggest difference seems to be the lines relating to ‘simple_bridge’, but I don’t know what this is. Adding “w” in the trunk dialing prefix doesn’t change the result.

Of course, since both of these are in VMs, it’s trivial to go back and forth. If I have to I can just keep using 13, but I’d like to make 14 work if I can. I’ve compared configs: the DAHDI and wanpipe configs generated by sangoma-setup are identical except for the PCIBUS IDs that ESXI assigns to the different VMs. The asterisk configs are markedly different, especially ‘extensions_additional.conf’, but I think this would be expected. Besides extensions, I haven’t done much to modify the configs on either system.

Has anybody else had this issue, or gotten an A200 to work with FreePBX 14?

My guess is that your card is probably not configured correctly and all the ports are in the same port group, based on your description, but without seeing your dahdi conf I’m just guessing.

Try setting each port to a different port group and configure the trunk accordingly.

I had assumed it wasn’t an issue since both systems attempt to call out on DAHDI/2/wXXXXXX9971. Nevertheless, I’ve now tried different group configurations, and also tried selecting both groups and channels in the trunk configuration.

Here are the most recent contents of ‘chan_dahdi_groups.conf’:

signalling=fxs_ks
context=from-analog
group=1
channel=>1

signalling=fxs_ks
context=from-analog
group=2
channel=>2

signalling=fxo_ks
context=from-analog
group=3
channel=>3

signalling=fxo_ks
context=from-analog
group=4
channel=>4

With this configuration, and the trunk configured for “Group2 Ascending”, the only difference in the logs is:

-- Called DAHDI/g2/wXXXXXX9971

instead of

-- Called DAHDI/2/wXXXXXX9971

I don’t think you need the ‘w’

Thanks, but it doesn’t work either way. I’d added the ‘w’ to match my original FreePBX 13 configuration, but apparently it wasn’t required there either.

What does the asterisk log show on an incoming call?

There’s no indication that FreePBX 14 recognizes the incoming call. The asterisk console doesn’t log any messages, even in verbose mode.

Running ‘wanpipemon -i w1g1 -c astats -m 2’ returns:

------- Voltage Status  (FXO,port 1) -------

VOLTAGE : 49 Volts

------- Line Status  (FXO,port 1) -------

Line    : connected

The voltage goes up to ~120 Volts when ringing, which confirms that the line is connected correctly (but I already knew that).

By contast, FreePBX 13 showed me a rather lengthy log:

-- Executing [s@from-analog:1] NoOp("DAHDI/2-1", "Entering from-dahdi with DID == ") in new stack
-- Executing [s@from-analog:2] Ringing("DAHDI/2-1", "") in new stack
-- Executing [s@from-analog:3] Set("DAHDI/2-1", "DID=s") in new stack
-- Executing [s@from-analog:4] NoOp("DAHDI/2-1", "DID is now s") in new stack
-- Executing [s@from-analog:5] GotoIf("DAHDI/2-1", "1?dahdiok:checkzap") in new stack
-- Goto (from-analog,s,9)
-- Executing [s@from-analog:9] NoOp("DAHDI/2-1", "Is a DAHDi Channel") in new stack
-- Executing [s@from-analog:10] Set("DAHDI/2-1", "CHAN=2-1") in new stack
-- Executing [s@from-analog:11] Set("DAHDI/2-1", "CHAN=2") in new stack
-- Executing [s@from-analog:12] Macro("DAHDI/2-1", "from-dahdi-2,s,1") in new stack
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: app_macro.c:310 _macro_exec: No such context 'macro-from-dahdi-2' for macro 'from-dahdi-2'. Was called by s@from-analog
-- Executing [s@from-analog:13] NoOp("DAHDI/2-1", "Returned from Macro from-dahdi-2") in new stack
-- Executing [s@from-analog:14] Goto("DAHDI/2-1", "from-pstn,s,1") in new stack
-- Goto (from-pstn,s,1)
-- Executing [s@from-pstn:1] Set("DAHDI/2-1", "__DIRECTION=INBOUND") in new stack
-- Executing [s@from-pstn:2] ExecIf("DAHDI/2-1", "1?Set(__FROM_DID=s)") in new stack
-- Executing [s@from-pstn:3] Set("DAHDI/2-1", "returnhere=1") in new stack
-- Executing [s@from-pstn:4] Gosub("DAHDI/2-1", "app-blacklist-check,s,1()") in new stack
-- Executing [s@app-blacklist-check:1] GotoIf("DAHDI/2-1", "0?blacklisted") in new stack
-- Executing [s@app-blacklist-check:2] Set("DAHDI/2-1", "CALLED_BLACKLIST=1") in new stack
-- Executing [s@app-blacklist-check:3] Return("DAHDI/2-1", "") in new stack
-- Executing [s@from-pstn:5] Set("DAHDI/2-1", "CDR(did)=s") in new stack
-- Executing [s@from-pstn:6] GotoIf("DAHDI/2-1", "0?") in new stack
-- Executing [s@from-pstn:7] ExecIf("DAHDI/2-1", "1 ?Set(CALLERID(name)=)") in new stack
-- Executing [s@from-pstn:8] Set("DAHDI/2-1", "__MOHCLASS=") in new stack
-- Executing [s@from-pstn:9] Set("DAHDI/2-1", "__REVERSAL_REJECT=FALSE") in new stack
-- Executing [s@from-pstn:10] GotoIf("DAHDI/2-1", "1?post-reverse-charge") in new stack
-- Goto (from-pstn,s,12)
-- Executing [s@from-pstn:12] NoOp("DAHDI/2-1", "") in new stack
-- Executing [s@from-pstn:13] Set("DAHDI/2-1", "__CALLINGNAMEPRES_SV=allowed_not_screened") in new stack
-- Executing [s@from-pstn:14] Set("DAHDI/2-1", "__CALLINGNUMPRES_SV=allowed_not_screened") in new stack
-- Executing [s@from-pstn:15] Set("DAHDI/2-1", "CALLERID(name-pres)=allowed_not_screened") in new stack
-- Executing [s@from-pstn:16] Set("DAHDI/2-1", "CALLERID(num-pres)=allowed_not_screened") in new stack
-- Executing [s@from-pstn:17] NoOp("DAHDI/2-1", "CallerID Entry Point") in new stack
-- Executing [s@from-pstn:18] Goto("DAHDI/2-1", "from-did-direct,225,1") in new stack
-- Goto (from-did-direct,225,1)
-- Executing [225@from-did-direct:1] GotoIf("DAHDI/2-1", "1?ext-local,225,1:followme-check,225,1") in new stack
-- Goto (ext-local,225,1)
-- Executing [225@ext-local:1] Set("DAHDI/2-1", "__RINGTIMER=15") in new stack
-- Executing [225@ext-local:2] Macro("DAHDI/2-1", "exten-vm,novm,225,0,0,0") in new stack
-- Executing [s@macro-exten-vm:1] Macro("DAHDI/2-1", "user-callerid,") in new stack
-- Executing [s@macro-user-callerid:1] Set("DAHDI/2-1", "TOUCH_MONITOR=1544461273.12") in new stack
-- Executing [s@macro-user-callerid:2] Set("DAHDI/2-1", "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("DAHDI/2-1", "0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("DAHDI/2-1", "1?Set(REALCALLERIDNUM=)") in new stack
-- Executing [s@macro-user-callerid:5] Set("DAHDI/2-1", "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("DAHDI/2-1", "0?limit") in new stack
-- Executing [s@macro-user-callerid:7] Set("DAHDI/2-1", "AMPUSERCIDNAME=") in new stack
-- Executing [s@macro-user-callerid:8] ExecIf("DAHDI/2-1", "0?Set(__CIDMASQUERADING=TRUE)") in new stack
-- Executing [s@macro-user-callerid:9] GotoIf("DAHDI/2-1", "1?report") in new stack
-- Goto (macro-user-callerid,s,16)
-- Executing [s@macro-user-callerid:16] NoOp("DAHDI/2-1", "Macro Depth is 2") in new stack
-- Executing [s@macro-user-callerid:17] GotoIf("DAHDI/2-1", "1?report2:macroerror") in new stack
-- Goto (macro-user-callerid,s,18)
-- Executing [s@macro-user-callerid:18] GotoIf("DAHDI/2-1", "0?continue") in new stack
-- Executing [s@macro-user-callerid:19] ExecIf("DAHDI/2-1", "1?Set(__CALLEE_ACCOUNCODE=)") in new stack
-- Executing [s@macro-user-callerid:20] Set("DAHDI/2-1", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:21] GotoIf("DAHDI/2-1", "1?continue") in new stack
-- Goto (macro-user-callerid,s,37)
-- Executing [s@macro-user-callerid:37] Set("DAHDI/2-1", "CALLERID(number)=") in new stack
-- Executing [s@macro-user-callerid:38] Set("DAHDI/2-1", "CALLERID(name)=") in new stack
-- Executing [s@macro-user-callerid:39] GotoIf("DAHDI/2-1", "1?cnum") in new stack
-- Goto (macro-user-callerid,s,41)
-- Executing [s@macro-user-callerid:41] Set("DAHDI/2-1", "CDR(cnum)=") in new stack
[2018-12-10 09:01:19] WARNING[2343]: func_cdr.c:383 cdr_write_callback: CDR requires a value (CDR(variable)=value)
-- Executing [s@macro-user-callerid:42] Set("DAHDI/2-1", "CHANNEL(language)=en") in new stack
-- Executing [s@macro-exten-vm:2] Set("DAHDI/2-1", "RingGroupMethod=none") in new stack
-- Executing [s@macro-exten-vm:3] Set("DAHDI/2-1", "__EXTTOCALL=225") in new stack
-- Executing [s@macro-exten-vm:4] Set("DAHDI/2-1", "__PICKUPMARK=225") in new stack
-- Executing [s@macro-exten-vm:5] Set("DAHDI/2-1", "RT=") in new stack
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: chan_sip.c:22814 func_header_read: This function can only be used on SIP channels.
-- Executing [s@macro-exten-vm:6] ExecIf("DAHDI/2-1", "0?Macro(vm,novm,DIRECTDIAL,)") in new stack
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: chan_sip.c:22814 func_header_read: This function can only be used on SIP channels.
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: chan_sip.c:22814 func_header_read: This function can only be used on SIP channels.
-- Executing [s@macro-exten-vm:7] ExecIf("DAHDI/2-1", "0?MacroExit()") in new stack
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: chan_sip.c:22814 func_header_read: This function can only be used on SIP channels.
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: chan_sip.c:22814 func_header_read: This function can only be used on SIP channels.
-- Executing [s@macro-exten-vm:8] ExecIf("DAHDI/2-1", "0?Gosub(ext-intercom,*80225,1())") in new stack
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: chan_sip.c:22814 func_header_read: This function can only be used on SIP channels.
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: chan_sip.c:22814 func_header_read: This function can only be used on SIP channels.
-- Executing [s@macro-exten-vm:9] ExecIf("DAHDI/2-1", "0?MacroExit()") in new stack
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: chan_sip.c:22814 func_header_read: This function can only be used on SIP channels.
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: chan_sip.c:22814 func_header_read: This function can only be used on SIP channels.
-- Executing [s@macro-exten-vm:10] ExecIf("DAHDI/2-1", "0?ChanSpy(PJSIP/225,q)") in new stack
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: chan_sip.c:22814 func_header_read: This function can only be used on SIP channels.
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: chan_sip.c:22814 func_header_read: This function can only be used on SIP channels.
-- Executing [s@macro-exten-vm:11] ExecIf("DAHDI/2-1", "0?MacroExit()") in new stack
[2018-12-10 09:01:19] WARNING[16984][C-00000007]: chan_sip.c:22814 func_header_read: This function can only be used on SIP channels.
[2018-12-10 09:01:19] ERROR[16984][C-00000007]: res_pjsip_header_funcs.c:461 func_read_header: This function requires a PJSIP channel.
-- Executing [s@macro-exten-vm:12] ExecIf("DAHDI/2-1", "0?Macro(vm,novm,DIRECTDIAL,)") in new stack
[2018-12-10 09:01:19] ERROR[16984][C-00000007]: res_pjsip_header_funcs.c:461 func_read_header: This function requires a PJSIP channel.
[2018-12-10 09:01:19] ERROR[16984][C-00000007]: res_pjsip_header_funcs.c:461 func_read_header: This function requires a PJSIP channel.
-- Executing [s@macro-exten-vm:13] ExecIf("DAHDI/2-1", "0?MacroExit()") in new stack
[2018-12-10 09:01:19] ERROR[16984][C-00000007]: res_pjsip_header_funcs.c:461 func_read_header: This function requires a PJSIP channel.
[2018-12-10 09:01:19] ERROR[16984][C-00000007]: res_pjsip_header_funcs.c:461 func_read_header: This function requires a PJSIP channel.
-- Executing [s@macro-exten-vm:14] ExecIf("DAHDI/2-1", "0?Gosub(ext-intercom,*80225,1())") in new stack
[2018-12-10 09:01:19] ERROR[16984][C-00000007]: res_pjsip_header_funcs.c:461 func_read_header: This function requires a PJSIP channel.
[2018-12-10 09:01:19] ERROR[16984][C-00000007]: res_pjsip_header_funcs.c:461 func_read_header: This function requires a PJSIP channel.
-- Executing [s@macro-exten-vm:15] ExecIf("DAHDI/2-1", "0?MacroExit()") in new stack
[2018-12-10 09:01:19] ERROR[16984][C-00000007]: res_pjsip_header_funcs.c:461 func_read_header: This function requires a PJSIP channel.
[2018-12-10 09:01:19] ERROR[16984][C-00000007]: res_pjsip_header_funcs.c:461 func_read_header: This function requires a PJSIP channel.
-- Executing [s@macro-exten-vm:16] ExecIf("DAHDI/2-1", "0?ChanSpy(PJSIP/225,q)") in new stack
[2018-12-10 09:01:19] ERROR[16984][C-00000007]: res_pjsip_header_funcs.c:461 func_read_header: This function requires a PJSIP channel.
[2018-12-10 09:01:19] ERROR[16984][C-00000007]: res_pjsip_header_funcs.c:461 func_read_header: This function requires a PJSIP channel.
-- Executing [s@macro-exten-vm:17] ExecIf("DAHDI/2-1", "0?MacroExit()") in new stack
[2018-12-10 09:01:19] ERROR[16984][C-00000007]: res_pjsip_header_funcs.c:461 func_read_header: This function requires a PJSIP channel.
-- Executing [s@macro-exten-vm:18] Gosub("DAHDI/2-1", "sub-record-check,s,1(exten,225,dontcare)") in new stack
-- Executing [s@sub-record-check:1] GotoIf("DAHDI/2-1", "0?initialized") in new stack
-- Executing [s@sub-record-check:2] Set("DAHDI/2-1", "__REC_STATUS=INITIALIZED") in new stack
-- Executing [s@sub-record-check:3] Set("DAHDI/2-1", "NOW=1544461279") in new stack
-- Executing [s@sub-record-check:4] Set("DAHDI/2-1", "__DAY=10") in new stack
-- Executing [s@sub-record-check:5] Set("DAHDI/2-1", "__MONTH=12") in new stack
-- Executing [s@sub-record-check:6] Set("DAHDI/2-1", "__YEAR=2018") in new stack
-- Executing [s@sub-record-check:7] Set("DAHDI/2-1", "__TIMESTR=20181210-090119") in new stack
-- Executing [s@sub-record-check:8] Set("DAHDI/2-1", "__FROMEXTEN=unknown") in new stack
-- Executing [s@sub-record-check:9] Set("DAHDI/2-1", "__MON_FMT=wav") in new stack
-- Executing [s@sub-record-check:10] NoOp("DAHDI/2-1", "Recordings initialized") in new stack
-- Executing [s@sub-record-check:11] ExecIf("DAHDI/2-1", "0?Set(ARG3=dontcare)") in new stack
-- Executing [s@sub-record-check:12] Set("DAHDI/2-1", "REC_POLICY_MODE_SAVE=") in new stack
-- Executing [s@sub-record-check:13] ExecIf("DAHDI/2-1", "0?Set(REC_STATUS=NO)") in new stack
-- Executing [s@sub-record-check:14] GotoIf("DAHDI/2-1", "5?checkaction") in new stack
-- Goto (sub-record-check,s,17)
-- Executing [s@sub-record-check:17] GotoIf("DAHDI/2-1", "1?sub-record-check,exten,1") in new stack
-- Goto (sub-record-check,exten,1)
-- Executing [exten@sub-record-check:1] NoOp("DAHDI/2-1", "Exten Recording Check between unknown and 225") in new stack
-- Executing [exten@sub-record-check:2] Set("DAHDI/2-1", "CALLTYPE=external") in new stack
-- Executing [exten@sub-record-check:3] ExecIf("DAHDI/2-1", "0?Set(CALLTYPE=)") in new stack
-- Executing [exten@sub-record-check:4] Set("DAHDI/2-1", "CALLEE=dontcare") in new stack
-- Executing [exten@sub-record-check:5] ExecIf("DAHDI/2-1", "0?Set(CALLEE=dontcare)") in new stack
-- Executing [exten@sub-record-check:6] GotoIf("DAHDI/2-1", "1?callee") in new stack
-- Goto (sub-record-check,exten,11)
-- Executing [exten@sub-record-check:11] Gosub("DAHDI/2-1", "recordcheck,1(dontcare,external,225)") in new stack
-- Executing [recordcheck@sub-record-check:1] NoOp("DAHDI/2-1", "Starting recording check against dontcare") in new stack
-- Executing [recordcheck@sub-record-check:2] Goto("DAHDI/2-1", "dontcare") in new stack
-- Goto (sub-record-check,recordcheck,3)
-- Executing [recordcheck@sub-record-check:3] Return("DAHDI/2-1", "") in new stack
-- Executing [exten@sub-record-check:12] Return("DAHDI/2-1", "") in new stack
-- Executing [s@macro-exten-vm:19] GotoIf("DAHDI/2-1", "1?macrodial") in new stack
-- Goto (macro-exten-vm,s,25)
-- Executing [s@macro-exten-vm:25] GosubIf("DAHDI/2-1", "0?clrheader,1()") in new stack
-- Executing [s@macro-exten-vm:26] Macro("DAHDI/2-1", "dial-one,,Ttr,225") in new stack
-- Executing [s@macro-dial-one:1] Set("DAHDI/2-1", "DEXTEN=225") in new stack
-- Executing [s@macro-dial-one:2] ExecIf("DAHDI/2-1", "0?Set(__EXTTOCALL=225)") in new stack
-- Executing [s@macro-dial-one:3] Set("DAHDI/2-1", "DIALSTATUS_CW=") in new stack
-- Executing [s@macro-dial-one:4] GosubIf("DAHDI/2-1", "0?screen,1()") in new stack
-- Executing [s@macro-dial-one:5] GosubIf("DAHDI/2-1", "0?cf,1()") in new stack
-- Executing [s@macro-dial-one:6] GotoIf("DAHDI/2-1", "1?skip1") in new stack
-- Goto (macro-dial-one,s,9)
-- Executing [s@macro-dial-one:9] GotoIf("DAHDI/2-1", "0?nodial") in new stack
-- Executing [s@macro-dial-one:10] GotoIf("DAHDI/2-1", "0?continue") in new stack
-- Executing [s@macro-dial-one:11] Set("DAHDI/2-1", "EXTHASCW=ENABLED") in new stack
-- Executing [s@macro-dial-one:12] GotoIf("DAHDI/2-1", "0?next1:cwinusebusy") in new stack
-- Goto (macro-dial-one,s,24)
-- Executing [s@macro-dial-one:24] GotoIf("DAHDI/2-1", "0?next3:continue") in new stack
-- Goto (macro-dial-one,s,26)
-- Executing [s@macro-dial-one:26] GotoIf("DAHDI/2-1", "0?nodial") in new stack
-- Executing [s@macro-dial-one:27] GosubIf("DAHDI/2-1", "1?dstring,1():dlocal,1()") in new stack
-- Executing [dstring@macro-dial-one:1] Set("DAHDI/2-1", "DSTRING=") in new stack
-- Executing [dstring@macro-dial-one:2] Set("DAHDI/2-1", "DEVICES=225") in new stack
-- Executing [dstring@macro-dial-one:3] ExecIf("DAHDI/2-1", "0?Return()") in new stack
-- Executing [dstring@macro-dial-one:4] ExecIf("DAHDI/2-1", "0?Set(DEVICES=25)") in new stack
-- Executing [dstring@macro-dial-one:5] Set("DAHDI/2-1", "LOOPCNT=1") in new stack
-- Executing [dstring@macro-dial-one:6] Set("DAHDI/2-1", "ITER=1") in new stack
-- Executing [dstring@macro-dial-one:7] Set("DAHDI/2-1", "THISDIAL=PJSIP/225") in new stack
-- Executing [dstring@macro-dial-one:8] GosubIf("DAHDI/2-1", "1?zap2dahdi,1()") in new stack
-- Executing [zap2dahdi@macro-dial-one:1] ExecIf("DAHDI/2-1", "0?Return()") in new stack
-- Executing [zap2dahdi@macro-dial-one:2] Set("DAHDI/2-1", "NEWDIAL=") in new stack
-- Executing [zap2dahdi@macro-dial-one:3] Set("DAHDI/2-1", "LOOPCNT2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:4] Set("DAHDI/2-1", "ITER2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:5] Set("DAHDI/2-1", "THISPART2=PJSIP/225") in new stack
-- Executing [zap2dahdi@macro-dial-one:6] ExecIf("DAHDI/2-1", "0?Set(THISPART2=DAHDIIP/225)") in new stack
-- Executing [zap2dahdi@macro-dial-one:7] Set("DAHDI/2-1", "NEWDIAL=PJSIP/225&") in new stack
-- Executing [zap2dahdi@macro-dial-one:8] Set("DAHDI/2-1", "ITER2=2") in new stack
-- Executing [zap2dahdi@macro-dial-one:9] GotoIf("DAHDI/2-1", "0?begin2") in new stack
-- Executing [zap2dahdi@macro-dial-one:10] Set("DAHDI/2-1", "THISDIAL=PJSIP/225") in new stack
-- Executing [zap2dahdi@macro-dial-one:11] Return("DAHDI/2-1", "") in new stack
-- Executing [dstring@macro-dial-one:9] GotoIf("DAHDI/2-1", "0?docheck") in new stack
-- Executing [dstring@macro-dial-one:10] NoOp("DAHDI/2-1", "Debug: Found PJSIP Destination PJSIP/225") in new stack
-- Executing [dstring@macro-dial-one:11] GotoIf("DAHDI/2-1", "0?doset") in new stack
-- Executing [dstring@macro-dial-one:12] NoOp("DAHDI/2-1", "Debug: Updating PJSIP Destination with PJSIP_DIAL_CONTACTS") in new stack
-- Executing [dstring@macro-dial-one:13] Set("DAHDI/2-1", "THISDIAL=PJSIP/225/sip:[email protected]:50745;ob") in new stack
-- Executing [dstring@macro-dial-one:14] GotoIf("DAHDI/2-1", "0?skipset") in new stack
-- Executing [dstring@macro-dial-one:15] Set("DAHDI/2-1", "DSTRING=PJSIP/225/sip:[email protected]:50745;ob&") in new stack
-- Executing [dstring@macro-dial-one:16] Set("DAHDI/2-1", "ITER=2") in new stack
-- Executing [dstring@macro-dial-one:17] GotoIf("DAHDI/2-1", "0?begin") in new stack
-- Executing [dstring@macro-dial-one:18] ExecIf("DAHDI/2-1", "0?Return()") in new stack
-- Executing [dstring@macro-dial-one:19] Set("DAHDI/2-1", "DSTRING=PJSIP/225/sip:[email protected]:50745;ob") in new stack
-- Executing [dstring@macro-dial-one:20] Return("DAHDI/2-1", "") in new stack
-- Executing [s@macro-dial-one:28] GotoIf("DAHDI/2-1", "0?nodial") in new stack
-- Executing [s@macro-dial-one:29] GotoIf("DAHDI/2-1", "0?skiptrace") in new stack
-- Executing [s@macro-dial-one:30] GosubIf("DAHDI/2-1", "0?ctset,1():ctclear,1()") in new stack
-- Executing [ctclear@macro-dial-one:1] NoOp("DAHDI/2-1", "Deleting: CALLTRACE/225 ") in new stack
-- Executing [ctclear@macro-dial-one:2] Return("DAHDI/2-1", "") in new stack
-- Executing [s@macro-dial-one:31] Set("DAHDI/2-1", "D_OPTIONS=Ttr") in new stack
-- Executing [s@macro-dial-one:32] GosubIf("DAHDI/2-1", "0?func-set-sipheader,s,1(Alert-Info,)") in new stack
-- Executing [s@macro-dial-one:33] NoOp("DAHDI/2-1", "Blind Transfer: , Attended Transfer: , User: , Alert Info: ") in new stack
-- Executing [s@macro-dial-one:34] ExecIf("DAHDI/2-1", "0?Set(ALERT_INFO=)") in new stack
-- Executing [s@macro-dial-one:35] ExecIf("DAHDI/2-1", "0?Set(ALERT_INFO=)") in new stack
-- Executing [s@macro-dial-one:36] ExecIf("DAHDI/2-1", "0?Set(ALERT_INFO=)") in new stack
-- Executing [s@macro-dial-one:37] ExecIf("DAHDI/2-1", "0?Set(ALERT_INFO=Normal;volume=)") in new stack
-- Executing [s@macro-dial-one:38] ExecIf("DAHDI/2-1", "0?Set(ALERT_INFO=Normal;volume=)") in new stack
-- Executing [s@macro-dial-one:39] GosubIf("DAHDI/2-1", "0?func-set-sipheader,s,1(Alert-Info,)") in new stack
-- Executing [s@macro-dial-one:40] ExecIf("DAHDI/2-1", "0?Set(CHANNEL(musicclass)=)") in new stack
-- Executing [s@macro-dial-one:41] GosubIf("DAHDI/2-1", "0?qwait,1()") in new stack
-- Executing [s@macro-dial-one:42] Set("DAHDI/2-1", "__CWIGNORE=") in new stack
-- Executing [s@macro-dial-one:43] Set("DAHDI/2-1", "__KEEPCID=TRUE") in new stack
-- Executing [s@macro-dial-one:44] GotoIf("DAHDI/2-1", "0?usegoto,1") in new stack
-- Executing [s@macro-dial-one:45] GotoIf("DAHDI/2-1", "1?godial") in new stack
-- Goto (macro-dial-one,s,50)
-- Executing [s@macro-dial-one:50] Macro("DAHDI/2-1", "dialout-one-predial-hook,") in new stack
-- Executing [s@macro-dialout-one-predial-hook:1] MacroExit("DAHDI/2-1", "") in new stack
-- Executing [s@macro-dial-one:51] ExecIf("DAHDI/2-1", "1?Set(D_OPTIONS=trI)") in new stack
-- Executing [s@macro-dial-one:52] NoOp("DAHDI/2-1", "") in new stack
-- Executing [s@macro-dial-one:53] ExecIf("DAHDI/2-1", "0?Set(D_OPTIONS=trIg)") in new stack
-- Executing [s@macro-dial-one:54] Dial("DAHDI/2-1", "PJSIP/225/sip:[email protected]:50745;ob,,trIb(func-apply-sipheaders^s^1)") in new stack
-- PJSIP/225-00000005 Internal Gosub(func-apply-sipheaders,s,1) start
-- Executing [s@func-apply-sipheaders:1] NoOp("PJSIP/225-00000005", "Applying SIP Headers to channel") in new stack
-- Executing [s@func-apply-sipheaders:2] Set("PJSIP/225-00000005", "SIPHEADERKEYS=") in new stack
-- Executing [s@func-apply-sipheaders:3] ExecIf("PJSIP/225-00000005", "0?Set(Rheader=1)") in new stack
-- Executing [s@func-apply-sipheaders:4] While("PJSIP/225-00000005", "0") in new stack
-- Jumping to priority 8
-- Executing [s@func-apply-sipheaders:9] ExecIf("PJSIP/225-00000005", "0?SIPRemoveHeader(Alert-Info:)") in new stack
-- Executing [s@func-apply-sipheaders:10] ExecIf("PJSIP/225-00000005", "0?Set(PJSIP_HEADER(remove,Alert-Info)=)") in new stack
-- Executing [s@func-apply-sipheaders:11] Return("PJSIP/225-00000005", "") in new stack
  == Spawn extension (from-internal, 225, 1) exited non-zero on 'PJSIP/225-00000005'
-- PJSIP/225-00000005 Internal Gosub(func-apply-sipheaders,s,1) complete GOSUB_RETVAL=
-- Called PJSIP/225/sip:[email protected]:50745;ob
-- Connected line update to DAHDI/2-1 prevented.
-- PJSIP/225-00000005 is ringing
  == Spawn extension (macro-dial-one, s, 54) exited non-zero on 'DAHDI/2-1' in macro 'dial-one'
  == Spawn extension (macro-exten-vm, s, 26) exited non-zero on 'DAHDI/2-1' in macro 'exten-vm'
  == Spawn extension (ext-local, 225, 2) exited non-zero on 'DAHDI/2-1'
-- Executing [h@ext-local:1] Macro("DAHDI/2-1", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("DAHDI/2-1", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] ExecIf("DAHDI/2-1", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:4] Hangup("DAHDI/2-1", "") in new stack
  == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'DAHDI/2-1' in macro 'hangupcall'
  == Spawn extension (ext-local, h, 1) exited non-zero on 'DAHDI/2-1'
-- Hanging up on 'DAHDI/2-1'
-- Hungup 'DAHDI/2-1'

That looks important, but I’m at a loss what could be jamming you up. Have you checked to see if it could be something as simple as ownership of the process or the /dev entries? An ‘fwconsole chown’ might be a step to try.

I’m just guessing here, but maybe your inbound route is botched?

Hello. We have an engineering working on this right now. @danardf

Can I ask you to run dahdi_scan from the CLI and put the results here:

Note that the log was captured from FreePBX 13 (AsteriskNow), where everything seemed to work. It’s FreePBX 14 (FreePBX Distro) that’s giving difficulty. FreePBX 14 doesn’t acknowledge inbound ringing with any messages at all, despite being able to see the voltage in ‘wanpipemon’.

(Incidentally, I believe the particular message “Connected line update to DAHDI/2-1 prevented” came about because the POTS line was picked up directly, not through asterisk. However, asterisk in 13 was ringing the extension as expected until this event.)

Here is the output of ‘fwconsole chown’:

Setting Permissions...
Setting base permissions...Done
Setting specific permissions...
 35526 [============================]
Finished setting permissions

And here is the output of ‘ls -la /dev/wan*’:

crw-------   1 root root    239,    0 Dec 10 09:17 wanec
crw-------   1 root root    240, 4128 Dec 10 09:17 wanpipe
crw-------   1 root root    240, 4160 Dec 10 09:17 wanpipe_ctrl
crw-------   1 root root    240, 4192 Dec 10 09:17 wanpipe_logger

Running ‘fwconsole chown’ doesn’t seem to have made a difference. I also don’t think it’s the route, since both inbound and outbound calls are affected. For both installations I just have one inbound route “ALL” that rings a single extension.

‘dahdi_scan’ on FreePBX 14:

[1]
active=yes
alarms=OK
description=wrtdm Board 1
name=WRTDM/0
manufacturer=Sangoma Technologies
devicetype=A200
location=SLOT=0, BUS=19
basechan=1
totchans=24
irq=0
type=analog
port=1,FXO
port=2,FXO
port=3,FXS
port=4,FXS
port=5,none
port=6,none
port=7,none
port=8,none
port=9,none
port=10,none
port=11,none
port=12,none
port=13,none
port=14,none
port=15,none
port=16,none
port=17,none
port=18,none
port=19,none
port=20,none
port=21,none
port=22,none
port=23,none
port=24,none

‘dahdi_scan’ on FreePBX 13:

[1]
active=yes
alarms=OK
description=wrtdm Board 1
name=WRTDM/0
manufacturer=Sangoma Technologies
devicetype=A200
location=SLOT=0, BUS=11
basechan=1
totchans=24
irq=0
type=analog
port=1,FXO
port=2,FXO
port=3,FXS
port=4,FXS
port=5,none
port=6,none
port=7,none
port=8,none
port=9,none
port=10,none
port=11,none
port=12,none
port=13,none
port=14,none
port=15,none
port=16,none
port=17,none
port=18,none
port=19,none
port=20,none
port=21,none
port=22,none
port=23,none
port=24,none

I believe the difference in the PCI BUS id is simply a consequence of the different VMs currently involved

For the moment, dahdi_scan gives no result for my part.
As I had another FXO card in this slot, I think that it may have a conflict somewhere.
I’ll try to change the SLOT and see if I could detect the modules FXO/FXS.

Also, i’ve got an ESXi server at home but i think it doesn’t support PCI share.
I’ll try to check if it’s doable. but in /config/advanced settings/ There’s /!\

Did you try to change the slot where the PCI is plugged?

Under my ESXi server 5.5, i’ve no licence to use PCI share.
Also, i changed the Slot position.

I’m working on and i’ll let you know when i will have some news.

No, I have not found any reason to change the physical PCI slot. Passthrough has always seemed to work fine in any of the VMs to which I have assigned the A200 card. I’m just using the free version ESXi hypervisor, which I recently updated from 6.7 to 6.7U1.

Did you check the settings in Connectivity - Dahdi Config in Freepbx GUI?
There’s no changes or something wrong in the settings here?
What about the trunk? If you try to add a new trunk, do you see some different channels?

I have not changed any DAHDI Configuration beyond the group settings that arielgrin suggested. I have not modified the Global Settings, System Settings, etc. in any way.

I downloaded and compared ‘/etc/dahdi’ from both FreePBX 13 and 14. ‘system.conf’, ‘init.conf’, and ‘modules’ are identical.

The trunk configuration is almost default, except that I configured a CallerID:

If I add a second trunk, the listed channels/groups are identical.

Maybe tonight I will try to install a VM with FreePBX Distro 13, to see if it is any different from AsteriskNow FreePBX 13 …

Thanks for your feed back.
I never thought you had change something, but I had some doubt if the migration had change something in the group,…etc
I just try to looking for where this issue come from.

FYI . My timezone is in France. Just for avoid to wait any immediate answer for nothing. :wink:

No problem on the time zone. I spent a couple of weeks playing around before posting, so any help you can give is greatly appreciated.

I do want to clarify that there is no migration involved with my current FreePBX 14 configuration. It should be a clean install of SNG7-FPBX-64bit-1805-1. The migration (that I gave up on) was in the AsteriskNow distribution

Ha ok it’s good know.
So Freepbx has been installed from scratch on a virtual machine. ok
indeed, weird that you get this kind of error.
Need to work on together. However, i’ll be in vacation soon (from Dec 20th to Jan 7th).

Let me know Dengel.