/mcpCall info/Expected Result Events Action CiscoTransferStartEv. getControllerTerminalName() returns Terminal name for B1&B2 GC2: CallActiveEvent GC2: ConnCreatedEv for A GC2: ConnCreatedEv for C GC1: CiscoCallChangedEv GC2: ConnConnectedEv for A GC2: CallCtlConnEstablishedEv for A GC2: TermConnCreatedEv for A GC2: TermConnActiveEvent for A GC2: CallCtlTermConnTalkingEv for A GC2: ConnConnectedEv for C GC2: CallCtlConnEstablishedEv for C GC1: ConnDisconnectedEv for B1 GC1: CallCtlConnDisconnectedEv for B1 GC1: TermConnDroppedEv for A GC1: CallCtlTermConnDroppedEv for A GC1: ConnDisconnectedEv for A GC1: CallCtlConnDisconnectedEv for A GC1: CallInvalidEvent GC1: CallObservationEndedEv Application is observing only A: A calls B1, B1 answers – GC1 B2 calls C, C answers - GC2 User presses transfer and selects active call(A –> B call) from the phone UI and presses Transfer again to do Connected Transfer Across Lines JTAPI will throw PlatformException “Transfer controller is not set and could not find a suitable TerminalConnection” Since JTAPI cannot get/find call leg for B1 from GC1 Application is observing only B2: A calls B1, B1 answers – GC1 B2 calls C, C answers - GC2 setTransferController to B1 GC1.transfer(GC2) CiscoTransferStartEv. getControllerTerminalName() returns Terminal name for B1&B2 GC2: CiscoTransferStartEv GC2: ConnDisconnectedEv for B2 GC2: CallCtlConnDisconnectedEv for B2 GC2: ConnCreatedEv for A GC2: ConnConnectedEv for A GC2: CallCtlConnEstablishedEv for AGC2: CiscoTransferEndEv Application is observing only C: A calls B1, B1 answers – GC1 B2 calls C, C answers - GC2 User presses transfer and selects active call(A–>B call) from the phone UI and preses Transfer again to do Connected Transfer Across Lines. Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 15 and SUs 1162 Message Sequence Charts Message Sequence Charts