Unified Communications Manager
JTAPI Interface Update
for releases 8.6(x) & 9.0
George Gary, Product Manager
Joseph Moskie, JTAPI Engineer
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
Agenda
 Cisco application support for CTI and JTAPI over WAN topologies
 JTAPI 9.0 New & Changed details
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)
JTAPI New/Changed Features
New Cisco JTAPI features
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
 JTAPI Peer Options
 Cius Session Persistency
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
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
 Backward compatibility
 Works with existing call recording options and events
 Invocating recording without specifying type will default to silent (existing behavior)
 Recording constants have changed (see next slide)
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
User-based Selective Recording
 Some JTAPI recording constants are changed
 Two existing values have been deprecated
 One value has been added to replace them
 See next slide for specifics
 Applications will compile and run with old values
 Deprecated values are still available, nothing will break
 Constant - DEVICE_CONTROLLED_RECORDING will no longer be sent to
application
 Applications encouraged to update their code
 Move away from old constants to the new one when upgrading to 9.0+
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Selective Recording Interface Changes
CiscoAddress
 Constants
‒ APPLICATION_CONTROLLED_RECORDING (deprecated)
‒ DEVICE_CONTROLLED_RECORDING (deprecated)
‒ SELECTIVE_RECORDING (NEW)
Replaces deprecated constants
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Selective Recording Interface Changes
CiscoTerminalConnection
Constants
‒ RECORDING_INVOCATION_TYPE_SILENT
Represents a “silent” recording. Recording status messages will not be displayed on the
Cisco IP device
‒ RECORDING_INVOCATION_TYPE_USER
Represents a “User” recording. Messages indicating recording status will be displayed on the
Cisco IP device
Methods
‒ startRecording(int playToneDirection, int invocationType)
New method that allows applications to specify recording invocation type as defined above
‒ stopRecording(int invocationType)
New method that allows applications to specify a recording invocation type as defined above
CiscoLive12
Invocation type of stop request must match the invocation type used to start the recording
session
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Selective Recording Interface Changes
CiscoRecorderInfo
 Methods
‒ getRecordingType()
New method that returns the recording type for a given RecorderInfo
Range of values is defined as constants on CiscoCall (see next slide)
RecorderInfo object can be obtained from a CiscoCall object
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Selective Recording Interface Changes
CiscoCall
 Constants - The following constants can be used to determine the type of recording session for
a call
‒ CALL_RECORDING_TYPE_NONE
No recording session for the call
‒ CALL_RECORDING_TYPE_APPLICATION_INITIATED_SILENT
Returned when an application invokes recording with invocation type “silent”
‒ CALL_RECORDING_TYPE_AUTOMATIC
Returned when the recording was set up automatically by Unified CM
‒ CALL_RECORDING_TYPE_USER_INITIATED_FROM_APPLICATION
Returned when an application invokes recording with invocation type “user”
‒ CALL_RECORDING_TYPE_USER_INITIATED_FROM_DEVICE
Returned when recording is started using a device key
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Selective Recording Interface Changes
CiscoJtapiException
 Constants
‒ The following constants are error codes
‒ CTIERR_RECORDING_INVOCATION_TYPE_NOT_MATCHING
Error code is used when application attempts to stop a recording, but supplies an invalid
invocation type
Examples include:
Invocation type specified does not exist/unknown
Stop invocation type does not match Start invocation type
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 JTAPI will expose two new reason codes
‒ CiscoFeatureReason.REASON_QUEUING
‒ CiscoFeatureReason.REASON_DEQUEUING
 When a call gets queued, a new connection is created for a number which
is same as that of the hunt pilot and it is moved to
CallCtlConnection.QUEUED state
‒ The reason for the related events will be
CiscoFeatureReason.REASON_QUEUING
 When a call is de-queued and offered to a hunt member, the queued
connection will be dropped and connections for the hunt member and
hunt pilot will be created
‒ The reason for the related events will be
CiscoFeatureReason.REASON_DEQUEUING
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
 No change in Cisco JTAPI Interface
 With this feature enabled Call.getModifiedCalledAddress() returns the
Address object of the Hunt Member who answered the call
 With this feature disabled Call.getModifiedCalledAddress() returns the
Address object of the Hunt Pilot
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
Add, Update, Delete
 Remote Destinations must be configured via Unified CM web administration or CTI client
 CTI client may configure a remote destination using the new CiscoRemoteTerminal
interfaces
 Add a Remote Destination
‒ CiscoRemoteTerminal - public void addRemoteDestination (String remoteDestinationName, String
remoteDestinationNumber, boolean isActiveRD)
 Update a Remote Destination
‒ CiscoRemoteTerminal - public void updateRemoteDestination (String remoteDestinationNumber, String
remoteDestinationName, String newRemoteDestinationNumber, boolean isActiveRD)
 Delete a Remote Destination
‒ CiscoRemoteTerminal - public void removeRemoteDestination (String remoteDestinationNumber)
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Active/Inactive Remote Destinations
 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.
 Set Remote Destination as Active
‒ CiscoRemoteTerminal - public void setActiveRemoteDestination (String
remoteDestinationNumber, boolean isActiveRD)
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Active/Inactive Remote Destinations
 ‘Active’ remote destinations are automatically deactivated when the client is shutdown
 To determine which CTI client last configured the active Remote Destination, use:
‒ CiscoRemoteTerminal - public boolean isMyAppLastToSetActiveRD()
 To retrieve Remote Destinations use:
‒ CiscoRemoteTerminal - public CiscoRemoteDestinationInfo[] getAllRemoteDestinations()
‒ CiscoRemoteTerminal - public CiscoRemoteDestinationInfo[] getActiveRemoteDestinations()
‒ CiscoRemoteDestinationInfo - public String getRemoteDestinationName()
‒ CiscoRemoteDestinationInfo - public String getRemoteDestinationNumber()
‒ CiscoRemoteDestinationInfo - public boolean getIsActiveRD()
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Active/Inactive Remote Destinations
 Remote Destination changes are presented using:
 CiscoProvTerminalRemoteDestinationChangedEv:
‒ public CiscoRemoteTerminal getTerminal()
‒ public CiscoRemoteDestinationInfo[] getRemoteDestinations()
‒ public boolean isMyAppLastToSetActiveRD()
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
CTI Remote Device
Call Feature interaction
 Outbound DVO calls require one Remote Destination to be set as ‘Active’
 To place DVO outbound call, use the same Call.Connect interface as usual.
 CTI applications will not receive media events for CTI Remote Devices
 Shared Lines on Cisco IP Phone and CTI Remote Devices behave differently. If call is
answer on Cisco IP phone, the terminal connection to the CTI Remote Device is dropped
automatically
 Mid call features such as Hold/Resume, Consult, Transfer, etc. are all supported using
existing CTI interfaces (no changes from release 8.x).
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
CTI Remote Device
 Returns all CTI Remote Devices in application control list
‒ CiscoProvider:
‒ public CiscoRemoteTerminal[] getRemoteTerminals()
‒ public CiscoRemoteTerminal getRemoteTerminal(String name)
 New protocol type returned for CTI Remote Device
‒ CiscoTerminalProtocol (with new protocol type):
‒
CiscoLive12
PROTOCOL_CTI_REMOTE_DEVICE
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
CTI Remote Device - CiscoJtapiException
 CTIERR_INVALID_REMOTE_DESTINATION_NUMBER
 CTIERR_DUPLICATE_REMOTE_DESTINATION_NUMBER
 CTIERR_REMOTEDESTINATION_LIMIT_EXCEEDED
 CTIERR_REMOTE_DEVICE_REQUEST_FAILED_ACTIVE_RD_NOT_SET
 CTIERR_ENDUSER_NOT_ASSOCIATED_WITH_DEVICE
 CTIERR_DEVICE_ALREADY_REGISTERED_NONEXTEND
 CTIERR_MEDIA_ALREADY_TERMINATED_EXTEND
 CTIERR_INVALID_REMOTE_DESTINATION_NAME
CiscoLive12
© 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
john@cisco.com
Ext 35101
dials chris@cisco.com
UCM Cluster 1
route: sjc.cisco.com
3
john@cisco.com, 35101
chris@cisco.com, 35123
Shared
Line
4
CiscoLive12
chris@cisco.com
Ext 35123
© 2012 Cisco and/or its affiliates. All rights reserved.
Chris
Ext 35123
4
Cisco Developer Network - Partner NDA
Directory URI Dialing
New & Changed
 No change in Cisco JTAPI Interface
 Applications can now pass a Directory URI as the dialing string
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.
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Calling Party Normalization
Translation pattern is configured to transform “+” to “00”
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
JTAPI Peer Options
JTAPI Peer Options
Feature Description
 Today, the CiscoJtapiProperies object is static which limits the ability to
configure different peer settings
‒ One Peer instance is created for the entire JVM
 The vast majority of JTAPI applications only use one Peer object
‒ One Peer can have multiple Providers
‒ When an application invokes JtapiPeer.getProperties(), the same object is returned
 Unified CM 9.0(1) introduces the ability to configure multiple Peers
differently to better meet Customer needs
‒ Writing individual peer logs to different directories aids troubleshooting
‒ Setting timeout variables differently based on network topology
‒ Enabling different features based on User needs and Application capabilities
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
JTAPI Peer Options
Interface Changes
 New jtapi.ini parameter to enable
‒ UniqueJTAPIPropertiesPerPeer=1
‒ Can be Enabled (1) or Disabled (0)
‒ Disabled (0) provides one static object (default)
 Almost no new APIs for this feature
‒ CiscoJTAPIProperties
getUniqueJTAPIPropertiesPerPeer() returns the current state of the ini parameter
‒ There is no setter for this!
This configuration is loaded at startup and cannot be changed once a Peer is created
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
JTAPI Peer Options
Important Notes
 Feature is backward compatible, existing applications are unaffected
‒ Default ini parameter is disabled
 Changes to logging with ini parameter enabled
‒ Each Peer will write to its own log file
Please remember that one Peer can have multiple JTAPI Providers
‒ This is different from today, where all Peers write to the same file
‒ Applications with multiple Peers should set different log configurations to aid
troubleshooting
Each Peer should have its own base file name or path to prevent multiple peers from using the
same filenames and overwrite each other
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
New provider Event
 CiscoProvTerminalIPAddressChangedEv
 Delivered to the provider observer
 Delivered whenever the IP address of a device changes dynamically (e.g.
while maintaining its ‘registered’ status)
CiscoLive12
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Developer Network - Partner NDA
Cius Session Persistency
 Methods exposed on CiscoProvTerminalIPAddressChangedEv
‒ public Terminal getTerminal()
‒ public int getIPAddressingMode()
‒ Public InetAddress getIPV4Address()
‒ public InetAddress getIPV6Address()
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
63
Presentation_ID
© 2012 Cisco and/or its affiliates. All rights reserved.
Cisco Public