VoiceGuide IVR Software Main Page
Jump to content

How To Stay In Main Script After Call Is Disconnected.

Recommended Posts

2 cases:

1. Caller and Agent1 bridge was disconnected and caller was forwarded to play MoH module to wait, can we detect "DISCONNECTED" status?

We try to make DISCONNECTED path but it doesn't working, other status is needed?

 

2. Agent 1 is connecting to Agent 2 ( in this moment VG monitoring showing current script same as caller) but Agent 2 disconnecting, how to stay in script?

Is possible DISCONNECTING OTHER LINE detection in silent play module (wait until end of call)?

Share this post


Link to post

Case 1:

 

The script running on the 'Caller' line should be getting "OTHER_LEG_" events. These events can be used as path triggers.

 

Case 2:

 

Is possible DISCONNECTING OTHER LINE detection in silent play module (wait until end of call)?

 

Yes. Events from other line will continue to arrive regardless of what module the script has moved onto.

 

 

To better answer these types of questions we would need to see the VoiceGuide traces capturing the calls, then we can see what is exactly happening on the system.

Share this post


Link to post

Problem is because we have declared termination script so VG following to termination sheet and no DISCONNECT path

124042.389   7  61  21 state [switch_agents_call] Playing wav ()
124042.389   7  61  21       q_scr +     evScriptEvent 8001 EV_PLAY_FINISHED
124042.390   7  61  21       q_scr run   evScriptEvent sCode=[EV_PLAY_FINISHED] iActionID=0, crn=0 [0|0|0|0|0][|||||] 00:00:00 max:4|00:00:00.0190011
124042.390   7  61  21       se    EV_PLAY_FINISHED 8001  0|0|0  || LineState=LS_GETNBRS_PLAYWELCOMEMSG
124042.390   7  61  21       LsGetNbrsPlayWelcMsg EV_PLAY_FINISHED,EV_PLAY_FINISHED
124042.390   7  61  21       path {EV_PLAY_FINISHED} not found
124042.390   7  61  21       iCurrReplayCount=0, iMaxReplayCount=0
124042.390   7  61  21 t     timer set   10 sec : EV_TIMEOUT_HANGUP
124042.390   7  61  21 t     timer set   7200 sec : EV_TIMEOUT_GOTOMODULE
124042.392   8               q_tel run   cmd_TsRoute 0 00:00:00.0060004 max:3|00:00:00.0120007
124042.397  19  61  21 ev    PlayEnd 61 950734 [bytes_played:72055:72055, bytes_in_file1009999]
124042.397  19  61  21       play  end   id=950734, (old id) current id=0
124046.217  19  61  21 ev    CallState GCEV_DISCONNECTED, crn=2800030, iEvent=0 ,16384,528,64, s1:, s2:, s3:]. build_date: 03-Nov-15 22:41:38.24
124046.217  19  61  21       q_scr +     evCallState 0 GCEV_DISCONNECTED
124046.217   7  61  21       q_scr run   evCallState sCode=[GCEV_DISCONNECTED] iActionID=0, crn=2800030 [16384|528|64|0|0][|||||] 00:00:00 max:4|00:00:00.0190011
124046.217   7  61  21       callstate crn_event=2800030 0|GCEV_DISCONNECTED state=16384|Disconnected calldirection=528 gcCallState=64 [||], ScriptState=LS_GETNBRS_RXDIGITS
124046.217   7  61  21       LineEvCallState L1_current=Connected crn_event=2800030,ev=0,GCEV_DISCONNECTED,528, sParam1=
124046.217   7  61  21       LineEvCallState LINECALLSTATE_DISCONNECTED begin
124046.217   7  61  21       TsReset [LineEvCallState_LINECALLSTATE_DISCONNECTED], OtherLegLid=64
124046.218   7               q_tel +     cmd_TsReset 0 [0,0,0,0,0][dtiB1T21||dtiB1T22||]
124046.218   7  61  21       OtherLegLid_ClearBoth 61 64 caller:LineEvCallState_LINECALLSTATE_DISCONNECTED
124046.218   7  64  22       OtherLegLid_ClearBoth 61 64 caller:LineEvCallState_LINECALLSTATE_DISCONNECTED
124046.218   8               q_tel run   cmd_TsReset 0 00:00:00 max:3|00:00:00.0120007
124046.218   7  61  21       send OTHER_LEG_DISCONNECTED to OtherLegLid=64
124046.218   7  64  22       q_scr +     evScriptEvent 0 OTHER_LEG_DISCONNECTED
124046.218   7  61  21       L1_set Disconnected (iState=LS_GETNBRS_RXDIGITS)
124046.218   7  61  21       in LINECALLSTATE_DISCONNECTED iState=LS_GETNBRS_RXDIGITS
124046.218   7  61  21       HangupCall (LineEvCallState_DISCONNECTED) crn_in=2800030, L1=Disconnected, L2=Running_Normal, lPlayId=0, lRecId=0
124046.218   7  61  21       ccrn_connected=0, crn_NewCallArriving=0, crn_CurrentMakeCall=0, crn_InProcessOfReleasing=2800030
124046.218   7  61  21       rv    add   Hangup Source|LineEvCallState_DISCONNECTED
124046.219   7  61  21       HangupCall sScriptToRunOnHangup=[termination.vgs]

in [switch_agents_call] module we have paths:

on {DISCONNECTED} goto [Agent1_disconnected]
on {OTHER_LEG_DISCONNECTED} goto [Agent2_disconnected]
on {LINECALLSTATE_DISCONNECTED} goto [Agent1_disconnected]

only on {OTHER_LEG_DISCONNECTED} goto [Agent2_disconnected] working properly.

 

any suggestions?

 

we need follow script on channel 21 to next module.

Share this post


Link to post

Attached trace snippet shows call on port 21 was DISCONNECTED. The party that was connected to port 21 hung up.

 

And looks like the 'after hangup' script was ran afterwards on port 21:

124046.219 7 61 21 HangupCall sScriptToRunOnHangup=[termination.vgs]

If you want another call to now be made to another party and have that party connected to party on port 22, then that new call to new party needs to be made on another port, and probably best for it to be initiated using a 'Transfer Call' module from a script running on port 22 - but it looks like you are running scripts on both lines so maybe a different method of call setup is used.

 

It looks like the script on port 22 is progressing correctly:

only on {OTHER_LEG_DISCONNECTED} goto [Agent2_disconnected] working properly.

so you can use the script on port 22 to now setup a new 'Dial-and-Conference' transfer.

Share this post


Link to post

Question is how to make path {DISCONNECT} as exception for script before sScriptToRunOnHangup=[termination.vgs] starts

Share this post


Link to post

Can you please advise what you mean by "as exception for script".

 

The other side of the connection on port 21 hung up. The appropriate action is to start the 'after hangup' script, which is what is happening.

Share this post


Link to post

After hang up line I need to follow at first "DISCONNECTED" path as privilege and next termination sheet .

Share this post


Link to post

What type of action do you need performed once the DISCONNECTED event occurs?

 

Why can't this action be performed from within an 'after hangup' script?

Share this post


Link to post

Hi,

 

I want to go to next module after disconnect by caller side.

 

I try

on {LINECALLSTATE_DISCONNECTED} goto [converse_wav_to_mp3_finish]
on {LineEvCallState_DISCONNECTED} goto [converse_wav_to_mp3_finish]
on {DISCONNECT} goto [converse_wav_to_mp3_finish]

log show:

145226.008  23  40  14 ev    CallState GCEV_DISCONNECTED, crn=2c4021f, iEvent=0 ,16384,0,64, s1:, s2:, s3:]. build_date: 14-Oct-16 17:23:38.12
145226.008  23  40  14       q_scr +     evCallState 0 GCEV_DISCONNECTED
145226.008   9  40  14       q_scr run   evCallState sCode=[GCEV_DISCONNECTED] iActionID=0, crn=2c4021f [16384|0|64|0|0][|||||] 00:00:00 max:4|00:00:00.0070004
145226.008   9  40  14       callstate crn_event=2c4021f 0|GCEV_DISCONNECTED state=16384|Disconnected calldirection=0 gcCallState=64 [||], ScriptState=LS_REC_RECORDING
145226.008   9  40  14       LineEvCallState L1_current=Connected crn_event=2c4021f,ev=0,GCEV_DISCONNECTED,0, sParam1=
145226.008   9  40  14       LineEvCallState LINECALLSTATE_DISCONNECTED begin
145226.008   9  40  14       LINECALLSTATE_DISCONNECTED: clear crn_connected, set crn_InProcessOfReleasing, set L1=Disconnected
145226.008   9  40  14       L1_set Disconnected (iState=LS_REC_RECORDING)
145226.008   9  40  14       in LINECALLSTATE_DISCONNECTED iState=LS_REC_RECORDING
145226.008   9  40  14       HangupCall qScr add (LineEvCallState_DISCONNECTED) crn_in=2c4021f, L1=Disconnected, L2=Running_Normal, lPlayId=0, lRecId=496748
145226.008   9  40  14       q_scr +     cmdHangupCall 0 
145226.008   9  40  14       q_scr run   cmdHangupCall sCode=[] iActionID=0, crn=2c4021f [0|0|0|0|0][LineEvCallState_DISCONNECTED|||||] 00:00:00 max:4|00:00:00.0070004
145226.008   9  40  14       HangupCall qScr exec (LineEvCallState_DISCONNECTED) crn_in=2c4021f, L1=Disconnected, L2=Running_Normal, lPlayId=0, lRecId=496748
145226.008   9  40  14       HangupCall crn_connected=0, crn_NewCallArriving=0, crn_CurrentMakeCall=0, crn_InProcessOfReleasing=2c4021f
145226.008   9  40  14       RecSoundStop begin trunc100ms=0, sCaller=Line_Hangup_Main, lRecId=496748
145226.008   9  40  14       RecSoundStop lRec_Id_InProcessOfStopping=496748, lRecId=0
145226.008   9  40  14       q_tel +     cmd_RecordStop [0,0,0,0,0][||||]
145226.008   9  40  14       rv    add   Hangup Source|LineEvCallState_DISCONNECTED
145226.008  10  40  14       q_tel run   cmd_RecordStop 0 00:00:00 max:5|00:00:00.1110064
145226.008   9  40  14       HangupCall sScriptToRunOnHangup=[termination.vgs]
145226.008   9  40  14       HangupCall lRec_Id_InProcessOfStopping=496748, wait till recording cmpletes
145226.008   9  40  14 t     timer set   4 sec : EV_TIMEOUT_RunAfterHangupScript
145226.036  23  40  14 ev    Dialogic 130,TDX_RECORD, crn=2c4021f, 0,0,0,TM_USRSTOP,,
145226.036  23  40  14       q_scr +     evScriptEvent 130 TDX_RECORD
145226.036   9  40  14       q_scr run   evScriptEvent sCode=[TDX_RECORD] iActionID=0, crn=2c4021f [0|0|0|0|0][TM_USRSTOP|||||] 00:00:00 max:4|00:00:00.0070004
145226.036   9  40  14       se    TDX_RECORD 130  0|0|0  TM_USRSTOP|| LineState=LS_REC_RECORDING
145226.036   9  40  14       LsRecRecording EV_UNKNOWN_130,TDX_RECORD  0|0|0  TM_USRSTOP||
145226.036   9  40  14       path {TDX_RECORD} not found
145226.036  23  40  14 ev    RecEnd 496748 
145226.036  23  40  14       q_scr +     evScriptEvent 8003 EV_REC_FINISHED
145226.036   9  40  14       q_scr run   evScriptEvent sCode=[EV_REC_FINISHED] iActionID=0, crn=0 [496748|0|0|0|0][|||||] 00:00:00 max:4|00:00:00.0070004
145226.036   9  40  14       se    EV_REC_FINISHED 8003  496748|0|0  || LineState=LS_REC_RECORDING
145226.036   9  40  14 t     timer clear (force=False)
145226.036   9  40  14       HangupCall qScr add (RunHangupScriptWhenRecordCompletes_flag_was_set) crn_in=0, L1=Disconnected, L2=Running_Normal, lPlayId=0, lRecId=0
145226.036   9  40  14       q_scr +     cmdHangupCall 0 
145226.036   9  40  14       LsRecRecording EV_REC_FINISHED,EV_REC_FINISHED  496748|0|0  ||
145226.037   9  40  14       path {EV_REC_FINISHED} not found
145226.037   9  40  14       rec complete event without rec reason being recieved first. Assume silence as the cause
145226.037   9  40  14       rv    rec length: answer_open_question_RecLen100ms = 22
145226.037   9  40  14       rv    add   answer_open_question_RecLen100ms|22
145226.037   9  40  14       rv    add   answer_open_question_EndRecCause|silence
145226.037   9  40  14       path {silence} not found
145226.037   9  40  14       HangupCall qScr add ({silence} path not defined) crn_in=0, L1=Disconnected, L2=Running_Normal, lPlayId=0, lRecId=0
145226.037   9  40  14       q_scr +     cmdHangupCall 0 
145226.037   9  40  14       q_scr run   cmdHangupCall sCode=[] iActionID=0, crn=0 [0|0|0|0|0][RunHangupScriptWhenRecordCompletes_flag_was_set|||||] 00:00:00.0010001 max:4|00:00:00.0070004
145226.037   9  40  14       HangupCall qScr exec (RunHangupScriptWhenRecordCompletes_flag_was_set) crn_in=0, L1=Disconnected, L2=Running_Normal, lPlayId=0, lRecId=0
145226.037   9  40  14       HangupCall crn_connected=0, crn_NewCallArriving=0, crn_CurrentMakeCall=0, crn_InProcessOfReleasing=2c4021f
145226.037   9  40  14       rv    add   Hangup Source|RunHangupScriptWhenRecordCompletes_flag_was_set
145226.037   9  40  14       HangupCall sScriptToRunOnHangup=[termination.vgs]

Previous module was Record sound file and we want to converse wav to mp3 before termination script start.

Share this post


Link to post

If the line on which the script is running disconnects then the system will jump to the "after hangup" script for that line.

 

You mention that you "want to convert wav to mp3 before termination script start". Why can't this conversion be done in the "after hangup" script?

Share this post


Link to post

Did your post above get truncated?

 

If there are reasons why the "convert wav to mp3" task cannot be done from within the "after hangup" script (which in your case is: termination.vgs) then please outline why that is the case.

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
×