Session Title Goes Here - Solution Partner Program

Unified Communications Manager
TAPI Interface Update
for releases 8.6(x) & 9.0
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Housekeeping
 We value your feedback- don't forget to complete your online session
evaluations after each session & the Overall Conference Evaluation which
will be available online from Thursday
 Visit the World of Solutions and Meet the Engineer
 Visit the Cisco Store to purchase your recommended readings
 The following content is protected under our Master Cisco Developer
Partner Not-to-Disclose Agreement
 Use of recording devices is not permitted
 Please set your mobile devices to vibrate/silent
 Get ready for an exciting session After the event don’t forget to visit Cisco
Live Virtual: www.ciscolivevirtual.com
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Required GAAP Reconciliation
and Forward-Looking Statements
 The Cisco products, service or features identified in this document may
not yet be available or may not be available in all areas and may be
subject to change without notice. Consult your local Cisco business
contact for information on the products or services available in your area.
You can find additional information via Cisco’s World Wide Web server at
http://www.cisco.com. Actual performance and environmental costs of
Cisco products will vary depending on individual customer configurations
and conditions.
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
New Cisco TAPI features
Unified CM 8.6(2)
 Cisco application support for CTI and JTAPI over WAN topologies
Unified CM 9.0(1)
 User-based Selective Recording
 Native Call Queuing
 Hunt List Connected Party
 Cisco Extend & Connect
 Directory URI Dialing
 Calling Party Normalization
 Cius Session Persistency
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Cisco CTI over WAN
Test cases, Calculations, & Topologies
Supported in release Unified CM 8.6(2)
Testing completed 12/2011
Supported in 8.6(2), but not documented in 8.6(x) release notes
Included in document plan for 9.0(1)
CTI Application Owners
Disclaimer
 Cisco has completed testing to support CTI Manager and CTI client (J/TAPI) over the
WAN topologies beginning with Unified CM 8.6(2).
 Tolerance for WAN topologies vary by application.
 CTI Application Owners and Vendors must test and validate Initialization, Failover, and
Failback over WAN scenarios to ensure proper application operation.
 Application owners must provide guidance as to:
1. CTI and J/TAPI over WAN topologies supported
2. Network bandwidth required
3. Initialization, failover, failback performance recovery times
 Application specific requirements should be added to the performance results provided
by Cisco to determine total expected application performance
 Open a case with Cisco Developer Services if additional information or assistance is
needed
http://developer.cisco.com/web/devservices
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Over the WAN Topology Test Cases
CTI over the WAN
SITE 1
J/TAPI
CTI
Subscriber
Application running CTIM
80ms RTT
Max Delay
SITE 2
SIP/SCCP
Subscriber
running CCM
CTI controlled
device
J/TAPI over the WAN
SITE 1
J/TAPI
CTI
Application
CiscoLive12
SITE 2
SIP/SCCP
80ms RTT
Max Delay
© 2012 Cisco and/or its affiliates. All rights reserved.
Subscriber
running
CTIM + CCM
CTI controlled
device
Cisco Developer Network - Partner NDA
CTI over WAN Test Case & Details
Topology:
 Site 1: CTI Application and Subscriber node running CTIMgr
 Site 2: Subscriber node with associated devices
 Network latency: 80ms maximum delay between sites (round-trip)
 Test case: 10,000 devices, 5 lines/device, device BHCA 6, using 7845-H3/I3 (1 node)
 CTI Bandwidth Calculation
‒ CTI devices originating and/or terminating calls
‒ Unified CM 8.5(x) (or earlier): Total BW (Mbps) for CTI = (Total BHCA)/10,000*1.25
‒ Unified CM 8.6(2) (or later):
Total BW (Mbps) for CTI = (Total BHCA)/10,000)*0.53
‒ Does not include ICC traffic or per call bandwidth
‒ Refer to the Unified Communications Deployment Models chapter in the 8.x SRND – Cluster Over WAN
section for guidance on calculating both ICCS Bandwidth and Per Call Bandwidth based on codec.
http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/srnd/8x/models.html
MANDATORY CONSIDERATIONS:
 Application owners must test and validate Initialization, Failover, and Failback scenarios to ensure
proper application operation
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
CTI over WAN – Initialization & Failover time
 1 Node: 10,000 devices, 5 lines/device, device BHCA 6, 7845-H3/I3
Roundtrip WAN delay
(RTT)
0 ms
40 ms
80 ms
CTI over WAN
Total initialization time
00:04:25
00:04:38
00:04:50
 CTI messages exchanged during initialization
‒ 1 message always required: DeviceLineFetch (local messaging)
‒ 3 messages per Device:
OpenRequest, OpenResponse, InService (2 of 3 msgs are over WAN)
‒ 3 messages per Line per Device:
OpenRequest, OpenResponse, InService (2 of 3 msgs are over WAN)
 Time per message exchange based on WAN delay
‒ 10,000 DeviceLineInfoFetch + (3 * 10,000 device msgs) + (3 * 50,000 line msgs) = 190,000 messages
‒
0 ms WAN delay = 4:25 (265,000 ms/ 190,000) = 1.40ms/message
‒ 40 ms WAN delay = 4:51 (291,000 ms/ 190,000) = 1.53ms/message
‒ 80 ms WAN delay = 6:04 (364,000 ms/ 190,000) = 1.92ms/message
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
CTI over WAN – Calculating Initialization Time
Customer with 10,000 devices, 2 lines each
Determine total number of messages exchanged
 CTI messages exchanged during initialization
‒ 10,000 mandatory devices + 3 * 10,000 device msgs +
‒ 3 * 20,000 lines msgs = 100,000 messages
Calculate expected total initialization time
 0 WAN delay = 2 min 20 sec total initialization time
‒ 100,000 messages * 1.40 ms/msg = 140,000 ms or 2:20
 40 WAN delay = 2 min 33 sec total initialization time
‒ 100,000 messages * 1.53ms/msg = 153,000 ms or 2:33
 80 WAN delay = 3 min 12 sec total initialization time
‒ 100,000 messages * 1.92ms/msg = 192,000 ms or 3:12
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
J/TAPI over WAN Test Case & Details
Topology:
 Site 1: CTI Application
 Site 2: Subscriber node running CTIMgr with associated devices
 Network latency: 80ms maximum delay between sites (round-trip)
 Test case: 10,000 devices, 5 lines/device, device BHCA 6, using 7845-H3/I3 (1 node)
 CTI Bandwidth Calculation
‒ CTI devices originating and/or terminating calls
‒ Unified CM 8.5(x) (or earlier): Not available
‒ Unified CM 8.6(2) (or later):
Total BW (Mbps) for CTI = (Total BHCA/10,000)*0.28
‒ Does not include ICC traffic or per call bandwidth
‒ Refer to the Unified Communications Deployment Models chapter in the 8.x SRND – Cluster Over WAN
section for guidance on calculating both ICCS Bandwidth and Per Call Bandwidth based on codec.
http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/srnd/8x/models.html
MANDATORY CONSIDERATIONS:
 Application owners must test and validate Initialization, Failover, and Failback scenarios to ensure
proper application operation
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
J/TAPI over WAN – Initialization & Failover time
 1 Node: 10,000 devices, 5 lines/device, device BHCA 6, 7845-H3/I3
Roundtrip WAN delay
(RTT)
0 ms
40 ms
80 ms
J/TAPI over WAN
Total initialization time
00:04:55
00:58:47
01:51:00
 CTI messages exchanged during initialization
‒ 1 message always required: DeviceLineFetch (1 msg over WAN)
‒ 3 messages per Device:
OpenRequest, OpenResponse, InService (3 of 3 msgs over WAN)
‒ 3 messages per Line per Device:
OpenRequest, OpenResponse, InService (3 of 3 msgs over WAN)
 Time per message exchange based on WAN delay
‒ 10,000 DeviceLineInfoFetch + (3 * 10,000 device msgs) + (3 * 50,000 line msgs) = 190,000 messages
‒
0 ms WAN delay = 4:55 (295,000 ms/190,000) = 1.55ms/message
‒ 40 ms WAN delay = 58:47 (3,527,000 ms/190,000) = 18.56ms/message
‒ 80 ms WAN delay = 1:51:00 (6,660,000 ms/190,000) = 35.05ms/message
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
J/TAPI over WAN - Calculating Initialization Time
Customer with 10,000 devices, 2 lines each
Determine total number of messages exchanged
 CTI messages exchanged during initialization
‒ 10,000 mandatory devices + 3 * 10,000 device msgs +
‒ 3 * 20,000 lines msgs = 100,000 messages
Calculate expected total initialization time
 0 WAN delay = 2 min 35 sec total initialization time
‒ 100,000 messages * 1.55 ms/msg = 155,000 or 2:35
 40 WAN delay = 30 min 56 sec total initialization time
‒ 100,000 messages * 18.56 ms/msg = 1,856,000 or 30:56
 80 WAN delay = 58 min 25 sec total initialization time
‒ 100,000 messages * 35.05 ms/msg = 3,505,000 or 58:25
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Unified CM 8.6(x) Updates
CiscoLive 8.6(1) Updates are posted here:
http://developer.cisco.com/web/cdc/devforumpreso
For 8.6(2) Updates, refer to the Release Notes posted here:
http://www.cisco.com/en/US/products/sw/voicesw/ps556/prod_release_notes_list.html
Unified CM 9.0(1) (Q2CY2012)
TAPI New/Changed Features
User-based Selective Recording
User-based Selective Recording
What does it do?
 Enables the End-User to record
the ‘Active’ call on their own
device
 Provides visual display message
indicating when a recording
session has started
 Button toggles to start/stop
recording
 Available as new Softkey and
Programmable Line Key (based
on device model)
 Works with Cisco MediaSense
and 3rd-party recording solutions
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
User-based Selective Recording
 Applications can specify recording session type ‘silent’ or ‘user’ upon
invocation
 TAPI application should negotiate new Extension Version - 0x000C0000
to use this feature
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
User-based Selective Recording
Backward compatibility
 Works with existing call recording options and events
 Applications will compile and run with existing API calls and enumeration
values
 Invocating recording without specifying recording session type will default
to silent recording (existing behavior)
 Existing constants can still be used, but they have been deprecated
starting with release 9.0(1). Applications are encouraged to update their
code to use the new constants
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Selective Recording Interface Changes
 Unified CM Line recording configuration is exposed to TAPI applications
in the devSpecific portion of the LINEDEVCAPS structure as follows:
enum RecordingConfigurationType {
RecordingConfigurationType_NoRecording
= 0,
RecordingConfigurationType_AutomaticRecording = 1,
RecordingConfigurationType_SelectiveRecording = 2
};
 The new RecordingConfigurationType replaces the existing recordType
 recordType enumeration can still be used for backward compatibility
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Selective Recording Interface Changes
 A new “Recording Invocation Type” parameter is added to methods:
CCiscoLineDevSpecificStartCallRecording() and
CCiscoLineDevSpecificStopCallRecording()
 Valid parameter values are defined as:
enum RecordingInvocationType {
RecordingInvocationType_SilentRecording = 1,
RecordingInvocationType_UserControlledRecording = 2
};
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Selective Recording Interface Changes
 “Call Attribute Type” which is exposed to applications in devSpecific
portion of TAPI LINECALLINFO structure is extended with the following
new values:
enum CallAttributeType {
...
CallAttribute_Recorded_Automatic ,
CallAttribute_Recorded_AppInitiatedSilent,
CallAttribute_Recorded_UserInitiatedFromApp,
CallAttribute_Recorded_UserInitiatedFromDevice
};
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Selective Recording Interface Changes
 New error codes:
LINEERR_RECORDING_INVOCATION_TYPE_NOT_MATCHING
LINEERR_RECORDING_CONFIG_NOT_MATCHING
LINEERR_NO_RECORDING_SESSION
LINEERR_RECORDING_SESSION_INACTIVE
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Native Call Queuing
Native Call Queuing
 Queue (hold) callers while they
wait for an employee to become
available
 Play Announcements & Music in
Queue
“Thank you for calling”
“Please hold a moment”
“Your call will be answered in the
order in which it was received”
 Longest call waiting distribution
 Login/logout of queues and view
queue information on Cisco IP
Phones
 Enhanced call detail records and
monitoring tools
 Enhances Unified CM Hunt
Group feature
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Unified CM
Subscriber
Cisco Developer Network - Partner NDA
Native Call Queuing
 Cisco TSP exposes new extended call reasons - CallQueueing (0x2D)
and CallDeQueueing (0x2E) in the devSpecific portion of the TAPI
LINECALLINFO structure
 CallQueueing reason is reported on the calling party when call is queued
 CallDeQueueing reason is reported when call is de-queued and offered to
a hunt group member
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Native Call Queuing
 When call is queued the ConnectedHuntPilotDN information is not shown
for the calling party
 ConnectedHuntPilotDN is updated when the call is de-queued and
answered (connected state) by the hunt group member.
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Hunt List Connected Party
Hunt List Connected Party
 New service parameter available in Unified CM 9.0 toggles the Called
Party (Connected Address) information from Hunt Pilot DN to Hunt
Member DN
 New Service Parameter: “Display Line Group Member DN as Connected
Party” is found under Hunt Pilot Configuration
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Hunt List Connected Party
Feature Details
 With the service parameter enabled the ModifiedConnectedParty field in
the devSpecific portion of TAPI LINECALLINFO structure will indicate the
hunt group member (DN) who answered the call
 With the service parameter disabled the field will indicate the hunt pilot
number (DN)
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Cisco Extend & Connect
Cisco Extend & Connect
 Enables the User to work from any location on any device
 PSTN phones (Home/Hotel)
 3rd party PBX devices
 Enterprise numbers can be configured with remote destinations which
represent phones (Home, Hotel, Mobile, or 3rd-party devices)
 Works with Jabber/CSF and new CTI Remote Device types
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Cisco Extend & Connect
CTI client Call Modes
 Phone Control “Use my Phone for calls” – Client controls Cisco IP Device
 Soft phone “Use my PC for calls” – Client terminates media on PC
 Extend & Connect (New) – “Use the following phone number for calls” –
specified as a Remote Destination
‒ Incoming calls are routed to the Remote Destination.
Outbound calls first ring at the Remote Destination, then are connected to the
desired number.
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Cisco Extend and Connect
Architecture & Call Flow
CTI
Cisco
CTI
client
Enterprise DN: 3000
Jabber in Extend/Connect Mode
Office 3000
Remote Destination:
4083333333
Home
4083333333
PSTN
Mobile
9724444444
Cisco User
CiscoLive12
PBX
9195555555
Remote Destination:
9724444444
Remote Destination:
9195555555
Any 3rd
Party PBX
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
CTI Client Extend Mode
 Remote Destinations represent off-cluster devices and may be configured via Unified CM
Administration & User web pages, AXL, BAT, and/or CTI interfaces
‒ Up to four Remote Destinations are supported per Jabber device
 When Extend mode is selected, the User specifies a preferred number where they desire
to receive inbound- and place outbound calls or selects a number from a pre-configured
list of remote destinations
‒ The preferred number is configured as a Remote Destination and is set as ‘Active’ by the CTI client
 Called party sees User’s work name/number for caller ID
 The Remote Destination is marked ‘Inactive’ when the User logs out or the client is
shutdown
 Mid-call features are supported using the CTI client
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Enabling CTI Remote Devices
 New CTI Remote Device type configurable in Unified CM for use with 3rdparty CTI desktop clients
 CTI Remote Devices are added to User’s controlled device list for CTI
control and monitoring
 Up to 5 enterprise DNs can be assigned to the device
 Up to 10 remote destinations can be associated using Admin/User web UI
(default maximum is 4)
‒ Applications can programmatically add or remove remote destinations through CTI or
AXL interfaces
 Pre-configured remote destinations in Unified CM can be retrieved via CTI
 Adding Remote Destination management to the CTI client is optional
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
CTI Remote Device support
Requirements
 The CTI client must support the ability to set a Remote Destination as
‘Active’/’Inactive’
 Media events for the DVO call to the remote destination are not supported
 The Remote Destination is automatically marked ‘Inactive’ when the client is
shutdown
 The client should set the remote destination to ‘Inactive’ during a logout event
 Mid-call features are supported using existing CTI interfaces
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Cisco Extend & Connect
Supported features
 Receive Incoming enterprise calls
 MakeCall (DVO-Reverse)
 Disconnect
 Hold/Retrieve
 Redirect/Forward
 Call Forward All
 Do Not Disturb
 Consult Transfer, Conference
 Add/Remove/Update Remote Destinations
 Set Remote Destination as ‘Active’/’Inactive’
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Remote Destination Management
 Remote Destinations can be configured via Unified CM web
administration or CTI application
 Cisco TSP exposes new methods to add, update and remove a remote
destination
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Remote Destination Management
Add a Remote Destination
class CciscoLineDevSpecificAddRemoteDestination: public CCiscoLineDevSpecific
{
public:
CciscoLineDevSpecificAddRemoteDestination() :
CCiscoLineDevSpecific(SLDST_ADD_REMOTE_DESTINATION)
{}
virtual ~ CciscoLineDevSpecificAddRemoteDestination(
{}
char
m_RDNumber [MAX_CTI_LINE_DIR_SIZE];
wchar_t m_UnicodeRDName[MAX_CTI_RD_UNICODE_DISPLAY_STRING]; DWORD
m_ActiveRD;
virtual DWORD dwSize(void) const {
return sizeof(*this) - sizeof(void*);
} // subtract out the virtual function table pointer
};
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Remote Destination Management
Update a Remote Destination
class CciscoLineDevSpecificUpdateRemoteDestination: public CCiscoLineDevSpecific
{
public:
CciscoLineDevSpecificUpdateRemoteDestination() :
CCiscoLineDevSpecifi(SLDST_UPDATE_REMOTE_DESTINATION)
{}
virtual ~ CciscoLineDevSpecificUpdateRemoteDestination()
{}
char
m_RDNumber [MAX_CTI_LINE_DIR_SIZE];
wchar_t m_UnicodeRDNam[MAX_CTI_RD_UNICODE_DISPLAY_STRING];
char
m_NewRDNumber [MAX_CTI_LINE_DIR_SIZE];
DWORD m_ActiveRD;
virtual DWORD dwSize(void) const {
return sizeof(*this) - sizeof(void*);
} // subtract out the virtual function table pointer
};
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Remote Destination Management
Remove a Remote Destination
class CciscoLineDevSpecificRemoveRemoteDestination: public
CCiscoLineDevSpecific
{
public:
CciscoLineDevSpecificRemoveRemoteDestination() :
CCiscoLineDevSpecific(SLDST_REMOVE_REMOTE_DESTINATION
{}
virtual ~ CciscoLineDevSpecificRemoveRemoteDestination()
{}
char
m_RDNumber [MAX_CTI_LINE_DIR_SIZE];
virtual DWORD dwSize(void) const {
return sizeof(*this) - sizeof(void*);
} // subtract out the virtual function table pointer
};
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Active/Inactive Remote Destination
 CTI client must specify one of the configured Remote Destinations as
“active” to initiate DVO calls
 Only one remote destination can be set as “active” at any given time.
 If a remote destination is active, incoming calls will only be extended to
that remote destination and not to other configured remote destinations.
 TAPI application can set Remote Destination as “active” or “inactive” when
Remote Destination is added or updated:
CciscoLineDevSpecificUpdateAddDestination
CciscoLineDevSpecificUpdateRemoteDestination
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Active/Inactive Remote Destination
 ‘Active’ remote destination is automatically deactivated when the
application is shutdown
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
TSP Support for CTI Remote Device
 In order to use CTI Remote Devices TAPI application should negotiate
new Extension Version - 0x000C0000
 Cisco TSP will enumerate and expose TAPI Lines for CTI Remote Device
 New “Line Type” is added and exposed in devSpecific portion of TAPI
LINEDEVCAPS structure to identify lines on Remote Device:
LINEDEVCAPSDEVSPECIFIC_REMOTEDEVICE (0x00000008)
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
TSP Support for CTI Remote Device
 The devSpecific portion of TAPI LINEDEVCAPS is extended as follows:
typedef struct Cisco_LineDevCaps_Ext000C0000 {
DWORD DeviceProtocolType;
DWORD RemoteDestinationOffset; //Array of Remote Destinations
DWORD RemoteDestinationSize;
DWORD RemoteDestinationCount;
DWORD RemoteDestinationElementFixedSize;
DWORD IsMyAppLastToSetActiveRD;
} CISCO_LINEDEVCAPS_EXT000C0000;
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
TSP Support for CTI Remote Device
 DeviceProtocolType can be one of the following:
enum DeviceProtocolType {
DeviceProtocolType_None = 0,
DeviceProtocolType_SCCP = 1,
DeviceProtocolType_SIP
= 2,
DeviceProtocolType_CTI_REMOTE_DEVICE = 3
};
 Remote Destinations are exposed as array of RemoteDestination
structures:
‒ typedef struct RemoteDestination {
‒ DWORD unicodeRDNameOffset;
‒ DWORD unicodeRDNameSize;
‒ DWORD RDNumberOffset;
‒ DWORD RDNumberSize;
‒ DWORD isActiveRD;
‒ } RemoteDestination;
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
TSP Support for CTI Remote Device
 IsMyAppLastToSetActiveRD is applicable only when there is an active
Remote Destination
 It has to be set to 0x01 by an application when one of its Remote
Destinations is active and the application owns it. Otherwise it should be
set to 0x00.
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
TSP Support for CTI Remote Device
 “Property Changed Type” which is used in LINE_DEVSPECIFIC events to
indicate what property has changed is extended with the following new
values:
enum CiscoLinePropertyChangedType {
...
LPCT_REMOTE_DESTINATION_INFO = 0x00004000,
LPCT_DEVICE_PROTOCOL_TYPE
= 0x00008000
};
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
CTI Remote Device – Incoming Call
 Like on all other devices, call and call events are reported using existing
LINE_NEWCALL and LINE_CALLSTATE TAPI events
 Call is offered on both EP Line and Remote Device (CTI RD and EP
“Enterprise Device” are shared lines)
 If there is an active Remote Destination (isActiveRD flag is set to 0x01)
call will be offered to that destination only
 If there is no active Remote Destination (all isActiveRD flags are set to
0x00) call will be offered to all Remote Destinations
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
CTI Remote Device – DVO Call
 DVO (Dial via Office) feature enables the User to make outgoing calls
from the ‘Active’ Remote Destination configured on the CTI Remote
Device
 TAPI application has to use lineMakeCall() API to initiate DVO call from
CTI Remote Device
 DVO call can be initiated from CTI Remote Device only when there is an
‘active’ Remote Destination set
 When an active Remote Destination is set, ‘isActiveRD’ flag is set to 0x01
 If an ‘active’ Remote Destination is not set, all ‘isActiveRD’ flags are set
to 0x00. Incoming calls are then offered to all Remote Destinations.
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
CTI Remote Device – DVO Call
 CallAttributeBits enumeration which is exposed to applications in
devSpecific portion of TAPI LINECALLINFO structure is extended with a
new value to indicate DVO calls:
typedef enum {
...
TSPCallAttribute_DVOCall
} CallAttributeBits;
CiscoLive12
=
0x00002000
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Directory URI Dialing
Directory URI Dialing
Single Cluster & Shared Lines
1
2
[email protected]
Ext 35101
dials [email protected]
UCM Cluster 1
route: sjc.cisco.com
3
[email protected], 35101
[email protected], 35123
Shared
Line
4
CiscoLive12
[email protected]
Ext 35123
© 2012 Cisco and/or its affiliates. All rights reserved.
Chris
Ext 35123
4
Cisco Developer Network - Partner NDA
Directory URI Dialing
 Applications can now pass a Directory URI as the dialing string
in the following APIs:
 lineMakeCall()
 lineRedirect()
 lineSetupConference()
 lineSetupTransfer()
 lineUnpark()
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Calling Party Normalization
Calling Party Normalization
 Unified CM 7.0(1) introduced a Calling Party Normalization feature to
localize the presentation of the number to the Called Party. The feature
did not support transferred calls.
 Unified CM 9.0(1) extends feature support for transferred calls.
 After a transfer operation is completed, the Called Party in the consult call
will see the localized number of the Calling Party in the primary call.
 The original number is stored in the existing GlobalizedCallingParty field
in the devSpecific portion of lineCallInfo that was introduced in Unified CM
7.0(1).
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Calling Party Normalization
Old Behavior:
 A(+12345) calls B
CTI app monitoring B sees “0012345” as the calling party (localized)
 B transfers call to C:
CTI app monitoring C sees “+12345” as the calling party (not localized)
New Behavior:
 A(+12345) calls B:
CTI app monitoring B sees “0012345” as the calling party (localized)
 B transfers call to C:
CTI app monitoring C sees “0012345” as the calling party (localized)
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Cius Session Persistency
Cius Session Persistency
 Cius devices can dynamically change IP addresses while remaining
registered to Unified CM
‒ Examples include: Roaming between different Wifi/3G/4G networks and
docking/undocking
 CTI applications interoperating with Cius devices need a new way to be
advised about Cius dynamic IP address changes
10.10.10.254
CiscoLive12
10.10.20.254
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Cius Session Persistency
 Whenever the IP address of a device changes dynamically TAPI
applications which control the device will be notified
 In order to receive IP address change notifications TAPI Application
should negotiate Extension Version - 0x00090001 or higher
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Cius Session Persistency
 On a device IP address change TAPI application receives
PHONE_DEVSPECIFIC event as follows:
param1 = PDSMT_PHONE_PROPERTY_CHANGED_EVENT
param2 = PPCT_DEVICE_IPADDRESS
 Changed IP Address and IP Addressing Mode (IPv4, IPv6) are exposed to
applications in the devSpecific portion of the TAPI PHONEDEVCAPS
structure
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Cius Session Persistency
 On a device IP address change for each line on that device TAPI
application receives LINE_DEVSPECIFIC event as follows:
param1 = SLDSMT_LINE_PROPERTY_CHANGED
param2 = LPCT_DEVICE_IPADDRESS
 Changed IP Address and IP Addressing Mode (IPv4, IPv6) are exposed to
applications in the devSpecific portion of the TAPI LINEDEVCAPS
structure
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Cisco TSP on the web
 Developer guides, sample applications, and forum support are available
on the Cisco Developer Network
 http://developer.cisco.com/web/tapi/home
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Questions?
Complete Your Online
Session Evaluation
 Give us your feedback and you could
win fabulous prizes.
Winners announced daily.
 Receive 20 Passport points for each
session evaluation you complete.
 Complete your session evaluation
online now (open a browser through
our wireless network to access our
portal) or visit one of the Internet
stations throughout the Convention
Center.
CiscoLive12
Don’t forget to activate your
Cisco Live Virtual account for access to
all session material, communities, and
on-demand and live activities throughout
the year. Activate your account at the
Cisco booth in the World of Solutions or visit
www.ciscolive.com.
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
67
Presentation_ID
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Public