[Asterisk-Users] Transferring Using Flash

Chris Shaw chriss at precisionpump.net
Thu Jan 26 16:16:23 MST 2006


Will Szopko wrote:
> Greetings.
>
> I am attempting to configure a system based on Asterisk 1.2.3 to be used
> as a backup should our aging voice mail/auto attendant system fail, which
> seems increasingly likely given its advanced years. The first part of this
> task is getting the auto attendant feature to work correctly, which I
> would have figured to be relatively easy. I have successfully built a menu
> structure, but cannot get Asterisk to transfer calls back to the legacy
> PBX (Fujitsu F9600). In essence, all I require Asterisk to do is:
>
> 1) read the extension digits entered by a caller;
> 2) flash the line [Flash()];
> 3) dial the extension using DTMF [SendDTMF(${EXTEN})]; and,
> 4) hang up [Hangup()].
>
> Unfortunately, I've not been able to make this work and was hoping someone
> might tell me where I'm going wrong. The problem appears to be in the
> "flash" portion of the above procedure.
>
> Asterisk Server Setup
> -------- ------ -----
>
> - Ubuntu Linux 5.10 (Breezy Badger) for AMD64
> - Linux 2.6.15 kernel (custom-built)
> - Asterisk 1.2.3 (built from source)
> - Zaptel 1.2.2 (built from source)
> - Digium TDM2402E (8 FXO ports)
>
> Legacy PBX Hookup
> ------ --- ------
>
> The Asterisk server is connected to our Fujitsu F9600 via 4 analog
> connections with the 9600 providing dial tone.
>
> What I Want to Happen
> ---- - ---- -- ------
>
> 1) Call comes into legacy PBX.
> 2) PBX transfers call to Asterisk.
> 3) Asterisk goes through greeting and offers to take an extension to which
> to transfer.
> 4) Caller enters transfer.
> 5) Asterisk transfers the call back to the PBX using the steps described
> above.
>
> Asterisk Configuration
> -------- -------------
>
> /etc/zaptel.conf
>
> fxsks=1-4
> loadzone=us
> defaultzone=us
>
>
> /etc/asterisk/zapata.conf
> [trunkgroups]
>
> [channels]
> ; hardware channels
> ; default
> usecallerid=no
> hidecallerid=yes
> callwaiting=no
> threewaycalling=yes
> transfer=yes
> cancallforward=yes
> echocancel=yes
> echotraining=yes
> busydetect=yes
> callprogress=no
>
> ; define channels
> context=greeting
> signalling=fxs_ks
> channel => 1-4
>
>
> /etc/asterisk/extensions.conf
>
> exten => _[45]XXX,1,Flash()
> exten => _[45]XXX,n,SendDTMF(${EXTEN})
> exten => _[45]XXX,n,Hangup()
>
>
> What Happens
> ---- -------
>
>     -- Executing Flash("Zap/4-1", "") in new stack
> Jan 26 16:10:17 WARNING[4564]: chan_zap.c:3907 zt_handle_event:
> Ring/Off-hook in strange state 6 on channel 4
>     -- Flashed channel Zap/4-1
>     -- Executing SendDTMF("Zap/4-1", "4424") in new stack
>     -- Executing Hangup("Zap/4-1", "Zap/4-1") in new stack
>
> Upon executing the Hangup command the phone goes dead without the transfer
> having been made. The one odd thing here is the warning about the "strange
> state 6" on channel 4.
>
> Other Things I've Tried
> ----- ------ ---- -----
>
> 1) I've tried a phone plugged directly into one of the lines on the PBX,
> did a flash on the phone, and successfully transferred a call with no
> problems.
>
> 2) I swapped out the TDM2400 and tried a TDM400. It does the same thing as
> above, but without the "strange state" warning.
>
> 3) I tried Asterisk 1.0.10. It does the same thing.
>
> If anyone has any ideas of what may be going on here, I'd very much
> appreciate some assistance. As I'm learning about Asterisk I am finding a
> lot to like, but am getting frustrated that I cannot make this work.
> Thanks for your help.
>
> - Will
>
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> Asterisk-Users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
>
>   
Don't get discouraged!

It looks like you've got the right idea. What might be happening is that 
Asterisk isn't waiting long enough for the PBX/KSU to respond to the 
flash. What you might try is inserting a wait(1) in between your flash() 
and your SendDTMF() like this...

exten => _[45]XXX,1,Flash()
exten => _[46]XXX,2,Wait(1)
exten => _[45]XXX,3,SendDTMF(${EXTEN})
exten => _[45]XXX,4,Hangup()

If that doesn't work try chaing wait(1) to wait(2).

The other thing that might be happening is that the flash is too short 
for your PBX/KSU to recognize it. If your PBX/KSU supports it, you could 
try changing the flash timing through system programming. Nortel 
NorStars call it "Link Time" other systems call it "Reach Through". Try 
setting the timing between 400 and 600 ms and also keep the Wait(1) in 
the dialplan to give your PBX/KSU enough time to handle the flash.


    Hope this helps you!
    -Chris

-- 
Chris Shaw
IT Manager
Precision Pump, Inc
150 N Main St
Banks, OR 97106

Phone: 503-324-2361
Fax: 503-324-2203
E-Mail: chriss at precisionpump.net




More information about the asterisk-users mailing list