VoiceGuide IVR Software Main Page
Jump to content

Unexpected Looping

Recommended Posts

I have now huge traffic because of Christmas and come back looping problem.

 

I attached part of vgEngine.

 

After call terminating VG coming back to start new process but without any RV_CIDNUMBER and $RV_DNIS what impossible.

 

Example connection on 23th channel.

 

I tried to eliminate loop using Evaluate module but VG has no timeout for this module

and on {} goto [finish the call] in state [DDI] Evaluate [$RV_DNIS] module

or $RV_DNIS>1 not working when $RV_DNIS has no value,

but in both cases VG waiting in best case more than 100 seconds in other not stopping waiting for a result.

 

1. how to checking that variable is not null?

2. reason for looping?

1221_1108_vgEngine.zip

Share this post


Link to post

Please post the vgEngine and ktTel traces that include the entire previous call (preferably 2 or 3 previous calls) on that channel.

 

We can then see what happened on the line to make system think that call arrived on the line during the 'after hangup' script being ran.

 

Quite possibly the new call arrived very soon afterwards disconnected - all while the 'after hangup' script was running.

 

The 'after hangup' script should not be allowed to take a long amount of time (max time is around 1 second). If you have a longer set of tasks then you should start a separate .exe or .bat or VBScript from the 'after hangup' script and let the 'after hangup' complete quickly.

 

 

This expression like this would check if a $RV contains no data:

 

"$RV_DNIS"=""

Share this post


Link to post

Please update system to this version of VoiceGuide:

[old link removed]

and post traces of the call if the issue happens again.

You should ensure that your system completes the 'after hangup' script promptly. If the actions started by the 'after hangup' script take a long time to run then you should create a single .bat or .exe (or .vbs) and run just that single task from the 'after hangup' script module, and let the VoiceGuide script exit without waiting for your stated cleanup routines to end.

This will free up the channel to handle new calls on that channel.

Right now the 'after hangup' script takes a long time to complete, and it takes significantly longer the gap that the remote PBX allows between successive calls.

eg. your database took 6 seconds for this:

110433.015 6 68 23 state [vg_polaczenia_update_end] DB Query

110433.015 6 68 23 db odbc RunQuery_Odbc [vg_polaczenia_update_end], db=[], connect=[ Driver=PostgreSQL Unicode; Server=IP; Port=5432; Database=database4;UID=xxxx;PWD=xxxx;], sql=[UPDATE polaczenia SET call_end=now(), stop='110433' WHERE session_id='ID2012122111024168'; UPDATE polaczenia SET effect='porzucil oczekiwanie' WHERE session_id='ID2012122111024168' AND (effect='czeka w kolejce' OR effect='skierowano')]

110433.078 36 68 23 db odbc connection open returned.

110439.000 36 68 23 db completed. SqlQueryType=NONQUERY, RowsCount=1, sRv=[vg_polaczenia_update_end_RowCount]{1}

if the database can take this long to respond then this should not be done out of the 'after hangup' script. A separate task should be crated to do this and VoiceGuide can be used to just launch that task (and immediately return after launching that task)

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
×