/mcpThe Transfer Controller The transfer controller for this version of this method represents the participant on this Call around which the transfer is taking place and who drops off the Call after the transfer has completed. The transfer controller is a TerminalConnection that must be in the CallControlTerminalConnection.TALKING state. Applications may control which TerminalConnection acts as the transfer controller via the CallControlCall.setTransferController() method. The CallControlCall.getTransferController() method returns the current transfer controller, or null if there is none. If no transfer controller is set, the implementation chooses a suitable TerminalConnection when the transfer feature gets invoked. When the transfer feature gets invoked, the transfer controller moves into the CallControlTerminalConnection.DROPPED state. If it is the only TerminalConnection associated with its Connection, then its Connection moves into the CallControlConnection.DISCONNECTED state as well. The New Connection This method creates and returns a new Connection representing the party to which the Call was transferred. This Connection may be null if the Call has been transferred outside of the Provider domain and can no longer be tracked. This Connection must at least be in the CallControlConnection.IDLE state. The Connection state may have progressed beyond "idle" before this method returns, and should be reflected by an event. This new Connection will progress as any normal destination Connection on a call. Typical scenarios for this Connection are described by the Call.connect() method. Pre-Conditions 1. Let tc be the transfer controller on this Call 2. (this.getProvider()).getState() = = Provider.IN_SERVICE 3. this.getState() = = Call.ACTIVE 4. tc.getCallControlState() = = CallControlTerminalConnection.TALKING Post-Conditions 1. Let newconnection be the Connection created and returned 2. Let connection = = tc.getConnection() 3. (this.getProvider()).getState() = = Provider.IN_SERVICE 4. this.getState() = = Call.ACTIVE 5. tc.getCallControlState() = = CallControlTerminalConnection.DROPPED 6. If connection.getTerminalConnections().length = = 1, then connection.getCallControlState() = = CallControlConnection.DISCONNECTED 7. newconnection is an element of this.getConnections(), if not null. 8. newconnection.getCallControlState() at least CallControlConnection.IDLE, if not null. 9. ConnCreatedEv is delivered for newconnection 10. CallCtlTermConnDroppedEv/TermConnDroppedEv is delivered for tc Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 15 and SUs 342 Cisco Unified JTAPI Extensions The Transfer Controller