login | register
Sat 04 of Jul, 2009 [21:17 UTC]

voip-info.org

History

Asterisk-ToshibaStrata

Created by: dminstrel,Last modification on Fri 20 of Feb, 2009 [14:21 UTC] by jharragi

Asterisk - Toshiba Strata


My situation:

Toshiba Strata DK424
Two buildings side by side, linked with an underground 12 pair fiber. We've got Strata cabinets in both buildings linked through fiber (ROMS1A cards?).
About 140 phones, which we want to keep using About 7 faxes and a couple of analog lines (telemetry, modems, and such).
We currently have Centrex lines but are going to migrate to T1 at the same time as we're installing Asterisk.
I have a spare RDTU card in the Strata.

My (proposed) Bill of Materials :

- Two Asterisk servers (one per building)
- Server 1 (building where the PBX is) : Digium TE411P and TDM104B (4 faxes in building 1)
- Server 2 : 2 x Digium TDM104B (3 faxes + a bunch of modems and telemetry lines)
- Adit 600 Chassis (not too clear on what I need to put in this)
     - Dual T1 Controller Card
- 3 x FXO/DPT 8-Channel Voice Service Card -> this would allow for 24 simultaneous communications between Toshiba users and the Asterisk box, right? I would need to have the corresponding number of RCOU ports in the Strata?
- some SIP phones for new users (Aastra 9133i look nice)


Brian Roy gave me the following info:

I do indeed have a Toshiba 424 like yours and have it integrated with Asterisk. I have a couple different integrations.


On the asterisk box I have the following.

1 - TE410 card with quad T1's.

Interface 1 connected to the Toshiba with E&M to a RDTU card on the Toshiba Interface 2 connected to 24 ports ADIT600 fxo channels. These channels are then tied into the toshiba analog extensions Interface 3 connected to 24 ports of ADIT600 fxs channels. This is to provide FXS (modem, fax, dialup, etc) throughout our building.
Interface 4 connected to one of our 4 dedicated long distance T1's with Qwest. (The other 3 are connected through the Toshiba)

The biggest challenge that I have had with the Toshiba -> asterisk integration is the Toshiba's inability to do unsupervised trunk to trunk transfers. That means if the call originates from the Toshiba, you are unable to "transfer" it over to the Asterisk box via an E&M T1 circuit. The other way around is no problem.

In your case, if you are adding voicemail, you will probable want to look at an Adit 600 like I use. It would interface to analog extensions on your Toshiba and the Adit would convert it to Digital on the Asterisk via a Digium card. TE100 should work for this.

One of the toughest things for you will be the disconnect supervision.
The Toshiba doesn't send a standard disconnect. It has a proprietary DTMF disconnect that it sends the Strata voicemail systems, but I'm not sure what tone it is. It's on my to-do list to figure out.
Otherwise you are going to have to use busy supervision in Asterisk which will leave several seconds of Congestion on the back of every voicemail.



This may help for the above issue... Allow the dtmf 'D' tone sent by a Toshiba DK424. Turn on LEDs 15, 19 & 20 in program-31 for the toshiba's voicemail ports.
By passing the audio through Asterisk's MeetMe application, it can be made to listen for any dtmf tone. This setup defined here just hangs-up when a 'A', 'B' or 'D' tone arrives but minor modifications (see the 'exten => _[ABD#],1,Hangup()' line) opens up the possibility of more full featured voicemail integration.
Now a couple of notes:
1) Voicmail ports arriving into asterisk are all two digits. You may have to make modifications to use this. They arrive in the vm_from_toshiba context (as defined in zapata.conf).
2) All of my Toshiba extension are in the form 7XXX
3) Regard this as a rough guide - but these snips work in my configuration.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

In Zapata.conf

callwaitingcallerid=no
threewaycalling=no
transfer=no
usecallerid=no
signalling=fxs_ks
callerid="Voicemail HS trunks" <7000>
context=vm_from_toshiba
group=10
channel => 49-56 ; These are the two digit ports mentioned above. The digit number is important where the ${CHANNEL} variable is referenced.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

These contexts are defined in extensions.conf

[vm_from_toshiba]
exten => s,1,NoCDR()
exten => s,n,wait(.5)
exten => s,n,answer
exten => s,n,SET(TIMEOUT(absolute)=1800)
exten => s,n,SET(TIMEOUT(digit)=1.5)
exten => s,n,SET(TIMEOUT(response)=7)
exten => s,n,waitexten(3)
exten => s,n,VoicemailMain()
exten => s,n,hangup
exten => _X.,1,noop(Dialed extension is ${EXTEN})
exten => _X.,n,Gotoif($["${EXTEN:-1}" = "D"]?terminated) ;;Checkout Toshiba seems to be sending a terminator 'D' There may have been a hangup before the whole dtmf string was transmitted.
exten => _X.,n,System(/root/toshiba_error_finder ${EXTEN} &) ;;; This calls a little debugging script - comment it out
exten => _X.,n,Voicemail(9999,u) ;;; There is a mistake on the toshiba forwarding string, let the caller tell me who they were trying to call - comment it out.
exten => _X.,n,wait(1.5)
exten => _X.,n(hu),hangup
exten => _X.,n(terminated),NoCDR()
exten => _X.,n,Voicemail(9999,u)
exten => _X.,n,hangup
exten => _917XXX,1,SET(TIMEOUT(absolute)=300) ;;; max msg 5 min - adjust as needed
exten => _917XXX,n,Goto(hs-vm-with-dtmf-detect,${EXTEN:2},1)
exten => _917XXX,n,Hangup()
exten => _91XXXX,1,System(touch /tmp/vm/old_ext/${EXTEN:2}) ;;;; This is for debuging too
exten => _91XXXX,n,Hangup()
exten => _927XXX,1,VoicemailMain(${EXTEN:2}|s))
exten => _927XXX,n,Hangup()
exten => _92XXXX,1,System(touch /tmp/vm/92/${EXTEN})
exten => _92XXXX,n,Hangup()
exten => T,1,Hangup()

[hs-vm-with-dtmf-detect]
exten => _7XXX,1,System(asterisk -rx "originate Local/${CHANNEL:4:2}@hs-vm-meetme application voicemail \\"${EXTEN}|su\\"")
exten => _7XXX,n,MeetMe(vmd${CHANNEL:4:2},AdFpqXx) ;Meetme mail boxes defined for zap channels 49-56
exten => _7XXX,n,Hangup()
exten => _[ABD#],1,Hangup()
exten => h,1,MeetMeAdmin(vmd${CHANNEL:4:2},K) ;Kick all users out of conference

[hs-vm-meetme]
exten => _X.,1,NoCDR()
exten => _X.,n,Wait(.3) ; give hs-vm-with-dtmf-detect time to create meetme
exten => _X.,n,MeetMe(vmd${EXTEN},q)
exten => _X.,n,Hangup()

[vm_toshiba_log_mwi]
exten => s,1,wait(1.5)
exten => s,n,hangup

[vm_toshiba_set_mwi]
exten => _7XXX,1,Gotoif(${MWI_ON}?on)
exten => _7XXX,n(off),Dial(Zap/52/!#64${EXTEN}|30)
exten => _7XXX,n,wait(1)
exten => _7XXX,n,hangup()
exten => _7XXX,n(on),Dial(Zap/52/!#63${EXTEN}|30)
exten => _7XXX,n,wait(1)
exten => _7XXX,n,hangup()
exten => _x.,1,wait(1)
exten => _x.,n,hangup()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

In Voicemail.conf:
externnotify = /usr/local/bin/toshiba_notify

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Finally here is the bash script referenced in externalnotify, toshiba_notify (READ THE COMMENTS!):
#!/bin/bash
# Written by John Harragin, Monroe-Woodbury Central-School-District 845-460-6200 x6265
CONTEXT=$1
VM_EXTEN=$2
NUM_MSG=$3
TMP_CALL_FILE=/tmp/vm/${VM_EXTEN}.call
REAL_CALL_FILE=/var/spool/asterisk/outgoing/${VM_EXTEN}.call
# I only want to send notification to phones hosted on the toshiba - not SIP phones.
# if you use this script, I suggest geting rid of the next 4 lines and the fi on the last line - or modify to you needs.
if [ $(grep -E "\[${VM_EXTEN}\]" /etc/asterisk/sip_phones/ConsolidatedSip-70.conf) ] && [ ${CONTEXT} != "default" ];then
echo $(grep -E "\[${VM_EXTEN}\]" /etc/asterisk/sip_phones/ConsolidatedSip-70.conf)
 echo "$(date) context=${CONTEXT} VM_EXTEN=${VM_EXTEN}  NUM_MSG=${NUM_MSG} - not a HS ext, ignoring." >> /var/log/asterisk/toshiba_vm.log
else
if [ ${NUM_MSG} -le 1 ];then
echo "Channel: Local/${VM_EXTEN}@vm_toshiba_set_mwi
MaxRetries: 4
RetryTime: 90
WaitTime: 30
SET: VM_EXTEN=${VM_EXTEN}
SET: MWI_ON=${NUM_MSG}
Context: vm_toshiba_log_mwi
Extension: s
Priority: 1" > ${TMP_CALL_FILE}
mv ${TMP_CALL_FILE} ${REAL_CALL_FILE}
fi
echo "$(date) context=${CONTEXT} VM_EXTEN=${VM_EXTEN} NUM_MSG=${NUM_MSG}" >> /var/log/asterisk/toshiba_vm.log
fi # This is the line to delete if you read the upper comment.



this would be my setup:

TE411P
  Port 1: PRI line from telco
  Port 2: RDTU card in Toshiba
  Port 3: Adit -> FXO/DPT 8-Channel Voice Service Card -> patch pannel -> Toshiba analog ports (RCOU)?

Could I leave my existing faxes and analog lines as-is in the Strata and have them go out through the RDTU?

I wonder if Brian solved the disconnect supervision problem.

Also, will paging (from the Asterisk) and caller ID function (Toshiba-Toshiba, SIP phone-Toshiba, Toshiba-SIP phone, Telco-Toshiba) work with this setup?


I received (contradictory?) information from Daniel Burget:

I currently have asterisk connected to the a 4 port T1 card. The Voice T1 line goes into asterisk, then a T1 cross connect cable connected to asterisk and the Toshiba CTX. I only have 3 phones, and 7 analog lines connected to the Toshiba, the rest are Polycom IP 500 phones connected to asterisk.


This would indicate that Asterisk-Toshiba integration is possible using only a T1 line.



(Edit by Phil Ciccone) Daniel Burget was nice enough to comment to me on how the cross-over cable T1 integration works. This method seems cleaner to install. Below are his comments:

Yes, you are correct. I have the T1 line from the Strata plugged into the T1 card on the asterisk system with a T1 crossover cable. Then in Zapata.conf I added the following lines for this connection.

context=from-ctx
switchtype=national
pridialplan=unknown
signalling=pri_net
echocancel=yes
overlapdial=no
immediate=no
echocancelwhenbridged=yes
echotraining=yes
rxgain=-3.0
group=1
callprogress=no
channel => 25-47

Channels 1-24 are my phone company T1, 25-47 go to the Strata. In my Zaptel.conf I have

span=2,2,0,esf,b8zs
bchan=25-47
dchan=48

If you make a correct crossover cable, the light should be green on your asterisk T1 card. Then to call from Asterisk to the Strata I use the following in my extensions.conf (assuming number 6050)

Exten => 6050,1,Dial(ZAP/g1/${EXTEN})

This will move the call to the Strata. If the strata was the only t1 line, you would use channel 1-23 and ZAP/g0 and span=1,1,0,esf,b8zs with 24 as the dchan.

When 6050 is dialed, the strata thinks it is an incoming call from the phone company. You would of course need an extension 6050 in CTX winadmin, and the strata would ring the phone associated with it.

The Strata thinks it is talking to the phone company, the Asterisk box is completely transparent. As to calls from the Strata, you would need to match those in your asterisk dial plan.

I.E. If you dial 96018 from the strata, you would need an Exten => 6018,1,Dial(SIP/6018,15)
In this example you would be calling a SIP phone connected to asterisk.

The 9 assumes you need to dial a 9 to get out of the Strata.

Now going back to my system having the Real phone T1 connected at ZAP/g0 , I used ctx-out as the context, if I wanted to call someone outside the company from the strata I would need something like this in my extensions.conf

ctx-out

;check for internal extension

Include => from-internal

;call outside

Exten => XXXXXX.,1,Dial(ZAP/g0/${EXTEN})
Exten => XXXXXX.,2,Congestion

This would place the call out, and phones connected to the Strata would call out as though it was connected to the phone company.




Coming soon: How to configure Toshiba Strata CTX670 and Asterisk (currently Asterisk@Home) to work with each other properly.
This is being used as a placeholder.

Note: If all seems well with a PRI between Asterisk and a Toshiba Strata PBX for outbound calls, but inbound calls to the Strata doesn't return Call Progress, try setting callerid name to be blank ala:

exten => _X.,1,Set(CALLERID(name)=)






Comments

Comments Filter
222

333Toshiba DK96

by Yoda, Sunday 17 of December, 2006 [08:56:43 UTC]
I have a DK96 with 20 stations connected. I would like to replace with *, but until it is a proven replacement, I need to keep functionality with the DK96. Is this do-able?

kimdotcallis at gmaildotcom
222

333Problem with PRI link

by alozanoff, Friday 03 of November, 2006 [19:43:17 UTC]
I'm using a Sangoma A102 on an asterisk machine connected with a T1 crossover cable to a PRI card on the Strata. My problem is that when i connect the T1 cable the Strata card goes into alarm until you hit a reset button on the card, then it works (or if you connect the cable SLOWLY, yes... i know... wtf?) When the link is established, everything works flawlessly, but when something disconnects (the asterisk going down or the Strata) it goes into alarm and never comes back, the Strata starts shouting about D-channels not avaiable and random stuff about echo cancellation. We have been trying to get this working for MONTHS, any shed of light would be greatly appreciated.

Thanks!
Alejandro
222

333correct

by Volator, Thursday 23 of February, 2006 [10:42:50 UTC]
Just fought with this on a Toshiba to Audiocodes GW configuration. A DTMF 'D' is indeed sent down the analog line. AudioCodes MP FXO gateway can now detect a DTMF tone/series of tones to signal disconnect. You must be running AudioCodes firmware 4.6. Setting must be put into .ini file and uploaded to the gateway.

222

333Disconnect Signalling from DK424

by apicht, Wednesday 21 of December, 2005 [18:31:14 UTC]
I know that the Strata DK424 is capable of sending a DTMF D tone out the analog (RSTU in my case) ports when hanging up. I wonder if it's possible to set up Zaptel/Asterisk to recognize this for disconnect supervision?