Cisco Unified TAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1)
Message Sequence Charts
Downloads: This chapterpdf (PDF - 521.0KB) The complete bookPDF (PDF - 8.21MB) | Feedback

Message Sequence Charts

Table Of Contents

Message Sequence Charts

Abbreviations

Manual Outbound Call

Blind Transfer

Redirect Set Original Called (TxToVM)

Shared Lines

Initiate a New Call Manually

Presentation Indication

Make a Call Through Translation Pattern

Blind Transfer Through Translation Pattern

Forced Authorization and Client Matter Code Scenarios

Manual Call to a Destination that Requires a FAC

Manual Call to a Destination that Requires both FAC and CMC

lineMakeCall to a Destination that Requires a FAC

lineMakeCall to a Destination that Requires Both FAC and CMC

Timeout Waiting for FAC or Invalid FAC entered

Refer / Replaces Scenarios

In-Dialog Refer - Referrer in Cisco Unified Communications Manager Cluster

In-Dialog Refer Where ReferToTarget Redirects the Call in Offering State

In-Dialog Refer Where Refer Fails / Refer to Target is Busy

Out-of-Dialog Refer

Invite with Replace for Confirmed Dialog

Refer with Replace for All in Cluster

Refer with Replace for All in Cluster, Replace Dialog Belongs to Another Station

3XX

SRTP

Media Terminate by Application (open secure CTI port or RP)

Media Terminate by TSP Wave Driver (open secure CTI port)

Intercom

Application Invoking Speeddial

Agent Invokes Talkback

Change the SpeedDial

Secure Conferencing

Conference with all parties as Secure

Hold/Resume in Secure Conference

Monitoring & Recording

Monitoring a Call

Automatic Recording

Application-Controlled Recording

Conference Enhancements

Non-Controller Adding Partys to Conferences

Chaining Two Ad-Hoc Conferences using Join

Calling Party IP Address

Basic Call

Consultation Transfer

Consultation Conference

Redirect

Click to Conference

Drop Party Using Click To Conference

Drop Entire Conference Using Click to Conference Feature

Calling Party Normalization

Incoming Call from PSTN To End Point

Incoming call from National PSTN to CTI-Observed End Point

Incoming Call from International PSTN to CTI-Observed End Point

Outgoing Call from CTI-Observed End Point to PSTN Number

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

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

Do Not Disturb-Reject

Application Enables DND-R on a Phone

Normal Feature Priority

Feature Priority - Emergency

Join Across Lines


Message Sequence Charts


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

This appendix contains the following sections:

Abbreviations

Manual Outbound Call

Blind Transfer

Redirect Set Original Called (TxToVM)

Shared Lines

Presentation Indication

Forced Authorization and Client Matter Code Scenarios

Refer / Replaces Scenarios

3XX

SRTP

Intercom

Secure Conferencing

Monitoring & Recording

Conference Enhancements

Calling Party IP Address

Click to Conference

Calling Party Normalization

Do Not Disturb-Reject

Join Across Lines

Abbreviations

The following is a list of abbreviations used in the CTI events shown in each scenario.

NP—Not Present

LR—LastRedirectingParty

CH—CtiCallHandle

GCH—CtiGlobalCallHandle

RIU—RemoteInUse flag

DH—DeviceHandle

Manual Outbound Call

Party A is idle.

Action
CTI Messages
TAPI Messages
TAPI Structures

1. Party A goes offhook

NewCallEven
CH=C1,
GCH=G1,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP,
State=Dialtone,
Origin=OutBound,
Reason=Direct

LINE_APPNEWCALL
hDevice=A
dwCallbackInstance=0
dwParam1=0
dwParam2=hCall-1
dwParam3=OWNER

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=NP
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent,
CH=C1,
State=Dialtone,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALTONE
dwParam2=UNAVAIL
dwParam3=0

No change

2. Party A dials Party B

CallStateChangedEvent,
CH=C1,
State=Dialing,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALING
dwParam2=0
dwParam3=0

No change

3. Party B accepts call

CallStateChangedEvent,
CH=C1,
State=Proceeding,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=PROCEEDING
dwParam2=0
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CALLEDID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent,
CH=C1,
State=Ringback,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=RINGBACK
dwParam2=0
dwParam3=0

No change

4. Party B answers call

CallStateChangedEvent,
CH=C1,
State=Connected,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CONNECTED
dwParam2=ACTIVE
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CONNECTEDID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=B
dwRedirectionID=NP
dwRedirectionID=NP

CallStartReceptionEvent, DH=A, CH=C1

LINE_DEVSPECIFIC1
hDevice=hCall-1
dwCallBackInstance=0
dwParam1=StartReception
dwParam2=IP Address
dwParam3=Port

No change

CallStartTransmissionEvent, DH=A, CH=C1

LINE_DEVSPECIFIC2
hDevice=hCall-1
dwCallBackInstance=0
dwParam1=StartTransmission
dwParam2=IP Address
dwParam3=Port

No change

1 LINE_DEVSPECIFIC events are sent only if the application has requested them using lineDevSpecific()

2 LINE_DEVSPECIFIC events are sent only if the application has requested them using lineDevSpecific()


Blind Transfer

A calls B. B answers. A and B are connected.

Action
CTI Messages
TAPI Messages
TAPI Structures

Party B does a lineBlindTranfser() to blind transfer call from party A to party C

Party A

CallPartyInfoChangedEvent,
CH=C1,
CallingChanged=False,
Calling=A,
CalledChanged=True,
Called=C,
OriginalCalled=B,
LR=B,
Cause=BlindTransfer

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CONNECTEDID, REDIRECTINGID, REDIRECTIONID

TSPI LINECALLINFO
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=NULL
dwRedirectingID=NP
dwRedirectionID=NP

Party B

CallStateChangedEvent,
CH=C2,
State=Idle,
Reason=Direct,
Calling=A,
Called=B,
OriginalCalled=B,
LR=NULL

TSPI: LINE_CALLSTATE
|hDevice=hCall-1
dwCallbackInstance=0
dwParam1=IDLE
dwParam2=0
dwParam3=0

TSPI LINECALLINFO
dwOrigin=INTERNAL
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=NULL
dwRedirectingID=NULL
dwRedirectionID=NULL

Party C

NewCallEvent,
CH=C3,
origin=Internal_Inbound,
Reason=BlindTransfer,
Calling=A,
Called=C,
OriginalCalled=B,
LR=B

TSPI: LINE_APPNEWCALL hDevice=C
dwCallbackInstance=0
dwParam1=0
dwParam2=hCall-1
dwParam3=OWNER

TSPI LINECALLINFO
dwOrigin=INTERNAL
dwReason=TRANSFER
dwCallerID=A
dwCalledID=C
dwConnectedID=NULL
dwRedirectingID=B
dwRedirectionID=C

Party C is offering

Party A

CallStateChangeEvent,
CH=C1,
State=Ringback,
Reason=Direct,
Calling=A,
Called=C,
OriginalCalled=B,
LR=B

TSPI: LINE_CALLSTATE, hDevice=hCall-1, dwCallbackInstance=0, dwParam1= RINGBACK dwParam2=0
dwParam3=0

TSPI LINECALLINFO
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=NULL
dwRedirectingID=B
dwRedirectionID=C

Party C

CallStateChangedEvent,
CH=C3,
State=Offering,
Reason=BlindTransfer,
Calling=A,
Called=C,
OriginalCalled=B, LR=B

TSPI: LINE_CALLSTATE, hDevice=hCall-1, dwCallbackInstance=0, dwParam1= OFFERING dwParam2=0
dwParam3=0

TSPI LINECALLINFO
dwOrigin=INTERNAL
dwCallerID=A
dwCalledID=C
dwConnectedID=NULL
dwRedirectingID=B
dwRedirectionID=C


Redirect Set Original Called (TxToVM)

A calls B. B answers. A and B are connected.

Action
CTI Messages
TAPI Messages
TAPI Structures

Party B does lineDevSpecific for REDIRECT_SET_ORIG_CALLED with DestDN = C's VMP and SetOrigCalled = C.

Party A

CallPartyInfoChangedEvent, CH=C1, CallingChanged=False, Calling=A, CalledChanged=True, Called=C, OriginalCalled=NULL, LR=NULL, Cause=Redirect

LINE_CALLINFO, hDevice=hCall-1, dwCallbackInstance=0, dwParam1=CONNECTEDID, REDIRECTINGID, REDIRECTIONID

TSPI LINECALLINFO
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=C
dwConnectedID=NULL
dwRedirectingID=NP
dwRedirectionID=NP

Party B

CallStateChangedEvent,
CH=C2,
State=Idle,
reason=DIRECT,
Calling=A,
Called=B,
OriginalCalled=B,
LR=NULL

TSPI: LINE_CALLSTATE, hDevice=hCall-1, dwCallbackInstance=0, dwParam1=IDLE dwParam2=0
dwParam3=0

TSPI LINECALLINFO
dwOrigin=INTERNAL
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=NULL
dwRedirectingID=NULL
dwRedirectionID=NULL

Party C's VMP

NewCallEvent,
CH=C3,
origin=Internal_Inbound,
reason=Redirect,
Calling=A,
Called=C,
OriginalCalled=C,
LR=B

TSPI: LINE_APPNEWCALL
hDevice=C
dwCallbackInstance=0
dwParam1=0
dwParam2=hCall-1
dwParam3=OWNER

TSPI LINECALLINFO
dwOrigin=INTERNAL
dwReason=REDIRECT
dwCallerID=A
dwCalledID=C
dwConnectedID=NULL
dwRedirectingID=B
dwRedirectionID=C's VMP

Party C is offering

Party A

CallStateChangeEvent,
CH=C1,
State=Ringback,
Reason=Direct,
Calling=A,
Called=C,
OriginalCalled=C,
LR=B

TSPI: LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1= RINGBACK
dwParam2=0
dwParam3=0

TSPI LINECALLINFO
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=NULL
dwRedirectingID=B
dwRedirectionID=C's VMP

Party C
CallStateChangedEvent,
CH=C3,
State=Offering,
Reason=Redirect,
Calling=A,
Called=C,
OriginalCalled=C,
LR=B

TSPI: LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1= OFFERING
dwParam2=0
dwParam3=0

TSPI LINECALLINFO
dwOrigin=INTERNAL
dwCallerID=A
dwCalledID=C
dwConnectedID=NULL
dwRedirectingID=B
dwRedirectionID=C


Shared Lines

Initiate a New Call Manually

Party A and Party A' are shared line appearances.

Party A and Party A' are idle.

Action
CTI Messages
TAPI Messages
TAPI Structures

1. Party A goes offhook

NewCallEvent,
CH=C1,
GCH=G1,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP,
State=Dialtone,
Origin=OutBound,
Reason=Direct,
RIU=false

LINE_APPNEWCALL
hDevice=A
dwCallbackInstance=0
dwParam1=0
dwParam2=hCall-1
dwParam3=OWNER

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=NP
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent,
CH=C1,
State=Dialtone,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP,
RIU=false

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALTONE
dwParam2=UNAVAIL
dwParam3=0

No change

Party A'

NewCallEvent,
CH=C1,
GCH=G1,
Calling=A',
Called=NP,
OrigCalled=NP,
LR=NP, S
tate=Dialtone,
Origin=OutBound,
Reason=Direct,
RIU=true

LINE_APPNEWCALL
hDevice=A'
dwCallbackInstance=0
dwParam1=0
dwParam2=hCall-2
dwParam3=OWNER

LINECALLINFO (hCall-2)
hLine=A'
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A'
dwCalledID=NP
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent,
CH=C1,
State=Dialtone,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP,
RIU=true

LINE_CALLSTATE
hDevice=hCall-2
dwCallbackInstance=0
dwParam1=CONNECTED
dwParam2=INACTIVE
dwParam3=0

No change

2. Party A dials Party B

Party A

CallStateChangedEvent,
CH=C1,
State=Dialing,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP,
RIU=false

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALING
dwParam2=0
dwParam3=0

No change

Party A'

None

None

None

3. Party B accepts call

Party A

CallPartyInfoChangedEvent,
CH=C1,
CallingChanged=False,
Calling=A,
CalledChanged=true,
Called=B,
Reason=Direct,
RIU=false

Ignored

No change

CallStateChangedEvent,
CH=C1,
State=Proceeding,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP,
RIU=false

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=PROCEEDING
dwParam2=0
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=
CALLERID, CALLEDID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent,
CH=C1,
State=Ringback,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP,
RIU=false

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=RINGBACK
dwParam2=0
dwParam3=0

No change

3. Party B accepts call (continued)

Party A'

CallPartyInfoChangedEvent,
CH=C1,
CallingChanged=False,
Calling=A',
CalledChanged=true,
Called=B,
Reason=Direct,
RIU=true

Ignored

No change

CallStateChangedEvent,
CH=C1,
State=Proceeding,
Cause=CauseNoError,
Reason=Direct,
Calling=A',
Called=B,
OrigCalled=B,
LR=NP,
RIU=true

LINE_CALLSTATE
hDevice=hCall-2
dwCallbackInstance=0
dwParam1=CONNECTED
dwParam2=INACTIVE
dwParam3=0

LINE_CALLINFO
hDevice=hCall-2
dwCallbackInstance=0
dwParam1=
CALLERID, CALLEDID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-2)
hLine=A'
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A'
dwCalledID=B
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent,
CH=C1, State=Ringback,
Cause=CauseNoError,
Reason=Direct,
Calling=A', Called=B,
OrigCalled=B,
LR=NP, RIU=true

LINE_CALLSTATE
hDevice=hCall-2
dwCallbackInstance=0
dwParam1=CONNECTED
dwParam2=INACTIVE
dwParam3=0

No change

4. Party B answers call

Party A

CallStateChangedEvent,
CH=C1,
State=Connected,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP,
RIU=false

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CONNECTED
dwParam2=ACTIVE
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CONNECTEDID
dwParam2=0, dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=B
dwRedirectionID=NP
dwRedirectionID=NP

Party A'

CallStateChangedEvent, CH=C1,
State=Connected,
Cause=CauseNoError,
Reason=Direct,
Calling=A',
Called=B,
OrigCalled=B,
LR=NP,
RIU=true

LINE_CALLSTATE
hDevice=hCall-2
dwCallbackInstance=0
dwParam1=CONNECTED
dwParam2=INACTIVE
dwParam3=0

LINE_CALLINFO
hDevice=hCall-2
dwCallbackInstance=0
dwParam1=CONNECTEDID
dwParam2=0, dwParam3=0

LINECALLINFO (hCall-2)
hLine=A'
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A'
dwCalledID=B
dwConnectedID=B
dwRedirectionID=NP
dwRedirectionID=NP


Presentation Indication

Make a Call Through Translation Pattern

In the Translation pattern admin pages, both the callerID/Name and ConnectedID/Name are set to "Restricted".

Action
CTI Messages
TAPI Messages
TAPI Structures

Party A goes offhook

NewCallEvent,
CH=C1, GCH=G1,
Calling=A, Called=NP, OrigCalled=NP, LR=NP, State=Dialtone, Origin=OutBound, Reason=Direct

LINE_APPNEWCALL
hDevice=A
dwCallbackInstance=0
dwParam1=0
dwParam2=hCall-1
dwParam3=OWNER

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=NP
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent, CH=C1, State=Dialtone, Cause=CauseNoError, Reason=Direct, Calling=A, Called=NP, OrigCalled=NP, LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALTONE
dwParam2=UNAVAIL
dwParam3=0

No change

Party A dials Party B through Translation pattern

CallStateChangedEvent, CH=C1, State=Dialing, Cause=CauseNoError, Reason=Direct, Calling=A, Called=NP, OrigCalled=NP, LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALING
dwParam2=0
dwParam3=0

No change

Party B accepts the call

CallStateChangedEvent, CH=C1, State=Proceeding, Cause=CauseNoError, Reason=Direct, Calling=A, CallingPartyPI=Allowed, Called=B, CalledPartyPI= Restricted, OrigCalled=B, OrigCalledPI=restricted, LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=
PROCEEDING
dwParam2=0
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CALLEDID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A dwCallerIDName=A's Name
dwCalledID=B
dwCalledIDName=B's name dwConnectedID=NP
dwConnectedIDName=NP
dwRedirectionID=NP dwRedirectionIDName=NP
dwRedirectionID=NP dwRedirectionIDName=NP

Party B accepts the call
(continued)

CallStateChangedEvent, CH=C1, State=Ringback, Cause=CauseNoError, Reason=Direct, Calling=A, CallingPI = Allowed, Called=B, CalledPI = Restricted, OrigCalled=B, OrigCalledPI = Restricted, LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=RINGBACK
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedIDFlags = LINECALLPARTYID_
BLOCKED dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionIDFlags = LINECALLPARTYID_
BLOCKED dwRedirectionID=NP

Party B answers the call

CallStateChangedEvent, CH=C1, State=Connected, Cause=CauseNoError, Reason=Direct, Calling=A, CallingPI = Allowed, Called=B, CalledPI = Restricted, OrigCalled=B, OrigCalledPI = Restricted, LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CONNECTED
dwParam2=ACTIVE
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CONNECTEDID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A dwCallerIDName=A's Name
dwCalledID=B dwCalledIDName=B's Name
dwConnectedID=A, dwConnectedIDName=
A's Name,
dwRedirectingID=NP
dwRedirectingIDName=NP
dwRedirectionIDFlags = LINECALLPARTYID_
BLOCKED dwRedirectionID=NP dwRedirectionIDName=NP

CallStartReceptionEvent, DH=A, CH=C1

LINE_DEVSPECIFIC1
hDevice=hCall-1
dwCallBackInstance=0
dwParam1=
StartReception
dwParam2=IP Address
dwParam3=Port

No change

CallStartTransmissionEvent, DH=A, CH=C1

LINE_DEVSPECIFIC1
hDevice=hCall-1
dwCallBackInstance=0
dwParam1=
StartTransmission
dwParam2=IP Address
dwParam3=Port

No change

1 LINE_DEVSPECIFIC events are only sent if the application has requested for them using lineDevSpecific().


Blind Transfer Through Translation Pattern

A calls via translation pattern B.

B answers.

A and B are connected.

Action
CTI Messages
TAPI Messages
TAPI Structures

Party B does a lineBlindTranfser() to blind transfer call from party A to party C via translation pattern

Party A
 

CallPartyInfoChangedEvent, CH=C1, CallingChanged=False, Calling=A,
CallingPartyPI=Restricted, CalledChanged=True, Called=C,
CalledPartyPI=Restricted, OriginalCalled=NULL, OriginalCalledPI=Restricted,
LR=NULL, Cause=BlindTransfer

LINE_CALLINFO, hDevice=hCall-1, dwCallbackInstance=0, dwParam1=CONNECTEDID, REDIRECTINGID, REDIRECTIONID

TSPI LINECALLINFO
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerIDFlags = LINECALLPARTYID_
BLOCKED
dwCallerID=NP dwCallerIDName=NP
dwCalledID=B dwCalledIDName=B's name
dwConnectedIDFlags = LINECALLPARTYID_
BLOCKED dwConnectedID=NP dwConnectedIDName=NP dwRedirectingID=B
dwRedirectingIDName=
B's name
dwRedirectionIDFlags = LINECALLPARTYID_
BLOCKED dwRedirectionID=NP dwRedirectionIDName=NP

 
Party B
 

CallStateChangedEvent, CH=C2,
State=Idle, Reason=Direct,
Calling=A, CallingPartyPI=Restricted, Called=B, CalledPartyPI=Restricted, OriginalCalled=B, OrigCalledPartyPI=Restricted, LR=NULL

TSPI: LINE_CALLSTATE, hDevice=hCall-1, dwCallbackInstance=0, dwParam1=IDLE dwParam2=0
dwParam3=0

TSPI LINECALLINFO
dwOrigin=INTERNAL
dwReason=DIRECT
dwCallerIDFlags = LINECALLPARTYID_
BLOCKED
dwCallerID=NP dwCallerIDName=NP
dwCalledID=B dwCalledIDName=B's name
dwConnectedIDFlags = LINECALLPARTYID_
BLOCKED dwConnectedID=NP dwConnectedIDName=NP dwRedirectingID=B
dwRedirectingIDName=
B's name
dwRedirectionIDFlags = LINECALLPARTYID_
BLOCKED dwRedirectionID=NP dwRedirectionIDName=NP

Party B does a lineBlindTranfser() to blind transfer call from party A to party C via translation pattern (continued)

Party C

NewCallEvent,
CH=C3,
origin=Internal_Inbound,
Reason=BlindTransfer,
Calling=A,
CallingPartyPI=Restricted,
Called=C,
CalledPartyPI=Restricted,
OriginalCalled=B, OrigCalledPartyPI=Restricted,
LR=B,
LastRedirectingPartyPI=
Restricted

TSPI: LINE_APPNEWCALL hDevice=C
dwCallbackInstance=0
dwParam1=0
dwParam2=hCall-1
dwParam3=OWNER

TSPI LINECALLINFO
dwOrigin=INTERNAL
dwReason=TRANSFER
dwCallerIDFlags = LINECALLPARTYID_
BLOCKED
dwCallerID=NP dwCallerIDName=NP
dwCalledID=NP dwCalledIDName=NP
dwConnectedIDFlags = LINECALLPARTYID_
BLOCKED dwConnectedID=NP dwConnectedIDName=NP dwRedirectingID=B
dwRedirectingIDName=
B's name
dwRedirectionIDFlags = LINECALLPARTYID_
BLOCKED dwRedirectionID=NP dwRedirectionIDName=NP

Party C is offering

Party A

CallStateChangeEvent, CH=C1,
State=Ringback, Reason=Direct,
Calling=A,
CallingPartyPI=Restricted,
Called=C,
CalledPartyPI=Restricted,
OriginalCalled=B, OrigCalledPartyPI=Restricted,
LR=B, LastRedirectingPartyPI=
Restricted

TSPI: LINE_CALLSTATE, hDevice=hCall-1, dwCallbackInstance=0, dwParam1= RINGBACK dwParam2=0
dwParam3=0

TSPI LINECALLINFO
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerIDFlags = LINECALLPARTYID_
BLOCKED
dwCallerID=NP dwCallerIDName=NP
dwCalledID=B dwCalledIDName=B's name
dwConnectedIDFlags = LINECALLPARTYID_
BLOCKED dwConnectedID=NP dwConnectedIDName=NP dwRedirectingID=B
dwRedirectingIDName=
B's name
dwRedirectionIDFlags = LINECALLPARTYID_
BLOCKED dwRedirectionID=NP dwRedirectionIDName=NP

Party C is offering (continued)

Party C

CallStateChangedEvent, CH=C3,
State=Offering, Reason=BlindTransfer, Calling=A,
CallingPartyPI=Restricted,
Called=C,
CalledPartyPI=Restricted,
OriginalCalled=B,
OrigCalledPartyPI=Restricted,
LR=B, LastRedirectingPartyPI=
Restricted

TSPI: LINE_CALLSTATE, hDevice=hCall-1, dwCallbackInstance=0, dwParam1= OFFERING dwParam2=0
dwParam3=0

TSPI LINECALLINFO
dwOrigin=INTERNAL
dwCallerIDFlags = LINECALLPARTYID_
BLOCKED dwCallerID=NP dwCallerIDName=NP
dwCalledID=NP dwCalledIDName=NP
dwConnectedIDFlags = LINECALLPARTYID_
BLOCKED dwConnectedID=NP dwConnectedIDName=NP dwRedirectingID=B
dwRedirectingIDName=
B's name
dwRedirectionIDFlags = LINECALLPARTYID_
BLOCKED dwRedirectionID=NP dwRedirectionIDName=NP


Forced Authorization and Client Matter Code Scenarios

Manual Call to a Destination that Requires a FAC

Preconditions

Party A is Idle. Party B requires an FAC.

Note that the scenario is similar if Party B requires a CMC instead of an FAC.

Actions
CTI Message
TAPI Messages
TAPI Structures

Party A goes offhook

NewCallEvent,
CH=C1,
GCH=G1,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP,
State=Dialtone,
Origin=OutBound,
Reason=Direct

LINE_APPNEWCALL
hDevice=A
dwCallbackInstance=0
dwParam1=0
dwParam2=hCall-1
dwParam3=OWNER

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=NP
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent, CH=C1,
State=Dialtone,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALTONE
dwParam2=UNAVAIL
dwParam3=0

No change

Party A dials Party B

CallStateChangedEvent, CH=C1,
State=Dialing, Cause=CauseNoError, Reason=Direct,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALING
dwParam2=0
dwParam3=0

No change

CallToneChangedEvent, CH=C1,
Tone=ZipZip, Feature=FACCMC, FACRequired=True, CMCRequired=False

LINE_DEVSPECIFIC
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=SLDSMT_CALL_TONE_CHANGED
dwParam2=CTONE_ZIPZIP
dwParam3=
CZIPZIP_FACREQUIRED

No change

Party A dials the FAC and Party B accepts the call

CallStateChangedEvent, CH=C1,
State=Proceeding,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=PROCEEDING
dwParam2=0
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CALLEDID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent, CH=C1,
State=Ringback,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=RINGBACK
dwParam2=0
dwParam3=0

No change


Manual Call to a Destination that Requires both FAC and CMC

Preconditions

Party A is Idle. Party B requires an FAC and a CMC.

Actions
CTI Message
TAPI Messages
TAPI Structures

Party A goes offhook

NewCallEvent,
CH=C1,
GCH=G1,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP,
State=Dialtone,
Origin=OutBound,
Reason=Direct

LINE_APPNEWCALL
hDevice=A
dwCallbackInstance=0
dwParam1=0
dwParam2=hCall-1
dwParam3=OWNER

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=NP
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent, CH=C1,
State=Dialtone,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALTONE
dwParam2=UNAVAIL
dwParam3=0

No change

Party A dials Party B

CallStateChangedEvent, CH=C1,
State=Dialing,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALING
dwParam2=0
dwParam3=0

No change

CallToneChangedEvent, CH=C1,
Tone=ZipZip,
Feature=FACCMC,
FACRequired=True,
CMCRequired=True

LINE_DEVSPECIFIC
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=SLDSMT_CALL_TONE_CHANGED
dwParam2=CTONE_ZIPZIP
dwParam3=
CZIPZIP_FACREQUIRED,
CZIPZIP_CMCREQUIRED

No change

Party A dials the FAC.

CallToneChangedEvent, CH=C1,
Tone=ZipZip,
Feature=FACCMC,
FACRequired=False,
CMCRequired=True

LINE_DEVSPECIFIC
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=SLDSMT_CALL_TONE_CHANGED
dwParam2=CTONE_ZIPZIP
dwParam3= CZIPZIP_CMCREQUIRED

No change

Party A dials the CMC and Party B accepts the call.

CallStateChangedEvent, CH=C1,
State=Proceeding,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=PROCEEDING
dwParam2=0
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CALLEDID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent, CH=C1,
State=Ringback,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=RINGBACK
dwParam2=0
dwParam3=0

No change


lineMakeCall to a Destination that Requires a FAC

Preconditions

Party A is Idle. Party B requires an FAC. Note that the scenario is similar if Party requires a CMC instead of an FAC

Actions
CTI Message
TAPI Messages
TAPI Structures

Party A does a lineMakeCall() to Party B

NewCallEvent,
CH=C1,
GCH=G1,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP,
State=Dialtone,
Origin=OutBound,
Reason=Direct

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=ORIGIN
dwParam2=0
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=
REASON, CALLERID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=NP
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent, CH=C1,
State=Dialing,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALING
dwParam2=0
dwParam3=0

No change

Party A does a lineMakeCall() to Party B (continued)

CallToneChangedEvent, CH=C1, Tone=ZipZip, Feature=FACCMC, FACRequired=True, CMCRequired=False

LINE_DEVSPECIFIC
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=SLDSMT_CALL_TONE_CHANGED
dwParam2=CTONE_ZIPZIP
dwParam3=
CZIPZIP_FACREQUIRED

No change

Party A does a lineDial() with the FAC in the dial string and Party B accepts the call

NewCallEvent,
CH=C1,
GCH=G1,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP,
State=Dialtone,
Origin=OutBound,
Reason=Direct

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=PROCEEDING
dwParam2=0
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CALLEDID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent, CH=C1,
State=Ringback,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=RINGBACK
dwParam2=0
dwParam3=0

No change


lineMakeCall to a Destination that Requires Both FAC and CMC

Party A is Idle. Party B requires both a FAC and a CMC.

Actions
CTI Message
TAPI Messages
TAPI Structures

Party A does a lineMakeCall() to Party B

NewCallEvent,
CH=C1,
GCH=G1,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP,
State=Dialtone,
Origin=OutBound,
Reason=Direct

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=ORIGIN
dwParam2=0
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=
REASON, CALLERID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=NP
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

Party A does a lineMakeCall() to Party B (continued)

CallStateChangedEvent, CH=C1,
State=Dialing,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALING
dwParam2=0
dwParam3=0

No change

CallToneChangedEvent, CH=C1,
Tone=ZipZip,
Feature=FACCMC,
FACRequired=True,
CMCRequired=True

LINE_DEVSPECIFIC
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=SLDSMT_CALL_TONE_CHANGED
dwParam2=CTONE_ZIPZIP
dwParam3=
CZIPZIP_FACREQUIRED,
CZIPZIP_CMCREQUIRED

No change

Party A does a lineDial() with the FAC in the dial string

CallToneChangedEvent, CH=C1,
Tone=ZipZip,
Feature=FACCMC,
FACRequired=False,
CMCRequired=True

LINE_DEVSPECIFIC
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=SLDSMT_CALL_TONE_CHANGED
dwParam2=CTONE_ZIPZIP
dwParam3= CZIPZIP_CMCREQUIRED

No change

Party A does a lineDial() with the CMC in the dial string and Party B accepts the call.

CallStateChangedEvent, CH=C1,
State=Proceeding,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=PROCEEDING
dwParam2=0
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CALLEDID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent, CH=C1,
State=Ringback,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=B,
OrigCalled=B,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=RINGBACK
dwParam2=0
dwParam3=0

No change


Timeout Waiting for FAC or Invalid FAC entered

Party A is Idle. Party B requires a FAC.

Note that the scenario is similar if Party B required a CMC instead of a FAC.

Actions
CTI Message
TAPI Messages
TAPI Structures

Party A does a lineMakeCall() to Party B.

NewCallEvent,
CH=C1,
GCH=G1,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP,
State=Dialtone,
Origin=OutBound,
Reason=Direct

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=ORIGIN
dwParam2=0
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=
REASON, CALLERID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=NP
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectionID=NP

CallStateChangedEvent, CH=C1,
State=Dialing,
Cause=CauseNoError,
Reason=Direct,
Calling=A,
Called=NP,
OrigCalled=NP,
LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DIALING
dwParam2=0
dwParam3=0

No change

CallToneChangedEvent, CH=C1,
Tone=ZipZip,
Feature=FACCMC,
FACRequired=True,
CMCRequired=False

LINE_DEVSPECIFIC
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=SLDSMT_CALL_TONE_CHANGED
dwParam2=CTONE_ZIPZIP
dwParam3=
CZIPZIP_FACREQUIRED

No change

T302 timer times out waiting for digits or Party A does a lineDial() with an invalid FAC.

CallStateChangedEvent, CH=C1, State=Disconnected,
Cause=
CtiNoRouteToDDestination,
Reason=FACCMC,
Calling=A, Called=NP,
OrigCalled=NP, LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=DISCONNECTED
dwParam2=DISCONNECT
MODE_FACCMC1
dwParam3=0

No change

CallStateChangedEvent, CH=C1, State=Idle, Cause=CtiCauseNoError, Reason=Direct, Calling=A, Called=NP, OrigCalled=NP, LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=IDLE
dwParam2=0
dwParam3=0

No change

1 dwParam2 will on be set to DISCONNECTMODE_FACCMC if the extension version on the line has been set to at least 0x00050000. Otherwise, dwParam2 will be set to DISCONNECTMODE_UNAVAIL.

Refer / Replaces Scenarios

In-Dialog Refer - Referrer in Cisco Unified Communications Manager Cluster

Actions
CallState/CallInfo
@Referrer (A)
CallState/CallInfo
@Referree (B)
CallState/CallInfo
@Refer-to-Target (C)

Referrer (A), Referee (B,) and Refer-to-Target (C) are present in Cisco Unified Communications Manager cluster and CTI is monitoring those lines.

A-->B has a call in connected state. The call party information at A should be {calling=A, called=B, LRP=null, origCalled=B, reason=direct}

TAPI CallInfo
dwCallerID = A
dwCalledID = B
dwRedirectingID = null
dwRedirectionID = null
dwConnectedID = B
dwReason = Direct
dwOrigin =LINECALL
ORIGIN_INTERNAL

A-->B has a call in connected state. The call party information at B should be {calling=A, called=B, LRP=null, origCalled=B, reason=direct}

TAPI CallInfo
dwCallerID = A
dwCalledID = B
dwRedirectingID = null
dwRedirectionID = null
dwConnectedID = A
dwReason = Direct
dwOrigin = LINECALL
ORIGIN_INTERNAL

 

(A) initiates REFER (B) to (C)

A gets LINECALLSTATE_
UNKNOWN | CLDSMT_
CALL_WAITING_STATE
with extended reason = REFER

TAPI CallInfo
dwCallerID = A
dwCalledID = B
dwRedirectingID = null
dwRedirectionID = null
dwConnectedID = B
dwReason = Direct
dwOrigin =LINECALL
ORIGIN_INTERNAL

 

NewCallEvent should be {calling=B, called=C, LRP=A, origCalled=C, reason=REFER}

LINECALLSTATE_OFFERING

TAPI CallInfo
dwCallerID = B
dwCalledID = C
dwRedirectingID = A
dwRedirectionID = C
dwConnectedID = ""
dwReason =LINECALL
REASON_UNKNOWN with extended REFER
dwOrigin = LINECALL
ORIGIN_INTERNAL

C answers the call and Refer is successful

LINECALLSTATE_IDLE with extended REFER reason

CallPartyInfoChangedEvent @ B with {calling=B, called=C, LRP=A, origCalled=C, reason=REFER}

TAPI callInfo
dwCallerID = B
dwCalledID = B
dwRedirectingID = A
dwRedirectionID = C
dwConnectedID = C
dwReason = DIRECT
dwOrigin = LINECALL
ORIGIN_INTERNAL

LINECALLSTATE_CONNECTED

TAPI callInfo
dwCallerID = B
dwCalledID = C
dwRedirectingID = A
dwRedirectionID = C
dwConnectedID = B
dwReason = LINECALL
REASON_UNKNOWN with extended REFER
dwOrigin = LINECALL
ORIGIN_INTERNAL


In-Dialog Refer Where ReferToTarget Redirects the Call in Offering State

Actions
CallState/CallInfo
@Referrer (A)
CallState/CallInfo
@Referree (B)
CallState/CallInfo
@Refer-to-Target (C)

Referrer (A), Referee (B), and Refer-to-Target (C) are present in Cisco Unified Communications Manager cluster and CTI is monitoring those lines.

A-->B has a call in connected state. The call party information at A should be {calling=A, called=B, LRP=null, origCalled=B, reason=direct}

TAPI CallInfo
dwCallerID = A
dwCalledID = B
dwRedirectingID = null
dwRedirectionID = null
dwConnectedID = B
dwReason = Direct
dwOrigin = LINECALL
ORIGIN_INTERNAL

A-->B has a call in connected state. The call party information at B should be {calling=A, called=B, LRP=null, origCalled=B, reason=direct}

TAPI CallInfo
dwCallerID = A
dwCalledID = B
dwRedirectingID = null
dwRedirectionID = null
dwConnectedID = A
dwReason = Direct
dwOrigin = LINECALL
ORIGIN_INTERNAL

 

(A) initiates REFER (B) to (C)

A gets LINECALLSTATE_
UNKNOWN | CLDSMT_
CALL_WAITING_STATE
with extended reason = REFER

TAPI CallInfo
dwCallerID = A
dwCalledID = B
dwRedirectingID = null
dwRedirectionID = null
dwConnectedID = B
dwReason = Direct
dwOrigin = LINECALL
ORIGIN_INTERNAL

B gets CPIC with (calling = B, called = C, ocdpn=C, LRP = A, reason = REFER, call state = Ringback)

TAPI CallInfo
dwCallerID = B
dwCalledID = C
dwRedirectingID = A
dwRedirectionID = C
dwConnectedID = null
dwReason = Direct
dwOrigin = LINECALL
ORIGIN_INTERNAL

NewCallEvent should be {calling=B, called=C, LRP=A, origCalled=C, reason=REFER}

LINECALLSTATE_OFFERING

TAPI callInfo
dwCallerID = B
dwCalledID = C
dwRedirectingID = A
dwRedirectionID = C
dwConnectedID = null
dwReason = LINECALL
REASON_UNKNOWN with extended REFER
dwOrigin = LINECALL
ORIGIN_INTERNAL

C Redirects the call to D in offering state and D answers

LINECALLSTATE_IDLE with extended reason = REFER

(REFER considered as successful when D answers)

CallPartyInfoChangedEvent @ B with {calling=B, called=D, LRP=C, origCalled=C, reason=Redirect}

Callstate = connected

TAPI callInfo
dwCallerID = B
dwCalledID = B
dwRedirectingID = C
dwRedirectionID = D
dwConnectedID = D
dwReason = DIRECT
dwOrigin = LINECALL
ORIGIN_INTERNAL

IDLE with reason = Redirect

TAPI LINECALLSTATE_IDLE

D will get NewCallEvent with reason = Redirect call info same as B's call info. (calling=B, called=D, ocdpn = C, LRP = C, reason = redirect)

Offering/accepted/connected


In-Dialog Refer Where Refer Fails / Refer to Target is Busy

Actions
CallState/CallInfo
@Referrer (A)
CallState/CallInfo
@Referree (B)
CallState/CallInfo
@Refer-to-Target (C)

Referrer (A), Referee (B,) and Refer-to-Target (C) are present in Cisco Unified Communications Manager cluster and CTI is monitoring those lines.

A-->B has a call in connected state. The call party information at A should be {calling=A, called=B, LRP=null, origCalled=B, reason=direct}

TAPI CallInfo
dwCallerID = A
dwCalledID = B
dwRedirectingID = null
dwRedirectionID = null
dwConnectedID = B
dwReason = Direct
dwOrigin = LINECALL
ORIGIN_INTERNAL

A-->B has a call in connected state. The call party information at B should be {calling=A, called=B, LRP=null, origCalled=B, reason=direct}

TAPI CallInfo
dwCallerID = A
dwCalledID = B
dwRedirectingID = null
dwRedirectionID = null
dwConnectedID = A
dwReason = Direct
dwOrigin = LINECALL
ORIGIN_INTERNAL

 

(A) initiates REFER (B) to (C)

A gets LINECALLSTATE_
UNKNOWN | CLDSMT_
CALL_WAITING_STATE with extended reason = REFER

TAPI CallInfo
dwCallerID = A
dwCalledID = B
dwRedirectingID = null
dwRedirectionID = null
dwConnectedID = B
dwReason = Direct
dwOrigin = LINECALL
ORIGIN_INTERNAL

No change

 

C is busy / C does not answer

A gets LINECALLSTATE_ CONNECTED with extended reason = REFER

(REFER considered as failed)

If B goes to ringback when call is offered to C (C does not answer finally) it should also receive Connected Call State and CPIC event

TAPI CallInfo
dwCallerID = A
dwCalledID = B
dwRedirectingID = null
dwRedirectionID = null
dwConnectedID = A
dwReason = Direct
dwOrigin = LINECALL
ORIGIN_INTERNAL

 

Out-of-Dialog Refer

Actions
CallState/CallInfo
@Referrer (A)
CallState/CallInfo
@Referree (B)
CallState/CallInfo
@Refer-to-Target (C)

Referrer (A), Referee (B,) and Refer-to-Target (C) are present in Cisco Unified Communications Manager cluster and CTI is monitoring those lines.

There is no preexisting call between A and B.

There is no preexisting call between A and B.

 

A initiates REFER B to (C).

 

B should get NewCallEvent with call info as {calling=A, called=B, LRP=null, origCalled=B, reason=REFER}

TAPI CallInfo
dwCallerID = A
dwCalledID = B
dwRedirectingID = null
dwRedirectionID = null
dwConnectedID = A
dwReason = LINECALL
REASON_ UNKNOWN with extended REFER
dwOrigin =LINECALL
ORIGIN_EXTERNAL

 

B answers

 

Call state = connected (there will not be media flowing between A and B when call goes to connected state)

TAPI CallInfo (no change)

 

Cisco Unified Communications Manager redirects the call to C

 

CallPartyInfoChangedEvent @ B with {calling=B, called=C, LRP=A, origCalled=C, reason=REFER}

TAPI callInfo
dwCallerID = B
dwCalledID = B
dwRedirectingID = A
dwRedirectionID = C
dwConnectedID = C
dwReason = LINECALL
REASON_ UNKNOWN with extended REFER
dwOrigin = LINECALL
ORIGIN_EXTERNAL

NewCallEvent should be {calling=B, called=C, LRP=A, origCalled=C, reason=REFER} This info is exactly same as though caller (A) performed REDIRECT operation (except the reason is different here).

TAPI callInfo
dwCallerID = B
dwCalledID = C
dwRedirectingID = A
dwRedirectionID = C
dwConnectedID = B
dwReason = LINECALL
REASON_ UNKNOWN with extended REFER
dwOrigin = LINECALL
ORIGIN_INTERNAL


Invite with Replace for Confirmed Dialog

A, B, and C are inside Cisco Unified Communications Manager. There is a confirmed dialog between A and B. C initiates Invite to A with replace B's dialog id

Actions
CallState/CallInfo
@Referrer (A)
CallState/CallInfo
@Referree (B)
CallState/CallInfo
@Refer-to-Target (C)

Confirmed dialog between A and B

Call State = connected,
Caller=A,
Called=B,
Connected=B,
Reason =direct,
gcid = GC1

Call State = connected
Caller=A,
Called=B,
Connected=A,
Reason =direct,
gcid = GC1

 

C Invites A by replacing B's dialog

   

NewCall at C gcid = GC2, reason=REPLACEs,
Call state = Dialing,
Caller=C,
Called=null,
Reason = REPLACEs

Cisco Unified Communications Manager joins A and C in a call and disconnects call leg @ B

GCID Changed to GC2,
Reason = REPLACEs

CPIC Caller = C,
Called = A,
ocdpn = A,
LRP = B
Reason = REPLACEs

Callstate = connected

TAPI callinfo
caller=C,
called=B,
connected=C,
redirecting=B,
redirection=A, reason=DIRECT with extended REPLACEs,
callID=GC2

Call State = IDLE,
extended reason = REPLACEs

CPIC changed

Caller = C,
Called = A,
ocdpn = A,
LRP = B,
Reason=REPLACEs

CallState = connected

TAPI callinfo
Caller=C,
Called=A,
Connected=A,
Redirecting=B,
Redirection=A, reason=UNKNOWN with extended REPLACEs,
callID=GC2


Refer with Replace for All in Cluster

There is a confirmed dialog between A and B and A and C.

A initiates Refer to C with replace B's dialog id.

Actions
CallState/CallInfo
@Referrer (A)
CallState/CallInfo
@Referree (B)
CallState/CallInfo
@Refer-to-Target (C)

dialog between A and B and dialog between A and C

Call State = onhold,
GC1,
Caller=A,
Called=C,
Connected=C,
Reason =direct

CallState = connected,
GC2,
Caller = A,
Called = B,
Connected=B,
Reason =direct

Call State = connected
Caller=A,
Called=B,
Connected=A,
Reason =direct,
gcid = GC2

Call State = connected
Caller=A,
Called=C,
Connected=A,
Reason =direct,
gcid = GC1

A completes Refer to C replacing A->B's dialog (B is refer to target)

From CTI (callState = IDLE with reason = TRANSFER.)

TAPI call state IDLE with Reason = DIRECT with extended reason TRANSFER

GCID changed from
CTI reason = TRANSFER

CPIC Changed from CTI Caller=B,
Called=C,
Origcalled = C,
LRP=A,
Reason=TRANSFER

TAPI callinfo
Caller=B,
Called=B,
Connected = C,
Redirecting=A,
Redirection=C,
Reason = DIRECT with extended reason TRANSFER.
CallId=GC1

CPIC Changed from CTI with Caller=B,
Called=C,
Origcalled = C,
LRP=A,
Reason=TRANSFER

TAPI callinfo caller=B, called=C, connected=B, redirecting=A, redirection=C, reason=direct with extended TRANSFER. callId=GC1


Refer with Replace for All in Cluster, Replace Dialog Belongs to Another Station

A is Referrer, D is Referee, and C is Refer-to-Target.

There is a confirmed dialog between A(d1) and B & C(d2) and D.

A initiates Refer to D on (d1) with Replaces (d2).

Actions
CallState/CallInfo
@Referrer (A)
CallState/CallInfo
@B
CallState/CallInfo
@Refer-to-Target (C)
CallState/CallInfo
@Referree (D)

Dialog between A and B and dialog between C and D

Call State = onhold,

Caller=A,
Called=B,
Connected=B,
Reason =direct,
gcid=GC1

Call State = connected

Caller=A,
Called=B,
Connected=A,
Reason =direct,
gcid = GC1

Call State = connected

Caller=C,
Called=D,
Connected=D,
Reason =direct,
gcid = GC2

Call State = connected

Caller=C,
Called=D,
Connected=C,
Reason =direct,
gcid = GC2

A initiates Refer to D on (d1) with Replaces (d2)

From CTI
(callState = IDLE with reason = REFER.)

TAPI call state IDLE with reason = DIRECT with extended reason = REFER

CPIC Changed from CTI Caller=B,
Called=C,
Origcalled = D,
LRP=C,
Reason=REPLACEs

TAPI callinfo
Caller=B,
Called=B,
Connected = D,
Redirecting=C,
Redirection=D,
Reason=DIRECT with extended REPLACEs, CallId=GC1

From CTI
(callState = IDLE with reason = REPLACEs.)

TAPI call state IDLE with reason = DIRECT with extended reason = REPLACEs

GCID changed from CTI to GC1

CPIC Changed from CTI with
Caller=B (referee), Called=D,
Origcalled = D,
LRP=C, Reason=REPLACEs

TAPI callinfo
caller=B,
called=D,
connected=B,
redirecting=C,
redirection=D,
reason=DIRECT with extended REPLACEs, callId=GC1


3XX

Application is monitoring B.

Actions
CallState/CallInfo
@Referrer (A)
CallState/CallInfo
@Referree (B)
CallState/CallInfo
@Refer-to-Target (C)

A calls external SIP phone which has CFDUNC set to B

 

TSPI: LINE_APPNEWCALL

Reason = LINECALL
REASON_REDIRECT

 

SRTP

Media Terminate by Application (open secure CTI port or RP)

Negotiate version

Sends LineOpen with extension version as 0x8007000

Send CciscoLineDevSpecificUserSetSRTPAlgorithmID

Send CCiscoLineDevSpecificUserControlRTPStream

Now the CTI port or RP is registered as secure port

Make call from secure IP phone to the CTI port or RP port

Answer the call from application

SRTP indication will be reported as LineDevSpecific event

SRTP key information will be stored in LINECALLINFO::devSpecifc for retrieval

Media Terminate by TSP Wave Driver (open secure CTI port)

Negotiate version

Sends LineOpen with extension version as 0x4007000

Send CciscoLineDevSpecificUserSetSRTPAlgorithmID

Send CciscoLineDevSpecificSendLineOpen

Now the CTI port is registered as secure port

Make call from secure IP phone to the CTI port

Answer the call from application

SRTP indication will be reported as LineDevSpecific event

SRTP key information will be stored in LINECALLINFO::devSpecifc for retrieval

Intercom

This is the configuration used for all the use cases below.

1. 1. IPPhone A has 2 lines line1 (1000) line2 (5000). Line2 is a intercom line. Speeddial to 5001 with label ìAssistant_1î is configured.

2. 2. IPPhone B has 3 lines line1 (1001) line2 (5001) and Line3 (5002). Line2 and Line3 are intercom lines. Speeddial to 5000 with label ìManager_1î is configured on line2. Line 3 does not have Speeddial configured for it.

3. 3. IPPhone C has 2 lines (1002), line2 (5003). 5003 is intercom line and configured with Speeddial to 5002 with label ìAssistant_5002î.

4. 4. IPPhone D has 1 line (5004). 5004 is a intercom line.

5. 5. CTIPort X has 2 lines line1 (2000) line2 (5555). Line2 is a intercom line. Speedial to 5001 is configured with label ìAssistant_1î is configured.

6. 6. Intercom lines (5000 to 5003) are in same partition = Intercom_Group_1 and are reachable from each other. 5004 in Intercom_Group_2.

7. 7. Application monitoring all lines on all devices.

Assumption: Application initialized and CTI provided the details on speeddial and lines with intercom line on all the devices. Behavior should be same for SCCP and SIP phones.

Application Invoking Speeddial

Action
Events

LineOpen on 5000 & 5001

Initiate InterCom Call on 5000

For 5000

receive LINE_CALLSTATE

cbInst=x0

param1=x03000000

param2=x1, ACTIVE

param3=x0,

Receive StartTransmission event

For 5001

receive LINE_CALLSTATE

cbInst=x0

param1= x03000000

param2=x1, ACTIVE

param3=x0,

Receive StartReception event

Receive zipzip tone with reason as intercom


Agent Invokes Talkback

Action
Events

Continuing from the previous use case, 5001 initiates LineTalkBack from application on the InterCom call

For 5000

receive LINE_CALLSTATE

device=x10218

param1=x100, CONNECTED

param2=x1, ACTIVE

param3=x0,

Receive StartReception event

For 5001

receive LINE_CALLSTATE

device=x101f6

cbInst=x0

param1=x100, CONNECTED

param2=x1, ACTIVE

param3=x0,

Receive StartTransmission event


Change the SpeedDial

Action
Events

Open line 5000

LineChangeSpeeddial request (speeddial to 5003, label = "Assistant_5003")

The new speed dial and label is successfully set for the intercom line

Receive LineSpeeddialChangeEvent from CTI

Send LINE_DEVSPECIFIC indicating that speeddial and label has been changed.

Application issues LIneGetDevCaps to retrieve speeddial/label set on the line

TAPI returns configured speeddial/label configured on the line.


Secure Conferencing

Conference with all parties as Secure

The conference bridge has security profile. MOH is not configured. A, B, and C are registered as Encrypted.

Action
CTI Messages
TAPI Messages
TAPI Structures

A calls B. B answers the call.

Party A

 

CallStateChangedEvent, CH=C1, GCH=G1, Calling=A, Called=B, OrigCalled=B, LR=NP, State=Connected, Origin=OutBound, Reason=Direct

SecurityStaus= NotAuthenticated

CtiCallSecurityStatusUpdate

LH = A, CH = C1

SecurityStaus= Encrypted

LINE_CALLDEVSPECIFIC
hDevice=A
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_CALL_SECURITY_STATUS
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=B dwRedirectionID=NP
dwRedirectingID=NP

Devspecific Data :

CallSecurityInfo = Encrypted

 

Party B

 

CallStateChangedEvent, CH=C2, GCH=G1, Calling=A, Called=B, OrigCalled=B, LR=NP, State=Connected, Origin=OutBound, Reason=Direct

SecurityStaus=NotAuthenticated

CtiCallSecurityStatusUpdate

LH = B, CH = C2

SecurityStaus= Encrypted

LINE_CALLDEVSPECIFIC
hDevice=B
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_CALL_SECURITY_STATUS
dwParam3=0

LINECALLINFO (hCall-1)
hLine=B
dwCallID=T1
dwOrigin=INTERNAL
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=A dwRedirectionID=NP
dwRedirectingID=NP

Devspecific Data :

CallSecurityInfo = Encrypted

B does lineSetUpConference

Party B

 

CtiCallSecurityStatusUpdate

LH = B, CH = C2

SecurityStaus= NotAuthenticated

LINE_CALLDEVSPECIFIC
hDevice=B
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_CALL_SECURITY_STATUS
dwParam3=0

LINECALLINFO (hCall-1)
hLine=B
dwCallID=T1
dwOrigin=INTERNAL
dwReason=DIRECT
dwCallerID=A
dwCalledID=B
dwConnectedID=A dwRedirectionID=NP
dwRedirectingID=NP

Devspecific Data :

CallSecurityInfo = NotAuthenticated

B calls C. C answers the call.

Party B

 

CallStateChangedEvent, CH=C3, GCH=G2, Calling=A, Called=B, OrigCalled=B, LR=NP, State=Connected, Origin=OutBound, Reason=Direct

SecurityStaus=NotAuthenticated

CtiCallSecurityStatusUpdate

LH = B, CH = C3

SecurityStaus= Encrypted

LINE_CALLDEVSPECIFIC
hDevice=B
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_CALL_SECURITY_STATUS
dwParam3=0

LINECALLINFO (hCall-1)
hLine=B
dwCallID=T2
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=B
dwCalledID=C
dwConnectedID=C dwRedirectionID=NP
dwRedirectingID=NP

Devspecific Data :

CallSecurityInfo = Encrypted

 

Party C

 

CallStateChangedEvent, CH=C4, GCH=G2, Calling=B, Called=C, OrigCalled=C, LR=NP, State=Connected, Origin=OutBound, Reason=Direct SecurityStaus= NotAuthenticated

CtiCallSecurityStatusUpdate

LH = C, CH = C4

SecurityStaus= Encrypted

LINE_CALLDEVSPECIFIC
hDevice=C
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_CALL_SECURITY_STATUS
dwParam3=0

LINECALLINFO (hCall-1)
hLine=C
dwCallID=T2
dwOrigin=INTERNAL
dwReason=DIRECT
dwCallerID=B
dwCalledID=C
dwConnectedID=B dwRedirectionID=NP
dwRedirectingID=NP

Devspecific Data :

CallSecurityInfo = Encrypted

B completes conf.

Party B

 

CtiCallSecurityStatusUpdate

LH = B, CH = C2

SecurityStaus= Encrypted

LINE_CALLDEVSPECIFIC
hDevice=B
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_CALL_SECURITY_STATUS
dwParam3=0

LINECALLINFO (hCall-1)
hLine=B
dwCallID=T1
dwOrigin=CONFERENCE
dwReason=UNKNOWN
dwCallerID=NP
dwCalledID=NP
dwConnectedID=NP

dwRedirectionID=NP
dwRedirectingID=NP

Devspecific Data :

CallSecurityInfo = Encrypted


Hold/Resume in Secure Conference

Conference bridge has security profile. MOH is configured. A, B, and C are secure phones and are in conference with overall call security status as secure.

Action
CTI Messages
TAPI Messages
TAPI Structures

A does lineHold

Party A

 

CtiCallSecurityStatusUpdate,

LH = A, CH = C1,

SecurityStaus= NotAuthenticated

LINE_CALLDEVSPECIFIC
hDevice=A
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_CALL_SECURITY_STATUS
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=CONFERENCE
dwReason=UNKNOWN
dwCallerID=NP
dwCalledID=NP
dwConnectedID=NP dwRedirectionID=NP
dwRedirectionID=NP

Devspecific Data : CallSecurityInfo = NotAuthenticated

 

Party B

 

CtiCallSecurityStatusUpdate,

LH = B, CH = C2,

SecurityStaus= NotAuthenticated

LINE_CALLDEVSPECIFIC
hDevice=B
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_CALL_SECURITY_STATUS
dwParam3=0

LINECALLINFO (hCall-1)
hLine=B
dwCallID=T1
dwOrigin=CONFERENCE
dwReason=UNKNOWN
dwCallerID=NP
dwCalledID=NP
dwConnectedID=NP dwRedirectionID=NP
dwRedirectionID=NP

Devspecific Data : CallSecurityInfo = CtiCallSecurityStatusUpdate,

LH = A, CH = C1,

SecurityStaus= NotAuthenticated

 

Party C

 

CtiCallSecurityStatusUpdate,

LH = A, CH = C1,

SecurityStaus= NotAuthenticated

LINE_CALLDEVSPECIFIC
hDevice=C
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_CALL_SECURITY_STATUS
dwParam3=0

LINECALLINFO (hCall-1)
hLine=
dwCallID=T1
dwOrigin=CONFERENCE
dwReason=UNKNOWN
dwCallerID=NP
dwCalledID=NP
dwConnectedID=NP dwRedirectionID=NP
dwRedirectionID=NP

Devspecific Data : CallSecurityInfo = NotAuthenticated

A does lineResume

Party A

 

CtiCallSecurityStatusUpdate,

LH = A, CH = C1,

SecurityStaus= Encrypted

LINE_CALLDEVSPECIFIC
hDevice=A
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_CALL_SECURITY_STATUS
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=CONFERENCE
dwReason=UNKNOWN
dwCallerID=NP
dwCalledID=NP
dwConnectedID=NP dwRedirectionID=NP
dwRedirectionID=NP

Devspecific Data : CallSecurityInfo = Encrypted

 

Party B

 

CtiCallSecurityStatusUpdate,

LH = B, CH = C2,

SecurityStaus= Encrypted

LINE_CALLDEVSPECIFIC
hDevice=B
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_CALL_SECURITY_STATUS
dwParam3=0

LINECALLINFO (hCall-1)
hLine=B
dwCallID=T1
dwOrigin=CONFERENCE
dwReason=UNKNOWN
dwCallerID=NP
dwCalledID=NP
dwConnectedID=NP dwRedirectionID=NP
dwRedirectionID=NP

Devspecific Data : CallSecurityInfo = Encrypted

 

Party C

 

CtiCallSecurityStatusUpdate,

LH = C, CH = C4,

SecurityStaus= Encrypted

LINE_CALLDEVSPECIFIC
hDevice=C
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_CALL_SECURITY_STATUS
dwParam3=0

LINECALLINFO (hCall-1)
hLine=
dwCallID=T1
dwOrigin=CONFERENCE
dwReason=UNKNOWN
dwCallerID=NP
dwCalledID=NP
dwConnectedID=NP dwRedirectionID=NP
dwRedirectionID=NP

Devspecific Data : CallSecurityInfo = Encrypted


Monitoring & Recording

Monitoring a Call

A (agent) and B (customer) are connected. BIB on A is set to on.

Action
CTI Messages
TAPI Messages
TAPI Structures
 

Party C

C(supervisor) issues start monitoring req with A's permanentLineID as input.

NewCallEvent, CH=C3, GCH=G2, Calling=C, Called=NP, OrigCalled=NP, LR=NP, State=Dialtone, Origin=OutBound, Reason=Direct

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=ORIGIN
dwParam2=0
dwParam3=0

LINE_CALLINFO
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=REASON, CALLERID
dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=C
dwCallID=T2
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=C
dwCalledID=NP
dwConnectedID=NP
dwRedirectionID=NP
dwRedirectingID=NP

Call is auomatically answered by A's BIB.

Party C

 

CallStateChangedEvent, CH=C3, State=Connected, Cause=CauseNoError, Reason=Direct, Calling=C, Called=A, OrigCalled=A, LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CONNECTED
dwParam2=ACTIVE
dwParam3=0

LINECALLINFO (hCall-1)
hLine=C
dwCallID=T2
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=C
dwCalledID=A
dwConnectedID=A
dwRedirectionID=NP
dwRedirectingID=NP

 

Party A

 

MonitoringStartedEvent,

CH = C1

LINE_CALLDEVSPECIFIC

hDevice=hCall-1
dwCallbackInstance=0

dwParam1 = SLDSMT_MONITOR_STARTED

dwParam2=0
dwParam3=0

LINECALLINFO (hCall-2)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=B
dwCalledID=A
dwConnectedID=B
dwRedirectionID=NP
dwRedirectingID=NP

 

Party C

 

LineCallAttributeInfoEvent,

CH=C3, Type = 2 (MonitorCall_Target),

CI = C1,

Address=A's DN, Partition=A's Partition, DeviceName = A's Name

LINE_CALLDEVSPECIFIC

hDevice=hCall-1
dwCallbackInstance=0

dwParam1 = SLDSMT_LINECALLINFO_DEVSPECIFICDATA

dwParam2=SLDST_CALL_ATTRIBUTE_INFO
dwParam3=0

LINECALLINFO (hCall-1)
hLine=C
dwCallID=T2
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=C
dwCalledID=A
dwConnectedID=A
dwRedirectionID=NP
dwRedirectingID=NP

DevSpecifc Data:

Type: CallAttribute_SilentMonitorCall_Target,

CI = C1,

DN = A's DN,

Partition = A's Partition,

DeviceName = A's Name

 

Party A

 

LineCallAttributeInfoEvent,

CH=C1, Type = 1 (MonitorCall),

CI = C3

Address=C's DN, Partition=C's Partition, DeviceName = C's Name

LINE_CALLDEVSPECIFIC

hDevice=hCall-1
dwCallbackInstance=0

dwParam1 = SLDSMT_LINECALLINFO_DEVSPECIFICDATA

dwParam2=SLDST_CALL_ATTRIBUTE_INFO
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=INTERNAL
dwReason=DIRECT
dwCallerID=B
dwCalledID=A
dwConnectedID=B
dwRedirectionID=NP
dwRedirectingID=NP

DevSpecifc Data:

Type:CallAttribute_SilentMonitorCall,

CI = C3

DN = C's DN,

Partition = C's Partition,

DeviceName = C's Name

C drops the call.

Party C

 

CallStateChangedEvent, CH=C3, State=Idle, Cause=CauseNoError, Reason=Direct, Calling=C, Called=A, OrigCalled=A, LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=IDLE
dwParam2=0
dwParam3=0

 
 

Party A

 

MonitoringEndedEvent,

CH = C1

LINE_CALLDEVSPECIFIC

hDevice=hCall-1
dwCallbackInstance=0

dwParam1 = SLDSMT_MONITOR_ENDED

dwParam2= DisconnectMode_Normal
dwParam3=0

 
       

Automatic Recording

Recording type on A (agent Phone) is configured as Automatic. D is configured as a Recorder Device.

Action
CTI Messages
TAPI Messages
TAPI Structures

A recieves a call from B. A answers the call.

Recording session is established between the agent's phone and the recorder

Party A

 

CallStateChangedEvent, CH=C1, State=Connected, Cause=CauseNoError, Reason=Direct, Calling=B, Called=A, OrigCalled=A, LR=NP

LINE_CALLSTATE
hDevice=hCall-1
dwCallbackInstance=0
dwParam1=CONNECTED
dwParam2=ACTIVE
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=INTERNAL
dwReason=DIRECT
dwCallerID=B
dwCalledID=A
dwConnectedID=B
dwRedirectionID=NP
dwRedirectingID=NP

 

RecordingStartedEvent,

CH = C1

LINE_CALLDEVSPECIFIC

hDevice=hCall-1
dwCallbackInstance=0

dwParam1 = SLDSMT_RECORDING_STARTED

dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1 dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=B
dwCalledID=A
dwConnectedID=B dwRedirectionID=NP
dwRedirectingID=NP

 

LineCallAttributeInfoEvent

CH = C1, Type = 3 (Automatic Recording), Address = D's DN, Partition = D's Partition, DeviceName = D's Name

LINE_CALLDEVSPECIFIC

hDevice=hCall-1
dwCallbackInstance=0

dwParam1 = SLDSMT_LINECALLINFO_DEVSPECIFICDATA

dwParam2=SLDST_CALL_ATTRIBUTE_INFO
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=B
dwCalledID=A
dwConnectedID=B
dwRedirectionID=NP
dwRedirectingID=NP

DevSpecifc Data:

Type: App Controlled Recording,

DN = D's DN,

Partition = D's Partition,

DeviceName = D's Name


Application-Controlled Recording

A (C1) and B (C2) are connected. Recording Type on A is configured as `Application Based'. D is configured as a Recorder Device.

Action
CTI Messages
TAPI Messages
TAPI Structures

A issues start recording req.

Recording session is established between the agent's phone and the recorder

Party A

 

RecordingStartedEvent,

CH = C1

LINE_CALLDEVSPECIFIC

hDevice=hCall-1
dwCallbackInstance=0

dwParam1 = SLDSMT_RECORDING_STARTED

dwParam2=0
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1 dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=B
dwCalledID=A
dwConnectedID=B dwRedirectionID=NP
dwRedirectingID=NP

 

LineCallAttributeInfoEvent

CH = C1, Type = 4 (App Controlled Recording), Address = D's DN, Partition = D's Partition, DeviceName = D's Name

LINE_CALLDEVSPECIFIC

hDevice=hCall-1
dwCallbackInstance=0

dwParam1 = SLDSMT_LINECALLINFO_DEVSPECIFICDATA

dwParam2=SLDST_CALL_ATTRIBUTE_INFO
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=B
dwCalledID=A
dwConnectedID=B
dwRedirectionID=NP
dwRedirectingID=NP

DevSpecifc Data:

Type: App Controlled Recording,

DN = D's DN,

Partition = D's Partition,

DeviceName = D's Name

A issues stop monitoring request.

RecordingEndedEvent,

CH = C1

LINE_CALLDEVSPECIFIC

hDevice=hCall-1
dwCallbackInstance=0

dwParam1 = SLDSMT_RECORDING_ENDED

dwParam2= DisconnectMode_Normal
dwParam3=0

LINECALLINFO (hCall-1)
hLine=A
dwCallID=T1
dwOrigin=OUTBOUND
dwReason=DIRECT
dwCallerID=B
dwCalledID=A
dwConnectedID=B
dwRedirectionID=NP
dwRedirectingID=NP

       

Conference Enhancements

Non-Controller Adding Partys to Conferences

A,B, C in a conference created by A.

Action
Events

A,B,C are in a conference

At A:

Conference - Caller="A", Called="B", Connected="B"

Connected

Conference - Caller="A", Called="C", Connected="C"

At B:

Conference - Caller="A", Called="B", Connected="A"

Connected

Conference - Caller="B", Called="C", Connected="C"

At C:

Conference - Caller="B", Called="C", Connected="B"

Connected

Conference - Caller="C", Called="A", Connected="A"

C issues a linePrepareAddToConference to D

At A:

Conference - Caller="A", Called="B", Connecgted="B"

Connected

Conference - Caller="A", Called="C", Connecgted="C"

At B:

Conference - Caller="A", Called="B", Connecgted="A"

Connected

Conference - Caller="B", Called="C", Connecgted="C"

At C:

Conference - Caller="B", Called="C", Connecgted="B"

OnHoldPendConf

Conference - Caller="C", Called="A", Connecgted="A"

Connected - Caller="C", Called="D", Connecgted="D"

At D:

Connected - Caller="C", Called="D", Connecgted="C"

C issues a lineAddToConference to D

At A:

Conference - Caller="A", Called="B", Connecgted="B"

Connected

Conference - Caller="A", Called="C", Connecgted="C"

Conference - Caller="A", Called="D", Connecgted="D"

At B:

Conference - Caller="A", Called="B", Connecgted="A"

Connected

Conference - Caller="B", Called="C", Connecgted="C"

Conference - Caller="B", Called="D", Connecgted="D"

At C:

Conference - Caller="B", Called="C", Connecgted="B"

Connected

Conference - Caller="C", Called="A", Connecgted="A"

Conference - Caller="C", Called="D", Connecgted="D"

At D:

Conference - Caller="C", Called="D", Connecgted="C"

Connected

Conference - Caller="D", Called="A", Connecgted="A"

Conference - Caller="D", Called="B", Connecgted="B"


Chaining Two Ad-Hoc Conferences using Join

Actions
TSP CallInfo

A calls B, B answer, then B inits conference to C, C answer, and B complete the conference

At A :

GCID-1

CONNECTED : Caller = Unknown

Caller = Unknown

CONFERENCED : Caller = A

Called = B

CONFERENCED : Caller = A

Called = C

At B :

GCID-1

CONNECTED : Caller = Unknown

Caller = Unknown

CONFERENCED : Caller = A

Called = B

CONFERENCED : Caller = B

Called = C

At C:

GCID-1

CONNECTED : Caller = Unknown

Caller = Unknown

CONFERENCED : Caller = B

Called = C

CONFERENCED : Caller = C

Called = A

C inits/complete conference to D,E

No Change for A and B

At C :

- First conference

GCID-1

ONHOLD : Caller = Unknown

Caller = Unknown

CONFERENCED : Caller = A

Called = B

CONFERENCED : Caller = A

Called = C

- Second conference

GCID-2

CONNECTED : Caller = Unknown

Caller = Unknown

CONFERENCED : Caller = C

Called = D

CONFERENCED : Caller = C

Called = E

At D :

GCID-2

CONNECTED : Caller = Unknown

Caller = Unknown

CONFERENCED : Caller = C

Called = D

CONFERENCED : Caller = D

Called = E

At E :

GCID-2
CONNECTED : Caller = Unknown

Caller = Unknown

CONFERENCED : Caller = C

Called = E

CONFERENCED : Caller = E

Called = D

C initiates JOIN request to join to conference call together, with GCID is the primary call

At A :

GCID-1
CONNECTED : Caller = Unknown

Caller = Unknown

CONFERENCED : Caller = A

Called = B

CONFERENCED : Caller = A

Called = C

CONFERENCED : Caller = A

Called = Conference-2

At B :

GCID-1

CONNECTED : Caller = Unknown

Caller = Unknown

CONFERENCED : Caller = A

Called = B

CONFERENCED : Caller = B

Called = C

CONFERENCED : Caller = B

Called = Conference-2

At C:

- First conference

GCID-1

CONNECTED : Caller = Unknown

Caller = Unknown

CONFERENCED : Caller = B

Called = C

CONFERENCED : Caller = C

Called = A

CONFERENCED : Caller = C

Called = Conference-2

 

At D:

GCID-2

CONNECTED : Caller = Unknown

Caller = Unknown

CONFERENCED : Caller = D

Called = E

CONFERENCED : Caller = D

Called = Conference-1

At E :

GCID-2

CONNECTED : Caller = Unknown

Caller = Unknown

CONFERENCED : Caller = E

Called = D

CONFERENCED : Caller = E

Called = Conference-1


Calling Party IP Address

Basic Call

TAPI application monitors party B

Party A is an IP phone

A calls B

IP Address of A is available to TAPI application monitoring party B

Consultation Transfer

TAPI application monitors party C

Party B is an IP phone

A talking B

B intiates a consultation transfer call to C

IP Address of B is available to TAPI application monitoring party C.

B Completes the transfer

Calling IP address of A is not available to TAPI application monitoring party C (not a supported scenario)

Consultation Conference

TAPI application monitors party C

Party B is an IP phone

A talking B

B intiates a consultation conference call to C

IP Address of B is available to TAPI application monitoring party C.

B Completes the conference

Calling IP address of A and B is not available to TAPI application monitoring party C (not a supported scenario)

Redirect

TAPI application monitors party B and party C

Party A is an IP phone

A calls B

IP Address of A is available to TAPI application monitoring party B

Party A redirects B to party C

Calling IP address is not available to TAPI application monitoring party B (not a supported scenario)

Calling IP address B is available to TAPI application monitoring party C

Click to Conference

Third-party conference created using click-2-conference feature:

Action
Events

Use Click-to-Call to create call from A to B, and B answer.

For A:

CONNECTED

reason = DIRECT

Calling = A, Called = B, Connected = B

For B:

CONNECTED

reason = DIRECT

Calling = A, Called = B, Connected = A

Use Click-2-Conference feature to add C into conference, and C answer.

For A:

CONNECTED

reason = DIRECT

ExtendedCallReason = DIRECT

CONFERENCED

Calling = A, Called = B, Connected = B

CONFERENCED

Calling = A, Called = C, Connected = C

For B:

CONNECTED

reason = DIRECT

ExtendedCallReason = DIRECT

CONFERENCED

Calling = A, Called = B, Connected = A

CONFERENCED

Calling =B, Called = C, Connected = C

For C

CONNECTED

Reason = UNKNOWN

ExtendedCallReason = ClickToConference

CONFERENCED

Calling = C, Called = A, Connected = A

CONFERENCED

Calling = C, Called = B, Connected = B


Creating Four-party Conference By Using Click to Conference Feature

Action
Events

Use Click-to-Call to create call from A to B.

For A:

CONNECTED

reason = DIRECT

Calling = A, Called = B, Connected = B

For B:

CONNECTED

reason = DIRECT

Calling = A, Called = B, Connected = A

Use Click-2-Conference feature to add C into conference

For A:

CONNECTED

reason = DIRECT

ExtendedCallReason = DIRECT

CONFERENCED

Calling = A, Called = B, Connected = B

CONFERENCED

Calling = A, Called = C, Connected = C

For B:

CONNECTED

reason = DIRECT

ExtendedCallReason = DIRECT

CONFERENCED

Calling = A, Called = B, Connected = A

CONFERENCED

Calling = C, Called = C, Connected = C

For C

CONNECTED

Reason = DIRECT

ExtendedCallReason = ClickToConference

CONFERENCED

Calling = C, Called = A, Connected = A

CONFERENCED

Calling = C, Called = B, Connected = B

Use Click-2-Conference feature to add party D

For A:

CONNECTED

reason = DIRECT

ExtendedCallReason = DIRECT

CONFERENCED

Calling = A, Called = B, Connected = B

CONFERENCED

Calling = A, Called = C, Connected = C

CONFERENCED

Calling = A, Called = D, Connected = D

For B:

CONNECTED

reason = DIRECT

ExtendedCallReason = DIRECT

CONFERENCED

Calling = A, Called = B, Connected = A

CONFERENCED

Calling = B, Called = C, Connected = C

CONFERENCED

Calling = B, Called = D, Connected = D

For C

CONNECTED

Reason = UNKNOWN

ExtendedCallReason = ClickToConference

CONFERENCED

Calling = C, Called = A, Connected = A

CONFERENCED

Calling = C, Called = B, Connected = B

CONFERENCED

Calling = C, Called = D, Connected = D

For D

CONNECTED

Reason = UNKNOWN

ExtendedCallReason = ClickToConference

 

CONFERENCED

Calling = D, Called = A, Connected = A

CONFERENCED

Calling = D, Called = B, Connected = B

CONFERENCED

Calling = D, Called = C, Connected = C


Drop Party Using Click To Conference

Action
Events

Conference created using Click-2-Conference feature to add C into conference

For A:

CONNECTED

reason = DIRECT

ExtendedCallReason = DIRECT

CONFERENCED

Calling = A, Called = B, Connected = B

CONFERENCED

Calling = A, Called = C, Connected = C

For B:

CONNECTED

reason = DIRECT

ExtendedCallReason = DIRECT

CONFERENCED

Calling = A, Called = B, Connected = A

CONFERENCED

Calling = B, Called = C, Connected = C

For C

CONNECTED

Reason = UNKNOWN

ExtendedCallReason = ClickToConference

CONFERENCED

Calling = C, Called = A, Connected = A

CONFERENCED

Calling = C, Called = B, Connected = B

Drop C from Click To Conference feature

For A

CONNECTED

Reason = DIRECT

ExtendedCallReason = DIRECT

Calling = A, Called = B, Connected = B

For B

CONNECTED

Reason = DIRECT

ExtendedCallReason = DIRECT

Calling = A, Called = B, Connected = A

For C

IDLE


Drop Entire Conference Using Click to Conference Feature

Action
Events

Conference created using Click to Conference feature to add C into conference

For A:

CONNECTED

reason = DIRECT

ExtendedCallReason = DIRECT

CONFERENCED

Calling = A, Called = B, Connected = B

CONFERENCED

Calling = A, Called = C, Connected = C

For B:

CONNECTED

reason = DIRECT

ExtendedCallReason = DIRECT

CONFERENCED

Calling = A, Called = B, Connected = A

CONFERENCED

Calling = B, Called = C, Connected = C

For C

CONNECTED

Reason = UNKOWN

ExtendedCallReason = ClickToConference

CONFERENCED

Calling = C, Called = A, Connected = A

CONFERENCED

Calling = C, Called = B, Connected = B

Drop entire conference

For A

IDLE

For B

IDLE

For C

IDLE


Calling Party Normalization

Incoming Call from PSTN To End Point

Action
CTI Messages
TAPI Messages
TAPI Structures

A Call is 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 is 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 is 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 is 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 is 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 is 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=


Do Not Disturb-Reject

Application Enables DND-R on a Phone

Action
TAPI Messages
TAPI Structures

Phone A enables DND-Reject in the admin pages.

LINE_CALLDEVSPECIFIC
hDevice=C
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_DND_OPTION_STATUS
dwParam3=2

 

Normal Feature Priority

Action
TAPI Messages
TAPI Structures

Phone B is DND-R enabled. Phone A calls Phone B with feature priority as Normal

Party A

 

LINE_CALLSTATE = IDLE

Party B

No TAPI messages


Feature Priority - Emergency

Action
TAPI Messages
TAPI Structures

Phone B is DND-R enabled. Phone A calls Phone B with feature priority as Emergency

Party A

LINE_CALLSTATE = CONNECTED

dwParam1 = 0x00000100

dwParam2 = 0x00000001

LINECALLINFO (hCall-1)
hLine=C
dwCallID=T2
dwOrigin=INTERNAL
dwCallerID=A
dwCalledID=B
dwRedirectionID=NP
dwRedirectingID=NP

Party B

LINE_CALLSTATE = CONNECTED

dwParam1 = 0x00000100

dwParam2 = 0x00000001

LINECALLINFO (hCall-1)
hLine=C
dwCallID=T2
dwOrigin=INTERNAL
dwCallerID=A
dwCalledID=B
dwRedirectionID=NP
dwRedirectingID=NP


Shared Line Scenario for DND-R

Action
TAPI Messages
TAPI Structures

Phones B and B' are shared lines. Phone B' is DND-R enabled but not B. Phone A calls Phone B with feature priority normal.

Party A

LINE_CALLSTATE = CONNECTED

dwParam1 = 0x00000100

dwParam2 = 0x00000001

LINECALLINFO (hCall-1)
hLine=C
dwCallID=T2
dwOrigin=INTERNAL
dwCallerID=A
dwCalledID=B
dwRedirectionID=NP
dwRedirectingID=NP

Party B

LINE_CALLSTATE = CONNECTED

dwParam1 = 0x00000100

dwParam2 = 0x00000001

LINECALLINFO (hCall-1)
hLine=C
dwCallID=T2
dwOrigin=INTERNAL
dwCallerID=A
dwCalledID=B
dwRedirectionID=NP
dwRedirectingID=NP

Party B'

 

LINE_CALLSTATE = CONNECTED

dwParam1 = 0x00000100

dwParam2 = 0x00000002

 

Application Disables DND-R or Changes the Option for DND

Action
TAPI Messages
TAPI Structures

Phone A changes from DND-Reject to DND-RingerOff.

LINE_CALLDEVSPECIFIC
hDevice=C
dwCallbackInstance=0
dwParam1= SLDSMT_LINECALLINFO_DEVSPECIFICDATA
dwParam2=SLDST_DND_OPTION_STATUS
dwParam3=1

 

Join Across Lines

Setup

Line A on device A

Line B1 and B2 on device B

Line C on device C

Line D on device D

Line B1' on device B1', B1' is a shared line with B1

Join Two Calls from Different Lines to B1

Action
Expected Events

A B1 is HOLD

For A

C B2 is connected

LINE_CALLSTATE param1=x100, CONNECTED Caller = A, Called = B1 Connected B1

 

For B1 : LINE_CALLSTATE param1=x100, HOLD Caller = A, Called = B1, Connected = A

 

For B2 : LINE_CALLSTATE param1=x100, CONNECTED Caller = C, Called = B2 , Connected = C

 

For C : LINE_CALLSTATE param1=x100, CONNECTED Caller = C, Called = B2, Connected = B2

 

For B1' : LINE_CALLSTATE param1=x100, CONNECTED, INACTIVE Caller = A, Called = B1, Connected = A

Application issues lineDevSpecific(SLDST_JOIN) with the call on B1 as survival call

For A

 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=B1

 

CONFERENCED Caller=A Called=C, Connected=C

 

For B1

 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=A

 

CONFERENCED Caller=B1 Called=C, Connected=C

 

For B2

 

Call will go IDLE

 

For C

 

CONNECTED

 

CONFERENCED Caller=C, Called=B2, Connected=B1 (or A)

 

CONFERENCED Caller=C Called=A, Connected=A (or B1)

 

For B1'

 

CONNECTED INACTIVE

 

CONFERENCED Caller=A, Called=B1, Connected=A

 

CONFERENCED Caller=B1 Called=C, Connected=C


Join Three Calls from Different Lines to B1

Action
Expected Events

A B1 is hold,

 

C B2 is hold

 

D B2 is connected

For A :

 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = A, Called = B1 Connected B1

 

For B1 :

 

LINE_CALLSTATE

 

param1=x100, HOLD Caller = A, Called = B1, Connected = A

 

For B2 :

 

LINE_CALLSTATE for call-1

 

param1=x100, HOLD Caller = C, Called = B2 , Connected = C

 

LINE_CALLSTATE for call-2

 

param1=x100, CONNECTED Caller = D, Called = B2 , Connected = D

 

For C :

 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = C, Called = B2, Connected = B2

 

For D :

 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = D, Called = B2, Connected = B2

 

For B1' :

 

LINE_CALLSTATE

 

param1=x100, HOLD Caller = A, Called = B1, Connected = A

Application issues lineDevSpecific(SLDST_JOIN) with the call on B1 as survival call

For A

 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=B1

 

CONFERENCED Caller=A Called=C, Connected=C

 

CONFERENCED Caller=A Called=D, Connected=D

 

For B1

 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=A

 

CONFERENCED Caller=B1 Called=C, Connected=C

 

CONFERENCED Caller=B1 Called=D, Connected=D

 

For B2

 

Call-1 and call-2 will go IDLE

 

For C

 

CONNECTED

 

CONFERENCED Caller=B1, Called=C, Connected=B1

 

CONFERENCED Caller=C Called=A, Connected=A

 

CONFERENCED Caller=C Called=D, Connected=D

 

For D

 

CONNECTED

 

CONFERENCED Caller=B1, Called=C, Connected=B1

 

CONFERENCED Caller=D Called=A, Connected=A

 

CONFERENCED Caller=D Called=C, Connected=C

 

For B1'

 

CONNECTED INACTIVE

 

CONFERENCED Caller=A, Called=B1, Connected=A

 

CONFERENCED Caller=B1 Called=C, Connected=C

 

CONFERENCED Caller=B1 Called=D, Connected=D


Join Calls from Different Lines to B1 with Conference

Action
Expected Events

A,B1,C in conference where B1 is controller

For A :

D B2 Connected

 
 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=A

 

CONFERENCED Caller=A Called=C, Connected=C

 

For B1 :

 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=A

 

CONFERENCED Caller=B1 Called=C, Connected=C

 

For B2 :

 

LINE_CALLSTATE for call-1

 

param1=x100, CONNECTED Caller = D, Called = B2 , Connected = D

 

For C :

 

CONNECTED

 

CONFERENCED Caller=C, Called=A, Connected=A

 

CONFERENCED Caller=B1 Called=C, Connected=C

 

For D :

 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = D, Called = B2, Connected = B2

 

For B1' :

 

LINE_CALLSTATE

 

CONNECTED INACTIVE

 

CONFERENCED Caller=A, Called=B1, Connected=A

 

CONFERENCED Caller=B1 Called=C, Connected=C

Application issues lineDevSpecific(SLDST_JOIN) with the call on B1 as survival call

For A

 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=B1

 

CONFERENCED Caller=A Called=C, Connected=C

 

CONFERENCED Caller=A Called=D, Connected=D

 

For B1

 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=A

 

CONFERENCED Caller=B1 Called=C, Connected=C

 

CONFERENCED Caller=B1 Called=D, Connected=D

 

For B2

 

Call will go IDLE

 

For C

 

CONNECTED

 

CONFERENCED Caller=B1, Called=C, Connected=B1

 

CONFERENCED Caller=C Called=A, Connected=A

 

CONFERENCED Caller=C Called=D, Connected=D

 

For D

 

CONNECTED

 

CONFERENCED Caller=B1, Called=C, Connected=B1

 

CONFERENCED Caller=D Called=A, Connected=A

 

CONFERENCED Caller=D Called=C, Connected=C

 

For B1'

 

CONNECTED INACTIVE

 

CONFERENCED Caller=A, Called=B1, Connected=A

 

CONFERENCED Caller=B1 Called=C, Connected=C

 

CONFERENCED Caller=B1 Called=D, Connected=D


Join Two Calls from Different Lines to B1 while B1 is not Monitored by TAPI

Action
Expected Events

A B1 is HOLD,

 

C B2 is connected

For A :

 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = A, Called = B1 Connected B1

 

For B2 :

 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = C, Called = B2 , Connected = C

 

For C :

 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = C, Called = B2, Connected = B2

User issues join request from phone with the call on B1 as survival call

For A

 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=B1

 

CONFERENCED Caller=A Called=C, Connected=C

 

For B2

 

Call will go IDLE

 

For C

 

CONNECTED

 

CONFERENCED Caller=C, Called=B2, Connected=B1 (or A)

 

CONFERENCED Caller=C Called=A, Connected=A (or B1)


Join Two Calls from Different Lines to B2

Action
Expected Events

A B1 is HOLD,

 

C B2 is connected

For A :

 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = A, Called = B1 Connected B1

 

For B1 :

 

LINE_CALLSTATE

 

param1=x100, HOLD Caller = A, Called = B1, Connected = A

 

For B2 :

 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = C, Called = B2 , Connected = C

 

For C :

 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = C, Called = B2, Connected = B2

 

For B1' :

 

LINE_CALLSTATE

 

param1=x100, HOLD Caller = A, Called = B1, Connected = A

Application issues lineDevSpecific(SLDST_JOIN) with the call on B1 as survival call

For A

 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=B1

 

CONFERENCED Caller=A Called=C, Connected=C

 

For B1

 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=A

 

CONFERENCED Caller=B1 Called=C, Connected=C ??

 

For B2

 

Call will go IDLE

 

For C

 

CONNECTED

 

CONFERENCED Caller=C, Called=B2, Connected=B1 (or A)

 

CONFERENCED Caller=C Called=A, Connected=A (or B1)

 

For B1'

 

CONNECTED INACTIVE

 

CONFERENCED Caller=A, Called=B1, Connected=A

 

CONFERENCED Caller=B1 Called=C, Connected=C


Join Two Calls from Different Lines to B1 During Middle of SetUp_Conference

Action
Expected Events

A B1 is HOLD,

For A :

B1 issues setup conference

 

C B2 is connected

 
 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = A, Called = B1 Connected B1

 

For B1 :

 

Primary call

 

LINE_CALLSTATE

 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=B1

 

Consult call

 

DIALTONE

 

For B2 :

 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = C, Called = B2 , Connected = C

 

For C :

 

LINE_CALLSTATE

 

param1=x100, CONNECTED Caller = C, Called = B2, Connected = B2

 

For B1' :

 

LINE_CALLSTATE

 

param1=x100, HOLD Caller = A, Called = B1, Connected = A

Application issues lineDevSpecific(SLDST_JOIN) with the call on B2 as survival call

For A:

 

CONNECTED

 

CONFERENCED Caller=A, Called=B1, Connected=B2

 

CONFERENCED Caller=A Called=C, Connected=C

 

For B1

 

Both calls will go IDLE

 

For B2

 

CONNECTED

 

CONFERENCED Caller=B1, Called=A, Connected=A

 

CONFERENCED Caller=C Called=B1, Connected=C

 

For C

 

CONNECTED

 

CONFERENCED Caller=C, Called=B2, Connected=B2 (or A)

 

CONFERENCED Caller=C Called=A, Connected=A (or B2)

 

For B1'

 

Calls go IDLE


B1 Performs a Join Across Line Where B1 is already in a Conference Created by A

Action
Expected Events

A, B1, C are in a conference created by A

For A:

 

Conference - Caller="A", Called="B1", Connected="B1"

 

Connected

 

Conference - Caller="A", Called="C", Connected="C"

 

For B1:

 

Conference - Caller="A", Called="B1", Connected="A"

 

Connected

 

Conference - Caller="B1", Called="C", Connected="C"

 

For C:

 

Conference - Caller="B1", Called="C", Connected="B1"

 

Connected

 

Conference - Caller="C", Called="A", Connected="A"

 

For A:

 

B2 calls D, D answers

 

Conference - Caller="A", Called="B1", Connected="B1"

 

Connected

 

Conference - Caller="A", Called="C", Connected="C"

 

For B1:

 

Conference - Caller="A", Called="B1", Connected="A"

 

OnHold

 

Conference - Caller="B1", Called="C", Connected="C"

 

For B2:

 

Connected - Caller="B2", Called="D", Connected="D"

 

For C:

 

Conference - Caller="B1", Called="C", Connected="B1"

 

Connected

 

Conference - Caller="C", Called="A", Connected="A"

 

Connected - Caller="B2", Called="D", Connected="B2"

B1 issues a lineDevSpecific(SLDST_JOIN) to join the calls on B1 and B2.

For A:

 

Conference - Caller="A", Called="B1", Connected="B1"

 

Connected

 

Conference - Caller="A", Called="C", Connected="C"

 

Conference - Caller="A", Called="D", Connected="D"

 

For B1:

 

Conference - Caller="A", Called="B1", Connected="B1"

 

Conference - Caller="A", Called="B1", Connected="A"

 

Connected

 

Conference - Caller="B1", Called="C", Connected="C"

 

Conference - Caller="B1", Called="D", Connected="D"

 

For B2:

 

Call will go IDLE

 

For C:

 

Conference - Caller="B1", Called="C", Connected="B1"

 

Connected

 

Conference - Caller="C", Called="A", Connected="A"

 

Conference - Caller="C", Called="D", Connected="D"

 

For D:

 

Conference - Caller="B1", Called="D", Connected="B1"

 

Connected

 

Conference - Caller="D", Called="A", Connected="A"

 

Conference - Caller="D", Called="C", Connected="C"


B2 Performs a Join Across Line Where B1 is already in a Conference Created by A

Action
Expected Events

A,B1,C are in a conference created by A

For A:

 

Conference - Caller="A", Called="B1", Connected="B1"

 

Connected

 

Conference - Caller="A", Called="C", Connected="C"

 

For B1:

 

Conference - Caller="A", Called="B1", Connected="A"

 

Connected

 

Conference - Caller="B1", Called="C", Connected="C"

 

For C:

 

Conference - Caller="B1", Called="C", Connected="B1"

 

Connected

 

Conference - Caller="C", Called="A", Connected="A"

B2 calls D, D answers

For A:

 

Conference - Caller="A", Called="B1", Connected="B1"

 

Connected

 

Conference - Caller="A", Called="C", Connected="C"

 

For B1:

 

Conference - Caller="A", Called="B1", Connected="A"

 

OnHold

 

Conference - Caller="B1", Called="C", Connected="C"

 

For B2:

 

Connected - Caller="B2", Called="D", Connected="D"

 

For C:

 

Conference - Caller="B1", Called="C", Connected="B1"

 

Connected

 

Conference - Caller="C", Called="A", Connected="A"

 

For D:

 

Connected - Caller="B2", Called="D", Connected="B2"

B2 issues a lineDevSpecific(SLDST_JOIN) to join the calls on B1 and B2.

For A:

 

Conference - Caller="A", Called="B1", Connected="B2"

 

Connected

 

Conference - Caller="A", Called="C", Connected="C"

 

Conference - Caller="A", Called="D", Connected="D"

 

For B1:

 

Conference - Caller="A", Called="B1", Connected="A"

 

Connected

 

Conference - Caller="B1", Called="C", Connected="C"

 

Conference - Caller="B1", Called="D", Connected="D"

 

For B2:

 

Call will go IDLE

 

For C:

 

Conference - Caller="B2", Called="C", Connected="B2"

 

Connected

 

Conference - Caller="C", Called="A", Connected="A"

 

Conference - Caller="C", Called="D", Connected="D"

 

For D:

 

Conference - Caller="B2", Called="D", Connected="B2"

 

Connected

 

Conference - Caller="D", Called="A", Connected="A"

 

Conference - Caller="D", Called="C", Connected="C"


B1 Performs a Join Across Line Where B1 is in One Conference and B2 is in a Separate Conference

Action
Expected Events

A,B1,C are in conference1

For A (GCID-1):

D, B2, E are in conference2

 
 

Conference - Caller="A", Called="B1", Connected="B1"

 

Connected

 

Conference - Caller="A", Called="C", Connected="C"

 

For B1 (GCID-1):

 

Conference - Caller="A", Called="B1", Connected="A"

 

OnHold

 

Conference - Caller="B1", Called="C", Connected="C"

 

For C (GCID-1):

 

Conference - Caller="B1", Called="C", Connected="B1"

 

Connected

 

Conference - Caller="C", Called="A", Connected="A"

 

For D (GCID-2):

 

Conference - Caller="D", Called="B2", Connected="B2"

 

Connected

 

Conference - Caller="D", Called="E", Connected="E"

 

For B2 (GCID-2):

 

Conference - Caller="D", Called="B2", Connected="D"

 

Connected

 

Conference - Caller="B2", Called="E", Connected="E"

 

For E (GCID-2):

 

Conference - Caller="B2", Called="E", Connected="B2"

 

Connected

 

Conference - Caller="E", Called="D", Connected="D"

B1 issues a lineDevSpecific(SLDST_JOIN) to join the calls on B1 and B2.

For A:

 

Conference - Caller="A", Called="B1", Connected="B1"

 

Connected

 

Conference - Caller="A", Called="C", Connected="C"

 

Conference - Caller="A", Called="CFB-2", Connected=" CFB-2"

 

For B1:

 

Conference - Caller="A", Called="B1", Connected="A"

 

Connected

 

Conference - Caller="B1", Called="C", Connected="C"

 

Conference - Caller="B1", Called=" CFB-2", Connected=" CFB-2"

 

For B2:

 

Call will go IDLE

 

For C:

 

Conference - Caller="B1", Called="C", Connected="B1"

 

Connected

 

Conference - Caller="C", Called="A", Connected="A"

 

Conference - Caller="C", Called=" CFB-2", Connected=" CFB-2"

 

For D:

 

Connected

 

Conference - Caller="D", Called="E", Connected="E"

 

conference - Caller="D", Called=" CFB-1", Connected=" CFB-1"

 

For E:

 

Connected

 

Conference - Caller="E", Called="D", Connected="D"

 

Conference - Caller="E", Called=" CFB-1", Connected=" CFB-1"