Message Sequence Charts

This appendix contains message sequence charts illustrating the message flows for several scenarios.

Agent Greeting

The basic Agent Greeting use cases assume a common setup.

In the real-world scenario, an external customer calls a number and is routed through an IVR until the call is eventually offered to an agent.

IP Phones:

  • Customer (1000)

  • Agents (2000, 2001, 2002)

  • IVRs (5000, 5001)

Scenario One

Agent Greeting Start Success

Action

Events

Call information / Notes

1. Customer dials the agent.

GC1 - CallActiveEvent

GC1 - ConnCreatedEvent (1000)

GC1 - ConnConnectedEvent (1000)

GC1 - CallCtlConnInitiatedEv (1000)

GC1 - TermConnCreatedEvent (Term of 1000)

GC1 - TermConnActiveEvent (Term of 1000)

GC1 - CallCtlTermConnTalkingEv (Term of 1000)

GC1 - CallCtlConnDialingEv (1000)

GC1 - CallCtlConnEstablishedEv (1000)

GC1 - ConnCreatedEvent (2000)

GC1 - ConnInprogressEvent (2000)

GC1 - CallCtlConnOfferedEv (2000)

GC1 - ConnAlertingEvent (2000)

GC1 - CallCtlConnAlertingEv (2000)

GC1 - TermConnCreatedEvent (Term of 2000)

GC1 - TermConnRingingEvent (Term of 2000)

GC1 - CallCtlTermConnRingingEv (Term of 2000)

GC1 - ConnConnectedEvent (2000)

GC1 - CallCtlConnEstablishedEv (2000)

GC1 - TermConnActiveEvent (Term of 2000)

GC1 - CallCtlTermConnTalkingEv (Term of 2000)

This is a basic call.

Calling = 1000 (Customer)

Called = 2000 (Agent)

2. Application gets the TerminalConnection for 2000 on GC1 and invokes addMediaStream( "5000", "2000" )

GC2 - CallActiveEvent

GC2 - ConnCreatedEvent (5000)

GC2 - ConnInprogressEvent (5000)

GC2 - CallCtlConnOfferedEv (5000)

GC2 - ConnAlertingEvent (5000)

GC2 - CallCtlConnAlertingEv (5000)

GC2 - TermConnCreatedEvent (Term of 5000)

GC2 - TermConnRingingEvent (Term of 5000)

GC2 - CallCtlTermConnRingingEv (Term of 5000)

GC2 - ConnConnectedEvent (5000)

GC2 - CallCtlConnEstablishedEv (5000)

GC2 - TermConnActiveEvent (Term of 5000)

GC2 - CallCtlTermConnTalkingEv (Term of 5000)

GC1 - CiscoMediaStreamStartedEv (2000)

This is a server call.

Calling = 2000 (Agent)

Called = 5000 (IVR)

The Calling Party number is as specified in the addMediaStream() method ("2000" in this case), and is available immediately from the CallActiveEvent.

Note 

No connection for 2000 is created, as 2000 is "spoofed".

Agent Greeting is complete.

3. Application disconnects IVR, or tester manually hangs up the IVR device.

GC2 - CallCtlTermConnDroppedEv (Term of 5000)

GC2 - ConnDisconnectedEvent (5000)

GC2 - CallCtlConnDisconnectedEv (5000)

GC2 - CallInvalidEvent (5000)

GC2 - CallObservationEndedEv

GC1 - CiscoMediaStreamEndedEv (2000)

BIB call is cleaned up.

Ev.isSuccessful() = true.

The call continues as normal.

4. Agent finishes the conversation and ends the call

GC1 - TermConnDroppedEv (Term of 2000)

GC1 - CallCtlTermConnDroppedEv (Term of 2000)

GC1 - ConnDisconnectedEvent (2000)

GC1 - CallCtlConnDisconnectedEv (2000)

GC1 - TermConnDroppedEv (Term of 1000)

GC1 - CallCtlTermConnDroppedEv (Term of 1000)

GC1 - ConnDisconnectedEvent (1000)

GC1 - CallCtlConnDisconnectedEv (1000)

GC1 - CallInvalidEvent

GC1 - CallObservationEndedEv

Primary call is cleaned up.

Scenario Two

Agent Greeting Stop Success

Agent

Events

Call information / Notes

1. Customer calls the agent and the agent answers. Application invokes addMediaStream().

GC1 - CiscoMediaStreamStartedEv (2000)

Ev.getIVRCall() = Call for CG2.

2. While the greeting is played, the application invokes removeMediaStream().

GC2 - CallCtlTermConnDroppedEv (Term of 5000)

GC2 - ConnDisconnectedEvent (5000)

GC2 - CallCtlConnDisconnectedEv (5000)

GC2 - CallInvalidEvent (5000)

GC2 - CallObservationEndedEv

GC1 - CiscoMediaStreamEndedEv (2000)

The Agent Greeting is cut short. The BIB call is cleaned up.

Ev.isSuccessful() = true.

The call continues as normal.

3. The agent finishes the conversation and ends the call.

GC1 - TermConnDroppedEv (Term of 2000)

GC1 - CallCtlTermConnDroppedEv (Term of 2000)

GC1 - ConnDisconnectedEvent (2000)

GC1 - CallCtlConnDisconnectedEv (2000)

GC1 - TermConnDroppedEv (Term of 1000)

GC1 - CallCtlTermConnDroppedEv (Term of 1000)

GC1 - ConnDisconnectedEvent (1000)

GC1 - CallCtlConnDisconnectedEv (1000)

GC1 - CallInvalidEvent

GC1 - CallObservationEndedEv

The primary call is cleaned up.

Scenario Three

Agent Greeting Start Failure: Resource Unavailable

Agent

Event

Call information / Notes

1. Customer dials the Agent

GC1 - CallActiveEvent

GC1 - ConnCreatedEvent (1000)

GC1 - ConnConnectedEvent (1000)

GC1 - CallCtlConnInitiatedEv (1000)

GC1 - TermConnCreatedEvent (Term of 1000)

GC1 - TermConnActiveEvent (Term of 1000)

GC1 - CallCtlTermConnTalkingEv (Term of 1000)

GC1 - CallCtlConnDialingEv (1000)

GC1 - CallCtlConnEstablishedEv (1000)

GC1 - ConnCreatedEvent (2000)

GC1 - ConnInprogressEvent (2000)

GC1 - CallCtlConnOfferedEv (2000)

GC1 - ConnAlertingEvent (2000)

GC1 - CallCtlConnAlertingEv (2000)

GC1 - TermConnCreatedEvent (Term of 2000)

GC1 - TermConnRingingEvent (Term of 2000)

GC1 - CallCtlTermConnRingingEv (Term of 2000)

GC1 - ConnConnectedEvent (2000)

GC1 - CallCtlConnEstablishedEv (2000)

GC1 - TermConnActiveEvent (Term of 2000)

GC1 - CallCtlTermConnTalkingEv (Term of 2000)

This is a basic call

Calling = 1000 (Customer)

Called = 2000 (Agent)

2. The application gets the TerminalConnection for 2000 on GC1and invokes addMediaStream( "5000", "2000" ).

No BIB call is created. JTAPI throws a ResourceUnavailableException with text as "Unable to allocate built in bridge resource".

The call continues as normal.

3. The agent finishes the conversation and ends the call.

GC1 - TermConnDroppedEv (Term of 2000)

GC1 - CallCtlTermConnDroppedEv (Term of 2000)

GC1 - ConnDisconnectedEvent (2000)

The primary call is cleaned up.

API for Exposing Built-in-Bridge Status

Phone TermA, CTI port TermB, and RoutePoint TermC are in application’s control list.

Use Case One

BIB is disabled on service parameters and device page of TermA.

Action

Result

Call information

TermA.isBuiltInBridgeEnabled()

False

TermB.isBuiltInBridgeEnabled()

MethodNotSupportedException

TermC.isBuiltInBridgeEnabled()

MethodNotSupportedException

Use Case Two

BIB is disabled on service parameters page and enabled on device page of TermA..

Action

Result

Call information

TermA.isBuiltInBridgeEnabled()

True

TermB.isBuiltInBridgeEnabled()

MethodNotSupportedException

TermC.isBuiltInBridgeEnabled()

MethodNotSupportedException

Use Case Three

BIB is enabled on service parameters page and disabled on device page of TermA.

Action

Result

Call information

TermA.isBuiltInBridgeEnabled()

False

TermB.isBuiltInBridgeEnabled()

MethodNotSupportedException

TermC.isBuiltInBridgeEnabled()

MethodNotSupportedException

Use Case Four

BIB is enabled on service parameters page and set to default on device page of TermA.

Action

Result

Call information

TermA.isBuiltInBridgeEnabled()

True

TermB.isBuiltInBridgeEnabled()

MethodNotSupportedException

TermC.isBuiltInBridgeEnabled()

MethodNotSupportedException

Use Case Five

Phone TermA is not registered. BIB is enabled on device page of TermA.

Action

Result

Call information

TermA.isBuiltInBridgeEnabled()

InvalidStateException

Add observers and register TermB and TermC.

TermB.isBuiltInBridgeEnabled()

MethodNotSupportedException

TermC.isBuiltInBridgeEnabled()

MethodNotSupportedException

Backward Compatibility Enhancements

This feature is not expected to change the performance or scalability of Cisco Unified Communications Manager JTAPI. There is no change in the number of events between JTAPI and CTI. For features involving GCID changes this feature introduces one extra event which should not cause any performance issues.

In all cases events listed below are delivered to call observers when only one party is in control list. TERMA indicates terminal of A.

Scenario One

A calls B, B transfers the call to C. GC1 is the call between A and B, GC2 is the consult call between B and C. Similar events are delivered for Conference and other features.

Action

Events

B completes the transfer. Events to call observer on C

GC2 CiscoTransferStartEv
Cause: CAUSE_NORMAL
Reason = REASON_TRANSFER

CallActiveEv GC1
Cause: CAUSE_NORMAL
CiscoCause: CAUSE_NORMALUNSPECIFIED
Reason = REASON_TRANSFER

ConnCreatedEv C
Cause: CAUSE_NORMAL
CiscoCause: CAUSE_NORMALUNSPECIFIED
Reason = REASON_TRANSFER

ConnCreatedEv B
Cause: CAUSE_NORMAL
CiscoCause: CAUSE_NORMALUNSPECIFIED
Reason = REASON_TRANSFER

CiscoCallChangedEv SurvingCall = GC1,  original call = GC2
CiscoCause: NORMAL
Reason: REASON_TRANSFER

Events delivered to CallObserver of B (transfer controller)

ConnConnectedEv C
Cause: CAUSE_NORMAL
CiscoCause: CAUSE_NORMALUNSPECIFIED
Reason = REASON_TRANSFER

CallCtlConnEstablishedEv C
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_TRANSFER
CiscoCause: CAUSE_NORMALUNSPECIFIED
Reason = REASON_TRANSFER

TermConnCreatedEv TERM C
Cause: CAUSE_NORMAL
CiscoCause: CAUSE_NORMALUNSPECIFIED
Reason = REASON_TRANSFER

TermConnActiveEv TERM C
Cause: CAUSE_NORMAL
CiscoCause: CAUSE_NORMALUNSPECIFIED
Reason = REASON_TRANSFER

CallCtlTermConnTalkingEv TERM C
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_TRANSFER
CiscoCause: CAUSE_NORMALUNSPECIFIED
Reason = REASON_TRANSFER

ConnConnectedEv B
Cause: CAUSE_NORMAL
CiscoCause: CAUSE_NORMALUNSPECIFIED
Reason = REASON_TRANSFER

GC2: ConnDisconnectedEv B
REASON = REASON_TRANSFER
Cause: CAUSE_NORMAL

GC2: ConnDisconnectedEv C
REASON = REASON_TRANSFER
Cause: CAUSE_NORMAL

GC2: TermConnDropped TERMB
REASON = REASON_TRANSFER
Cause: CAUSE_NORMAL

GC2: CalInvalid
REASON = REASON_TRANSFER
Cause:CAUSE_NORMAL

GC1: CallCtlTermConnHeldEv TERMB
REASON = REASON_TRANSFER
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL

GC2: ConsultCallActive
REASON = NORMAL
Cause:CAUSE_NEW_CALL

GC2: ConnCreatedEv B
REASON = NORMAL
Cause:CAUSE_NORMAL

GC2: ConnConnectedEv B
REASON = NORMAL
Cause:CAUSE_NORMAL

GC1: ConnDisconnectedEv B
REASON = REASON_TRANSFER
Cause: CAUSE_UNKNOWN

GC1: CallCtlConnDisconnectedEv B
REASON = REASON_TRANSFER
Cause: CAUSE_UNKNOWN
CallControlCause: CAUSE_TRANSFER

GC1: TermConnDroppedEv TERMB
REASON = REASON_TRANSFER
Cause: CAUSE_UNKNOWN

GC1: CallCtlTermConnDroppedEv TERMB
REASON = REASON_TRANSFER
CallControlCause: CAUSE_TRANSFER

GC1: ConnDisconnectedEv A
REASON = REASON_TRANSFER

GC1: CallCtlConnDisconnectedEv A
REASON = REASON_TRANSFER
CallControlCause: CAUSE_TRANSFER

GC1: CallInvalidEv
REASON = REASON_TRANSFER

GC2: ConnDisconnectedEv C
REASON = REASON_TRANSFER

GC2: CallCtlConnDisconnectedEv C
REASON = REASON_TRANSFER
CallControlCause: CAUSE_TRANSFER

GC2: TermConnDroppedEv TERMB
REASON = REASON_TRANSFER

GC2: CallCtlTermConnDroppedEv TERMB
REASON = REASON_TRANSFER
CallControlCause: CAUSE_TRANSFER

GC2: ConnDisconnectedEv B
REASON = REASON_TRANSFER

GC2: CallCtlConnDisconnectedEv B
REASON = REASON_TRANSFER
CallControlCause: CAUSE_TRANSFER

GC2: CallInvalidEv
REASON = REASON_TRANSFER

GC2: CallObservationEndedEv
REASON = NORMAL
Cause:CAUSE_NORMAL

GC1 CiscoTransferEndEv
REASON = REASON_TRANSFER
Cause: CAUSE_NORMAL

GC2 CallObservationEndedEv
REASON = NORMAL
Cause:CAUSE_NORMAL

Scenario Two

A calls B, call = GC1. B parks the call at 99999. C unparks the call using call GC2.

Action

Events

Events delivered to call observer on A when call is parked.

When call is unparked using GC2

GC1: ConnDisconnectedEv B
REASON = REASON_PARK
Cause: CAUSE_NORMAL

GC1: CallCtlConnDisconnectedEv B
REASON = REASON_PARK
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_PARK

GC1: ConnCreatedEv 9999
REASON = REASON_PARK
Cause: CAUSE_NORMAL

GC1: ConnInProgressEv 9999
REASON = REASON_PARK
Cause: CAUSE_NORMAL

GC1: CallCtlConnQueuedEv 9999
REASON = REASON_PARK
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_PARK

GC2: CiscoCallChangedEv Surviving =  GC2
origcall =  GC1 address =  A
REASON = REASON_UNPARK

CallActiveEv
REASON = REASON_UNPARK
Cause: CAUSE_NEW_CALL

GC2: ConnCreatedEv A
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL

GC2: ConnConnectedEv A
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL

GC2: CallCtlConnEstablishedEv A
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_PARK

GC2: TermConnCreatedEv TERMA
REASON = REASON_UNPARK

GC2: TermConnActiveEv TERMA
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL

GC2: CallCtlTermConnTalkingEv TERMA
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_PARK

GC1: ConnDisconnectedEv 9999
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL

GC1: CallCtlConnDisconnectedEv 9995
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_PARK

GC1: TermConnDroppedEv TERMA
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL

GC1: CallCtlTermConnDroppedEv TERMA
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_PARK

GC1: ConnDisconnectedEv A
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL

GC1: CallCtlConnDisconnectedEv A
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_PARK

GC1: CallInvalidEv
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL

GC1: CallObservationEndedEv
REASON = NORMAL
Cause: CAUSE_NORMAL

GC2: ConnCreatedEv C
REASON = REASON_UNPARK
Cause: CAUSE_NORMAL

GC2: ConnConnectedEv C
REASON = UNPARK
Cause: CAUSE_NORMAL

GC2: CallCtlConnEstablishedEv C
REASON = UNPARK
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_PARK

Scenario Three

A calls B, B has forward no answer to C. B does not answer and call is offered to C.

Action

Events

Events delivered to call observer on A.

GC1: CallActiveEv
REASON = NORMAL
Cause: CAUSE_NEW_CALL

GC1: ConnCreatedEv A
REASON = NORMAL
Cause: CAUSE_NORMAL

GC1: ConnConnectedEv A
REASON = NORMAL
Cause: CAUSE_NORMAL

GC1: CallCtlConnInitiatedEv A
REASON = NORMAL
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL

GC1: TermConnCreatedEv TERMA
REASON = NORMAL

GC1: TermConnActiveEv TERMA
REASON = NORMAL
Cause: CAUSE_NORMAL

GC1: CallCtlTermConnTalkingEv TERMA
REASON = NORMAL
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL

GC1: CallCtlConnDialingEv A
REASON = NORMAL
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL

GC1: CallCtlConnEstablishedEv A
REASON = NORMAL
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL

GC1: ConnCreatedEv B
REASON = NORMAL
Cause: CAUSE_NORMAL

GC1: ConnInProgressEv B
REASON = NORMAL
Cause: CAUSE_NORMAL

GC1: CallCtlConnOfferedEv B
REASON = NORMAL
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL

GC1: ConnAlertingEv
REASON = NORMAL
Cause: CAUSE_NORMAL

GC1: CallCtlConnAlertingEv B
REASON = NORMAL
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL

GC1: ConnCreatedEv C
REASON = REASON_FORWARDNOANSWER  
Cause: CAUSE_NORMAL

GC1: ConnInProgressEv C
REASON =  REASON_FORWARDNOANSWER              
Cause: CAUSE_NORMAL

GC1: CallCtlConnOfferedEv C
REASON =  REASON_FORWARDNOANSWER
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_REDIRECTED

GC1: ConnAlertingEv C
REASON =  REASON_FORWARDNOANSWER              
Cause: CAUSE_NORMAL

GC1: CallCtlConnAlertingEv C
REASON =  REASON_FORWARDNOANSWER
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL

GC1: ConnDisconnectedEv B
REASON =  REASON_FORWARDNOANSWER
Cause: CAUSE_NORMAL  

GC1: CallCtlConnDisconnectedEv B
REASON =  REASON_FORWARDNOANSWER
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_REDIRECTED  

GC1: ConnConnectedEv C
REASON = NORMAL
Cause: CAUSE_NORMAL  

GC1: CallCtlConnEstablishedEv C
REASON = NORMAL
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL  

Scenario Four

A calls B, B redirects the call to C.

Action

Events

Events delivered to call observer on B.

GC1: CallActiveEv
REASON = NORMAL
Cause: CAUSE_NEW_CALL

GC1: ConnCreatedEv B
REASON = NORMAL
Cause: CAUSE_NORMAL

GC1: ConnInProgressEv
REASON = NORMAL
Cause: CAUSE_NORMAL

GC1: CallCtlConnOfferedEv B
REASON = NORMAL
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL

GC1: ConnCreatedEv A
REASON = NORMAL
Cause: CAUSE_NORMAL

GC1: ConnConnectedEv A
REASON = NORMAL
Cause: CAUSE_NORMAL

GC1: CallCtlConnEstablishedEv A
REASON = NORMAL
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL

GC1: ConnAlertingEv B
REASON = NORMAL
Cause: CAUSE_NORMAL  

GC1: CallCtlConnAlertingEv B
REASON = NORMAL
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL  

GC1: TermConnCreatedEv TERMB
REASON = NORMAL
Cause: Other: 0

GC1: TermConnRingingEv TERMB
REASON = NORMAL
Cause: CAUSE_NORMAL

GC1: CallCtlTermConnRingingEvImpl TERMB
REASON = NORMAL
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_NORMAL

GC1: ConnDisconnectedEv A
REASON = REDIRECT
Cause: CAUSE_NORMAL

GC1: CallCtlConnDisconnectedEv A
REASON = REDIRECT
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_REDIRECTED

GC1: TermConnDroppedEv TERMB
REASON = REDIRECT
Cause: CAUSE_NORMAL

GC1: CallCtlTermConnDroppedEv TERMB
REASON = REDIRECT
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_REDIRECTED

GC1: ConnDisconnectedEv B
REASON = REDIRECT
Cause: CAUSE_NORMAL

GC1: CallCtlConnDisconnectedEv B
REASON = REDIRECT
Cause: CAUSE_NORMAL
CallControlCause: CAUSE_REDIRECTED  

GC1: CallInvalidEv
REASON = REDIRECT
Cause: CAUSE_NORMAL  

Barge and Privacy

The following diagrams illustrate the message flows for Barge and Privacy.

Barge



CBarge



Privacy



Call Control Discovery

Scenario 1: A Calls 1000 in Other Cluster (SAF ICT)

Action

Result

Call info

A dials 1000, this call is first be intercepted by CCD Requesting Feature, and CCD Requesting feature extends this call to SIP trunk

CallActiveEv

ConnCreatedEv –A

ConnConnectedEv – A

CallCtlConnDialingEv - ATermConnCreatedEv - TA

TermConnActiveEv –TA

CallCtlTermConnTalkingEv - TA

Called Party is 1000

ConnCreatedEv 1000

ConnInProgressEv 1000

CallCtlConnOfferedEv 1000

getCurrentCallingAddress() = A

getCurrentCalledAddress() = 1000

getCalledAddress() = 1000

Scenario 2: A Calls B, Within Same Cluster. B Redirects the Call to 1000, Which Is in Another Cluster (SAF ICT)

Action

Result

Call info

A calls B within the same cluster

CallActiveEv

ConnCreatedEv A

ConnConnectedEv A

CallCtlConnInitiatedEv A

TermConnCreatedEv TA

TermConnActiveEv TA

CallCtlTermConnTalkingEv TA

CallCtlConnEstablishedEv A

ConnCreatedEv B

ConnCreatedEv B

CallCtlConnOfferedEv B

ConnAlertingEv B

CallCtlConnAlertingEv B

TermConnCreatedEv TB

TermConnRingingEv TB

CallCtlTermConnRingingEvImpl TB

B redirects the call to 1000

TermConnDroppedEv TB

CallCtlTermConnDroppedEv TB

ConnDisconnectedEv B

CallCtlConnDisconnectedEv B

ConnCreatedEv 1000

getCurrentCallingAddress() = A

getCurrentCalledAddress() = 1000

getCalledAddress() = B

getLastRedirectedAddress() = B

Scenario 3: A Calls 1000 Which Is in the Other Cluster (SAF ICT Bandwidth Is Low)

Action

Result

Call info

A dials 1000, this call is first intercepted by CCD Requesting Feature, and CCD Requesting feature extends this call to SIP trunk

CallActiveEv

ConnCreatedEv –A

ConnConnectedEv – A

CallCtlConnDialingEv - ATermConnCreatedEv - TA

TermConnActiveEv –TA

CallCtlTermConnTalkingEv - TA

SIP trunk rejects this as bandwidth is not available

CallCtlConnEstablishedEv –A

ConnCreatedEv 1000

ConnConnectedEv 1000

CallCtlConnOfferedEv 1000

getCallingAddress() = A

getCalledAddress() = 1000

getCurrentCallingAddress() = A

getCurrentCalledAddress() = 1000

getLastRedirectedAddress() = ""

CCD Requesting feature starts PSTN failover by directing this caller to 1000’s PSTN failover number. Call is sent out to a PSTN gateway, and calling side moves to Ringback state.

CallCtlConnNetworkReachedEv 1000

CallCtlConnNetworkAlertingEv 1000

CiscoFeatureReason = NORMAL

CallCtlCause = CAUSE_NORMAL

getCallingAddress() = A

getCalledAddress() = 1000

getCurrentCallingAddress() = A

getCurrentCalledAddress() = 1000

getLastRedirectedAddress() = 1000

Scenario 4: A Calls B Within the Cluster. B Redirects the Call to 1000 (Low Bandwidth SAF ICT)

Action

Result

Call info

A calls B within the same cluster

CallActiveEv

ConnCreatedEv A

ConnConnectedEv A

CallCtlConnInitiatedEv A

TermConnCreatedEv TA

TermConnActiveEv TA

CallCtlTermConnTalkingEv TA

CallCtlConnEstablishedEv A

ConnCreatedEv B

ConnCreatedEv B

CallCtlConnOfferedEv B

ConnAlertingEv B

CallCtlConnAlertingEv B

TermConnCreatedEv TB

TermConnRingingEv TB

CallCtlTermConnRingingEvImpl TB

B redirects the call to 1000. This call is first intercepted by CCD Requesting Feature, and CCD Requesting feature extends this call to SIP trunk

TermConnDroppedEv TB

CallCtlTermConnDroppedEv TB

ConnDisconnectedEv B

CallCtlConnDisconnectedEv B

CCD Requesting feature starts PSTN failover by directing this caller to 1000’s PSTN failover number. Call is sent out to a PSTN gateway

ConnCreatedEv 1000

ConnConnectedEv 1000

getCallingAddress() = A

getCurrentCallingAddress() = A

getCurrentCalledAddress() = 1000

getCalledAddress() = B

getLastRedirectedAddress() = 1000

Reason = REASON_SAF_CCD_PSTN_FAILOVER

Scenario 5: A Calls B, B Transfers the Call to 1000 (Low Bandwidth SAF ICT)

Action

Result

Call info

A calls B

GC1 CallActiveEv

GC1 ConnCreatedEv A

GC1 ConnConnectedEv A

GC1 CallCtlConnInitiatedEv A

GC1 TermConnCreatedEv TA

GC1 TermConnActiveEv TA

GC1 CallCtlTermConnTalkingEv TA

GC1 CallCtlConnDialingEv A

GC1 CallCtlConnEstablishedEv A

GC1 ConnCreatedEv B

GC1 ConnCreatedEv B

GC1 CallCtlConnOfferedEv B

GC1 ConnAlertingEv B

GC1 CallCtlConnAlertingEv B

GC1 TermConnCreatedEv TB

GC1 TermConnRingingEv TB

GC1 CallCtlTermConnRingingEvImpl TB

B makes a consult call to 1000. This call is first intercepted by CCD Requesting Feature, and CCD Requesting feature extends this call to SIP trunk.

GC2 CallActiveEv

GC2 ConnCreatedEv B

GC2 ConnConnectedEv B

GC2 CallCtlConnInitiatedEv B

GC2 TermConnCreatedEv TB

GC2 TermConnActiveEv TB

GC2 CallCtlTermConnTalkingEv TB

GC2 CallCtlConnEstablishedEv B

GC2 ConnCreatedEv 1000

GC2 ConnCreatedEv 1000

GC2 CallCtlConnOfferedEv 1000

SIP trunk rejects this call as bandwidth is not available

CCD Requesting feature starts PSTN failover by directing this caller to 1000’s PSTN failover number (or as configured on the server). Call is sent out to a PSTN gateway.

GC2 CallCtlConnNetworkReachedEv 1000

GC2 CallCtlConnNetworkAlertingEv 1000

CiscofeatureReason = NORMAL

CallCtlCause = CAUSE_NORMAL

getCurrentCallingAddress() = A

getCurrentCalledAddress() = 1000

getCalledAddress() = B

getLastRedirectedAddress() = 1000

B completes the transfer

GC1 CiscoTermConnSelectChangedEv B

GC2 CiscoTermConnSelectChangedEv B

GC1 CiscoTransferStartedEv

GC2 CiscoCallChangedEv

GC2 CiscoCallChangedEv

GC1 ConnCreatedEv 1000

GC1 ConnAlertingEv 1000

GC1 CallCtlConnAlertingEv 1000

GC1 TermConnCreatedEv 1000

GC1 TermConnRingingEv 1000

GC1 CallCtlTermConnRingingEvImpl 1000

GC2 TermConnDroppedEv 1000

GC2 CallCtlTermConnDroppedEv 1000

GC2 ConnDisconnectedEv1408972 1000

GC2 CallCtlConnDisconnectedEv 1000

GC1 TermConnDroppedEv B

GC1 CallCtlTermConnDroppedEv B

GC1 ConnDisconnectedEv B

GC1 CallCtlConnDisconnectecEv B

GC2 TermConnDroppedEv B

GC2 CallCtlTermConnDroppedEv B

GC2 ConnDisconnectedEv B

GC2 CallCtlConnDisconnectecEv B

GC2 CallInvalidEv

GC1 CiscoTransferEndEv

Reason = REASON_TRANSFEREDCALL

A and 1000 come in direct call

GC1 ConnConnectedEv 1000

GC1 CallCtlConnEstablishedEv 1000

GC1 termConnActiveEv 1000

GC1 CallCtlTermConnTalkingEv 1000

Scenario 6: A Calls B, B Consults 1000 and Adds It to Conference (Low Bandwidth SAF ICT)

Action

Result

Call info

A calls B

GC1 CallActiveEv

GC1 ConnCreatedEv A

GC1 ConnConnectedEv A

GC1 CallCtlConnInitiatedEv A

GC1 TermConnCreatedEv TA

GC1 TermConnActiveEv TA

GC1 CallCtlTermConnTalkingEv TA

GC1 CallCtlConnDialingEv A

GC1 CallCtlConnEstablishedEv A

GC1 ConnCreatedEv B

GC1 ConnCreatedEv B

GC1 CallCtlConnOfferedEv B

GC1 ConnAlertingEv B

GC1 CallCtlConnAlertingEv B

GC1 TermConnCreatedEv TB

GC1 TermConnRingingEv TB

GC1 CallCtlTermConnRingingEvImpl TB

B makes a consult call to 1000 for conference. This call is first intercepted by CCD Requesting Feature, and CCD Requesting feature extends this call to SIP trunk.

GC2 CallActiveEv

GC2 ConnCreatedEv B

GC2 ConnConnectedEv B

GC2 CallCtlConnInitiatedEv B

GC2 TermConnCreatedEv TB

GC2 TermConnActiveEv TB

GC2 CallCtlTermConnTalkingEv TB

GC2 CallCtlConnEstablishedEv B

GC2 ConnCreatedEv 1000

GC2 ConnCreatedEv 1000

GC2 CallCtlConnOfferedEv 1000

SIP trunk rejects this call as no more bandwidth is available

CCD Requesting feature starts PSTN failover by directing this caller to 1000’s PSTN failover number; call is sent out to a PSTN gateway.

GC2 CallCtlConnNetworkReachedEv 1000

GC2 CallCtlConnNetworkAlertingEv 1000

CiscofeatureReason = NORMAL

CallCtlCause = CAUSE_NORMAL

getCurrentCallingAddress() = A

getCurrentCalledAddress() = 1000

getCalledAddress() = B

getLastRedirectedAddress() = 1000

B completes the conference

GC1 CiscoTermConnSelectChangedEv B

GC2 CiscoTermConnSelectChangedEv B

GC1 CiscoConferenceStartedEv

GC2 termConnDroppedEv B

GC2 CallCtlTermConnDroppedEv B

Gc2 ConnDisconnectedEv B

GC2 CallCtlConnDisConnectedEv B

GC1 CallCtlTermConnTalkingEv B

GC2 CiscoCallChangedEv

GC1 ConnCreatedEv 1000

GC1 ConConnectedEv 1000

GC1 CallCtlConnEstablishedEv 1000

GC1 TermConnCreatedEv 1000

GC1 TermConnActiveEv 1000

GC1 CallCtlTermConnTalkingEv 1000

GC2 TermConnDroppedEv 1000

GC2 CallCtlTermConnDroppedEv 1000

GC2 ConnDisconnectedEv 1000

GC2 CallCtlConnDisconnectedEv 1000

GC2 CallInvalidEv

GC1 CiscoTermConnSelectChangedEv B

GC1 CiscoTermConnSelectChangedEv B

Reason = REASON_CONFERENCE

CallFwdAll Keys Press Notification

(Scenario 1): Application Is Observing A; A Goes Off-Hook

Action

Result

Call info

Application observes A.

CiscoAddrInServiceEv – A

A goes off-hook.

GC1:

CallActiveEv

ConnCreatedEv –A

ConnConnectedEv – A

CallCtlConnInitiatedEv - A

TermConnCreatedEv - TA

TermConnActiveEv –TA

CallCtlTermConnTalkingEv –TA

TermConnActiveEv-TA. getCall().getCFWDAllKeyPressIndicator() returns CiscoCall.CFWD_ALL_NONE

currentCalling = A

currentCalled = null

CAUSE = CAUSE_NORMAL

(Scenario 2): A Goes Off-Hook; Application Starts Observing A

Action

Result

Call info

A goes off-hook

No Event is delivered

Application starts observing A

CiscoAddrInServiceEv – A

GC1:

CallActiveEv

ConnCreatedEv –A

ConnConnectedEv – A

CallCtlConnInitiatedEv - A

TermConnCreatedEv - TA

TermConnActiveEv –TA

CallCtlTermConnTalkingEv –TA

TermConnActiveEv-TA. getCall().getCFWDAllKeyPressIndicator() returns CiscoCall.CFWD_ALL_NONE

currentCalling = A

currentCalled = null

CAUSE = CAUSE_SNAPSHOT

(Scenario 3): Application Is Observing A; User Presses CFwdAll Soft Key on Phone A in On-Hook State

Action

Result

Call info

Application observes A.

CiscoAddrInServiceEv – A

User presses CFwdAll soft key on phone A

GC1:

CallActiveEv

ConnCreatedEv –A

ConnConnectedEv – A

CallCtlConnInitiatedEv - A

TermConnCreatedEv - TA

TermConnActiveEv –TA

CallCtlTermConnTalkingEv –TA

TermConnActiveEv-TA. getCall().getCFWDAllKeyPressIndicator() returns CiscoCall.CFWD_ALL_SET

currentCalling = A

currentCalled = null

CAUSE = CAUSE_NORMAL

(Scenario 4): User Presses CFwdAll Soft Key on Phone A Goes in On-Hook State; Application Starts Observing A

Action

Result

Call info

User presses CFwdAll soft key on phone A

No event is delivered

Application starts observing A

GC1:

CallActiveEv

ConnCreatedEv –A

ConnConnectedEv – A

CallCtlConnInitiatedEv - A

TermConnCreatedEv - TA

TermConnActiveEv –TA

CallCtlTermConnTalkingEv –TA

TermConnActiveEv-TA. getCall().getCFWDAllKeyPressIndicator() returns CiscoCall.CFWD_ALL_SET

currentCalling = A

currentCalled = null

CAUSE = CAUSE_SNAPSHOT

(Scenario 5): Application Is Observing A; A Goes Off-Hook and Presses CFwdAll Soft Key

Action

Result

Call info

Application observes A.

CiscoAddrInServiceEv – A

A goes off-hook.

GC1:

CallActiveEv

ConnCreatedEv –A

ConnConnectedEv – A

CallCtlConnInitiatedEv - A

TermConnCreatedEv - TA

TermConnActiveEv –TA

CallCtlTermConnTalkingEv –TA

TermConnActiveEv-TA. getCall().getCFWDAllKeyPressIndicator() returns CiscoCall_CFWD_ALL_NONE

currentCalling = A

currentCalled = null

CAUSE = CAUSE_NORMAL

A presses CFwdAll soft key

No Event is delivered

(Scenario 6): Application Is Observing A; User Presses CFwdAll Key on Phone A and Dial 9999(B) to Set the CFA Destination as B; User Then Presses CFwdAll Soft Key Again to Cancel the CallFwdAll

Action

Result

Call info

Application observes A.

CiscoAddrInServiceEv – A

User presses CFwdAll soft key on phone A

GC1:

CallActiveEv

ConnCreatedEv –A

ConnConnectedEv – A

CallCtlConnInitiatedEv – A

TermConnCreatedEv – TA

TermConnActiveEv –TA

CallCtlTermConnTalkingEv –TA

TermConnActiveEv-TA. getCall().getCFWDAllKeyPressIndicator() returns CiscoCall.CFWD_ALL_SET

currentCalling = A

currentCalled = null

CAUSE = CAUSE_NORMAL

User dials B to set CFA destination as B

GC1:

CallCtlConnDialingEv – A

CallCtlConnEstablishedEv – A

TermConnDroppedEv – TA

CallCtlTermConnDroppedEv – TA

ConnDisconnectedEv – A

CallCtlConnDisconnectedEv – A

CallInvalidEv

currentCalling = A

currentCalled = null

currentCalling = A

currentCalled = B

CAUSE = CAUSE_NORMAL

User presses CFwdAll soft key on phone A to cancel CFA

GC2:

CallActiveEv

ConnCreatedEv –A

ConnConnectedEv – A

CallCtlConnInitiatedEv - A

TermConnCreatedEv - TA

TermConnActiveEv –TA

CallCtlTermConnTalkingEv –TA

TermConnDroppedEv – TA

CallCtlTermConnDroppedEv – TA

ConnDisconnectedEv – A

CallCtlConnDisconnectedEv – A

CallInvalidEv

(GC2)TermConnActiveEv-TA. getCall().getCFWDAllKeyPressIndicator() returns CiscoCall.CFWD_ALL_CLEAR

currentCalling = A

currentCalled = null

CAUSE = CAUSE_NORMAL

CallSelect and UnSelect

The following diagram illustrates the message flows for CallSelect and UnSelect.



Cius Persistency

Use Cases for Cius Persistency

Usecase

Events on Provider observer

Info

Application has a wireless device TermA in its control list which is registered with IPv4 address 1.1.1.1

ProvInServiceEv

((CiscoTerminal)(Provider.getTerminal(TermA))).getIPV4Address() = 1.1.1.1

The device moves from one WiFi N/W to another resulting in the change in the IPv4 address from 1.1.1.1 to 2.2.2.2

CiscoProvTerminalIPAddressChangedEv TermA

Ev.getIPAddressingMode() = CiscoTerminal.IP_ADDRESSING_MODE_IPV4

Ev.getIPV4Address() = 2.2.2.2

((CiscoTerminal)(Ev.getTerminal()).getIP4Address() = 2.2.2.2

The deivce moves from a IPv4 n/w to a Ipv6 n/w

With new ip as 1::1

CiscoProvTerminalIPAddressChangedEv TermA

Ev.getIPAddressingMode() = CiscoTerminal.IP_ADDRESSING_MODE_IPV6

Ev.getIPV6Address() = 1::1

((CiscoTerminal)(Ev.getTerminal()).getIP6Address() = 1::1

The Device is docked on a base station connected to the ethernet resulting in a change in IP address to 3.3.3.3

CiscoProvTerminalIPAddressChangedEv TermA

Ev.getIPAddressingMode() = CiscoTerminal.IP_ADDRESSING_MODE_IPV4

Ev.getIPV4Address() = 3.3.3.3

Ev.getTerminal() = TermA

((CiscoTerminal)(Ev.getTerminal()).getIP4Address() = 3.3.3.3

Conference and Join

The following diagrams illustrate the message flows for Conference and Join.

Join/Arbitrary Conference



Join/Arbitrary Conference—Page 2



Consult Conference

The message flow for Consult Conference acts the same as the flow for Arbitrary Conference.

Join Across Lines with Enhancements

The message flows for Join Across Lines with Enhancements are described in following tables. A, C, D, E and F are addresses on different terminals. B1 and B2 are addresses on the same terminal, TermB.

Action

Events

Application conferences the two calls on B1 and B2 by invoking GC1.conference(GC2) to chain two conference calls.

Events to CallObserver of A, C and B1:

TermConnActiveEv TermB GC1

CallCtlTermConnTalkingEv TermB GC1 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

ConnCreatedEv Conference-2 GC1

ConnConnectedEv Conference-2 GC1

CallCtlConnEstablishedEv Conference-2 GC1 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

CiscoConferenceChainAddedEv GC1

Ev.getAddedConnection will return connection for Conference-2

Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-2

Ev.getConferenceChain().getChainedConferenceCalls() will return GC1

Event for CallObserver at B2, D & E:

ConnDisconnectedEv B2 GC2 Cause = NORMAL

CallCtlConnDisconnectedEv B2 GC2 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

TermConnDroppedEv TermB GC2 Cause = NORMAL

CallCtlTermConnDroppedEv TermB GC2 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

ConnCreatedEv Conference-1 GC2

ConnConnectedEv Conference-1 GC2

CallCtlConnEstablishedEv Conference-1 GC2 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

CiscoConferenceChainAddedEv – GC2

Ev.getAddedConnection will return connection of Conference-1

Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-1 & Conference-2

Ev.getConferenceChain().getChainedConferenceCalls() will return GC1 & GC2

Application invokes GC2.conference (GC1) to chain two conference calls.

Event for CallObserver at B2, D & E:

TermConnActiveEv TermB GC2

CallCtlTermConnTalkingEv TermB GC2 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

ConnCreatedEv Conference-1 GC2

ConnConnectedEv Conference-1 GC2

CallCtlConnEstablishedEv Conference-1 GC2 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

CiscoConferenceChainAddedEv – GC2

Ev.getAddedConnection will return connection for Conference-1

Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-1

Ev.getConferenceChain().getChainedConferenceCalls() will return GC2

Events for CallObservers at A, B1 & C:

ConnDisconnectedEv B1 GC1 Cause = NORMAL

CallCtlConnDisconnectedEv B1 GC1 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

TermConnDroppedEv TermB GC1 Cause = NORMAL

CallCtlTermConnDroppedEv TermB GC1 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

ConnCreatedEv Conference-2 GC1

ConnConnectedEv Conference-2 GC1

CallCtlConnEstablishedEv Conference-2 GC1 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

CiscoConferenceChainAddedEv – GC1

Ev.getAddedConnection will return connection for Conference-2

Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-2

Ev.getConferenceChain().getChainedConferenceCalls() will return GC1

A, B1, C are in conference-1 (GC1), B1, D, E are in conference-2 (GC2), B2, F, G are in conference-3 (GC-3)

Application completes conference at C by initiating GC1.conference(GC2, GC3) setting B1 as controller.

Event for CallObserver at A, B1 & C:

TermConnActiveEv TermB GC1

CallCtlTermConnTalkingEv TermB GC1 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

ConnCreatedEv Conference-2 GC1

ConnConnectedEv Conference-2 GC1

CallCtlConnEstablishedEv Conference-2 GC1 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

CiscoConferenceChainAddedEv - GC1

Ev.getAddedConnection will return connection for Conference-2

Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-2

Ev.getConferenceChain().getChainedConferenceCalls() will return GC1

TermConnDroppedEv TermB GC2

CallCtlTermConnDroppedEv TermB GC2

ConnCreatedEv Conference-3 GC1

ConnConnectedEv Conference-3 GC1

CallCtlConnEstablishedEv Conference-3 GC1 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

CiscoConferenceChainAddedEv - GC1

Ev.getAddedConnection will return connection for Conference-3

Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-2 & Conference-3

Ev.getConferenceChain().getChainedConferenceCalls() will return GC2 & GC3

Event for CallObserver at B1, D & E:

ConnDisconnectedEv B1 GC2 Cause = NORMAL

CallCtlConnDisconnectedEv B1 GC2 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

TermConnDroppedEv TermB GC2 Cause = NORMAL

CallCtlTermConnDroppedEv TermB GC2 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

ConnCreatedEv Conference-1 GC2

ConnConnectedEv Conference-1 GC2

CallCtlConnEstablishedEv Conference-1 GC2 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

CiscoConferenceChainAddedEv – GC2

Ev.getAddedConnection will return connection for Conference-1

Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-1-GC2

Ev.getConferenceChain().getChainedConferenceCalls() will return GC2

Event for CallObserver at B2, F & G:

ConnDisconnectedEv B2 GC3 Cause = NORMAL

CallCtlConnDisconnectedEv B2 GC3 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

TermConnDroppedEv TermB GC3 Cause = NORMAL

CallCtlTermConnDroppedEv TermB GC3 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

ConnCreatedEv Conference-1 GC3

ConnConnectedEv Conference-1 GC3

CallCtlConnEstablishedEv Conference-1 GC3 Cause = NORMAL, callCtlCause = CAUSE_CONFERENCE

CiscoConferenceChainAddedEv - GC3

Ev.getAddedConnection will return connection for Conference-1

Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-1

Ev.getConferenceChain().getChainedConferenceCalls() will return GC3

Action

Events

Application sets the requestor as B2 and calls GC2.conference(GC1) getControllerAddress() returns B2. getOriginalControllerAddress() returns B1.

A
CiscoConferenceStartEv
CallCtlTermConnTalkingEv TermB GC1
ConnCreatedEv D GC1
ConnConnectedEv D GC1
CallCtlTermConnDroppedEv TermB GC2
CiscoConferenceEndEv

B1
CallCtlTermConnHeldEv TermB GC1
CiscoConferenceStartEv
CallCtlTermConnTalkingEv TermB GC1
ConnCreatedEv D
ConnConnectedEv
CiscoConferenceEndEv

B2
ConnDisconnectedEv B GC2
CallCtlTermConnHeldEv TermB GC2

D
CallActiveEv GC2
ConnAlertingEv D GC2
ConnConnectedEv D GC2
CiscoConferenceStartEv
TermConnDroppedEv TermB GC2
CallActiveEv GC1
CiscoCallChangedEv
TermConnTalkingEv TermB GC1
TermConnDroppedEv TermD GC2
CallObservationEndedEv GC2
CiscoConferenceEndEv

If application uses B1 as request controller in the above setup getControllerAddress() returns B1. getOriginalControllerAddress() returns B1.

Events are same as above

CTI Remote Device

Use Cases

  • Group 1: Get/Add/Remove/Update on Remote Destinations
  • Group 2: CTIRD Incoming/Outgoing/Disconnect/Redirect/Hold/Resume and shared-line call scenarios)
  • Group 3 (CUCSF registration and unregistration, for Normal SIP mode <-> Extend mode, and terminal switching scenarios
  • Group 4: Set/Reset Active Remote Destination scenarios
  • Group 5: CTIRD Transfer/Conference/Multiple-Calls call scenarios
  • Group 6: CTIRD URI-Dialing basic Incoming & Outgoing DVO call scenarios

CTI Remote Device Use Cases Group 1

Scenario 1-1 (Expose All RDs Information on a CTI Remote Device to Application)

User1 has "CTI Remote Device A" in the control list. User invokes CiscoRemoteTerminal.getAllRemoteDestinations() on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. getAllRemoteDestinations() on TermA.

TermA.getAllRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = true

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

Use Cases Group 1: Get/Add/Remove/Update on Remote Destinations

Pre-conditions on Use Cases group 1 below with default jtapi.ini settings, unless specified explicitly:

  • Provider is IN_SERVICE state.

  • Device A (CTI Remote Device - Name: "CTIRD-A", Line A (DN: 1000))

  • Remote Destination 1 (Name: "RD1-A", Number: "4081001111", Active RD: true)

  • Remote Destination 2 (Name: "RD2-A", Number: "4081002222", Active RD: false)

  • Device B (IP Phone - Name: "SEP000DED47D023", Line B (DN: 2000)

  • Device C (CTI Remote Device - Name: "CTIRD-C", Line C (DN: 3000))

  • No Remote Destination configured.

Scenario 1-2 (Expose Active RDs Information on a CTI Remote Device to Application)

User1 has "CTI Remote Device A" in the control list. User invokes CiscoRemoteTerminal.getActiveRemoteDestinations() on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. getActiveRemoteDestinations() on TermA.

TermA.getActiveRemoteDestinations() = CiscoRemoteDestinationInfo[1].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = true

Scenario 1-3 (Fetch RD Information on a CTI Remote Device That Has No RD Configured)

User1 has "CTI Remote Device C" in the control list. User invokes CiscoRemoteTerminal.getAllRemoteDestinations() on terminal C.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. getAllRemoteDestinations() on TermC.

TermC.getAllRemoteDestinations() = null.

Scenario 1-4 (Fetch RD Information on a 'Non-CTI Remote Device')

User1 has "Device B" IP Phone in the control list. User invokes CiscoRemoteTerminal.getAllRemoteDestinations() on terminal B.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. getAllRemoteDestinations() on TermB.

TermB.getAllRemoteDestinations() = null.

Scenario 1-5 (Fetch Active RD Information on a CTI Remote Device That Has No Active RD Configured)

User1 has "CTI Remote Device C" in the control list. User invokes CiscoRemoteTerminal.getActiveRemoteDestinations() on terminal C.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. getAllRemoteDestinations() on TermC.

TermC.getActiveRemoteDestinations() = null.

Scenario 1-6 (Set a Non-Active RD as a New Active RD on a 'CTI Remote Device', Where There Is Already an Existing Active RD for This Device)

User1 has "CTI Remote Device A" in the control list. User invokes CiscoRemoteTerminal.setActiveRemoteDestination("4081002222", true) on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. setActiveRemoteDestination ("4081002222", true) on TermA.

CiscoProvTerminal RemoteDestination ChangedEv

CiscoProvTerminalRemoteDestinationChangedEv. getRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

CiscoProvTerminal RemoteDestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv. getRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = true

Scenario 1-7 (Add a New Non-Active RD on a 'CTI Remote Device')

User1 has "CTI Remote Device A" in the control list. User invokes addRemoteDestination("RD3-A", "4081003333", false) on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. addRemoteDestination ("RD3-A", "4081003333", false) on TermA.

CiscoProvTerminal RemoteDestination ChangedEv

CiscoProvTerminalRemoteDestinationChangedEv. getRemoteDestinations() = CiscoRemoteDestinationInfo[3].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = true

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

CiscoRemoteDestinationInfo[2].getRemoteDestinationName() = "RD3-A"

CiscoRemoteDestinationInfo[2].getRemoteDestinationNumber() = "4081003333"

CiscoRemoteDestinationInfo[2].getIsActiveRD() = false

Scenario 1-8 (Add a New Active RD on a 'CTI Remote Device', with Another Existing Active RD)

User1 has "CTI Remote Device A" in the control list. User invokes addRemoteDestination("RD3-A", "4081003333", true) on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. addRemoteDestination ("RD3-A", "4081003333", true) on TermA.

CiscoProvTermina lRemoteDestination ChangedEv

CiscoProvTerminalRemoteDestinationChangedEv. getRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[3].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

CiscoRemoteDestinationInfo[2].getRemoteDestinationName() = "RD3-A"

CiscoRemoteDestinationInfo[2].getRemoteDestinationNumber() = "4081003333"

CiscoRemoteDestinationInfo[2].getIsActiveRD() = true

Scenario 1-9 (Add a New RD on a 'CTI Remote Device' with a Number That Is the Same as Another Existing RD's Number)

User1 has "CTI Remote Device A" in the control list. User invokes addRemoteDestination("RD3-A", "4081003333", false) on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. addRemoteDestination ("AnyName", "4081002222", false) on TermA.

Caught exception: com.cisco.jtapi. PlatformException Impl: Duplicated Remote Destination Number

Let 'ex' be an instanceof PlatformException:

((CiscoJtapiException) ex).getErrorCode() = CiscoJtapiException. CTIERR_DUPLICATED_REMOTE_DESTINATION_NUMBER.

TermA.getAllRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = true

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

Scenario 1-10 (Remove a RD From a 'CTI Remote Device')

User1 has "CTI Remote Device A" in the control list. User invokes removeRemoteDestination("4081002222") on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. removeRemoteDestination ("4081002222") on TermA.

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[1].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = true

Scenario 1-11 (Remove All RD(s) From a 'CTI Remote Device')

User1 has "CTI Remote Device A" in the control list. User invokes removeAllRemoteDestinations() on terminal A.


Note

JTAPI will loop through the terminal/device's existing remote destinations one by one, so the total number of CiscoProvTerminalRemoteDestinationChangedEv sent to an application should be the same number of available remote destinations being removed. And the order and content of each event can vary, depending on how each remote destination is stored in JTAPI's local cache RD list.


Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. removeAllRemote Destinations() on TermA.

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[1].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = null.

Scenario 1-12 (Update a RD Name on a 'CTI Remote Device')

User1 has "CTI Remote Device A" in the control list. User invokes updateRemoteDestinationName ("4081001111", "MyHome") on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. updateRemoteDestination Name ("4081001111", "MyHome") on TermA.

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "MyHome"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = true

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

Scenario 1-13 (Update a RD Number on a 'CTI Remote Device')

User1 has "CTI Remote Device A" in the control list. User invokes updateRemoteDestinationNumber ("4081001111", "6268210080") on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. updateRemoteDestination Name ("4081001111", "6268210080") on TermA.

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "6268210080"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = true

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

Scenario 1-14 (Add a New RD with an Invalid RD Number on a 'CTI Remote Device')

User1 has "CTI Remote Device A" in the control list. User invokes addRemoteDestination ("iPhone5", "IAmNotANumber", true) on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. addRemoteDestination ("iPhone5", "IAmNotANumber", true) on TermA.

Caught exception: com.cisco.jtapi. PlatformExceptionImpl: Invalid Remote Destination Number

Let 'ex' be an instanceof PlatformException:

((CiscoJtapiException) ex).getErrorCode() = CiscoJtapiException. CTIERR_INVALID_REMOTE_DESTINATION_NUMBER.

TermA.getAllRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = true

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

Scenario 1-15 (Update RD Name with an Invalid/Not-Associated RD Number on a 'CTI Remote Device')

User1 has "CTI Remote Device A" in the control list. User invokes updateRemoteDestinationName ("4085268222", "MyBossOffice") on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. updateRemoteDestination Name ("4085268222", "MyBossOffice") on TermA.

Caught exception: com.cisco.jtapi. PlatformExceptionImpl: Invalid Remote Destination Number

Let 'ex' be an instanceof PlatformException:

((CiscoJtapiException) ex).getErrorCode() = CiscoJtapiException. CTIERR_INVALID_REMOTE_DESTINATION_NUMBER.

TermA.getAllRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = true

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

Scenario 1-16 (Update RD Name with a Null RD Number on a 'CTI Remote Device')

User1 has "CTI Remote Device A" in the control list. User invokes updateRemoteDestinationName (null, "MyBossOffice") on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. updateRemoteDestination Name (null, "MyBossOffice") on TermA.

Caught exception: com.cisco.jtapi. InvalidArgument ExceptionImpl: Invalid Remote Destination Number/Name (updateRemoteDestination Name parameter).

TermA.getAllRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = true

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

Scenario 1-17 (Clear an Existing Active RD as a Non-Active RD on a 'CTI Remote Device')

Explicit Pre-condition: (RD1-A: "4081001111", True; RD2-A: "4081002222", False; RD3-A: "4081003333", False)

User1 has "CTI Remote Device A" in the control list. User invokes CiscoRemoteTerminal.setActiveRemoteDestination("4081001111", false) on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. setActiveRemoteDestination ("4081001111", false) on TermA.

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[3].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD1-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

CiscoRemoteDestinationInfo[2].getRemoteDestinationName() = "RD3-A"

CiscoRemoteDestinationInfo[2].getRemoteDestinationNumber() = "4081003333"

CiscoRemoteDestinationInfo[2].getIsActiveRD() = false

Scenario 1-18 (Remove All RD(s) From a 'CTI Remote Device')

User1 Has "CTI Remote Device C" in the Control List. User Invokes removeAllRemoteDestinations() on Terminal C.

Action

Events

Call info5

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. removeAllRemoteDestinations() on TermC.

Note 

Nothing is removed as there is no RD on this device. JTAPI won't be sending any request to CTI. No CiscoJtapiException will be thrown either.

Scenario 1-19 (Remove All 5 RD(s) From a 'CTI Remote Device')

Explicit Pre-condition: RD1-A: "4081001111", true; RD2-A: "4081002222", false; RD3-A: "4081003333", false; RD4-A: "4081004444", false; RD5-A: "4081005555", false.

User1 has "CTI Remote Device A" in the control list. User invokes removeAllRemoteDestinations() on terminal A.

Note that JTAPI will loop through the terminal/device's existing remote destinations one by one, so the total number of CiscoProvTerminalRemoteDestinationChangedEv sent to an application should be the same number of available remote destinations being removed. And the order and content of each event can vary, depending on how each remote destination is stored in JTAPI's local cache RD list.

Also note currently there is no checking in JTAPI to limit only up to 5 RDs per CTI Remote Device. If application tries to add a new RD to an existing CTI Remote Device that already has 5 RDs, JTAPI will simply send the add request to CTI and let it decide on pass/fail.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. removeAllRemote

Destinations() on TermA.

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[4].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD3-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081003333"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

CiscoRemoteDestinationInfo[2].getRemoteDestinationName() = "RD4-A"

CiscoRemoteDestinationInfo[2].getRemoteDestinationNumber() = "4081004444"

CiscoRemoteDestinationInfo[2].getIsActiveRD() = false

CiscoRemoteDestinationInfo[3].getRemoteDestinationName() = "RD5-A"

CiscoRemoteDestinationInfo[3].getRemoteDestinationNumber() = "4081005555"

CiscoRemoteDestinationInfo[3].getIsActiveRD() = false

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[3].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD3-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081003333"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD4-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081004444"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

CiscoRemoteDestinationInfo[2].getRemoteDestinationName() = "RD5-A"

CiscoRemoteDestinationInfo[2].getRemoteDestinationNumber() = "4081005555"

CiscoRemoteDestinationInfo[2].getIsActiveRD() = false

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD4-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081004444"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD5-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081005555"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[1].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "RD5-A"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081005555"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = null.

Scenario 1-20 (Update a RD's Name and Number and Set It as ActiveRD on a 'CTI Remote Device' at the Same Time)

User1 has "CTI Remote Device A" in the control list. User invokes updateRemoteDestination ("4081002222", "MyVacationHome", "4081009999", true) on terminal A.

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes CiscoRemoteTerminal. updateRemoteDestination ("4081002222", "MyVacationHome", "4081009999", true) on TermA.

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "MyHome"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "RD2-A"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "MyHome"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "MyVacationHome"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081002222"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = false

CiscoProvTerminalRemote DestinationChangedEv

CiscoProvTerminalRemoteDestinationChangedEv.getRemoteDestinations() = CiscoRemoteDestinationInfo[2].

CiscoRemoteDestinationInfo[0].getRemoteDestinationName() = "MyHome"

CiscoRemoteDestinationInfo[0].getRemoteDestinationNumber() = "4081001111"

CiscoRemoteDestinationInfo[0].getIsActiveRD() = false

CiscoRemoteDestinationInfo[1].getRemoteDestinationName() = "MyVacationHome"

CiscoRemoteDestinationInfo[1].getRemoteDestinationNumber() = "4081009999"

CiscoRemoteDestinationInfo[1].getIsActiveRD() = true

CTI Remote Device Use Cases Group 2

Use Cases Group 2: CTIRD Incoming/Outgoing/Disconnect/Redirect/Hold/Resume and Shared-Line Call Scenarios

Pre-conditions on Use Cases group 2 below with default jtapi.ini settings, unless specified explicitly. Note that the CTI Ports have Auto-Accept enabled:

  • Provider is IN_SERVICE state.

  • Device A (CTI Remote Device - Name: "irvCTIRD1", Line A (DN: 8881000))

  • Remote Destination 1 (Name: "IRVOffice", Number: "919498231202", Active RD: true)

  • Device B (CTI Port - Name: "irvCTIPort1", Line B (DN: 8881000))

  • Device C (CTI Port - Name: "irvCTIPort6", Line C (DN: 8886000))

  • Device D (CTI Port - Name: "irvCTIPort7", Line C (DN: 8887000))

  • Device E (CTI Remote Device - Name: "irvCTIRD2", Line E (DN: 8889000))

  • Remote Destination 1 (Name: "IRVCell1", Number: "916267829523", Active RD: true)

  • Device F (CTI Remote Device - Name: "irvCTIRD3", Line E (DN: 8889001))

  • Remote Destination 1 (Name: "IRVCell2", Number: "916267829526", Active RD: true)

Scenario 2-1 (Incoming Call From CTI Port to CTI Remote Device)

C calls E, Application is observing both C and E on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIPort6, 8886000, 8889000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8886000

GC1: ConnConnectedEvent 8886000

GC1: CallCtlConnInitiatedEv 8886000

GC1: TermConnCreatedEvent irvCTIPort6

GC1: TermConnActiveEvent irvCTIPort6

GC1: CallCtlTermConnTalkingEv irvCTIPort6

GC1: CallCtlConnDialingEv 8886000

GC1: CallCtlConnEstablishedEv 8886000

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

GC1: ConnAlertingEvent 8889000

GC1: CallCtlConnAlertingEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnRingingEvent irvCTIRD2

GC1: CallCtlTermConnRingingEv irvCTIRD2

CallingAddress  =  8886000,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  8886000,  
CurrentCalledAddress  =  8889000,  
ModifiedCallingAddress  =  8886000,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: TermConnActiveEvent irvCTIRD2

GC1: CallCtlTermConnTalkingEv irvCTIRD2

CallingAddress = 8886000,

CalledAddress = 8889000,

CurrentCallingAddress = 8886000,

CurrentCalledAddress = 8889000,

ModifiedCallingAddress = 8886000,

ModifiedCalledAddress = 8889000,

No LastRedirectedPartyAddress

Scenario 2-2 (Incoming Call From CTI Port to Non-Observed CTI Remote Device)

C calls E, Application is observing C only on address and terminal. No observer on E. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIPort6, 8886000, 8889000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8886000

GC1: ConnConnectedEvent 8886000

GC1: CallCtlConnInitiatedEv 8886000

GC1: TermConnCreatedEvent irvCTIPort6

GC1: TermConnActiveEvent irvCTIPort6

GC1: CallCtlTermConnTalkingEv irvCTIPort6

GC1: CallCtlConnDialingEv 8886000

GC1: CallCtlConnEstablishedEv 8886000

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

GC1: ConnAlertingEvent 8889000

GC1: CallCtlConnAlertingEv 8889000

CallingAddress  =  8886000,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  8886000,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  8886000,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress
                

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

CallingAddress  =  8886000,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  8886000,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  8886000,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

Scenario 2-3 (Incoming Call From CTI Port to CTI Remote Device, but No Answer on Remote Destination)

C calls E, Application is observing both C and E on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIPort6, 8886000, 8889000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8886000

GC1: ConnConnectedEvent 8886000

GC1: CallCtlConnInitiatedEv 8886000

GC1: TermConnCreatedEvent irvCTIPort6

GC1: TermConnActiveEvent irvCTIPort6

GC1: CallCtlTermConnTalkingEv irvCTIPort6

GC1: CallCtlConnDialingEv 8886000

GC1: CallCtlConnEstablishedEv 8886000

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

GC1: ConnAlertingEvent 8889000

GC1: CallCtlConnAlertingEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnRingingEvent irvCTIRD2

GC1: CallCtlTermConnRingingEv irvCTIRD2

CallingAddress  =  8886000,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  8886000,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  8886000,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 does not answers the call and time out.

GC1: TermConnDroppedEv irvCTIRD2

GC1: CallCtlTermConnDroppedEv irvCTIRD2

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

GC1: TermConnDroppedEv irvCTIPort6

GC1: CallCtlTermConnDroppedEv irvCTIPort6

GC1: ConnDisconnectedEvent 8886000

GC1: CallCtlConnDisconnectedEv 8886000

GC1: CallInvalidEv 8889000

GC1: CallObservationEndedEv

CallingAddress  =  8886000,  
CalledAddress  = 8889000,  
CurrentCallingAddress  =  8886000,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  8886000,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

Scenario 2-4 (Incoming Call From CTI Port to CTI Remote Device, and Redirect to Another CTI Port)

C calls E, and E redirects the call to D, Application is observing all C, D, E on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIPort6, 8886000, 8889000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8886000

GC1: ConnConnectedEvent 8886000

GC1: CallCtlConnInitiatedEv 8886000

GC1: TermConnCreatedEvent irvCTIPort6

GC1: TermConnActiveEvent irvCTIPort6

GC1: CallCtlTermConnTalkingEv irvCTIPort6

GC1: CallCtlConnDialingEv 8886000

GC1: CallCtlConnEstablishedEv 8886000

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

GC1: ConnAlertingEvent 8889000

GC1: CallCtlConnAlertingEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnRingingEvent irvCTIRD2

GC1: CallCtlTermConnRingingEv irvCTIRD2

CallingAddress  =  8886000,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  8886000,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  8886000,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: TermConnActiveEvent irvCTIRD2

GC1: CallCtlTermConnTalkingEv irvCTIRD2

CallingAddress  =  8886000,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  8886000,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  8886000,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

User1 invokes connection on irvCTIRD2.redirect (8887000, REDIRECT_NORMAL, DEFAULT_SEARCH_SPACE, CALLED_ADDRESS_UNCHANGED, REDIRECT, 8887000, null, REDIRECT_WITHOUT_ MODIFIED_CALLING_PARTY, 1)

GC1: ConnCreatedEvent 8887000

GC1: ConnInprogressEvent 8887000

GC1: CallCtlConnOfferedEv 8887000

GC1: ConnAlertingEvent 8887000

GC1: CallCtlConnAlertingEv 8887000

GC1: TermConnCreatedEvent irvCTIPort7

GC1: TermConnRingingEvent irvCTIPort7

GC1: CallCtlTermConnRingingEv irvCTIPort7

GC1: TermConnDroppedEv irvCTIRD2

GC1: CallCtlTermConnDroppedEv irvCTIRD2

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8886000 ::
LastRedirectedPartyAddress: 8889000

irvCTIPort7 answers the call.

GC1: ConnConnectedEvent 8887000

GC1: CallCtlConnEstablishedEv 8887000

GC1: TermConnActiveEvent irvCTIPort7

GC1: CallCtlTermConnTalkingEv irvCTIPort7

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8886000 ::
LastRedirectedPartyAddress: 8889000

Scenario 2-5 (Incoming Call From CTI Port to CTI Remote Device, and Redirect to Another CTI Remote Device)

C calls E, and E redirects the call to F, and C redirect the call to E. Application is observing all C, E, F on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIPort6, 8886000, 8889000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8886000

GC1: ConnConnectedEvent 8886000

GC1: CallCtlConnInitiatedEv 8886000

GC1: TermConnCreatedEvent irvCTIPort6

GC1: TermConnActiveEvent irvCTIPort6

GC1: CallCtlTermConnTalkingEv irvCTIPort6

GC1: CallCtlConnDialingEv 8886000

GC1: CallCtlConnEstablishedEv 8886000

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

GC1: ConnAlertingEvent 8889000

GC1: CallCtlConnAlertingEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnRingingEvent irvCTIRD2

GC1: CallCtlTermConnRingingEv irvCTIRD2

CallingAddress  =  8886000,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  8886000,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  8886000,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: TermConnActiveEvent irvCTIRD2

GC1: CallCtlTermConnTalkingEv irvCTIRD2

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

User1 invokes connection on irvCTIRD2.redirect(8889001, REDIRECT_NORMAL, DEFAULT_SEARCH_SPACE, CALLED_ADDRESS_UNCHANGED, REDIRECT, 8889001, null, REDIRECT_WITHOUT_MODIFIED_ CALLING_PARTY, 1)

GC1: ConnCreatedEvent 8889001

GC1: ConnInprogressEvent 8889001

GC1: CallCtlConnOfferedEv 8889001

GC1: ConnAlertingEvent 8889001

GC1: CallCtlConnAlertingEv 8889001

GC1: TermConnCreatedEvent irvCTIRD3

GC1: TermConnRingingEvent irvCTIRD3

GC1: CallCtlTermConnRingingEv irvCTIRD3

GC1: TermConnDroppedEv irvCTIRD2

GC1: CallCtlTermConnDroppedEv irvCTIRD2

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

CurrentCalledAddress: 8889001 ::
CurrentCallingAddress: 8886000 ::
LastRedirectedPartyAddress: 8889000

irvCTIRD3's Active remote destination of 916267829526 answers the call.

GC1: ConnConnectedEvent 8889001

GC1: CallCtlConnEstablishedEv 8889001

GC1: TermConnActiveEvent irvCTIRD3

GC1: CallCtlTermConnTalkingEv irvCTIRD3

CurrentCalledAddress: 8889001 ::
CurrentCallingAddress: 8886000 ::
LastRedirectedPartyAddress: 8889000

User1 invokes connection on irvCTIPort6.redirect(8889000, REDIRECT_NORMAL, DEFAULT_SEARCH_SPACE, CALLED_ADDRESS_UNCHANGED, REDIRECT, 8889000, null, REDIRECT_WITHOUT_MODIFIED_ CALLING_PARTY, 1)

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

GC1: ConnAlertingEvent 8889000

GC1: CallCtlConnAlertingEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnRingingEvent irvCTIRD2

GC1: CallCtlTermConnRingingEv irvCTIRD2

GC1: TermConnDroppedEv irvCTIPort6

GC1: CallCtlTermConnDroppedEv irvCTIPort6

GC1: ConnDisconnectedEvent 8886000

GC1: CallCtlConnDisconnectedEv 8886000

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8889001 ::
LastRedirectedPartyAddress: 8886000

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: TermConnActiveEvent irvCTIRD2

GC1: CallCtlTermConnTalkingEv irvCTIRD2

GC1: TermConnDroppedEv irvCTIRD3

GC1: CallCtlTermConnDroppedEv irvCTIRD3

GC1: ConnDisconnectedEvent 8889001

GC1: CallCtlConnDisconnectedEv 8889001

GC1: TermConnDroppedEv irvCTIRD2

GC1: CallCtlTermConnDroppedEv irvCTIRD2

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8889001 ::
LastRedirectedPartyAddress: 8886000

Scenario 2-6 (Incoming Call From CTI Port to CTI Remote Device with a Shared-Line of Another CTI Port)

C calls A (with a shared line with B), Application is observing A, B, and C on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIPort6, 8886000, 8881000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8886000

GC1: ConnConnectedEvent 8886000

GC1: CallCtlConnInitiatedEv 8886000

GC1: TermConnCreatedEvent irvCTIPort6

GC1: TermConnActiveEvent irvCTIPort6

GC1: CallCtlTermConnTalkingEv irvCTIPort6

GC1: CallCtlConnDialingEv 8886000

GC1: CallCtlConnEstablishedEv 8886000

GC1: ConnCreatedEvent 8881000

GC1: ConnInprogressEvent 8881000

GC1: CallCtlConnOfferedEv 8881000

GC1: ConnAlertingEvent 8881000

GC1: CallCtlConnAlertingEv 8881000

GC1: TermConnCreatedEvent irvCTIPort1

GC1: TermConnRingingEvent irvCTIPort1

GC1: CallCtlTermConnRingingEv irvCTIPort1

GC1: TermConnCreatedEvent irvCTIRD1

GC1: TermConnRingingEvent irvCTIRD1

GC1: CallCtlTermConnRingingEv irvCTIRD1

CallingAddress  =  8886000,  
CalledAddress  =  8881000,  
CurrentCallingAddress  =  8886000,  
CurrentCalledAddress  =  8881000,
ModifiedCallingAddress  =  8886000,  
ModifiedCalledAddress  =  8881000,  
No LastRedirectedPartyAddress

irvCTIRD1's Active remote destination of 919498231202 answers the call.

GC1: ConnConnectedEvent 8881000

GC1: CallCtlConnEstablishedEv 8881000

GC1: TermConnActiveEvent irvCTIRD1

GC1: CallCtlTermConnTalkingEv irvCTIRD1

GC1: TermConnPassiveEvent irvCTIPort1

GC1: CallCtlTermConnBridgedEv irvCTIPort1

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

Disconnect the call from irvCTIPort6.

GC1: TermConnDroppedEv irvCTIPort6

GC1: CallCtlTermConnDroppedEv irvCTIPort6

GC1: ConnDisconnectedEvent 8886000

GC1: CallCtlConnDisconnectedEv8886000

GC1: TermConnDroppedEv irvCTIRD1

GC1: CallCtlTermConnDroppedEv irvCTIRD1

GC1: TermConnDroppedEv irvCTIPort1

GC1: CallCtlTermConnDroppedEv irvCTIPort1

GC1: ConnDisconnectedEvent 8881000

GC1: CallCtlConnDisconnectedEv 8881000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

Scenario 2-7 (Incoming Call From CTI Port to CTI Port with a Shared-Line of a CTI Remote Device)

C calls B (with a shared line of A), Application is observing A, B, and C on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIPort6, 8886000, 8881000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8886000

GC1: ConnConnectedEvent 8886000

GC1: CallCtlConnInitiatedEv 8886000

GC1: TermConnCreatedEvent irvCTIPort6

GC1: TermConnActiveEvent irvCTIPort6

GC1: CallCtlTermConnTalkingEv irvCTIPort6

GC1: CallCtlConnDialingEv 8886000

GC1: CallCtlConnEstablishedEv 8886000

GC1: ConnCreatedEvent 8881000

GC1: ConnInprogressEvent 8881000

GC1: CallCtlConnOfferedEv 8881000

GC1: ConnAlertingEvent 8881000

GC1: CallCtlConnAlertingEv 8881000

GC1: TermConnCreatedEvent irvCTIPort1

GC1: TermConnRingingEvent irvCTIPort1

GC1: CallCtlTermConnRingingEv irvCTIPort1

GC1: TermConnCreatedEvent irvCTIRD1

GC1: TermConnRingingEvent irvCTIRD1

GC1: CallCtlTermConnRingingEv irvCTIRD1

CallingAddress  =  8886000,  
CalledAddress  =  8881000,  
CurrentCallingAddress  =  8886000,  
CurrentCalledAddress  =  8881000,
ModifiedCallingAddress  =  8886000,  
ModifiedCalledAddress  =  8881000,  
No LastRedirectedPartyAddress

irvCTIPort1 answers the call.

GC1: TermConnDroppedEv irvCTIRD1

GC1: CallCtlTermConnDroppedEv irvCTIRD1

GC1: ConnConnectedEvent 8881000

GC1: CallCtlConnEstablishedEv 8881000

GC1: TermConnActiveEvent irvCTIPort1

GC1: CallCtlTermConnTalkingEv irvCTIPort1

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

Disconnect the call from irvCTIPort6.

GC1: TermConnDroppedEv irvCTIPort6

GC1: CallCtlTermConnDroppedEv irvCTIPort6

GC1: ConnDisconnectedEvent 8886000

GC1: CallCtlConnDisconnectedEv8886000

GC1: TermConnDroppedEv irvCTIPort1

GC1: CallCtlTermConnDroppedEv irvCTIPort1

GC1: ConnDisconnectedEvent 8881000

GC1: CallCtlConnDisconnectedEv 8881000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

Scenario 2-8 (Outgoing Call From CTI Remote Device to CTI Port)

E calls D, Application is observing both D and E on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIRD2, 8889000, 8887000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

CallingAddress  =  Unknown,
CalledAddress  =  8889000,
CurrentCallingAddress  =  Unknown,
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  Unknown,
ModifiedCalledAddress  =  8889000,
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnActiveEvent irvCTIRD2

GC1: CallCtlTermConnTalkingEv irvCTIRD2

CallingAddress  =  Unknown,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  Unknown,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  Unknown,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

irvCTIPort7 rings and answers the call.

GC1: ConnCreatedEvent 8887000

GC1: ConnInprogressEvent 8887000

GC1: CallCtlConnOfferedEv 8887000

GC1: ConnAlertingEvent 8887000

GC1: CallCtlConnAlertingEv 8887000

GC1: TermConnCreatedEvent irvCTIPort7

GC1: TermConnRingingEvent irvCTIPort7

GC1: CallCtlTermConnRingingEv irvCTIPort7

GC1: ConnConnectedEvent 8887000

GC1: CallCtlConnEstablishedEv 8887000

GC1: TermConnActiveEvent irvCTIPort7

GC1: CallCtlTermConnTalkingEv irvCTIPort7

CallingAddress  =  Unknown,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  8889000,  
CurrentCalledAddress  =  8887000,
ModifiedCallingAddress  =  8889000,  
ModifiedCalledAddress  =  8887000,  
No LastRedirectedPartyAddress

Disconnect the call from 8889000 connection.

GC1: TermConnDroppedEv irvCTIRD2

GC1: CallCtlTermConnDroppedEv irvCTIRD2

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

GC1: TermConnDroppedEv irvCTIPort7

GC1: CallCtlTermConnDroppedEv irvCTIPort7

GC1: ConnDisconnectedEvent 8887000

GC1: CallCtlConnDisconnectedEv 8887000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8889000 ::
No LastRedirectedPartyAddress

Scenario 2-9 (Outgoing Call From CTI Remote Device (with a Shared Line of CTI Port) to Another CTI Port)

A (with a shared line of B) calls D, Application is observing both A, B, and D on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIRD1, 8881000, 8887000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8881000

GC1: ConnInprogressEvent 8881000

GC1: CallCtlConnOfferedEv 8881000

GC1: ConnAlertingEvent 8881000

GC1: CallCtlConnAlertingEv 8881000

CallingAddress  =  Unknown,  
CalledAddress  =  8881000,  
CurrentCallingAddress  =  Unknown,  
CurrentCalledAddress  =  8881000,
ModifiedCallingAddress  =  Unknown,  
ModifiedCalledAddress  =  8881000,  
No LastRedirectedPartyAddress

irvCTIPort7 rings

GC1: TermConnCreatedEvent irvCTIPort1

GC1: TermConnRingingEvent irvCTIPort1

GC1: CallCtlTermConnRingingEv irvCTIPort1

irvCTIRD1's Active remote destination of 919498231202 answers the call.

GC1: ConnConnectedEvent 8881000

GC1: CallCtlConnEstablishedEv 8881000

GC1: TermConnCreatedEvent irvCTIRD1

GC1: TermConnActiveEvent irvCTIRD1

GC1: CallCtlTermConnTalkingEv irvCTIRD1

CallingAddress  =  Unknown,  
CalledAddress  =  8881000,  
CurrentCallingAddress  =  Unknown,  
CurrentCalledAddress  =  8881000,
ModifiedCallingAddress  =  Unknown,  
ModifiedCalledAddress  =  8881000,  
No LastRedirectedPartyAddress

irvCTIPort7 rings

GC1: TermConnPassiveEvent irvCTIPort1

GC1: CallCtlTermConnBridgedEv irvCTIPort1

CallingAddress  =  Unknown,  
CalledAddress  =  8887000,  
CurrentCallingAddress  =  8881000,  
CurrentCalledAddress  =  8887000,
ModifiedCallingAddress  =  8881000,  
ModifiedCalledAddress  =  8887000,  
No LastRedirectedPartyAddress

irvCTIPort7 answers the call.

GC1: ConnCreatedEvent 8887000

GC1: ConnInprogressEvent 8887000

GC1: CallCtlConnOfferedEv 8887000

GC1: ConnAlertingEvent 8887000

GC1: CallCtlConnAlertingEv 8887000

GC1: TermConnCreatedEvent irvCTIPort7

GC1: TermConnRingingEvent irvCTIPort7

GC1: CallCtlTermConnRingingEv irvCTIPort7

GC1: ConnConnectedEvent 8887000

GC1: CallCtlConnEstablishedEv 8887000

GC1: TermConnActiveEvent irvCTIPort7

GC1: CallCtlTermConnTalkingEv irvCTIPort7

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8881000::
No LastRedirectedPartyAddress

Disconnect the call from 8881000 connection.

GC1: TermConnDroppedEv irvCTIRD1

GC1: CallCtlTermConnDroppedEv irvCTIRD1

GC1: TermConnDroppedEv irvCTIPort1

GC1: CallCtlTermConnDroppedEv irvCTIPort1

GC1: ConnDisconnectedEvent 8881000

GC1: CallCtlConnDisconnectedEv 8881000

GC1: TermConnDroppedEv irvCTIPort7

GC1: CallCtlTermConnDroppedEv irvCTIPort7

GC1: ConnDisconnectedEvent 8887000

GC1: CallCtlConnDisconnectedEv 8887000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8881000::
No LastRedirectedPartyAddress

Scenario 2-10 (Outgoing Call From CTI Remote Device to CTI Port, but No Answer on Active Remote Destination)

E calls D, Application is observing both E and D on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIRD2, 8889000, 8887000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

CallingAddress  =  Unknown,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  Unknown,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  Unknown,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 does not answer the call and time out.

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CallingAddress  =  Unknown,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  Unknown,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  Unknown,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

Scenario 2-11 (Outgoing Call From CTI Remote Device to CTI Port, but No Answer on CTI Port)

E calls D, Application is observing both D and E on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIRD2, 8889000, 8887000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

CallingAddress  =  Unknown,
CalledAddress  =  8889000,
CurrentCallingAddress  =  Unknown,
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  Unknown,
ModifiedCalledAddress  =  8889000,
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnActiveEvent irvCTIRD2

GC1: CallCtlTermConnTalkingEv irvCTIRD2

CallingAddress  =  Unknown,
CalledAddress  =  8889000,
CurrentCallingAddress  =  Unknown,
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  Unknown,
ModifiedCalledAddress  =  8889000,
No LastRedirectedPartyAddress

irvCTIPort7 rings.

GC1: ConnCreatedEvent 8887000

GC1: ConnInprogressEvent 8887000

GC1: CallCtlConnOfferedEv 8887000

GC1: ConnAlertingEvent 8887000

GC1: CallCtlConnAlertingEv 8887000

GC1: TermConnCreatedEvent irvCTIPort7

GC1: TermConnRingingEvent irvCTIPort7

GC1: CallCtlTermConnRingingEv irvCTIPort7

CallingAddress  =  Unknown,
CalledAddress  =  8889000,
CurrentCallingAddress  =  8889000,
CurrentCalledAddress  =  8887000,
ModifiedCallingAddress  =  8889000,
ModifiedCalledAddress  =  8887000,
No LastRedirectedPartyAddress

irvCTIPort7 does not answer the call, time out.

GC1: TermConnDroppedEv irvCTIPort7

GC1: CallCtlTermConnDroppedEv irvCTIPort7

GC1: ConnDisconnectedEvent 8887000

GC1: CallCtlConnDisconnectedEv 8887000

GC1: ConnFailedEvent 8889000

GC1: CallCtlConnFailedEv 8889000

GC1: TermConnDroppedEv irvCTIRD2

GC1: CallCtlTermConnDroppedEv irvCTIRD2

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8889000 ::
No LastRedirectedPartyAddress

Scenario 2-12 (Outgoing Call From Non-Observed CTI Remote Device to CTI Port)

E calls D, Application is observing only on D on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

From another provider, User1 invokes call.connect(irvCTIRD2, 8889000, 8887000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8887000

GC1: ConnInprogressEvent 8887000

GC1: CallCtlConnOfferedEv 8887000

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: Unknown ::
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnCreatedEvent 8889000

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: ConnAlertingEvent 8887000

GC1: CallCtlConnAlertingEv 8887000

GC1: TermConnCreatedEvent irvCTIPort7

GC1: TermConnRingingEvent irvCTIPort7

GC1: CallCtlTermConnRingingEv irvCTIPort7

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8889000 ::
No LastRedirectedPartyAddress

irvCTIPort7 answers the call.

GC1: ConnConnectedEvent 8887000

GC1: CallCtlConnEstablishedEv 8887000

GC1: TermConnActiveEvent irvCTIPort7

GC1: CallCtlTermConnTalkingEv irvCTIPort7

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8889000 ::
LastRedirectedPartyAddress: 8887000

Scenario 2-13 (Outgoing Call From CTI Remote Device to Non-Observed CTI Port)

E calls D, Application is observing only on E on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

From another provider, User1 invokes call.connect(irvCTIRD2, 8889000, 8887000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: Unknown ::
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnActiveEvent irvCTIRD2

GC1: CallCtlTermConnTalkingEv irvCTIRD2

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: Unknown::
No LastRedirectedPartyAddress

irvCTIPort7 rings and answers the call from another provider.

GC1: ConnCreatedEvent 8887000

GC1: ConnInprogressEvent 8887000

GC1: CallCtlConnOfferedEv 8887000

GC1: ConnAlertingEvent 8887000

GC1: CallCtlConnAlertingEv 8887000

GC1: ConnConnectedEvent 8887000

GC1: CallCtlConnEstablishedEv 8887000

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8889000 ::
LastRedirectedPartyAddress: 8887000

Scenario 2-14 (Outgoing Call From CTI Remote Device to Another CTI Remote Device)

E calls F, Application is observing both E and F on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIRD2, 8889000, 8889001).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

CallingAddress  =  Unknown,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  Unknown,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  Unknown,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnActiveEvent irvCTIRD2

GC1: CallCtlTermConnTalkingEv irvCTIRD2

CallingAddress  =  Unknown,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  Unknown,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  Unknown,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

irvCTIRD3's Active remote destination of 916267829526 answers the call.

GC1: ConnCreatedEvent 8889001

GC1: ConnInprogressEvent 8889001

GC1: CallCtlConnOfferedEv 8889001

GC1: ConnAlertingEvent 8889001

GC1: CallCtlConnAlertingEv 8889001

GC1: TermConnCreatedEvent irvCTIRD3

GC1: TermConnRingingEvent irvCTIRD3

GC1: CallCtlTermConnRingingEv irvCTIRD3

GC1: ConnConnectedEvent 8889001

GC1: CallCtlConnEstablishedEv 8889001

GC1: TermConnActiveEvent irvCTIRD3

GC1: CallCtlTermConnTalkingEv irvCTIRD3

CallingAddress  =  Unknown,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  Unknown,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  Unknown,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

Disconnect the call from 8889000 connection.

GC1: TermConnDroppedEv irvCTIRD2

GC1: CallCtlTermConnDroppedEv irvCTIRD2

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

GC1: TermConnDroppedEv irvCTIRD3

GC1: CallCtlTermConnDroppedEv irvCTIRD3

GC1: ConnDisconnectedEvent 8889001

GC1: CallCtlConnDisconnectedEv 8889001

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CallingAddress  =  Unknown,  
CalledAddress  =  8889000,  
CurrentCallingAddress  =  Unknown,  
CurrentCalledAddress  =  8889000,
ModifiedCallingAddress  =  Unknown,  
ModifiedCalledAddress  =  8889000,  
No LastRedirectedPartyAddress

Scenario 2-15 (Outgoing Call From CTI Remote Device to Another CTI Remote Device, Then Redirect Again to a Third CTI Remote Device with a Shared-Line)

E calls F, then F redirect to A (with a shared-line with B), Application is observing all A, B, E and F on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIRD2, 8889000, 8889001).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: Unknown::
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnActiveEvent irvCTIRD2

GC1: CallCtlTermConnTalkingEv irvCTIRD2

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: Unknown::
No LastRedirectedPartyAddress

irvCTIRD3's Active remote destination of 916267829526 answers the call.

GC1: ConnCreatedEvent 8889001

GC1: ConnInprogressEvent 8889001

GC1: CallCtlConnOfferedEv 8889001

GC1: ConnAlertingEvent 8889001

GC1: CallCtlConnAlertingEv 8889001

GC1: TermConnCreatedEvent irvCTIRD3

GC1: TermConnRingingEvent irvCTIRD3

GC1: CallCtlTermConnRingingEv irvCTIRD3

GC1: ConnConnectedEvent 8889001

GC1: CallCtlConnEstablishedEv 8889001

GC1: TermConnActiveEvent irvCTIRD3

GC1: CallCtlTermConnTalkingEv irvCTIRD3

CurrentCalledAddress: 8889001 ::
CurrentCallingAddress: 8889000 ::
LastRedirectedPartyAddress: 8889001

User invokes connection on irvCTIRD3.redirect(8881000, REDIRECT_NORMAL, DEFAULT_SEARCH_SPACE, CALLED_ADDRESS_UNCHANGED, REDIRECT, 8881000, null, REDIRECT_WITHOUT_MODIFIED_ CALLING_PARTY, 1).

Both irvCTIRD1 and irvCTIPort1 are ringing.

GC1: ConnCreatedEvent 8881000

GC1: ConnInprogressEvent 8881000

GC1: CallCtlConnOfferedEv 8881000

GC1: ConnAlertingEvent 8881000

GC1: CallCtlConnAlertingEv 8881000

GC1: TermConnCreatedEvent irvCTIPort1

GC1: TermConnRingingEvent irvCTIPort1

GC1: CallCtlTermConnRingingEv irvCTIPort1

GC1: TermConnDroppedEv irvCTIRD3

GC1: CallCtlTermConnDroppedEv irvCTIRD3

GC1: ConnDisconnectedEvent 8889001

GC1: CallCtlConnDisconnectedEv 8889001

GC1: TermConnCreatedEvent irvCTIRD1

GC1: TermConnRingingEvent irvCTIRD1

GC1: CallCtlTermConnRingingEv irvCTIRD1

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8889000 ::
LastRedirectedPartyAddress: 8889001

irvCTIRD1's Active remote destination of 919498231202 answers the call. Terminal connection of irvCTIRD1 goes to 'talking' and irvCTIPort1 goes to 'bridged'.

GC1: ConnConnectedEvent 8881000

GC1: CallCtlConnEstablishedEv 8881000

GC1: TermConnActiveEvent irvCTIRD1

GC1: CallCtlTermConnTalkingEv irvCTIRD1

GC1: TermConnPassiveEvent irvCTIPort1

GC1: CallCtlTermConnBridgedEv irvCTIPort1

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8889000 ::
LastRedirectedPartyAddress: 8889001

Disconnect the call from 8889000 connection.

GC1: TermConnDroppedEv irvCTIRD2

GC1: CallCtlTermConnDroppedEv irvCTIRD2

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

GC1: TermConnDroppedEv irvCTIRD1

GC1: CallCtlTermConnDroppedEv irvCTIRD1

GC1: TermConnDroppedEv irvCTIPort1

GC1: CallCtlTermConnDroppedEv irvCTIPort1

GC1: ConnDisconnectedEvent 8881000

GC1: CallCtlConnDisconnectedEv 8881000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8889000 ::
LastRedirectedPartyAddress: 8889001

Scenario 2-16 (Disconnect an Incoming Call on CTI Remote Device After Answer While Talking)

C calls E, Application is observing both C and E on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIPort6, 8886000, 8889000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8886000

GC1: ConnConnectedEvent 8886000

GC1: CallCtlConnInitiatedEv 8886000

GC1: TermConnCreatedEvent irvCTIPort6

GC1: TermConnActiveEvent irvCTIPort6

GC1: CallCtlTermConnTalkingEv irvCTIPort6

GC1: CallCtlConnDialingEv 8886000

GC1: CallCtlConnEstablishedEv 8886000

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

GC1: ConnAlertingEvent 8889000

GC1: CallCtlConnAlertingEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnRingingEvent irvCTIRD2

GC1: CallCtlTermConnRingingEv irvCTIRD2

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: TermConnActiveEvent irvCTIRD2

GC1: CallCtlTermConnTalkingEv irvCTIRD2

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

User invokes connection.disconnect on irvCTIRD2 while talking.

GC1: TermConnDroppedEv irvCTIRD2

GC1: CallCtlTermConnDroppedEv irvCTIRD2

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

GC1: TermConnDroppedEv irvCTIPort6

GC1: CallCtlTermConnDroppedEv irvCTIPort6

GC1: ConnDisconnectedEvent 8886000

GC1: CallCtlConnDisconnectedEv 8886000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

Scenario 2-17 (Disconnect an Incoming Call on CTI Remote Device After Answer While Talking)

C calls E, Application is observing both C and E on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIPort6, 8886000, 8889000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8886000

GC1: ConnConnectedEvent 8886000

GC1: CallCtlConnInitiatedEv 8886000

GC1: TermConnCreatedEvent irvCTIPort6

GC1: TermConnActiveEvent irvCTIPort6

GC1: CallCtlTermConnTalkingEv irvCTIPort6

GC1: CallCtlConnDialingEv 8886000

GC1: CallCtlConnEstablishedEv 8886000

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

GC1: ConnAlertingEvent 8889000

GC1: CallCtlConnAlertingEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnRingingEvent irvCTIRD2

GC1: CallCtlTermConnRingingEv irvCTIRD2

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

User invokes connection.disconnect on irvCTIRD2 while it's still ringing on Active remote destination of 16267829523.

GC1: TermConnDroppedEv irvCTIRD2

GC1: CallCtlTermConnDroppedEv irvCTIRD2

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

GC1: ConnFailedEvent 8886000

GC1: CallCtlConnFailedEv 8886000

GC1: TermConnDroppedEv irvCTIPort6

GC1: CallCtlTermConnDroppedEv irvCTIPort6

GC1: ConnDisconnectedEvent 8886000

GC1: CallCtlConnDisconnectedEv 8886000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

Scenario 2-18 (Disconnect an Outgoing Call From CTI Remote Device to CTI Port; Disconnect After Answering on Remote Destination and Answering on Called CTI Port)

E calls D, Application is observing both D and E on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIRD2, 8889000, 8887000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8889000 ::
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnActiveEvent irvCTIRD2

GC1: CallCtlTermConnTalkingEv irvCTIRD2

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8889000 ::
No LastRedirectedPartyAddress

irvCTIPort7 rings and answers the call.

GC1: ConnCreatedEvent 8887000

GC1: ConnInprogressEvent 8887000

GC1: CallCtlConnOfferedEv 8887000

GC1: ConnAlertingEvent 8887000

GC1: CallCtlConnAlertingEv 8887000

GC1: TermConnCreatedEvent irvCTIPort7

GC1: TermConnRingingEvent irvCTIPort7

GC1: CallCtlTermConnRingingEv irvCTIPort7

GC1: ConnConnectedEvent 8887000

GC1: CallCtlConnEstablishedEv 8887000

GC1: TermConnActiveEvent irvCTIPort7

GC1: CallCtlTermConnTalkingEv irvCTIPort7

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8889000 ::
LastRedirectedPartyAddress: 8887000

Disconnect the call from 8889000 connection.

GC1: TermConnDroppedEv irvCTIRD2

GC1: CallCtlTermConnDroppedEv irvCTIRD2

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

GC1: TermConnDroppedEv irvCTIPort7

GC1: CallCtlTermConnDroppedEv irvCTIPort7

GC1: ConnDisconnectedEvent 8887000

GC1: CallCtlConnDisconnectedEv 8887000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8889000 ::
LastRedirectedPartyAddress: 8887000

Scenario 2-19 (disconnect an Outgoing Call From CTI Remote Device to CTI Port; Disconnect After Answering on Remote Destination but Before Answering on Called CTI Port)

E calls D, Application is observing both D and E on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIRD2, 8889000, 8887000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8889000 ::
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 answers the call.

GC1: ConnConnectedEvent 8889000

GC1: CallCtlConnEstablishedEv 8889000

GC1: TermConnCreatedEvent irvCTIRD2

GC1: TermConnActiveEvent irvCTIRD2

GC1: CallCtlTermConnTalkingEv irvCTIRD2

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8889000 ::
No LastRedirectedPartyAddress

irvCTIPort7 rings

GC1: ConnCreatedEvent 8887000

GC1: ConnInprogressEvent 8887000

GC1: CallCtlConnOfferedEv 8887000

GC1: ConnAlertingEvent 8887000

GC1: CallCtlConnAlertingEv 8887000

GC1: TermConnCreatedEvent irvCTIPort7

GC1: TermConnRingingEvent irvCTIPort7

GC1: CallCtlTermConnRingingEv irvCTIPort7

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8889000 ::
LastRedirectedPartyAddress: 8887000

Disconnect the call from 8889000 connection.

GC1: TermConnDroppedEv irvCTIRD2

GC1: CallCtlTermConnDroppedEv irvCTIRD2

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

GC1: TermConnDroppedEv irvCTIPort7

GC1: CallCtlTermConnDroppedEv irvCTIPort7

GC1: ConnDisconnectedEvent 8887000

GC1: CallCtlConnDisconnectedEv 8887000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8889000 ::
LastRedirectedPartyAddress: 8887000

Scenario 2-20 (Disconnect an Outgoing Call From CTI Remote Device to CTI Port; Drop the Call Before Even Answering on Remote Destination. Note That Only One Connection on CTI Remote Device Which Is in Offering State)

E calls D, Application is observing both D and E on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIRD2, 8889000, 8887000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8889000

GC1: ConnInprogressEvent 8889000

GC1: CallCtlConnOfferedEv 8889000

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8889000 ::
No LastRedirectedPartyAddress

irvCTIRD2's Active remote destination of 916267829523 rings, User1 drops the call to disconnect from 8889000 connection.

GC1: ConnDisconnectedEvent 8889000

GC1: CallCtlConnDisconnectedEv 8889000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8889000 ::
CurrentCallingAddress: 8889000 ::
No LastRedirectedPartyAddress

Scenario 2-21 (Incoming Call From CTI Port to CTI Remote Device with a Shared-line of Another CTI Port). Note That irvCTIRD1 Remote Destination Answers the Call; Hold irvCTIRD1, Unhold irvCTIRD1; Then Hold irvCTIRD1, Unhold irvCTIPort1 Which Results irvCTIRD1 Got Disconnected; Then Hold irvCTIPort6, Unhold irvCTIPort6, Then Disconnect 8886000)

C calls A (with a shared line with B) with several hold/resume operations on different terminals. Application is observing A, B, and C on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIPort6, 8886000, 881000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8886000

GC1: ConnConnectedEvent 8886000

GC1: CallCtlConnInitiatedEv 8886000

GC1: TermConnCreatedEvent irvCTIPort6

GC1: TermConnActiveEvent irvCTIPort6

GC1: CallCtlTermConnTalkingEv irvCTIPort6

GC1: CallCtlConnDialingEv 8886000

GC1: CallCtlConnEstablishedEv 8886000

GC1: ConnCreatedEvent 8881000

GC1: ConnInprogressEvent 8881000

GC1: CallCtlConnOfferedEv 8881000

GC1: ConnAlertingEvent 8881000

GC1: CallCtlConnAlertingEv 8881000

GC1: TermConnCreatedEvent irvCTIPort1

GC1: TermConnRingingEvent irvCTIPort1

GC1: CallCtlTermConnRingingEv irvCTIPort1

GC1: TermConnCreatedEvent irvCTIRD1

GC1: TermConnRingingEvent irvCTIRD1

GC1: CallCtlTermConnRingingEv irvCTIRD1

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

irvCTIRD1's Active remote destination of 919498231202 answers the call.

GC1: ConnConnectedEvent 8881000

GC1: CallCtlConnEstablishedEv 8881000

GC1: TermConnActiveEvent irvCTIRD1

GC1: CallCtlTermConnTalkingEv irvCTIRD1

GC1: TermConnPassiveEvent irvCTIPort1

GC1: CallCtlTermConnBridgedEv irvCTIPort1

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

User invoke hold on terminalconnection of irvCTIRD1

GC1: CallCtlTermConnHeldEv irvCTIRD1

GC1: TermConnActiveEvent irvCTIPort1

GC1: CallCtlTermConnHeldEv irvCTIPort1

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

User invoke unhold on terminalconnection of irvCTIRD1

GC1: CallCtlTermConnTalkingEv irvCTIRD1

GC1: TermConnPassiveEvent irvCTIPort1

GC1: CallCtlTermConnBridgedEv irvCTIPort1

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

User invoke hold on terminalconnection of irvCTIRD1

GC1: CallCtlTermConnHeldEv irvCTIRD1

GC1: TermConnActiveEvent irvCTIPort1

GC1: CallCtlTermConnHeldEv irvCTIPort1

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

User invoke unhold on terminalconnection of irvCTIPort1 (while it's in Bridged state). This results in irvCTIRD1 being dropped.

GC1: CallCtlTermConnTalkingEv irvCTIPort1

GC1: TermConnDroppedEv irvCTIRD1

GC1: CallCtlTermConnDroppedEv irvCTIRD1

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

User invoke hold on terminalconnection of irvCTIPort6

GC1: CallCtlTermConnHeldEv irvCTIPort6

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

User invoke unhold on terminalconnection of irvCTIPort6

GC1: CallCtlTermConnTalkingEv irvCTIPort6

Disconnect the call from connection of irvCTIPort6.

GC1: TermConnDroppedEv irvCTIPort6

GC1: CallCtlTermConnDroppedEv irvCTIPort6

GC1: ConnDisconnectedEvent 8886000

GC1: CallCtlConnDisconnectedEv8886000

GC1: TermConnDroppedEv irvCTIPort1

GC1: CallCtlTermConnDroppedEv irvCTIPort1

GC1: ConnDisconnectedEvent 8881000

GC1: CallCtlConnDisconnectedEv 8881000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8881000 ::
CurrentCallingAddress: 8886000 ::
No LastRedirectedPartyAddress

Scenario 2-22 (Outgoing Call From CTI Remote Device (with a Shared Line of CTI Port) to Another CTI Port). Note That irvCTIPort1 Rings and Remote Destination on irvCTIRD1 Rings, Remote Destination Answers the Call, Call Is Then Offered on irvCTIPort7. After Answer on irvCTIPort7, Disconnect From 8881000 Connection)

A (with a shared line of B) calls D, then with several hold/unhold operations at different terminals. Application is observing both A, B, and D on addresses and terminals. GC1 is the GCID of the call.

Action

Events

Call info

User1 invokes call.connect(irvCTIRD1, 8881000, 8887000).

GC1: CallActiveEvent

GC1: ConnCreatedEvent 8881000

GC1: ConnInprogressEvent 8881000

GC1: CallCtlConnOfferedEv 8881000

GC1: ConnAlertingEvent 8881000

GC1: CallCtlConnAlertingEv 8881000

CurrentCalledAddress: 8881000::
CurrentCallingAddress: 8881000::
No LastRedirectedPartyAddress

irvCTIPort7 rings

GC1: TermConnCreatedEvent irvCTIPort1

GC1: TermConnRingingEvent irvCTIPort1

GC1: CallCtlTermConnRingingEv irvCTIPort1

irvCTIRD1's Active remote destination of 919498231202 answers the call.

GC1: ConnConnectedEvent 8881000

GC1: CallCtlConnEstablishedEv 8881000

GC1: TermConnCreatedEvent irvCTIRD1

GC1: TermConnActiveEvent irvCTIRD1

GC1: CallCtlTermConnTalkingEv irvCTIRD1

CurrentCalledAddress: 8881000::
CurrentCallingAddress: 8881000::
No LastRedirectedPartyAddress

irvCTIPort7 rings

GC1: TermConnPassiveEvent irvCTIPort1

GC1: CallCtlTermConnBridgedEv irvCTIPort1

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8881000 ::
No LastRedirectedPartyAddress

irvCTIPort7 answers the call.

GC1: ConnCreatedEvent 8887000

GC1: ConnInprogressEvent 8887000

GC1: CallCtlConnOfferedEv 8887000

GC1: ConnAlertingEvent 8887000

GC1: CallCtlConnAlertingEv 8887000

GC1: TermConnCreatedEvent irvCTIPort7

GC1: TermConnRingingEvent irvCTIPort7

GC1: CallCtlTermConnRingingEv irvCTIPort7

GC1: ConnConnectedEvent 8887000

GC1: CallCtlConnEstablishedEv 8887000

GC1: TermConnActiveEvent irvCTIPort7

GC1: CallCtlTermConnTalkingEv irvCTIPort7

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8881000::
LastRedirectedPartyAddress: 8887000

User invoke hold on terminalconnection of irvCTIRD1

GC1: CallCtlTermConnHeldEv irvCTIRD1

GC1: TermConnActiveEvent irvCTIPort1

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8881000 ::
LastRedirectedPartyAddress: 8887000

User invoke unhold on terminalconnection of irvCTIPort1 (while it's in Bridged state). This results in irvCTIRD1 being dropped.

GC1: CallCtlTermConnHeldEv irvCTIPort1

GC1: CallCtlTermConnTalkingEv irvCTIPort1

GC1: TermConnDroppedEv irvCTIRD1

GC1: CallCtlTermConnDroppedEv irvCTIRD1

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8881000 ::
LastRedirectedPartyAddress: 8887000

Disconnect the call from 8881000 connection.

GC1: TermConnDroppedEv irvCTIPort1

GC1: CallCtlTermConnDroppedEv irvCTIPort1

GC1: ConnDisconnectedEvent 8881000

GC1: CallCtlConnDisconnectedEv 8881000

GC1: TermConnDroppedEv irvCTIPort7

GC1: CallCtlTermConnDroppedEv irvCTIPort7

GC1: ConnDisconnectedEvent 8887000

GC1: CallCtlConnDisconnectedEv 8887000

GC1: CallInvalidEvent

GC1: CallObservationEndedEv

CurrentCalledAddress: 8887000 ::
CurrentCallingAddress: 8881000 ::
LastRedirectedPartyAddress: 8887000

Scenario 2-23 (Superprovider Acquires a CTIRD That Is Not on User Control List)

User1 open a provider which can observe any terminal (User1 with "Standard CTI Allow Control of All Devices" role), and then acquire a CTI Remote Device "CTIRD_UP" that is not on User1's control list).

Action

Events

Call info

User1 opens Provider and adds a provider observer.

ProvInServiceEv

User1 invokes provider.createTerminal(CTIRD_UP).

CiscoAddrCreatedEv: 8889999

CiscoTermCreatedEv: CTIRD_UP

CTI Remote Device Use Cases Group 3

Use Cases Group 3 (CUCSF Registration and Unregistration, for Normal SIP Mode <-> Extend Mode, and Terminal Switching Scenarios)

Pre-conditions on Use Cases group 3 below with default jtapi.ini settings, unless specified explicitly:

  • Provider is IN_SERVICE state.

  • Device A (CUCSF - Name: "irvCSF1", Line A (DN: 7771000))

  • Remote Destination 1 (Name: "IRVCell", Number: "916267829523", Active RD: true)

  • Scenario 3-1 (Registration of CUCSF in between Extend mode and SIP mode).:

Device A is registered in normal SIP mode when Webex with Jabber client is running and configured this device as its associated phone. User1 open provider and add observers on this device to bring it in service. Now exit Webex to unregister it from SIP, and then User1 calls CiscoTerminal.register() to register it to Extend mode from JTAPI, then add observers back to bring it in service. Now User1 unregister it from Extend mode in JTAPI by calling CiscoRemoteTerminal.unregister(). Now open Webex again to register this device back to SIP mode, and add observers back to bring it in service.

Action

Events

Info

Webex is opened.

User1 adds provider observer.

registerFeature 1235 on provider.

addObserver on address 7771000.

addObserver on terminal irvCSF1.

Provider: ProvInServiceEv

7771000: CiscoAddrOutOfServiceEv

irvCSF1: CiscoTermInServiceEv

7771000: CiscoAddrInServiceEv

irvCSF1: CiscoTermInServiceEv

CiscoTerminal.getProtocol = 2

CiscoTerminal.isRegistered() = true

CiscoRemoteTerminal.getType() = 503

CiscoRemoteTerminal.getTypeName() = Cisco Unified Client Services Framework

Exit Webex

Provider: CiscoProvTerminalUnRegisteredEv irvCSF1

7771000: CiscoAddrOutOfServiceEv

irvCSF1: CiscoTermOutOfServiceEv

CiscoTerminal.getProtocol = 2

CiscoTerminal.isRegistered() = false

User1 calls CiscoTerminal.register() on irvCSF1.

addObserver on address 7771000.

addObserver on terminal irvCSF1.

Provider: CiscoAddrRemovedEv 7771000

Provider: CiscoTermRemovedEv irvCSF1

Provider: CiscoAddrCreatedEv 7771000

Provider: CiscoTermCreatedEv irvCSF1

Provider: CiscoProvTerminalRegisteredEv

irvCSF1: CiscoTermInServiceEv

7771000: CiscoAddrOutOfServiceEv

7771000: CiscoAddrInServiceEv

irvCSF1: CiscoTermInServiceEv

CiscoTerminal.getProtocol = 3

CiscoTerminal.isRegistered() = true

CiscoRemoteTerminal.getRegistrationType() = 8

CiscoRemoteTerminal.isRegisteredByThisApp() = true

User1 calls CiscoRemoteTerminal. unregister()

7771000: CiscoAddrOutOfServiceEv

irvCSF1: CiscoTermOutOfServiceEv

Provider: CiscoProvTerminalUnRegisteredEv

CiscoTerminal.getProtocol = 3

CiscoTerminal. isRegistered() = false

CiscoRemoteTerminal.getRegistrationType() = -1

CiscoRemoteTerminal. isRegisteredByThisApp() = false

Open Webex

addObserver on address 7771000.

addObserver on terminal irvCSF1.

Provider: CiscoAddrRemovedEv 7771000

Provider: CiscoTermRemovedEv irvCSF1

Provider: CiscoAddrCreatedEv 7771000

Provider: CiscoTermCreatedEv irvCSF1

Provider: CiscoProvTerminalRegisteredEv

7771000: CiscoAddrOutOfServiceEv

irvCSF1: CiscoTermInServiceEv

7771000: CiscoAddrInServiceEv

irvCSF1: CiscoTermInServiceEv

CiscoTerminal.getProtocol = 2

CiscoTerminal.isRegistered() = true

CTI Remote Device Use Cases Group 4

Use Cases Group 4 (Set/Reset Active Remote Destination Scenarios)

Pre-conditions on Use Cases group 4 below with default jtapi.ini settings, unless specified explicitly:

  • Provider is IN_SERVICE state. Single node.

  • Device A (CTI Remote Device - Name: "irvCTIRD2", Line A (DN: 8881000))

  • Remote Destination 1 (Name: "IRVCell1", Number: "916267829523", Active RD: false)

  • Scenario 4-1 (User1 opens provider P1, set RD1 as active. Now User1 opens another provider P2, and set same RD1 as active again. Now stop CTI Manager service in this single node, the active RD would be clear out. Now restart CTI Manager, JTAPI will do a provider retry, and upon successfully connection, it will automatically reset the same RD1 as active again seamlessly.):

Action

Events

Info

User1 open Provider P1 and adds provider observer.

P1: ProvInServiceEv

User1 calls CiscoRemoteTerminal. setActiveRemote Destination ("916267829523", true) from P1.