Expose Remote Destination Info for CTI Remote Device in
ProviderDeviceLineInfoEvent
PreCondition: User has a CTI remote device "CTIRD1" under it control
list. CTIRD1 device has 3 remote destinations configured.
Action
|
CTI messages/Events
|
Application opens the provider.
|
CTI acquires the devices which are under control list of the
user
|
Application sends GetSignleDeviceAndLineInfoRequest to CTI
to fetch info for CTIRD1 device.
|
CTI sends ProviderDeviceLineInfoEvent to application and
exposes 3 RDs configured on the device as part of "Remote Destination Info"
structure.
|
Expose Remote Destination Info for CTI Remote Device in
ProviderDeviceRegisteredWithLineInfoNotify
PreCondition: User has a CTI remote device "CTIRD1" under it control
list. CTIRD1 device has 3 remote destinations configured.
Action
|
CTI messages/Events
|
Application opens the provider.
|
CTI acquires the devices which are under control list of the
user
|
Application sends GetSignleDeviceAndLineInfoRequest to
application to fetch info for CTIRD1 device.
|
CTI sends ProviderDeviceLineInfoEvent to application and
exposes 3 RDs configured on the device as part of "Remote Destination Info"
structure.
|
Application resets the device CTIRD1 from the admin page.
|
CTI sends ProviderDeviceRegisteredWithLineInfoNotify to
application and exposes 3 RDs configured on the device as part of "Remote
Destination Info" structure.
|
Expose New Device Type for CTI Remote Device
Precondition:
CTIRD (CTI Remote Device -Name: CTIRDdrajesh)
Remote Destinations configured/will be configured on CTI Remote
Device:
RD1-CTIRD -(Name: Mobile, Number: 914086271309)
RD2-CTIRD -(Name: Office, Number: 914089022131)
Line-A (DN -1000) -Line-A configured on CTI Remote Device (shared line
of Enterprise DN -1000 configured on Device EP)
EP (Enter Prise Phone -SCCP -IP Phone)
Line-A' -DN -1000 configured on Device EP
CSF (CSF Device -Name: CSFdrajesh)
Line-A'' -DN -1000 configured on Device CSF
Remote Destination configured on CSF device:
RD1-CSF -(Name: CSF-Mobile, Number: 914086271310)
RD2-CSF -(Name: CSF-Office, Number: 914089022132)
Action
|
TAPI messages
|
TAPI structures
|
PhoneInitializeEx
|
Devices are Enumerated
|
|
PhoneGetDevCaps() with DeviceID = DeviceId of CTIRD.
|
PhoneGetDevCaps() returns success
|
PHONECAPS::PhoneInfo = "CTI Remote Device"
PHONECAPS:: PhoneName = "Cisco Phone: [CTIRDdrajesh]"
|
PhoneGetDevCaps() with DeviceID = DeviceId of CSF.
|
PhoneGetDevCaps() returns success
|
PHONECAPS::PhoneInfo = "Cisco Unified Client Services
Framework"
PHONECAPS:: PhoneName = "Cisco Phone: [CSF-drajesh]"
|
Enumerating CTI Remote Devices and Exposing Remote Destination
Information to Application
Precondition: same as above usecase; RD1-CTIRD and RD1-CSF are
configured on respective devices
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A''
on CSF.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
Remote Destination Info:
unicodeRDName = "CSF-Mobile"
RDNumber = "91486271310"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Add Remote Destination From Admin and Expose Multiple Remote
Destination Information to Application
Precondition: In addition to above usecase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_REMOTE_DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A on CTIRD
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Add other Remote Destination RD2-CTIRD on CTI Remote Device
from Admin Pages
RD2-CTIRD Info -(Name: Office, Number: 4089022131)
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_REMOTE_ DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
Remote Destination Info:
unicodeRDName = "CSF-Mobile"
RDNumber = "91486271310"
isActiveRD = 0x00000000
unicodeRDName = "CSF-Office"
RDNumber = "4089022132"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Update RD Info (RDName/Number/Both) From Admin -RD Info Change
Notification to Application
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_REMOTE_ DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A on CTIRD
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Update Remote Destination RD2-CTIRD Name on CTI Remote
Device "CTIRD" from Admin Pages
RD2-CTIRD Info -(Name: Home, Number: 4089022132)
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Home"
RDNumber = "4089022132"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Update Remote Destination RD2-CTIRD Number on CTI Remote
Device CTIRD from Admin Pages
RD2Info -(Name: Home, Number: 4089021234)
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID =
|
LineGetDevCaps() returns
|
LINEDEVCAPS::DevSpecific
|
LineDeviceId of Line-A on CTIRD.
|
success
|
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Home"
RDNumber = "4089021234"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Update Remote Destination RD2-CTIRD Name and Number on CTI
Remote Device CTIRD from Admin Pages
RD2Info -(Name: Office, Number: 4089022131)
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info with respective RD Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
Remove RD From Admin -RD Info Change Notification to
Application
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_REMOTE_ DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Remove Remote Destination RD2-CTIRD on CTI Remote Device
CTIRD from Admin Pages
RD2Info -(Name: Office, Number: 4089022131)
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
Remote Destination Information on CTI RemoteDevice/CSF Device
Which Does Not Have Remote Destination's Configured
Precondition: In addition to above usecase
CTIRD2 (CTI remote device -doesn't have any RemoteDestination's
configured)
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-C on
CTIRD2.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_REMOTE_ DEVICE(0x03)
Remote Destination Info is empty
RemoteDestinationOffset = 0
RemoteDestinationSize = 0
RemoteDestinationCount = 0
RemoteDestinationElementFixedSize = 0
IsMyAppLastToSetActiveRD = 0x00000000
|
Remote Destination Information on Non CTI RemoteDevice / CSF
Device
Precondition: In addition to above usecase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A'
on EP.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
DeviceProtocolType =
DeviceProtocolType_SCCP (0x01)
Remote Destination Info is empty
RemoteDestinationOffset = 0
RemoteDestinationSize = 0
RemoteDestinationCount = 0
RemoteDestinationElementFixedSize = 0
IsMyAppLastToSetActiveRD = 0x00000000
|
Add RD From Application -RD Info Change Notification to
Application
Precondition: Remove All RD's from Admin Page
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_REMOTE_ DEVICE(0x03)
Remote Destination Info:
RemoteDestinationOffset = 0
RemoteDestinationSize = 0
RemoteDestinationCount = 0
RemoteDestinationElementFixedSize = 0
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
Add Remote Destination RD2-CTIRD to CTI Remote Device CTIRD:
CiscoLineDevSpecific AddRemoteDestination Req
m_RDNumber = "4089022131"
m_UnicodeRDName = "Office"
m_activeRD = 0x00000000
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
LINE_REPLY with success
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
Update RD Info (RDNumber/RDName/Both) From Application -RD Info
Change Notification to Application
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_REMOTE_ DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Update Remote Destination name of RD2-CTIRD on CTI Remote
Device "CTIRD":
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "4089022131"
m_UnicodeRDName = "Office-Change"
m_NewRDNumber = "4089022131"
m_activeRD = 0x00000000
|
LINE_REPLY with success
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Office-Change"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Update Remote Destination Number of RD2-CTIRD on CTI Remote
Device "CTIRD":
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "4089022131"
m_UnicodeRDName = "Office-Change"
m_NewRDNumber = "4089020000"
m_activeRD = 0x00000000
|
LINE_REPLY with success
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Office-Change"
RDNumber = "4089020000"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Update Remote Destination Name and Number of RD2-CTIRD on
CTI Remote Device "CTIRD":
CiscoLineDevSpecific UpdateRemoteDestination Req
m_RDNumber = "408902000"
m_UnicodeRDName = "Office"
m_NewRDNumber = "4089022131"
m_activeRD = 0x00000000
|
LINE_REPLY with success
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
Update RD Info (SetActive RD) From Application -RD Info Change
Notification to Application
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_REMOTE_ DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Set RD2-CTIRD as ActiveRD:
Req
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "4089022131"
m_UnicodeRDName = "Office"
m_RDNumber = "4089022131"
m_activeRD = 0x00000001
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000001
IsMyAppLastToSetActiveRD = 0x00000001
|
LineShutdown()
|
LineShutdown success
|
|
Active RD will be RESET to False when the Application which
has set RD as ACTIVE is shutdown or closed
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
Add Other RD (RD2-CTIRD with IsActive Set) From Application -RD
Info Change Notification to Application
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A on CTIRD
|
LineOpen() returns Success
|
|
Set RD2-CTIRD -"Office" as ACTIVE
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000001
IsMyAppLastToSetActiveRD = 0x00000001
|
Add Remote Destination RD1-CTIRD on CTI Remote Device CTIRD
with "IsActive" set to true
CiscoLineDevSpecific AddRemoteDestination Req
m_RDNumber = "914086271309"
m_UnicodeRDName = "Mobile"
m_activeRD = 0x00000001
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000001
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000001
|
Variation :
Add RD1-CTIRD with IsActive RD = False
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000001
IsMyAppLastToSetActiveRD = 0x00000001
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
Update RD (RD1-CTIRD -Name, Number and Set IsActive) From
Application -RD Info Change Notification to Application
Precondition: continuation from previous UseCase Variation (RD2 is
added with IsActive = false)
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Set RD2-CTIRD-"Office" as ACTIVE
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000001
IsMyAppLastToSetActiveRD = 0x00000001
|
Update Remote Destination RD1-CTIRD on CTI Remote Device
"CTIRD" with IsActive set to true
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "914086271309"
m_UnicodeRDName = "Mobile-t"
m_NewRDNumber = "91408627130900"
m_activeRD = 0x00000001
|
*** 2 Change Nofitications
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Mobile-t"
RDNumber = "9148627130900"
isActiveRD = 0x00000001
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000001
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
Remove RD (RD1-CTIRD Which Is Active RD) From Application -RD Info
Change Notification to Application
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Set RD1-CTIRD-"Mobile-t" as ACTIVE
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Mobile-t"
RDNumber = "91486271309"
isActiveRD = 0x00000001
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000001
|
Remove Remote Destination RD1-CTIRD on CTI Remote Device
"CTIRD"
CiscoLineDevSpecific AddRemoteDestination Req
m_RDNumber = "9148627130900"
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
Negative -Add RD From Application -RD Info Change Notification to
Application
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A of
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Add Remote Destination on CTI Remote Device CTIRD
Variation 1:
Empty RD Number :
m_RDNumber = ""
CiscoLineDevSpecific AddRemoteDestination Req
m_RDNumber = ""
m_UnicodeRDName = ""
m_activeRD = 0x00000000
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR_INVALPARAM
|
|
Variation 2:
RDNumber : same RD Number as any of the existing RD's Name
"12345" -RD already configured on CUCM.
CiscoLineDevSpecific AddRemoteDestination Req
m_RDNumber = "12345"
m_UnicodeRDName = "Office"
m_activeRD = 0x00000000
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR_DUPLICATE_INFORMATION (0xC0000013)
|
|
Variation 3:
Add RD when the user Limit for UserID used for CTI RD is
reached.
For example : if User has limit set to 4 and then if Remote
Device is already configured with 4 Remote Destination and User tries to Add
5th one from Application.
CiscoLineDevSpecific AddRemoteDestination Req
m_RDNumber = "12345"
m_UnicodeRDName = "temp"
m_activeRD = 0x00000000
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR_REMOTE_DESTINATION_LIMIT_EXCEEDED
(0xC0000015)
|
|
Variation 4:
RDNumber : Invalid Remote Destination Name [name has
unsupported characters, eg-name&] or invalid number [cant configure any of
the local device DN as number which is not supported]
CiscoLineDevSpecific AddRemoteDestination Req
m_RDNumber = "1000"
m_UnicodeRDName = "Office&"
m_activeRD = 0x00000000
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR_INVALPARAM
|
|
Variation 5:
Add RD to a CSF device which doesn't have Owner/END User ID
configured
CiscoLineDevSpecific AddRemoteDestination Req
m_RDNumber = "12345"
m_UnicodeRDName = "Office"
m_activeRD = 0x00000000
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR_ENDUSER_NOT_ASSOCIATED_WITH_DEVICE
(0xC000001B)
|
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
Negative -Update RD From Application -RD Info Change Notification
to Application
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Update Remote Destination on CTI Remote Device:
Variation 1:
Empty RD Number :
m_RDNumber = ""
CiscoLineDevSpecific AddRemoteDestination Req
m_RDNumber = ""
m_UnicodeRDName = ""
m_NewRDNumber = ""
m_activeRD = 0x00000000
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR_INVALPARAM
|
|
Variation 2:
RDNNumber : RD Number in Request doesn't match with any of
the existing RD in the RD List on Device
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "12345"
m_UnicodeRDName = "Temp"
m_RDNumber = "12345"
m_activeRD = 0x00000000
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR_REMOTE_DESTINATION_UNAVAIL (0xC0000014)
|
|
Variation 3:
RDNaumber : same RD Number as any of the existing RD's Name
*** RDNumber "4086271309" is already configured on other
RemoteDestination
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "4089022131"
m_UnicodeRDName = "Office"
m_RDNumber = "4086271309"
m_activeRD = 0x00000000
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR _DUPLICATE_INFORMATION (0xC0000013)
|
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
Negative -Remove RD From Application -RD Info Change Notification
to Application
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A on
CTIRD.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Remove Remote Destination on CTI Remote Device:
Empty RDNumber :
CiscoLineDevSpecific AddRemoteDestination Req
m_RDNumber = ""
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR_INVALPARAM
|
|
Variation 1:
RDNumber : RD Number in Request doesn't match with any of
the existing RD in the List
CiscoLineDevSpecific AddRemoteDestination Req
m_RDNumber = "1234567"
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR_REMOTE_DESTINATION_UNAVAIL (0xC0000014)
|
|
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
Negative -Add/remove/update RD From Application -on Non-CTI RD
/CSF Device Line or Line Is Not Opened with Required Extension
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Add/Remove/Update Remote Destination on CTI Remote Device
CTIRD
Variation 1:
Previous step Line is not opened with required ext Version
-(0x000C0000 or greater)
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR_OPERATIONUNAVAIL
|
|
Variation 2:
Req on Line which is not on CTI Remote Device / CSF device
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR_OPERATIONUNAVAIL
|
|
Variation 3:
Failure of Add/Remove/update Req for any other reasons not
captured in above useCases
|
LineDevSpecific() returns dwRequestID
LINE_REPLY
lResult = LINEERR_OPERATIONFAILED
|
|
Multiple Apps Setting Active RD
Precondition: same as UseCase 1
Action
|
TAPI messages
|
TAPI structures
|
App1 and App2:
LineInitializeEx
|
Lines are Enumerated
|
|
App1 and App2:
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
App1 and App2:
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
App1:
Update Remote Destination RD2 on CTI Remote Device "CTIRD"
with IsActive set to true
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "914086271309"
m_UnicodeRDName = "Mobile"
m_NewRDNumber = "914086271309"
m_activeRD = 0x00000001
|
Change Notification to App1 and App2:
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
App1:
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000001
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000001
|
App2:
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000001
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
App2:
Update Remote Destination RD2 on CTI Remote Device "CTIRD"
with IsActive set to true
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "914089022131"
m_UnicodeRDName = "Office"
m_NewRDNumber = "914089022131"
m_activeRD = 0x00000001
|
Change Notification to App1 and App2:
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
App1:
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000001
IsMyAppLastToSetActiveRD = 0x00000000
|
App2:
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000001
IsMyAppLastToSetActiveRD = 0x00000001
|
Variant 1:
App2:
LineShutdown()
|
LineShutdown() returns success
Change Notification to App1:
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000
|
|
App1:
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Variant 2:
App1:
LineShutdown()
|
LineShutdown() returns success
No Change Notification to App2
|
|
App2:
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000001
IsMyAppLastToSetActiveRD = 0x00000001
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
CTI/CCM Manager FailOver Scenario - Active RD
Precondition: same as UseCase 1
TSP is configured with Primary and Secondary CTI Manager
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Update Remote Destination RD1 on CTI Remote Device "CTIRD"
with IsActive set to true
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "914086271309"
m_UnicodeRDName = "Mobile"
m_NewRDNumber = "914086271309"
m_activeRD = 0x00000001
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000001
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000001
|
Stop Primary CTI Manager
TSP connects to Secondary CTIManager
and
Active RD configuration is RE-SET by CiscoTSP
|
Event on Line A :
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_OUTOFSERVICE
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000001
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000001
|
Set RD -Mobile to ACTIVE RD and then Stop Call Manager on
the node of Secondary CTI Manager
ActiveRD configuration is not changed/ not RESET
|
Event on Line A :
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_OUTOFSERVICE
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
CTI/CCM Manager FailOver Scenario - Active RD Set by Other
Application
Precondition: same as UseCase 1
TSP is configured with Primary and Secondary CTI Manager
Other Application has set the ACTIVE RD on the Device and Application
is connected to Secondary CTI Manager
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000001
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A
|
LineOpen() returns Success
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Stop Primary CTI Manager
Active RD configuration is not RESET as the this Application
has not set the ACTIVE RD
|
Event on Line A :
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_OUTOFSERVICE
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = LINEDEVCAPSDEVSPECIFIC_ REMOTEDEVICE
(0x00000008)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE(0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "91486271309"
isActiveRD = 0x00000001
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Stop Call Manager on the node of Secondary CTI Manager
ActiveRD configuration is not changed/ not RESET
|
Event on Line A :
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_OUTOFSERVICE
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
Variation :
Test the same on CSF device [CSF -Line-A'']
|
|
Same as for CTI Remote Device other than dwLineTypes and
DeviceProtocolType Info.
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
|
Monitoring CSF Device in Soft Phone/Desk Phone Mode
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A''
on CSF Device.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
Remote Destination Info:
unicodeRDName = "CSF-Mobile"
RDNumber = "4086271309"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A"
|
LineOpen() returns Success
|
|
LineSetStatusMessages()on Line-A" with dwLineStates =
INSERVICE and OUTOFSERVICE
|
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
LineMake Call() or any Incoming Call
|
Call Events are reported to Application
|
|
Lineclose and ShutDown
|
LineClose and LineShutdown Success
|
|
Monitoring CSF Device Switching Mode From Soft/Desk Phone Mode to
Extend Mode
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A"
on CSF device.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
Remote Destination Info:
unicodeRDName = "CSF-Mobile"
RDNumber = "4086271309"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A"
|
LineOpen() returns Success
|
|
LineSetStatusMessages() on Line-A" with dwLineStates =
INSERVICE and OUTOFSERVICE
|
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
From Jabber Client Switch the mode to Extend Mode
|
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_OUTOFSERVICE
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_DEVICE_PROTOCOL_TYPE (0x00008000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A".
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE (0x03)
Remote Destination Info:
unicodeRDName = "CSF-Mobile"
RDNumber = "4086271309"
isActiveRD = 0x00000000
|
Lineclose and ShutDown
|
LineClose and LineShutdown Success
|
|
Monitoring CSF Device in Extend Mode, Switches Back to Soft / Desk
Phone Mode
Precondition: continuation from previous UseCase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A"
on CSF device.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE (0x03)
Remote Destination Info:
unicodeRDName = "CSF-Mobile"
RDNumber = "4086271309"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
LineOpen() with ExtVer-0x000C0000 dwDeviceID = LineDeviceID
of Line-A"
|
LineOpen() returns Success
|
|
LineSetStatusMessages()on Line-A" with dwLineStates =
INSERVICE and OUTOFSERVICE
|
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
|
|
From Jabber Client Switch the mode to Soft Mode
Or
From Jabber Client Switch the mode to Deskphone Mode
|
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_OUTOFSERVICE
Line INSERVICE EVENT
Event = LINE_LINEDEVSTATE
dwParam1 = LINEDEVSTATE_INSERVICE
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_DEVICE_PROTOCOL_TYPE (0x00008000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A".
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_SIP (0x02)
Remote Destination Info:
unicodeRDName = "CSF-Mobile"
RDNumber = "4086271309"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Lineclose and ShutDown
|
LineClose and LineShutdown Success
|
|
Basic Incoming Call to CTI Remote Device
CTI remote device:
A (CTI Remote Device -Name: CTIRD1)
Remote Destination:
RD1 -Remote Destination configured on CTI Remote Device A
(Name: Mobile, Number: 914086271309)
RD2 -Remote Destination configured on CTI Remote Device A
(Name: Office, Number: 914089022131)
Line:
Line-A1 (DN -2000) (Alerting Name:2000name, Display Name:
CTIRD-2000name) configured on CTI Remote Device A (shared line of Enterprise DN
-2000 configured on Device B)
Line-A2 (DN -2001) (Alerting Name:2001name, Display Name:
CTIRD-2001name) configured on CTI Remote Device A (shared line of Enterprise DN
-2001 configured on Device B)
Enterprise Phones:
B (IP Phone -Name: SEPxxxxxxxx)
Line:
Line-A1' -DN -2000(Alerting Name: 2000name, Display Name: EP-2000name)
configured on Device B
Line-A2' -DN -2001(Alerting Name: 2001name, Display Name: EP-2001name)
configured on Device B
C (IP Phone -Name: SEPxxxxxxxx)
Line:
Line-C -DN -1000(Alerting Name: 1000name, Display Name: 1000Name)
configured on Device C
D (IP Phone -Name: SEPxxxxxxxx)
Line:
Line-D -DN -1001(Alerting Name: 1001name, Display Name: 1001Name)
configured on Device D
CSF Device:
D (CSF Device -Name: CSF-drajesh)
Remote Destination:
RD-01 -Remote Destination configured on CSF device D
(Name: CSF-Mobile, Number: 914086271309)
RD-02 -Remote Destination configured on CSF device D
(Name: CSF-Office, Number: 914089022131)
Line:
Line-A'' (DN -2000) -Line-A (Alerting Name: 2000name, Display Name:
CSF-2000) configured on CSF device D (shared line of Enterprise DN -2000
configured on Device B)
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LINEDEVCAPS::DevSpecific
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE (0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "4086271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Open all Lines (A, A' and C)
LineOpen() with ExtVer-0x000C0000
|
LineOpen() returns Success
|
|
LineMakeCall on Line-C with DN (A -DN 2000)
|
LineMakeCall() success
Call on C :
LINE_CALLSTATE -Param1 = DIALING
LINE_CALLSTATE -Param1 = PROCEEDING
LINE_CALLSTATE -Param1 = RINGBACK
Call on CTI Remote Device :
LINE_APPNEWCALL
LINE_CALLSTATE -Param1 = OFFERING
LINE_CALLSTATE -Param1 = ACCEPTED
Call on Enterprise Phone :
LINE_APPNEWCALL
LINE_CALLSTATE -Param1 = OFFERING
LINE_CALLSTATE -Param1 = ACCEPTED
|
|
After "Delay Before Ringing Timer" expires the call is
offered on Remote Destinations and all Remote Destinations Ring
|
LineGetCallInfo() on call on Device C
|
LineGetCallInfo() success
|
LineCallInfo ::
dwCallerID = 1000
dwCallerIDName = 1000name
dwCalledID = 2000
dwCalledIDName = 2000name
DevSpecific ::
UnicodeCallerPartyName = 1000name
UnicodeCalledPartyName = 2000name
UnicodeConnectedPartyName =
ModifiedCallingParty = 1000
ModifiedCalledParty = 2000
ModifiedConnectedID =
|
LineGetCallInfo() on call on Device A/B
|
LineGetCallInfo() success
|
LineCallInfo ::
dwCallerID = 1000
dwCallerIDName = 1000name
dwCalledID = 2000
dwCalledIDName = 2000name
DevSpecific ::
UnicodeCallerPartyName = 1000name
UnicodeCalledPartyName = 2000name
UnicodeConnectedPartyName =
ModifiedCallingParty = 1000
ModifiedCalledParty = 2000
ModifiedConnectedID =
|
Answer on any of the Remote Destination
|
Call on C :
LINE_CALLSTATE -Param1 = CONNECTED
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = CONNECTED (active)
Call on Enterprise Phone :
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
|
|
LineGetCallInfo() on call on Device C
|
LineGetCallInfo() success
|
LineCallInfo ::
dwCallerID = 1000
dwCallerIDName = 1000name
dwCalledID = 2000
dwCalledIDName = 2000name
dwConnectedID = 2000
dwConnectedIDName = CTIRD-2000name
DevSpecific ::
UnicodeCallerPartyName = 1000name
UnicodeCalledPartyName = 2000name
UnicodeConnectedPartyName = CTIRD-2000name
ModifiedCallingParty = 1000
ModifiedCalledParty = 2000
ModifiedConnectedID = 2000
|
LineGetCallInfo() on call on Device A/B
|
LineGetCallInfo() success
|
LineCallInfo ::
dwCallerID = 1000
dwCallerIDName = 1000name
dwCalledID = 2000
dwCalledIDName = 2000name
dwConnectedID = 2000
dwConnectedIDName = CTIRD-2000name
DevSpecific ::
UnicodeCallerPartyName = 1000name
UnicodeCalledPartyName = 2000name
UnicodeConnectedPartyName = CTIRD-2000name
ModifiedCallingParty = 1000
ModifiedCalledParty = 2000
ModifiedConnectedID = 2000
|
LineDrop() for the call on Device A (CTI-RD)
*** Call on Remote Destination is dropped
|
LineDrop() success
Call on C :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on Enterprise Phone :
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
LINE_CALLSTATE -Param1 = IDLE
|
|
Variation :
Answer the call on Enterprise Phone (B)
LineAnswer() on the call on Device B
*** Call on Remote Device/Remote Destination drops
|
Call on C :
LINE_CALLSTATE -Param1 = CONNECTED
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on Enterprise Phone :
LINE_CALLSTATE -
Param1 = CONNECTED
|
|
Variation :
One of the Remote Destination answers the call before the
"Answer Too Soon Timer"
|
Expected Result :
All calls go to Disconnected/IDLE State
|
|
Variation :
Active RD set on CTI Remote Device
|
Expected result:
only Remote Destination which is set ACTIVE rings
Call rings immediately and "Delay before Ringing Timer"
wouldn't be effective when ACTIVE RD is set.
Remote Destination can answer the call Immediately and
"Answer Too Soon Timer" wouldn't be effective when ACTIVE RD is set.
|
|
Continuation to above variation
On second Incoming Call...
|
There won't be second call on Remote Destination, only at
Remote Device second call will present and reported to Application.
|
|
Variation :
Test with CSF Device in Extend Mode
|
Expected result:
would be same as observed on CTI Remote Device
|
|
DVO Call (Outgoing Call Initiation From CTI Remote Device)
Precondition: same as above usecase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE (0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "4086271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Open all Lines (A, A' and C)
LineOpen() with ExtVer-0x000C0000
|
LineOpen() returns Success
|
|
LineMakeCall on Line-A with DN (C -DN 1000)
|
LineMakeCall() returns RequestID
LINE_REPLY
Param1 = RequestID
Param2 = LINEERR_OPERATION_FAIL_NO_ACTIVE_RD_SET
(0xC0000016)
|
|
Update Remote Destination RD1 "Mobile"on CTI Remote Device A
with IsActive set to true
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "914086271309"
m_UnicodeRDName = "Mobile"
m_NewRDNumber = "914086271309"
m_activeRD = 0x00000001
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE (0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "4086271309"
isActiveRD = 0x00000001
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000001
|
LineMakeCall on Line-A with DN (C -DN 1000)
*** Only Remote Destination "Mobile" rings and it rings
immediately as the RD is set Active
*** No Call presented on EP
|
LineMakeCall() success
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = OFFERING
|
|
Answer the first Call on CTI Remote Device:
Answer() on the call on CTIRemote Device(A)
|
LineAnswer() fail with Error LINEEE_OPERATIONUNAVAIL
|
|
LineGetCallInfo() on call on Device A(CTIRD)
|
LineGetCallInfo() success
|
LineCallInfo ::
dwCallerID = 2000
dwCallerIDName = voiceConnect
dwCalledID = 2000
dwCalledIDName = 2000name
DevSpecific ::
UnicodeCallerPartyName =
UnicodeCalledPartyName = 2000name
UnicodeConnectedPartyName =
ModifiedCallingParty = 2000
ModifiedCalledParty = 2000
ModifiedConnectedID =
|
Once Remote Destination answers the call, call will be
offered on initial dialed number C
Call will be present on Enterprise Phone and call will be
Remote In Use Call
|
Call on C :
LINE_CALLSTATE -Param1 = OFFERING
LINE_CALLSTATE -Param1 = ACCEPTED
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = CONNECTED
LINE_CALLSTATE -Param1 = RINGBACK
Call on Enterprise Phone :
LINE_APPNEWCALL
LINE_CALLSTATE -Param1 = ACCEPTED
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
|
|
C answers the call
LineAnswer() on call on Device-C
|
LineAnswer() success
Call on C :
LINE_CALLSTATE -Param1 = CONNECTED
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = CONNECTED (active)
Call on Enterprise Phone :
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
|
|
LineGetCallInfo() on call on Device C
|
LineGetCallInfo() success
|
LineCallInfo ::
CallReason = UNKNOWN (0x400)
dwCallerID = 2000
dwCallerIDName = 2000name
dwCalledID = 1000
dwCalledIDName = 1000name
dwConnectedID = 2000
dwConnectedIDName = CTIRD-2000name
DevSpecific ::
ExtendedCallReason = CtiReasonMobility(0x021 = 33)
UnicodeCallerPartyName = 2000name
UnicodeCalledPartyName = 1000name
UnicodeConnectedPartyName = 2000name
ModifiedCallingParty = 2000
ModifiedCalledParty = 1000
ModifiedConnectedID = 2000
|
LineGetCallInfo() on call on Device A/B
|
LineGetCallInfo() success
|
LineCallInfo ::
dwCallerID = 2000
dwCallerIDName = 2000name
dwCalledID = 2000
dwCalledIDName = 2000name
dwConnectedID = 1000
dwConnectedIDName = 1000name
DevSpecific ::
CallAttributeType = TSPCallAttribute_DVOCall (0x00002000)
UnicodeCallerPartyName = 2000name
UnicodeCalledPartyName = 2000name
UnicodeConnectedPartyName = 1000name
ModifiedCallingParty = 2000
ModifiedCalledParty = 2000
ModifiedConnectedID = 1000
|
LineDrop() for the call on Device A (CTI-RD)
|
LineDrop() success
Call on C :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on Enterprise Phone :
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
LINE_CALLSTATE -Param1 = IDLE
|
|
Variation :
Test the same with CSF Device in Extend Mode
|
Expected result would be same as observed on CTI Remote
Device
|
|
Multiple Calls -Answer/Hold/Resume
Precondition: same as above usecase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE (0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "4086271309"
isActiveRD = 0x00000000
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000000
|
Open all Lines (A, A', A'' and C)
LineOpen() with ExtVer-0x000C0000
|
LineOpen() returns Success
|
|
Update Remote Destination RD1 "Mobile"on CTI Remote Device A
with IsActive set to true
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "914086271309"
m_UnicodeRDName = "Mobile"
m_NewRDNumber = "914086271309"
m_activeRD = 0x00000001
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
Make Call between C and A[Remote Destinaton], either normal
incoming or DVO call on CTI Remote Device
Call Info is same as above test cases
|
LineMakeCall on Line-D with DN (A -DN 2000)
|
LineMakeCall() success
Call on Device-D :
LINE_CALLSTATE -Param1 = OFFERING
LINE_CALLSTATE -Param1 = ACCEPTED
Second Call on CTI Remote Device[A] [D ' A] :
LINE_CALLSTATE -Param1 = OFFERING
LINE_CALLSTATE -Param1 = ACCEPTED
Second Call on Enterprise Phone[B] [D ' A]:
LINE_CALLSTATE -Param1 = OFFERING
LINE_CALLSTATE -Param1 = ACCEPTED
|
|
There won't be second call offered to Remote Destination
|
Answer() on the second call on CTIRemote Device(A)
Remote Destination and D will be talking/ will have Media
connection
|
LineAnswer() returns success
Calls on CTI Remote Device :
Call1 [C ' A]:
LINE_CALLSTATE -Param1 = ONHOLD
Call1 [D ' A]:
LINE_CALLSTATE -Param1 = CONNECTED
Calls on Enterprise Phone[B] :
Call1 [C ' A]:
LINE_CALLSTATE -Param1 = ONHOLD
Call1 [D ' A]:
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
|
|
Resume the first call on CTIRemote Device [A]
LineUnhold() on the call [c ' A] on Device A
Remote Destination and C will be talking/ will have Media
connection
|
LineUnHold() returns success
Calls on CTI Remote Device :
Call1 [C ' A]:
LINE_CALLSTATE -Param1 = CONNECTED
Call1 [D ' A]:
LINE_CALLSTATE -Param1 = ONHOLD
Calls on Enterprise Phone[B] :
Call1 [C ' A]:
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
Call1 [D ' A]:
LINE_CALLSTATE -
Param1 = ONHOLD
|
|
Resume the ONHOLD call [D ' A]from Enterprise Phone
LineUnHold() on the call [D ' A] on Device B
|
LineUnHold() returns success
Calls on CTI Remote Device :
Call1 [C ' A]:
LINE_CALLSTATE -Param1 = CONNECTED
Call1 [D ' A]:
LINE_CALLSTATE -Param1 = IDLE
Calls on Enterprise Phone[B] :
Call1 [C ' A]:
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
Call1 [D ' A]:
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x01(active)
|
|
LineDrop() for the call on Device A (CTI-RD)
Call on Remote Destination will be dropped
|
LineDrop() success
Call on C :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on Enterprise Phone :
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
LINE_CALLSTATE -Param1 = IDLE
|
|
Variation :
Test the same with CSF Device in Extend Mode
|
Expected result would be same as observed on CTI Remote
Device
|
|
Multiple Calls -Multiple Lines -Answer/Hold/Resume
Precondition: same as above usecase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
Open all Lines (A, A', A'' and C)
LineOpen() with ExtVer-0x000C0000
|
LineOpen() returns Success
|
|
Update Remote Destination RD1 "Mobile"on CTI Remote Device A
with IsActive set to true
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "914086271309"
m_UnicodeRDName = "Mobile"
m_NewRDNumber = "914086271309"
m_activeRD = 0x00000001
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
Make Call between C and A[Remote Destinaton], either normal
incoming or DVO call on CTI Remote Device
Call Info is same above test cases
|
LineMakeCall on Line-D with DN (A2 -DN 2001)
|
LineMakeCall() success
Call on Device-D :
LINE_CALLSTATE -Param1 = OFFERING
LINE_CALLSTATE -Param1 = ACCEPTED
Second Call on CTI Remote Device[A] [D ' A2]:
LINE_CALLSTATE -Param1 = OFFERING
LINE_CALLSTATE -Param1 = ACCEPTED
Second Call on Enterprise Phone[B] [D ' A2]:
LINE_CALLSTATE -Param1 = OFFERING
LINE_CALLSTATE -Param1 = ACCEPTED
|
|
There won't be second call offered to Remote Destination
|
Answer() on the second call on CTIRemote Device(A)
Remote Destination and D will be talking/ will have Media
connection
|
LineAnswer() returns success
Calls on CTI Remote Device :
Call1 [C ' A1]:
LINE_CALLSTATE -Param1 = ONHOLD
Call1 [D ' A2]:
LINE_CALLSTATE -Param1 = CONNECTED
Calls on Enterprise Phone[B] :
Call1 [C ' A1]:
LINE_CALLSTATE -Param1 = ONHOLD
Call1 [D ' A2]:
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
|
|
Resume the first call on CTIRemote Device [A]
LineUnhold() on the call [c ' A1] on Device A
Remote Destination and C will be talking/ will have Media
connection
|
LineUnHold() returns success
Calls on CTI Remote Device :
Call1 [C ' A1]:
LINE_CALLSTATE -Param1 = CONNECTED
Call1 [D ' A2]:
LINE_CALLSTATE -Param1 = ONHOLD
Calls on Enterprise Phone[B] :
Call1 [C ' A1]:
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
Call1 [D ' A2]:
LINE_CALLSTATE -
Param1 = ONHOLD
|
|
Drop the Connected Active Call on CTI Remote Device.
LineDrop() for the call[C ' A1] on Device A (CTI-RD)
Call on Remote Destination will not be dropped as there is
other Active/OnHold call on CTI Remote Device
As second Call is on OnHold state, Remote Destination will
listen Dead Air
|
LineDrop() success
Call on C :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Calls on CTI Remote Device :
[C ' A1] :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on Enterprise Phone :
Call [C ' A1]
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
LINE_CALLSTATE -Param1 = IDLE
|
|
Drop the onHold call on CTI Remote Device
LineDrop() for the call on Device A (CTI-RD)
Call on Remote Destination is dropped
C and EP call will not be disconnected.
On C call will be in Connected state and on EP call will be
in OnHold state.
|
LineDrop() success
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
|
|
Variation :
Test the same with CSF Device in Extend Mode
|
Expected result would be same as observed on CTI Remote
Device
|
|
Transfer
Precondition: same as above usecase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
Open all Lines (A, A', A'' and C)
LineOpen() with ExtVer-0x000C0000
|
LineOpen() returns Success
|
|
Make Call between C and A1[Remote Destinaton], either normal
incoming or DVO call on CTI Remote Device
Call Info is same as above test cases
|
Setup Transfer and Dial D
LineSetupTransfer() on the call [C ' A1] on Device A
|
LineSetupTransfer returns success
Primary Call on CTI Remote Device[A] [C ' A1] :
LINE_CALLSTATE -Param1 = OnholdPendingTransfer
Consult Call on CTI Remote Device[A] [A1 ' D]:
|
|
LineDial() on Consult call with DN -D
|
LINE_CALLSTATE -Param1 = DIALTONE
LINE_CALLSTATE -Param1 = DIALING
Calls on Enterprise Phone[B] :
Call1 [C ' A1]:
LINE_CALLSTATE -Param1 = ONHOLD
Call1 [A1 ' D]:
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
Consult Call on CTI Remote Device[A] [A1 ' D]:
LINE_CALLSTATE -Param1 = PROCEEDING
LINE_CALLSTATE -Param1 = RINGBACK
|
|
Answer the Call on Device D
Remote Destination and D will be talking/ will have Media
connection
|
Secondary Call on CTI Remote Device:
Call1 [A1 ' D]:
LINE_CALLSTATE -Param1 = CONNECTED
Param2 = 0x01(active)
|
|
Complete Transfer on the Primary Call[C ' A]with [A ' D ]
call as consult call
LineCompleteTranfer() on the call [c ' A1] on Device A
D and C will be talking/ will have Media connection
|
Both the Calls on CTI Remote Device Drop
Primary Call on CTI Remote Device :
Call1 [C ' A1]:
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Secondary Call on CTI Remote Device:
Call1 [A ' D]:
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
|
|
Variation :
Test the same with CSF Device in Extend Mode
|
Expected result would be same as observed on CTI Remote
Device
|
|
Direct Transfer on Same Line
Precondition: same as above usecase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
Open all Lines (A, A', A'' and C)
LineOpen() with ExtVer-0x000C0000
|
LineOpen() returns Success
|
|
Make Call between C and A1[Remote Destinaton], either normal
incoming or DVO call on CTI Remote Device
Call Info is same above test cases
|
Make Call between D and A1
Call Info is same above Multiple Call across lines test case
|
DirectTrnasfer on the calls on CTI Remote Device
Both Calls on Remote Device and call on Remote Destination
drop
|
Both the Calls on CTI Remote Device Drop
Primary Call on CTI Remote Device :
Call1 [C ' A1]:
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Secondary Call on CTI Remote Device:
Call1 [A1 ' D]:
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
|
|
DirectTrnasfer on the calls on CTI Remote Device
Both Calls on Remote Device and call on Remote Destination
drop
CciscoLineDevSpecificDirectTransfer on the call [c ' A1] on
Device A with ConsultCallID = CallID of [D ' A1]
D and C will be talking/ will have Media connection
|
Both the Calls on CTI Remote Device Drop
Primary Call on CTI Remote Device :
Call1 [C ' A1]:
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Secondary Call on CTI Remote Device:
Call1 [A1 ' D]:
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
|
|
Variation :
Test the same with CSF Device in Extend Mode
|
Expected result would be same as observed on CTI Remote
Device
|
|
Conference -Setupconference/AddtoConference
Precondition: same as above usecase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
Open all Lines (A, A', A'' and C)
LineOpen() with ExtVer-0x000C0000
|
LineOpen() returns Success
|
|
Make Call between C and A1[Remote Destinaton], either normal
incoming or DVO call on CTI Remote Device
Call Info is same above test cases
|
Setup Conference and Dial D
LineSetupConference() on the call [C ' A1] on Device A
LineDial() on Consult call with DN -D
|
LineSetupConference returns success
Original Call on CTI Remote Device[A] :
LINE_CALSTATE = CONFERENCE
Conference Parent Call on CTI Remote Device[A] :
LINE_APPNEWCALL
LINE_CALLSTATE -Param1 = OnholdPendingConference
Consult Call on CTI Remote Device[A] :
LINE_CALLSTATE -Param1 = DIALTONE
LINE_CALLSTATE -Param1 = DIALING
Calls on Enterprise Phone[B] :
Call1 [C ' A]:
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
Call1 [A ' D]:
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
Consult Call on CTI Remote Device[A] :
LINE_CALLSTATE -Param1 = PROCEEDING
LINE_CALLSTATE -Param1 = RINGBACK
|
|
Answer the Call on Device D
Remote Destination and D will be talking/ will have Media
connection
|
Secondary Call on CTI Remote Device:
Call1 [A ' D]:
LINE_CALLSTATE -Param1 = CONNECTED
LINE_CALLSTATE -Param1 = IDLE
|
|
Complete Conference on the Primary Call[C ' A]with [A ' D ]
call as consult call
LineAddtoConference() on the call [c ' A1] on Device A
All 3 parties C, D and CTI Remote Device[Remote Destination]
will be in Conference
|
Call model on CTI Remote Device :
[C ' A1]-[ Original Call1]-[ state = Conference]
[A1 ' Conference]-[ Conference Parent Call]-[State =
CONNECTED]
[A1 ' D]-[Consult Call]-[state -CONFERENCE]
Call Model on Enterprise Phone:
Same as CTI Remote Device, all calls are RIU Calls
|
|
Variation :
Test the same with CSF Device in Extend Mode
|
Expected result would be same as observed on CTI Remote
Device
|
|
Join on Same Line
Precondition: same as above usecase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
Open all Lines (A, A', A'' and C)
LineOpen() with ExtVer-0x000C0000
|
LineOpen() returns Success
|
|
Make Call between C and A1[Remote Destinaton], either normal
incoming or DVO call on CTI Remote Device
Call Info is same above test cases
|
Make Call between D and A1
Call Info is same above Multiple Call across lines test case
|
Join on the Primary Call[C ' A1]with [A1 ' D ] call as
consult call
CCiscoLineDevSpecificJoin() on the call [c ' A1] on Device A
with CallIDstoJoin = CallID of Call [D ' A1]
CTIRemoteDevice [A -Remote Destination], D and C will be in
Conference.
|
Original Call on CTI Remote Device[A] [C ' A1]:
LINE_CALSTATE = CONFERENCE
Conference Parent Call on CTI Remote Device[A] :
LINE_APPNEWCALL
LINE_CALLSTATE -Param1 = CONNECTED
Consult Call on CTI Remote Device[A] [D ' A1]:
LINE_CALLSTATE -Param1 = CONFERENCE
Conference Model will be created on CTI Remote Device and
RIU Conference Model on EP
|
|
Variation :
Test the same with CSF Device in Extend Mode
|
Expected result would be same as observed on CTI Remote
Device
|
|
Direct Transfer/Join Across Line on CTI Remote Device
Precondition: same as above usecase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
Open all Lines (A, A', A'' and C)
LineOpen() with ExtVer-0x000C0000
|
LineOpen() returns Success
|
|
Make Call between C and A1[Remote Destinaton], either normal
incoming or DVO call on CTI Remote Device
Call Info is same above test cases
|
Make Call between D and A2
Call Info is same above Multiple Call across lines test case
|
Join on the Primary Call[C ' A1]with [A2 ' D ] call as
consult call
CCiscoLineDevSpecificJoin() on the call [c ' A1] on Device A
with CallIDstoJoin = CallID of Call [D ' A2]
Or
CciscoLineDevSpecificDirectTransfer on the call [c ' A1] on
Device A with ConsultCallID = CallID of [D ' A2]
Direct Transfer / Join Across Line is not supported on CTI
Remote Device
|
Line_Reply with error = LINEERR_OPERATIONUNAVAIL
|
|
Variation:
On any unsupported Feature Request
For Example:
CallAcceptRequest
CallAnswerRequest
CallParkRequest
LineCallUnParkRequest
|
LINEERR_OPERATIONUNAVAIL
Or PHONEERR_OPERATIONUNAVAIL
Depending on the Line/Phone API request.
|
|
Variation :
Test the same with CSF Device in Extend Mode
|
Expected result would be same as observed on CTI Remote
Device
|
|
Cbarge
Precondition: same as above usecase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
Open all Lines (A, A', A'' and C)
LineOpen() with ExtVer-0x000C0000
|
LineOpen() returns Success
|
|
Make Call between C and A1[Remote Destinaton], either normal
incoming or DVO call on CTI Remote Device
Call Info is same above test cases
|
cBarge from CTI Remote Device is not supported as CTI Remote
Device is a Static virtual Device.
cBarge from EP [Enterprise phone]
*** cBarge will be successful and CTIRemote Device, EP and
Caller will be in Conference.
*** as CTI Remote Device doesn't report RIU calls, there
won't be RIU Conference created on CTI Remote Device reflecting Active
Conference Call on EP
|
Conference Call model on CTI Remote Device :
[C ' A1]-[ Original Call1]-[ state = Conference]
[A1 ' Conference]-[ Conference Parent Call]-[State =
CONNECTED]
[A1 ' A1(EP)]-[Consult Call]-[state -CONFERENCE]
Call Model on Enterprise Phone:
Active Conference Calls:
[C ' A1(CTIRD)]-[ Original Call1]-[ state = Conference]
[A1(EP) ' Conference]-[ Conference Parent Call]-[State =
CONNECTED]
[A1(EP) ' A1(CTIRD)]-[Consult Call]-[state -CONFERENCE]
RIU Conference Calls:
[C ' A1]-[ Original Call1]-[ state = Conference]
[A1 ' Conference]-[ Conference Parent Call]-[State =
CONNECTED]
[A1 ' A1(EP)]-[Consult Call]-[state -CONFERENCE]
|
|
Variation:
Barge Operation on Enterprise Phone
|
Barge Operation will fail as CTI Remote Devices doesn't have
BIB.
|
|
Variation :
Test the same with CSF Device in Extend Mode
|
Expected result would be same as observed on CTI Remote
Device
|
|
URI Dialing -Basic Incoming Call to CTI Remote Device
Precondition: InAddition to configuration from previous usecases
CTI Remote Device:
Line:
Line-A (DN -2000) (URI Configured -drajesh@cisco.com)
C (IP Phone -Name: SEPxxxxxxxx)
Line:
Line-C -DN -1000(URI configured -1000@cisco.com)
D (IP Phone -Name: SEPxxxxxxxx)
Line:
Line-D -DN -1001(URI configured -1001@cisco.com)
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
Open all Lines (A, A' and C)
LineOpen() with ExtVer-0x000C0000
|
LineOpen() returns Success
|
|
LineMakeCall on Line-C with URI of CTI Remote Device
(DestinationAddress -drajesh@cisco.com)
|
LineMakeCall() success
Call on C :
LINE_CALLSTATE -Param1 = DIALING
LINE_CALLSTATE -Param1 = PROCEEDING
LINE_CALLSTATE -Param1 = RINGBACK
Call on CTI Remote Device :
LINE_APPNEWCALL
LINE_CALLSTATE -Param1 = OFFERING
LINE_CALLSTATE -Param1 = ACCEPTED
Call on Enterprise Phone :
LINE_APPNEWCALL
LINE_CALLSTATE -Param1 = OFFERING
LINE_CALLSTATE -Param1 = ACCEPTED
|
|
After "Delay Before Ringing Timer" expires the call is
offered on Remote Destinations and all Remote Destinations Ring
|
LineGetCallInfo() on call on Device C
|
LineGetCallInfo() success
|
LineCallInfo ::
dwCallerID = 1000
dwCallerIDName = 1000name
dwCalledID = 2000
dwCalledIDName = 2000name
DevSpecific ::
UnicodeCallerPartyName = 1000name
UnicodeCalledPartyName = 2000name
UnicodeConnectedPartyName =
SIP URI Info:
Caller :
[User | Host | Port | TransportType | URI Type] = [100 |
Cisco.com | 0x0 | 0x0 | 0x1]
Called :
[User | Host | Port | TransportType | URI Type] = [drajesh |
Cisco.com | 0x0 | 0x0 | 0x1]
Connected : Empty
ModifiedCallingParty = 1000
ModifiedCalledParty = 2000
ModifiedConnectedID =
|
LineGetCallInfo() on call on Device A/B
|
LineGetCallInfo() success
|
LineCallInfo ::
dwCallerID = 1000
dwCallerIDName = 1000name
dwCalledID = 2000
dwCalledIDName = 2000name
DevSpecific ::
UnicodeCallerPartyName = 1000name
UnicodeCalledPartyName = 2000name
UnicodeConnectedPartyName =
SIP URI Info:
Caller :
[User | Host | Port | TransportType | URI Type] = [100 |
Cisco.com | 0x0 | 0x0 | 0x1]
Called :
[User | Host | Port | TransportType | URI Type] = [drajesh |
Cisco.com | 0x0 | 0x0 | 0x1]
Connected : Empty
ModifiedCallingParty = 1000
ModifiedCalledParty = 2000
ModifiedConnectedID =
|
Answer on any of the Remote Destination
|
Call on C :
LINE_CALLSTATE -Param1 = CONNECTED
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = CONNECTED (active)
Call on Enterprise Phone :
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
|
|
LineGetCallInfo() on call on Device C
|
LineGetCallInfo() success
|
LineCallInfo ::
dwCallerID = 1000
dwCallerIDName = 1000name
dwCalledID = 2000
dwCalledIDName = 2000name
dwConnectedID = 2000
dwConnectedIDName = CTIRD-2000name
DevSpecific ::
UnicodeCallerPartyName = 1000name
UnicodeCalledPartyName = 2000name
UnicodeConnectedPartyName = CTIRD-2000name
SIP URI Info:
Caller :
[User | Host | Port | TransportType | URI Type] = [100 |
Cisco.com | 0x0 | 0x0 | 0x1]
Called :
[User | Host | Port | TransportType | URI Type] = [drajesh |
Cisco.com | 0x0 | 0x0 | 0x1]
Connected :
[User | Host | Port | TransportType | URI Type] = [drajesh |
Cisco.com | 0x0 | 0x0 | 0x1]
ModifiedCallingParty = 1000
ModifiedCalledParty = 2000
ModifiedConnectedID = 2000
|
LineGetCallInfo() on call on Device A/B
|
LineGetCallInfo() success
|
LineCallInfo ::
dwCallerID = 1000
dwCallerIDName = 1000name
dwCalledID = 2000
dwCalledIDName = 2000name
dwConnectedID = 2000
dwConnectedIDName = CTIRD-2000name
DevSpecific ::
UnicodeCallerPartyName = 1000name
UnicodeCalledPartyName = 2000name
UnicodeConnectedPartyName = CTIRD-2000name
SIP URI Info:
Caller :
[User | Host | Port | TransportType | URI Type] = [100 |
Cisco.com | 0x0 | 0x0 | 0x1]
Called :
[User | Host | Port | TransportType | URI Type] = [drajesh |
Cisco.com | 0x0 | 0x0 | 0x1]
Connected :
[User | Host | Port | TransportType | URI Type] = [100 |
Cisco.com | 0x0 | 0x0 | 0x1]
ModifiedCallingParty = 1000
ModifiedCalledParty = 2000
ModifiedConnectedID = 2000
|
LineDrop() for the call on Device A (CTI-RD)
Call on Remote Destination is dropped
|
LineDrop() success
Call on C :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on Enterprise Phone :
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
LINE_CALLSTATE -Param1 = IDLE
|
|
Variation :
Answer the call on Enterprise Phone (B)
LineAnswer() on the call on Device B
Call on Remote Device/Remote Destination drops
|
Call on C :
LINE_CALLSTATE -Param1 = CONNECTED
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on Enterprise Phone :
LINE_CALLSTATE -
Param1 = CONNECTED
|
|
URI Dialing -DVO Call (Outgoing Call Initiation From CTI Remote
Device)
Precondition: same as above usecase
Action
|
TAPI messages
|
TAPI structures
|
LineInitializeEx
|
Lines are Enumerated
|
|
Open all Lines (A, A' and C)
LineOpen() with ExtVer-0x000C0000
|
LineOpen() returns Success
|
|
LineMakeCall on Line-A with DN (C -DN 1000)
|
LineMakeCall() returns RequestID
LINE_REPLY
Param1 = RequestID
Param2 = LINEERR_OPERATION_FAIL_NO_ACTIVE_RD_SET
(0xC0000016)
|
|
Update Remote Destination RD1 "Mobile"on CTI Remote Device A
with IsActive set to true
CiscoLineDevSpecific UpdateRemoteDestination
Req
m_RDNumber = "914086271309"
m_UnicodeRDName = "Mobile"
m_NewRDNumber = "914086271309"
m_activeRD = 0x00000001
|
EVENT = LINE_DEVSPECIFIC
dwParam1 = SLDSMT_LINE_PROPERTY_CHANGED
dwParam2 = LPCT_REMOTE_DESTINATION_INFO (0x00004000)
|
|
LineGetDevCaps() with dwDeviceID = LineDeviceId of Line-A.
|
LineGetDevCaps() returns success
|
LINEDEVCAPS::DevSpecific
dwLineTypes = (0x00000000)
DeviceProtocolType =
DeviceProtocolType_CTI_ REMOTE_DEVICE (0x03)
Remote Destination Info:
unicodeRDName = "Mobile"
RDNumber = "4086271309"
isActiveRD = 0x00000001
unicodeRDName = "Office"
RDNumber = "4089022131"
isActiveRD = 0x00000000
IsMyAppLastToSetActiveRD = 0x00000001
|
LineMakeCall on Line-A with URI of C (DestinationAddress
-1000@cisco.com)
*** Only Remote Destination "Mobile" rings and it rings
immediately as the RD is set Active
*** No Call presented on EP
|
LineMakeCall() success
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = OFFERING
|
|
Answer the first Call on CTI Remote Device:
Answer() on the call on CTIRemote Device(A)
|
LineAnswer() fail with Error LINEEE_OPERATIONUNAVAIL
|
|
LineGetCallInfo() on call on Device A(CTIRD)
|
LineGetCallInfo() success
|
LineCallInfo ::
dwCallerID = 2000
dwCallerIDName = voiceConnect
dwCalledID = 2000
dwCalledIDName = 2000name
DevSpecific ::
UnicodeCallerPartyName =
UnicodeCalledPartyName = 2000name
UnicodeConnectedPartyName =
SIP URI Info:
Caller :
[User | Host | Port | TransportType | URI Type] = empty
Called :
[User | Host | Port | TransportType | URI Type] = [drajesh |
Cisco.com | 0x0 | 0x0 | 0x1]
Connected :
[User | Host | Port | TransportType | URI Type] = empty
ModifiedCallingParty = 2000
ModifiedCalledParty = 2000
ModifiedConnectedID =
|
Once Remote Destination answers the call, call will be
offered on initial dialed number C
Call will be present on Enterprise Phone and call will be
Remote In Use Call
|
Call on C :
LINE_CALLSTATE -Param1 = OFFERING
LINE_CALLSTATE -Param1 = ACCEPTED
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = CONNECTED
LINE_CALLSTATE -Param1 = RINGBACK
Call on Enterprise Phone :
LINE_APPNEWCALL
LINE_CALLSTATE -Param1 = ACCEPTED
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
|
|
C answers the call
LineAnswer() on call on Device-C
|
LineAnswer() success
Call on C :
LINE_CALLSTATE -Param1 = CONNECTED
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = CONNECTED (active)
Call on Enterprise Phone :
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
|
|
LineGetCallInfo() on call on Device C
|
LineGetCallInfo() success
|
LineCallInfo ::
CallReason = UNKNOWN (0x400)
dwCallerID = 2000
dwCallerIDName = 2000name
dwCalledID = 1000
dwCalledIDName = 1000name
dwConnectedID = 2000
dwConnectedIDName = CTIRD-2000name
DevSpecific ::
ExtendedCallReason = CtiReasonMobility(0x021 = 33)
UnicodeCallerPartyName = 2000name
UnicodeCalledPartyName = 1000name
UnicodeConnectedPartyName = 2000name
SIP URI Info:
Caller :
[User | Host | Port | TransportType | URI Type] = [drajesh |
Cisco.com | 0x0 | 0x0 | 0x1]
Called :
[User | Host | Port | TransportType | URI Type] = [100 |
Cisco.com | 0x0 | 0x0 | 0x1]
Connected :
[User | Host | Port | TransportType | URI Type] = [drajesh |
Cisco.com | 0x0 | 0x0 | 0x1]
ModifiedCallingParty = 2000
ModifiedCalledParty = 1000
ModifiedConnectedID = 2000
|
LineGetCallInfo() on call on Device A/B
|
LineGetCallInfo() success
|
LineCallInfo ::
dwCallerID = 2000
dwCallerIDName = 2000name
dwCalledID = 2000
dwCalledIDName = 2000name
dwConnectedID = 1000
dwConnectedIDName = 1000name
DevSpecific ::
CallAttributeType = TSPCallAttribute_DVOCall (0x00002000)
UnicodeCallerPartyName = 2000name
UnicodeCalledPartyName = 2000name
UnicodeConnectedPartyName = 1000name
SIP URI Info:
Caller :
[User | Host | Port | TransportType | URI Type] = [drajesh |
Cisco.com | 0x0 | 0x0 | 0x1]
Called :
[User | Host | Port | TransportType | URI Type] = [drajesh |
Cisco.com | 0x0 | 0x0 | 0x1]
Connected :
[User | Host | Port | TransportType | URI Type] = [1000 |
Cisco.com | 0x0 | 0x0 | 0x1]
ModifiedCallingParty = 2000
ModifiedCalledParty = 2000
ModifiedConnectedID = 1000
|
LineDrop() for the call on Device A (CTI-RD)
|
LineDrop() success
Call on C :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on CTI Remote Device :
LINE_CALLSTATE -Param1 = DISCONNECTED
LINE_CALLSTATE -Param1 = IDLE
Call on Enterprise Phone :
LINE_CALLSTATE -
Param1 = CONNECTED
Param2 = 0x02 (Inactive)
LINE_CALLSTATE -Param1 = IDLE
|
|
Variation :
Test the same with CSF Device in Extend Mode
|
Expected result would be same as observed on CTI Remote
Device
|
|