Installing Rhino R4FXO­EC on FreePBX 12.x

I’m trying to install a Rhino R4FXO­EC card into a Atom based SuperMicro server. I’m running a 64bit installation.

I’ve got the card in the PCI slot and followed the DAHDI Confit which now shows

Each port in the FXO Settings is set to “Kewl Start”, Group 0,“Context: from-analog

I’ve applied changes, and reloaded and restarted DAHDI and Asterisk.

When I try dialing the analog number, I get a “This number is not isn service recording from Asterisk” and the Asterisk CLI outputs the following:

    Connected to Asterisk 11.14.1 currently running on localhost (pid = 2018)
    -- Starting simple switch on 'DAHDI/1-1'
    -- Executing [s@from-analog:1] NoOp("DAHDI/1-1", "Entering from-dahdi with DID == ") in new stack
    -- Executing [s@from-analog:2] Ringing("DAHDI/1-1", "") in new stack
    -- Executing [s@from-analog:3] Set("DAHDI/1-1", "DID=s") in new stack
    -- Executing [s@from-analog:4] NoOp("DAHDI/1-1", "DID is now s") in new stack
    -- Executing [s@from-analog:5] GotoIf("DAHDI/1-1", "1?dahdiok:checkzap") in new stack
    -- Goto (from-analog,s,9)
    -- Executing [s@from-analog:9] NoOp("DAHDI/1-1", "Is a DAHDi Channel") in new stack
    -- Executing [s@from-analog:10] Set("DAHDI/1-1", "CHAN=1-1") in new stack
    -- Executing [s@from-analog:11] Set("DAHDI/1-1", "CHAN=1") in new stack
    -- Executing [s@from-analog:12] Macro("DAHDI/1-1", "from-dahdi-1,s,1") in new stack
[2015-01-03 10:44:00] WARNING[2517][C-00000001]: app_macro.c:309 _macro_exec: No such context 'macro-from-dahdi-1' for macro 'from-dahdi-1'. Was called by s@from-analog
    -- Executing [s@from-analog:13] NoOp("DAHDI/1-1", "Returned from Macro from-dahdi-1") in new stack
    -- Executing [s@from-analog:14] Goto("DAHDI/1-1", "from-pstn,s,1") in new stack
    -- Goto (from-pstn,s,1)
    -- Executing [s@from-pstn:1] NoOp("DAHDI/1-1", "No DID or CID Match") in new stack
    -- Executing [s@from-pstn:2] Answer("DAHDI/1-1", "") in new stack
[2015-01-03 10:44:00] WARNING[2517][C-00000001]: chan_sip.c:21963 func_header_read: This function can only be used on SIP channels.
    -- Executing [s@from-pstn:3] Log("DAHDI/1-1", "WARNING,Friendly Scanner from ") in new stack
[2015-01-03 10:44:00] WARNING[2517][C-00000001]: Ext. s:3 @ from-pstn: Friendly Scanner from 
    -- Executing [s@from-pstn:4] Wait("DAHDI/1-1", "2") in new stack
    -- Executing [s@from-pstn:5] Playback("DAHDI/1-1", "ss-noservice") in new stack
    -- <DAHDI/1-1> Playing 'ss-noservice.ulaw' (language 'en')
    -- Executing [s@from-pstn:6] SayAlpha("DAHDI/1-1", "") in new stack
    -- Executing [s@from-pstn:7] Hangup("DAHDI/1-1", "") in new stack
  == Spawn extension (from-pstn, s, 7) exited non-zero on 'DAHDI/1-1'
    -- Executing [h@from-pstn:1] Macro("DAHDI/1-1", "hangupcall,") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("DAHDI/1-1", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] ExecIf("DAHDI/1-1", "0?Set(CDR(recordingfile)=)") in new stack
    -- Executing [s@macro-hangupcall:4] Hangup("DAHDI/1-1", "") in new stack
  == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'DAHDI/1-1' in macro 'hangupcall'
  == Spawn extension (from-pstn, h, 1) exited non-zero on 'DAHDI/1-1'
    -- Hanging up on 'DAHDI/1-1'
    -- Hungup 'DAHDI/1-1'

My guess is that the no context warning regarding “from-dahdi-1” vs “from-analog” is part of the problem.

How do I fix this?

Thank you in advance for your help.

You have apparently not setup your DAHDI channel DID’s yet.

So I added a DAHDI Channel DID in the form of:

Description: Rhino FXO1
DID: 8185551212

Now, I’m getting a different error message, but the phone call is still not routing to the IVR which is where I want all incoming calls to go.

I’ve tried adding an incoming route using the same DID information and all setting to default except “Set Destination”, but this didn’t seem to help.

    -- Starting simple switch on 'DAHDI/1-1'
    -- Executing [s@from-analog:1] NoOp("DAHDI/1-1", "Entering from-dahdi with DID == ") in new stack
    -- Executing [s@from-analog:2] Ringing("DAHDI/1-1", "") in new stack
    -- Executing [s@from-analog:3] Set("DAHDI/1-1", "DID=s") in new stack
    -- Executing [s@from-analog:4] NoOp("DAHDI/1-1", "DID is now s") in new stack
    -- Executing [s@from-analog:5] GotoIf("DAHDI/1-1", "1?dahdiok:checkzap") in new stack
    -- Goto (from-analog,s,9)
    -- Executing [s@from-analog:9] NoOp("DAHDI/1-1", "Is a DAHDi Channel") in new stack
    -- Executing [s@from-analog:10] Set("DAHDI/1-1", "CHAN=1-1") in new stack
    -- Executing [s@from-analog:11] Set("DAHDI/1-1", "CHAN=1") in new stack
    -- Executing [s@from-analog:12] Macro("DAHDI/1-1", "from-dahdi-1,s,1") in new stack
    -- Executing [s@macro-from-dahdi-1:1] NoOp("DAHDI/1-1", "Entering macro-from-dahdi-1 with DID = s and setting to: 8885551212") in new stack
    -- Executing [s@macro-from-dahdi-1:2] Set("DAHDI/1-1", "__FROM_DID=8885551212") in new stack
    -- Executing [s@macro-from-dahdi-1:3] Goto("DAHDI/1-1", "from-trunk,8885551212,1") in new stack
    -- Goto (from-trunk,8885551212,1)
  == Channel 'DAHDI/1-1' jumping out of macro 'from-dahdi-1'
    -- Executing [8885551212@from-trunk:1] Set("DAHDI/1-1", "__FROM_DID=8885551212") in new stack
    -- Executing [8885551212@from-trunk:2] NoOp("DAHDI/1-1", "Received an unknown call with DID set to 8885551212") in new stack
    -- Executing [8885551212@from-trunk:3] Goto("DAHDI/1-1", "s,a2") in new stack
    -- Goto (from-trunk,s,2)
    -- Executing [s@from-trunk:2] Answer("DAHDI/1-1", "") in new stack
[2015-01-03 11:40:20] WARNING[11471][C-00000052]: chan_sip.c:21963 func_header_read: This function can only be used on SIP channels.
    -- Executing [s@from-trunk:3] Log("DAHDI/1-1", "WARNING,Friendly Scanner from ") in new stack
[2015-01-03 11:40:20] WARNING[11471][C-00000052]: Ext. s:3 @ from-trunk: Friendly Scanner from 
    -- Executing [s@from-trunk:4] Wait("DAHDI/1-1", "2") in new stack
    -- Executing [s@from-trunk:5] Playback("DAHDI/1-1", "ss-noservice") in new stack
    -- <DAHDI/1-1> Playing 'ss-noservice.ulaw' (language 'en')
    -- Executing [s@from-trunk:6] SayAlpha("DAHDI/1-1", "8885551212") in new stack
    -- <DAHDI/1-1> Playing 'digits/8.ulaw' (language 'en')
    -- <DAHDI/1-1> Playing 'digits/8.ulaw' (language 'en')
    -- <DAHDI/1-1> Playing 'digits/8.ulaw' (language 'en')
    -- <DAHDI/1-1> Playing 'digits/5.ulaw' (language 'en')
    -- <DAHDI/1-1> Playing 'digits/5.ulaw' (language 'en')
    -- <DAHDI/1-1> Playing 'digits/5.ulaw' (language 'en')
    -- <DAHDI/1-1> Playing 'digits/1.ulaw' (language 'en')
    -- <DAHDI/1-1> Playing 'digits/2.ulaw' (language 'en')
    -- <DAHDI/1-1> Playing 'digits/1.ulaw' (language 'en')
    -- <DAHDI/1-1> Playing 'digits/2.ulaw' (language 'en')
    -- Executing [s@from-trunk:7] Hangup("DAHDI/1-1", "") in new stack
  == Spawn extension (from-trunk, s, 7) exited non-zero on 'DAHDI/1-1'
    -- Executing [h@from-trunk:1] Macro("DAHDI/1-1", "hangupcall,") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("DAHDI/1-1", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] ExecIf("DAHDI/1-1", "0?Set(CDR(recordingfile)=)") in new stack
    -- Executing [s@macro-hangupcall:4] Hangup("DAHDI/1-1", "") in new stack
  == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'DAHDI/1-1' in macro 'hangupcall'
  == Spawn extension (from-trunk, h, 1) exited non-zero on 'DAHDI/1-1'
    -- Hanging up on 'DAHDI/1-1'
    -- Hungup 'DAHDI/1-1'

Thank you for the suggestion Dicko.

Where is :-

currently routed to?

Ugh. Looks like I made an error and filled in CallerID Number with the DID as well. Once I removed it so that it says “any CID”, it works.

Thank you for your guidance. I appreciate it.

There is always the wiki to learn how it all works :wink: