Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

VoicemailPro and Database integration 3

Status
Not open for further replies.

vladcbv

IS-IT--Management
Jul 20, 2015
225
RO
Hi Guys,

I am using IPO 9.1 and VoiceMail Pro 9.1..
I created a database in Microsoft Access based on some examples I found online.
What I want to do for now is:
- get the DTMF and compare it with a valuea in DB.
- if they are equal then transfer to ext A else transfer to ext B .. I have also recorded voice at every step of the callflow to see exactly what happens.

It seems I simply can't find a way to do that. For you to better understand what I am saying, this is what I have:
dbCallFlow_vx1asw.jpg


In the Specific Tab of DataBase Execute I have
"
SELECT ISBN
FROM OrderBooks
WHERE (ISBN = "$KEY") ;

"

The table looks like this :
table_j5ke1n.jpg


And the condition is set to Value A $DBD[0] Is Equal To Value B 1001.

So when I dial the IVR I get to the point where I type in the DTMF keys and then it follows the callflow and instead of transfering me to an extension it simply closes the call.

Any help I can get please? :)
Thank you ! :D
 
Allrighty then! :) I will remember that! :)
 
Ok,

So I am back with another question.
Everything works well for my call flow.
At the end of it, a data is inserted into a table. After that I want the call to be disconnected.

disconn_q4mpxv.jpg


The problem is that it doesn't disconnect.. it stays connected to the call until the user has to close it.
Any clues why ? :-?
 
Best guess: You built it in a Queued or Still Queued.

Can't disconnect in those, you need to make the call GoTo or Transfer to a normal module. (Or even transfer into thin air - that kills the call too)

Kind regards

Gunnar
_______
B.U.B.F

2cnvimggcac8ua2fg.jpg
 
Strange.. I have transfered to a non existing ext.. and the call didn't close..
The thing is I have called from my phone, to a number asociated with a SIP trunk.. it may be something in the IPO that I have to check :-?
 
Maybe it's haunted? Check if Dracula is out of his coffin :)

Or you could make a simple module to check if it disconnects there.






Kind regards

Gunnar
_______
B.U.B.F

2cnvimggcac8ua2fg.jpg
 
:)
I will come back tomorow with an update.. Out of office right now :)
 
Hmm.. I have tried that.. I have also tried to transfer it to a valid ext. It does transfer and if I answer everything works well.. after I hang up, the call is still connected. I used 3cx and my mobile phone for this.. I will investigate more and come back with other answers :)
 
After further investigation I found that this is a problem from my provider because IPO disconnects the call..

Until I fix this, I want to try something else..
When a user enters his 5 digit ID, he must press #/*. I have created a menu with option ?????* or ?????# and as soon as I press the */# signs the IPOffice simply ends the call..
I am also thinking of using some string manipulation...

Any sugestions about this ? :-?
 
Just use ????? Without * or # added. So the caller has to enter just the five digit ID.
 
Hey, thanks for the tip:).

Eventually I was able to pull it through.. The second part was a litle bit more complicated, since I had to use $ instead of "????.." So what I did was to copy the first digits until it encounters "*" and use that number to insert into the DB file..

 
You can also just use $. The caller has to finish the input by pressing the # key or just has to wait for five seconds without #
 
Well the thing is after the callered pressed # the call ended.. and I didn't want that.. I just wanted to read chars until # or *, then move on to next step.

I only managed to do so with the solution I provided above..
 
If it disconnects, the flow is broken.

But you're right about String manipulation, that will take only the portion you need off the whole entry dialled by the caller.

Kind regards

Gunnar
_______
B.U.B.F

2cnvimggcac8ua2fg.jpg
 
So I was able to find a resolution, like I said.. :)
I would tell you guys my requirements for this project and post the callflow logic.
If you have any ideas on how to make it more efficient, that will be great! :)

The caller dials in. He must input a subscription number followed by the * sign. After he must input an index. If the index is smaller the the previous index input last month, then he must enter it again, followed by the * sign.. Then the DB must be updated.

Ok so lets get started:

Part 1. Getting the subscription number

part_1_ayywas.jpg


[ul]
[li]The caller dials in and he is prompted with the voice.[/li]
[li]He inputs the 5 digits subscription nr. if he does not confirm it with * he will get prompted again, and again.[/li]
[li]Then $CP4:$KEY to store the input value and I test to see if it dials *..[/li]
[li]Then I SELECT the collumns that I want from DB and Retrive the next item in the list.[/li]
[/ul]

Part 2. Getting the index number.

This got a little tricky, since I did not have a finit number of input digits. I had to wait until * again and then continue with callflow.

part_2_nxsbcs.jpg


[ul]
[li]Ok so after he enters the index I store the $KEY to CP6. Then I call the Module LastChar where I test if the last char is *.[/li]
[li]If not * then caller is propted again to enter the index followed by *.[/li]
[li]If the call flow continues then I copy into CP0 the value of CP6 without *.[/li]
[li]The caller is prompted to press 1 to confirm, press 2 to reenter number followed by *.[/li]
[li]If 1 then callflow moves forward.[/li]
[li]Then I INSERT the CP0 into my DB.[/li]
[/ul]

The problem on step 2 is that after the caller enters the index+* the sistem waits couple of seconds and then moves on. And when I used 2 "Menu" on Part 1 the caller didn't have to wait 1 sec..
Is there a way to reduce that waiting time..
Another thing, for the real project I will use recordings and not SpeechText functions - maybe that waiting time will disappear then, I don't know yet.

The Part 3 is to use SQL database instead of a MS Access *.mdb file.
I connects to the DB but doesn't get the fields.. The SQL Server is on another machine but the test connection worked!
More on this after I will make some tests.. :)
 
I think you're overdoing it, shouyld be possible to get this done with just a simple flow. (I see you even inserted a module, not easy to follow that on a screenshot:)

Kind regards

Gunnar
_______
B.U.B.F

2cnvimggcac8ua2fg.jpg
 
If you use a $ in a menu action, you have to terminate with a # otherwise you have to wait for the interdigit timeout.
Voicemail Pro help / Menu Action said:
$ = Any Sequence of Digits
The $ character can be used to match any sequence of digits for which there is no other match. Key press entry is ended either by the caller pressing # or 5 seconds after the last digit dialed.
 
LoL.. well then.. I think I over did it then :)) ..

But since it works now, I'll leave it like this for now, and focus on the other problem..
I don't have any fileds when trying to SELECT from DB.


The Test Connection is ok
sql_yeygy5.jpg



Blank fields ..
sql2_ddwssi.jpg
 
Are there any fields uin the CALLS-table then?

Kind regards

Gunnar
_______
B.U.B.F

2cnvimggcac8ua2fg.jpg
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top