cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Announcements

Community Helping Community

334
Views
1
Helpful
3
Replies
Beginner

How can I tell if a TermConnRingingEv is a transfer?

Anyone know how I can tell if a call is a transfer during the TermConnRingingEv event? For example:


A calls B: I get A's name, which is useful and correct.

B presses transfer and enters C's extension: I get B's name, which is useful and correct.

B presses transfer again: Here I get B's name. However, I want A's name instead.


I'm wondering if there's a way to know if TermConnRingingEv is part of a transfer? If it is, I can ignore it and get the right name using the CiscoTransferStartEv instead.

I'm using using CiscoCall.getCurrentCallingPartyDisplayName to get the name of the caller if that make a difference.


Any help at all would be greatly appreciated!


James

Everyone's tags (3)
1 ACCEPTED SOLUTION

Accepted Solutions
Contributor

Re: How can I tell if a TermConnRingingEv is a transfer?

In most transfer cases you should see getCiscoFeatureReason() on termconnringingev returning CiscoFeatureReason.REASON_TRANSFER if the event is received after CiscoTransferStartEv. You can use this to see if CiscoTransferStartEv already fired.

View solution in original post

3 REPLIES 3
Contributor

Re: How can I tell if a TermConnRingingEv is a transfer?

When B presses transfer again, application would receive a CiscoTransferStartEv followed by CiscoTransferEndEv. There are events between the 2 indicating connections to B getting dropped and connections to C getting created on final call. After CiscoTransferEndEv

CiscoCall.getCurrentCallingParty should be A

CiscoCall.getCurrentCalledParty should be B

CiscoCall is  call returned by getFinalCall() on CiscoTransferStartEv.

You did not mention which call you used in CiscoCall.getCurrentCallingPartyDisplayName and based on what you are seeing you are probably using the consult call. Try using this API on final call. Let me know if this resolved your issue.

Highlighted
Beginner

Re: How can I tell if a TermConnRingingEv is a transfer?

Hi Mohan,

I can get the correct name during the CiscoTransferStartEv event. It's just that during the final transfer button press it fires another TermConnRingingEv which has the wrong name. Is there a way to see if the TermConnRingingEv event call is part of the final transfer? Here is some of the code (pseudo code, it might not work). Hopefully it helps clear things up. Maybe I'm not fully understanding your reply either...

public void callChangedEvent(CallEv[] arg0) {

  for (CallEv ce : arg0) {

       if (ce instanceof TermConnRingingEv) {

            TermConnRingingEv cae = (TermConnRingingEv) ce;

            CiscoCall c = (CiscoCall) cae.getCall();

            //I want to skip this if this if CiscoTransferStartEv already fired because it's showing the wrong name.

            System.out.println("Caller Name: " + c.getCurrentCallingPartyDisplayName());

       }

       if (ce instanceof CiscoTransferStartEv ) {

            CiscoTransferStartEv cae = (CiscoTransferStartEv ) ce;

            CiscoCall c = (CiscoCall) cae.getCall();

            System.out.println("Caller Name: " + c.getCurrentCallingPartyDisplayName());

       }

  }

}

Contributor

Re: How can I tell if a TermConnRingingEv is a transfer?

In most transfer cases you should see getCiscoFeatureReason() on termconnringingev returning CiscoFeatureReason.REASON_TRANSFER if the event is received after CiscoTransferStartEv. You can use this to see if CiscoTransferStartEv already fired.

View solution in original post

CreatePlease to create content
Content for Community-Ad
FusionCharts will render here