VoiceGuide IVR Software Main Page
Jump to content

Bridged Calls; How To Drop Outgoing Leg?

Recommended Posts

Hi,

 

Using VG7.

 

We're utilising a dial and conference module and initiating a bridged call between two lines to connect an incoming call with an external party.

 

What we'd like to do is, during the call, drop the outgoing leg of this call (the external party) on a given criteria (say a DTMF PIN) and initiate another dial and conference to bridge the original caller with another external party. The basic idea is if the first support person can't assist they dial a code and connect the caller to another party (escalating the call).

 

Essentially it's a transfer.

 

Had a look through the help file and searched the forum but was unable to find a solution.

 

Thanks,

Ben.

Share this post


Link to post

You should be able to issue a Line_Hangup command (using COM, WCF or Remoting) to the call on the second (outgoing) leg, and then intercept the even on the main leg of the call (the leg that is running the script) and point the path that triggers of that event to another transfer module, which will then do another transfer.

 

See: http://www.voiceguide.com/vghelp/source/ht...line_hangup.htm

 

See the vgEngine trace for which RVs are defined when a transfer is made. You will need to sue one of those RVs as the LineId parameter in the Line_Hangup command call.

 

If you can post traces (vgEngine and ktTel) that capture the first transfer and the issuing of the Line_Hangup command then we can advise what path you will need to declare in the original transfer module to intercept the hangup event sent to the first leg and redirect that event to the next transfer module.

 

Share this post


Link to post

I have prceisely the same problem. In my scenario, an outside caller comes in: dials a PIN code, and the is transferred on an outgoing leg to the destination. (Typical Phone Debit Card application). When the caller needs to make a second call, he does not have to hang up and call again and having to go through entering the PIN code one more time. All what I need the caller to do is just hit the "*" or "#" to drop the second leg of the call and be prompted for a destination number.

 

 

Here is the portion of the log file after the conference was started, in this case I pressed "*" to terminate both legs of the call as is the default in the Conference Module

 

151327.09 3 state [Transfer Call] Blind Dial and Connect to 18005551212#

151327.09 dial search for free lines in list [4] in LineID range [0-4]

151327.09 1 dial device dxxxB1C1 (voice) not in selection list [,4,]

151327.09 1 dial device dxxxB1C1 (intfc) not in selection list [,4,]

151327.10 2 dial device dxxxB1C2 (voice) not in selection list [,4,]

151327.10 2 dial device dxxxB1C2 (intfc) not in selection list [,4,]

151327.10 3 dial not available as used for incoming or VGDialer call or still in guard time after call. iDialoutReadyToDialout=0

151327.10 4 dial reserving: found in comma delimited id list [,4,]

151327.10 3 dial found free dev=4 (LineId=4) in XferDialAndConference

151327.10 3 play on-hold sound file

151327.10 3 state [Transfer Call] Playing (PleaseHold.wav)

151327.10 3 timer clear bForceClear=False

151327.11 3 play start ok, lPlayId=54808

151327.12 4 state dialing 18005551212# (for conference with dxxxB1C3) iXferBridgeCallsWhen=0, sCallProgressOption=CONNECT_IMMEDIATELY (Immediately after dialing.)

151327.12 3 setting CONNECT_IMMEDIATELY as iXferType = XT_DC_BLIND

151327.15 4 lineMakeCall(18005551212#,CONNECT_IMMEDIATELY) (in XferDialAndConference) =>

151327.15 3 blind DC transfer (31)

151327.15 3 timer set 30 EV_TIMEOUT_GOTOMODULE

151327.69 4 tw DialogicEvent 135,TDX_SETHOOK,0,0,0,DX_OFFHOOK,CALL_OUTBOUND,

151327.69 4 event TDX_SETHOOK, iCode=135 state=1922

151327.69 4 LsXfer_6_dc_WaitOutcomeOutgoingCall_OutLeg : 135,[TDX_SETHOOK],0,0,0,DX_OFFHOOK,CALL_OUTBOUND,

151327.69 4 LsXfer_6_dc_WaitOutcomeOutgoingCall_OutLeg : iConferenceOtherLegLid=3 iModuleIdx_InLeg=13, opt=[]

151327.69 3 LsXfer_6_dc_WaitOutcomeOutgoingCall_InLeg : [TDX_SETHOOK], 135(EV_UNKNOWN_135),0,0,0,DX_OFFHOOK,CALL_OUTBOUND,

151327.69 3 xferType=31 otherLeg=4

151327.69 3 path {tdx_sethook} not found

151328.43 3 tw PlayEnd 3 54808

151328.43 3 play end id=54808, (current ID)

151328.43 3 event EV_PLAY_FINISHED, iCode=8001 state=1921

151328.43 3 LsXfer_6_dc_WaitOutcomeOutgoingCall_InLeg : [EV_PLAY_FINISHED], 8001(EV_PLAY_FINISHED),0,0,0,,,

151328.43 3 xferType=31 otherLeg=4

151328.43 3 path {ev_play_finished} not found

151328.43 3 tw DialogicEvent 129,TDX_PLAY,54808,0,0,,,

151328.43 3 event TDX_PLAY, iCode=129 state=1921

151328.43 3 LsXfer_6_dc_WaitOutcomeOutgoingCall_InLeg : [TDX_PLAY], 129(EV_UNKNOWN_129),54808,0,0,,,

151328.43 3 xferType=31 otherLeg=4

151328.43 3 path {tdx_play} not found

151329.46 4 tw DialogicEvent 132,TDX_DIAL,0,0,0,,,

151329.46 4 event TDX_DIAL, iCode=132 state=1922

151329.46 4 LsXfer_6_dc_WaitOutcomeOutgoingCall_OutLeg : 132,[TDX_DIAL],0,0,0,,,

151329.46 4 LsXfer_6_dc_WaitOutcomeOutgoingCall_OutLeg : iConferenceOtherLegLid=3 iModuleIdx_InLeg=13, opt=[]

151329.46 4 bridging two lines as sCallProgressOption=CONNECT_IMMEDIATELY

151329.46 3 conf TwoCalls_Bridge 3<=>4 (dxxxB1C3<=>dxxxB1C4)

151329.46 3 play PlayStop ok

151329.46 4 play PlayStop ok

151329.46 3 rvns add [TsRoutedTo]{4}

151329.46 4 rvns add [TsRoutedTo]{3}

151329.46 4 rvns add [Conf_DevName_1]{dxxxB1C3}

151329.46 4 rvns add [Conf_LineId_1]{3}

151329.46 4 rvns add [Conf_LineNbr_1]{3}

151329.46 4 rv add [Conf_DevName_2]{dxxxB1C4}

151329.46 4 rv add [Conf_LineId_2]{4}

151329.46 4 rv add [Conf_LineNbr_2]{4}

151329.46 3 rvns add [Conf_DevName_1]{dxxxB1C3}

151329.46 3 rvns add [Conf_LineId_1]{3}

151329.48 3 rvns add [Conf_LineNbr_1]{3}

151329.48 3 rv add [Conf_DevName_2]{dxxxB1C4}

151329.48 3 rv add [Conf_LineId_2]{4}

151329.48 3 rv add [Conf_LineNbr_2]{4}

151329.48 3 TsRoute dxxxB1C3<=>dxxxB1C4 call

151329.50 3 TsRoute dxxxB1C3<=>dxxxB1C4 SC_FULLDUP:

151329.50 3 state [Transfer Call] bridged with dxxxB1C4 (incoming leg)

151329.50 4 state [Transfer Call] bridged with dxxxB1C3 (outgoing leg)

151329.50 4 event callstate CONNECTED 4 256,0,0

151329.50 3 event CONNECTED, iCode=10256 state=1910

151329.50 3 LsXfer_8_WaitEndCall_InLeg : 10256(EV_UNKNOWN_10256),CONNECTED,256,0,0,,, (iModuleIdx=13)

151329.50 3 path {connected} not found

151329.50 4 LineEvCallState_Connected hDevice=4 params=256,0,0

151329.51 4 WorkingModes tapi= script= LineState().iState=1911

151329.51 4 connected event no action as: outgoing leg of call now awaits end of call (state=waitendcall)

151329.51 4 set LineState().hCall = 4 in LineEvCallState_Connected 3

151329.51 4 tw DialogicEvent 134,TDX_CST,65535,0,0,DE_LCON,,

151329.51 4 event TDX_CST, iCode=134 state=1911

151329.51 4 LsXfer_8_WaitEndCall_OutLeg : 134(), [TDX_CST], 65535,0,0,DE_LCON,,

151329.51 3 LsXfer_8_WaitEndCall_InLeg : 134(EV_UNKNOWN_134),tdx_cst,65535,0,0,DE_LCON,, (iModuleIdx=13)

151329.51 3 path {tdx_cst} not found

151350.46 3 tw dtmf * (3,42,42)

151350.46 3 event *, iCode=42 state=1910

151350.46 3 LsXfer_8_WaitEndCall_InLeg : 42(*),*,0,0,0,,, (iModuleIdx=13)

151350.46 3 path {*} not found

151350.46 3 HangupCall start (* pressed)

151350.46 3 rv add [Hangup Time]{4/28/2009 3:13:50 PM}

151350.46 3 state Hanging up call... [* pressed]

151350.46 3 rvns add [TsRoutedTo]{}

151350.46 4 rvns add [TsRoutedTo]{}

151350.46 3 TsReset dxxxB1C3</>dxxxB1C4 MATCH_ call

151350.51 3 TsReset dxxxB1C3</>dxxxB1C4 MATCH_ => []

151350.51 4 HangupCall start (2nd leg (Hangup Call))

151350.51 4 rv add [Hangup Time]{4/28/2009 3:13:50 PM}

151350.51 4 state Hanging up call... [2nd leg (Hangup Call)]

151350.51 4 HangupCall_Common hCall=4

151350.52 4 play PlayStop ok

151350.52 4 timer set 1 EV_TIMEOUT_DOLINEDROP

151350.52 4 state Waiting for a call...

151350.52 4 fnHangupCall end

151350.52 3 HangupCall_Common hCall=3

151350.52 3 play PlayStop ok

151350.52 3 timer set 1 EV_TIMEOUT_DOLINEDROP

151350.52 3 fnHangupCall end

151351.32 3 tw DialogicEvent 134,TDX_CST,191,0,0,DE_TONEON,FAX,

151351.32 3 event FAX, iCode=134 state=900

151351.32 3 LsAwaitingCalls EV_UNKNOWN_134

151351.32 3 event TDX_CST, iCode=134 state=900

151351.32 3 LsAwaitingCalls EV_UNKNOWN_134

151351.43 3 timer fired EV_TIMEOUT_DOLINEDROP

151351.43 3 event EV_TIMEOUT_DOLINEDROP, iCode=9102 state=900

151351.43 3 timer set 2 EV_TIMEOUT_WAITFORIDLEAFTERLINEDROP

151351.43 4 timer fired EV_TIMEOUT_DOLINEDROP

151351.43 4 event EV_TIMEOUT_DOLINEDROP, iCode=9102 state=900

151351.43 4 timer set 2 EV_TIMEOUT_WAITFORIDLEAFTERLINEDROP

151351.50 3 tw DialogicEvent 135,TDX_SETHOOK,0,0,0,DX_ONHOOK,,

151351.50 3 event TDX_SETHOOK, iCode=135 state=900

151351.50 3 LsAwaitingCalls EV_UNKNOWN_135

151351.50 3 event callstate IDLE 3 1,0,0

151351.50 3 WorkingMode@Idle=

151351.50 3 set LineState().hCall = 0 LineEvCallState-LINECALLSTATE_IDLE

151351.50 3 timer clear bForceClear=True

151351.50 3 rec RecSoundStop ok

151351.50 3 play PlayStop ok

151351.50 3 rv add [CallEndTime]{4/28/2009 3:13:51 PM}

Share this post


Link to post

enadhazeem: You will need to upgrade to VoiceGuide v7 in order to be able to drop just the second leg of the call.

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
×