Integration with legacy PBX

I am using TRIXBOX Asterisk integrate with legacy PBX.
My intention is to use Asterisk as my IVR, so whoever call in will lead to Asterisk’s IVR.

Connection layout:
PSTN -> Legacy PBX -> (4 port FXO) Asterisk
(Asterisk 4 FXO ports connected with legacy PBX extension)

Most phone connected to legacy PBX, with few SIP phone with Asterisk.
Whenever people call-in from outside world, they will lead to IVR. (I have no question on this part)
Then, the person call-in shall key in extension number, and Asterisk will transfer the call accordingly.

All phone extension connected to Legacy PBX had configured in Asterisk with (eg. ZAP/g0/5). That is, Asterisk will use free channel to call the extension and bridge to call-in person.

As a result, there’s already 3 channels engage in this way, i.e. Asterisk IVR extension (eg. ext 1), free channel that connected to Asterisk (eg. ext 2), extension to be transfered (eg. ext 5).

Supposely when using legacy PBX, when people call-in, operator pick up, (1 extension in used, ext 0), then operator transfer the call by using hook flash to the extension requested (ext 0 released, and eg, ext 5 hook up).
=> total 1 channel engage.

My wonder when integrate with Asterisk, is there a way to use hook flash to transfer the call by the IVR ?
That will be like: people call in to IVR (ext 1), then transfer to extension connected to legacy PBX (ext 5) using hook flash. Ext 1 will be released. Thus, finally 1 channel engaged.

I have search through the net , and could not find any solution to this. Wonder if it possible, as I understand the IVR will refer to dialparties.agi, and all it use is Dial method.
To use hook flash, normally what I have found shall be something like :

hope anyone have idea could reply me :smile:


I’ve done this before. First, you need to use EXTENSION ports on your PBX to connect to FXO ports on *. Then you have the rest right, do Flash(), SendDTMF(where they go) and Hangup().

I wrote an article here … +Voicemail on doing this with an avaya pbx. look at the code sample, under aaextens, it may help

Also remember that SendDTMF uses ‘w’ to create a pause, the , goes to the next field. so you may want SendDTMF(5w250) to send 5 (.5sec pause) 2-5-0.

Thanks a lot , the page was useful .

Hello I am trying to do the same setup, to integrate a asterix now box with a panasonic legacy pbx
My first goal is that the asterisk system works as the IVR of the office, I have make it work but the systems uses a lot of resorces, I read that using the flash() command and trasnfering the call to a extension is the way to go, but I cant quite make it work, does any one can post some basic instructions on how this can be made.
Thanks in advance
Alejandro Jourdan