VoiceGuide IVR Software Main Page
Jump to content

DTMF Tones To Another IVR

Recommended Posts

Voiceguide,

 

We have just ordered an additional 96 lines to our current 96 line + dialer license. The dialogic cards are not installed yet. Will you need a different Unique ID or can you process our order without the board numbers?

 

 

Our support question is about DTMF'ing tones to an external payment IVR. The payment ivr accepts the following format [phone*language#] which is stored in my RV variables $RV[TN] and $RV[Lang]. This IVR will only accept the tones after a "chirp". I will be dialing out and conferencing to this IVR which is a 1-800 number.

 

Can you tell me the best way to do this?

 

Thanks again,

Brian

Share this post


Link to post
We have just ordered an additional 96 lines to our current 96 line + dialer license. The dialogic cards are not installed yet. Will you need a different Unique ID or can you process our order without the board numbers?
If the order is an add-on to existing system then we can use details on our records to issue the new code.

 

Our support question is about DTMF'ing tones to an external payment IVR. The payment ivr accepts the following format [phone*language#] which is stored in my RV variables $RV[TN] and $RV[Lang]. This IVR will only accept the tones after a "chirp". I will be dialling out and conferencing to this IVR which is a 1-800 number.
So VG will be dialling out to another system and you would like for VG to play some DTMFs after the system receiving the call plays a "chirp", correct?

 

There are two ways to do this:

 

1. Tone Detection:

The detection of the "chirp" will involve defining the custom tone (in ConfigLine.xml file) which would match the "chirp" frequencies, and then in the script branching to a Play module upon this tone event being present.

 

2. Delay before DTMF:

Just have the script pause for a while before playing the DTMFs. This relies on the other system always answering playing the "chirp" within a certain time after answering the call, but usually the timing of such "chirps" is pretty consistant. Give yourself a margin of a few seconds just in case.

 

The above covers the outgoing leg of call. To do a Dial and Conference with some other existing call on system would now need to be done using VG's Bridge_Connect COM command (immediately after the DTMFs are played).

Share this post


Link to post

Still not understanding fully. I have a script running that bridges (dial out and conference) to a 1-888-666-xxxx number for payments. When the calls are connected, the external Payment IVR sends a chirp out which is about a 1/2 delay which i will just use the pause. At this time VG needs to DTMF 2 variables to the payment ivr. What I do not understand is how to send the dtmf on the outgoing leg after the call is connected.

 

I can not use the transfer on success because dtmf will only play after the call hangs up. I cant specify the outgoing leg since it is random and we are running 184 lines. Which of most are being used.

 

They have given us a test number that requires a pin ... then it plays the "chirp" which we then have to dtmf the customer telephone number and language.

 

Whats the best way to enter a pin then dtmf 2 variables to this external IVR ?

 

Thanks again

Share this post


Link to post

Is there a way to run a vbscript that has the same functionality as a transfer module for dialout and conference. Maybe I can create that connection then withing the same vbs play the rv dtmf's on the second leg of the call.

Share this post


Link to post

Sorry, I know I am posting a lot of responses but we need to get this up by 8 a.m. (Orlando FL) time if possible.

 

Attached is a test script for what we are trying to do. I have tried 2 different ways.

 

1. Going from WAIT -> Run VB Script Speedpay

2. Going from WAIT -> WAV DTMF

 

Both of them did not send the tones in the time allowed. The WAV DTMF module did play the tones but extremely slow.

 

I have sent an email to support@voiceguide.com with the actual number I am dialing to. If you get a chance, you will hear the "chirp", couple second delay waiting for the dtmf, then a prompt to select language if nothing is received.

 

Thank you so much for your help. This part of our IVR is the reason for adding the additional 96 lines. I will be checking your support page and my email all night if you have any input.

 

Thanks

Brian

pay.vgs

Share this post


Link to post
Whats the best way to enter a pin then dtmf 2 variables to this external IVR ?

The best approach would probably involve using a "Send Phone Message" module to load a new outgoing call into the system. Specify as RVs the Pins/Codes/Variables which the outgoing call will use to play the corresponding DTMFs, and well as the LineId of the line which initiates the outgoing call.

 

The outgoing call would need to run a VG script which plays the various DTMFs after connecting (with appropriate delays in between them) and then calls the Bridge_Connect COM function to conference/bridge the two calls together.

 

As you are using ISDN lines you would get a precise indication from the Telco when the outgoing call was connected. You can use Play modules to send DTMF tones. While the call is made and DTMFs are being sent the 1st leg of the call can just play a "Please hold" type file/music.

 

 

 

PS. the reason why the script you attached in last post played the DTMFs slow was because you used a comma in between each of the digits. A comma represents a 1 or 2 second delay. There is usually n need ot specify any delay between DTMFs. Automated systems can detect DTMF tones sent rapidly.

 

 

PSS. We have integrations with many merchant gateways (see here). So yo have an option to do the CC and payment amount etc. capture in VG and do the merchant verification directly form VG.

Share this post


Link to post

So scratch the idea of doing the transfer module then running this vbscript on the second leg?

 

set vg = CreateObject("VoiceGuide.CommandLink")
vg.Play_Start $RV[Conf_LineID_1], "2125297394*1#"
set vg = Nothing

 

I see how we could use the Send Phone Message module. My question is when I use the Bridge_Connect COM function. Which lines should be connected.

 

The customer travels though our IVR then decides to make a payment, which calls the "send phone message" module, the send phone message dials out and runs another vgs script which waits 4 secs for the "chirp", sends out dtmf via play module and then connects the caller to the number dialed via vbs script below.

 

 

If I have this correct. How do I specify to connect the original caller to the payment ivr that has already accepted the dtmf tones?

 

 

set vg = CreateObject("VoiceGuide.CommandLink")
vg.Bridge_Connect $RV_LINEID, iSecondLineId
set vg = Nothing

 

Im thinking the $RV_LINEID is the connected dtmf'd payment ivr. Can I send the line ID of the original call through the phone message module?

Share this post


Link to post
Can I send the line ID of the original call through the phone message module?
Yes. Just as another Result Variable. Just like you would send through the values of what PIN and Codes etc that need to be played.

 

The RVs specified in the Send Phone Message module would look something like this:

 

[PIN]{$RV[ThisCustomersPin]}

{$RV[ThisCustomersCode]}[LineIdOfOriginalCall]{$RV_LINEID}

 

where $RV[ThisCustomersPin], and $RV[ThisCustomersCode] hold the values of the PIN and code (retrieved form some database or entered by caller etc).

 

And then in the script ran when the outgoing call is answered you can use these RVs:

 

$RV[PIN]

$RV[Code]

$RV[LineIdOfOriginalCall]

 

so the VBScript which bridges the two calls would look like this:

 

set vg = CreateObject("VoiceGuide.CommandLink")

vg.Bridge_Connect $RV_LINEID, $RV[LineIdOfOriginalCall]

set vg = Nothing

Share this post


Link to post

I am able to connect and bridge the calls together.

 

Would you recommend a 'DoNothing' loop after the Send Phone Message on the first script?

 

On the second vgs script after the vb script that bridges the calls, I have another 'DoNothing' loop. The only problem with it is that it does not detect when the caller hangs up. It will remain in a continuous loop.

Share this post


Link to post

By default the outgoing call woud not be informed of the hangup etc. events occurring on the original leg as it is a totally separate call (since it was started using the "Send Phone Message" module).

 

In systems like you have here that's not usually a problem as the outgoing leg will just end itself when the system/person it dialled hangs up (and as a backup you can have a long timeout to cover against the possibility of the remote system not hanging up itself).

 

 

If you however want to hangup the outgoing leg immediately when the original caller hangs up then you need to have the script running on original incoming leg of call to issue a "Line_Hangup" COM command to the outgoing call.

 

This means that the original incoming leg of call must know what is the LineId of the outgoing leg of call.

The outgoing leg of call can inform the incoming leg of call as to what it's LineId is at the same time as it issues the Bridge_Connect COM command. Use the Rv_Set COM command from the outgoing script to set an RV on the incoming leg of call.

 

This is what your VBScript on outgoing leg of call would look like now:

 

set vg = CreateObject("VoiceGuide.CommandLink")

vg.RvSet $RV[LineIdOfOriginalCall], "LineIdOfOutgoingCall". "$RV_LINEID"

vg.Bridge_Connect $RV_LINEID, $RV[LineIdOfOriginalCall]

set vg = Nothing

Share this post


Link to post

and now the incoming leg of call would form it's OnHangup script run this vb script:

 

set vg = CreateObject("VoiceGuide.CommandLink")

vg.Bridge_Disconnect $RV_LINEID, $RV[LineIdOfOutgoingCall]

vg.LineHangup $RV[LineIdOfOutgoingCall]

set vg = Nothing

 

note how we call Bridge_Disconnect first. It's a good idea to do this explicitly, although VG is designed to ensure that any bridges/connections are reset at call hangup time.

 

Also note that you should pre-define $RV[LineIdOfOutgoingCall] to hold some value (an invalid one eg : 10000) to ensure that the VBScript will not cause a syntax error if it is ran in cases where the outgoing leg of call did not set $RV[LineIdOfOutgoingCall].

Share this post


Link to post

In addition to the loop issue. It takes about 25 seconds to connect to the dialed number. For about 20 seconds line status shows Dialing "888xxxxxx" then for another 5 seconds it displays "AM - wait for end of welcome message".

 

Is there a way to skip the wait for the end of the welcome message?

Share this post


Link to post
For about 20 seconds line status shows Dialing "888xxxxxx"
Looks like that's just how long it takes for the 888xxxxxx number to answer the call... you can post some traces if you'd like and we can confirm how long after dialing the "CONNECT" message is sent by network.

 

then for another 5 seconds it displays "AM - wait for end of welcome message".

Is there a way to skip the wait for the end of the welcome message?

You would need to specify "DISABLE" as the Answering Machine message - you will need to load the new calls using the Dialer_OutDialQueAdd COM command to do this.

Share this post


Link to post

Here is the trace .. Please remove attachment when read.

 

Thanks again for all your help.

Edited by SupportTeam

Share this post


Link to post

Trace shows that the outgoing call is

 

204130.90 7 dial making call tel[918xxxxxxxxx] ann[NONE] vgs[D:\Program Files\VoiceGuide\Scripts\Speedpay2.vgs] am[D:\Program Files\VoiceGuide\Scripts\Speedpay2.vgs] OnHangup[] rv[deleted]

204130.90 7 script interpretor: VgMulti v6.0.3081

 

You need to set the Answering Machine message to be IGNORE

 

use the Dialer_OutDialQueAdd COM command to load the calls. Then you have access to setting the Answering Machine message.

 

You should also update to latest version of VG for Dialogic.

Share this post


Link to post

Dim vg

set vg = CreateObject("VoiceGuide.CommandLink")

vg.Dialer_OutDialQueAdd "918885568621", 0, 0, 0, "", "", 1, "", "D:\Program Files\VoiceGuide\Scripts\Speedpay2.vgs", "", "[TN]{$RV[TN]}[LINE]{$RV_LINEID}", 0, 0, 0, ""

set vg = Nothing

 

we get an "Argument are not optional "Dialer_OutDialQueAdd"

Share this post


Link to post

Dim vg

set vg = CreateObject("VoiceGuide.CommandLink")

vg.Dialer_OutDialQueAdd "918885568621", 0, 0, 0, "", "", 1, "", "D:\Program Files\VoiceGuide\Scripts\Speedpay2.vgs", "IGNORE", "[TN]{$RV[TN]}[LINE]{$RV_LINEID}", 0, 2, 0, "", ""

set vg = Nothing

 

 

We have tried with the "IGNORE", "", and "D:\Program Files\VoiceGuide\Scripts\Speedpay2.vgs"

 

Is there a way to run the Speedpay2.vgs script as soon as the call is connected? It seems as though it detects it as an answering machine and waits. This is causing 25 of dead air for the customer calling.

 

 

This is how the External IVR is set up. As soon as the call is made there is a "chirp", then we are supposed to send the dtmf. If there is no dtmf it will wait about 5 seconds and play "please press 1 for english or 2 for spanish". AFTER that is played we are sending the DTMF. Is there a way to "not wait for the messages to end"?

Share this post


Link to post

IT WORKED!!! We still have about 12 sec "dead air".

 

Is there a way to play on hold music until the 2nd IVR picks up?

Share this post


Link to post
We still have about 12 sec "dead air".
Please post at trace of outgoing call (.ZIPed). We can then see how much time each action took. Please remove any information from trace which you do not want in public domain. Posted traces ought to stay posted for benefit of other readers.

 

Is there a way to play on hold music until the 2nd IVR picks up?
Just have the script on original leg of call play a sound file until the Bridge_Connect call is made.

Share this post


Link to post

We have placed an order for an additional 96 lines + dialer last week. Can someone please give me an update on the status of the order.

 

Thanks

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×