I'm posting here in case anyone else runs into this and needs some help. I'll probably update the voip-info Wiki pages on Toshiba integration in a bit. Asterisk 1.6 makes things a bit easier than what is on that page. I'm integrating an Asterisk server with a Toshiba Strata system at my office. Right now, it is driving some VoIP phones (Cisco ATAs with analog phones plugged into them) at a neighboring building (I work for a great company which actually temporarily moved us into another building when the air conditioning broke in ours), to provide phone service during this "mini disaster" - with a Wifi connection to the HQ building and VoIP, we had full services within a day or so, rather than weeks if we had waited for the telephone company. We're now moving the IT department over to the system (Polycom IP450s) permanently, as it has worked so well with the Cisco ATAs. Next we plan on replacing the voicemail/auto-attendant box on the Toshiba with Asterisk. Following that, the next step will be to eliminate the incoming POTS lines into the Toshiba and replace them with an ISDN PRI line going into the Asterisk box. Finally, we expect a slow but study migration of users over to VoIP. The connection between Asterisk and the Toshiba is a set of analog phone lines (the Toshiba provides dialtone). Later, I'll need additional lines where the Asterisk box generates dialtone (when we move to the ISDN) as well. I needed a way of having a Toshiba extension ring the appropriate phone on the Asterisk box. It turns out that the best way to do this is to tell the Toshiba that the Asterisk box is a voicemail server. You need to set some stuff up on the Toshiba to do this. I set up the box in VM Group 2 (group 1 is the legacy VM), and as hunt group 851/901 (users dial 851, but Toshiba knows it as 901). Your configuration might be a bit different. Here's what I did on the Toshiba: - All analog ports for the Asterisk box need to be set up in Toshiba Program 31 with LEDs 06 (VM Group 2), LED 15 (Toshiba Strata VM Integration - send A/D tones), LED 16 (Receive VM ID code), LED 17 (End to End DTMF passing), and LED 18 (Privacy Override Blocking). The hunt group needs to be set up with Toshiba program *40. This means that any Toshiba extension forwarded (either after no answer as a VM box is configured or via standard forward-all-calls) to the Asterisk box (x851) will cause the call to send "91xxx" (xxx is the called extension, the one doing the forwarding) to the Asterisk box, after the Asterisk box answers via DTMF. It sends "92xxx" if you hit the "message" light on a Toshiba phone when it is lit. For some unknown reason, I've also seen "#" or "##" sent before or after the extension 91xxx/92xxx code - I couldn't tell you what that means, I just strip them in the Asterisk dialplan. The Asterisk box can turn the message waiting indicator on/off by sending #63xxx (xxx = extension with the light) or #64xxx. If x851 is called directly, no DTMF is sent in the first few seconds. When the Toshiba system disconnects one of these analog lines (the Toshiba/PTSN user hung up), a DTMF "D" is sent. When an outbound call is made from Asterisk to a Toshiba extension, the Toshiba sends a DTMF "A" when the call is answered. The "D" tone in particular is important, because the Toshiba's analog extension cards don't do any other form of disconnect supervision. To detect the "D" tone (and semi-mute the "A" tone), I set up two features in features.conf. toshibahangup => D,self,Hangup toshibaanswer => A,peer/callee,Noop One thing I discovered was that the "toshibahangup" feature, when enabled, would only work for typical calls that were bridged. They would not work for things like voicemail. The voip-info wiki suggests using a meetme conference that listens for "D", but I think using the feature is cleaner - when it works. So, to make the call bridged, I send it across a dhadi "local" span. My DAHDI configuration - system.conf: fxsks=1-8 dynamic=loc,1:0,31,0 dynamic=loc,1:1,31,0 bchan=9-23,25-39 dchan=24 bchan=40-54,56-70 dchan=55 Channels 1-8 are the analog lines to the Toshiba. I then set up two "E1" spans (they aren't physical spans, but all stay within the system). Basically, channel 9 ends up connected to channel 40. Now, when a call comes in, if digits are provided early, I dial out via one virtual E1 span into the other one. I listen for the disconnect/answer tones on the side facing the Toshiba. The other side connects to the extension, which immediately answer()'s and then dial()'s the destination extension. This makes Asterisk actually bridge the call between the Toshiba and the fake E1, letting it hear the DTMF and process it. Now the "D" tones work and the "A" tones are mostly muted. Outbound calls work a similar way, just in reverse. If nothing is dialed by the Toshiba on an incoming call, it goes to the automated attendant in Asterisk. I don't send this over the fake E1 spans, as some options generate a transfer back to the Toshiba system, which is best done with a "blind" transfer on the Toshiba side - something I'd have trouble doing if I sent it over the fake E1 span. Example: exten => 850,1,Flash() exten => 850,n,SendDTMF(850) exten => 850,n,Hangup() The Toshiba MWI lights are set via an external notify script from voicemail, that initiates a call with the proper codes. Things I'd like, that I don't have, with this current integration are: 1) Knowing who is calling into the Toshiba, when the call is forwarded by the Toshiba. Basically, caller ID. 2) Complete elimination of the "A" tone, which doesn't seem possible if the "D" tone is still sent. I'd be interested in hearing how others may have done this, if you have experience with this. OT: The company I work for is hiring! We're hiring a Senior System Administration and several software engineering positions in Denver. Visit: http://www.localmatters.com/careers -- Joel Maslak -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20100724/4af07405/attachment.htm
On Sat, Jul 24, 2010 at 12:44 PM, Joel Maslak <jmaslak at antelope.net> wrote:> I'm posting here in case anyone else runs into this and needs some help. > I'll probably update the voip-info Wiki pages on Toshiba integration in a > bit.? Asterisk 1.6 makes things a bit easier than what is on that page. > > I'm integrating an Asterisk server with a Toshiba Strata system at my > office.? Right now, it is driving some VoIP phones (Cisco ATAs with analog > phones plugged into them) at a neighboring building (I work for a great > company which actually temporarily moved us into another building when the > air conditioning broke in ours), to provide phone service during this "mini > disaster" - with a Wifi connection to the HQ building and VoIP, we had full > services within a day or so, rather than weeks if we had waited for the > telephone company.? We're now moving the IT department over to the system > (Polycom IP450s) permanently, as it has worked so well with the Cisco ATAs. > Next we plan on replacing the voicemail/auto-attendant box on the Toshiba > with Asterisk.? Following that, the next step will be to eliminate the > incoming POTS lines into the Toshiba and replace them with an ISDN PRI line > going into the Asterisk box.? Finally, we expect a slow but study migration > of users over to VoIP. > > The connection between Asterisk and the Toshiba is a set of analog phone > lines (the Toshiba provides dialtone).? Later, I'll need additional lines > where the Asterisk box generates dialtone (when we move to the ISDN) as > well. > > I needed a way of having a Toshiba extension ring the appropriate phone on > the Asterisk box.? It turns out that the best way to do this is to tell the > Toshiba that the Asterisk box is a voicemail server.? You need to set some > stuff up on the Toshiba to do this.? I set up the box in VM Group 2 (group 1 > is the legacy VM), and as hunt group 851/901 (users dial 851, but Toshiba > knows it as 901).? Your configuration might be a bit different.? Here's what > I did on the Toshiba: > > - All analog ports for the Asterisk box need to be set up in Toshiba Program > 31 with LEDs 06 (VM Group 2), LED 15 (Toshiba Strata VM Integration - send > A/D tones), LED 16 (Receive VM ID code), LED 17 (End to End DTMF passing), > and LED 18 (Privacy Override Blocking).? The hunt group needs to be set up > with Toshiba program *40. > > This means that any Toshiba extension forwarded (either after no answer as a > VM box is configured or via standard forward-all-calls) to the Asterisk box > (x851) will cause the call to send "91xxx" (xxx is the called extension, the > one doing the forwarding) to the Asterisk box, after the Asterisk box > answers via DTMF.? It sends "92xxx" if you hit the "message" light on a > Toshiba phone when it is lit.? For some unknown reason, I've also seen "#" > or "##" sent before or after the extension 91xxx/92xxx code - I couldn't > tell you what that means, I just strip them in the Asterisk dialplan.? The > Asterisk box can turn the message waiting indicator on/off by sending #63xxx > (xxx = extension with the light) or #64xxx. > > If x851 is called directly, no DTMF is sent in the first few seconds. > > When the Toshiba system disconnects one of these analog lines (the > Toshiba/PTSN user hung up), a DTMF "D" is sent.? When an outbound call is > made from Asterisk to a Toshiba extension, the Toshiba sends a DTMF "A" when > the call is answered.? The "D" tone in particular is important, because the > Toshiba's analog extension cards don't do any other form of disconnect > supervision. > > To detect the "D" tone (and semi-mute the "A" tone), I set up two features > in features.conf. > > toshibahangup => D,self,Hangup > toshibaanswer => A,peer/callee,Noop > > One thing I discovered was that the "toshibahangup" feature, when enabled, > would only work for typical calls that were bridged.? They would not work > for things like voicemail.? The voip-info wiki suggests using a meetme > conference that listens for "D", but I think using the feature is cleaner - > when it works. > > So, to make the call bridged, I send it across a dhadi "local" span.? My > DAHDI configuration - system.conf: > > fxsks=1-8 > > dynamic=loc,1:0,31,0 > dynamic=loc,1:1,31,0 > > bchan=9-23,25-39 > dchan=24 > > bchan=40-54,56-70 > dchan=55 > > Channels 1-8 are the analog lines to the Toshiba.? I then set up two "E1" > spans (they aren't physical spans, but all stay within the system). > Basically, channel 9 ends up connected to channel 40. > > Now, when a call comes in, if digits are provided early, I dial out via one > virtual E1 span into the other one.? I listen for the disconnect/answer > tones on the side facing the Toshiba.? The other side connects to the > extension, which immediately answer()'s and then dial()'s the destination > extension.? This makes Asterisk actually bridge the call between the Toshiba > and the fake E1, letting it hear the DTMF and process it.? Now the "D" tones > work and the "A" tones are mostly muted.? Outbound calls work a similar way, > just in reverse. > > If nothing is dialed by the Toshiba on an incoming call, it goes to the > automated attendant in Asterisk.? I don't send this over the fake E1 spans, > as some options generate a transfer back to the Toshiba system, which is > best done with a "blind" transfer on the Toshiba side - something I'd have > trouble doing if I sent it over the fake E1 span.? Example: > > exten => 850,1,Flash() > exten => 850,n,SendDTMF(850) > exten => 850,n,Hangup() > > The Toshiba MWI lights are set via an external notify script from voicemail, > that initiates a call with the proper codes. > > Things I'd like, that I don't have, with this current integration are: > > 1) Knowing who is calling into the Toshiba, when the call is forwarded by > the Toshiba.? Basically, caller ID. > 2) Complete elimination of the "A" tone, which doesn't seem possible if the > "D" tone is still sent. > > I'd be interested in hearing how others may have done this, if you have > experience with this. > > OT: The company I work for is hiring!? We're hiring a Senior System > Administration and several software engineering positions in Denver. > Visit: http://www.localmatters.com/careers > > -- > Joel Maslak > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > ? ? ? ? ? ? ? http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > ? http://lists.digium.com/mailman/listinfo/asterisk-users >Below is an article I was writing about our Toshbia and Asterisk integration. I'm currently in the phase out period of the Toshiba system and only have about 20 extension left. I have 150 Polycom phones and 50 Snom phones. The Snom phones were our first purchase and they just don't compare to the Polycoms. The Snom speakerphone is terrible and the phone interface is laggy. In order to make the transition to Asterisk and SIP phones seamless I had to integrate the current Toshiba Strata CIX PBX with over 150 digital phones. Toshiba utilizes StrataNet to connect multiple Toshiba Strata phones systems together. StrataNet is essentially QSIG signaling over PRIs. Asterisk also supports QSIG with LibPRI and DAHDI. Using a Sangoma A104D PCI Express card a trunk was created between them. To give you an overview the Asterisk box is connected to the phone provider with 3 PRIs for local and long distance calls and 2 PRIs for long distance only calls. The Toshiba is then connected to Asterisk with 4 PRIs. Three of these PRIs are used for external calls and one is used for internal calls. This was done due to a limitation on the Toshiba. At minimum you would need 2 PRIs between Asterisk and Toshiba. In order for any employee to have a softphone along with a SIP or digital phone all calls must pass through Asterisk and use Follow Me to dial back to the Toshiba. The initial configuration was with all 4 PRIs between the Toshiba and Asterisk box in the same Outgoing Line Group (OLG) and Incoming Line Group (ILG). However with the OLG set to cut-through mode, the redial button wasn't functional and the SMDI call accounting data was wrong. The Toshiba was truncating the digits, probably due to it looking for an extension of 5 digits or less. Setting the OLG to senderized mode made dialing an internal extension take 10 seconds for the time out to occur. Grabbing a pool line or pressing 9 for Least Cost Routing (LCR) to dial an internal extension cut this down to 5 seconds, but it still wasn't acceptable. The employees were used to the Toshbia dialing immediately and not having to press 9 for internal extensions. The final configuration I came up with was leaving all 4 PRIs in the same ILG. I created 2 OLGs, the first with 3 PRIs for LCR to use for external calls. This one was set to senderized mode. The other OLG had the last PRI for StrataNet to dial internal extensions and was set to cut-through mode. Make sure to set the digit modification for the StrataNet route to delete the first 2 digits. This is needed as Toshiba appends the network node id. Now employees have the best of both configurations. Internal extensions dial immediately and external numbers aren't truncated. On the Asterisk side I made sure the StrataNet PRI was plugged into the highest channel PRI of the 4. Calls from Asterisk to Toshiba will fill the first 3 PRIs before rolling into the single PRI for internal calls. The Toshiba extensions were originally 4 digits so I changed them all to 5 digits with a 2 in front so Asterisk would handle the 4 digit extension when dialed. You need to add all the 4 digit extensions to the StrataNet DN page. This makes Toshiba aware that these extensions are on the Asterisk box. Back on the Asterisk side create all the 4 digit extensions. Add a Follow Me for each extension to include the 5 digit extension on the Toshiba followed by a #. You will also need to create an outbound route for 2NXXX to go to the Toshiba trunk. You can now dial the 4 digit extension on either Asterisk or Toshiba and both SIP and Toshiba phones will ring. If you need more details on the Toshiba side of the configuration you can get a good idea of the StrataNet settings by referencing <a href="http://http://www.avaya.com/usa/resource/assets/applicationnotes/toshibaqsig.pdf">"Configuring T1/QSIG Trunk between Avaya Communication Manager and Toshiba Strata CIX670</a>". Ryan
Kevin P. Fleming
2010-Jul-25 09:20 UTC
[asterisk-users] Integration with Toshiba Strata DK424
> So, to make the call bridged, I send it across a dhadi "local" span. My > DAHDI configuration - system.conf: > > fxsks=1-8 > > dynamic=loc,1:0,31,0 > dynamic=loc,1:1,31,0 > > bchan=9-23,25-39 > dchan=24 > > bchan=40-54,56-70 > dchan=55 > > Channels 1-8 are the analog lines to the Toshiba. I then set up two > "E1" spans (they aren't physical spans, but all stay within the > system). Basically, channel 9 ends up connected to channel 40.You could probably achieve the same effect using chan_local with the '/n' option to keep it in the middle of the path, which would keep the entire call inside Asterisk and simplify the configuration a bit. -- Kevin P. Fleming Digium, Inc. | Director of Software Technologies 445 Jan Davis Drive NW - Huntsville, AL 35806 - USA skype: kpfleming | jabber: kfleming at digium.com Check us out at www.digium.com & www.asterisk.org