VoiceGuide IVR Software Main Page
Jump to content

Inbound Technical Support Type Application

Recommended Posts

Hi Team,

 

I have a project were I could use components from the chat line script example, since my project is not identical to the chat line example, I have a few lingering questions for you, here is my scenario (high level view):

 

  • User pre-pays for minutes via a VG driven IVR, once the purchase is completed, then
  • User is assigned a unique pin number. Available minutes are stored in my company's database and associated with the user's pin number
  • User calls in my company's telephone number to access an automated Knowledge Base DB (KB DB) for a low per minute charge rate
  • If the user is not satisfied with the answer obtained from the KB DB, the user has the option to transfer to a live technical support staff for a per minute charge rate.

Here are my VoiceGuide related questions:

 

  • Which VoiceGuide module, would I use to transfer the user (on going call) to the live operator number (note: the live operator number could be a mobile, land line or a web phone)?

  • Which VoiceGuide module would I use to monitor the minutes available for a currently connected user?

  • In order to retrieve the current minute balance, i would like to use a unique user id the UUID will be saved into a variable $RV[uuid], with that in mind, is the value assigned to the $RV[uuid] persistent for the duration of a particular call? thus, can I rely on the $RV[uuid] value for each instance (per each call)?

  • Which VoiceGuide module would I use, if I would like my system to notify the user that his/her minutes are low, without disconnecting the current call?

  • While a user is engaged on a phone conversation, if their minutes balance is low, the user will get a low balance notification with the option to buy/add more minutes. If the user opts to pay for more minutes, is there a method/module in VoiceGuide, where the current conversation placed on hold, allowing the user to pay for more minutes without hanging up their current call, once payment is successful, they are returned/resume their current call session?

Regards,

-r

Share this post


Link to post
Which VoiceGuide module, would I use to transfer the user (on going call) to the live operator number (note: the live operator number could be a mobile, land line or a web phone)?

The Transfer Call module. Please see: http://www.voiceguide.com/vghelp/source/html/modxfer.htm

 

Which VoiceGuide module would I use to monitor the minutes available for a currently connected user?

You would need to make periodic checks for length of current call at suitable placed throughout the script (eg just before the caller is played some menu), and if the time is expired then take caller to a different part of script.

 

is the value assigned to the $RV[uuid] persistent for the duration of a particular call?

Yes. The created $RVs persist for length of call (and during the "after end of call" script).

 

Which VoiceGuide module would I use, if I would like my system to notify the user that his/her minutes are low, without disconnecting the current call?

Upon detecting the minutes are low you would jump to a Play module and play the appropriate announcement to caller.

 

While a user is engaged on a phone conversation, if their minutes balance is low, the user will get a low balance notification with the option to buy/add more minutes. If the user opts to pay for more minutes, is there a method/module in VoiceGuide, where the current conversation placed on hold, allowing the user to pay for more minutes without hanging up their current call, once payment is successful, they are returned/resume their current call session?

Yes, this is possible. This gets a bit more involved and the approach is different depending on whether you just want a single DTMF response from caller or whether you need to take caller through another script, and whether the 2nd party is just played a message or whether they too are going to be sent through a script. You basically would need to use the COM/WCF/Remoting interface to issue appropriate commands to both channels to break the 'Dial and Conference' connection (without hanging up the calls) and then to play sound files or start scripts etc. This would be done form a 'Run VBScript' module from the original script.

Share this post


Link to post

Please see inline:

 

You would need to make periodic checks for length of current call at suitable placed throughout the script (eg just before the caller is played some menu), and if the time is expired then take caller to a different part of script.

 

Once a user (caller) engages on a conversation, I might not have interruptions points (or break points) where I can perform the above periodic check. In the possible absence of interruption points, would the following implementation be also valid?

 

At the begining of a call, use the "Database Query" module, to retrieve the user's account time balance, then use the "Time Switch" module to monitor the time being consumed by the current call, in comination, then with the "Evaluate Expression" module to evaluate on whether the user has exceeded their account time balance, to then take the caller to an specific path if the caller exceeded their time balance?

 

Could the above evaluation occur transparently (in parallel) while the caller is engaged on a conversation?

 

 

Upon detecting the minutes are low you would jump to a Play module and play the appropriate announcement to caller.

 

Can the play module run in parallel, while the caller is engaged in a conversation, without disconnecting the current call?

 

 

You basically would need to use the COM/WCF/Remoting interface to issue appropriate commands to both channels to break the 'Dial and Conference' connection (without hanging up the calls) and then to play sound files or start scripts etc.

 

Would it be possible to obtain samples that will allow me to understand details about the "appropriate commands to both channels to break the 'Dial and Conference' connection (without hanging up the calls)". I would like to understand before hand, what the commands are and the complexity of their implementation.

Share this post


Link to post
use the "Time Switch" module to monitor the time being consumed by the current call, in comination, then with the "Evaluate Expression" module to evaluate on whether the user has exceeded their account time balance, to then take the caller to an specific path if the caller exceeded their time balance?

 

Could the above evaluation occur transparently (in parallel) while the caller is engaged on a conversation?

Time Switch has a minute resolution, and you probably want resolution down to a second. The Evaluate Expression module should be sufficient. See: $RV_CALLLENGTH save its value in an $RV before start of conversation and then length of conversation is: $RV_CALLLENGTH-$RV[startTime]

 

If path Success is defined in the Transfer Call module then that path will be taken immediately when transfer is made, and the script is ran while the conference is active.

 

Can the play module run in parallel, while the caller is engaged in a conversation, without disconnecting the current call?

Yes. you can play messages to either party while they are in conference. You will need T1/E1 ISDN to do this. It will not work on analog cards.

Not sure whether it can work on VoIP based systems,

 

Would it be possible to obtain samples that will allow me to understand details about the "appropriate commands to both channels to break the 'Dial and Conference' connection (without hanging up the calls)".

The API calls are

 

Bridge_Disconnect(string sDevice1, string sDevice2)

Bridge_Connect(string sDevice1, string sDevice2)

 

The device names are the Dialogic "dti" device names for the channels. The Dialogic "dti" device names for the conference are saved in $RVs when the conference is first set up. Look in the vgEngine trace to see what $RVs are created.

 

If you want to disconnect the conference and then have caller go to a pay script and 2nd leg be played a sound file then you would call:

 

Bridge_Disconnect("$RV[Conf_ThisLeg_Device]", "$RV[Conf_OtherLeg_Device]")

Script_Gosub($RV_LINEID, "pay.vgs", "PayMidCallMsg", "", "", "ResumeCallMsg"

Play_Start($RV[$RV[Conf_OtherLeg_LineId], "wait.wav"

 

And after payment you would need to call:

 

Bridge_Connect("$RV[Conf_ThisLeg_Device]", "$RV[Conf_OtherLeg_Device]")

 

and conference call would continue.

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
×