cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
745
Views
0
Helpful
4
Replies

Transferred Calls get stuck on grid

Hi All,

I got an annoying problem with a CTI OS toolkit customization. I modified the Win32 sample (the standard client) by adding a button which opens a new form where the agent can perform an LDAP query and act transfers (both blind and call_consult) of the current call on one of the results from the query.

The problem is that, in some circumstances I could not identify, after transfer, the call remains stuck on the call appearence grid in cleared status. After that, all the following transfers leave the call stuck on the grid until the agent closes everything. The issue happens intermittently, as I could observe, after a network connection problem. I tried to reproduce the issue by forcing a disconnection with the primary CTIOS server but the issue did not happen.

The session is retrieved via a sessionresolver object just once on the form load (in a first time I instantiated the session on every transfer operation and the problem was exactly the same). Then I get the currentcall from the session and invoke the singlesteptransfer or makeconsultcall and transfer methods on the currentcall object.

I could not reproduce the behaviour on the out of the box, so I suppose the problem should be on my code presumably on the way I use the libraries while getting the session or the current call. I also involved the TAC in an analysis but the couldn't find any issue in the Client-server dialog.

Anyone have any suggestion?

Best regards,

Massimiliano

4 Replies 4

dlender
Level 6
Level 6

If you cannot reproduce the issue with the out of box CTIOS Agent Desktop then yes the issue is with your code.

A call getting stuck in the grid would seem to me that your code is sometimes not processing the end call event.

Also you said you are getting the current call from the session. Are you setting the current call for the session in the begin call event? This may not be an issue since your transfers are working.

I have never tried handling call control from a new form so I can’t provide any ideas on it but I would check that you are not blocking any events when performing your LDAP query.

dlender ha scritto:

A call getting stuck in the grid would seem to me that your code is sometimes not processing the end call event.

My code simply invoke a transfer method on the CurrentCall object, the event processing is done by the session class transparently.

...............

Select Case TipoTransf

            Case "BLIND"

                'SingleStepTransfer

                Dim Args As New Cisco.CTIOSCLIENTLib.Arguments

                Args.AddItem("DialedNumber", RPTransf.ToString)

                Args.AddItem("CallVariable" + CallVarTransfType, TipoTransf.ToString)

                Args.AddItem("CallVariable" + CallVarTransfNumber, NumTels.ToString)

                ritCTI = MyCall.SingleStepTransfer(Args)

                'Debug.Print(Now.ToString + " - Transfer Call (SS) return: " + ritCTI.ToString)

            Case "CALL_CONSULT"

                'Consultation Call

                Dim Args As New Cisco.CTIOSCLIENTLib.Arguments

                Args.AddItem("DialedNumber", RPTransf.ToString)

                Args.AddItem("ConsultType", "1")

                Args.AddItem("CallVariable" + CallVarTransfType, TipoTransf.ToString)

                Args.AddItem("CallVariable" + CallVarTransfNumber, NumTels.ToString)

                ritCTI = MyCall.MakeConsultCall(Args)

                'Debug.Print(Now.ToString + " - Transfer Call (CONS) return: " + ritCTI.ToString)

        End Select

Anyway, in lab, I always get the OnCallTransferred event or the OnCallCleared even (when the call is hung up without transfer).

dlender ha scritto:

Also you said you are getting the current call from the session.  Are you setting the current call for the session in the begin call event?  This may not be an issue since your transfers are working.

Right now the MyCall is retrieved on each transfer action. I just modified the code in order to retrieve the call object in the OnCallBegin event. Then I release the Call object on the OnCallTransferred and OnCallCleared events.

dlender ha scritto:

I have never tried handling call control from a new form so I can’t provide any ideas on it but I would check that you are not blocking any events when performing your LDAP query.

Do you think it could happen? Every operation is done sequentially. The call begins on the agent --> the agent performs the LDAP query --> the agent transfers or releases the call. What kind of event could I miss? How can I check?

It could help if I put the LDAP query on a different thread?

Regards,

Massimiliano

I suggest you look at the client log of the scenario where a call doesn’t get stuck and then again when it does and see if you can find any clues to the issue.

And also putting the LDAP request on a separate thread might be a good idea.

Unfortunately, the Cisco TAC already looked at the logs and found no difference.

The only difference I could see is a 'GetObjectFromObjectID failed ..." message. But I could not understand what object can't be retrieved ...

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: