Message sequence charts

This appendix contains message sequences or call scenarios and illustrates a subset of these scenarios that are supported by the Cisco Unified TSP. Be aware that the event order is not guaranteed in all cases and can vary depending on the scenario and the event.

Calling Party normalization

Incoming call from PSTN to End Point

Action

CTI messages

TAPI messages

TAPI structures

A Call gets offered from a PSTN number 5551212/<SUBSCRIBER> through a San Jose gateway to a CCM end point 2000

CallStateChangedEvent, UnModified Calling Party = 5551212, UnModified Called Party = 2000, UnModified Original Called Party = 2000, Modified Calling Party = 5551212, Modified Called Party = 2000, Modified Original Called Party = 2000, Globalized Calling party = +14085551212, Calling Party Number Type = SUBSCRIBER, Called Party Number Type = UNKNOWN, Original Called Party Number Type, = UNKNOWN State = Connected, Origin = OutBound, Reason = Direct

LINE_CALLSTATE = CONNECTED

LINECALLINFO

Displayed Calling Party = 5551212, Displayed Called Party = 2000, Displayed Redirection Party = , Displayed Redirected Party = , Globalized Calling Party = +14085551212, Calling Party Number Type = SUBSCRIBER, Called Party Number Type = UNKNOWN, Redirection Party Number Type = , Redirecting Party Number Type =

Incoming call from National PSTN to CTI-Observed End Point

Action

CTI messages

TAPI messages

TAPI structures

A Call gets offered from a Dallas PSTN number 5551212/<NATIONAL> through a San Jose gateway to a CCM end point 2000

CallStateChangedEvent, UnModified Calling Party = 9725551212, UnModified Called Party = 2000, UnModified Original Called Party = 2000, Modified Calling Party = 9725551212, Modified Called Party = 2000, Modified Original Called Party = 2000, Globalized Calling party = +19725551212, Calling Party Number Type = NATIONAL, Called Party Number Type = UNKNOWN, Original Called Party Number Type, = UNKNOWN State = Connected, Origin = OutBound, Reason = Direct

LINE_CALLSTATE = CONNECTED

LINECALLINFO

Displayed Calling Party = 9725551212, Displayed Called Party = 2000, Displayed Redirection Party = , Displayed Redirected Party = , Globalized Calling Party = +19725551212, Calling Party Number Type = NATIONAL, Called Party Number Type = UNKNOWN, Redirection Party Number Type = , Redirecting Party Number Type =

Incoming call from International PSTN to CTI-Observed End Point

Action

CTI messages

TAPI messages

TAPI structures

A Call gets offered from a PSTN number in India 22221111/<INTERNATIONAL> through a San Jose gateway to a CCM end point 2000

CallStateChangedEvent, UnModified Calling Party = 011914422221111, UnModified Called Party = 2000, UnModified Original Called Party = 2000, Modified Calling Party = 011914422221111, Modified Called Party = 2000, Modified Original Called Party = 2000, Globalized Calling party = +914422221111, Calling Party Number Type = INTERNATIONAL, Called Party Number Type = UNKNOWN, Original Called Party Number Type, = UNKNOWN State = Connected, Origin = OutBound, Reason = Direct

LINE_CALLSTATE = CONNECTED

LINECALLINFO

Displayed Calling Party = 011914422221111, Displayed Called Party = 2000, Displayed Redirection Party = , Displayed Redirected Party = , Globalized Calling Party = +914422221111, Calling Party Number Type = INTERNATIONAL, Called Party Number Type = UNKNOWN, Redirection Party Number Type = , Redirecting Party Number Type =

Outgoing call from CTI-Observed End Point to PSTN Number

Action

CTI messages

TAPI messages

TAPI structures

A Call gets initiated from a CCM end point 2000 through a San Jose gateway to a PSTN number 5551212/<NATIONAL>

CallStateChangedEvent, UnModified Calling Party = 2000, UnModified Called Party = 5551212, UnModified Original Called Party = 5551212, Modified Calling Party = 2000, Modified Called Party = 5551212, Modified Original Called Party = 5551212, Globalized Calling party = +14085551212, Calling Party Number Type = UNKNOWN, Called Party Number Type = SUBSCRIBER, Original Called Party Number Type, = SUBSCRIBER State = Connected, Origin = OutBound, Reason = Direct

LINE_CALLSTATE = CONNECTED

LINECALLINFO

Displayed Calling Party = 2000, Displayed Called Party = 5551212, Displayed Redirection Party = , Displayed Redirected Party = , Globalized Calling Party = +14085551212, Calling Party Number Type = UNKNOWN, Called Party Number Type = SUBSCRIBER, Redirection Party Number Type = , Redirecting Party Number Type =

Outgoing call from CTI-Observed End Point to National PSTN Number

Action

CTI messages

TAPI messages

TAPI structures

A Call gets initiated from a CCM end point 2000 through a San Jose gateway to a Dallas PSTN number 9725551212/<NATIONAL>

CallStateChangedEvent, UnModified Calling Party = 2000, UnModified Called Party = 9725551212, UnModified Original Called Party = 9725551212, Modified Calling Party = 2000, Modified Called Party = 9725551212, Modified Original Called Party = 9725551212, Globalized Calling party = +19725551212, Calling Party Number Type = UNKNOWN, Called Party Number Type = NATIONAL, Original Called Party Number Type, = NATIONAL State = Connected, Origin = OutBound, Reason = Direct

LINE_CALLSTATE = CONNECTED

LINECALLINFO

Displayed Calling Party = 2000, Displayed Called Party = 9725551212, Displayed Redirection Party = , Displayed Redirected Party = , Globalized Calling Party = +19725551212, Calling Party Number Type = UNKNOWN, Called Party Number Type = NATIONAL, Redirection Party Number Type = , Redirecting Party Number Type =

Outgoing call from CTI-Observed End Point to International PSTN Number

Action

CTI messages

TAPI messages

TAPI structures

A Call gets initiated from a CCM end point 2000 through a San Jose gateway to a PSTN number in India 914422221111/<INTERNATIONAL>

CallStateChangedEvent, UnModified Calling Party = 2000, UnModified Called Party = 011914422221111, UnModified Original Called Party = 011914422221111, Modified Calling Party = 2000, Modified Called Party = 011914422221111, Modified Original Called Party = 011914422221111, Globalized Calling party = +914422221111, Calling Party Number Type = UNKNOWN, Called Party Number Type = INTERNATIONAL, Original Called Party Number Type, = INTERNATIONAL State = Connected, Origin = OutBound, Reason = Direct

LINE_CALLSTATE = CONNECTED

LINECALLINFO

Displayed Calling Party = 2000, Displayed Called Party = 011914422221111, Displayed Redirection Party = , Displayed Redirected Party = , Globalized Calling Party = +914422221111, Calling Party Number Type = UNKNOWN, Called Party Number Type = INTERNATIONAL, Redirection Party Number Type = , Redirecting Party Number Type =

CTI RD Call Forwarding

Table 45 Use Case 1: Device A calls CTIRD when Active RD is not set and "Route calls to all remote destinations when client is not connected" is enabled.

Scenario

Expected Result

1. Provider Open request

2. Issue Line Open on remote device and devices which have the remote destinations

3. Phone A makes a call to CTIRD

Incoming calls are Forwarded to all remote destinations.

Table 46 Use Case 2: Device A calls CTIRD when Active RD is not set and "Route calls to all remote destinations when client is not connected" is disabled. There is no Call Forward number set on on the shared enterprise phone.

Scenario

Expected Result

1. Provider Open request

2. Issue Line Open on remote device and devices which have the remote destinations

3. Phone A makes a call to CTIRD

Call is disconnected with reason code -USER_BUSY.

Table 47 Use Case 3: Device A Calls CTIRD when CTI remote device is observed , Remote destination is not configured and "Route calls to all remote destinations when client is not connected" is enabled(CFNA is configured on enterprise number to Voice mail box)

Scenario

Expected Result

1. Provider Open request

2. Issue Line Open on remote device and devices which have the remote destinations

3. Phone A makes a call to CTIRD

Call will route to voice mail number.

Table 48 Use Case 4: Device A Calls CTIRD when CTI remote device is observed , Remote destination is not configured and "Route calls to all remote destinations when client is not connected" is disabled(CFNA is configured on enterprise number to Voice mail box)

Scenario

Expected Result

1. Provider Open request

2. Issue Line Open on remote device and devices which have the remote destinations

3. Phone A makes a call to CTIRD

Call will route to voice mail number.

Table 49 Use Case 5: DeviceA calls CTIRD when Active RD is set and "Route calls to all remote destinations when client is not connected" is enabled. Setup: A IP Phone, B CTI-RD, C RDD1, D RDD2. Active RD is set to C

Scenario

Expected Result

1. Provider Open request

2. Issue Line Open on remote device and devices which have the remote destinations

3. Phone A makes a call to B

4. C answers the call

Incoming calls is routed to active remote destination, such as C.

Table 50 Use Case 6: Device A calls CTIRD when Active RD is set and "Route calls to all remote destinations when client is not connected" is enabled. Setup: A IP Phone, B CTI-RD, C RDD1, D RDD2. Active RD is set to C

Scenario

Expected Result

1. Provider Open request

2. Issue Line Open on remote device and devices which have the remote destinations

3. Phone A makes a call to B

Incoming calls is routed to active remote destination.

Video capabilities and multimedia information

Use cases related to Video Capabilities and Multi-Media Information feature are mentioned below:

Media Capability on device A (SIP phone with camera) which is video-enabled, supports telepresence, and has 2 screens

Action

Expected events

LineInitializeEx

Issue LineGetDevCaps() with Ext version 0x000D0000 with deviceId for linedevice A

LineShutdown

LINEGETDEVCAPS::DEVSPECIFIC exposes Video Capability =

0x00000001[CiscoDeviceVideoCapability_Enabled]

TelepresenceInfo = 1

ScreenCount = 2

Media Capability on device A (SIP phone) which is not video-enabled, supports telepresence, and has 2 screens

Action

Expected events

LineInitializeEx

Issue LineGetDevCaps() with Ext version 0x000D0000 with deviceId for linedevice A

LineShutdown

LINEGETDEVCAPS::DEVSPECIFIC exposes Media Capability =

0x00000000 [CiscoDeviceVideoCapability_None]

TelepresenceInfo = 1

ScreenCount = 2

Media Capability on device A (CTI Port/Remote Point)

Action

Expected events

LineInitializeEx

Issue LineGetDevCaps() with Ext version 0x000D0000 with deviceId for linedevice A

Video Capability on Device A and B; both are video-enabled SIP phones and, both devices support Telepresence and has 3 screens

Action

Expected events

LineInitializeEx

LineOpen on A and B

A does a LineMakeCall to B, B answers.

Issue LineGetcallInfo() with Ext version for linedevice A

LineShutdown

A:

LINEGETCALLINFO::DEVSPECIFIC exposes

CallingPartyMultiMediaCapBitMask = 0x00000007

CalledPartyMultiMediaCapBitMask = 0x00000007

CallingPartyMultiMediaCapInfo :

VideoCapability = 0x000000001[CiscoDeviceVideoCapability_Enabled]

TelepresenceInfo = 0x000000001(Telepresence Enabled)

Screen Count = 3

CalledPartyMultiMediaCapInfo :

VideoCapability = 0x00000001[CiscoDeviceVideoCapability_Enabled]

TelepresenceInfo = 0x00000001(Telepresence Enabled

Screen Count = 3

Variation 1:

A has video enabled and B has video disabled. A has Telepresence enabled and has 3 screens, B has Telepresence disabled and has 1 screens.

A:

LINEGETCALLINFO::DEVSPECIFIC exposes

CallingPartyMultiMediaCapBitMask = 0x00000007

CalledPartyMultiMediaCapBitMask = 0x00000007

CallingPartyMultiMediaCapInfo :

VideoCapStatus = 0x000000001[CiscoDeviceVideoCapability_Enabled]

TelepresenceInfo = 0x000000001(Telepresence Enabled)

Screen Count = 3

CalledPartyMultiMediaCapInfo :

VideoCapStatus = 0x000000000[CiscoDeviceVideoCapability_None]

TelepresenceInfo = 0x000000000(Telepresence Disabled)

Screen Count = 1

Variation 2:

A has video enabled,1 screen and B is a CTI Port or Route Point.

A:

LINEGETCALLINFO::DEVSPECIFIC exposes

CallingPartyMultiMediaCapBitMask = 0x00000007

CalledPartyMultiMediaCapBitMask = 0x00000000

CallingPartyMultiMediaCapInfo :

VideoCapStatus = 0x000000001[CiscoDeviceVideoCapability_Enabled]

TelepresenceInfo = 0x000000000(Telepresence Disabled)

Screen Count = 0x00000001

CalledPartyMultiMediaCapInfo :

VideoCapStatus = 0x000000000[CiscoDeviceVideoCapability_None]

TelepresenceInfo = 0x000000000(Telepresence Disabled)

Screen Count = 0x00000000

Check if the Multimedia streams info has not returned on the call from both calling party and called party, if lines are opened with Ext 0x000B0000 (TLS connections must be disabled, Phone A and B are video-disabled).

Action

Expected events

LineInitializeEx

LineOpen at A and B with extension version 0x000B0000

A does a LineMakeCall to B / B answers the call

Check there is no CallDevSpecific event returned.

No CallDevSpecific event returned -SLDSMT_MULTIMEDIA_STREAMSDATA

Check if the Multimedia streams info has returned on the call from both calling party and called party, if lines are opened with Ext 0x000D0000 (TLS connections must be disabled, Phone A and B are video-enabled)

Action

Expected events

LineInitializeEx

LineOpen at A and B with extension version 0x000B0000

A does a LineMakeCall to B / B answers the call

Check there is CallDevSpecific event returned.

LineGetCallInfo on A

CallDevSpecific event returned -SLDSMT_MULTIMEDIA_STREAMSDATA

DevSpecificPart of LINECALLINFO For Party A: Video Stream Information returned for the following:

CompressionType = The actual compression type

BitRate = The actual bit rate

MediaMode = 0x00000000

PacketSize = The actual packet size

bSilenceSupressionFlag = 0x00000000

bKeyInfoPresen = 0x00000000

RxRTPDestinationV6Offset = The actual IPV6 address offset

RxRTPDestinationV6Size = The actual IPV6 address size

RxRTPIPV4Address = The actual IPV4 address

RxRTPIPV4Por t = The actual IPV4 port

RxIpAddrMode = The actual IPV4 mode

TxRTPDestinationV6Offset = The actual IPV6 address offset

TxRTPDestinationV6Size = The actual IPV6 address size

TxRTPIPV4Address = The actual IPV4 address

TxRTPIPV4Port = The actual IPV4 port

TxIpAddrMode = The actual IPV4 mode

MultiMediaEncryptionKey Information returned is the following

AlgorithmID = 0x00000000

TxKeyOffset = 0x00000000

TxKeySize = The actual size

RxKeyOffset = The actual offset

RxKeySize = The actual size

TxSaltOffset = The actual offset

TxSaltSize = The actual size

RxSaltOffset = The actual offset

RxSaltSize = The actual size

TxIsMKIPresent = 0x00000000

RxIsMKIPresent = 0x00000000

SecurityIndicator = 0x00000001

Variation 1:

A does a LineMakeCall to B / B answers the call

Application does LineHold on B

LineGetCallInfo on A and B

Application does LineUnHold on B

LineGetCallInfo on A and B

Application does a LineDrop on B.

LineGetCallInfo on A and B

CallDevSpecific event returned -SLDSMT_MULTIMEDIA_STREAMSDATA

The value of MediaMode should be changed 0x000000003

CallDevSpecific event returned -SLDSMT_MULTIMEDIA_STREAMSDATA

The value of MediaMode should be changed 0x000000000

CallDevSpecific event returned -SLDSMT_MULTIMEDIA_STREAMSDATA

The value of MediaMode should be changed 0x000000003

Negotiated video capability will be reported to the called party accross a inter cluster call (over SIP – ICT trunk) using early offer (Phone A is a video disabled SIP Phone and Phone B has video enabled, A is in cluster 1 and B is in cluster 2)

Shared Line – Hold and Resume scenario over SIP trunk (Phone A and C are video enabled SIP Phones and Phone B has video disabled, Phone A is in cluster 1 and Phone B and C are in cluster 2. Phone B and C are shared lines)

But the Media is setup with the RTP information provided at the SLDSMT_RTP_GET_IP_PORT information request

Variant 2:

Application does not set the Filter to receive new Notification using lineDevSpecific (CCiscoLineDevSpecificSetStatusMsgs) and Application does not Set RTP at Proceeding State as there is no Notification

Or

Application does not set RTP info on New Notification

New Notification not reported to Application

Call goes to Disconnect State with cause as LINEDISCONNECTMODE_UNKNOWN

Variant 3: A – CTI Port is Registered Secure

Behavior should be same

Variant 4: Application tried to disable the Early Offer support on the CTI Port that is Dynamically Registered with the Early Offer support

Direct Call scenario: Variation 2

A calls B and B answers the call. Application does a LineInitialize. Application opens all lines with new ExtVersion 0x000A0000.

Action

CTI events

Expected results

A calls B. B answers the call

LineInitialize

LineOpen on A, LineOpen on B with new ExtVesrion 0x000A0000

ExistingCallEvent received for A

ExistingCallEvent received for A

For A

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For B

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on B

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B1

Consult Transfer scenario: Variation 1

Application does a LineInitialize and opens all lines with new ExtVersion 0x000A0000. A calls B and B answers the call. B sets up transfer to C, C answers the call, and B completes the transfer. A is connected to C.

Action

CTI event

Expected results

LineInitialize

LineOpen on A, LineOpen on B,

LineOpen on C with new ExtVesrion 0x000A0000

A calls B

NewCallEvent received for A

NewCallEvent received for B

For A

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For B

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on B

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B1

B SetupTransfer to C

NewCallEvent received for B

NewCallEvent received for C

For B

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For C

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on B

(Consultation call between B and C)

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B2

LineGetCallInfo on C

(Consultation call between B and C)

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference C1

C answers the call. B completes transfer.

CallGlobalCallHandleChangedEvent received for C

For C

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference C2

LineGetCallInfo on A

(Call between A and C)

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on C2

(Consultation call between B and C)

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference C2

Consult Transfer scenario: Variation 2

A calls B and B answers the call. B sets up transfer to C. Application does a LineInitialize and opens all lines with new ExtVersion 0x000A0000. Application completes the transfer. A is connected to C.

Action

CTI events

Expected Results

A calls B and B answers the call. B setups transfer to C and C answers the call

LineInitialize

LineOpen on A , LineOpen on B,

LineOpen on C with new ExtVesrion 0x000A0000

LineInitialize

LineOpen on A, LineOpen on B,

LineOpen on C with new ExtVesrion 0x000A0000

ExistingCallEvent received for A (Primary Call between A and B)

For A

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

ExistingCallEvent received for B (Primary Call between A and B)

For B

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For B

ExistingCallEvent received for B (Consultation Call between B and C)

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For C

LINE_CALLDEVSPECIFIC event is received

ExistingCallEvent received for C (Consultation Call between B and C)

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on A

(Primary Call between A and B

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on B

(Primary Call between A and B

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B1

LineGetCallInfo on B

(Consultation Call between B and C)

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B2

LineGetCallInfo on C

(Consultation Call between B and C)

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference C1

Applications completes Transfer

CallGlobalCallHandleChangedEvent received for C

For C

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on C

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference C2

Blind Transfer scenario

Application does a LineInitialize.Application opens all lines with new ExtVersion 0x000A0000. A calls B and B answers the call. B does lineBlindTransfer to C. A is connected to C.

Action

CTI event

Expected results

LineInitialize

LineOpen on A, LineOpen on B,

LineOpen on C with new ExtVesrion 0x000A0000

A calls B

NewCallEvent received for A

NewCallEvent received for B

For A

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For B

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on B

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B1

B lineBlindTransfer to C

NewCallEvent received for C

For C

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on C

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference C1

Redirect scenario

Application does a LineInitialize and opens all lines with new ExtVersion 0x000A0000. A calls B and B answers the call. Application redirects B to C; A is connected to C.

Action

CTI events

Expected results

LineInitialize

LineOpen on A , LineOpen on B with new ExtVesrion 0x000A0000

A calls B

NewCallEvent received for A

NewCallEvent received for B

For A

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For B

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on B

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B1

B redirects call to C.C answers the call

NewCallEvent received for C

For C

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on C

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference C1

Shared Line scenario

Application does a LineInitialize. Application opens all lines with new ExtVersion 0x000A0000. A calls B, B’. B answers the call.

Action

CTI events

Expected results

LineInitialize

LineOpen on A , LineOpen on B,

LineOpen on B’ with new ExtVesrion 0x000A0000

A calls B

NewCallEvent received for A

NewCallEvent received for B

NewCallEvent received for B’

For A

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For B

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For B’

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on B

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B1

LineGetCallInfo on B’

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B1

Shared Line scenario with Barge

Application does a LineInitialize.Application opens all lines with new ExtVersion 0x000A0000. A calls B, B’. B answers the call.

Action

CTI events

Expected results

LineInitialize

LineOpen on A , LineOpen on B,

LineOpen on B’ with new ExtVesrion 0x000A0000

A calls B, B’answers the call

NewCallEvent received for A

NewCallEvent received for B

NewCallEvent received for B’

For A

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For B

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For B’

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on B

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B1

LineGetCallInfo on B’

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B1

B’ barges in

NewCallEvent received for B

NewCallEvent received for B’

CallGlobalCallHandleChangedEvent received for B

For B

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B2

For B’

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B2

For B

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B3

CallGlobalCallHandleChangedEvent received for B’

For B’

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B3

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on B

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B3

LineGetCallInfo on B’

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B3

Call Park scenario: Variation 1

Application does a LineInitialize and opens all lines with new ExtVersion 0x000A0000. A calls B and B answers the call. Application initiates a CallPark on B. A is parked on parkedDn. C calls parkDn and C is connected to A

Service Parameter Preserve globalcallid For Parked Calls set to False

Action

CTI events

Expected results

LineInitialize

LineOpen on A, LineOpen on B,

LineOpen on C with new ExtVesrion 0x000A0000

A calls B

NewCallEvent received for A

NewCallEvent received for B

For A

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For B

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on B

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B1

Application initiates linepark on B

C dials parkDn

NewCallEvent received for C

CallGlobalCallHandleChangedEvent received for A

For C

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference C1

For A

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A2

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A2

LineGetCallInfo on C

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference C1

Call Park scenario: Variation 2

Application does a LineInitialize.Application opens all lines with new ExtVersion 0x000A0000. A calls B and B answers the call. Application initiates a CallPark on B. A is parked on parkedDn. C calls parkDn and C is connected to A

Service Parameter Preserve globalcallid For Parked Calls set to True

Action

CTI events

Expected results

LineInitialize

LineOpen on A, LineOpen on B,

LineOpen on C with new ExtVesrion 0x000A0000

NewCallEvent received for A

NewCallEvent received for B

For A

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

For B

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on B

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference B1

Application initiates linepark on B

C dials parkDn

NewCallEvent received for C

CallGlobalCallHandleChangedEvent received for C

For C

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference C1

For C

LINE_CALLDEVSPECIFIC event is received

dwParam1 = SLDSMT_LINECALLINFO_ DEVSPECIFICDATA

dwParam2 = SLDST_UNIQUE_CALL_REF_ID_INFO

dwParam3 = 0

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference C2

LineGetCallInfo on A

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference A1

LineGetCallInfo on C

LINECALLINFO::DEVSPECIFIC would contain Unique Call Reference C2

3-Party Conference Call scenario

Application does a LineInitialize and opens all lines with new ExtVersion 0x000A0000. A calls B and B answers the call. B sets up conference to C, C answers the call, and B completes conference. A, B and C are in conference.