Dahdi / Traditional PBX

Friendly Greetings!

Am having a lot of issues. I have a old school PBX system that requires a T1 line for voice. I also have a separate server that I set up with asterisk. Both systems are connected together via T1 Cards.

My goal is to have Asterisk server handle the incoming / outgoing lines ie voip to T1 to the PBX so that the PBX can receive calls and also place outbound calls. I guess t1 voip gateway would be the terminology of what I’m wanting to do I think.

Many moons ago we built a Elastix server maybe back in 2008/2009 and configured it with Dahdi and it worked! That server I no longer have but I have the original T1 card which is a te110p so I have that in my new asterisk server. For the life of me I have tried freepbx and also issabel I can get the card to go to green for alarm however I can not remember or figure out how to pass on the calls to the PBX. I have all the signaling documentation. But when we create the trunks it is saying the line is busy.

Is there anyone in here that has any advice or possibly a link on how to set this up like how I want it? Or is there someone here I can pay to set this up for me or help me along the way.

The old school PBX that needs to receive the calls from memory can only see the last 4 digits of a number and thats how it knows which PBX user to dial in to for the service.

You are going to need to provide some debug itself so people can see what you tried and what the output is (at least debug level 1, probably with debug level 3 for chan_dahdi and core verbose 10).

I think the TE110P is one of the cards temporarily removed from the DAHDI driver set. If you’re installing a modern version of Asterisk, you can use PhreakScript to get the driver back: GitHub - InterLinked1/phreakscript: A utility to automate the installation, maintenance, and debugging of Asterisk/DAHDI, while integrating additional patches to provide the richest telephony experience

I don’t use FreePBX or have knowledge of it, so if you’re using FreePBX you may want to check out the FreePBX forum - this forum is for “vanilla” Asterisk, not GUIs that use it.

Thank you I am going to work on getting some better logs over and some more information. Just a quick question. If the card is showing green and no alarm after configuring it does that mean the drivers are there?

Also thank you so much for the tool I don’t quite understand it but I am going to do my best to read up and try to figure out how to use it.

[root@issabel src]# dahdi_cfg -v
DAHDI Tools Version - 2.11.1

DAHDI Version: 2.11.1
Echo Canceller(s): OSLEC
Configuration

SPAN 1: D4/ AMI Build-out: 0 db (CSU)/0-133 feet (DSX-1)

24 channels to configure.

Setting echocan for channel 1 to oslec
Setting echocan for channel 2 to oslec
Setting echocan for channel 3 to oslec
Setting echocan for channel 4 to oslec
Setting echocan for channel 5 to oslec
Setting echocan for channel 6 to oslec
Setting echocan for channel 7 to oslec
Setting echocan for channel 8 to oslec
Setting echocan for channel 9 to oslec
Setting echocan for channel 10 to oslec
Setting echocan for channel 11 to oslec
Setting echocan for channel 12 to oslec
Setting echocan for channel 13 to oslec
Setting echocan for channel 14 to oslec
Setting echocan for channel 15 to oslec
Setting echocan for channel 16 to oslec
Setting echocan for channel 17 to oslec
Setting echocan for channel 18 to oslec
Setting echocan for channel 19 to oslec
Setting echocan for channel 20 to oslec
Setting echocan for channel 21 to oslec
Setting echocan for channel 22 to oslec
Setting echocan for channel 23 to oslec
Setting echocan for channel 24 to none
[root@issabel src]# dahdi_scan
[1]
active=yes
alarms=OK
description=Digium Wildcard TE110P T1/E1 Card 0
name=WCT1/0
manufacturer=Digium
devicetype=Digium Wildcard TE110P T1/E1
location=PCI Bus 05 Slot 01
basechan=1
totchans=24
irq=0
type=digital-T1
syncsrc=0
lbo=0 db (CSU)/0-133 feet (DSX-1)
coding_opts=B8ZS,AMI
framing_opts=ESF,D4
coding=AMI
framing=D4
[root@issabel src]#
[root@issabel src]# sudo cat /proc/dahdi/*
Span 1: WCT1/0 “Digium Wildcard TE110P T1/E1 Card 0” (MASTER) D4/AMI

   1 WCT1/0/1 Clear (In use) (EC: OSLEC - INACTIVE) 
   2 WCT1/0/2 Clear (In use) (EC: OSLEC - INACTIVE) 
   3 WCT1/0/3 Clear (In use) (EC: OSLEC - INACTIVE) 
   4 WCT1/0/4 Clear (In use) (EC: OSLEC - INACTIVE) 
   5 WCT1/0/5 Clear (In use) (EC: OSLEC - INACTIVE) 
   6 WCT1/0/6 Clear (In use) (EC: OSLEC - INACTIVE) 
   7 WCT1/0/7 Clear (In use) (EC: OSLEC - INACTIVE) 
   8 WCT1/0/8 Clear (In use) (EC: OSLEC - INACTIVE) 
   9 WCT1/0/9 Clear (In use) (EC: OSLEC - INACTIVE) 
  10 WCT1/0/10 Clear (In use) (EC: OSLEC - INACTIVE) 
  11 WCT1/0/11 Clear (In use) (EC: OSLEC - INACTIVE) 
  12 WCT1/0/12 Clear (In use) (EC: OSLEC - INACTIVE) 
  13 WCT1/0/13 Clear (In use) (EC: OSLEC - INACTIVE) 
  14 WCT1/0/14 Clear (In use) (EC: OSLEC - INACTIVE) 
  15 WCT1/0/15 Clear (In use) (EC: OSLEC - INACTIVE) 
  16 WCT1/0/16 Clear (In use) (EC: OSLEC - INACTIVE) 
  17 WCT1/0/17 Clear (In use) (EC: OSLEC - INACTIVE) 
  18 WCT1/0/18 Clear (In use) (EC: OSLEC - INACTIVE) 
  19 WCT1/0/19 Clear (In use) (EC: OSLEC - INACTIVE) 
  20 WCT1/0/20 Clear (In use) (EC: OSLEC - INACTIVE) 
  21 WCT1/0/21 Clear (In use) (EC: OSLEC - INACTIVE) 
  22 WCT1/0/22 Clear (In use) (EC: OSLEC - INACTIVE) 
  23 WCT1/0/23 Clear (In use) (EC: OSLEC - INACTIVE) 
  24 WCT1/0/24 HDLCFCS (In use) 

[root@issabel src]#

This is also what happens when trying to hand call off over to the traditional PBX.

Executing [s@macro-dial-one:36] Set(“SIP/VOIPMS_OUT-00000014”, “__KEEPCID=TRUE”) in new stack
– Executing [s@macro-dial-one:37] GotoIf(“SIP/VOIPMS_OUT-00000014”, “0?usegoto,1”) in new stack
– Executing [s@macro-dial-one:38] GotoIf(“SIP/VOIPMS_OUT-00000014”, “1?godial”) in new stack
– Goto (macro-dial-one,s,43)
– Executing [s@macro-dial-one:43] Dial(“SIP/VOIPMS_OUT-00000014”, “DAHDI/g0/7911,tr”) in new stack
– Requested transfer capability: 0x00 - SPEECH
– Called DAHDI/g0/7911
– Span 1: Channel 0/1 got hangup, cause 27
– DAHDI/i1/7911-e is circuit-busy
– Hungup ‘DAHDI/i1/7911-e’
== Everyone is busy/congested at this time (1:0/1/0)
– Executing [s@macro-dial-one:44] ExecIf(“SIP/VOIPMS_OUT-00000014”, “0?MacroExit()”) in new stack
– Executing [s@macro-dial-one:45] ExecIf(“SIP/VOIPMS_OUT-00000014”, “0?Set(DIALSTATUS=)”) in new stack
– Executing [s@macro-dial-one:46] GosubIf(“SIP/VOIPMS_OUT-00000014”, “0?s-CONGESTION,1()”) in new stack
– Executing [s@macro-dial-one:47] MacroExit(“SIP/VOIPMS_OUT-00000014”, “”) in new stack
– Executing [s@macro-exten-vm:8] Set(“SIP/VOIPMS_OUT-00000014”, “SV_DIALSTATUS=CONGESTION”) in new stack
– Executing [s@macro-exten-vm:9] GosubIf(“SIP/VOIPMS_OUT-00000014”, “0?docfu,1()”) in new stack
– Executing [s@macro-exten-vm:10] GosubIf(“SIP/VOIPMS_OUT-00000014”, “0?docfb,1()”) in new stack
– Executing [s@macro-exten-vm:11] Set(“SIP/VOIPMS_OUT-00000014”, “DIALSTATUS=CONGESTION”) in new stack
– Executing [s@macro-exten-vm:12] ExecIf(“SIP/VOIPMS_OUT-00000014”, “0?MacroExit()”) in new stack
– Executing [s@macro-exten-vm:13] GotoIf(“SIP/VOIPMS_OUT-00000014”, “1?s-CONGESTION,1”) in new stack
– Goto (macro-exten-vm,s-CONGESTION,1)
– Executing [s-CONGESTION@macro-exten-vm:1] GotoIf(“SIP/VOIPMS_OUT-00000014”, “0?exit,1”) in new stack
– Executing [s-CONGESTION@macro-exten-vm:2] PlayTones(“SIP/VOIPMS_OUT-00000014”, “congestion”) in new stack
– Executing [s-CONGESTION@macro-exten-vm:3] Congestion(“SIP/VOIPMS_OUT-00000014”, “10”) in new stack
== Spawn extension (macro-exten-vm, s-CONGESTION, 3) exited non-zero on ‘SIP/VOIPMS_OUT-00000014’ in macro ‘exten-vm’
== Spawn extension (from-did-direct, 7911, 2) exited non-zero on ‘SIP/VOIPMS_OUT-00000014’
– Executing [h@from-did-direct:1] Macro(“SIP/VOIPMS_OUT-00000014”, “hangupcall,”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“SIP/VOIPMS_OUT-00000014”, “1?endmixmoncheck”) in new stack
– Goto (macro-hangupcall,s,20)
– Executing [s@macro-hangupcall:20] NoOp(“SIP/VOIPMS_OUT-00000014”, “End of MIXMON check”) in new stack
– Executing [s@macro-hangupcall:21] GotoIf(“SIP/VOIPMS_OUT-00000014”, “1?nomeetmemon”) in new stack
– Goto (macro-hangupcall,s,39)
– Executing [s@macro-hangupcall:39] NoOp(“SIP/VOIPMS_OUT-00000014”, “End of MEETME check”) in new stack
– Executing [s@macro-hangupcall:40] GotoIf(“SIP/VOIPMS_OUT-00000014”, “1?noautomon”) in new stack
– Goto (macro-hangupcall,s,45)
– Executing [s@macro-hangupcall:45] NoOp(“SIP/VOIPMS_OUT-00000014”, “TOUCH_MONITOR_OUTPUT=”) in new stack
– Executing [s@macro-hangupcall:46] GotoIf(“SIP/VOIPMS_OUT-00000014”, “1?noautomon2”) in new stack
– Goto (macro-hangupcall,s,52)
– Executing [s@macro-hangupcall:52] NoOp(“SIP/VOIPMS_OUT-00000014”, “MONITOR_FILENAME=”) in new stack
– Executing [s@macro-hangupcall:53] GotoIf(“SIP/VOIPMS_OUT-00000014”, “1?noautomon3”) in new stack
– Goto (macro-hangupcall,s,59)
– Executing [s@macro-hangupcall:59] NoOp(“SIP/VOIPMS_OUT-00000014”, “MIXMONITOR_FILENAME=”) in new stack
– Executing [s@macro-hangupcall:60] GotoIf(“SIP/VOIPMS_OUT-00000014”, “1?noautomon4”) in new stack
– Goto (macro-hangupcall,s,62)
– Executing [s@macro-hangupcall:62] NoOp(“SIP/VOIPMS_OUT-00000014”, “ONETOUCH_RECFILE=”) in new stack
– Executing [s@macro-hangupcall:63] NoOp(“SIP/VOIPMS_OUT-00000014”, "CDR recordingfile set to: ") in new stack
– Executing [s@macro-hangupcall:64] GotoIf(“SIP/VOIPMS_OUT-00000014”, “1?skiprg”) in new stack
– Goto (macro-hangupcall,s,67)
– Executing [s@macro-hangupcall:67] GotoIf(“SIP/VOIPMS_OUT-00000014”, “1?skipblkvm”) in new stack
– Goto (macro-hangupcall,s,70)
– Executing [s@macro-hangupcall:70] GotoIf(“SIP/VOIPMS_OUT-00000014”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,72)
– Executing [s@macro-hangupcall:72] AGI(“SIP/VOIPMS_OUT-00000014”, “hangup.agi”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/hangup.agi
– <SIP/VOIPMS_OUT-00000014>AGI Script hangup.agi completed, returning 0
– Executing [s@macro-hangupcall:73] Hangup(“SIP/VOIPMS_OUT-00000014”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 73) exited non-zero on ‘SIP/VOIPMS_OUT-00000014’ in macro ‘hangupcall’
== Spawn extension (from-did-direct, h, 1) exited non-zero on ‘SIP/VOIPMS_OUT-00000014’
issabel*CLI>

The complete listing looks like code from FreePBX, but the above is the only relevant information.

27 is destination out of order (as seen by the remote end).

I think I still have something wrong in the configuration or I am not passing on the call correctly. I am working on trying to figure out how to do the correct dial plan.