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