Professional Documents
Culture Documents
0(1)
Americas Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com Tel: 408 526-4000 800 553-NETS (6387) Fax: 408 527-0883
THE SPECIFICATIONS AND INFORMATION REGARDING THE PRODUCTS IN THIS MANUAL ARE SUBJECT TO CHANGE WITHOUT NOTICE. ALL STATEMENTS, INFORMATION, AND RECOMMENDATIONS IN THIS MANUAL ARE BELIEVED TO BE ACCURATE BUT ARE PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USERS MUST TAKE FULL RESPONSIBILITY FOR THEIR APPLICATION OF ANY PRODUCTS. THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION PACKET THAT SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY. The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of California, Berkeley (UCB) as part of UCBs public domain version of the UNIX operating system. All rights reserved. Copyright 1981, Regents of the University of California. NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS ARE PROVIDED AS IS WITH ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THIS MANUAL, EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. CCDE, CCENT, Cisco Eos, Cisco Lumin, Cisco Nexus, Cisco StadiumVision, the Cisco logo, DCE, and Welcome to the Human Network are trademarks; Changing the Way We Work, Live, Play, and Learn is a service mark; and Access Registrar, Aironet, AsyncOS, Bringing the Meeting To You, Catalyst, CCDA, CCDP, CCIE, CCIP, CCNA, CCNP, CCSP, CCVP, Cisco, the Cisco Certified Internetwork Expert logo, Cisco IOS, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Cisco Unity, Collaboration Without Limitation, EtherFast, EtherSwitch, Event Center, Fast Step, Follow Me Browsing, FormShare, GigaDrive, HomeLink, Internet Quotient, IOS, iPhone, iQ Expertise, the iQ logo, iQ Net Readiness Scorecard, iQuick Study, IronPort, the IronPort logo, LightStream, Linksys, MediaTone, MeetingPlace, MGX, Networkers, Networking Academy, Network Registrar, PCNow, PIX, PowerPanels, ProConnect, ScriptShare, SenderBase, SMARTnet, Spectrum Expert, StackWise, The Fastest Way to Increase Your Internet Quotient, TransPath, WebEx, and the WebEx logo are registered trademarks of Cisco Systems, Inc. and/or its affiliates in the United States and certain other countries. All other trademarks mentioned in this document or Website are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (0805R) Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1) Copyright 2002-2008, Cisco Systems, Inc. All rights reserved.
C O N T E N T S
Preface
xv xv xv xvi xvii
Purpose Audience
Organization
Obtaining Documentation, Obtaining Support, and Security Guidelines Cisco Product Security Overview OpenSSL Notice
1
xix xix
xix
CHAPTER
Overview
1-1
JTAPI Overview 1-1 Cisco Unified JTAPI and Contact Centers 1-2 Cisco Unified JTAPI and Enterprises 1-2 Cisco Unified JTAPI Applications 1-3 Jtprefs Application 1-3 Cisco Unified JTAPI Concepts 1-4 CiscoObjectContainer Interface 1-4 JtapiPeer and Provider 1-4 Address and Terminal Relationships 1-6 CiscoConnectionID 1-11 Threaded Callbacks 1-11 CiscoSynchronousObserver Interface Querying Dynamic Objects 1-12 Alarm Services
1-13 1-12 1-13 1-11
Required Software
CHAPTER
2-1
Cisco Unified Communications Manager Release 7.0(1) 2-1 Join Across Lines with Conference Enhancements 2-2 Locale Infrastructure Development 2-3
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1) OL-16702-01
iii
Contents
Do Not DisturbReject 2-4 Calling Party Normalization 2-5 Click to Conference 2-5 Extension Mobility Username Login 2-6 Java Socket Connect Timeout 2-6 selectRoute() with Calling Search Space and Feature Priority Call Pickup 2-7 Cisco Unified Communications Manager Release 6.1 Certificate Download API Enhancement 2-8 Join Across Lines 2-8 Intercom Support for Extension Mobility 2-9
2-7
2-7
Cisco Unified Communications Manager Release 6.0 2-9 Recording and Silent Monitoring 2-10 Intercom 2-12 Arabic and Hebrew Language Support 2-14 Do Not Disturb 2-14 Secure Conferencing 2-15 Cisco Unified IP 7931G Phone Interaction 2-16 Version Format Change 2-17 Calling Party IP Address 2-17 Multilevel Precedence and Preemption Support 2-18 Non-Controller Adding of Parties to Conferences 2-18 Conference Chaining 2-18 Forwarding on No Bandwidth & Unregistered DN 2-19 Directed Call Park 2-20 Voice MailBox Support 2-20 Privacy On Hold 2-21 CiscoRTPHandle Interface on Cisco RTP Events 2-21 Hold Reversion 2-22 Translation Pattern Support 2-22 Calling Party IP Address 2-23 Cisco Unified Communications Manager Release 5.1 2-24 Join Across Lines 2-24 New Error Code in CiscoTermRegistrationFailedEv 2-25 Star (*) 50 Update 2-25 Call Forward Override 2-25 Cisco Unified Communications Manager Release 5.0 Partition Support 2-27 Hairpin Support 2-30
2-26
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1)
iv
OL-16702-01
Contents
QoS Support 2-30 Transport Layer Security (TLS) 2-31 SIP Phone Support 2-37 SIP Phone Support 2-38 Secure Real-Time Protocol Key Material 2-40 SIP REFER/REPLACE 2-47 SIP 3XX Redirection 2-49 Terminal and Address Restrictions 2-50 Unicode Support 2-53 Linux, Windows, and Solaris Installation 2-56 Silent Install 2-57 Command Line Invocation 2-57 JTAPI Client Installer 2-57 JRE 1.2 and JRE 1.3 Support Removal 2-58 Superprovider and Change Notification 2-59 Alternate Script Support 2-61 Half-Duplex Media Support 2-61 Network Alerting 2-63 Auto Updater for Linux 2-63 Call Select Status 2-64 JTAPI Version Information 2-64 Backward Compatibility
3
2-64
CHAPTER
Features Supported by Cisco Unified JTAPI 3-1 Call Forward 3-2 Call Park 3-2 Park Retrieval 3-3 Park Reminder 3-3 Park DN Monitor 3-3 CiscoJtapiExceptions 3-3 Cisco Unified JTAPI Install Internationalization Clear Calls 3-4 Device Recovery 3-4 Device Recovery for Phones 3-4 CTI RoutePoints 3-4 CTI Ports 3-4 Directory Change Notification 3-5 Enable or Disable Ringer 3-5 Transfer and Conference Extensions 3-5 Transfer 3-5
3-4
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1) OL-16702-01
Contents
Conference 3-8 Consult Without Media 3-11 Media Termination Extensions 3-11 Cisco Unified Communications Manager Media Endpoint Model Cisco MediaTerminal 3-14 Receiving and Responding to Media Flow Events 3-17 Redirect 3-18 Routing 3-19 Redundancy 3-22 Cluster Abstraction 3-22 Cisco Unified Communications Manager Server Failure 3-24 Redundancy in CTI Managers 3-24 Calling Party Display Name 3-26 Set MessageWaiting 3-27 Quiet Clear 3-27 GetCallInfo 3-28 DeleteCall 3-28 GetGlobalCallID 3-28 GetCallID in RTP Events 3-29 XSI Object Pass Through 3-29 Cisco VG248 and ATA 186 Analog Phone Gateways 3-30 Multiple Calls Per DN 3-30 Shared Line Support 3-30 Transfer and DirectTransfer 3-33 Conference and Join 3-33 Barge and Privacy Event Notification 3-35 CallSelect and UnSelect Event Notification 3-36 Dynamic CTI Port Registration 3-36 Media Termination at Route Point 3-37 Redirect Set Original Called ID 3-39 Single Step Transfer 3-40 Autoupdate of API 3-41 Changes in DeviceType Name Handling 3-43 CiscoTerminal Filter and ButtonPressedEvents 3-43 Modifying Calling Number 3-44 AutoAccept Support for CTI Ports and Route Points 3-46 CiscoTermRegistrationFailed Event 3-47 SelectRoute Interface Enhancement 3-48 Presentation Indicator for Calls 3-50 Progress State Converted to Disconnect State 3-51
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1)
3-12
vi
OL-16702-01
Contents
Device State Server 3-52 Forced Authorization and Client Matter Codes 3-53 Super Provider (Disable Device Validation) 3-55 Q.Signaling (QSIG) Path Replacement 3-56 Network Events 3-56
4
CHAPTER
4-1
Overview 4-1 Determining the Current JTAPI Version Installing the Cisco Unified JTAPI Software Silent Install Invocation 4-3 Command Line Invocation 4-4 End User Installation 4-4 Installation Procedures 4-4 Auto Install for Upgrades
4-7
4-2 4-3
Configuring Cisco Unified JTAPI Preferences JTAPI Tracing Tab 4-8 Log Destination Tab 4-10 CallManagers Tab 4-13 Advanced Tab 4-14 Security Tab 4-16 Language Tab 4-18 Fields in the jtapi.ini File
5
4-19
4-7
4-19
CHAPTER
5-1
Interface Hierarchy
Extensions 5-10 CiscoAddrActivatedEv 5-11 CiscoAddrActivatedOnTerminalEv 5-11 CiscoAddrAddedToTerminalEv 5-12 CiscoAddrAutoAcceptStatusChangedEv 5-13 CiscoAddrCreatedEv 5-15 CiscoAddrIntercomInfoChangedEv 5-16 CiscoAddrIntercomInfoRestorationFailedEv 5-17 CiscoAddrRestrictedEv 5-17 CiscoAddrRestrictedOnTerminalEv 5-18
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1) OL-16702-01
vii
Contents
CiscoAddress 5-19 CiscoAddressCallInfo 5-27 CiscoAddressObserver 5-28 CiscoAddressRecordingConfigChangedEv 5-28 CiscoAddrEv 5-29 CiscoAddrInServiceEv 5-30 CiscoAddrOutOfServiceEv 5-31 CiscoAddrRemovedEv 5-33 CiscoAddrRemovedFromTerminalEv 5-34 CiscoCall 5-35 CiscoCallChangedEv 5-46 CiscoCallCtlTermConnHeldReversionEv 5-50 CiscoCallCtlConnOfferedEv 5-51 CiscoTermConnMonitoringEndEv 5-51 CiscoTermConnMonitoringStartEv 5-52 CiscoCallEv 5-53 CiscoCallID 5-63 CiscoCallSecurityStatusChangedEv 5-64 CiscoConferenceChain 5-65 CiscoFeatureReason 5-65 CiscoConferenceChainAddedEv 5-68 CiscoConferenceChainRemovedEv 5-69 CiscoConferenceEndEv 5-70 CiscoConferenceStartEv 5-73 CiscoConnection 5-76 CiscoConnectionID 5-85 CiscoConsultCall 5-86 CiscoConsultCallActiveEv 5-88 CiscoEv 5-90 CiscoG711MediaCapability 5-91 CiscoG723MediaCapability 5-93 CiscoG729MediaCapability 5-95 CiscoGSMMediaCapability 5-96 CiscoIntercomAddress 5-98 CiscoJtapiException 5-100 CiscoJtapiPeer 5-117 CiscoJtapiProperties 5-118 CiscoJtapiVersion 5-132 CiscoLocales 5-135 Fields 5-136
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1)
viii
OL-16702-01
Contents
CiscoCallSecurityIndicator 5-139 CiscoMediaCapability 5-140 CiscoMediaConnectionMode 5-143 CiscoMediaEncryptionAlgorithmType 5-144 CiscoMediaEncryptionKeyInfo 5-144 CiscoMediaOpenLogicalChannelEv 5-146 CiscoMediaSecurityIndicator 5-148 CiscoMediaTerminal 5-149 CiscoMediaTerminalConnection 5-154 CiscoMediaTerminalConnectionCapabilities 5-155 CiscoMonitorInitiatorInfo 5-156 CiscoMonitorTargetInfo 5-157 CiscoObjectContainer 5-157 CiscoOutOfServiceEv 5-158 CiscoPartyInfo 5-160 CiscoProvCallParkEv 5-162 CiscoProvEv 5-165 CiscoProvFeatureEv 5-166 CiscoProvFeatureID 5-167 CiscoProvFeatureUnRegisteredEv 5-168 CiscoProvider 5-169 CiscoProviderCapabilities 5-175 CiscoProviderCapabilityChangedEv 5-176 CiscoProviderObserver 5-177 CiscoRecorderInfo 5-177 CiscoRegistrationException 5-178 CiscoRestrictedEv 5-179 CiscoRouteAddress 5-180 CiscoRouteEvent 5-181 CiscoRouteSession 5-182 CiscoRouteTerminal 5-187 CiscoRouteUsedEvent 5-191 CiscoRTPBitRate 5-192 CiscoRTPHandle 5-193 CiscoRTPInputKeyEv 5-194 CiscoRTPInputProperties 5-195 CiscoRTPInputStartedEv 5-197 CiscoRTPInputStoppedEv 5-198 CiscoRTPOutputKeyEv 5-200 CiscoRTPOutputProperties 5-201
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1) OL-16702-01
ix
Contents
CiscoRTPOutputStartedEv 5-203 CiscoRTPOutputStoppedEv 5-204 CiscoRTPParams 5-206 CiscoRTPPayload 5-207 CiscoSynchronousObserver 5-210 CiscoTermActivatedEv 5-211 CiscoTermButtonPressedEv 5-212 CiscoTermConnPrivacyChangedEv 5-214 CiscoTermConnSelectChangedEv 5-215 CiscoTermConnMonitorInitiatorInfoEv 5-216 CiscoTermConnMonitorTargetInfoEv 5-216 CiscoTermConnRecordingEndEv 5-217 CiscoTermConnRecordingStartEv 5-217 CiscoTermConnRecordingTargetInfoEv 5-218 CiscoTermCreatedEv 5-219 CiscoTermDataEv 5-220 CiscoTermDeviceStateActiveEv 5-221 CiscoTermDeviceStateAlertingEv 5-222 CiscoTermDeviceStateHeldEv 5-224 CiscoTermDeviceStateIdleEv 5-225 CiscoTermDeviceStateWhisperEv 5-226 CiscoTermDNDStatusChangedEv 5-227 CiscoTermDNDOptionChangedEv 5-228 CiscoTermEv 5-229 CiscoTermEvFilter 5-230 CiscoTerminalProtocol 5-233 CiscoTone 5-234 CiscoTermRestrictedEv 5-234 CiscoTermSnapshotEv 5-235 CiscoTermSnapshotCompletedEv 5-236 CiscoTerminal 5-236 CiscoTerminalConnection 5-244 CiscoTerminalObserver 5-246 CiscoTermInServiceEv 5-247 CiscoTermOutOfServiceEv 5-248 CiscoTermRegistrationFailedEv 5-249 CiscoTermRemovedEv 5-252 CiscoToneChangedEv 5-253 CiscoTransferEndEv 5-255 CiscoTransferStartEv 5-258
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1)
OL-16702-01
Contents
CiscoUnregistrationException 5-260 CiscoUrlInfo 5-261 CiscoWideBandMediaCapability 5-262 Class Alarms 5-264 Alarm 5-264 AlarmManager 5-268 AlarmWriter 5-270 DefaultAlarm 5-272 DefaultAlarmWriter 5-274 ParameterList 5-277 Class Tracing 5-279 BaseTraceWriter 5-279 ConditionalTrace 5-283 ConsoleTraceWriter 5-284 LogFileTraceWriter 5-286 OutputStreamTraceWriter 5-292 SyslogTraceWriter 5-294 Trace 5-296 TraceManager 5-302 TraceManagerFactory 5-305 TraceManagerImpl 5-307 TraceWriterManagerImpl 5-310 TraceModule 5-313 TraceWriter 5-314 TraceWriterManager 5-316 UnconditionalTrace 5-318
6
CHAPTER
6-1
6-12 6-14
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1) OL-16702-01
xi
Contents
APPENDIX
A-1
Shared Line Support A-2 AddressInService/AddressOutofService Events Incoming Call to Shared Address A-4 Outgoing Call from Shared Address A-5 Shared Address Calling Itself A-6 Transfer and Direct Transfer A-6 DirectTransfer/Arbitrary Transfer Scenario A-7 Direct Transfer/Arbitrary TransferPage 2 A-8 Consult Transfer A-8 Conference and Join A-8 Join/Arbitrary Conference A-9 Consult Conference A-10 Join Across Lines with Enhancements Barge and Privacy A-16 Barge A-16 CBarge A-17 Privacy A-18 CallSelect and UnSelect
A-18 A-19
A-3
A-11
Dynamic CTIPort Registration Per Call Media Termination at Route Point Redirect Set OriginalCalledID Single Step Transfer
A-23 A-21
A-20
A-29 A-29
Super Provider Message Flow A-34 SuperProvider and Change Notification Enhancements Use Cases QSIG Path Replacement Device State Server
A-36 A-38
A-35
Partition Support A-38 Using getPartition() API A-38 Using getAddress (String number, String partition) Park DN A-41 Partition Change A-42 JTAPI Partition Support A-43 Hairpin Support
A-45
A-39
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1)
xii
OL-16702-01
Contents
Device and Line Restriction SIP REPLACE A-53 SIP REFER A-59 SIP 3XX Redirection Unicode Support Half Duplex Media Intercom
A-103 A-71
A-67
A-72
Recording and Monitoring Do Not Disturb A-111 DNDR A-115 Secure Conferencing
A-119
JTAPI Cisco Unified IP 7931G Phone Interaction A-123 Locale Infrastructure Development Scenarios A-143 Calling Party Normalization A-144 Click to Conference A-152 Call Pickup A-164 selectRoute() with Calling Search Space and Feature Priority Extension Mobility Login Username A-177 Calling Party IP Address A-179 CiscoJtapiProperties A-180
B
A-176
APPENDIX
B-1 B-1
Cisco Unified JTAPI Version 1.2 Classes and Interfaces Core Package B-2 Call Center Package B-4 Call Center Capabilities Package B-6 Call Center Events Package B-7 Call Control Package B-8 Call Control Capabilities Package B-11 Call Control Events Package B-12 Capabilities Package B-13 Events Package B-14
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1) OL-16702-01
xiii
Contents
Media Package B-15 Media Capabilities Package B-16 Media Events Package B-16 Unsupported Packages B-17 Cisco Unified JTAPI Extension Classes and Interfaces Cisco Unified JTAPI Extension Classes B-17 Cisco Unified JTAPI Extension Interfaces B-18 Cisco Trace Logging Classes and Interfaces Cisco Trace Logging Classes B-20 Cisco Trace Logging Interfaces B-21
C
B-20 B-17
APPENDIX
C-1
CiscoEventIDs C-10 Provider Events C-10 Terminal Events C-10 Address Events C-11 Call Events C-11 RTP Events C-12 TermConn Events C-12 Reason Codes Cause Codes
C-13 C-14
Additional Troubleshooting Information C-18 Viewing JTAPI Debug Output C-18 Log Files For JTAPI Client Installer C-19 Troubleshooting Tips for ISMP Installer C-19 Unable to Create Provider Directory Login Timeout
D
C-20
APPENDIX
D-1
APPENDIX
E-1
INDEX
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager Release 7.0(1)
xiv
OL-16702-01
Preface
This chapter describes the objectives, intended audience, and organization of this document and describes the conventions that convey instructions and other information. It contains the following sections:
Purpose, page xv Audience, page xv Organization, page xvi Related Documentation, page xvii Developer Support, page xvii Conventions, page xviii Obtaining Documentation, Obtaining Support, and Security Guidelines, page xix Cisco Product Security Overview, page xix OpenSSL Notice, page xix
Purpose
This document describes the Cisco Unified Communications Manager (formerly Cisco Unified CallManager) Java Telephony Application Programming Interface (JTAPI). Cisco Unified JTAPI enables programming interfaces to support different implementations. This document outlines basic Cisco Unified JTAPI concepts including extensions, classes and interfaces. To implement JTAPI for Cisco Unified Communications Manager, Cisco conforms to the JTAPI Specification v1.2 while providing extensions that enhance JTAPI with the advanced features of Cisco Unified Communications Manager. As new versions of Cisco Unified Communications Manager and the Cisco Unified JTAPI implementation are released, Cisco maintains stable and reliable API extensions, and as new Cisco Unified Communication Manager features become available, additional extensions are provided.
Audience
This document is for developers who write applications that extend the functionality of the APIs that are described in this document.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
xv
Preface
This document assumes that you have knowledge of the Java language and the Sun JTAPI v 1.2 specification.You must also have knowledge or experience in the following areas:
Extensible Markup Language (XML) Hypertext Markup Language (HTML) Hypertext Transport Protocol (HTTP) Socket programming TCP/IP Protocol Web Service Definition Language (WSDL) 1.1 Secure Sockets Layer (SSL)
In addition, as a user of the Cisco Unified Communications Manager APIs, you must have a firm understanding of XML Schema. For more information about XML Schema, refer to http://www.w3.org/TR/xmlschema-0/. You must have an understanding of Cisco Unified Communications Manager and its applications. See the Related Documentation section on page xvii for Cisco Unified Communications Manager documents and other related technologies.
Organization
The following table provides an outline of the chapters in this document. Chapter Chapter 1, Overview Description This chapter introduces the major concepts with which you need to be familiar before creating JTAPI applications for Cisco IP Telephony Solutions. This chapter describes the new and changed features in Cisco Unified Communications Manager releases that are supported by Cisco Unified JTAPI. This chapter describes additional features that are supported by Cisco Unified JTAPI. This chapter describes the Cisco Unified JTAPI installation process. This chapter describes the implementation of Cisco Unified JTAPI.
Chapter 3, Features Supported by Cisco Unified JTAPI Chapter 4, Cisco Unified JTAPI Installation Chapter 5, Cisco Unified JTAPI Implementation
Chapter 6, Cisco Unified JTAPI Examples This chapter provides the examples of source code for makecall, the Cisco Unified JTAPI program that is used to test the JTAPI installation. Appendix A, Message Sequence Charts Appendix B, Cisco Unified JTAPI Classes and Interfaces This appendix contains message flow diagrams. This appendix contains a listing of all the classes and interfaces that are available in Cisco Unified JTAPI.
Appendix C, Troubleshooting Cisco Unified This appendix contains CTI Error Codes, CiscoEvent JTAPI IDs, and other troubleshooting information.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
xvi
OL-16702-01
Preface
Description This appendix contains a list of supported, unsupported, changed, and under consideration or review by Cisco Unified Communications Manager release. This appendix contains a list of CTI supported devices.
Related Documentation
This section lists documents and URLs that provide information on Cisco Unified Communications Manager, Cisco Unified IP Phones, and the technologies that are required to develop applications.
Cisco Unified Communications Manager Release 7.0(1)A suite of documents that relate to the installation and configuration of Cisco Unified Communications Manager. Refer to the Cisco Unified Communications Manager Documentation Guide for Release 7.0(1) for a list of documents on installing and configuring Cisco Unified Communications Manager 7.0(1), including:
Cisco Unified Communications Manager Administration Guide, Release 7.0(1). Cisco Unified Communications Manager System Guide, Release 7.0(1). Cisco Unified Communications Manager Features and Services Guide, Release 7.0(1).
Cisco Unified IP Phones and ServicesA suite of documents that relate to the installation and configuration of Cisco Unified IP Phones. Cisco Distributed DirectorA suite of documents that relate to the installation and configuration of Cisco DistributedDirector.
Related Information
To obtain the latest version of the complete Sun Microsystems JTAPI specification files, go directly to http://java.sun.com/products/jtapi.
Developer Support
The Developer Support Program provides formalized support for Cisco Systems interfaces to enable developers, customers, and partners in the Cisco Service Provider solutions Ecosystem and Cisco AVVID Partner programs to accelerate their delivery of compatible solutions. The Developer Support Engineers are an extension of the product technology engineering teams. They have direct access to the resources necessary to provide expert support in a timely manner. For additional information on this program, refer to the Developer Support Program web site at http://www.cisco.com/go/developersupport/. Developers using the Cisco Unified Communications Manager Release 5.0(1) Extension Mobility API Developer Guide are encouraged to join the Cisco Developer Support Program. This program provides a consistent level of support while leveraging Cisco interfaces in development projects.
Note
Cisco Technical Assistance Center (TAC) support does not include Extension Mobility API developer support and is limited to Cisco AVVID installation/configuration and Cisco-developed applications. For more information about the Developer Support Program, please contact Cisco at developer-support@cisco.com.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
xvii
Preface
Conventions
This document uses the following conventions: Convention boldface font italic font [ ] {x|y|z} [x|y|z] string
screen
Description Commands and keywords are in boldface. Arguments for which you supply values are in italics. Elements in square brackets are optional. Alternative keywords are grouped in braces and separated by vertical bars. Optional alternative keywords are grouped in brackets and separated by vertical bars. A nonquoted set of characters. Do not use quotation marks around the string or the string will include the quotation marks.
font
font.
font Arguments for which you supply values are in italic screen font. This pointer highlights an important line of text in an example. The symbol ^ represents the key labeled Controlfor example, the key combination ^D in a screen display means hold down the Control key while you press the D key. Nonprinting characters, such as passwords are in angle brackets.
< >
Note
Means reader take note. Notes contain helpful suggestions or references to material not covered in the publication. Timesavers use the following conventions:
Timesaver
Means the described action saves time. You can save time by performing the action described in the paragraph. Tips use the following conventions:
Tip
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
xviii
OL-16702-01
Preface
OpenSSL Notice
The following link provides information about the OpenSSL notice: http://www.cisco.com/en/US/products/hw/phones/ps379/products_licensing_information_listing.html
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
xix
Preface
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
xx
OL-16702-01
CH A P T E R
Overview
This chapter describes the major concepts with which you need to be familiar before creating Java Telephony Application Programming Interface (JTAPI) applications for Cisco Unified Communications Manager systems. It contains the following sections:
JTAPI Overview, page 1-1 Cisco Unified JTAPI Concepts, page 1-4 Threaded Callbacks, page 1-11 Alarm Services, page 1-12 Required Software, page 1-13
For information about Cisco Unified Communications Manager features, see Chapter 3, Features Supported by Cisco Unified JTAPI. Also see Appendix E, CTI Supported Devices and Appendix D, JTAPI Feature Matrix for more information and CTI devices and supported features.
JTAPI Overview
Cisco Unified JTAPI is a programming interface standard developed by Sun Microsystems for use with Java-based computertelephony applications. Cisco JTAPI implements the Sun JTAPI 1.2 specification with additional Cisco extensions. Cisco JTAPI is used to develop applications that:
Control and observe Cisco Unified Communications Manager phones. Route calls using ComputerTelephony Integration (CTI) ports and route points (virtual devices).
Basic telephony APIs that are supported are conference, transfer, connect, answer, and redirect. A package of JTAPI interfaces, located in the javax.telephony.* hierarchy, defines a programming model by which Java applications interact with telephony resources. For more information about interfaces, see Chapter x. For more information about Classes (Objects, Methods, and Events) and Packages, see Chapter x and x. This section describes the following subjects:
Cisco Unified JTAPI and Contact Centers, page 1-2 Cisco Unified JTAPI and Enterprises, page 1-2 Cisco Unified JTAPI Applications, page 1-3 Jtprefs Application, page 1-3
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
1-1
Overview
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
1-2
OL-16702-01
Chapter 1
Obtain JTAPIPeer object instance from JTAPIPeerFactory Obtain a Provider, using the getProvider() API on JTAPIPeer Obtain from the Provider, the Terminal and Address for use in your application Determine capabilities of relevant objects Add observers for the objects, application wishes to monitor/control Begin application flow (for example begin calls)
Jtprefs Application
The jtapi.ini file includes parameters that are required for configuring Cisco Unified JTAPI. Cisco Unified JTAPI looks for this file in a Java classpath. The parameters are modified by using the Jtprefs application that Cisco Unified JTAPI installs. The Jtprefs application sets only the parameters that it requires. This is beneficial because there is a single point of application administration, independent of jtapi.ini. The jtapi.ini file contains default values, but client applications can modify values without having to specifically modify the jtapi.ini file. Different instances of client applications, however, can impose different settings for these parameters. The com.cisco.jtapi.extensions package defines the CiscoJtapiProperties interface. Applications obtain a CiscoJtapiProperties object from the CiscoJtapiPeer and make changes to the parameters by using the accessor and mutator methods. These properties must be set and applied to all providers that are derived from a CiscoJtapiPeer prior to the first getProvider () call on that peer. Applications which run in non GUI based platform, in which jtprefs.ini cannot be invoked, can write a jtapi.ini file and place it along with jtapi.jar.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
1-3
Overview
Fields in the jtapi.ini File, page 4-19. Sample jtapi.ini file with default values, page 4-25
CiscoObjectContainer Interface, page 1-4 JtapiPeer and Provider, page 1-4 Address and Terminal Relationships, page 1-6 Connections, page 1-7 Terminal Connections, page 1-8 Terminal and Address Restrictions, page 1-8 CiscoConnectionID, page 1-11
CiscoObjectContainer Interface
The CiscoObjectContainer interface allows applications to associate an application-defined object to objects that implement the interface. In Cisco Unified JTAPI, the following interfaces extend the CiscoObjectContainer interface:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
1-4
OL-16702-01
Chapter 1
Ensure that the following information is passed in the JtapiPeer.getProvider() method for applications to obtain a CiscoProvider:
Hostname or IP address for the Cisco Unified Communications Manager server Login of the user who is administered in the directory Password of the user that is specified (Optional) Application information (This parameter may be a string of any length.) Applications must include enough descriptive information, so if the appinfo were logged in an alarm, administrators would know which application caused the alarm. Applications should not include hostname or IP address where they reside, nor the time at which they were spawned. Also, ensure that no = or ; characters are included in the appinfo string because they delimit the getProvider () string. When the appinfo is not specified, you can use a generic and quasi-unique name (JTAPI[XXXX]@hostname, where XXXX represents a random, four-digit number) instead.
The parameters get passed in key value pairs that are concatenated in a string as follows: JtapiPeer.getProvider(CTIManagerHostname;login=user;passwd=userpassword;appinfo=Cisco Softphone)
Initialization
The JtapiPeer.getProvider() method returns a Provider object as soon as the TCP link, the initial handshake with the Cisco Unified Communications Manager, and device list enumeration are complete. The provider now exists in the OUT_OF_SERVICE state. Cisco Unified JTAPI applications must wait for the provider to go to the IN_SERVICE state before the controlled device list is valid. A ProvInServiceEv event gets delivered to an object that is implementing the ProviderObserver interface.
Note
Implementing only the CiscoProviderObserver does not do enough; the observer must also get added to the provider with provider.addObserver(). Applications must wait for a notification that the Provider is in service.
As a part of the QoS baselining effort in JTAPI, ProviderOpenCompletedEv provides the DSCP value for Applications to JTAPI. JTAPI sets this DSCP value for its connection with CTI, and all JTAPI messages to CTI will have this DSCP value as long as the Provider object exists.
Shutdown
When an application calls provider.shutdown(), JTAPI loses communications permanently with the Cisco Unified Communications Manager, and a ProvShutdownEv event gets delivered to the application. The application can assume that the Provider will not come up again, and the application must handle a complete shutdown.
Provider.getTerminals()
This method returns an array of terminals that are created for the devices that are administered in the user control list in the directory. Refer to the Cisco Unified Communications Manager Administration Guide to administer the user control list.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
1-5
Overview
Provider.getAddresses()
This method returns an array of addresses that are created from the lines that are assigned to the devices that are administered in the user control list in the directory.
Note
Implementing only the observers does not do enough; the observers must also get added by address.addObserver() and, similarly, for the terminal by the terminal.addObserver() method.
Note
Before invoking the call.connect() method, add a CallObserver to the address or terminal that is originating the call; otherwise, the method returns an exception.
Phones Virtual devices (media termination points and route points) Gateways
Of these endpoints, only phones and media termination points are used by using the Cisco Unified JTAPI implementation. Cisco Unified Communications Manager allows users to configure phones to have one or more lines, dialable numbers, which multiple phones may share simultaneously, or lines can be configured for exclusive use by only one phone at a time. Each line on a phone can terminate two calls simultaneously, one of which must be on hold. This operation acts in a similar way to the operation of the call waiting feature on home phones. Figure 1-2 shows two configurations: Peter and Mary share one phone line, 5001, while Paul has his own phone line, 5002.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
1-6
OL-16702-01
Chapter 1
Figure 1-2
"Peter"
Phone Diagram
"Mary" 5000 5001 5001
"Paul" 5002
A unique name identifies all types of Cisco Unified Communications Manager endpoints. The phone Media Access Control (MAC) address (such as, SEP0010EB1014) identifies it, and the system administrator can assign any name to a media termination point, so long as its name is unique. For each endpoint that a provider controls, the Cisco Unified JTAPI implementation uses the administrator-assigned name to construct a corresponding terminal object. Terminal objects in turn have one or more address objects, each of which corresponds to a line on the endpoint. Figure 1-2 Address and Terminal Relationship shows a graphical representation of the relationship between addresses and terminals.
Figure 1-3
Addresses
If two or more endpoints share a line (DN), the corresponding address object is related to more than one terminal object.
Connections
Connections retain their references to calls and addresses forever. So, a connection reference that is obtained from a call event can always be used to obtain the connection call (getCall()) and address (getAddress()).
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
33324
1-7
Overview
Terminal Connections
Terminal connections always retain their references to terminals and connections. So, a terminal connection reference that is obtained from a call event can always be used to obtain the terminal connection terminal (getTerminal()) and connection (getConnection()).
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
1-8
OL-16702-01
Chapter 1
If no addresses or terminals are added to the restricted list, this feature is backward compatible with earlier versions of JTAPI: no new events are delivered to applications. The following sections describe the interface changes for address and terminal restrictions.
CiscoTerminal
boolean
isRestricted()
Indicates whether a terminal is restricted. If the terminal is restricted, all associated addresses on this terminal are also restricted. Returns true if the terminal is restricted; returns false if it is not restricted.
CiscoAddress
javax.telephony. Terminal[]
getRestrictedAddrTerminals()
Returns an array of terminals on which this address is restricted. If none are restricted, this method returns null. In shared lines, a few lines on terminals may be restricted. This method returns all the terminals on which this particular address is restricted. Applications cannot see any call events for restricted lines. If a restricted line is involved in a call with any other control device, an external connection gets created for the restricted line.
boolean
isRestricted(javax.telephony.Terminal terminal)
Returns true if any address on this terminal is restricted. Returns false if no addresses on this terminal are restricted.
public interface CiscoRestrictedEv extends CiscoProvEv { public static final int ID = com.cisco.jtapi.CiscoEventID.CiscoRestrictedEv; /** * The following define the cause codes for restricted events */ public final static int CAUSE_USER_RESTRICTED = 1; public final static int CAUSE_UNSUPPORTED_PROTOCOL = 2; }
This is the base class for restricted events and defines the cause codes for all restricted events. CAUSE_USER_RESTRICTED indicates the terminal or address is marked as restricted. CAUSE_UNSUPPORTED_PROTOCOL indicates that the device in the control list is using a protocol that is not supported by Cisco Unified JTAPI. Existing Cisco Unified IP 7960 and 7940 phones that are running SIP fall in this category.
CiscoAddrRestrictedEv
Public interface CiscoAddrRestrictedEv extends CiscoRestrictedEv. Applications will see this event when a line or an associated device is designated as restricted from Cisco Unified Communications Manager Administration. For restricted lines, the address will go out of service and will not come back in service until it is activated again. If an address is restricted, addCallObserver and addObserver will throw an exception. For shared lines, if a few shared lines are restricted, and others are not, no exception
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
1-9
Overview
is thrown, but restricted shared lines will not receive any events. If all shared lines are restricted, an exception is thrown when adding observers. If an address is restricted after adding observers, applications will see CiscoAddrOutOfServiceEv, and when the address is activated, the address will go in service.
CiscoAddrActivatedEv
Public interface CiscoAddrActivatedEv extends CiscoProvEv. Applications will see this event whenever a line or an associated device is in the control list and is removed from the restricted list in the Cisco Unified Communications Manager Administration. If any observers exist on the address, applications will see CiscoAddrInServiceEv. If no observers exist, applications can try to add observers, and the address will go in service.
CiscoAddrRestrictedOnTerminalEv
Public interface CiscoAddrRestrictedOnTerminalEv extends CiscoRestrictedEv. If a user has a shared address in the control list, and if one of the lines is added into the restricted list, this event will be sent. Interface getTerminal() returns the terminal on which the address is restricted. Interface getAddress() returns the address that is restricted. javax.telephony.Address javax.telephony.Terminal
CiscoAddrActivatedOnTerminal
getAddress() getTerminal()
Public interface CiscoAddrActivatedOnTerminalEv extends CiscoProvEv. When a shared line or a device that has a shared line is removed from the restricted list, this event will be sent. The interface getTerminal() returns the terminal that is being added to the address. The interface getAddress() returns the address on which the new terminal is added. javax.telephony.Address javax.telephony.Terminal
CiscoTermRestrictedEv
getAddress() getTerminal()
Public interface CiscoTermRestrictedEv extends CiscoRestrictedEv. Applications will see this event when a device is added into restricted list from Cisco Unified Communications Manager Administration after the application launches. Applications will not be able to see events for restricted terminals or addresses on those terminals. If a terminal is restricted when it is in InService state, applications will get this event and terminal and corresponding addresses will move to the out-of-service state.
CiscoTermActivatedEv
Returns the terminal that is activated and is removed from the restricted list.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
1-10
OL-16702-01
Chapter 1
CiscoOutOfServiceEv
static int
CAUSE_DEVICE_RESTRICTED
static int
CAUSE_DEVICE_RESTRICTED
CiscoConnectionID
The CiscoConnectionID object represents a unique object that is associated with each connection in Cisco Unified JTAPI. Applications may use the object itself or the integer representation of the object.
Threaded Callbacks
The Cisco Unified JTAPI implementation design allows applications to invoke blocking JTAPI methods such as Call.connect() and TerminalConnection.answer() from within their observer callbacks. This means that applications do not get subjected to the restrictions that are imposed by the JTAPI 1.2 specification, which cautions applications against using JTAPI methods from within observer callbacks.
CiscoSynchronousObserver Interface
The Cisco Unified JTAPI implementation allows applications to invoke blocking JTAPI methods, such as Call.connect() and TerminalConnection.answer(), from within observer callbacks. This means that applications are not subject to the restrictions that are imposed by the JTAPI 1.2 specification, which cautions against using JTAPI methods from within observer callbacks. Applications can selectively disable the queuing logic of the Cisco Unified JTAPI implementation by implementing the CiscoSynchronousObserver interface on their observer objects. This asynchronous behavior does not adversely affect many applications. Applications that would benefit from a coherent call model during observer callbacks can selectively disable the queuing logic of the Cisco Unified JTAPI implementation. By implementing the CiscoSynchronousObserver interface on its observer objects, an application declares deliver synchronous events to its observers. Events that are delivered to synchronous observers will match the states of the call model objects that are queried from within the observer callback.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
1-11
Overview
Note
Objects that implement the CiscoSynchronousObserver interface must not invoke blocking JTAPI methods from within their event callbacks. The unpredictable consequences of doing so may include deadlocking the JTAPI implementation. However, objects may safely use the access or methods of any JTAPI object, for instance Call.getConnections() or Connection.getState().
callChangeEvent()
When the callChangedEvent() method is called, the validity remains guaranteed for any references that are contained in the event. For example, if the event contains a getConnection() method, the application can call this method and get a valid connection reference. Likewise, a getCallingAddress() method guarantees to return a valid Address object.
CiscoConsultCall
For the CiscoConsultCall interface, a reference to a consulting terminal connection gets retained forever. For example, when a CiscoConsultCallActive event is processed, getConsultingTerminalConnection() guarantees to return a valid terminal connection reference. Further, the terminal connection guarantees to provide access to the consulting connection and thus the consulting call.
CiscoTransferStartEv
For the CiscoTransferStartEv, the references to the transferred call, transfer controller, and final call in the event become valid when callChangedEvent() is called. However, getConnections() may or may not return the connections on these calls.
Alarm Services
Part of the general serviceability framework for Cisco Unified Communications applications includes support for sending alarms to a service. The com.cisco.services.alarm package defines the alarm components. An alarm interface and framework support the sending of alarm notifications in XML over TCP to an Alarm Service that is available on the network in a Cisco Unified JTAPI application. The alarm package includes the following features:
XML definition of alarms, resolved by a catalog in the alarm service A bounded rollover queue to buffer alarms at the sender Alarm sending on a separate thread to avoid blocking at the sending application A TCP-based reconnection scheme to the alarm service
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
1-12
OL-16702-01
Chapter 1
The overall framework of the Cisco Unified JTAPI alarm system is similar to the existing JTAPI tracing package. Applications must instantiate an AlarmManager for a particular facility code from which alarm objects can be created. Part of the implementation includes DefaultAlarm and DefaultAlarmWriter implementation classes.
Required Software
The following table lists the software requirements for JTAPI applications, JTPREFS, and sample code.
.
Required Software Any JDK 1.4.2 compliant Java environment Any JDK 1.4.2 compliant environment. Microsoft Internet Explorer 4.01 or later
Examples
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
1-13
Chapter 1
Overview
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
1-14
OL-16702-01
CH A P T E R
Cisco Unified Communications Manager Release 7.0(1), page 2-1 Cisco Unified Communications Manager Release 6.1, page 2-7 Cisco Unified Communications Manager Release 6.0, page 2-9 Cisco Unified Communications Manager Release 5.1, page 2-24 Cisco Unified Communications Manager Release 5.0, page 2-26 Backward Compatibility, page 2-64
Join Across Lines with Conference Enhancements, page 2-2 Locale Infrastructure Development, page 2-3 Do Not DisturbReject, page 2-4 Calling Party Normalization, page 2-5 Click to Conference, page 2-5 Extension Mobility Username Login, page 2-6 Java Socket Connect Timeout, page 2-6 selectRoute() with Calling Search Space and Feature Priority, page 2-7 Call Pickup, page 2-7
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-1
Note
The following IPv6 related methods are not supported in Cisco Unified Communications Manager Release 7.0(1): canSupportIPv6() setProviderOpenRetryAttempts (int retryAttempts) getProviderOpenRetryAttempts() getIPAddressingMode() (available on CiscoMediaTerminal and CiscoRouteTerminal interfaces) register(java.net.InetAddress address, int port, CiscoMediaCapability [] capabilities, int[] algorithmIDs, java.net.InetAddress address_v6, int activeAddressingMode) register(CiscoMediaCapability [] capabilities, int[] int registration Type, int[] algorithmIDs, int activeAddressingMode) getTerminals() (available on new interface CiscoProviderTermCapabilityChangedEv) getAddressingModeForMedia() getCallingPartyIpAddr_v6() (available on CiscoCallCtlConnOfferedEv and CiscoRouteEvent interfaces) CTIERR_IPADDRMODEMISMATCH CTIERR_DYNREG_IPADDRMODE_MISMATCH hasIPv6CapabilityChanged() CiscoTerminal.IP_ADDRESSING_MODE_IPv4 CiscoTerminal.IP_ADDRESSING_MODE_IPv6 CiscoTerminal.IP_ADDRESSING_MODE_IPv4_v6 CiscoTerminal.IP_ADDRESSING_MODE_Unknown CiscoTermRegistrationFailedEv.IP_ADDRESSING_MODE_MISMATCH
Conference chaining across lines; for example, applications can conference two conference calls in which each conference is on a different address but on the same terminal. Applications can conference two calls on different addresses of the same terminal. Add participants to a conference using a non-controller.
Note
Join Across Lines can be disabled by turning off the Join Across Lines Policy service parameter, while Conference Chaining and the feature that allows Non-Controller adding participant to conference can be disabled by disabling the Advanced Ad Hoc Conference Enabled and Non-linear Ad Hoc Conference Linking Enabled service parameters. The following is the behavior when an application issues a conference request but selected and active calls are not part of the conference request. It also applies for user selected calls which are not part of the conference request, but become part of the resulting conference:
The Active Call on a Terminal is always added to the resulting conference when conference is invoked on a call on any address on that terminal. Consider that B1 and B2 addresses are on the same terminal. Then:
A --> B1- GC1 C --> B1- GC2 D --> B2- GC3 (active call)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-2
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 7.0(1)
The application invokes GC1.conference (GC2) and results in A-B1-C-D in a conference with GC1, although the call with D was not part of the conference request. An active conference call on a terminal is added to the resulting conference when conference is invoked on a call on any line on that terminal. In this case, the active conference call becomes the surviving final call (provided the application specified primary call is not a conference call). In this example, the application specified primary call is cleared after the conference operation. It is possible that the application specified primary call may not join the resulting conference and in that case the call is not cleared after the conference is complete.
Consider that the B1 and B2 addresses on the same terminal and conf1 is a conference call with A-B1-C in conference with B1 as the controller. Then:
B1 --> D GC1 (on hold) conf1 GC2 (active call) B2 --> E GC3 (on hold)
Application invokes GC1.conference(GC2, GC3). This will result in A-B1-C-D-E in conference with GC2 as the surviving call. Although application had specified GC1 to be the primary call, GC1 does not survive after the conference. The behavior also applies to regular conferencing with a common controller. Consider A, B, C, and D are lines on different terminals. Then:
A --> B - GC1 C --> - GC2 D --> - GC3 (active call) The application requests GC1.conference (GC2). This results in A-B-C-D in conference with GC1. Although a direct call with D was not part of the conference request, D joins the conference.
Interface Changes
There are no interface changes. You can use the current interfaces to conference calls on different addresses on the same terminal.
Message Sequences
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-3
Prior to this release, the JTAPI client install and JTAPI Preferences application were localized during builds and did not add support for new languages or update locales for existing languages. The JTAPI client locale updates were performed in Cisco Unified Communications Manager maintenance releases. This feature is adding capability to dynamically update locale file for JTAPI Preferences application. And JTAPI Client install will be only installable in English languages. The JTAPI Client install needs the Cisco Unified Communications Manager TFTP server IPaddress. The TFTP IP address is used for downloading locale files for the preferences application. If the TFTP IP address is not entered or an incorrect IP address is entered, the preference application displays only in English language. Further on whenever new locale updates are available, JTAPI Preferences application will notify user about available updates and update locale files.
Interface Changes
This feature is backward compatible from the JTAPI Application perspective, but from the JTAPI Client install perspective, currently supported languages have been removed. In this regard, it is not backward compatible.
Do Not DisturbReject
Do Not DisturbReject (DNDR) is an enhancement to the existing DND feature. Cisco Unified Communications Manager and JTAPI previously supported only the Ringer off DND. The user can reject calls with DNDReject. DNDR can be set from the phone configuration page or the phone profile configuration page in Cisco Unified Communications Manager Administration. When DNDR is enabled, the call is not presented to the terminal that has Call Reject enabled. There is no audible or visual indication of incoming calls on that end point. To enable DNDR, set the DND Status as true and the DND option to Call Reject. FeaturePriority overrides DND. It can have any of the following values:
FeaturePriority in connect() API on CiscoCall is introduced in this release. FeaturePriority in selectRoute() and redirect() API is already supported in prior releases. When feature priority as EMERGENCY is specified in connect() API, and the destination terminal has DNDR enabled, the call still rings at the destination terminal and overrides the DNDR settings. When a terminal has DNDR enabled and receives an intercom call, DNDR settings are overridden and call presents. This is because feature priority is always 2 (URGENT) for intercom calls. In non- shared line scenario where A calls B and Terminal B has DNDR enabled, CallCtlConnFailedEv with cause USER_BUSY is delivered on A. User would see the same behavior if we have DNDR enabled on all the terminals which have shared DNs
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-4
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 7.0(1)
In the case of shared lines when at least one of the terminal does not have DNDR enabled and a call is placed to the shared line, then JTAPI delivers TermConnPassiveEv and CallCtlTermConnInUseEv for the terminals which have DNDR enabled (assuming the call was made with NORMAL feature priority). TermConnPassiveEv and CallCtlTermConnBridgedEv is delivered if DNDR is disabled on the terminal during a call. A new event CiscoTermDNDOptionChangedEv will be sent to the terminal observer whenever the DND option changes on the phone page or Common Phone Profile page in Cisco Unified Communications Manager Administration. Default DND option is Ringeroff and Route points do not support DND.
Interface Changes
This feature is backward compatible. Application will see new events if this feature is configured. The new events are filterable through TerminalEventFilter interface (CiscoTermEvFilter). By default filter is disabled and the new events are not delivered.
This feature introduces a new method in CiscoCall that is getGlobalizedCallingParty() and a new method in CiscoPartyInfo that is getNumberType(). See CiscoCall, page 5-35 and CiscoPartyInfo, page 5-160 for more information.
Message Sequences
Click to Conference
Click to conference feature provides interfaces on SIP trunk for applications such as Instant Messenger (IM) to add parties to a conference. Users can add other parties to a conference or remove parties using such applications. When click to conference is used to add a party to conference, a call is offered to the target address. Only one connection for target address is created on this initial call. This call is then added to conference resulting in a new callID for the call on the target address and connections for other addresses in the call are created on the new call.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-5
This section describes the interface changes done in Cisco JTAPI to handle the interactions when an address is added to a conference using click to conference feature. When click to conference feature is used there is no consult call and JTAPI applications would not receive CiscoConferenceStartEv or CiscoConferenceEndEv. The feature can be disabled by turning off the ENABLE CLICK TO CONFERENCE CallManager service parameter.
Interface Changes
This feature is backward compatible. No change in JTAPI applications when this feature is not configured or used.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-6
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 6.1
selectRoute() with Calling Search Space and Feature Priority, page A-176
Backward Compatibility
This feature is backward compatible. The selectRoute() API remains functional and interoperates with the overloaded selectRoute() API.
Call Pickup
Call Pickup enables devices within a Call Pickup Group to be alerted that another phone in the group is ringing and to pick up the calltaking it from the original ringing device. With this enhancement, Cisco Unified Communications Manager JTAPI supports observing terminals and addresses at which call pickup events are happening, however, it does not provide API to invoke call pickup operations from the application. This is a small change in the way the API handles Call Pickup events when the Auto Call Pickup service parameter is enabled. If this parameter is disabled, when a user presses their Pickup softkey, their phone begins to ring, and they have all the normal actions available to them. If Auto Call Pickup is enabled, pressing the softkey immediately picks up the call without ringing.
Interface Changes
Certificate Download API Enhancement, page 2-8 Join Across Lines, page 2-8 Intercom Support for Extension Mobility, page 2-9
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-7
Note
There are no interface changes for this feature. Applications can use the current conference interfaces to conference calls on different addresses on the same terminal.
Backward Compatibility
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-8
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 6.0
Recording and Silent Monitoring, page 2-10 Intercom, page 2-12 Arabic and Hebrew Language Support, page 2-14 Do Not Disturb, page 2-14 Secure Conferencing, page 2-15 Cisco Unified IP 7931G Phone Interaction, page 2-16 Version Format Change, page 2-17 Multilevel Precedence and Preemption Support, page 2-18 Non-Controller Adding of Parties to Conferences, page 2-18 Conference Chaining, page 2-18 Forwarding on No Bandwidth & Unregistered DN, page 2-19 Directed Call Park, page 2-20 Voice MailBox Support, page 2-20 Privacy On Hold, page 2-21 CiscoRTPHandle Interface on Cisco RTP Events, page 2-21 Hold Reversion, page 2-22 Translation Pattern Support, page 2-22
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-9
No recording Automatic recording The system initiates a recording session, and streams media to the configured recording device whenever a call goes to a connected state.
Application-controlled recording If application-controlled recording is configured on an address, the application can start and stop recording. The call must exist in the connected state before the application can start recording.
The administrator can set up any one of these recording configurations on a line. On the successful setup of a recording session that is triggered by either auto recording or an application request, the system sends two audio streams to the recording device: the audio from the recording initiator and the audio from the caller. The silent monitoring feature lets applications listen to a live conversation between two other parties. The monitor initiator cannot talk to either the monitor target or the caller. Only an application request can initiate monitoring. The application must send a monitor request for each call that it wants to monitor. The system can only monitor calls that are in a connected state. On the successful completion of a monitor request, the audio stream between the monitor target and the caller streams to the monitor initiator. The monitor target will receive a tone
If the monitor target is configured to receive a tone If the application requests a tone when it starts the monitor
The recording and silent monitoring features do not support secured calls. Ensure security is disabled on devices that are monitor targets or recording initiators. Two user groups in Cisco Unified Communications Manager Administration support the recording and silent monitoring feature. Applications can record and monitor calls if they belong to the Standard CTI Allow Call Recording and Standard CTI Allow Call Monitor user groups respectively. The system delivers recording- and monitoring-related events to all call observers. Application see these events if they do not belong to the two special groups. Monitor and Recording are reserved words that should not be configured as display names for any lines in the system. Other reserved words are Conference, Park Number, Barge, and CBarge. When a monitoring session is established, the terminal observer on the monitoring initiator receives Cisco RTP events. Although the media for a silent monitoring call flows only in one direction, getMediaConnectionMode() would return CiscoMediaConnectionMode.TRANSMIT_AND_RECEIVE instead of CiscoMediaConnectionMode.RECEIVE_ONLY. Applications should expect to see the same behavior in CiscoMediaOpenLogicalChannelEv if a CTIPort is used as the monitor initiator. When a monitoring call (the call used by the monitor initiator) is conferenced, the final call does not have any connection to the monitor target. When the monitor initiator conferences another party into a monitoring call, both parties can hear the audio between the monitor target and the caller.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-10
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 6.0
The following interfaces extend TermConnEv and are delivered to callobserver. For shared lines, the system delivers these events to call observers on the address or terminal of the talking terminal connections. Applications see no events if they only the terminal whose connection is in the INUSE or BRIDGED state.
CiscoTermConnRecordingStartedEv
CiscoTermConnRecordingStartedEv
Indicates the start of recording and is delivered to the call observer of the recording initiator. Auto recording configuration or by an application request can trigger recording.
CiscoTermConnRecordingEndEv
CiscoTermConnRecordingEndEv
Indicates the start of monitoring and is delivered to the call observer on the monitor target. Using getMonitorType() on this event will return the monitor type.
CiscoTermConnMonitoringEndEv
CiscoTermConnMonitoringEndEv
Indicates the end of monitoring and is delivered to the call observer on the monitor target.
CiscoTermConnMonitorInitiatorInfoEv
Exposes monitor initiator information and is delivered to the call observer of the monitor target. This interface has one method:
CiscoMonitorInitiatorInfo getCiscoMonitorInitiatorInfo ()
Returns a CiscoMonitorInitiatorInfo that exposes the terminal name and address of the monitor initiator.
CiscoTermConnMonitorTargetInfoEv
Exposes monitor target information and is delivered to the call observer of monitor target. This interface has one method:
CiscoMonitorInitiatorInfo getCiscoMonitorTargetInfo()
Returns a CiscoMonitorInitiatorInfo that exposes the terminal name and address of the monitor target. Two new error codes notify applications about monitoring failures:
CTIERR_PRIMARY_CALL_INVALID would be returned by CiscoException.getErrorCode() for exceptions that occurred when a monitoring request fails due to the call going idle or getting transferred. CTIERR_PRIMARY_CALL_STATE_INVALID would be returned when the monitoring request fails due to the call transitioning to a different state where monitoring cannot be invoked.
This release introduces a new AddressType, MONITORING_TARGET. JTAPI creates a connection on an address of this type for a monitoring target address, CiscoAddress.getType() returns this value.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-11
Backward Compatibility
This feature is backward compatible. Applications will not see any new events unless this feature is configured and used on one of the application-controlled addresses. The administrator can enable this feature by adding JTAPI application users to the Standard CTI Allow Call Recording and Standard CTI Allow Call Monitor user groups. For detailed information about these interface changes, see the following topics:
CiscoJtapiException CiscoAddress CiscoCall CiscoMediaTerminalConnection CiscoMediaTerminalConnectionCapabilities CiscoMonitorTargetInfo CiscoMonitorInitiatorInfo CiscoProvider CiscoProviderCapabilities CiscoProviderCapabilityChangedEv CiscoProviderObserver CiscoRecorderInfo CiscoTerminalConnection CiscoTermConnMonitorInitiatorInfoEv CiscoTermConnMonitorTargetInfoEv CiscoTermConnRecordingTargetInfoEv
Intercom
The Intercom feature allows one user to call another user and have the call answered automatically with one-way media from the caller to the called party, regardless of whether the called party is busy or idle. The called user can press the talk back softkey (unmarked key) on their phone display, or the called user can invoke the join() JTAPI API, that is provided on TerminalConnection, to start talking to the caller. Only a specially-configured intercom address on the phone can initiate an intercom call. JTAPI creates a new type of address object named CiscoIntercomAddress for intercom addresses that are configured on the phone. The application can get all of the CiscoIntercomAddress that are present in the provider domain by calling the interface getIntercomAddresses () on CiscoProvider. An intercom call can be initiated from the JTAPI interface by calling the CiscoIntercomAddress.ConnectIntercom () interface. The application provides an intercom target DN for this interface. If the intercom target DN is preconfigured or preset by the application, the application can get the target DN by calling the CiscoIntercomAddress.getTargetDN() interface; otherwise, the application must provide a valid intercom target for the call to be successful. An intercom call is autoanswered at the intercom target; JTAPI will move TerminalConnection/CallCtlTerminalConnection at the intercom target to the Passive/Bridged state. The application can invoke a join () interface on the TerminalConnection of the intercom target to initiate talk back. If join () is successful, the TerminalConnection/CallCtlTerminalConnection of the intercom target will move to an Active/Talking state. For an intercom call, JTAPI only supports the following interfaces:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-12
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 6.0
The application cannot perform any feature operations on an intercom call. JTAPI will throw an exception if the application invokes redirect, consult, transfer, conference, or park for a Connection on a CiscoIntercomAddress. The application will also receive an exception if it tries to invoke setForwarding (), getForwarding (), cancelForwarding (), unPark (), setRingerStatus (), setMessageWaiting (), getMessageWaiting (), setAutoAcceptStatus (), or getAutoAcceptStatus () on CiscoIntercomAddress. Applications can get the value of a configured intercom target DN and the label on a CiscoIntercomAddress from the provided API. JTAPI provides two types of APIs: one to return the default and another to return the current value set for the intercom target. The default value is the intercom target DN and label that are preconfigured through Cisco Unified Communications Manager Administration. The current value is the interim target DN and label that are set by the application. If the application has not set the any value, the current value will be same as the default value. Applications can invoke the API setIntercomTarget () on CiscoIntercomAddress to set the intercom target DN, label, and unicode label. Only one application is allowed to set the intercom target, label, and unicode label for an intercom address. If two applications try to set the value, the first succeeds, and the second receives an exception. When a intercom target DN and label changes, JTAPI provides a CiscoAddressIntercomInfoChangedEv to the AddressObserver that is added to CiscoIntercomAddress. If the application has set an intercom target DN and label, and a JTAPI or CTI failover or failback occurs, JTAPI or CTI will restore the previously set value of the intercom target DN, label, and unicode label. If the JTAPI or CTI cannot restore the intercom target DN, label, or unicode label, JTAPI provides a CiscoAddrIntercomInfoRestorationFailedEv to the AddressObserver on CiscoIntercomAddress. In the case of an application failure, or if for any reason the application goes down, the target DN, label, and unicode label will reset to the default. JTAPI provides the interface resetIntercomTarget () on the CiscoIntercomAddress to reset the intercom target. Auto-answer always stays enabled for CiscoIntercomAddress. The application can invoke the method getAutoAnswerEnabled () on CiscoAddress to get the auto-answer capability of an address. For an intercom target that is connected with one-way media to the Intercom initiator, the device state would be set to CiscoTermDeviceStateWhisper. This is a new device state for the Terminal object. In this state, the Terminal can initiate a new call or receive a new incoming call. If the application enables a filter to receive this device state, the application receives CiscoTermDeviceStateWhisperEv. The application can enable a filter by calling setDeviceStateWhisperEvFilter() on CiscoTermEvFilter. The DeviceStates DEVICESTATE_ACTIVE, DEVICESTATE_HELD, DEVICESTATE_ALERTING all override DEVICESTATE_WHISPER; if one call exists in either the active, held, or alerting state, and another in whisper, the DeviceState will be DEVICESTATE_ACTIVE, DEVICESTATE_HELD, or DEVICESTATE_ALERTING, respectively.
Note
The Cisco JTAPI implements the javax.telephony.TerminalConnection interface join() to let the intercom target talk back to the initiator. The system implements this interface for CiscoIntercomAddresses only. If applications invoke this interface for regular shared lines in a passive or bridged state, JTAPI throws a MethodNotImplimented exception.
Tip
This feature is backward compatible if the application-controlled devices (Terminals) do not have intercom lines configured on them. Applications can disable the intercom feature by not having an intercom line configured on the application-controlled devices (terminals).
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-13
For detailed information about these interface changes, see the following topics:
Do Not Disturb
Do-Not-Disturb (DND) gives phone users the ability to go into the DND state on the phone when they are away from their phones or do not want to answer the incoming calls. The DND softkey enables and disables this feature. From the user pages, users can configure the following settings for DND:
DND Option-Ringer off DND Incoming Call Alert-beep only/flash only/disable DND Timer-value between 0-120 minutes. It specifies a period in minutes to remind the user that DND is active. DND status-on/off
Note
The Application can set the DND status by invoking a new interface on CiscoTerminal. JTAPI will also query the application about any change in the DND status when DND status is set by phone, Cisco Unified Communications Manager Administration, or application. The application must enable the filter in CiscoTermEvFilter to receive the preceding notification. The application can also query for the DND status through a new interface on CiscoTerminal. The application can also query for the DND option through a new interface on CiscoTerminal.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-14
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 6.0
Note
This feature applies to phones and CTI ports. It does not apply to Route points. In the case of emergency calls (made by a CER application) landing on an application that has DND enabled, the system overrides the DND settings and presents the call to the application. A new parameter, FeaturePriority, in the redirect() and selectRoute() APIs on CiscoCall, CiscoConnection, and CiscoRouteSession, respectively, makes this possible. The CER application that initiates the emergency call sets FeaturePriority as FeaturePriority_Emergency. The application will set the feature priority only for emergency calls. In the case of normal calls, applications will either not set the feature priority at all or set it to FeaturePriority_Normal. Applications will not set FeaturePriority_Emergency in case of normal calls. When initiating feature calls such as Intercom, applications need to specify FEATUREPRIORITY_URGENT.
Note
The connect() API on CiscoCall does not support the FeaturePriority parameter. The application will receive an exception if it tries to perform a getDNDStatus(), setDNDStatus() or getDNDOption() before the device is in service. A Post condition has been added to DND to handle a DB update failure or device out-of-service situations if they occur after the setDNDStatus() request is sent. If a DB update failure or device out-of-service condition occurs after the setDNDStatus() request is sent, setDNDStatus() delivers a CiscoTermDNDStatusChangedEv to the application. If this event is not received, a post-condition time-out occurs, and the following exception is thrown: could not meet post conditions of setDNDStatus().
Backward Compatibility
This feature is backward compatible. Applications will see new events if this feature is configured. You can filter the new events through the TerminalEventFilter interface (CiscoTermEvFilter). By default this filter is disabled and the system does not deliver the new events. For additional information, see the following topics:
Secure Conferencing
This feature informs applications whether a call is secure, allowing for secure conference calls. When the overall security status of the call changes, secure conferencing provides applications with a notification in the form of an event on the call. Applications receive the overall call security status of the call in the CiscoCallSecurityStatusChangedEv when the overall call security status changes. When a terminal goes to the talking state, JTAPI provides the call security status information to the
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-15
applications. Applications can query the security status of the call by using a new interface on CiscoCall. The system makes the security status information available to applications when the applications start monitoring an existing call. In shared address scenarios, the system also reports CiscoCallSecurityStatusChangedEv to the RIU parties. The OverallCallSecurityStatus matches the status reported on the active terminals. For example, in a three-party conference with A (Encrypted), B (Encrypted), C (Authenticated), and C' (Authenticated), the system reports CiscoCallSecurityStatusChangedEv with OverallCallSecurityStatus = Authenticated to C and C'. The system delivers this event on a per-call basis. SRTP key information will continue to be sent for encrypted parties whether or not the OverallCallSecurityStatus is Encrypted. For example, in a three-party conference with A (Encrypted), B (Encrypted), and C (non-secure), the OverallCallSecurityStatus of the conference call is NotAuthenticated. However, the media connecting A, B, and the conference bridge will continue to be Encrypted because they are encrypted parties. Thus, A and B will receive SRTP keys despite the OverallCallSecurityStatus.
Tip
Backward Compatibility
This feature is backward compatible. The new parameter EnableSecurityStatusChangedEv in the jtapi.ini file controls the new event CiscoCallSecurityStatusChangedEv generated by the secure conferencing feature. Applications can turn on this parameter by adding the line EnableSecurityStatusChangedEv=1 to the jtapi.ini file to receive this new event. By default, this parameter does not appear in the jtapi.ini file, so event notification is disabled. The setCallSecurityStatusChangedEv() interface on com.cisco.jtapi.extensions.CiscoJtapiProperties lets applications set this ini parameter programmatically. For additional information, see CiscoCallSecurityStatusChangedEv.
When Cisco Unified IP 7931G phones are configured in NoRollOver mode, they operate like regular SCCP phones, and in this mode transfers or conferences cannot be made across the different addresses. JTAPI will support controlling and monitoring of a 7931G phone when it is configured in NoRollOver mode. In RollOver mode, Cisco Unified IP 7931G phones support transfer or conference across different addresses. In this mode, JTAPI does not allow controlling and monitoring of a Cisco Unified IP 7931G phone. Applications see such terminal/addresses as restricted. If a Cisco Unified IP 7931G phone is in the control list of an application user and the phone configuration changes from NoRollOver to RollOver mode, JTAPI sends a CiscoAddrRestrictedEv event for addresses on the Cisco Unified IP 7931G phone and sends a CiscoTermRestrictedEv for terminals, with cause CiscoRestrictedEv.CAUSE_UNSUPPORTED_DEVICE_CONFIGURATION. However, if the phone configuration changes from RollOver to NoRollOver mode, JTAPI sends a CiscoAddrActivatedEv event for addresses on the Cisco Unified IP 7931G phone and sends a CiscoTermActivatedEv for terminals.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-16
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 6.0
If a Cisco Unified IP 7931G phone that is configured in RollOver mode transfers or conferences to JTAPI-controlled addresses, JTAPI applications will not see a common controller in the final and the consult call. This would provide different behavior to the JTAPI application. Depending on how the JTAPI application is processing information that is provided in events, applications may require changes to handle JTAPI events for this transfer or conference scenario. You can disable transfers and conferences across the line by configuring the Cisco Unified IP 7931G phone to NoRollOver mode through the phone configuration window of Cisco Unified Communications Manager Administration. There are two new cause codes for the CiscoRestrictedEv interface. When the terminal or address is restricted because a Cisco Unified IP 7931G phone is configured in RollOverMode, JTAPI sends CiscoAddrRestrictedEv with cause CiscoRestrictedEv.UNSUPPORTED_DEVICE_CONFIGURATION. This release also introduces a default cause code CAUSE_UNKNOWN, which applications should handle.
Backward Compatibility
This feature is backward compatible. You can disable this feature by configuring all Cisco Unified IP 7931G phones in a cluster in NoRollOver mode or by not having any Cisco Unified IP 7931G phones in a Cisco Unified Communications Manager cluster. If any phone in a Cisco Unified Communications Manager cluster is configured with RollOver mode, it may cause changes to the behavior of JTAPI-controlled addresses and terminals. For more information, see CiscoRestrictedEv.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-17
Note
CiscoConferenceStartEv contains an identifier for the requestor party. The method getConferenceControllerAddress returns the terminal connection of the requestor. The new method getOriginalConferenceControllerAddress() for CiscoConferenceStartEv returns the terminal connection of the original controller.
Conference Chaining
The conference chaining feature lets applications join two separate conference calls together. JTAPI applications see chained conference calls represented as two separate calls. When conference calls are chained, JTAPI creates a new connection for the conference chain and provides the CiscoConferenceChainAddedEv event on CallCtlCallObserver. When the conference chain is removed from the call, JTAPI disconnects the conference chain connection and provides the CiscoConferenceChainRemovedEv event on CallCtlCallObserver. From CiscoConferenceChainAdded/RemovedEv, applications can obtain CiscoConferenceChain, which provides a link for all the conference chain connections. Figure 2-1 shows parties A, B, and C in conference call GC1 and parties C, D, and E in conference call GC2.
Figure 2-1 Calls Prior to Chaining
GC1 GC2
Conn-A
Conn-B
Conn-C
Conn-C
Conn-D
Conn-E
After the conference chain is created, the calls will look like Figure 2-2:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-18
210797
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 6.0
Figure 2-2
CiscoConferenceChainAddedEv
Conf-1
Conf-2
Conn-A
GC1
GC2
Conn-B
Conn-C
Conf-2
Conf-1
Conn-D
Conn-E
Applications may get all of the participants of a chained conference from the CiscoChainedConference object, which provides conference chain connections from all the conference calls that are chained together. By browsing through the connections list, applications can get a list of all the chained conference calls; however, applications need to have at least one participant of each conference observed.
Note
For any conference scenario that involves chaining conferences or adding parties to a chained conference call, JTAPI will not provide ConferenceStarted/Ended event. For more information, see the following topics:
No Bandwidth: When a call cannot be delivered to a remote destination due to no bandwidth, the system reroutes the call to the AAR Destination Mask or Voice Mail. The user makes these configuration changes from the directory number window of the Cisco Unified Communications Manager GUI. Unregistered DN: When a call is placed to an unregistered DN, the system delivers the call to a DN that is configured for Call Forward on No Answer (CFNA), as in releases prior to release 6.0.
When a call is forwarded due to Call Forward No Bandwidth (CFNB) to another cluster destination over a trunk/gateway using QSIG then call history might get lost. For example, if Phone A calls Phone B, which is in a low bandwidth location, with CFNB set to forward calls to Phone C, which is in a different cluster, and the QSIG protocol is used for this intercluster forwarding, then the original called party and the last redirecting party might not get passed to the destination party.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
210798
2-19
A calls B; B transfers the call to a parked DN. On completion of the transfer, the A to B call is parked at the specified parked DN. A will receive MOH (if configured). When C unparks the call (by dialing the prefix code and park code), A and C connect. If A calls the parked DN directly, A connects to the parked DN and the system marks this parked DN as busy. A stays connected to this parked DN until park reversion. If C does not unpark the call at the parked DN, the call park reverses back to the DN that parked the call (B), and A and B connect again. B can again try to d-Park to another parked DN. When park reversion occurs, Cisco Unified Communications Manager JTAPI passes a new reason code to the application. CTI sends the parked number to Cisco Unified Communications Manager JTAPI in the form Park Number: (<Prefix Code>)<DPark DN>. Cisco Unified Communications Manager JTAPI parses this and exposes both Prefix Code and DPark DN to applications. When a call is unparked, the parked party and unparking party both receive a CPIC event with the reason given by CTI, and the parked party connects to the unparking party. When party A calls a dPark DN and party B also calls the same dPark DN, the system can connect either A or B to the dPark DN, and the other party will be disconnected.
Cisco Unified Communications Manager JTAPI Support
Cisco Unified Communications Manager JTAPI supports this feature. When the system transfers a call to a directed call park DN (dparked), the application sees a connection created for directed call park DN, and the call control connection state is CallControlConnection.QUEUED. The system delivers CiscoTransferstart and end events. An application can use the new interface on CiscoConnection to get the prefix code needed to unpark the call.
Performance and Scalability
This feature provides the same performance impact as the existing transfer feature.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-20
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 6.0
To support this feature, Cisco Unified Communications Manager JTAPI exposes voicemail box numbers for called party, lastRedirected party and originalCalled party. These voicemailbox fields are exposed on CiscoPartyInfo, which is exposed on CiscoCall object. If voicemail is not configured for a party, then Cisco Unified Communications Manager JTAPI will return empty Strings for voicemailbox fields. In prior releases Cisco Unified Communications Manager JTAPI did not expose voicemailbox fields to applications, so Cisco Unified Communications Manager JTAPI voicemailbox applications could not determine whether a voicemail box mask was configured for a voicemail profile, which could result in a voicemail box number that is different from the directory number. The new interfaces for CiscoCall are:
This feature does not increase the traffic from the Cisco Unified Communications Manager JTAPI layer to the application layer. However, there could be small performance impact because of additional fields passed over the network.
Privacy On Hold
This feature enhances the privacy of private held calls. When privacy is enabled, only the phone that placed a call on hold can retrieve that call, and the calling name and number are not displayed. The feature provides a shared address the ability to determine whether other shared addresses may barge into a call. When privacy is enabled, other shared address cannot barge into the call. Privacy is a terminals property. On IP phones there is a Privacy feature button to enable and disable the privacy feature. Privacy can be dynamically enabled and disabled for the active calls on the terminal. When Privacy is on for a call, the TerminalConnection state available to other shared addresses is set to In Use. If Privacy status is changed during the CallProgress, CiscoTermConnPrivacyChangedEvent is delivered to the application. In prior releases, if Privacy is enabled and the call is put on hold, then all TerminalConnections will be in TermConnHeld state and any other shared Address terminalConnection can unhold the call. In Cisco Unified Communications Manager 4.2, if the Enforce Privacy on Held Calls service parameter is enabled, and if Privacy is enabled for a call, then putting the call on hold does not change the terminalConnections of other shared addresses and they remain in the In Use state.
Performance and Scalability
There is no performance impact with this feature because there is no additional traffic generated between Cisco Unified JTAPI, applications, and Cisco Unified Communications Manager.
CiscoRTPInputStartedEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-21
CiscoRTPHandle represents the callID of the call in Cisco Unified Communications Manager and stays the same as long as the call is active on the terminal. At any particular terminal/address, although the call and the associated GCID can change, CiscoRTPHandle will remain constant.
Hold Reversion
The Hold Reversion feature provides applications with a notification, when Cisco Unified Communications Manager notifies an address about the presence of a held call, when the call has been ONHOLD for a certain amount of time. Applications receive this notification as the CiscoCallCtlTermConnHeldReversionEv call control terminal connection event on their call observers on the particular address which has put the call ONHOLD. This notification is provided only once for the applications for the held call. The event is sent only to the terminal connection of the terminal where the call was put on hold. If the address represents a shared line address, other terminal connections of the shared line address will not receive the event. To receive this event, applications must add a call observer to the address. The cause for this event will be CAUSE_NORMAL. If the call observer is added after the hold reversion timer has expired and the notification has already been sent to the phone, applications will receive CiscoCallCtlTermConnHeldReversionEv with cause CAUSE_SNAPSHOT. For more information, see CiscoCallCtlTermConnHeldReversionEv.
If the application is observing only B, JTAPI creates a Connection for Y and B, and CiscoCall.getCurrentCallingParty() would return Address Y. If the application is observing both A and B, a Connection for A and B gets created, a Connection for Y gets temporarily created and dropped, and CiscoCall.getCurrentCallingParty() would return Address Y.
There could be other inconsistencies in the calling information if further features get performed on a basic call. Cisco recommends that you not configure a calling party transformation mast for a translation pattern that might get applied to JTAPI application-controlled addresses.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-22
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 6.0
Note
Other feature interactions are not supported including those during which the calling party changes. New Cisco extensions to the CallCtlConnOfferedEv and RouteEvent classes are created and expose a method to obtain the calling party IP address . The new extensions are CiscoCallCtlConnOfferedEv and CiscoRouteEvent. An empty value returned indicates that the calling party IP address is not available.
Basic Call Scenario
JTAPI application monitors party C Party B is an IP phone A talking B B intiates a consultation transfer call to C IP Address of B is available to JTAPI application monitoring party C
Consultation Conference Scenario
JTAPI application monitors party C Party B is an IP phone A talking B B intiates a consultation conference call to C IP Address of B is available to JTAPI application monitoring party C
Redirect Scenario
JTAPI application monitors party B and party C Party A is an IP phone A calls B IP Address of A is available to JTAPI application monitoring party B Party A redirects B to party C Calling IP address is not available to JTAPI application monitoring party B Calling IP address of B is provided to JTAPI application monitoring party C
Backward Compatibility
This feature is backward compatible. Application must invoke a new API to query IP address of a call.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-23
Join Across Lines, page 2-24 New Error Code in CiscoTermRegistrationFailedEv, page 2-25 Star (*) 50 Update, page 2-25 Call Forward Override, page 2-25
This feature is backward compatible, as there are no changes in the behavior of conference when this feature is not enabled. This feature can be enabled/disabled on a per device basis. If the Join Across Lines setting on the device is set to Default, then the system-wide CallManager service parameter Join Across Lines Policy setting will be used. If this feature is enabled and application does a join across lines, application will see difference in behavior as stated above. JTAPI applications written for 5.1 should be backward compatible with JTAPI released with 5.1.2. A JTAPI client upgrade is required only if new features are used.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-24
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.1
iDivert Legacy BehaviorDetermines whether the phone uses the legacy iDivert behavior when a user presses the iDivert softkey, or the enhanced *50 iDivert behavior. If the iDivert legacy service parameter is set to true, the iDivert legacy behavior is adopted and vice versa. Allow QSIG during iDivertDetermines whether iDivert legacy is allowed in deployments that have voice messaging integration over QSIG trunks and is only used when the Use Legacy iDivert service parameter is set to true. iDivert User Response timerDetermines the number of seconds that Cisco Unified Communications Manager Administration waits for a response from the user before the iDivert screen is removed. If no user action occurs by the time this timer expires, the screen is removed from the phone. If the Use Legacy iDivert service parameter is set to true, Cisco Unified Communications Manager Administration ignores this parameter.
There is no interface change at JTAPI layer for this feature. The behavior changes from JTAPI application point of view is that Calls could either go to voicemail of OrigicalCalled Party or Called
Backward Compatibility
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-25
CFA behavior * Bob calls Alice. Call goes to Alice and does not follow CFA back to himself. * Daniel calls Alice. Call follows CFA to Bob. * Bob answers and transfers the call to Alice. Bob can do this because Alice has her phone forwarded to Bob. There is no interface change to JTAPI layer with this feature. However JTAPI applications could see a difference in behavior when CiscoAddress.setForward() API is invoked. In scenario where CFA target calls the CFA initiator like described in above example, call will not be forwarded if feature is enabled.
Backward Compatibility
JTAPI applications written for 5.0 should be backward compatible with JTAPI released with 5.1.release. JTAPI Client Upgrade Application doesnt require JTAPI Client upgrade to run or be backward compatible. JTAPI Client upgrade is required only if new features are used.
Partition Support, page 2-27 Hairpin Support, page 2-30 QoS Support, page 2-30 Transport Layer Security (TLS), page 2-31 SIP Phone Support, page 2-37 Secure Real-Time Protocol Key Material, page 2-40 SIP REFER/REPLACE, page 2-47 SIP 3XX Redirection, page 2-49 Terminal and Address Restrictions, page 2-50 Unicode Support, page 2-53 Linux, Windows, and Solaris Installation, page 2-56 Silent Install, page 2-57 Command Line Invocation, page 2-57 JTAPI Client Installer, page 2-57 JRE 1.2 and JRE 1.3 Support Removal, page 2-58 Superprovider and Change Notification, page 2-59 Alternate Script Support, page 2-61 Half-Duplex Media Support, page 2-61 Network Alerting, page 2-63 Auto Updater for Linux, page 2-63 Call Select Status, page 2-64 JTAPI Version Information, page 2-64
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-26
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
Partition Support
Prior to Cisco Unified Communications Manager Release 5.0, JTAPI did not support partitions. JTAPI considered addresses with the same DN, but different partitions, as same address. It created only one Address object for such cases because addresses are identified only by their DN and not by their partition information. Beginning with Release 5.0, JTAPI supports addresses that have the same DN but belong to different partitions and treats them as different addresses. Partition information of the addresses is exposed to applications through the methods specified below. Applications that want to make use of this partition support feature must use the API provided to them through JTAPI interfaces and use the address objects accordingly. This feature is backward compatible. JTAPI supports the current APIs that are used to open and access address objects. In Cisco Unified Communications Manager Release 5.0, JTAPI is partition aware and the following configurations are supported.
Addresses with the same DN, in the same partition, and in different devices get treated as shared lines. Addresses with the same DN, in the same partition, and in the same device are not allowed. Addresses with the same DN, in different partitions, and in the same device get treated as different addresses. Two address objects get created for this scenario, and the application can distinguish between the two by calling the getPartition() API on the address objects. Addresses with the same DN, in different partitions, and in different devices get treated as different addresses. Two address objects get created for this scenario and the application can distinguish between the two by calling the getPartition() API on the address objects.
Partition support changes in JTAPI are confined to the address objects and do not affect any other functions or classes of JTAPI. The following sections specify the interface changes.
CiscoAddress Interface
A new method is provided in this class with the following signature. string getPartition () Returns the partition string of the address object. Applications need to use this method to get the partition information. JTAPI will use this partition information to distinguish between addresses that have the same DN but belong to different partitions and sends the partition information to open the specific addresses. For example, a provider open returns two addresses, A(1000, P1) and B (1000, P2), where A and B denote the address objects, 1000 denotes the DN of the address objects, and P1,P2 indicate the partitions to which the addresses belong.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-27
Figure 2-3
When the user invokes A.getPartition (), P1 gets returned while B.getPartition () returns P2. The provider.getAddresses() method returns multiple addresses in which the Address objects have the same DN but different partition information. An Application can use this method to distinguish between two Address objects that have the same DN but belong to different partitions.
CiscoProvider Interface
Address[]
getAddress(String number)
Returns an array of Address objects that corresponds to the number and different partitions. Address
getAddress(String number, String partition)
Returns the Address object that has the same DN as the number parameter and belongs to the same partition as specified by the partition parameter. If two addresses A(1000, P1) and B(1000,P2) exist, where A and B denote the address objects, 1000 denotes the DN of the address objects, and P1,P2 indicate the partitions to which the addresses belong, when an application calls provider.getAddress(1000), it gets two address objects, A and B.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-28
141464
Addr B 1000 P2
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
Figure 2-4
A and B
Addr A 1000 P1
Application
Provider
Provider.getAddress(1000)
141465
Addr B 1000 P2
When the application calls A.getPartition(), it returns P1, B.getPartition() returns P2, and so on. An Application can distinguish between the two address objects that are using the getPartition method. Consider the case where the application calls provider.getAddress(1000, P1). In this case, the application specifically looks for the address object whose DN is 1000 and partition is P1. In this case, A gets returned by the provider object.
Figure 2-5 Provider Calls a Specific Address and Partition
Provider.getAddress(1000,P1) Application
Addr A 1000 P1
A is returned. Provider
CiscoProvCallParkEv Event
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
141466
Addr B 1000 P2
2-29
string
getParkPartyPartition()
Returns the partition string of the park DN. For details on the interface changes, see Chapter 5, Cisco Unified JTAPI Implementation. To view the message sequences for partitions support, see Appendix A, Message Sequence Charts.
Hairpin Support
A hairpin call happens when the call leaves one cluster to some other device across the gateway, then comes back to a device in the same cluster. The GCID for the call coming back into the cluster would be different than the GCID that originally initiated the call, even though both are in the same cluster. In previous releases, if both parties were controlled by JTAPI, then there were two connections: one for CiscoAddress.Internal and the other for CiscoAddress.External. JTAPI supports hairpin calls when an application monitors both ends of the hairpin call. Previously only one end of the hairpin call could be monitored because the address was represented only as a DN. In the current release, if there are two addresses with the same DN but one is within the same cluster and the other is across the gateway, then JTAPI creates a separate address object for the external DN and only one connection is returned for an address, based on its type. This process avoids hairpin issues, as in previous releases when the address was represented only as a DN and when an application retrieved connections for the address it used to get two connections. Since fixing these issues could have caused compatibility issues with previous releases, a generic solution for these issues was developed in this release. Calls involving an external party with the same DN as the monitored local party are now properly supported; however, no new interface is added for this feature.
Backward Compatibility
QoS Support
QoS support is enhanced in this release to enable QoS (DSCP marking) in both directions of the application CTIManager connectivity. In previous releases it was enabled in only one direction: CTIManager application. The DSCP (QoS) values for both directions of the link are set by the DSCP IP CTIManager to Application value in the CTIManager service parameters. The default value is CS3(precedence 3) DSCP (011000). The DSCP value for Audio calls service parameter is the recommended QoS value for audio calls. This value is exposed to JTAPI applications. The following setup procedures must be performed on the client machine for JTAPI QoS to work on Windows platforms. If you are running Windows 2000, follow these steps:
Step 1 Step 2
Start the Registry Editor (Regedt32.exe). Go to key: HKEY_LOCAL_ MACHINE on Local Machine\System\CurrentControlSet\Services\Tcpip\Parameters\
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-30
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
On the Edit menu, click Add Value. In the Value name box, enter DisableUserTOSSetting. In the Data Type list, click REG_DWORD and then click OK. In the Data box, enter a value of 0 (zero) and then click OK. Quit Registry Editor and then restart the computer.
If you are running Windows XP or Windows Server 2003, follow these steps:
Step 1 Step 2 Step 3 Step 4
Start Registry Editor (Regedt32.exe). Go to key: HKEY_LOCAL_ MACHINE on Local Machine\System\CurrentControlSet\Services\Tcpip\Parameters\ On the Edit menu, point to New, and then click DWORD Value. Enter DisableUserTOSSetting as the entry name, and then press ENTER. When you add this entry, the value gets set to 0 (zero). Do not change the value.
Step 5
For more information on using the Registry Editor to set the Internet Protocol Type of Service bits, see the topic Setsockopt is unable to mark the Internet Protocol type of service bits in Internet Protocol packet header on the Microsoft technical support web site. These JTAPI interfaces support QoS:
Provider Interface
int
getAppDSCPValue()
Returns the DSCP IP for CTI applications service parameter. This value specifies the DSCP value that JTAPI sets on its link to CTI. Applications can get this value by querying the provider object by using this API every time that they get a ProviderInServiceEvent. private int
precedenceValue = 0x00
To store the DSCP value that CTI provides. For details on these interfaces, see Chapter 5, Cisco Unified JTAPI Implementation. To view the message flow for QoS, see Appendix A, Message Sequence Charts.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-31
In the Cisco Unified Communications Manager environment, the server certificate exists in the form of CTL on the TFTP server, and JTAPI downloads this certificate. The initial download of CTL is trusted and occurs without verification, so Cisco strongly recommends performing this download in a secure environment. One of the two System Administrator Security Tokens (SAST) that are present in the CTL file signs the CTL; subsequent CTL downloads get verified with the SAST from the old CTL file. JTAPI connects to CAPF by using the CAPF protocol to get the client certificate (LSC). These certificates can be authenticated with the issuers certificate present in CTL. CTI tracks the number of provider connections created per client certificate. Applications can create only one provider by using a client certificate. If more than one instance of a provider is created, both providers get disconnected from CTI and go out of service. JTAPI will retry the connection to CTI to bring the original provider in service; however, if both instances of provider continue to exist, after a certain number of retries provider will get permanently shut down, and the client certificate will be marked as compromised. Any further attempt to create a provider by using this client certificate will fail. Applications must contact the administrator to configure a new instanceId and download a new client certificate to resume operation.
Note
Each client certificate is associated with a unique instanceId configured in the Cisco Unified Communications Manager database. Applications can provide an instanceId in providerString as an optional parameter to use a unique certificate while creating a CiscoProvider. To run multiple instances of applications with TLS, the application user should be configured in the Cisco Unified Communications Manager database with multiple instanceIDs. Applications use these unique instanceIDs to get unique client certificates for each instance. The JTAPI preferences application provides a graphic user interface to configure the Security parameters and update server/client certificates. Application users need to configure the TFTPServer IP address, CAPFServer IP address, Username, InstanceID, and AuthorizationString parameters through the JTAPI preferences to download/install certificates on the application server. New interfaces are provided for JTAPI client applications on the client layer object. For example, a JTAPI client interface is provided on the CTIClientProperties class. This feature is backward compatible with previous releases as JTAPI Applications can still connect to CTIManager on non-secure socket connections. However, this option will be available only for a limited number of releases and could be removed in future releases. It is recommended that Applications move to secure connections. The following sections describe the interface
CiscoJtapiPeer.getProvider()
public javax.telephony.Provider getProvider(java.lang.String providerString) throws javax.telephony.ProviderUnavailableException changes for TLS support in JTAPI.
This interface is modified to take a new optional parameter InstanceID. It returns an instance of a Provider object given a string argument that contains the desired service name. Optional arguments may also be provided in this string, with the following format:
< service name > ; arg1 = val1; arg2 = val2; ...
Where < service name > is not optional, and each optional argument=value pair that follows is separated by a semicolon. The keys for these arguments are implementation-specific, except for two standard-defined keys:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-32
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
InstanceID is needed when two or more instances of an application want to connect to Provider (CTIManager) through a TLS connection from the same client machine. Each instance of an application requires its own unique X.509 certificate to establish a TLS connection. If JTAPI attempts to open more that one connection with same username/instanceID, CTIManager rejects the TLS connection. If instanceID is not provided, JTAPI randomly picks one of the instances of USER and, in that case, the connection may fail if a connection for the selected Instance already exists. If the argument is null, this method returns some default provider as determined by the JtapiPeer object. The returned provider is in the Provider.OUT_OF_SERVICE state.
Post-conditions:
this.getProvider().getState() = Provider.OUT_OF_SERVICE
Specified bygetProvider in interface javax.telephony.JtapiPeer ParametersproviderStringThe name of the desired service plus an optional argument. ReturnsAn instance of the Provider object. Throwsjavax.telephony.ProviderUnavailableExceptionIndicates that a provider corresponding to the given string is unavailable. CiscoJtapiProperties
JTAPI provides an interface on CiscoJtapiProperties to enable or disable the security option and install the client/server certificates that are required to establish a secure TLS socket connection.
com.cisco.jtapi.extensions
This interface returns a Hash table with all the parameters set for User/InstanceID. The Hash table gets set with the following keyvalue pairs:
Table 2-1
KEY user string instanceID string AuthCode string CAPF string CAPFPort string TFTP string TFTPPort string CertPath
VALUE userName InstanceID authCode capfServer IP-Address capfServer IP-Address port tftpServer IP-Address tftpServer IP-Address port certificate Path
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-33
Table 2-1
string certificateStatus Boolean certificate status(true for updated/ false for not updated)
ReturnsHash table in the format described previously for the first user and instance.
getSecurityPropertyForInstance
public java.util.Hashtable getSecurityPropertyForInstance (java.lang.String user, java.lang.String instanceID)
This interface returns a Hash table with all the parameters set for User/InstanceID. The Hash table is set with the following keyvalue pairs:
Table 2-2
KEY user string instanceID string AuthCode string CAPF string CAPFPort string TFTP string TFTPPort string CertPath string securityOption
VALUE userName InstanceID authCode capfServer IP-Address capfServer IP-Address port tftpServer IP-Address tftpServer IP-Address port certificate Path Boolean security option(true for enable/ false for disabled)
string certificateStatus Boolean certificate status(true for updated/ false for not updated)
Parameters:
user - UserName for which you want security parameters instanceID - InstanceID for which you want security parameters
ReturnsHash table in above described format.
setSecurityPropertyForInstance
public void setSecurityPropertyForInstance(java.lang.String user, java.lang.String instanceID, java.lang.String authCode, java.lang.String tftp, java.lang.String tftpPort, java.lang.String capf, java.lang.String capfPort, java.lang.String certPath, boolean securityOption)
You can use this interface to set security properties for the following parameters:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-34
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
Parameters:
userUserName for which the security parameter is being updated instanceIDInstanceID for which the security parameter is being updated authCodeAuthorization string capfIP-Address of CAPF server capfPortIP-Address port number on which the CAPF server is running, as defined in a CallManager Service parameter. If the value is null, the default value is 3804. tftpIP-Address of TFTP server tftpPortIP-Address port number on which the TFTP server is running. The Cisco Unified Communications Manager TFTP server usually runs on port 69. If the value is null, the default value is 69. certPathPath where certificate needs to be installed
updateCertificate
public void updateCertificate(java.lang.String user, java.lang.String instanceID, java.lang.String authcode, java.lang.String ccmTFTPAddress, java.lang.String ccmTFTPPort, java.lang.String ccmCAPFAddress, java.lang.String ccmCAPFPort, java.lang.String certificatePath)
This interface installs an X.509 client certificate for the USER instance in the certificate store by connecting to the Cisco Unified Communications Manager Certificate Authority Proxy Function (CAPF) server. It also downloads the Certificate Trust List (CTL) from the Cisco Unified Communications Manager TFTP server. If the user credentials are not valid, this method throws a PrivilegeViolationException. If the TFTP server or CAPF server address is not correct, this method throws an InvalidArgumentException. Every instance of an application requires a unique client certificate. If a multiple instanceID is configured in the Cisco Unified Communications Manager database, applications can call this interface multiple times to install a client certificate for every instance.
Pre-conditionsWhen calling this interface, an application should have network connectivity with the Cisco Unified Communications Manager CAPF and TFTP servers. Post-conditionsThis process installs client and server certificates on the JTAPI application machine. Parameters:
userName of the CTI application user that is configured in the Cisco Unified Communications Manager database instanceIDApplication instance ID that is configured in the Cisco Unified Communications Manager database. Every instance of an application requires a unique ID. authCodeAuthorization string that is configured in the Cisco Unified Communications Manager database. The authCode can be used only once for getting certificates. ccmTFTPAddressIP-Address of the Cisco Unified Communications Manager TFTP server. ccmTFTPPortIP-Address port number on which the Cisco Unified Communications Manager
TFTP server is running. The Cisco Unified Communications Manager TFTP server usually runs on port 69. If null, the default value is 69.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-35
ccmCAPFAddressIP address of the Cisco Unified Communications Manager CAPF server. ccmCAPFPortPort number on which the Cisco Unified Communications Manager CAPF server
is running, as defined in the Cisco Unified Communications Manager Service parameters. If the value is null, the default value is 3804.
certificatePathDirectory path where the certificate needs to be installed
Throws:
InvalidArgumentExceptionThis exception gets thrown for an invalid TFTP server or CAPF
server address.
PrivilegeViolationExceptionThis exception gets thrown for an invalid user, instanceID, or
authCode.
IsCertificateUpdated
public boolean IsCertificateUpdated (java.lang.String user, java.lang.String instanceID)
This interface provides information about whether client and server certificates are updated for a given user/instanceID.
Parameters:
userUserName as defined in the Cisco Unified Communications Manager Administration. instanceIDInstanceID for the specified UserName.
ReturnsTrue if certificates are already updated; false if certificates are not updated.
updateServerCertificate
public void updateServerCertificate(java.lang.String ccmTFTPAddress, java.lang.String ccmTFTPPort, java.lang.String ccmCAPFAddress, java.lang.String ccmCAPFPort, java.lang.String certificatePath)
This interface installs an X.509 server certificate that is given the certificate path. If the TFTP server address is not correct, this method throws an InvalidArgumentException. Auto update applications should use this interface to update the server certificate before invoking an HTTPS connection with Cisco Unified Communications Manager.
Pre-conditionsWhen calling this interface, applications should have network connectivity with the
TFTP server.
Post-conditionsThis interface installs the server certificate on the JTAPI application machine. Parameters:
ccmTFTPAddressIP address of the Cisco CallManager TFTP server. ccmTFTPPortPort number on which the Cisco Unified Communications Manager TFTP server is
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-36
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
ccmCAPFPortPort number on which the Cisco Unified Communications Manager CAPF server
The JTAPI Preferences dialog box includes a Security tab to let application users configure the username, instanceId, authCode, TFTP IP address, TFTP port, CAPF IP server address, CAPF server port, and certificate path, and enable secure connection.
CAPF server port number defaults to 3804. This value is configurable in the Cisco Unified Communications Manager Administration service parameters page. The CAPF server port value entered through JTAPI Preferences should be same as that configured in Cisco Unified Communications Manager Administration.
TFTP server port number defaults to 69. This value should not be changed unless you are advised to do so by the System Administrator.
Certificate Path is where the application wants the sever and client certificates to be installed. If this field is left blank, the certificates get installed in the ClassPath of JTAPI.jar. Certificate update Status provides information on whether a certificate has been updated or not. You must select Enable Secure Connection to enable a secure TLS connection to Cisco Unified Communications Manager. If Enable Security Connection is not selected, JTAPI makes a non-secure connection to CTI even if the certificate is updated/installed.
The Enable Security Tracing check box lets you enable or disable tracing for the certificate installation operation. If tracing is enabled, you can select three different levels, Error, Debug, or Detailed, from the drop-down menu.
The JTAPI Preference UI can be used to configure a security profile for one or more than one userName/instanceID pair. When application users revisit this page, and have previously configured security profile for a userName/instanceID pair, the security profile automatically gets populated when the user enters a username/instanceID and clicks on any other edit box. One change in the JTAPI Preferences UI is that the Trace Levels tab is renamed JTAPI Tracing. This is to highlight the fact that the JTAPI Tracing tab only lets you change trace setting for the JTAPI layer. Tracing for the installation of Security certificates must be enabled on the Security tab.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-37
JTAPI applications can only control TNP-based SIP phones, which includes Cisco Unified IP 7970 phones. Applications should not include Cisco Unified IP 7960, 7940, and other phones that are running the SIP protocol in their control list. JTAPI applications cannot control third-party SIP phones, so third-party SIP phones should not be included in the control list.
Tip
The order of events for consult calls is different for SIP and SCCP phones. Consider the following scenario:
a. Terminal A initiates a call to the shared line B/B'. b. The shared line initiates a consult call to Terminal C.
However, if the shared line is a SCCP device, the call events are Select -> OnHold -> NewCall on both terminals. If the application is only monitoring, call.getConsultingTerminalConnection() may return null. JTAPI supports the following features for SIP phones:
Call.connect; offhook answer; disconnect; drop; hold, unhold consult; transfer; conference; redirect playdtmf, deviceData
CiscoTermDeviceStateEv, RTP events, inService, and OutOfService MediaTermConnDtmfEv (only out of band is supported), transfer start and end events, conference start and end events, CiscoToneChangedEv, and CiscoTermConnPrivacyChangedEv
SIP phone behavior differs from that of SCCP phones in the following ways:
Call RejectionWhen a call is made to a SIP phone, the phone can choose to reject the call. In this case, applications will see CallActive, ConnCreatedEv followed by ConnDisconnectedEv for the address on the SIP terminal. This is similar to RP rejecting the call. Consult without media calls involving SIP phones should be transferred within 1.5 seconds after the call is connected. For SIP phones, enbloc dialing is always used even if the user first goes off hook before dialing digits. The phone will wait until all the digits are collected before sending the digits to the Cisco Unified Communications Manager. This means that CallCtlConnDialingEv will get delivered only after enough digits are pressed on the phone to match one of the configured dialing patterns.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-38
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
Applications should configure out of band DTMF on all devices to receive MediaTermConnDtmfEv.
Events for CTI ports, route points, and SCCP phones are not changed. When a SIP TNP phone using UDP as transport fails connectivity with Cisco Unified Communications Manager, JTAPI applications receive the events CiscoTermOutOfServiceEv and CiscoAddrOutOfServiceEv for the terminal and address defined for the phone. Because of the inherent delay in UDP in detecting the connectivity loss, the TNP-based SIP phone may visually show as registered after applications already have been notified with the out-of-service events. If Cisco Unified IP Phones 7960,7940, and non-TNP phones running SIP, are included in the control list, exceptions will be thrown when observers (both observer and call observers) are added to the address or terminal and CiscoTermRestrictedEv is delivered to a provider observer. The cause for these events would be CiscoRestrictedEv.CAUSE_UNSUPPORTED_PROTOCOL. CiscoTerminal exposes new interface getProtocol() to indicate whether terminal is an SCCP phone or a SIP phone. CiscoTerminalProtocol defines the values that are returned by getProtocol(). The following new interfaces defined on CiscoCall let applications get URL information for external SIP entities.
Public interface CiscoCall
int
getUrlType() Final int URL_TYPE_TEL Final int URL_TYPE_SIP Final int URL_TYPE_UNKNOWN getHost()
string
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-39
int
CiscoTerminalProtocol
getProtocol ()
PROTOCOL_NONE
Indicates the device is using SCCP protocol to communicate to Cisco Unified Communications Manager static int
PROTOCOL_SIP
Indicates the device is using SIP protocol to communicate to Cisco Unified Communications Manager
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-40
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
This enhancement also supports a secure media termination for CTIPorts and RoutePoints. To do this, the application passes in supported encrypted algorithms in CTIPort and route point register requests. The application gets an error if no TLS link and no SRTP Enabled flags exist. Whether media are encrypted or not depends on whether the other end is interested in secure media and whether the algorithm is negotiated successfully. For mid-call monitoring, if the application comes up after a call is established between two end points, the application must query Terminal.createSnapshot() and snapshot event CiscoTermSnapshotEv. CiscoTermSnapshotCompletedEv gets sent, which indicates whether the current media between end points is secure or not. Applications can query CiscoMediaCallSecurityIndicator to get a security indicator for a call; however, this does not contain any key material in the event. If no calls exist on any of the lines on the terminal, applications only get CiscoTermSnapshotCompletedEv. To maintain backward compatibility, these events get generated only when an application enables the snapShotRTPEnabled filter in CiscoTermEvFilter. CiscoRTPHandle gets added in all RTP events so that applications can correlate RTP events related to a single call. For backward compatibility, no new events are generated when there is no secure media. For more information on SRTP, see the Secure RTP Library API Documentation by David McGrew on SourceForge.net. The following sections describe the interface changes for SRTP key material.
Public Interface CiscoMediaEncryptionKeyInfo
int
getAlgorithmID()
This method returns the media encryption algorithm for the current stream. int
getIsMKIPresent()
An MKI indicator that indicates whether MKI is present. Key management defines, signals, and uses the MKI. int
getKeyLength ()
This method returns the master key for the stream. int
getSaltLength ()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-41
byte[]
getSalt()
This method returns the salt key for the stream. int
keyDerivationRate()
static int
MEDIA_ENCRYPTED_KEYS_AVAILABLE
Indicates that media terminated is secured and keys are available. static int
MEDIA_ENCRYPTED_KEYS_UNAVAILABLE
Indicates that media is terminated in secured mode, but keys are not available because SRTP is not enabled in Cisco Unified Communications Manager Administration User windows. This could be because either no TLS exists or no IPSec is configured for this application. static int
MEDIA_ENCRYPTED_USER_NOT_AUTHORIZED
Indicates that media is terminated in secured mode, but keys are not available because user is not authorized to get the keys. static int
MEDIA_NOT_ENCRYPTED
CiscoMedia EncryptionKeyInfo
getCiscoMediaEncryptionKeyInfo ()
Returns CiscoMediaEncryptionKeyInfo only if the provider is opened with TLS link and if SRTP enabled option is set for the application in Cisco Unified Communications Manager User Administration; otherwise, it returns null.
getCiscoMediaSecurityIndicator()
int
Returns media security indicator, which is one of the following constants from the CiscoMediaSecurityIndicator:
MEDIA_ENCRYPTED_KEYS_AVAILABLE MEDIA_ENCRYPT_USER_NOT_AUTHORIZED MEDIA_ENCRYPTED_KEYS_UNAVAILABLE MEDIA_NOT_ENCRYPTED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-42
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
CiscoCallID
getCallID ()
Returns CiscoCallID object if CiscoCall is present when this event is sent. If no CiscoCall is present, this method returns null. CiscoRTPHandle
getCiscoRTPHandle ()
Returns CiscoRTPHandle object. Applications can get a call reference by using CiscoProvider.getCall( CiscoRTPHandle ). If no call observer exists, or if there was no call observer when this event is delivered, CiscoProvider.getCall( CiscoRTPHandle ) may return null.
CiscoRTPOutputKeyEv
CiscoMedia EncryptionKeyInfo
getCiscoMediaEncryptionKeyInfo ()
Returns CiscoMediaEncryptionKeyInfo only if the provider is opened with TLS link and if the SRTP enabled option is set for the application in Cisco Unified Communications Manager User Administration. Otherwise, it returns null.
getCiscoMediaSecurityIndicator()
int
Returns media security indicator, which is one of the following constants from CiscoMediaSecurityIndicator:
MEDIA_ENCRYPTED_KEYS_AVAILABLE MEDIA_ENCRYPT_USER_NOT_AUTHORIZED MEDIA_ENCRYPTED_KEYS_UNAVAILABLE MEDIA_NOT_ENCRYPTED
CiscoCallID
getCallID ()
Returns CiscoCallID object if CiscoCall is present when this event is sent. If no CiscoCall is present, this method returns null. CiscoRTPHandle
getCiscoRTPHandle ()
Returns CiscoRTPHandle object. Applications can get a call reference by using CiscoProvider.getCall(CiscoRTPHandle). If no call observer exists, or if there was no call observer when this event is delivered, CiscoProvider.getCall( CiscoRTPHandle ) may return null.
CiscoTermSnapshotEv
getMediaCallSecurityIndicator ()
Returns media security status for each active call on this device.
CiscoTermSnapshotCompletedEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-43
CiscoMediaCallSecurityIndicator
int
getCiscoMediaSecurityIndicator()
Returns media security indicator, one of the following constants from CiscoMediaSecurityIndicator:
MEDIA_ENCRYPTED_KEYS_AVAILABLE MEDIA_ENCRYPT_USER_NOT_AUTHORIZED MEDIA_ENCRYPTED_KEYS_UNAVAILABLE MEDIA_NOT_ENCRYPTED
CiscoCallID
getCallID ()
Returns a CiscoCallID object if a CiscoCall is present when this event is sent. If no CiscoCall is present, this method returns null. CiscoRTPHandle
getCiscoRTPHandle ()
Returns a CiscoRTPHandle object. Applications can get a call reference by using CiscoProvider.getCall( CiscoRTPHandle ). If no callobserver exists or if there was no callobserver when this event is delivered, CiscoProvider.getCall( CiscoRTPHandle ) may return null.
CiscoRTPInputStartedEv
CiscoRTPHandle
getCiscoRTPHandle ()
Returns a CiscoRTPHandle object. Applications can get a call reference by using CiscoProvider.getCall(CiscoRTPHandle). If no call observer exists, or if there was no call observer when this event is delivered, CiscoProvider.getCall(CiscoRTPHandle) may return null.
CiscoRTPInputStoppedEv
CiscoRTPHandle
getCiscoRTPHandle ()
Returns a CiscoRTPHandle object. Applications can get call reference by using CiscoProvider.getCall(CiscoRTPHandle). If no call observer exists, or if there was no call observer when this event is delivered, CiscoProvider.getCall(CiscoRTPHandle) may return null.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-44
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
CiscoRTPOutputStartedEv
CiscoRTPHandle
getCiscoRTPHandle ()
Returns a CiscoRTPHandle object. Applications can get a call reference by using CiscoProvider.getCall(CiscoRTPHandle). If no call observer exists, or if there was no call observer when this event is delivered, CiscoProvider.getCall(CiscoRTPHandle) may return null.
CiscoRTPOutputStoppedEv
CiscoRTPHandle
getCiscoRTPHandle ()
Returns CiscoRTPHandle object. Applications can get call reference using CiscoProvider.getCall(CiscoRTPHandle). If there is no call observer, or if there was no call observer when this event is delivered, then CiscoProvider.getCall(CiscoRTPHandle) may return null.
CiscoTermEvFilter
boolean
getSnapshotEnabled ()
Returns the enable/status of CiscoTermSnapshotEv and CiscoTermSnapshotCompletedEv for the terminal. void
setSnapshotEnabled (boolean enabled)
Sets enable/disable status of CiscoTermSnapshotEv. If disabled, CiscoTermSnapshotEv and CiscoTermSnapshotCompletedEv are not sent to applications. boolean
getRTPKeyEvEnabled ()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-45
CiscoTerminal
void
createSnapshot ()
throws InvalidStateException
This method generates CiscoTermSnapshotEv, which contains security status of current active call on the terminal. To access this method, the terminal must be in CiscoTerminal.IN_SERVICE state, and CiscoTermEvFilter.setSnapshotEnabled () must be set to True.
CiscoMediaTerminal
void
The CiscoMediaTerminal must be in the CiscoTerminal.UNREGISTERED state and its provider must be in the Provider.IN_SERVICE state. This interface provides dynamic registration with secure media. If applications do not invoke this method, the media gets terminated in non-secure mode. void
register(java.net.InetAddress address, int port, CiscoMediaCapability[] capabilities, int[] algorithmIDs)
The CiscoMediaTerminal must be in the CiscoTerminal.UNREGISTERED state, and its provider must be in the Provider.IN_SERVICE state. This interface provides static registration with secure media. If applications do not register this interface, the media remains non-secured. AlgorithmIDs indicate SRTP algorithms that this CTIPort supports. AlgorithmIDs maybe only one of CiscoSupportedAlgorithms.
CiscoRouteTerminal
void
The CiscoRouteTerminal must be in the CiscoTerminal.UNREGISTERED state, and its provider must be in the Provider.IN_SERVICE state. By default, media gets terminated in non-secure mode. AlgorithmIDs indicate SRTP algorithms that this CTIPort supports. AlgorithmIDs may be only one of CiscoSupportedAlgorithms.
CiscoSupportedAlgorithm Constants
AES_128_COUNTER
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-46
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
SIP REFER/REPLACE
REFER is a SIP method that is defined by RFC 3515. The REFER method indicates that the recipient (referee, identified by the Request-URI) should contact a third party (referred to as the target) by using the contact information that is provided in the request. This REFER method allows the party who is sending the REFER (referrer) to be notified of the outcome of the referenced request. Cisco Unified Communications Manager, being a Back-To-Back User Agent (B2BUA), processes both inside and outside dialog inbound REFER on behalf of the Referee. As result of REFER, Cisco Unified Communications Manager creates a call between the Referee and the Refer-to-Target. If there is a previously existing call between the Referrer and the Referee, the call at the Referrer gets dropped after REFER completes. The REPLACES feature is the replacement of an existing SIP dialog with a new dialog. A SIP dialog is a call between two SIP user agents; a Cisco Unified Communications Manager dialog is a half call (callleg). The REPLACES feature is triggered either by REFER or by an INVITE. Cisco Unified Communications Manager handles a REPLACES request on behalf of the recipient of the REPLACES header. The request is associated with a new dialog and the requesting party is the party that wants to replace another party in the existing dialog (call) identified in the REPLACES header. Cisco Unified Communications Manager disconnects the dialog (call) identified in the REPLACES header and connects the requesting party. JTAPI is enhanced to model Call events caused by the Cisco Unified Communications Manager REFER and REPLACE features in the JTAPI call model. JTAPI provides applications with the capability to handle call events caused by REFER and REPLACE features. JTAPI does not provide any interface for applications to initiate REFER or REFER/INVITE with REPLACES requests; however, JTAPI can handle the call events properly. These two features are backward compatible. JTAPI provides events that are caused by REFER/REPLACE with CAUSE_NORMAL. Applications can get feature-specific reasons from the new interface CiscoCallEv.getCiscoFeatureReason().
Note
This interface provides feature-specific reasons for current and new features, but this method will not remain backward compatible in future releases. Applications using this interface must implement default handling to avoid future backward-compatibility issues. The following sections describe the interface changes for SIP REFER/REPLACE.
CAUSE provided for REFER/REPLACE
JTAPI provides CAUSE_NORMAL for events that caused by REFER/REPLACES. Applications should use CiscoCallEv.getCiscoFeatureReason() to get the feature-specific reason.
Interface provided on CiscoCallEv
This interface provides CiscoFeatureReason in the JTAPI call event. Older features, such as transfer, continue to receive the old CiscoCause that is provided by the previous interface, CiscoCallEv.getCiscoCause(). This new interface provides REASON_TRANSFER for transfer.
com.cisco.jtapi.extensions Interface CiscoCallEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-47
int
getCiscoFeatureReason()
JTAPI provides CiscoFeatureReason in Call events caused by features. CiscoFeatureReason is provided for existing as well as new Cisco Unified Communications Manager features. For REFER and REPLACES features, the reason would be REASON_REFER and REASON_REPLACES. This interface will provide new reasons for any new features that may be introduced in the future, and is not backward compatible. Applications using CiscoFeatureReason should expect to receive new reasons in later releases and must implement default behavior to maintain the Applications backward compatibility. Applications that use CiscoFeatureReason should expect to receive new reasons in later releases and must implement default behavior to maintain backward-compatibility.
Public interface CiscoFeatureReason
static int
REASON_REFER
Reason returned for events that are sent for REFER by Cisco Unified Communications Manager. static int
REASON_REPLACE
Reason returned for events that are sent for REPLACE by Cisco Unified Communications Manager.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-48
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
Note
Applications should be aware that new feature-specific reason codes could be returned from this API, and applications should provide default behavior for unrecognized reason codes. The following sections describe the interface changes for SIP 3XX Redirection.
Public interface CiscoFeatureReason
static int
REASON_CM_REDIRECTION
This reason indicates that event is a result of 3xx response from the CM_REDIRECTION primitive in Cisco Unified Communications Manager.
CiscoCallEv
int
getCiscoFeatureReason()
A feature specific reason for this event. Applications should make sure to handle unrecognized reasons and provide default behavior as this interface may not be backward compatible as new reasons might be added in the future.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-49
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-50
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
The following sections describe the interface changes for address and terminal restrictions.
CiscoTerminal
boolean
isRestricted()
Indicates whether a terminal is restricted. If the terminal is restricted, all associated addresses on this terminal are also restricted. Returns true if the terminal is restricted; returns false if it is not restricted.
CiscoAddress
javax.telephony. Terminal[]
getRestrictedAddrTerminals()
Returns an array of terminals on which this address is restricted. If none are restricted, this method returns null. In shared lines, a few lines on terminals may be restricted. This method returns all the terminals on which this particular address is restricted. Applications cannot see any call events for restricted lines. If a restricted line is involved in a call with any other control device, an external connection gets created for the restricted line.
boolean
isRestricted(javax.telephony.Terminal terminal)
Returns true if any address on this terminal is restricted. Returns false if no addresses on this terminal are restricted.
public interface CiscoRestrictedEv extends CiscoProvEv { public static final int ID = com.cisco.jtapi.CiscoEventID.CiscoRestrictedEv; /** * The following define the cause codes for restricted events */ public final static int CAUSE_USER_RESTRICTED = 1; public final static int CAUSE_UNSUPPORTED_PROTOCOL = 2; }
This is the base class for restricted events and defines the cause codes for all restricted events. CAUSE_USER_RESTRICTED indicates the terminal or address is marked as restricted. CAUSE_UNSUPPORTED_PROTOCOL indicates that the device in the control list is using a protocol that is not supported by Cisco Unified JTAPI. Existing Cisco Unified IP 7960 and 7940 phones that are running SIP fall in this category.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-51
CiscoAddrRestrictedEv
Public interface CiscoAddrRestrictedEv extends CiscoRestrictedEv. Applications will see this event when a line or an associated device is designated as restricted from Cisco Unified Communications Manager Administration. For restricted lines, the address will go out of service and will not come back in service until it is activated again. If an address is restricted, addCallObserver and addObserver will throw an exception. For shared lines, if a few shared lines are restricted, and others are not, no exception is thrown, but restricted shared lines will not receive any events. If all shared lines are restricted, an exception is thrown when adding observers. If an address is restricted after adding observers, applications will see CiscoAddrOutOfServiceEv, and when the address is activated, the address will go in service.
CiscoAddrActivatedEv
Public interface CiscoAddrActivatedEv extends CiscoProvEv. Applications will see this event whenever a line or an associated device is in the control list and is removed from the restricted list in the Cisco Unified Communications Manager Administration. If any observers exist on the address, applications will see CiscoAddrInServiceEv. If no observers exist, applications can try to add observers, and the address will go in service.
CiscoAddrRestrictedOnTerminalEv
Public interface CiscoAddrRestrictedOnTerminalEv extends CiscoRestrictedEv. If a user has a shared address in the control list, and if one of the lines is added into the restricted list, this event will be sent. Interface getTerminal() returns the terminal on which the address is restricted. Interface getAddress() returns the address that is restricted.
javax.telephony.Address javax.telephony.Terminal
CiscoAddrActivatedOnTerminal
getAddress() getTerminal()
Public interface CiscoAddrActivatedOnTerminalEv extends CiscoProvEv. When a shared line or a device that has a shared line is removed from the restricted list, this event will be sent. The interface getTerminal() returns the terminal that is being added to the address. The interface getAddress() returns the address on which the new terminal is added.
javax.telephony.Address javax.telephony.Terminal
CiscoTermRestrictedEv
getAddress() getTerminal()
Public interface CiscoTermRestrictedEv extends CiscoRestrictedEv. Applications will see this event when a device is added into restricted list from Cisco Unified Communications Manager Administration after the application launches. Applications will not be able to see events for restricted terminals or addresses on those terminals. If a terminal is restricted when it is in InService state, applications will get this event and terminal and corresponding addresses will move to the out-of-service state.
CiscoTermActivatedEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-52
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
javax.telephony.Terminal
getTerminal()
Returns the terminal that is activated and is removed from the restricted list.
CiscoOutOfServiceEv
static int
CAUSE_DEVICE_RESTRICTED
static int
CAUSE_DEVICE_RESTRICTED
Unicode Support
Cisco Unified Communications Manager release 5.0 supports unicode display names on unicode-enabled IP phones. You can configure ASCII names and unicode names for display names. JTAPI receives all names in unicode and ASCII formats and provides two new interfaces, getCurrentCalledPartyUnicodeDisplayName and getCurrentCallingPartyUnicodeDisplayName, to allow applications to get display names in unicode. It also provides the ability to get unicode display names during call progress. JTAPI receives the encoding capability of application controlled IP phones in device registered and device in service events from CTI, locale and language group information in device info response, and provides interfaces to applications to get the locale, alternate script, and unicode capability of IP phones. CiscoTerminal and CiscoTermInServiceEv interfaces are enhanced to provide this information for phones that are in the application control list when the CiscoTerminal is in the inservice state. JTAPI receives the alternate script information of all parties in the call and provides interfaces to applications to get the language group of the current calling and current called party. Two interfaces, getCurrentCallingPartyLanguageGroup and getCurrentCalledPartyLanguageGroup, are available on CiscoCall to get this information. Applications also receive both ASCII and UCS-2 encoded unicode display names for the current calling and called addresses.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-53
CiscoCall interface changes CiscoLocales interface changes CiscoTerminal / CiscoTerminalInServiceEv interface changes
Applications might need to reconfigure their username/password after upgrading to Release 5.0. The following sections describe the interface changes for unicode support.
Interface CiscoCall changes
The following new methods on CiscoCall let applications get the unicode display names and the corresponding locales.
/** * This interface returns the unicode display name of the current called party * in the call. */ public String getCurrentCalledPartyUnicodeDisplayName(); /** * This interface returns the locale of the current called party unicode * display name. CiscoLocales interface lists the supported locales. */ public int getCurrentCalledPartyUnicodeDisplayNamelocale(); /** * This interface returns the unicode display name of the current calling party * in the call. */ public String getCurrentCallingPartyUnicodeDisplayName (); /** * This interface returns the locale of the current called party * unicode display name */ public int getCurrentCallingPartyUnicodeDisplayNamelocale();
CiscoLocales
The CiscoLocales interface lists all the locales that Cisco Unified JTAPI supports.
Note
For a list of all supported locales in the most recent release, see the man page for CiscoLocales.
public interface CiscoLocales { public static final int LOCALE_ENGLISH_UNITED_STATES; public static final int LOCALE_FRENCH_FRANCE; public static final int LOCALE_GERMAN_GERMANY; public static final int LOCALE_RUSSIAN_RUSSIA ; public static final int LOCALE_SPANISH_SPAIN ; public static final int LOCALE_ITALIAN_ITALY ; public static final int LOCALE_DUTCH_NETHERLAND ; public static final int LOCALE_NORWEGIAN_NORWAY ; public static final int LOCALE_PORTUGUESE_PORTUGAL; public static final int LOCALE_SWEDISH_SWEDEN ; public static final int LOCALE_DANISH_DENMARK public static final int LOCALE_JAPANESE_JAPAN; public static final int LOCALE_HUNGARIAN_HUNGARY ;
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-54
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
CiscoTerminalInServiceEv Interface
int
getLocale()
This method returns the current locale information for this terminal. int
getSupportedEncoding ()
int
getLocale()
This method returns the current locale information for this terminal. The CiscoTerminal must be in the CiscoTerminal.IN_SERVICE state to access this method. int
getSupportedEncoding ()
This method returns the unicode capability of this Terminal. The CiscoTerminal must be in the CiscoTerminal.IN_SERVICE state to access this method. The getSupportedEncoding () returns one of the following results that are defined in CiscoTerminal.
/** * Indicates the <Code>CiscoTerminal.getSupportedEncoding ()</CODE> * for this Terminal is UNKNOWN
*/
public final static int UNKNOWN_ENCODING = 0; /** * Indicates the <Code>CiscoTerminal.getSupportedEncoding ()</CODE> * for this is NOT_APPLICABLE. * This is valid for only CiscoMediaTerminals and RoutePoints */ public final static int NOT_APPLICABLE = 1; /** * Indicates the <Code>CiscoTerminal.getSupportedEncoding ()</CODE> for this * Terminal is ASCII and this terminal supports only ASCII_ENCODING */ public final static int ASCII_ENCODING = 2; /** * Indicates the <Code>CiscoTerminal.getSupportedEncoding ()</CODE>
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-55
The new installer does not support downgrades to previous releases. Application users must manually uninstall JTAPI prior to re-installing any previous version of the JTAPI client. When you are upgrading from a previous release, the new installer prompts you to uninstall the current version and continues installation only after the previous version of the JTAPI client has been uninstalled.
Applications can bundle the JTAPI Installer with their installation by using a silent install invocation. Applications that want to run the installer in silent mode can use one of the following commands:
Windows: Linux:
Applications that want to use the JTAPIInstaller from the command line can use one of the following commands from the command prompt:
A character-input-based menu guides the installation procedure. The same options are available as in the GUI based installation. This type of installation is best suited to non-GUI platforms like Linux. When a fresh install or an upgrade/downgrade is performed on a Linux platform, the JTAPIInstaller automatically detects the destination folders and does a silent install. However, if a previous version is present on the system, the installer does not know the applications path and installs the applications in a predetermined location by forcibly creating the folder. For more information on the JTAPIInstaller, see Chapter 4, Cisco Unified JTAPI Installation.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-56
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
Linux Install
When a fresh install or an upgrade and downgrade is being done, the installer will automatically detect the destination folders and do the silent install. However, if a previous version is present in the system, the installer would not know the application path and hence will install the application in a predetermined location, by creating the folder.
Backward Compatibility
This feature is not backward compatible. Application using command line or silent install feature of CiscoJtapiClient install need to make changes to command invocation of the install. Please see details for more info.
Silent Install
Applications can bundle JTAPIInstaller along with their Installation by doing silent install invocation on JTAPIInstaller. The way in which silent install is invoked is described in section (5.1.2.14.1). When a pre-SD version is present in the system and a upgrade to SD version happens, the new installer will automatically invoke the pre-SD uninstaller. Applications that need to uninstall the pre-SD version of JTAPI in silent-mode, need to invoke the installer from command line in the following manner: CiscoJtapiClient.exe -W newversion.silent=1. This method is applicable only for Windows platform. Applications which want to find out the version of the JTAPI even before the installation of the new SD installer, before executing it, need to use the following command to do so. CiscoJtapiClient.exe silent -W newversion.check=1 goto showversion Once this command is run from the command line, the installer will create a file called jtapiversion.txt in the current directory. This will have the JTAPI version of the installer in a.b(c.d) format. This command is applicable for all client platforms (Linux/ Solaris/ Windows).
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-57
Procedure
Step 1 Step 2
Go to Add/Remove programs. Run the uninstaller of the prior release. This is recommended so that the user does not directly invoke the current release installer.The installer invokes the uninstaller of the prior release. When the uninstall completes, the user is prompted to restart the system now or later. If the user chooses restart now, then the server is rebooted while the installer is trying to install the new version. This issue occurs because the uninstaller of the prior release and installer of the current release are written using different types of IS/ISMP and are not linked.
ISMP installer also does not support the downgrade operation to a prior release.
Backward Compatibility
Note
There are no interface changes to JTAPI Applications, however JTAPI.jar contains RSA jsafe.jar (3.3) and Apache log4j-1.2.8.jar files. If Applications are using any jar files that are not compatible with these versions of jsafe.jar (Version 3.3) and log4j-1.2.8.jar, then JTAPI or the Application may not work, depending on which one is in the classpath first As part of this migration, JTAPIPreferences and sample applications dependency on MS-JVM was also removed. Two new configuration parameters were provided on the Advanced tab in the JTAPI Preferences dialog box:
Backward Compatibility
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-58
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
When a normal application receives a CiscoProviderCapabilityChangedEvent with the flag set, it means the Superprovider privilege has been granted to it, and it can start acquiring devices not in its control list. When a Superprovider application receives a CiscoProviderCapabilityChangedEvent with the Superprovider flag not set, it means that the Superprovider privilege has been removed for it. The following sequence of events then occurs:
Applications receive a Provider OOS event and all devices acquired/opened by it are closed. Applications receive a CiscoTermRemovedEv for all devices not in the control list that have
as a normal user.
Applications receive device and line information. Applications receive CiscoTermCreatedEv for all controlled devices that were open before the
JTAPI notifies applications by using the CiscoProviderCapabilityChangedEvent when the park DN monitoring flag is changed from Cisco Unified Communications Manager Administration.
When an application receives this event with the flag set, it does a register feature for the
JTAPI notifies applications by using the CiscoProviderCapabilityChangedEvent when the change calling party number flag is changed from Cisco Unified Communications Manager Administration.
When an application receives this event with the flag set, it can change the calling party number. When an application receives this event with the flag not set, it cannot change the calling party
number. Applications should not change the calling party number when this flag is disabled.
When a device that is not in the control list is opened or acquired by Superprovider, and is then deleted from Cisco Unified Communications Manager Administration, JTAPI closes the terminal object and sends a CiscoTermRemovedEvent to the application for that device.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-59
Interface Changes
As a part of the Superprovider and change notification enhancements, JTAPI exposes the following API to applications. The JTAPI implementation for Superprovider and the handling of certain Provider capabilities has changed as a result. Superprovider enhancements for JTAPI in this release consist of the JTAPI QBE interface, changes in JTAPI behavior, and the new API which is exposed to applications. JTAPI delivers CiscoProviderCapabilityChangedEv to the applications, with the following format. Applications should be able to receive and process this new event from JTAPI.
public interface CiscoProviderCapabilityChangedEv { public CiscoProviderCapabilities getCapability (); }
CiscoProviderCapabilities have the following new methods for setting calling party modify privilege for the provider:
public boolean canModifyCallingParty(); public void setCanModifyCallingParty(boolean value);
CiscoProviderCapabilityChangedEv is delivered to the applications with the appropriate flag values. After this, the following sequence of events occurs:
JTAPI sends provider OOS events to the application and device/line OOS to devices and lines in the control list that are open. JTAPI then tries to reconnect to CTI.
If reconnect succeeds, JTAPI sends a provider inService event and reopens all the devices in
ProviderClosedEvent.
If Superprovider privilege is added, JTAPI sends a CiscoProviderCapabilityChangedEv to the applications with the appropriate flag values.
If the MonitorParkDN flag is enabled, JTAPI sends a CiscoProviderCapabilityChangedEv with
the monitor park DN flag set to false. JTAPI also closes all the park DN addresses and delivers a CiscoAddrRemovedEv to applications.
When the ModifyCgPn flag is changed, JTAPI sets a flag in the provider object that is checked during redirect scenarios, and applications are accordingly allowed or denied permission to change the calling party. JTAPI also delivers a CiscoProviderCapabilityChangedEv with the flag set to modify CgPn.
CiscoProvider Interface
boolean
hasSuperproviderChanged()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-60
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
boolean
hasModifyCallingPartyChanged()
java.lang.String
getAltScript()
Only one alternate script, Kanji for the Japanese locale, is currently supported. An empty string return value indicates there is no alternate script configured or the terminal does not support an alternate script.
Backward Compatibility
The alternate script feature does not impact JTAPI backward compatibility.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-61
A new interface getMediaConnectionMode() is added to Cisco Unified JTAPI RTP events. This interface will return the following values depending on the media:
CiscoRTPInputStarted/StoppedEv should only return RECEIVE_ONLY and TRANSMIT_AND_RECEIVE. The interface should not return NONE or TRANSMIT_ONLY. If that happens, applications should ignore the event or log an error. CiscoRTPOutputStarted/StoppedEv should only return TRANSMIT_ONLY and TRANSMIT_AND_RECEIVE. The interface should not return values NONE or RECEIVE_ONLY. If that happens, applications should ignore the event or log an error. CiscoMediaOpenLogicalChannedEv should only return RECEIVE_ONLY and TRANSMIT_AND_RECEIVE. The interface should not return values NONE or TRANSMIT_ONLY. If that happens, applications should ignore the event or log an error. public interface CiscoRTPInputStartedEv
int
getMediaConnectionMode()
int
getMediaConnectionMode()
int
getMediaConnectionMode()
int
getMediaConnectionMode()
Returns CiscoMediaConnectionMode
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-62
OL-16702-01
Chapter 2
New and Changed Information Cisco Unified Communications Manager Release 5.0
Network Alerting
In earlier releases of CiscoJTAPI (CiscoJTAPI versions 1.4(x.y)), when a call was made to an address outside of the cluster, CallCtlConnNetworkReachedEv and CallCtlConnNetworkAlertingEv events were delivered to the far end address. In later versions of Cisco Unified Communications Manager (4.0 and above) and Cisco Unified JTAPI (2.0), these events were not delivered. In these versions CallCtlConnection for the far end address went to the ESTABLISHED state from the OFFERED state. The previous versions of Cisco Unified JTAPI delivered CallCtlConnOfferedEv, CallCtlConnEstablishedEv for the far end address when a call was made across a gateway with overlap sending turned off. CallCtlConnNetworkReachedEv and CallCtlConnNetworkAlertingEv events were not delivered to the application. In Cisco Unified Communications Manager 4.0 and 4.1, the Allow overlap sending flag on the route pattern configured for the gateway or the AllowNetworkEventsAfterOffered parameter in jtapi.ini needed to be turned on to receive network events. In Cisco Unified Communications Manager Release 5.0, if the Allow overlap sending flag is enabled, an application sees ConnCreatedEv, CallCtlConnNetworkReachedEv, CallCtlConnNetworkAlertingEv, and CallCtlConnEstablishedEv for the far end address for calls across a gateway. If the Allow overlap sending flag is not enabled, an application sees ConnCreatedEv, CallCtlConnOfferedEv, CallCtlConnNetworkReachedEv, CallCtlConnNetworkAlertingEv, and CallCtlConnEstablishedEv for the far end address for calls across a gateway.
Note
AllowNetworkEventsAfterOffered is not available in Cisco Unified Communications Manager Release 5.0. The above events are delivered regardless of the jtapi.ini parameter setting.
Backward Compatibility
Use the same API signature as the old one. Create a file newjtapi.jar in the current folder of application which is the new version of the jar file. Copy the current jtapi.jar to a file by name component.temp in the classpath specified. Replace the current jar file with the new jar file. At the end of this operation, the current jar file becomes the component.temp and new jar file becomes jtapi.jar. Applications can still use old component interface which take URL either by specifying the URL themselves or by querying the
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-63
URL through the new interface provided on CiscoProvider. The API required to get the URL information is present in the Interface summary for this feature. This operation is supported for both Unix and Windows.
Backward Compatibility
CiscoTerminalConnection. CISCO_SELECTEDNONE: The select status means that the call is not selected CiscoTerminalConnection. CISCO_ SELECTEDLOCAL: The select status means that the call is selected on the terminal connection CiscoTerminalConnection. CISCO_ SELECTEDREMOTE: Passive TerminalConnection will get this select status if the call is selected by it's shared line
Backward Compatibility
Backward Compatibility
This release of JTAPI is backward compatible with applications written for Cisco Unified Communications Manager Release 6.0. CiscoJtapiClient upgrade is not mandatory. Cisco JtapiClient upgrade is not mandatory. Applications are required to upgrade to Cisco Unified Communications Manager Release 6.1, CiscoJTAPIClient only if using any of the new features developed in Cisco Unified Communications Manager Release 6.1. Operating System Independence (OSI) support is added in Cisco Unified Communications Manager Release 7.0(1) and JTAPI also. This supports telephony features of Cisco Unified Communications Manager Release 7.0(1) in both Linux and Windows 2003 server. The Cisco Unified Communications Manager features are ported from Cisco Unified Communications Manager Release 6.0(x) (Appliance) to Cisco Unified Communications Manager Release 7.0(1) (Win2003).
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-64
OL-16702-01
Chapter 2
When a user upgrades from Cisco Unified Communications Manager 4.x (Windows) to Cisco Unified Communications Manager 7.0(1) (Windows/Linux), the plugin URL to download the jtapi.jar is different. In Cisco Unified Communications Manager Release 7.0(1), the plugin URL from 6.x releases is maintained. The applications should comply with the following rules:
The order of Cisco JTAPI events, beyond that which is required for JTAPI protocol operation, may change. Application developers should not depend upon the order of events, beyond that which is required for JTAPI protocol operation. Applications should be able to recover from out of order events, even when the order is required for (API Name) protocol operation. Applications should avoid using deprecated methods. Application should expect to see new behavior and/or event order with new phones.
Application should gracefully ignore events it does not handle. For example:
CiscoCallChangedEv can be ignored if applications chooses to use CiscoTransferStart and End events.
Application should have a default behavior for reasons that it is not aware of. Applications should have a default behavior for undefined error codes. Any behavior not defined in JTAPI 1.2 specification and not described in Cisco Unified JTAPI
Developers Guide should not be considered as a feature. For Cisco Unified Communications Manager Administration Release 4.x (Windows), the URL is http://<servername or ip address>/CCMPluginsServer/jtapi.jar. For Cisco Unified Communications Manager Administration Release 6.x and 7.0(1) (Linux), the URLis http://<server name or ip address>/plugins/jtapi.jar. For Cisco Unified Communications Manager Administration Release 7.0(1) (Windows), the URL is http://<server name or ip address>/plugins/jtapi.jar. The backward compatibility with regard to the plugin URL is not maintained between Cisco Unified Communications Manager Release 4.x and Cisco Unified Communications Manager Release 7.0(1).
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
2-65
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
2-66
OL-16702-01
CH A P T E R
Call Forward, page 3-2 Call Park, page 3-2 Park Retrieval, page 3-3 Park Reminder, page 3-3 Park DN Monitor, page 3-3 CiscoJtapiExceptions, page 3-3 Cisco Unified JTAPI Install Internationalization, page 3-4 Clear Calls, page 3-4 Device Recovery, page 3-4 Device Recovery for Phones, page 3-4 CTI RoutePoints, page 3-4 CTI Ports, page 3-4 Directory Change Notification, page 3-5 Enable or Disable Ringer, page 3-5 Transfer and Conference Extensions, page 3-5 Transfer, page 3-5 Conference, page 3-8 Consult Without Media, page 3-11 Media Termination Extensions, page 3-11 Cisco Unified Communications Manager Media Endpoint Model, page 3-12 Cisco MediaTerminal, page 3-14 Receiving and Responding to Media Flow Events, page 3-17 Redirect, page 3-18 Routing, page 3-19 Redundancy, page 3-22 Cluster Abstraction, page 3-22
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-1
Chapter 3
Cisco Unified Communications Manager Server Failure, page 3-24 Redundancy in CTI Managers, page 3-24 Calling Party Display Name, page 3-26 Set MessageWaiting, page 3-27 Quiet Clear, page 3-27 GetCallInfo, page 3-28 DeleteCall, page 3-28 GetGlobalCallID, page 3-28 GetCallID in RTP Events, page 3-29 XSI Object Pass Through, page 3-29 Cisco VG248 and ATA 186 Analog Phone Gateways, page 3-30 Multiple Calls Per DN, page 3-30 Shared Line Support, page 3-30 Transfer and DirectTransfer, page 3-33 Conference and Join, page 3-33 Barge and Privacy Event Notification, page 3-35 CallSelect and UnSelect Event Notification, page 3-36 Dynamic CTI Port Registration, page 3-36 Media Termination at Route Point, page 3-37 Redirect Set Original Called ID, page 3-39
Call Forward
Cisco Unified JTAPI supports setting the Call Forward feature according to the JTAPI Specification. Cisco Unified JTAPI implementation does not support all the forwarding characteristics but supports only the FORWARD_ALL attribute for the Address. Applications can invoke setForwarding, getForwarding, and cancelForwarding methods on a CallControlAddress object, but the CallControlForwarding instruction can only be of type FORWARD_ALL.
Call Park
Cisco Unified JTAPI supports user interactions with Call Park and reports the appropriate events to the applications. When a call is parked from an IP phone, the connection that belongs to the parking address moves into Disconnected state, and the associated TerminalConnection moves into Dropped state. A new connection in queued state for the park number gets created. If an application is monitoring only the address that parked the call, all existing connections get Disconnected, TerminalConnections get Dropped, and the call moves to Invalid state.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-2
OL-16702-01
Chapter 3
Park Retrieval
When a call is parked from an IP phone, the park number displays on the phone. Any terminal can unpark the call by dialing the park number. When a call is unparked, a new call gets created with connections to unparked address. The CallControlConnection for the park number in the original call, which is in the Queued state, moves to the Disconnected state.
Park Reminder
When a parked call is not retrieved for a specified time, a reminder call returns to the address that parked the call, and Park Number connection moves to the Disconnected state. The call reconnects and moves to the Established state. A terminal connection in Talking state gets created for the address that parked the call.
Park DN Monitor
Cisco Unified JTAPI applications can register to receive events when calls are parked and unparked. CiscoProvCallParkEv events will be delivered to provider observer when the application registers for this feature. To successfully register for this feature, ensure that the call park retrieval allowed flag for the user is turned on. You can access this flag with the user configuration on Cisco Unified Communications Manager Administration. After registering for this feature, the application will receive CiscoProvCallParkEv events whenever a call is parked or unparked from any device in the cluster. The following new interfaces allow applications to register and unregister for this feature:
public interface CiscoProvider { public void registerFeature ( int featureID ) throws InvalidStateException, PrivilegeViolationException; public void unregisterFeature ( int featureID ) throws InvalidStateException; }
CiscoJtapiExceptions
Cisco Unified JTAPI notifies the application of CTI-generated error codes. These codes return when an exception or error occurs in the CTIManager. The CTI returned error code propagates to the application separately. The application can extract the error code by invoking getErrorCode() method on the exception object, can get CTI error code name by invoking getErrorName() method, and can get error description by invoking method getErrorDescription(). The methods getErrorName(int errorCode) and getErrorDescription (int errorCode) deprecate and get removed in future releases. Cisco recommends that application users do not use these methods.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-3
Chapter 3
Clear Calls
Cisco Unified JTAPI applications can clear phantom calls without dropping active calls. The CiscoAddress provides a clearCallConnections message to allow applications to clear the calls when no active calls exist on the Cisco Unified Communications Manager (formerly Cisco Unified CallManager).
Device Recovery
Cisco Unified JTAPI supports automatic device recovery.
CTI RoutePoints
On a Cisco Unified Communications Manager server failure, the CTIManager recovers the device from the Cisco Unified Communications Manager server group as defined in the device pool administration for the CTI RoutePoint. When the primary Cisco Unified Communications Manager server recovers, the CTIManager attempts to recover the device on its primary Cisco Unified Communications Manager. This re-homing happens when no more calls exist on the device (similar to physical devices). On a CTIManager failure, Cisco Unified JTAPI recovers the device on the backup CTIManager. The application receives notification of the availability of a device with the CiscoAddrOutOfServiceEv and CiscoAddrInServiceEv events.
CTI Ports
CTI Ports that are registered by an application include a mechanism similar to phone devices. When the Cisco Unified Communications Manager that is handling signaling for a CTIPort fails, the CTIManager recovers its services according to the device pool administration for this device. On a CTIManager
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-4
OL-16702-01
Chapter 3
failure, Cisco Unified JTAPI reregisters the CTI Port after it connects to the backup CTIManager. The CiscoAddrOutOfServiceEv and CiscoTermOutOfServiceEv events and the corresponding in-service events get sent after recovery of the CTI Port. The application controls media streaming for these devices, and streaming continues even when the port is out of service. The application has responsibility to ensure that new calls do not get presented to the device until it is ready to accept them.
Note
Ensure that the device is registered for CTIPorts and CTIRoutePoints to receive the line change notification.
Transfer
The transfer feature moves the participants of one call, the transferred call, to another call, the final call. Moving participants in a call results in their associated Connections transitioning to the DISCONNECTED state in the transferred call and new Connections for these participants being created in the final call. Similarly, any associated TerminalConnections transition into the DROPPED state in the transferred call and get created in the final call. Cisco extensions by definition mark the start and the end of the events that relate to transfer. You can correlate the newly created connection objects with the old connection objects by use of the CiscoConnection.getConnectionID() method to obtain the CiscoConnectionID for the old and new connections. Matching connections possess identical CiscoConnectionID objects when compared by using the CiscoConnectionID.equals() method.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-5
Chapter 3
CiscoTransferStartEv
This event indicates that the transfer operation started, and the events that follow relate to this operation. Specifically, Connections and TerminalConnections get both removed and added as a result of the transfer. Applications may obtain the two calls that are involved in transfer transferred call and final call and the transfer controller information from this event. If the JTAPI application is not observing the transfer controller, the transfer controller information does not get made available in this event.
CiscoTransferEndEv
This event indicates that the transfer operation ended. After this event is received, the application can assume that all involved parties transferred, and all Connections and TerminalConnections moved to the final call.
Transfer Scenarios
In the following scenarios, A, B, and C represent three parties that are involved in the transfer.
Consult Transfer; B is the Transfer Controller
In a consult transfer, applications can redirect calls to a different address, and the transferrer can consult with the transfer destination before redirecting.
A calls B on call Call1. B answers and consults to C on call Call2. B transfers call Call2 to call Call1. Call2.setTransferEnable(true) (This optional method means transfer is enabled in the call object by default.) Call2.consult(TermConnB, C) Call1.transfer(Call2)
Note
During consult transfer, Call1.transfer(Call2) will transfer the call but not Call2.transfer(Call1).
Table 3-1 lists the core events that observers of A and B receive between the CiscoTransferStartEv and the CiscoTransferEndEv:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-6
OL-16702-01
Chapter 3
Table 3-1
Call Call1
Event CiscoTransferStartEv
META_CALL_TRANSFERRING Call1
TermConnDroppedEv B CallCtlTermConnDroppedEv B ConnDisconnectedEv B CallCtlConnDisconnectedEv B ConnCreatedEv C ConnConnectedEv C CallCtlConnEstablishedEv C TermConnCreatedEv C TermConnActiveEv C CallCtlTermConnTalkingEv C TermConnDroppedEv B CallCtlTermConnDroppedEv B ConnDisconnectedEv B CallCtlConnDisconnectedEv B TermConnDroppedEv C CallCtlTermConnDroppedEv C ConnDisconnectedEv C CallCtlConnDisconnectedEv C CallInvalidEv C CallObservationEndedEv CiscoTransferEndEv transferredCall=Call2 FinalCall=Call1 transferController= TermConnB
META_CALL_TRANSFERRING Call1
META_CALL_TRANSFERRING Call2
META_CALL_TRANSFERRING Call2
META_UNKNOWN META_UNKNOWN
Call2 Call1
In an arbitrary transfer, one call can get transferred to another call, irrespective of how either call was created. Unlike consult transfer, no need exists to first create one of the calls by using the consult method.
A calls B on call Call1. A puts Call1 on hold. A calls C on call Call2. A transfers Call1 to Call2. Call2.transfer(Call1) to transfer call Call1 to final call Call2, or Call1.transfer(Call2) to transfer call Call2 to final call Call1
Assuming Call1.transfer(Call2) was called, Table 3-2 lists the core events that observers on A and C receive between CiscoTransferStartEv and CiscoTransferEndEv:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-7
Chapter 3
Table 3-2
Call Call1
Event CiscoTransferStartEv
META_CALL_TRANSFERRING Call1
TermConnDroppedEv B CallCtlTermConnDroppedEv B ConnDisconnectedEv B CallCtlConnDisconnectedEv B ConnCreatedEv C ConnConnectedEv C CallCtlConnEstablishedEv C TermConnCreatedEv C TermConnActiveEv C CallCtlTermConnTalkingEv C TermConnDroppedEv B CallCtlTermConnDroppedEv B ConnDisconnectedEv B CallCtlConnDisconnectedEv B TermConnDroppedEv C CallCtlTermConnDroppedEv C ConnDisconnectedEv C CallCtlConnDisconnectedEv C CallInvalidEv C
META_CALL_TRANSFERRING Call1
META_CALL_TRANSFERRING Call2
META_CALL_TRANSFERRING Call2
Conference
When conferencing two calls together, JTAPI specifies that all the parties from one call be moved to the other call. The call whose parties are moved away and that subsequently becomes invalid gets identified as the merged or consult call. The call to which the merged parties move gets identified as the final call hereafter. When parties move from the merged call to the final call, the application receives events that indicate that all parties dropped from the merged call and events that indicate that the parties reappeared on the final call. To correlate the newly created connection objects with the old connection objects, use the CiscoConection.getConnectionID() method to obtain CiscoConnectionID objects for all old connections and all new connections. Matching connections will have identical CiscoConnectionID objects when compared by using the CiscoConnectionID.equals() method. Conference support exists for the following methods:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-8
OL-16702-01
Chapter 3
Cisco Extensions
Cisco Unified JTAPI implementation provides two extra events that signal the Start and End of Conference: CiscoConferenceStartEv and CiscoConferenceEndEv. These events get sent when Conference initiates and when it completes. They give handles to the final call, the merged conference (consult) call, and the two controlling TerminalConnections (in HELD and TALKING state).
CiscoConferenceStartEv
This event gets sent when call1.conference(call2) is invoked or if the Conference button is pressed for the second time on an IP phone. The ConferenceStartEv signifies the start of the merging process. A sequence of merging events that are reflected by the Conference process in Cisco Unified Communications Manager follows.
CiscoConferenceEndEv
This event gets sent at the end of the merge process after a ConferenceStartEv is sent. It signifies the completion of the merge of the Consult (or Merged) call into the Final Conference Call. The Merged call specifies in INVALID state and an ObservationEndedEv gets sent for the call observer.
CiscoCall.setConferenceEnable()
The Cisco Unified JTAPI implementation uses the CiscoCall.setConferenceEnable() and the CiscoCall.setTransferEnable() methods to control whether the consult call will be initiated via the conference or the transfer feature. If none of the features is enabled explicitly, transfer gets used by default.
Conference Scenarios
The following scenarios describe the two typical types of Conference that can be invoked.
Consult Conference; B as the Conference Controller
Note
You must invoke the conference() method on the original call to complete a conference after a consultation. Invoking conference in the consult call object throws an exception.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-9
Chapter 3
A calls B (Call 1). B answers. B places the call on hold. B calls C (Call 2). C answers. B Completes Conference.
Call1.conference(Call2)
or
Call2.conference(Call1)
Conference Events
Table 1-4 provides the sequence of Core, Call control, and Cisco Extension events when Call1.Conference(Call2) is called:
Table 3-3 Sequence of Events
Call Call1
Event CiscoConferenceStartEv
META_CALL_MERGING META_CALL_MERGING
Call1 Call1
CallCtlTermConnTalkingEv B ConnCreatedEv C ConnConnectedEv C CallCtlConnEstablishedEv C TermConnCreatedEv C TermConnActiveEv C CallCtlTermConnTalkingEv C TermConnDroppedEv B CallCtlTermConnDroppedEv B ConnDisconnectedEv B CallCtlConnDisconnectedEv B TermConnDroppedEv C CallCtlTermConnDroppedEv C ConnDisconnectedEv C CallCtlConnDisconnectedEv C CallInvalidEv C CallObservationEndedEv CiscoConferenceEndEv consultCall=Call2 finalCall=Call1 conferenceController= TermConnB
META_CALL_MERGING
Call2
META_CALL_MERGING
Call2
META_UNKNOWN META_UNKNOWN
Call2 Call1
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-10
OL-16702-01
Chapter 3
first call and the creation of a connection to the second call. Cisco Unified Communications Manager Release 3.1 changed this order of events. Connections first get created in the final call and then get dropped in the consult call.
Note
In Cisco Unified Communications Manager Release 3.0, not all parties who are involved in the transfer of calls received these events
Note
Applications should not rely on the order of events between CiscoTransferStartEv and CiscoTransferEndEv or between CiscoConferenceStartEv and CiscoConferenceEndEv for transferring and conferencing when porting applications from Cisco Unified Communications Manager Release 3.0 to 3.1.
Note
The system allows only transferring the consultation call; it does not allow the call to be conferenced.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-11
Chapter 3
Figure 3-1
Softphone
To implement a softphone application (where the PC acts as the telephone set, for example), the Cisco Unified JTAPI application would manage a CTI port.
Initialization Payload Selection Receive Channel Allocation Starting Transmission and Reception Stopping Transmission and Reception
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-12
33325
OL-16702-01
Chapter 3
Initialization
Upon startup, each endpoint informs Cisco Unified Communications Manager of its media capabilities, that is, G.711, G.723, G.729a, and so on. Startup for an IP phone for example, occurs when the phone is first turned on, or after it recontacts Cisco Unified Communications Manager after losing its former connection. The endpoint cannot express a preference for one payload type versus another, but it can specify certain parameters for each payload type, such as, packet size. The capability list that the endpoint registers remains exclusive and immutable. If the endpoint specifies that it can support both G.711 and G.723, it implicitly declares that it cannot support G.729a. Moreover, the endpoint must disconnect from Cisco Unified Communications Manager and reinitialize to change the list of capabilities that it supports. JTAPI applications perform this step by registering a CiscoMediaTerminal with Cisco Unified Communications Manager. The CiscoMediaTerminal.register() method allows applications to supply an array of media capability objects for registration with Cisco Unified Communications Manager. This step informs Cisco Unified Communications Manager that the application will act as the endpoint for all calls to or from a particular directory number, as determined by the device configuration in the Cisco Unified Communications Manager configuration.
Payload Selection
When a bidirectional media stream is about to be created between two endpoints, for instance, when a call is answered at an endpoint, Cisco Unified Communications Manager selects an appropriate payload type (codec) for the media stream. Cisco Unified Communications Manager compares the media capabilities of both endpoints that are involved in the call and selects the appropriate common payload type and payload parameters to use. The basis for payload selection includes endpoint capabilities and location, although other criteria may get added to this selection logic in the future. Endpoints do not get dynamically involved in selecting payload types on a call-by-call basis.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-13
Chapter 3
Cisco MediaTerminal
In JTAPI, the terminal object represents the logical endpoint for a call and is presumed to be able to receive and transmit data (digital encoded voice samples, for example). Thus, terminals in JTAPI represent Cisco Unified IP Phones. Even though gateways terminate media, terminals do not represent them. The CiscoMediaTerminals in particular represent a special kind of endpoint for which applications take responsibility for media termination. The following four steps associate with using CiscoMediaTerminals:
Provisioning
Ensure CiscoMediaTerminals, which are analogous to physical terminals, get provisioned accordingly in Cisco Unified Communications Manager, even though they do not represent actual hardware IP phones or gateways. Just as IP phones must be added to Cisco Unified Communications Manager database by using the Device Wizard, CiscoMediaTerminals get added the same way, so Cisco Unified Communications Manager can associate the application endpoint with a directory number and other call control properties such as call forwarding. No device type called CiscoMediaTerminal exists in the DeviceWizard. Instead, Cisco Unified Communications Manager has one or more device types that support application registrationeach of these types get exposed as a CiscoMediaTerminal through JTAPI. Currently, only the device type CTI port represents a CiscoMediaTerminal in JTAPI. This procedure lists the steps for provisioning a CTI port for use as an application-controlled endpoint.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-14
OL-16702-01
Chapter 3
Procedure
Step 1
Within the Cisco Unified Communications Manager configuration web pages, add a CTI port device from the Device-Phone web page by using the Device Wizard. The CTI port device name specifies the name of the corresponding CiscoMediaTerminal in JTAPI. Add the new CTI port device, by using the User-Global Directory web page, to the list of devices that the application controls by using the User web page.
Step 2
For more information, refer to the Cisco Unified Communications Manager Administration Guide.
Registration
After a media termination device is properly provisioned in Cisco Unified Communications Manager, the application may obtain a reference to the corresponding CiscoMediaTerminal object by using either the Provider.getTerminal() method or CiscoProvider.getMediaTerminal() method. The the two methods differ in that the CiscoProvider.getMediaTerminal() method only returns CiscoMediaTerminals, whereas Provider.getTerminal() will return any terminal object that is associated with the provider, including those representing physical IP phones. Use the CiscoMediaTerminal.register() method to notify Cisco Unified Communications Manager of the intent to terminate RTP streams of certain payload types. The CiscoMediaTermina.register() method takes an IP address, a port number, and an array of CiscoMediaCapability objects that indicate the types of codecs that are supported by the application as well as codec-specific parameters. The IP address and port indicate the address where the application can receive media streams. The following sample code demonstrates how to register a CiscoMediaTerminal and bind it to a local address, port number 1234:
CiscoMediaTerminal registerTerminal (Provider provider, String terminalName) { final int PORT_NUMBER = 1234; try { CiscoMediaTerminal terminal = provider.getTerminal (terminalName); CiscoMediaCapability [] caps = new CiscoMediaCapability [1]; caps[0] = CiscoMediaCapability.G711_64K_30_MILLISECONDS; terminal.register (InetAddress.getLocalHost (), PORT_NUMBER, caps); } catch (Exception e) { return null; } }
For this sample code to work, ensure the specified provider is IN_SERVICE. Further, be aware that this code uses the constant CiscoMediaCapability.G711_64K_30_MILLISECONDS. This actually represents a static reference to a CiscoG711MediaCapability object that specifies a 30-millisecond maximum RTP packet size. The CiscoMediaCapability class predefines this and other common media formats. To specify a media payload that is not listed in the CiscoMediaCapability class, two options exist. If the desired payload type is a simple variation of one of the existing subclasses of CiscoMediaCapability, you only need to construct a new instance of the subclass. For instance, if an application can support G.711 payloads with a 60-millisecond maximum RTP packet size, it can construct the CiscoG711MediaCapability object directly, specifying 60 milliseconds in the constructor.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-15
Chapter 3
Alternatively, if no existing subclass of CiscoMediaCapability that matches the desired payload type exists, construct an instance of the CiscoMediaCapability class directly. The maximum packet size, for example, 30-milliseconds, represents the only other parameter that may be specified when constructing a CiscoMediaCapability. The following code illustrates registering a custom payload capability:
CiscoMediaTerminal registerTerminal (Provider provider, String terminalName) { final int PORT_NUMBER = 1234; try { CiscoMediaTerminal terminal = provider.getTerminal (terminalName); CiscoMediaCapability [] caps = new CiscoMediaCapability [1]; caps[0] = new CiscoMediaCapability ( RTPPayload.G728, 30 // maximum packet size, in milliseconds ); terminal.register (InetAddress.getLocalHost (), PORT_NUMBER, caps); } catch ( Exception e) { return null; } }
The payload type parameter that is used for constructing the CiscoMediaCapability object corresponds to the payload field in the RTP header. The RTPPayload interface defines a number of well-known payload types for this purpose.
Adding Observers
To receive events that indicate where and when to transmit and receive RTP data, place a CiscoTerminalObserver on the CiscoMediaTerminal. The CiscoTerminalObserver extends the standard JTAPI TerminalObserver interface without defining any new methods; it provides a marker interface that signals the application interest in receiving RTP events.
Note
Because this is a TerminalObserver, not a CallObserver, it must get added by using the Terminal.addObserver() method, not the Terminal.addCallObserver() method. Additionally, add a CallControlCallObserver to the Address object that is associated with the CiscoMediaTerminal. This guarantees that the application will get notified when calls are offered to the CiscoMediaTerminal. Unlike regular IP phones, which automatically accept any offered call, CiscoMediaTerminals accept, disconnect (reject), or redirect any call that is offered to it. Because the CallCtlConnOfferedEv is only presented to CallControlCallObservers that are placed on Address objects, not Terminal objects, the application places its CallControlCallObserver in the correct place.
Note
Be sure to implement the CallControlCallObserver interface, not just the CallObserver interface; the CallCtlConnOfferedEv will not get delivered to observers that implement only the core CallObserver interface.
Accepting Calls
When an inbound call arrives at the CiscoMediaTerminal address, it must be accepted by using the CallControlConnection.accept() method before a terminal connection gets created. This process does not apply for outbound calls the connection will occur in the CallControlConnection.ESTABLISHED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-16
OL-16702-01
Chapter 3
state as soon as the call progresses beyond digit recognition. After the connection is accepted, answer the ringing terminal connection to start media flow. Assuming that Cisco Unified Communications Manager can match the capabilities that were registered with the capabilities of the calling endpoint, Cisco Unified Communications Manager sends the Media Flow events, so the application can begin transmitting and receiving RTP data.
Direction
Application Request
CallControlConnection.accept ()
TerminalConnection.answer ()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-17
Chapter 3
Table 3-4
Direction
Application Request
CallControlConnection.disconnect ()
Note
Table 3-4 shows JTAPI events for the local connection: that is, for the application endpoint. The actual JTAPI meta event stream contains events that describe the state of the calling party.
Because RTCP is not supported. Cisco Unified Communications Solutions endpoints will not send RTCP messages, and they will ignore any such messages that are sent to them. Cisco Unified Communications Solutions endpoints do not currently make use of the synchronization source (SSRC) field in the RTP header. Applications must not multiplex RTP streams by using the SSRC field, or phones and gateways may not correctly decode and present the media.
Redirect
JTAPI 1.2 specifies that one of the preconditions of the CallControlConnection.redirect() method is for the state of the connection to be in either the CallControlConnection.OFFERING or the CallControlConnection.ALERTING state. Cisco Unified JTAPI also allows a connection in the CallControlConnection.ESTABLISHED state to be redirected. The redirect() method includes the following overloaded form in the CiscoConnection interface. It allows applications to specify the behavior that is desired when a failure occurs while redirecting a call, specifying the calling search space, or resetting the original called field. Applications choose the desired behavior, by passing one of the following INT parameters in the overloaded redirect method from the CiscoConnection interface:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-18
OL-16702-01
Chapter 3
Redirect drop on failureWhen a call is directed to a busy or an invalid destination, Cisco Unified Communications Manager can either drop the call if the redirect fails or leave the call at the redirect controller. The JTAPI application can then take corrective action, such as redirecting the call to another destination. The option for the redirect mode parameter follow:
CiscoConnection.REDIRECT_DROP_ON_FAILURE CiscoConnection.REDIRECT_NORMAL
Calling Address search spaceRedirect uses the calling search space parameter to indicate which callingSearchSpace is used. Applications can either use the calling party search space or the redirect controller search space. The parameter options for this scenario follow:
CiscoConnection.CALLINGADDRESS_SEARCH_SPACE CiscoConnection.ADDRESS_SEARCH_SPACE
Resetting original calledThe called address option parameter gets used to reset the original called fields. The options for this scenario follow:
CiscoConnection.CALLED_ADDRESS_UNCHANGED CiscoConnection.CALLED_ADDRESS_SET_TO_REDIRECT_DESTINATION. This option
affects the fields when the call arrives at the redirect destination. For more information, refer to the com.cisco.jtapi.extensions.CiscoConnection documentation. For the scenario where A Calls B, B redirects to C, and C (redirect destination) is not a provider observed address, JTAPI would provide CallCtlConnAlertingEv for C with cause code Ev.CAUSE_NORMAL. Prior to release 5.0, the cause code was Ev.CAUSE_REDIRECT for the same scenario. This change was made to keep the behavior consistent for scenarios where C observed or did not observe the provider.
Note
When C is observed, for the same scenario, CallCtlConnAlertingEv at C is provided with CAUSE_NORMAL from releases prior to 5.0, and that behavior continues without change.
Routing
Routing in JTAPI requires the configuration of a CTI Route Point on the Cisco Unified Communications Manager. Multiple calls can be queued to this Route Point, but only a single line can be configured on a CTI Route Point device. JTAPI implementation of adjunct Routing, as described in the call center package, includes the following actions:
Registering route callbacks on Route Addresses Creating appropriate handlers in response to the various routing events (routeSelect, routeEnd)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-19
Chapter 3
Note
CTI Route Points represent devices that can process any number of incoming calls simultaneously on the same line. You can route calls by using the methods in the javax.telephony.callcenter package, or you can accept, redirect, or disconnect calls by using the methods in the javax.telephony.callcontrol package. You can configure each CTI Route Point with only one line in the Cisco Unified Communications Manager. A single CTI Route Point supports a maximum of 34 lines. To support more than 34 lines, provision additional route points. For details on how to configure and administer the CTI Route Point, refer to the Cisco Unified Communications Manager Administration Guide.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-20
OL-16702-01
Chapter 3
Forwarding Timer
You can configure the timer for Forward on No Answer that is currently systemwide (that is, it applies to all devices on Cisco Unified Communications Manager) via the Cisco Unified Communications Manager Service Parameters configuration. The default value for this timer specifies 12 seconds. In future releases, a separate timer for CTI Route Points might be included, so that forwarding for the route point takes effect immediately after JTAPI accepts the call (when the application calls an endRoute or if the routing timer expires).
The application can disconnect() or reject() the connection on the Route Point and thereby the caller receives a busy tone. The application can accept the call, and the Forward No Answer, if configured, kicks in. The application can drop the call. The caller holds the receiver but does not know what happened.
With a callback, if the application chooses to call an endRoute(), after endRoute() returns, the caller receives a ringback until
The client calls a disconnect() that would drop the call. The client redirects() the call. The forward on no answer timer that is configured via the scm.ini will kick in and forward the call unless the preceding two options have already kicked in. If no forwarding is configured for the Route Point, the caller continues to receives a ringback unless the first two options kick in.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-21
Chapter 3
Redundancy
Configuration requires that devices are configured into device pools and are assigned static Cisco Unified Communications Manager groups. Devices register with a particular Cisco Unified Communications Manager server that handles call control signaling. When a server fails, the devices failover to the backup server in the group. When the primary server comes back online, it waits until no active calls exist on the device, then re-homes to the primary Cisco Unified Communications Manager server. Cisco Unified JTAPI informs the applications of this transition by sending a temporary out-of-service message while registering to the backup server.
Cluster Abstraction
The CTIManager provides a virtual representation of all the Cisco Unified Communications Managers in a cluster. Cisco Unified JTAPI applications communicate with the CTIManager instead of with a specific Cisco Unified Communications Managers. The CTIManager also maintains connection between Cisco Unified Communications Managers in a cluster. This allows a provider to represent any devices in the cluster under the CTIManager. Figure 3-3 illustrates Single-box Configuration with JTAPI, Cisco Unified Communications Manager, and CTIManager in One Box. Figure 1-6 illustrates Redundant Cisco Unified Communications Manager and CTIManagers with JTAPI Deployed as a Separate Client. For more details about the cluster administration and device pool settings, refer to the Cisco Unified Communications Manager help pages.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-22
OL-16702-01
Chapter 3
Figure 3-3
Single-box Configuration with JTAPI, Cisco Unified Communications Manager, and CTIManager in One Box
IP
IP
Figure 3-4
Redundant Cisco Unified Communications Manager and CTIManagers with JTAPI Deployed as a Separate Client
JTAPI deployed here
IP
IP
IP
Note
In previous releases of Cisco Unified Communications Manager, applications that are running on Cisco Unified JTAPI could only control or monitor devices that are registered under a single Cisco Unified Communications Manager. If a Cisco Unified Communications Manager server went down, the connection between the Cisco Unified Communications Manager server and JTAPI would terminate and the Provider would shut down. Cisco Unified Communications Manager Release 3.1, introduced CTIManager service.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
63169
3-23
Chapter 3
Note
A device such as a Cisco Unified IP Phone 7960 fails over to a secondary Cisco Unified Communications Manager server only when no active calls exist on that device. The failure of a Cisco Unified Communications Manager server during a call results only in termination of observation of that device. The media path continues to exist but without any further call control features. Cisco Unified JTAPI communicates this partial outage to applications by using CiscoAddrOutOfServiceEv and CiscoTermOutOfServiceEv events. When the Cisco Unified Communications Manager fails over, the device must successfully register to the secondary Cisco Unified Communications Manager before the device is available to the JTAPI applications. Cisco Unified JTAPI will send the CiscoAddrInServiceEv and CiscoTermInServiceEv events. The Provider remains in service during this time. Devices on other Cisco Unified Communications Manager servers remain available for call control. The events get sent on callbacks of the respective Address or Terminal observer objects. CiscoAddrOutOfServiceEv and CiscoAddrInServiceEv events get sent to an object that is implementing the AddressObserver and get added to an Address by using the addressChangedEvent() callback object method. The CiscoTermOutOfServiceEv and CiscoTermInServiceEv events get sent to an object that is implementing the TerminalObserver interface and get added to a Terminal that is using the terminalChangedEvent( ) callback method. If the devices are currently in a call, a CallObservationEnded message is sent on the CallObserver callChangedEvent() callback, followed by the CiscoAddrOutOfServiceEv and CiscoTermOutOfServiceEv messages.
Note
Applications must monitor for and respond to the CiscoAddrOutOfServiceEv, CiscoTermOutOfServiceEv, CiscoAddrInServiceEv, and CiscoTermInServiceEv events before the calling call control functions on the address or terminal. Applications that do not support this action may encounter unexpected errors because the applications do not know the exact state of the system.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-24
OL-16702-01
Chapter 3
Note
After Cisco Unified JTAPI successfully connects to the primary CTIManager, it alternately will attempt to reconnect to the primary or backup CTIManager if the JTAPI connection to the CTIManager fails.
Figure 3-5 Logical Representation of JTAPI, CTIManager and Cisco Unified Communications Manager in a Cluster
CTIManager 1 (primary) Cisco JTAPI JTAPI application CallManager 1 CallManager 2 CallManager 3 CTIManager 2 (secondary-backup)
63170
Connection to the backup occurs when the primary CTIManager connection fails
Note
Because the appinfo parameter is optional, the application provides no specific appinfo parameter. Cisco Unified JTAPI generates one from a JTAPI instance ID and the local host name. Additionally, the jtapi.ini file may define different CTIManager lists to support the CiscoJtapiPeer.getServices() method. Cisco Unified JTAPI accepts the following definition: CtiManagers=<CTIManager1>,<CTIManager2>;<CTIManager3> where <CTIManager1>,<CTIManager2> specifies a redundant group. <CTIManager3> specifies a nonredundant group.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-25
Chapter 3
CTIManager Failure
When Cisco Unified JTAPI detects a loss of connection to a CTIManager, the application receives notification of this loss in service. The following events get sent to the application on the appropriate Observers:
A CallObservationEndedEv event gets sent to all Call Observers on an address and calls in progress end. The calls get physically connected, but the application observation of the call ends because Cisco Unified JTAPI cannot send call state changes. A CiscoAddrOutOfServiceEv event gets sent to all addresses on a terminal and a CiscoTermOutOfServiceEv event gets sent to the terminal. This process repeats for all Terminals in the Provider user-controlled list. (A CiscoAddrOutOfServiceEv event gets sent only to the addresses that have an active AddressObserver, and a CiscoTermOutOfServiceEv event gets sent only to terminals with an active TerminalObserver.) The provider gets set in the out-of-service state, and the ProvOutOfServiceEv event gets delivered on any ProviderObserver callbacks present on the provider.
Cisco Unified JTAPI attempts a connection to the next CTIManager in the list, and the ProvInServiceEv gets sent to the ProviderObserver. The devices that previously registered under the application control get reinstated in the new CTIManager After the device is reinstated, CiscoAddrInServiceEv and CiscoTermInServiceEv events get sent to the application via the respective Observers. All previously added observers are maintained. If any calls exist on the devices, a snapshot of the call gets sent to the respective CallObservers. CTI Ports that were previously registered are reregistered with the same media parameters. RouteAddress callbacks are maintained as before, and these calls get recovered on the new CTIManager. No call snapshot, however, gets delivered to the RouteAddresses.
Heartbeats
Cisco Unified JTAPI and the CTIManager maintain heartbeat signals to discover a failure in either the CTIManager or JTAPI. The CTIManager server controls the heartbeat parameters in the bidirectional heartbeat. Applications can request a desired server heartbeat interval when they are initializing Cisco Unified JTAPI, but the CTIManager can override it. Applications specify the desired heartbeat parameter by using DesiredServerHeartbeatInterval in the jtapi.ini setting. Cisco Unified JTAPI specifies the desired heartbeat interval for the client during initialization. The CTIManager specifies the client side heartbeat interval to Cisco Unified JTAPI and specifies the interval at which the server (CTIManager) will send heartbeats. A failure to receive heartbeat message for twice the server-specified interval results in a client-initiated teardown of the connection. To minimize heartbeat traffic, any messages from the client to the server or events from the server to the client substitute for a heartbeat.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-26
OL-16702-01
Chapter 3
JTAPI applications can use the following interface to get the display names of the calling party and the called party.
{ .. .. /** *This interface returns the display name of the called party in the call. *It returns null if display name is unknown. */ public String getCurrentCalledPartyDisplayName(); /** *This interface returns the display name of the calling party. *It returns null if display name is unknown. */ public String getCurrentCallingPartyDisplayName(); }
The address objects store the display name internally, and the name gets updated when currentCallingAddress and currentCalledAddress are updated. NULL returns if the call is not in the active state and if currentCalling and currentCalled addresses of the call are not initialized.
Note
The system does not support Call.getCurrentCalledAddress() and call.getCurrentCallingAddress() for conference calls. Also, the system does not support call.getCurrentCalledPartyDisplayName() and call.getCurrentCallingPartyDisplayName() for a conference call.
Set MessageWaiting
SetMessageWaiting provides a method for applications to set the message-waiting lamp or indicator for an address. Invoke the method on an address that is in the same partition as the destination. The following interface specifies whether the message waiting indicator should be activated or deactivated for the address that the destination specifies. If enable is true, message waiting activates if not already activated. If enable is false, message waiting deactivates if not already deactivated.
{ public void setMessageWaiting (java.lang.String destination, boolean enable) throws javax.telephony.MethodNotSupportedException, javax.telephony.InvalidStateException, javax.telephony.PrivilegeViolationException }
Quiet Clear
QuietClear occurs at the other end when two parties are on a call, and one address goes OutOfService because of a network outage, the Cisco Unified Communications Manager goes down, the application controlling CTIPort goes down, or CTIManager goes down. At this stage, the other end of the call can only drop the call or disconnect the connection. It cannot perform any other callControl operations. For the party that went Out Of Service, applications will perceive ConnDisconnectedEv and/or TermConnDroppedEv, and the other end of the call receives ConnFailedEv with CiscoCause of CiscoCallEv.CAUSE_TEMPORARYFAILURE. If applications try to invoke the following features during QuietClear mode, PlatformException with error code of CiscoJtapiException.CTIERR_OPERATION_FAILER_QUIETCLEAR gets thrown:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-27
Chapter 3
Note
GetCallInfo
GetCallInfo interface on address provides applications with the ability to query CallInfo on an address. A query returns the CiscoAddressCallInfo object, which contains information about the number of active or held calls, maximum number of active or held calls, and the Call object for current calls on the address. This interface also specifies what calls are at a specific address at a specific time. Use the following interface to get information about calls that are present at the terminal:
{ public CiscoAddressCallInfo getAddressCallInfo(Terminal iterminal); }
DeleteCall
DeleteCall interface provides applications with the ability to delete a call that was created by using the createCall interface. This method accepts a call and throws an InvalidStateException if a provider is not in service or if the call is not in the IDLE state. DeleteCall moves the call to the INVALID state. The following interface gets added to CiscoProvider:
{ public void deleteCall( Call call ) throws InvalidStateException; }
Applications can use this interface to delete the call that was created by using createCall interface. This method accepts a call and throws an InvalidStateException if the provider is not in service or if the call is not in the IDLE state. DeleteCall moves the call to the INVALID state. To successfully delete a call, the application creates the call by using createCall, and the call should be in the IDLE state.
GetGlobalCallID
GetGlobalCallID provides an interface on the CiscoCallID to get the nodeID and the Global Call ID (GCID) of the call; this exposes the GCID information that is available in the internal call object. The following methods get added to the CiscoCallID interface:
{ /** * returns the callmanager nodeID of the call */ public int getCallManagerID(); /** * returns the GlobalCallID of the call */
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-28
OL-16702-01
Chapter 3
CiscoTerminal Method
Applications can send an XSI object in the byte format to the Cisco Unified IP Phone through the CiscoTerminal interface method. The system limits the payload to 2000 bytes of data with this interface. CiscoTerminal must be in the <CODE>CiscoTerminal.REGISTERED</CODE> state; its Provider must be in the <CODE>Provider.IN_SERVICE</CODE> state. Successful response indicates that the data that was pushed has arrived at the phone. However, the application cannot receive any XML, including the CiscoIPPhoneResponse object from the push, back from the phone. If the application request is not successful, a PlatformException is thrown. Any request with more than 2000 bytes of data is rejected.
public String sendData (String terminalData) throws InvalidStateException, MethodNotSupportedException;
Before the application can make use of this feature, it must add TerminalObserver on the Terminal.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-29
Chapter 3
CiscoConnection.setRequestController(TerminalConnection tc)Allows an application to select a terminalConnection that is associated with a connection on which you can perform park, redirect, or disconnect operations. You need to do this in a situation where more than one active TerminalConnection exists in a SharedLine scenario. CiscoConnection.getRequestController()Returns TerminalConnection set by application as request controller. CiscoAddrAddedToTerminalEvGets sent when the following conditions occur:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-30
OL-16702-01
Chapter 3
A Terminal/Device gets added into the user controlList that contains a SharedDN, which sends
the event to the application. In other words, if user has an address in control list, and a new device gets added with same address in control list, this event gets sent.
An EM (extension mobility) user logs into the terminal with a profile that contains a SharedDN.
In this scenario, this event notifies that a new terminal is added to an already existing Address.
A new SharedDN is added to a device in a user control list
Interface getTerminal() returns the terminal that gets added to the address. Interface getAddress() returns the address on which a new terminal is added.
words, if a user has a shared address in a control list, and one of the devices with same address gets removed, this event gets sent.
An EM(extension mobility) user logs out from the terminal that had a profile that contains a
SharedDN. This event notifies applications that one of the terminals is removed from an existing Address.
A new SharedDN (SharedLine) is removed from a device in a control list.
Interface getTerminal() returns the terminal that gets removed from the address. Interface getAddress() returns the address from where the terminal gets removed. The following are the changed or new behaviors for a SharedLine:
Applications can use CiscoAddrInServiceEv.getTerminal() to get the terminal on which address goes InService.
JTAPI applications receive multiple CiscoAddrOutOfServiceEv for shared line addresses.
Applications can use CiscoAddrInServiceEv.getTerminal() to get terminal on which address goes OutOfService.
The address state goes InService when a first shared line goes InService; for example, when the
For an incoming call, all the line appearances of a shared line ring. To applications, this gets presented as one active call (callActiveEv), one Connection(ConnCreatedEv), and multiple terminalConnection(TermConnCreatedEv one each for each shared line). Calls get presented to all terminals. When a call is in a ringing state, the state of the terminal connection equals Ringing. When a the Shared Line answers, the terminalConnection state goes to an active state, while other terminalConnections on the shared line go to a passive state, and callControlTerminalConnection for all the shared lines at this point go into a bridged state. When a call is put on hold, all the terminal connections go into an active state, and callControllTerminalConnection goes to a held state. At this point, any terminal can retrieve the call. The retrieving terminal terminalConnection remains in an active state, and callControlTerminalConnection goes to a talking state while all other shared terminals terminalConnections go into a passive state. Simultaneously, CallControlTerminalConnection changes from a held state to a bridged state. A shared line can make a call to another shared line of the same DN. In this scenario, the call includes only one connection and multiple terminal connections.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-31
Chapter 3
When a shared line makes a call to another shared line of the same DN, the post condition for this equals only one connection. For a shared line connection with two active terminalConnections (such as barge), Connection.Disconnect() does not result in disconnected connection. If an application is monitoring only a SharedDN Connection with only a passive or bridged TerminalConnection, invoking any API on the connection results in a PreConditionException. Similar to the previous scenario, if all the connections of a Call monitored by an application have only a Passive or Bridged TerminalConnection, all APIs on the call throw a PreConditionException (such as Call.Drop()). If more than one active TerminalConnection exists on a shared line, Call.drop() does not return in CallInValid in the following scenarios:
A normal two-party call between A and B, where A represents a SharedLine with A' and A'
barged into the call The application does not monitor A' and B. If the application issues a Call.drop(), the A TerminalConnection goes into a passive state, but the call does not go InValid.
Similar to above, if A, A' , A" and B are in a Conference Call
The application monitors only A and A', and Call.drop() does not result in the call going InValid. Only the A and A' terminal connections go passive.
A, A', and B, B' represent a SharedLine address
A Calls B, B answers, and A' and B' barge into the call. The application monitors only A and B. In this scenario, Call.drop() results in a TerminalConnection of A and B going passive, but the call does not go InValid.
If a TerminalConnection is in a passive or bridged state or Passive/InUse state, all APIs on the TerminalConnection() throw a PreConditionException. A TerminalConnection only allows an API Terminal ConnectionJoin() (called Barge) in the passive or bridged state. TerminalConnection does not currently support TerminalConnection Join(). If more than one active or talking TerminalConnections exists in a connection, applications may have to end one before issuing an API on the connection like Redirect(), Park(), Disconnect(). A TerminalConnection can be selected by using API Connection.setRequestController (TerminalConnection tc). If a call gets held on SharedLine terminals and an application issues a Connection.Disconnect (), the applications may set a particular TerminalConnection through API Connection.setRequestController(TerminalConnection tc). If requestcontroller is not set, all HeldTerminalConnections get dropped, and connection goes to a disconnected state. If only one HeldConnection gets dropped, the call remains present on other SharedLines terminals. The call appearance disappears from the dropping terminal, which disallows the terminal from barging into the call or participating in feature operations on the call.
For details on the interface changes, see Chapter 5, Cisco Unified JTAPI Implementation. To view the message flow for shared lines, see Appendix A, Message Sequence Charts.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-32
OL-16702-01
Chapter 3
The application can transfer two held calls. The application can have OneHeld and OneConnected call in any order. The application can transfer any two calls present on the line. CiscoTransferStarted. getTransferControllers()This new interface, which is provided for SharedLine scenarios, supports multiple terminalConnections if a SharedLine is a TransferController. When a transferController is not a SharedLine, only a TerminalConnection occurs in the list. This method returns null if the transfer controller is not being observed. CiscoTransferStarted. getTransferController()This current interface, which behaves as it does for a normal transfer, may exhibit a different behavior for SharedLines. When a transferController is a SharedLine, multiple TerminalConnections exist. This method returns an ACTIVE TerminalConnection, however, if the application is not observing the ACTIVE TerminalConnection, this method returns one of the PASSIVE TerminalConnections. CiscoTransferEnded isSuccess()This new interface, which is provided for the CiscoTransferEnded event, returns true if the transfer operation succeeds and false if the transfer fails. Transfer failure may result from the following:
The party dropped the call before CallProcessing could complete the transfer. CallProcessing cannot Complete the transfer.
The following are the changed or new interfaces for Transfer and DirectTransfer:
No Hold or UnHold messages occur with an arbitrary transfer. If a pre-condition for a transfer request has been modified, an application can issue transfer in any state of the call. If an application does not have an active TerminalConnection that is passed as an argument, Call.consult() throws a PreConditionException/InvalidArgumentException. If controller does not have any active TerminalConnection, Call.Transfer() throws a PreconditionException/InvalidArgumentException.
To view the message flow for Transfer and DirectTransfer, see Appendix A, Message Sequence Charts.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-33
Chapter 3
The following are new or changed interfaces for conference and Joining of multiple calls into one conference call:
The following interface allows Join to conference multiple calls into one conference call:
Call.Conference(Call[] otherCalls)
Note
A precondition requires that all the otherCalls must have controller as one leg of the call.
arbitrary conferencing of two calls and returns only one of the held calls.
TerminalConnection[] getHeldConferenceControllers()This interface gets all of the held
conference controller; however, if no talking conference controller exists when all the calls being joined into conference are held, this interface returns null.
Call getConferencedCall()This interface returns only one of the many calls going to join into
a conference and may not have any meaning for a join conference when more than two calls exist.
New interface in CiscoConferenceEnded event boolean isSuccess(): This interface Returns True or False depending on whether Conference is successful or failed. Application can use interface to find whether Conference is successful. Following are defined as Conference Failure:
If the application issues the request Call.conference(otherCalls[]), this conference would be
considered failed if one or more than one calls could join into conference. Applications can use the interface getFailedCalls() to find the failed call.
If no Conference Bridge is available and the conference could not be completed at all. The
application can use getFailedCalls() to get a list of calls that could not join the conference.
A party that was being conferenced dropped out before conference could be completed.
An interface on the CiscoConferenceEnded event (Call[] getFailedCalls()) gets all the calls that failed to join the conference when the conference fails. There will not be a hold or unHold message such as applications see when an arbitrary conference occurs. An arbitrary conference does not require, as a precondition, that any of the calls be in a talking state. However, all the otherCalls must have a controller as one leg of the call. Applications can conference two or more held calls into a conference call. In finalCall, the controller automatically gets retrieved to a talking state. Always include an active call in the request Call.Conference(otherCalls). If an active call is not included in the conference request, the request fails. If there is no active call at the controller, the Call.Conference(otherCalls) request remains successful. However if one active call exists, it the request must include it, as previously stated. If the application does not have an active TerminalConnection passed as an argument, Call.consult() throws a PreConditionException/InvalidArgumentException.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-34
OL-16702-01
Chapter 3
If the controller does not have an active TerminalConnection, Call.Conference()/Call.Conference(Call[]) throws a PreconditionException/InvalidArgumentException.
For details on the interface changes, see Chapter 5, Cisco Unified JTAPI Implementation. To view the message flow for conference and join, see Appendix A, Message Sequence Charts.
A new reason code, CiscoCall.CAUSE_BARGE gets added to CiscoCall for Barge events. JTAPI provides CallCtiCause as CiscoCall.CAUSE_BARGE when a SharedLine TerminalConnection or CallCtiTerminalConnection goes to an active or talking state as a result of barge. This cause code also gets provided in CallCtiEvents for dropping temporary calls that are created during the barge operation. This cause code is not provided for the CBarge scenario. For details on these interfaces , see Chapter 5, Cisco Unified JTAPI Implementation. To view the message flow for barge, CBarge, and privacy, see Appendix A, Message Sequence Charts.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-35
Chapter 3
Note
Only CTIPorts appear as CiscoMediaTerminals through Cisco Unified JTAPI. Terminating media is a two-step process. To terminate media for a particular terminal, an application adds an observer that implements the CiscoTerminalObserver interface by using the Terminal.addObserver method. Finally, the application registers its IP address and port number to which the terminal incoming RTP streams are directed using the CiscoMediaTerminal.register method. To register the ipAddress and portNumber dynamically on a per-call basis, applications must register by only providing capabilities that they support. Applications must react to CiscoMediaOpenLogicalChannelEv that gets sent whenever media is established. If any features are performed before applications react to CiscoMediaOpenLogicalChannelEv, the features may fail. If the applications do not respond to this event during the time that is specified in the Media Exchange Timer in the Cisco Unified Communications Manager Administration windows, the call may fail. For details on the interface changes, see Chapter 5, Cisco Unified JTAPI Implementation. To view the message flow for Dynamic CTIPort Registration Per Call, see Appendix A, Message Sequence Charts.
Note
The ChangeRTPDefaults interface is not supported on CiscoMediaTerminal. The following are the new or changed interfaces for Dynamic CTIPort Registration Per Call:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-36
OL-16702-01
Chapter 3
int
int
getPayLoadType() Returns the payload format of the far end, one of the following constants:
CiscoRTPHandle
getCiscoRTPHandle () Returns the CiscoTerminalConnection object on which applications must invoke the setRTPParams request.
Interface CiscoRTPHandle
int
getHandle() Returns an integer representation of this object, currently the Cisco Unified Communications Manager CallLeg ID.
CiscoProvider
CiscoCall
getCall (CiscoRTPHandle rtpHandle) Returns the call object with the rtpHandle that is associated with a specific terminal. If no callobserver gets added to the terminal at the time when the applications receive CiscoRTPHandle in CallOpenLogicalChannelEv, CiscoCall may be null.
Note
Only RoutePoint Terminals appear as CiscoRouteTerminal through JTAPI. Terminating media is a three-step process.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-37
Chapter 3
The application registers its media capabilities with this terminal by using the CiscoRouteTerminal.register method. An application adds an observer that implements CiscoTerminalObserver interface by using the Terminal.addObserver method. The application must add addCallObserver on CiscoRouteTerminal or on CiscoRouteAddress to receive CiscoCall object from the provider by using CiscoRTPHandle.
Applications receive CiscoMediaOpenLogicalChannelEv for each call and must supply the IP address and port number by using the setRTPParams method on CiscoRouteTerminal. Applications written for the CiscoJtapiClient 1.4(x) release or earlier must be modified to register with CiscoRouteTerminal.NO_MEDIA_TERMINATION if the applications are not interested in media termination. Multiple applications can register with the same route point as long as they are registered with the same media capabilities and registrationType. All applications, if they have registered with CiscoRouteTerminal.DYNAMIC_MEDIA_REGISTRATION and then add a terminal observer, receive CiscoMediaOpenLogicalChannelEv, but only one application can invoke setRTPParams.
Note
Applications that terminate media must use the CallControl package for answering and redirecting calls. Applications that only route calls can use a routing package.
Note
Applications should be aware that if any features are performed before reacting to CiscoMediaOpenLogicalChannelEv, the features may fail. If applications do not respond to these events in the time specified in the Media Exchange Timeout parameter in the Cisco Unified Communications Manager Administration windows, the call may fail. The following are the new or changed interfaces for Media Termination at Route Point:
Interface CiscoRouteTerminal Extends CiscoTerminal
boolean
isRegistered() If the CiscoMediaTerminal gets registered, this method returns true. Otherwise, it is false.
boolean
isRegisteredByThisApp() If the application issues a successful registration request, this method returns true and remains true until the application unregisters the device. This remains valid even if the device is out of service because of CTIManager failure.
void
register (CiscoMediaCapability[]
The CiscoRouteTerminal must be in the CiscoTerminal.UNREGISTERED state, and the provider must be in the Provider.IN_SERVICE state.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-38
OL-16702-01
Chapter 3
void
setRTPParams (CiscoRTPHandle
Applications set the ipAddress and the RTP port number to dynamically stream media for a call. void Unregister() The CiscoRouteTerminal must be registered, and the provider must be in the Provider.IN_SERVICE state.
Interface CiscoMediaOpenLogicalChannelEv Extends CiscoTermEv
int
int
getPayLoadType() Returns the payload format of the far end, one of the following constants:
CiscoRTPHandle
getCiscoRTPHandle () Returns the CiscoTerminalConnection object on which applications must invoke the setRTPParams request.
Interface CiscoRTPHandle
int
getHandle() Returns an integer representation of this object, currently the Cisco Unified Communications Manager CallLeg ID.
CiscoProvider
CiscoCall
getCall (CiscoRTPHandle rtpHandle) Returns the call object with the rtpHandle hat is associated with a specific terminal. If no callobserver gets added to the terminal at the time when the applications receive CiscoRTPHandle in CallOpenLogicalChannelEv, CiscoCall may be null.
For details on these interfaces, see Chapter 5, Cisco Unified JTAPI Implementation. To view the message flow for media termination at route point, see Appendix A, Message Sequence Charts.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-39
Chapter 3
wants to transfer the call to C VoiceMail, applications can specify in the enhanced redirect request C as the preferred original called party and destination party as C VoiceMail profile. With this request, calls appear in C VoiceMail profile with the Cisco Unified Communications Manager originalCalledParty field as C. Typical voice mail applications look for originalCalledParty information to identify a user voice mailbox. Any application that redirects a call to a party by modifying the original called party can take advantage of this feature.
Note
This feature also changes the lastRedirectedAddress to the preferredOriginalCalledParty that gets specified in the redirect request. Below is the callControlConnection interface for Redirect Set Original Called ID:
Interface CiscoConnection Extends callControlConnection With Additional Cisco Unified Communications Manager-Specific Capabilities
javax.telephony.Connection
redirect (java.lang.String destinationAddress, int mode, int callingSearchSpace, java.lang.String preferredOriginalCalledParty) This method overloads the CallControlConnection.redirect() method.
For details on the interface, see Chapter 5, Cisco Unified JTAPI Implementation. To view the message flow for Redirect Set Original Called ID, see Appendix A, Message Sequence Charts.
A new call is not created. CiscoTransferStartEv and CiscoTransferEndEv are not delivered to applications. The state of the original call is retained if the transfer operation fails.
The pre and post conditions of this interface did not change. To view the message flow for Single Step Transfer, see Appendix A, Message Sequence Charts.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-40
OL-16702-01
Chapter 3
Autoupdate of API
When the Cisco Unified Communications Manager is upgraded to a higher version, the APIs may or may not be compatible with the new Cisco Unified Communications Manager version. The APIs must be upgraded to a compatible version so the applications work as expected. Because the APIs are installed locally on the client server, the upgrade must take place on multiple machines. In the case of fewer client applications, you can easily do this by connecting to the Cisco Unified Communications Manager Administration and downloading and installing the Cisco Unified Communications Manager compatible plug-in. For multiple client applications, this feature provides a facility by which an application at startup can identify itself to a web server via an HTTP request and receives a response with the version of the required JTAPI API. The application compares the version that is available on the server to the local version in the application classpath and determines whether an upgrade is necessary. This allows applications to refresh the jtapi.jar component to match the Cisco Unified Communications Manager and provides a way to centrally deploy the jtapi.jar to which applications can auto update. The API that is required to perform this functionality is packaged in the form of an updater.jar. The jtapi.jar and updater.jar are packaged with the standard manifest, which can be used to compare versions.
Note
This feature does not update JTAPI Preferences, JTAPITestTools, Updater.jar and javadoc components. If applications require these components, install JTAPI from the Cisco Unified Communications Manager plug-in pages. Auto Update supports JTAPI Release 2.0 and later. Refer to Chapter 4, Cisco Unified JTAPI Installation for more information. The following are new or changed interfaces for autoupdate of APIs:
Class com.cisco.services.updater.ComponentUpdater
Component
Throws an IOException, IllegalArgumentException, and sends an HTTP query to the server to determine the remote server installed components version.
Interface com.cisco.services.updater.Component
int Component
Performs an HTTP fetch of the component from the server and writes to the local file system with the file name temp.jar in the local directory.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-41
Chapter 3
java.lang.String
getBuildDescription ()
Returns the string 'Release' for a version of the form 'a.b(c.d) Release'. int
getBuildNumber ()
Returns 'c' for a version of the form a.b(c.d). The Autoupdater feature in JTAPI also allows applications to download the latest version of JTAPI.JAR directly from the Cisco Unified Communications Manager.
1. 2. 3.
Updater creates a newjtapi.jar file in the current folder of the application, which is the new version of the jar file that was downloaded from the Cisco Unified Communications Manager. Updater copies the current jtapi.jar to a file that is named component.temp in the classpath specified. Updater replaces the current jtapi.jar file with the new jtapi.jar file.
At the end of this operation, the current jar file becomes component.temp and the new jar file becomes jtapi.jar. This operation is supported for both Linux and Windows.
Example Usage of Autoupdater
Command Line : java com.cisco.services.updater.ComponentUpdater <server> <component name> <login> <passwd> Component localComponent, downloadedComponent; ComponentUpdater updater = new ComponentUpdater(); String localPath = updater.getLocalComponentPath(args[1]); localComponent = updater.queryLocalComponentVersion("jtapi.jar",localPath); localComponent.copyTo("component.temp"); String provString = args[0] + ";login=" + args[2] + ";passwd=" + args[3]; CiscoJtapiPeer peer = (CiscoJtapiPeer) (JtapiPeerFactory.getJtapiPeer(null)); CiscoJtapiProperties tempProp = ( (CiscoJtapiPeerImpl) (peer)). getJtapiProperties(); tempProp.setLightWeightProvider(true); Provider provider = peer.getProvider(provString); String url = ( (CiscoProvider) (provider)).getJTAPIURL(); provider.shutdown(); Component serverComponent = updater.queryServerComponentVersion("jtapi.jar", url);
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-42
OL-16702-01
Chapter 3
The replaces API will replace the existing JTAPI version with the new version.
Note
The updater will only update the JTAPI.JAR file and not the other sample applications and Cisco JTAPI documentation that are bundled with the JTAPI plug-in. To get these other components, applications must download the plug-in from the Cisco Unified Communications Manager and install it.
void
Allows an application to have more control over the events that get delivered to the TerminalObserver.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-43
Chapter 3
CiscoTermEvFilter
boolean
getButtonPressedEnabled()
Gets the enable or disable status of the button-pressed events for the terminal. The default value is disabled. boolean
getDeviceDataEnabled()
Gets the enable or disable status of the device data events for the terminal. The default value is disabled. boolean
getRTPEventsEnabled()
Gets the enable or disable status of the RTP events for the terminal. The default value is disabled. void
setButtonPressedEnabled (boolean enabled)
Enables or Disables the button pressed events for the terminal. void
setDeviceDataEnabled (boolean enabled)
Enables or Disables the device data status events for the terminal. void
setRTPEventsEnabled (boolean enabled)
int
getButtonPressed ()
For details on the interface changes, see Chapter 5, Cisco Unified JTAPI Implementation. To view the message flow for CiscoTerminal Filter and ButtonPressedEvents, see Appendix A, Message Sequence Charts.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-44
OL-16702-01
Chapter 3
A new interface, getRouteSelectedIndex (), exposed on the new class CiscoRouteUsedEvent, an extension of RouteUsedEvent, which gives the index of the selected route. Applications need to cast the RouteUsedEvent to the CiscoRouteUsedEvent in order to get access to this method.
Example
routeSelected[0] routeSelected[1] routeSelected[2] routeSelected[3] = = = = 133555 144911 143911 5005 =null =9721234567 =9721234568 =null
If routeSelected[0] or routeSelected[3] is selected for routing, the modifying calling number may not be applied. You can only use this feature after an administrator enables the modifying calling number check box in the Cisco Unified Communications Manager Administration for a particular user, which by default is False. If it is not configured, a RerouteEvent with the cause of RouteSession.CAUSE_PARAMETER_NOT_SUPPORTED gets sent to the applications. The application that is modifying the calling number needs to be aware that display name on the called party is affected, and subsequent feature interactions of the calling or called party may result in inconsistent behavior. The following are new or changed interfaces for Modifying Calling Number:
CiscoRouteSession
void
This interface allows applications to modify the calling party number to the routeSelected address. If no modifiedCallingNumber element exists for the corresponding routeSelected element, the calling number does not get modified if a call gets routed to that particular routeSelected element.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-45
Chapter 3
CiscoCall
javax.telephony.Address getModifiedCalledAddress ()
This interface returns a modified called address for the call if an application modifies the calling party using the selectRoute API. However, this information may not be accurate if an application is only controlling the route point that modifies the calling number. If no modified calling number gets performed, this is similar to the getCurrentCalledAddress interface. Typically, this gets varied from getCurrentCalledAddress when a feature gets invoked after modified calling number modifications.
javax.telephony.Address getModifiedCallingAddress ()
This interface returns a modified calling address for the call if an application modifies the calling party using the selectRoute API. However, this information may not be accurate if an application is only controlling the route point that modifies the calling number. If no modified calling number gets performed, this interface is similar to the getCurrentCallingAddress interface.
CiscoRouteUsedEvent
int
getRouteSelectedIndex ()
This method returns an array index of the route to where the call gets routed. For details on the interface changes, see Chapter 5, Cisco Unified JTAPI Implementation. To view the message flow for Modifying Calling Number, see Appendix A, Message Sequence Charts.
Note
The maximum number of lines supported for route points equals 34. The new interface setAutoAcceptStatus(), provided on the CiscoAddress object, allows the capability to set AutoAccept to ON or OFF. Interface getAutoAcceptStatus(), also provided on the CiscoAddress object, allows applications to query the current status of AutoAccept on the address. When AutoAccept status changes for the address, applications get CiscoAddrAutoAcceptStatusChangedEv on AddressObservers. This event includes the interface getTerminal(), which returns the terminal on which the AutoAccept status gets changed, and the interface getAutoAcceptStatus(), which returns integers that specify whether AutoAccept is ON or OFF. If an address observer is not added, the event does not get provided. The following interfaces support AutoAccept on CTIPort and RoutePoint:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-46
OL-16702-01
Chapter 3
CiscoAddress
int
This allows an application to enable AutoAccept for addresses on the CiscoMediaTerminal and or the CiscoRouteTerminal.
CiscoAddrAutoAcceptStatusChangedEv
Public interface: CiscoAddrAutoAcceptStatusChangedEv Extends com.cisco.jtapi.exension.CiscoAddrEv The CiscoAddrAutoAcceptStatusChangedEv event gets sent to applications whenever AutoAccept status for the address on the terminal gets changed. If an address has multiple terminals, this event gets sent for the address AutoAccept status on each individual terminals. This event provides the following interface: int
getAutoAcceptStatus ()
CiscoAddrAutoAcceptStatusChangedEv.getAutoAcceptStatus returns the following value of AutoAccept status of address on terminal CiscoAddress.AUTOACCEPT_OFF CiscoAddress.AUTOACCEPT_ON.
com.cisco.jtapi. getTerminal () extensions.CiscoTerminal
Returns the terminal at which this address AutoAccept status gets changed.
For details on the interface changes, see Chapter 5, Cisco Unified JTAPI Implementation. To view the message flow for AutoAccept on CTIPort and RoutePoint, see Appendix A, Message Sequence Charts.
CiscoTermRegistrationFailed Event
This event gets provided to the application when CiscoMediaTerminal or CiscoRouteTerminal registration fails asynchronously. Usually when registration fails, the application gets a CiscoRegistrationFailedException. However, it is possible that the registration request was successful, but the registration was rejected by the CTI. This event is provided for the cases where the registration request is successful, but the registration gets rejected. The application should have TerminalObserver to receive this event. Upon receipt of this event, the applications should reregister with the new parameter depending on the error code that is provided for this event. The following list provides the errors that get returned and the actions to take, by the application, to resolve them.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-47
Chapter 3
Error Message CiscoTermRegistrationFailedEv.MEDIA_CAPABILITY_MISMATCH Explanation Registration cannot get done because the terminal is already registered. Do the second
Error Message CiscoTermRegistrationFailedEv.MEDIA_ALREADY_TERMINATED_NONE Explanation Registration cannot get done because the terminal is already registered with media
Error Message CiscoTermRegistrationFailedEv.MEDIA_ALREADY_TERMINATED_STATIC Explanation Registration cannot get done because the terminal is already registered with static media
Error Message CiscoTermRegistrationFailedEv.MEDIA_ALREADY_TERMINATED_DYNAMIC Explanation Registration cannot get done because the terminal is already registered with dynamic
media termination.
Recommended Action Try reregistering with dynamic media termination.
Error Message CiscoTermRegistrationFailedEv.OWNER_NOT_ALIVE Explanation When trying to register the terminal, registration gets in a race condition. Recommended Action Try reregistering the terminal.
Returns the errorCode for this exception. There are no changes in the message flow.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-48
OL-16702-01
Chapter 3
RouteSelected list. If the call gets routed to Route at index I in the RouteSelected list, the PreferredOriginalCalledNumber and PreferredOriginalCalledOption at index I get used. Applications get the following behavior with different values for these parameters.
Note
Below x, point to the index where the call is being routed. For example, if the call gets routed to Route n, then value of x will be n. If a PreferredOriginalCalledOption at index x is invalid or out of range, JTAPI defaults it to CiscoRouteSession.DONOT_RESET_ORIGINALCALLED, and if PreferredOriginalCalledOption is null, all the routing gets done with option CiscoRouteSession.DONOT_RESET_ORIGINALCALLED.
When PreferredOriginalCalledOption[x] is set to CiscoRouteSession.RESET_ORIGINALCALLED
If RouteSelected list contains Routes R1, R2 .. Rn, and preferredOriginalCalled list contains O1, O2, On, if R1 is available, then call will be routed to R1, and OriginalCalledNumber will be set to O1; if R1 is busy and R2 is available, then call will be routed to R2, and OriginalCalledNumber will be set to O2 and so on. If RouteSelected list contains Routes R1, R2 .. Rn, and preferredOriginalCalled list contains O1, O2, Om, and m < n, if R1 is available, the call will be routed to R1, and preferredOriginalCalled will be set to O1; if R1 is busy and R2 is available, the call will be routed to R2, and OriginalCalledNumber will be set to O2 and so on until m. From Route m+1, if Rm+1 is available, the call will be routed to Rm+1, and OriginalCalledNumber will be set to Rm+1, and so on. Lastly, if Rn is available, the call gets routed to Rn, and OriginalCalledNumber gets set to Rn". If RouteSelected list contains Routes R1, R2 .. Rn, and preferredOriginalCalled list is NULL, then if R1 is available, the call will be routed to R1, and OriginalCalledNumber will be set to R1; if R1 is busy and R2 is available, the call will be routed to R2, and OriginalCalledNumber will be set to R2 and so on.
If RouteSelected list contains Routes R1, R2 .. Rn, and preferredOriginalCalled list contains O1, O2,.. On, the call will be routed to one of the available routes, and the OriginalCalledNumber will remain unchanged. If RouteSelected list contains Routes R1, R2 .. Rn, and preferredOriginalCalled list contains O1, O2, Om, and m < n, the call will be routed to one of the available routes, and the OriginalCalledNumber will remain unchanged. If RouteSelected list contains Routes R1, R2 .. Rn, and preferredOriginalCalled list is NULL, the call will be routed to one of the available routes and OriginalCalledNumber will remain unchanged.
Note
When OriginalCalled gets set to PreferredOriginalCalled, LastRedirectingParty number also gets reset to PreferredOriginalCalled. The following are new or changed interfaces for SelectRoute Interface Enhancement: int
selectRoute (java.lang.String[] routeSelected, int callingSearchSpace, java.lang.String[] preferredOriginalCalledNumber, int[] preferredOriginalCalledOption)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-49
Chapter 3
Optional parameter value for PreferredOriginalCalledOption that specifies not to reset OriginalCalled. static int
REESET_ORIGINALCALLED
For details on the interface changes, see Chapter 5, Cisco Unified JTAPI Implementation. To view the message flow for SelectRoute Interface Enhancement, see Appendix A, Message Sequence Charts.
boolean
getCalledAddressPI()
Returns the PI that is associated with getCalledAddressPI. If it returns true, the application displays the address name. If it returns false, the application must not display the address name. boolean
getCallingAddressPI()
Returns the PI that is associated with getCallingAddressPI. If it returns true, the application displays the address name. If it returns false, the application must not display the address name. boolean
getCurrentCalledAddressPI()
Returns the PI that is associated with CurrentCalledAddressPI. If it returns true, the application displays the address name. If it returns false, the application must not display the address name.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-50
OL-16702-01
Chapter 3
boolean
getCurrentCalledDisplayNamePI()
Returns the PI that is associated with CurrentCalledDisplayNamePI. If it returns true, the application displays the address name. If it returns false, the application must not display the address name. boolean
getCurrentCallingAddressPI()
Returns the PI that is associated with getCurrentCallingAddressPI. If it returns true, the application displays the address name. If it returns false, the application must not display the address name. boolean
getCurrentCallingDisplayNamePI()
Returns the PI that is associated with getCurrentCallingDisplayNamePI. If it returns true, the application displays the address name. If it returns false, the application must not display the address name. boolean
getLastRedirectingAddressPI()
Returns the PI that is associated with getLastRedirectingAddressPI. If it returns true, the application displays the address name. If it returns false, the application must not display the address name. The following interface on CiscoConnection retrieves the PI value for the address that is associated with the connection:
CiscoConnection
boolean
getAddressPI()
Returns the PI that is associated with the address on which the connection gets created. If it returns true, the application displays the address name. If it returns false, the application must not display the address name. There is no change in the message flow.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-51
Chapter 3
IDLEIf no calls exist on any of the addresses on the terminal, then the DeviceState is considered IDLE, and Cisco Unified JTAPI sends CiscoTermDeviceStateIdleEv to applications. ACTIVEIf any of the addresses on the terminal have an outgoing call (in CTI State Dialtone, Dialing, Proceeding, Ringback, or Connected) or an incoming call (in CTI State Connected), then the DeviceState is ACTIVE, and Cisco Unified JTAPI sends CiscoTermDeviceStateActiveEv to the application. ALERTINGIf none of the addresses on the terminal has an outgoing call (in CTI State Dialtone, Dialing, Proceeding, Ringback, or Connected) or an incoming call (in CTI State Connected) and at least one of the addresses on the terminal has an unanswered incoming call (in CTI State Offering, Accepted, or Tinging), then the DeviceState is ALERTING, and Cisco Unified JTAPI sends CiscoTermDeviceStateAlertingEv to the application. HELDIf all the calls on any of the address on the terminal are held (in CTI State OnHold) the DeviceState is HELD and Cisco Unified JTAPI sends CiscoTermDeviceStateHeldEv to the application.
New Events
The following new interfaces on CiscoTermEvFilter set and get the device state: void
setDevideStateActiveEvFilter(boolean filterValue)
Enables and disables the CiscoTermDeviceStateActiveEv filter. The default value is disable. void
setDeviceStateAlertingEvFilter(boolean filterValue)
Enables and disables the CiscoTermDeviceAlertingEv filter. The default value is disable. void
setDeviceStateHeldEvFilter(boolean filterValue)
Enables and disables the CiscoTermDeviceHeldEv filter. The default value is disable.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-52
OL-16702-01
Chapter 3
void
setDeviceStateIdleEvFilter(boolean filterValue)
Enables and disables the CiscoTermDeviceIdleEv filter. The default value is disable. boolean
getDeviceStateActiveEvFilter()
Gets the CiscoTermDeviceStateAlertingEv filter status. For details on the interface changes, see Chapter 5, Cisco Unified JTAPI Implementation.
Supported Interfaces
Cisco Unified JTAPI supports FAC and CMC in the following interfaces:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-53
Chapter 3
Upon receiving the CiscoToneChangedEv, applications need to enter the appropriate code or codes by using the connection.addToAddress interface with a # terminating string. Digits either can be entered one at a time within the interdigit timer value (T302 timer) for each digit including the # terminating character, or all the digits, including the # termination character, can be entered within the T302 timer value that is configured in Cisco Unified Communications Manager Administration.
When FAC and CMC Are Both Required
For a DN that requires both codes, the first event is always for the FAC and the second code is for the CMC, but the application has the option to send both codes, separated by a pound sign (#), in the same request. The second event remains optional, based on what the application sends in the first request. The application can send both codes at the same time, but both codes must end with #. as shown in the following example:
connection.addToAddress(1234#678#)
where 1234 is the FAC and 678 is the CMC. In this case, the application does not receive a second CiscoToneChanged. The first CiscoToneChangesEv will have getWhichCodeRequired()=CiscoToneChanged.FAC_CMC_REQUIRED, and getCause()=CiscoCallEv.CAUSE_FAC_CMC. In response, one of the following cases can occur:
The application sends FAC and CMC in the same connection.addToAddres(code1#code2#) request. In this case, no second CiscoToneChangedEv gets sent to the application. The application sends only a FAC code in connection.addToAddress(code#1). In this case, the application receives a second CiscoToneChangedEv with getWhichCodeRequired()=CiscoToneChangedEv.CMC_REQUIRED. The application sends only part of the first code or the complete first code and incomplete second code (if the code is not terminated with #, it remains is incomplete and the system waits for the T302 timer to expire and tries to validate the code). If the code is incomplete, a second CiscoToneChangedEv tone gets generated with getWhichCodeRequired()=CiscoToneChangedEv.CMC_REQUIRED and getCause()=CiscoCallEv.CAUSE_FAC_CMC.
PostCondition Timer
The PostCondition timer resets each time the connection.addToAddress interface is invoked to send code. FAC and CMC must have the terminal # [for example, Connection.assToAddress(1234#), where 1234 is the FAC]. The system waits for the T302 timer to expire, then extends the call if all codes have been entered. If all codes have not been entered, the system plays reorder tone. In this case, the application could receive PlatformException with postConditionTimeout even if the call is extended. To avoid this, the application needs to increase the postcondition timeout by using JTAPI Preferences. If the application uses call.connect() or call.consult() to initiate a call, but the FAC or CMC (including #) is not entered from a Cisco IP Phone within the postcondition timeout limit, then the request could get a platformException with postCondition timeout, but the call may actually be extended. To avoid this, the application needs to increase the postcondition timeout by using JTAPI preferences.
Shared Lines
If the initiating party is a shared line, then applications need to use setRequestController to set active terminalConnection before passing additional digits by using the connection.addToAddress interface.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-54
OL-16702-01
Chapter 3
If a code is invalid or no code is entered before the T302 timer expires, the call gets rejected with callCtlCause cause code as CiscoCallEv.CAUSE_FAC-CMC.
RouteSession.selectRoute()
Two additional arrays of string parameters (facCode, cmcCode) support FAC and CMC. For each routeselect element, applications can specify the code for the DN. Applications need to specify null values for DNs that do not require any codes. The default values for the codes are null values. If one routeselected element does not contain the correct code, the next element in the arrays gets tried. If all of them fail, then reRouteEvent gets sent to the application.
Note
The system does not support forwarding to a DN that requires an FAC or CMC code. The application can set the forward number to these DNs by using the Address API, but calls forwarded to these numbers are rejected.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
3-55
Chapter 3
Network Events
In previous releases of Cisco Unified JTAPI, when a call is made to an address outside the cluster, CallCtlConnNetworkReachedEv and CallCtlConnNetworkAlertingEv events are delivered for the far-end address. In later versions of Cisco Unified Communications Manager (4.0 and above), these events are not delivered. In these versions CallCtlConnection for the far-end address goes to the ESTABLISHED state from OFFERED state. The application will receive CallCtlConnOfferedEv, CallCtlConnEstablishedEv for the far-end address. The CallCtlConnNetworkReachedEv and CallCtlConnNetworkAlertingEv events are not delivered to application. To receive network events, the Allow overlap sending flag on the route pattern configured for the gateway must be turned on. A new jtapi.ini parameter called AllowNetworkEventsAfterOffered is introduced to allow the application to control the delivery of these events. Applications that need the network events but cannot turn on this flag can use this new jtapi.ini parameter to receive network events for outgoing calls. To turn on the parameter complete the following steps:
Step 1
Run jtprefs and select the required options. This creates jtapi.ini file in c:\winnt\java\lib, if Cisco Unified JTAPI is installed in the default directory. If the jtapi.ini file already exists, you can update the file directly without running jtprefs. Add AllowNetworkEventsAfterOffered=1 to the end of the file and save it. Repeat the preceding step every time Cisco Unified JTAPI is reinstalled. When the AllowNetworkEventsAfterOffered flag is enabled, the application will receive CallCtlConnOfferedEv, CallCtlConnNetworkReachedEv or CallCtlConnNetworkAlertingEv and CallCtlConnEstablishedEv for the far-end address.
Step 2 Step 3
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
3-56
OL-16702-01
CH A P T E R
Overview, page 4-1 Installing the Cisco Unified JTAPI Software, page 4-3 Auto Install for Upgrades, page 4-7 Configuring Cisco Unified JTAPI Preferences, page 4-7 Administering User Information for JTAPI Applications, page 4-19 Fields in the jtapi.ini File, page 4-19
Overview
The Cisco Java Telephony API (JTAPI) implementation comprises Java classes that reside on all client machines that run JTAPI applications. Installation of the Cisco Unified JTAPI implementation must take place before these applications can function correctly. Make sure that the Cisco Unified JTAPI classes are installed wherever JTAPI applications run, whether on Cisco Unified Communications Manager, a separate machine, or both. Previously, the system supported installation of the JTAPI client only on Windows platforms. Beginning with the 5.0 release, the JTAPIInstaller provides a unified installation/uninstallation process for the JTAPI client for Linux, Windows, and Solaris, as listed in Table 4-1. For Linux and Solaris versions, the InstallShield MultiPlatform (ISMP) installer generates a binary file (.bin), and for the Windows version, it generates an executable file (.exe), after the set of files that need to be installed is obtained.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-1
Chapter 4 Overview
Table 4-1
Platform Linux
Release AS 3.0
CiscoUnified Communications Manager Release 4.x IBM JVM 1.3.1 IBM JVM 1.4.2 Sun JVM 1.3.1 Sun JVM 1.4.2
CiscoUnified Communications Manager 5.x, 6.x, 7.x Sun JVM 1.5.0.4 Sun JVM 1.4.2
IBM JVM 1.3.1 IBM JVM 1.4.2 Sun JVM 1.3.1 Sun JVM 1.4.2
Solaris Windows
6.2 on SPARC 9x 2000 NT 4.0+ XP (32 bit) 2003 Vista (32 bit)
Sun JVM 1.3.1 Sun JVM 1.4.2 Sun JVM 1.3.1 Sun JVM 1.4.2 Sun JVM 1.3.1 Sun JVM 1.4.2 Sun JVM 1.5.0_13 Sun JVM 1.3.1 Sun JVM 1.4.2
Sun JVM 1.5.0.4 Sun JVM 1.4.2 Sun JVM 1.4.2 Sun JVM 1.5.0.4 Sun JVM 1.4.2
Note
If you have upgraded to Cisco Unified Communications Manager 5.0, you must upgrade the JTAPI client software on any application server or client workstation on which JTAPI applications are installed. If you do not upgrade the JTAPI client, your application will fail to initialize. If you need to upgrade, download the appropriate client as described in the Installing the Cisco Unified JTAPI Software section. Upgraded JTAPI client software does not work with previous releases of Cisco Unified Communications Manager.
CiscoJtapiVersion.exe - silent -W newversion.check=1 -goto showversion CiscoJtapiClient-linux.bin -silent -W newversion.check=1 -goto showversion CiscoJtapiClient-solarisSparc.bin -silent -W newversion.check=1 -goto showversion CiscoJtapiClient-solarisX86.bin -silent -W newversion.check=1 -goto showversion
These commands create a file called jtapiversion.txt in the folder where you execute the command. This file contains the JTAPI version in the format A.B(C.D).
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-2
OL-16702-01
Chapter 4
Cisco Unified JTAPI Installation Installing the Cisco Unified JTAPI Software
Warning
Installation of the new software may fail if you do not first manually uninstall any Release 4.X or earlier version of the JTAPI SDK.
When a previous JTAPI version is present in the system and an upgrade is made to the current version of JTAPI, the installer invokes the uninstaller of the previous release. If you want to invoke the previous uninstaller in silent mode on a Windows system, use the command
CiscoJtapiClient.exe -silent -W newversion.silent=1
If it is installed, you can also use the JTAPI Preferences user interface utility tool to verify the installed JTAPI version.
Step 1
Choose Start > Programs > CiscoJTAPI > JTAPI Preferences. The following menu appears:
Step 2
Select the ReadMe file. This file identifies the currently installed version of Cisco Unified JTAPI.
For the ISMP installer to run, the installer temporarily installs a Java Runtime Environment (JRE) version and uses it for its operation. The system removes the JRE during the uninstall operation.
Note
Distribution of the JRE with the Cisco Unified JTAPIInstaller occurs in accordance with an agreement between Sun Microsystems, Inc., and Cisco Systems, Inc.
Warning
Installation of the new software may fail if you do not first manually uninstall any Release 4.X or earlier version of the JTAPI SDK.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-3
Applications that run the JTAPIInstaller in silent mode can use of the following commands:
Linux platformsCiscoJTAPIClient-linux silent Solaris (Sparc) platformsCiscoJTAPIClient-solarisSparc.bin silent Solaris (X86) platformsCiscoJTAPIClient-solarisX86.bin silent Windows (Win9X, Win ME, Win2K, or WinXP) platformsCiscoJTAPIClient.exe silent
When you are performing a fresh install or an upgrade/downgrade, the JTAPIInstaller automatically detects the destination folders and does the silent install. The installer places the JTAPI Sample Applications and the JAR Files in the appropriate folders that the user specifies during installation or to the default folders in case of a silent install. However, if a previous version is present, the JTAPIInstaller does not know the applications path, so it creates the default folders, Lib and JTAPITools, and installs the applications in those folders. For Windows clients, the JTAPIInstaller also updates the registry with the new install information. For Linux versions, it creates the file jtapiver.ini in the users home directory.
Linux platformsCiscoJTAPIClient-linux.bin console Solaris (Sparc) platformsCiscoJTAPIClient-solarisSparc.bin console Solaris (X86) platformsCiscoJTAPIClient-solarisX86.bin console Windows (Win9X, WinME, Win2K, or WinXP) platformsCiscoJTAPIClient.exe -console
You will find that the command line mode is helpful for installing JTAPI in systems that do not have GUI support, such as Linux systems. A character-based menu, where the user is asked to provide a series of inputs based on the install time conditions, guides the entire installation procedure. This mode also provides all the other options that the GUI-based installer provides.
Installation Procedures
The following sections describe the installation procedures for the Linux, Solaris, and Windows platforms.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-4
OL-16702-01
Chapter 4
Cisco Unified JTAPI Installation Installing the Cisco Unified JTAPI Software
JTAPI java classes in $HOME/.jtapi/lib JTAPI Preferences in $HOME/.jtapi/bin JTAPI sample applications (makecall, jtrace) in $HOME/.jtapi/bin JTAPI documentation in $HOME/.jtapi/bin/doc
Perform the following steps to install the Cisco Unified JTAPI software on a Linux/Solaris platform:
Step 1 Step 2
Log in to the computer where you want to install the Cisco Unified JTAPI client software. Locate the appropriate ISMP installer and launch it:
CiscoJTAPIClient-linux.bin - for Linux OS CiscoJTAPIClient-solarisSparc.bin - for Solaris Sparc OS CiscoJTAPIClient-solarisX86.bin - for Solaris X86 OS
Step 3
Follow the instructions that the Cisco Unified JTAPI Installer presents.
Note
The installation software installs the Cisco Unified JTAPI software on the default drive. In Linux, for example, the default directory is $HOME/.jtapi/lib
Check that the .jtapiver.ini file was created in the $HOME directory. Check that the JTAPI Program files and documentation are present under the folder $HOME/.jtapi/bin. Look for the makecall, jtrace, Locale_files, and doc folders. Check that the JTAPI Library is present under the folder $HOME/.jtapi/lib. Look for the jtapi.jar, jtracing.jar, and updater.jar files. After ensuring that jtapi.jar is present in the classpath, run the following command from the command line prompt of $HOME/.jtapi/bin ./_jvm/bin/java:
com.cisco.services.jtprefs.jtprefsFrame
Note
In the absence of the JTPrefs application, you can generate the jtapi.ini file by typing:
< jview | java > CiscoJtapiVersion -parms
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-5
During installation, users can choose a different folder than $HOME to install JTAPI. In this case, the system creates a folder called .jtapi within the specified folder, and creates the bin and lib folders within that folder for copying the corresponding files. For example, if the user chooses the folder name /home/jtapiuser, the folder structure would be: /home/jtapiuser/.jtapi/bin Contains the makecall, jtrace, Locale_files, and doc folders. /home/jtapiuser/.jtapi/lib Contains the jtapi.jar, jtracing.jar, and updater.jar files In this case, run the command at Step 4 from the /home/jtapiuser/.jtapi/bin folder.
Windows Platforms
Cisco Unified JTAPI supports multiple languages for the installation and JTAPI Preferences user interface. The Cisco Unified JTAPI Installer installs the following items on the local disk drive:
JTAPI Java classes in %SystemRoot%\java\lib JTAPI Preferences in Program Files\JTAPITools JTAPI sample applications (makecall, jtrace) in Program Files\JTAPITools JTAPI documentation in Program Files\JTAPITools\doc
To install the Cisco Unified JTAPI software on a Windows platform, perform the following steps:
Step 1 Step 2 Step 3 Step 4
Log in to the computer where you want to install the Cisco Unified JTAPI client software. Close all Windows programs. Locate the ISMP installer (CiscoJTAPIClient.exe) and launch it. Follow the installer instructions.
Note
The installation software installs the Cisco Unified JTAPI software on the default drive. When Windows NT is installed, for example, the default directory is C:\WINNT\Java\lib.
From the Windows NT command line, navigate to the directory where you installed Cisco Unified JTAPI Tools. By default, this directory is C:\Program Files\JTAPITools. Execute the following command: java CiscoJtapiVersion
Step 3
Execute the following command: java makecall <server name> <login> <password> 1000 <phone1> <phone2>
Note
The server name variable specifies the hostname or IP address of the Cisco Unified Communications Manager (for example, CTISERVER).
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-6
OL-16702-01
Chapter 4
The phone1 and phone2 variables designate directory numbers of IP phones or virtual phones that the user controls according to the user configuration. Refer to the Cisco Unified Communications Manager Administration Guide for details. For the login and password variables, use the user ID and password that you configured in the Cisco Unified Communications Manager User Configuration window.
Note
Auto Install does not update JTAPI preferences, TAPITestTools, updater.jar, and javadoc components. If applications require these components, install JTAPI from the Cisco Unified Communications Manager plugin windows.
JTAPI Tracing Tab, page 4-8 Log Destination Tab, page 4-10 CallManagers Tab, page 4-13 Advanced Tab, page 4-14
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-7
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-8
OL-16702-01
Chapter 4
The JTAPI Tracing tab lets enable or disable JTAPI trace levels as listed in Table 4-2.
Table 4-2 JTAPI Trace Levels
Jtapi.ini fields Trace Levels WARNING INFORMATIONAL DEBUG Debug Levels JTAPI_DEBUGGING JTAPIIMPL_DEBUGGING CTI_DEBUGGING CTIIMPL_DEBUGGING PROTOCOL_DEBUGGING MISC_DEBUGGING
Default None None None None None None None None None
Min N/A N/A N/A N/A N/A N/A N/A N/A N/A
Max N/A N/A N/A N/A N/A N/A N/A N/A N/A
Description Low-level warning events Status events Highest level debugging events JTAPI methods and events trace Internal JTAPI implementation trace Trace Cisco Unified Communications Manager events sent to JTAPI Internal CTICLIENT implementation trace Full CTI protocol decoding Miscellaneous low-level debug trace
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-9
Table 4-3
Default 0
Min NA
Max NA
Description When this option is enabled, JTAPI alarms go to an alarm service that is running on the specified machine. You must specify the host name and port number when you enable this option. When this option is enabled, traces go to a UDP port as specified in the Collector and Port Number fields. Syslog collector service collects traces and directs them to the CiscoWorks2000 server.
FALSE
NA
NA
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-10
OL-16702-01
Chapter 4
Table 4-3
Jtapi.ini fields Host Name Host Port Syslog Settings Collector Port Number Use Rotating Log Files (SyslogCollector)
Default
Min NA NA
Max NA NA
Description Use this field to specify the host name of the alarm service server. Use this field to specify the host port of the alarm service server. Use this field to specify the Syslog collector service that collects traces. Use this field to specify the UDP port of the collector. Allows you to direct traces to a specific path and folder. No fewer than two log files and no more than 99 files can exist. Cisco Unified JTAPI rotates through the log files in numerical order, returning to the first log file after filling the last. Log files increase in size in 1-megabyte increments. When this option is enabled, tracing goes to the standard output or console (command) window. This setting lets you specify the maximum number of log files to be written. This setting lets you specify the maximum size of log files to be written. This setting lets you specify whether the same folder name should be used for each instance of an application. When this option is enabled, JTAPI traces the log files to the same directory. In this case, successive instances of a JTAPI application will restart the log files starting at index 01. When this option is disabled, each instance of the application, whether successive or simultaneous, will cause trace files to be placed in a new folder sequential to the last folder that was written. Cisco Unified JTAPI detects the last folder present in the trace path and automatically increments the numeric index.
0 514 FALSE
NA NA NA
NA NA NA
Use Java Console (UseSystemDotOut) Log File Settings Maximum Number of Log Files (NumTraceFiles) Maximum Log File Size (TraceFileSize) Use the Same Directory (UseSameDirectory)
FALSE
NA
NA
10 1048576 1
1000
1048576 NP NA NA
Trace Path (TracePath) Directory Name Base (Directory) File Name Base (FileNameBase)
NA
NA
This setting lets you specify the path name to which trace files are written. When the path is not specified, JTAPI defaults to the application path. This setting lets you specify a folder name where the trace files will be contained. Use this value to create the trace file name.
. Cisco Jtapi
NA NA
NA NA
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-11
Table 4-3
Default log
Min NA
Max NA
Description This setting lets you specify a numerical index to append to the file base name indicates the order in which trace files are created. If you enter jtapiTrace in the File Name Base field and log in the File Name Extension field, the system names the trace files jtapiTrace01.log, jtapiTrace02.log, and so on. If the File Name Base and File Name Extension fields are left blank, JTAPI picks the trace files names as CiscoJtapi01.log, CiscoJtapi02.log, and so on.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-12
OL-16702-01
Chapter 4
CallManagers Tab
This tab allows you to define a list of Cisco Unified Communications Managers that a JTAPI application can present to the user for optional Cisco Unified Communications Manager connectivity. Figure 4-3 illustrates the CallManagers tab of the preferences application.
Figure 4-3 CallManagers Tab
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-13
Advanced Tab
You can configure the parameters in Table 4-4 through the Advanced tab in the JTPrefs application. You may need these low-level parameters for troubleshooting and debugging purposes only. Figure 4-4 illustrates the Advanced tab of the preferences application.
Figure 4-4 Advanced Tab
Note
Cisco strongly recommends that you not modify the parameters in Table 4-4 unless the Cisco Technical Assistance Center (TAC) instructs you to do so.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-14
OL-16702-01
Chapter 4
Table 4-4
Min NA
Max NA
Description Enables (or disables) a heartbeat in the internal message queue that JTAPI uses. If JTAPI has not received a message in the time defined in PeriodicWakeupInterval, it causes the thread to wake up and creates a log event. Allows you to define a period of inactivity in the JTAPI internal message thread (in seconds). If JTAPI has not received a message during this time, the thread wakes up and logs an event. Causes JTAPI to log the max queue depth over the specified number of messages that are queued to JTAPI main event thread. For every x messages processed, JTAPI logs a DEBUGGING level trace that reports the maximum queue depth over that interval, where x is the number of messages specified in Queue Size Threshold.
50
NP
NP
FALSE (disabled)
NA
NA
Queue Size Threshold (QueueSizeThreshold) CTI Request Timeout (CtiRequestTimeout) Provider Open Request Timeout (ProviderOpenRequestTimeout) Provider Retry Interval (ProviderRetryInterval)
25
10
NP
Specifies the number of messages that define the interval over which JTAPI will report the maximum queue depth. Specifies the number of seconds that JTAPI will wait for a response from a CTI request. Specifies the number of seconds that JTAPI will wait for a response to a Provider Open Request. Specifies the number of seconds that JTAPI will retry opening connection to a Cisco Unified Communications Manager cluster in case of system failure. Specifies the interval at which the connection between JTAPI and the Cisco Unified Communications Manager cluster will be verified (in seconds). If JTAPI fails to receive heartbeats, it will establish a connection via the second CTIManager that is specified in the provider open request.
15 200 30
10 10 5
NP NP NP
30
>0
NP
5000
NP
Specifies the interval in milliseconds that JTAPI will wait for the application to respond to the Route event. If the application does not respond in this time, JTAPI ends the route and sends the corresponding RouteEnd event. Specifies the timeout.
15
NP
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-15
Security Tab
Figure 4-5 illustrates the Security tab of the preferences application.
Figure 4-5 Security Tab
Application users need to configure the User Name, InstanceID, Authorization Code, TFTPServer IP-Address, and CAPFServer IP-Address parameters through the JTAPI Preferences application before invoking the JTAPI API or JTAPI Preferences to download/install certificates on the application server. You can use JTAPI Preferences to configure security profiles for one or more userName/instanceID pair. If an application user has previously configured a security profile for a userName/instanceID pair, the security profile automatically populates when the user enters the username/instanceID and clicks any of the other edit boxes. Apart from the GUI that is provided through JTAPI Preferences, an application can also install a client certificate by calling the interface that is provided at CiscoJtapiProperties. When Interface UpdateCertificate() is called, the JTAPI client connects to the TFTP server to download the CTL file and extract certificates to the given certificate path, then connects to the CAPF server to download the client certificate and installs it into the given certificate path. The jtapi.ini files store user security records in comma separated value (CSV) format. Semicolons separate individual records. An example of a users security record follows:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-16
OL-16702-01
Chapter 4
SecurityProperty=user,123,12345,172.19.242.37,3804,172.19.242.37,69,.\\,true,false;<next record>; You can configure the following parameters on the Security tab:
Table 4-5 JTAPI Security Configuration Fields
Jtapi.ini fields Enable Security Tracing (SecurityTraceEnabled) Select Trace Level (SecurityTraceLevel)
Default FALSE
Min NA
Max NA
Description You can enable (or disable) tracing for certificate install operations by checking this check box and choosing the desired trace level. You can choose one of three different trace levels:
Error=0 Logs error events Debug=1 Logs debugging events Detailed=2 Logs all events
NA
NA
NA
If application users have previously configured a security profile for a userName/instanceID pair, that security profile automatically populates when the user enters the username/instanceID and clicks any of the other edit boxes. This field specifies the application instance identifier. If an application is connecting to CTIManager with the same user, it needs to define an instanceID for each instance of the application to download the certificate Authorization String. This field specifies a one-time string used to download certificate. This field specifies the IP address of the TFTP server (normally the Cisco Unified Communications Manager IP Address). The TFTP Server Port defaults to 69. Do not change this value unless the System Administrator advises you to do so. This field specifies the IP address of the CAPF server in dotted decimal. The CAPF Server Port number defaults to 3804; however, you can also configure this number in the Cisco Unified Communications Manager Administration. Ensure that the value that is entered through the JTAPI Preferences is the same as is configured in Cisco Unified Communications Manager Administration. This field specifies the path where the application wants server and client certificates installed. If this field is blank, the system installs certificates in the ClassPath of JTAPI.jar.
Instance ID (instanceID)
NA
NA
NA
NA NA
NA NA
NA NA
69
NP
NP
NA 3804
NA NP
NA NP
Certificate Path
JTAPI.jar NA location
NA
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-17
Table 4-5
Default FALSE
Min NA
Max NA
Description Check this option to enable a secure TLS connection to Cisco Unified Communications Manager. If this option is not checked, JTAPI cannot make a nonsecure connection to CTI even if the certificate is updated/installed. This field provides information on whether the certificate has been updated. This button deletes the existing certificate. This button updates the existing certificate with the changed parameters.
NA NA NA
NA NA NA
NA NA NA
Language Tab
Figure 4-6 illustrates the Language tab of the preferences application.
Figure 4-6 Language Tab
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-18
OL-16702-01
Chapter 4
Cisco Unified JTAPI Installation Administering User Information for JTAPI Applications
The Language tab allows you to select one of the installed languages to view the configuration settings in that language. You can select the following languages:
Brazilian Portuguese Chinese Taiwan Croatian Dutch Greek Simplified Chinese English Hebrew Norwegian Slovak Finnish Polish Spanish
Hungarian Italian
Japanese Nederlands
Select a language, and the tabs display with text in that language.
Jtapi.ini fields INFORMATIONAL DEBUG WARNING JTAPI_DEBUGGING JTAPIIMPL_DEBUGGING CTI_DEBUGGING CTIIMPL_DEBUGGING PROTOCOL_DEBUGGING MISC_DEBUGGING
Default 0 0 0 0 0 0 0 0 0
Min NA NA NA NA NA NA NA NA NA
Max NA NA NA NA NA NA NA NA NA
Description Status events Highest level debugging events Low-level warning events JTAPI methods and events trace Internal JTAPI implementation trace Trace Cisco Unified Communications Manager events that are sent to the JTAPI implementation Internal CTICLIENT implementation trace Full CTI protocol decoding Miscellaneous low-level debug trace
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-19
Table 4-6
Default 30
Min >0
Max NP
Description Specifies how often, in seconds, the connection between JTAPI and the Cisco Unified Communications Manager cluster will be verified. If JTAPI fails to receive heartbeats, it will establish a connection via the second CTIManager that is specified in the provider open request. Allows you to specify the path name to which the trace files are written. When the path is not specified, JTAPI makes the default the application path. A numerical index that is appended to the file base name to indicate the order in which the files are created. For example, if you enter jtapiTrace in the File Name Base field and log in the File Name Extension field, the trace files would rotate between jtapiTrace01.log, jtapiTrace02.log, and jtapiTrace10.log. If the File Name Base and File Name Extension fields are left blank, Cisco Unified JTAPI picks the trace files names as CiscoJtapi01.log, CiscoJtapi02.log, and so on. Allows you to direct the traces to a specific path and folder in the system. No fewer than two log files and no more than 99 files can exist. Cisco Unified JTAPI rotates through the log files in numerical order, and returns to the first log file after filling the last. Log files increase in size in 1-megabyte increments. Allows you to specify the maximum size of log files to be written. When this option is enabled, JTAPI alarms go to an alarm service that is running on the specified machine. You must specify the host name and port number if you enable this option. Specifies the time in seconds that JTAPI will wait for a response for the Provider Open Request. The default is 10 seconds. JTAPI has post conditions for events and if the post condition is not met before a timeout, JTAPI will throw exceptions. Use this field to set the timeout value of such conditions. This field prioritizes multiple provider open requests. Currently, JTAPI only sends a default value. Enables tracing for security-related messages. You can enable (or disable) tracing for certificate install operations by selecting this check box and selecting the desired trace level.
TracePath
NA
NA
FileNameExtension
log
NA
NA
SyslogCollector
FALSE
NA
NA
TraceFileSize UseAlarmService
1048576 0
1048576 NA
NP NA
ProviderOpenRequestTimeout
200
10
NP
JtapiPostConditionTimeout
15
10
20
ApplicationPriority SecurityTraceEnabled
2 FALSE
NA NA
NA NA
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-20
OL-16702-01
Chapter 4
Table 4-6
Default 30
Min >0
Max NP
Description Specifies how often, in seconds, the connection between JTAPI and the Cisco Unified Communications Manager cluster will be verified. If JTAPI fails to receive heartbeats, it will establish a connection via the second CTIManager that is specified in the provider open request. Allows you to specify the path name to which the trace files are written. When the path is not specified, JTAPI makes the default the application path. A numerical index that is appended to the file base name to indicate the order in which the files are created. For example, if you enter jtapiTrace in the File Name Base field and log in the File Name Extension field, the trace files would rotate between jtapiTrace01.log, jtapiTrace02.log, and jtapiTrace10.log. If the File Name Base and File Name Extension fields are left blank, Cisco Unified JTAPI picks the trace files names as CiscoJtapi01.log, CiscoJtapi02.log, and so on. Allows you to direct the traces to a specific path and folder in the system. No fewer than two log files and no more than 99 files can exist. Cisco Unified JTAPI rotates through the log files in numerical order, and returns to the first log file after filling the last. Log files increase in size in 1-megabyte increments. Allows you to specify the maximum size of log files to be written. When this option is enabled, JTAPI alarms go to an alarm service that is running on the specified machine. You must specify the host name and port number if you enable this option. Specifies the time in seconds that JTAPI will wait for a response for the Provider Open Request. The default is 10 seconds. JTAPI has post conditions for events and if the post condition is not met before a timeout, JTAPI will throw exceptions. Use this field to set the timeout value of such conditions. This field prioritizes multiple provider open requests. Currently, JTAPI only sends a default value. Enables tracing for security-related messages. You can enable (or disable) tracing for certificate install operations by selecting this check box and selecting the desired trace level.
TracePath
NA
NA
FileNameExtension
log
NA
NA
SyslogCollector
FALSE
NA
NA
TraceFileSize UseAlarmService
1048576 0
1048576 NA
NP NA
ProviderOpenRequestTimeout
200
10
NP
JtapiPostConditionTimeout
15
10
20
ApplicationPriority SecurityTraceEnabled
2 FALSE
NA NA
NA NA
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-21
Table 4-6
Default 1444
Min NP
Max NP
Description Use this field for sending alarms to a different server. Users can select the alarm server host name and port on which the service is running, and JTAPI will send the alarms to the specified server and port. The alarm server host name. Specifies the time in milliseconds that JTAPI waits for the application to respond to the Route event. If the application does not respond in this time, JTAPI ends the route and sends the corresponding RouteEnd event. Specifies the time in seconds that JTAPI will retry opening a connection to the Cisco Unified Communications Manager cluster in case of system failure. Causes JTAPI to log the max queue depth over the specified number of messages that are queued to JTAPI main event thread. In other words, for every x messages processed, JTAPI logs a DEBUGGING level trace that reports the maximum queue depth over that interval, where x represents the number of messages that are specified in Queue Size Threshold. Use this value to create the trace file name. Enables (or disables) a heartbeat in the internal message queue that JTAPI uses. If JTAPI has not received a message in the time that is defined in PeriodicWakeupInterval, it causes the thread to wake up and creates a log event. Port through which JTAPI parameter changes are communicated to JTAPI applications during runtime. Allows you to define a time of inactivity in the JTAPI internal message thread. If JTAPI has not received a message during this time, the thread wakes up and logs an event. Allows you to specify the number of messages that define the time over which JTAPI will report the maximum queue depth. Use this field to display traces on the console.
AlarmServiceHostname RouteSelectTimeout
null 5000
NA 0
NA NP
ProviderRetryInterval
30
NP
QueueStatsEnabled
FALSE
NA
NA
FileNameBase PeriodicWakeupEnabled
CiscoJtapi FALSE
NA NA
NA NA
JTAPINotificationPort PeriodicWakeupInterval
2789 50
1 NP
NP NP
QueueSizeThreshold
25
10
NP
UseSystemDotOut
FALSE
NA
NA
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-22
OL-16702-01
Chapter 4
Table 4-6
Default 1
Min NA
Max NA
Description Allows you to specify whether the same folder name should be used for each instance of an application. When this option is enabled, JTAPI traces the log files to the same directory. In this case, successive instances of a JTAPI application will restart the log files, starting at index 01. When this option is disabled, each instance of the application, whether successive or simultaneous, will cause the trace files to be placed in a new folder sequential to the last folder that was written. Cisco Unified JTAPI detects the last folder in the trace path and automatically increments the numeric index.
NumTraceFiles UseSyslog
10 FALSE
2 NA
1000 NA
Allows you to specify the maximum number of log files to be written. When this option is enabled, traces go to a UDP port as specified in the Collector and Port Number fields. Syslog collector service collects traces and directs them to the CiscoWorks2000 server. Trace level for security messages 0 = Error, 1 = debug, 2 = detailed Enables the writing of logs to logFile Trace Writer. Feature ID that is assigned to the application. Cisco Unified Communications Manager preassigns this ID. List of CTI Managers for which tracing needs to be collected. Allows you to specify a folder name where the trace files will be contained. Users security record (username, instanceId, authcode, tftp ip address, tftp port, capf ip address, capf port, certificate path, security option, certificate status), that will be stored in jtapi.ini files in a comma separated string. A semicolon separates the records. SecurityProperty=user,123,12345,172.19.242.37, 3804,172.19.242.37,69,.\\,true,false;<next record>;
SecurityTraceLevel UseTraceFile CMAssignedAppID CtiManagers Directory Security Property SecurityProperty=username, instanceId, authcode, tftp ip address, tftp port, capf ip address, capf port, certificate path, security option, certificate status Username
0 TRUE 0 null . NA
0 NA NA NA NA NA
2 NA NA NA NA NA
NA
NA
NA
When application users have previously configured a security profile for a userName/instanceID pair, that security profile is automatically populated when the user enters a username/instanceID and clicks any of the other edit boxes. Application instance identifier. If an application is connecting to CTIManager with the same user, it needs to define an instanceID for each instance of the application to download the certificate Authorization String.
instanceId
NA
NA
NA
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-23
Table 4-6
Default NA
Min NA
Max NA
Description Authorization string that is configured in the Cisco Unified Communications Manager database; can be used only once for getting certificate. TFTP Address of Cisco Unified Communications Manager (normally, the Cisco Unified Communications Manager IP Address) Do not change the default value of 69 unless advised to do so by the System Administrator. CAPF Server IP Address Default value is 3804; however, you can configure this value in Cisco Unified Communications Manager Administration service parameters; the value you enter through this interface should match the value configured on Cisco Unified Communications Manager Administration window. Location where Application wants sever and client certificates to be installed. If this field is left blank, the system installs certificates in the ClassPath of JTAPI.jar If this field is not set to TRUE, JTAPI will make a nonsecure connection to CTI even if certificates are updated/installed. You can use the JTAPI Preferences dialog box to configure the security profile for one or more userName/instanceID pairs.
Communications Manager TFTP NA IP address CallManger TFTP port Communications Manager CAPF IP server address Communications Manager CAPF server port 69 NA 3804
NA
NA
NP NA NP
NP NA NP
Certificate path
JTAPI.jar location
NA
NA
TRUE
NA
NA
NA
NA
NA
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-24
OL-16702-01
Chapter 4
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
4-25
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
4-26
OL-16702-01
CH A P T E R
Class Hierarchy, page 5-1 Interface Hierarchy, page 5-2 Extensions, page 5-10 Class Alarms, page 5-264 Class Tracing, page 5-279
Note
Refer to the JavaDoc.zip file for more information at this URL: http://www.cisco.com/en/US/products/sw/voicesw/ps556/products_programming_reference_guides_li st.html
Class Hierarchy
java.lang.Object com.cisco.services.alarm.AlarmManager com.cisco.services.tracing.BaseTraceWriter (implements com.cisco.services.tracing.TraceWriter) com.cisco.services.tracing.ConsoleTraceWriter com.cisco.services.tracing.LogFileTraceWriter com.cisco.services.tracing.OutputStreamTraceWriter com.cisco.services.tracing.SyslogTraceWriter com.cisco.jtapi.extensions.CiscoAddressCallInfo com.cisco.jtapi.extensions.CiscoJtapiVersion com.cisco.jtapi.extensions.CiscoMediaCapability com.cisco.jtapi.extensions.CiscoG711MediaCapability com.cisco.jtapi.extensions.CiscoG723MediaCapability com.cisco.jtapi.extensions.CiscoG729MediaCapability
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-1
com.cisco.jtapi.extensions.CiscoGSMMediaCapability com.cisco.jtapi.extensions.CiscoWideBandMediaCapability com.cisco.jtapi.extensions.CiscoRTPParams com.cisco.services.alarm.DefaultAlarm (implements com.cisco.services.alarm.Alarm) com.cisco.services.alarm.DefaultAlarmWriter (implements com.cisco.services.alarm.AlarmWriter) com.cisco.services.alarm.ParameterList java.lang.Throwable (implements java.io.Serializable) java.lang.Exception com.cisco.jtapi.extensions.CiscoRegistrationException com.cisco.jtapi.extensions.CiscoUnregistrationException com.cisco.services.tracing.TraceManagerFactory com.cisco.services.tracing.implementation.TraceManagerImpl (implements com.cisco.services.tracing.TraceManager) com.cisco.services.tracing.implementation.TraceWriterManagerImpl (implements com.cisco.services.tracing.TraceWriterManager)
Interface Hierarchy
javax.telephony.Address com.cisco.jtapi.extensions.CiscoAddress (also extends com.cisco.jtapi.extensions.CiscoObjectContainer) com.cisco.jtapi.extensions.CiscoIntercomAddress javax.telephony.callcenter.RouteAddress com.cisco.jtapi.extensions.CiscoRouteAddress javax.telephony.AddressObserver com.cisco.jtapi.extensions.CiscoAddressObserver com.cisco.services.alarm.Alarm com.cisco.services.alarm.AlarmWriter javax.telephony.Call javax.telephony.callcontrol.CallControlCall com.cisco.jtapi.extensions.CiscoCall (also extends com.cisco.jtapi.extensions.CiscoObjectContainer) com.cisco.jtapi.extensions.CiscoConsultCall com.cisco.jtapi.extensions.CiscoCallCtlTermConnHeldReversionEv com.cisco.jtapi.extensions.CiscoConferenceChain com.cisco.jtapi.extensions.CiscoFeatureReason com.cisco.jtapi.extensions.CiscoJtapiException com.cisco.jtapi.extensions.CiscoJtapiProperties
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-2
OL-16702-01
Chapter 5
com.cisco.jtapi.extensions.CiscoLocales com.cisco.jtapi.extensions.CiscoMediaSecurityIndicator com.cisco.jtapi.extensions.CiscoMediaConnectionMode com.cisco.jtapi.extensions.CiscoMediaEncryptionAlgorithmType com.cisco.jtapi.extensions.CiscoMediaEncryptionKeyInfo com.cisco.jtapi.extensions.CiscoMediaSecurityIndicator com.cisco.jtapi.extensions.CiscoMonitorInitiatorInfo com.cisco.jtapi.extensions.CiscoMonitorTargetInfo com.cisco.jtapi.extensions.CiscoObjectContainer com.cisco.jtapi.extensions.CiscoAddress (also extends javax.telephony.Address) com.cisco.jtapi.extensions.CiscoIntercomAddress com.cisco.jtapi.extensions.CiscoCall (also extends javax.telephony.callcontrol.CallControlCall) com.cisco.jtapi.extensions.CiscoConsultCall com.cisco.jtapi.extensions.CiscoCallID com.cisco.jtapi.extensions.CiscoConnection (also extends javax.telephony.callcontrol.CallControlConnection) com.cisco.jtapi.extensions.CiscoConnectionID com.cisco.jtapi.extensions.CiscoConsultCall com.cisco.jtapi.extensions.CiscoIntercomAddress com.cisco.jtapi.extensions.CiscoJtapiPeer (also extends javax.telephony.JtapiPeer, com.cisco.services.tracing.TraceModule) com.cisco.jtapi.extensions.CiscoMediaTerminal com.cisco.jtapi.extensions.CiscoProvider com.cisco.jtapi.extensions.CiscoRouteTerminal com.cisco.jtapi.extensions.CiscoTerminal (also extends com.cisco.jtapi.extensions.CiscoMediaTerminal com.cisco.jtapi.extensions.CiscoRouteTerminal com.cisco.jtapi.extensions.CiscoTerminalConnection (also extends javax.telephony.callcontrol.CallControlTerminalConnection) com.cisco.jtapi.extensions.CiscoPartyInfo com.cisco.jtapi.extensions.CiscoProvFeatureID com.cisco.jtapi.extensions.CiscoProviderCapabilityChangedEv com.cisco.jtapi.extensions.CiscoRecorderInfo com.cisco.jtapi.extensions.CiscoRTPBitRate com.cisco.jtapi.extensions.CiscoRTPHandle com.cisco.jtapi.extensions.CiscoRTPInputProperties com.cisco.jtapi.extensions.CiscoRTPOutputProperties com.cisco.jtapi.extensions.CiscoRTPPayload javax.telephony.Terminal)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-3
com.cisco.jtapi.extensions.CiscoSynchronousObserver com.cisco.jtapi.extensions.CiscoTermConnPrivacyChangedEv com.cisco.jtapi.extensions.CiscoTermEvFilter com.cisco.jtapi.extensions.CiscoTerminalProtocol com.cisco.jtapi.extensions.CiscoTone com.cisco.jtapi.extensions.CiscoUrlInfo javax.telephony.Connection javax.telephony.callcontrol.CallControlConnection com.cisco.jtapi.extensions.CiscoConnection (also extends com.cisco.jtapi.extensions.CiscoObjectContainer) javax.telephony.events.Ev javax.telephony.events.AddrEv com.cisco.jtapi.extensions.CiscoAddrEv (also extends com.cisco.jtapi.extensions.CiscoEv) com.cisco.jtapi.extensions.CiscoAddrAutoAcceptStatusChangedEv com.cisco.jtapi.extensions.CiscoAddrInServiceEv com.cisco.jtapi.extensions.CiscoAddrIntercomInfoChangedEv com.cisco.jtapi.extensions.CiscoAddrIntercomInfoRestorationFailedEv com.cisco.jtapi.extensions.CiscoAddrOutOfServiceEv (also extends com.cisco.jtapi.extensions.CiscoOutOfServiceEv) com.cisco.jtapi.extensions.CiscoAddressRecordingConfigChangedEv javax.telephony.callcontrol.events.CallCtlEv javax.telephony.callcontrol.events.CallCtlCallEv (also extends javax.telephony.events.CallEv) javax.telephony.callcontrol.events.CallCtlConnEv (also extends javax.telephony.events.ConnEv) javax.telephony.callcontrol.events.CallCtlConnOfferedEv com.cisco.jtapi.extensions.CiscoCallCtlConnOfferedEv javax.telephony.events.CallEv javax.telephony.events.CallActiveEv com.cisco.jtapi.extensions.CiscoConsultCallActiveEv (also extends com.cisco.jtapi.extensions.CiscoCallEv) javax.telephony.callcontrol.events.CallCtlCallEv (also extends javax.telephony.callcontrol.events.CallCtlEv) javax.telephony.callcontrol.events.CallCtlConnEv (also extends javax.telephony.events.ConnEv) javax.telephony.callcontrol.events.CallCtlConnOfferedEv com.cisco.jtapi.extensions.CiscoCallCtlConnOfferedEv com.cisco.jtapi.extensions.CiscoCallEv (also extends com.cisco.jtapi.extensions.CiscoEv) com.cisco.jtapi.extensions.CiscoCallChangedEv com.cisco.jtapi.extensions.CiscoCallSecurityStatusChangedEv com.cisco.jtapi.extensions.CiscoConferenceChainAddedEv com.cisco.jtapi.extensions.CiscoConferenceChainRemovedEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-4
OL-16702-01
Chapter 5
com.cisco.jtapi.extensions.CiscoConferenceEndEv com.cisco.jtapi.extensions.CiscoConferenceStartEv com.cisco.jtapi.extensions.CiscoConsultCallActiveEv (also extends javax.telephony.events.CallActiveEv) com.cisco.jtapi.extensions.CiscoToneChangedEv com.cisco.jtapi.extensions.CiscoTransferEndEv com.cisco.jtapi.extensions.CiscoTransferStartEv javax.telephony.events.ConnEv javax.telephony.callcontrol.events.CallCtlConnEv (also extends javax.telephony.callcontrol.events.CallCtlCallEv) javax.telephony.callcontrol.events.CallCtlConnOfferedEv com.cisco.jtapi.extensions.CiscoCallCtlConnOfferedEv javax.telephony.events.TermConnEv com.cisco.jtapi.extensions.CiscoTermConnMonitoringEndEv com.cisco.jtapi.extensions.CiscoTermConnMonitoringStartEv com.cisco.jtapi.extensions.CiscoTermConnMonitorInitiatorInfoEv com.cisco.jtapi.extensions.CiscoTermConnMonitorTargetInfoEv com.cisco.jtapi.extensions.CiscoTermConnRecordingEndEv com.cisco.jtapi.extensions.CiscoTermConnRecordingStartEv com.cisco.jtapi.extensions.CiscoTermConnRecordingTargetInfoEv com.cisco.jtapi.extensions.CiscoTermConnSelectChangedEv com.cisco.jtapi.extensions.CiscoEv com.cisco.jtapi.extensions.CiscoAddrActivatedEv com.cisco.jtapi.extensions.CiscoAddrActivatedOnTerminalEv com.cisco.jtapi.extensions.CiscoAddrAddedToTerminalEv com.cisco.jtapi.extensions.CiscoAddrAutoAcceptStatusChangedEv com.cisco.jtapi.extensions.CiscoAddrCreatedEv com.cisco.jtapi.extensions.CiscoAddrEv (also extends javax.telephony.events.AddrEv) com.cisco.jtapi.extensions.CiscoAddrAutoAcceptStatusChangedEv com.cisco.jtapi.extensions.CiscoAddrInServiceEv com.cisco.jtapi.extensions.CiscoAddrIntercomInfoChangedEv com.cisco.jtapi.extensions.CiscoAddrIntercomInfoRestorationFailedEv com.cisco.jtapi.extensions.CiscoAddrOutOfServiceEv (also extends com.cisco.jtapi.extensions.CiscoAddrEv, com.cisco.jtapi.extensions.CiscoOutOfServiceEv) com.cisco.jtapi.extensions.CiscoAddressRecordingConfigChangedEv com.cisco.jtapi.extensions.CiscoAddrInServiceEv com.cisco.jtapi.extensions.CiscoAddrIntercomInfoChangedEv com.cisco.jtapi.extensions.CiscoAddrIntercomInfoRestorationFailedEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-5
com.cisco.jtapi.extensions.CiscoAddrOutOfServiceEv (also extends com.cisco.jtapi.extensions.CiscoAddrEv) com.cisco.jtapi.extensions.CiscoAddressRecordingConfigChangedEv com.cisco.jtapi.extensions.CiscoAddrRemovedEv com.cisco.jtapi.extensions.CiscoAddrRemovedFromTerminalEv com.cisco.jtapi.extensions.CiscoAddrRestrictedEv com.cisco.jtapi.extensions.CiscoAddrRestrictedOnTerminalEv com.cisco.jtapi.extensions.CiscoCallChangedEv com.cisco.jtapi.extensions.CiscoCallEv (also extends javax.telephony.events.CallEv) com.cisco.jtapi.extensions.CiscoCallChangedEv com.cisco.jtapi.extensions.CiscoCallSecurityStatusChangedEv com.cisco.jtapi.extensions.CiscoConferenceChainAddedEv com.cisco.jtapi.extensions.CiscoConferenceChainRemovedEv com.cisco.jtapi.extensions.CiscoConferenceEndEv com.cisco.jtapi.extensions.CiscoConferenceStartEv com.cisco.jtapi.extensions.CiscoConsultCallActiveEv (also extends javax.telephony.events.CiscoCallEv) com.cisco.jtapi.extensions.CiscoToneChangedEv com.cisco.jtapi.extensions.CiscoTransferEndEv com.cisco.jtapi.extensions.CiscoTransferStartEv com.cisco.jtapi.extensions.CiscoCallSecurityStatusChangedEv com.cisco.jtapi.extensions.CiscoConferenceChainAddedEv com.cisco.jtapi.extensions.CiscoConferenceChainRemovedEv com.cisco.jtapi.extensions.CiscoConferenceEndEv com.cisco.jtapi.extensions.CiscoConferenceStartEv com.cisco.jtapi.extensions.CiscoConsultCallActiveEv (also extends javax.telephony.events.CallActiveEv, com.cisco.jtapi.extensions.CiscoCallEv) com.cisco.jtapi.extensions.CiscoMediaOpenLogicalChannelEv com.cisco.jtapi.extensions.CiscoOutOfServiceEv com.cisco.jtapi.extensions.CiscoAddrOutOfServiceEv (also extends com.cisco.jtapi.extensions.CiscoAddrEv) com.cisco.jtapi.extensions.CiscoTermOutOfServiceEv (also extends com.cisco.jtapi.extensions.CiscoTermEv) com.cisco.jtapi.extensions.CiscoProvCallParkEv com.cisco.jtapi.extensions.CiscoProvFeatureEv (also extends javax.telephony.events.ProvEv) com.cisco.jtapi.extensions.CiscoAddrActivatedEv com.cisco.jtapi.extensions.CiscoAddrActivatedOnTerminalEv com.cisco.jtapi.extensions.CiscoAddrAddedToTerminalEv com.cisco.jtapi.extensions.CiscoAddrCreatedEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-6
OL-16702-01
Chapter 5
com.cisco.jtapi.extensions.CiscoAddrRemovedEv com.cisco.jtapi.extensions.CiscoAddrRemovedFromTerminalEv com.cisco.jtapi.extensions.CiscoAddrRestrictedEv com.cisco.jtapi.extensions.CiscoAddrRestrictedOnTerminalEv com.cisco.jtapi.extensions.CiscoProvCallParkEv com.cisco.jtapi.extensions.CiscoProvFeatureEv com.cisco.jtapi.extensions.CiscoProvCallParkEv com.cisco.jtapi.extensions.CiscoRestrictedEv com.cisco.jtapi.extensions.CiscoAddrRestrictedEv com.cisco.jtapi.extensions.CiscoAddrRestrictedOnTerminalEv com.cisco.jtapi.extensions.CiscoTermActivatedEv com.cisco.jtapi.extensions.CiscoTermCreatedEv com.cisco.jtapi.extensions.CiscoTermRemovedEv com.cisco.jtapi.extensions.CiscoTermRestrictedEv com.cisco.jtapi.extensions.CiscoProvFeatureEv com.cisco.jtapi.extensions.CiscoProvCallParkEv com.cisco.jtapi.extensions.CiscoRestrictedEv com.cisco.jtapi.extensions.CiscoAddrRestrictedEv com.cisco.jtapi.extensions.CiscoAddrRestrictedOnTerminalEv com.cisco.jtapi.extensions.CiscoRTPInputKeyEv com.cisco.jtapi.extensions.CiscoRTPInputStartedEv com.cisco.jtapi.extensions.CiscoRTPInputStoppedEv com.cisco.jtapi.extensions.CiscoRTPOutputKeyEv com.cisco.jtapi.extensions.CiscoRTPOutputStartedEv com.cisco.jtapi.extensions.CiscoRTPOutputStoppedEv com.cisco.jtapi.extensions.CiscoTermActivatedEv com.cisco.jtapi.extensions.CiscoTermButtonPressedEv com.cisco.jtapi.extensions.CiscoTermCreatedEv com.cisco.jtapi.extensions.CiscoTermDataEv com.cisco.jtapi.extensions.CiscoTermDeviceStateActiveEv com.cisco.jtapi.extensions.CiscoTermDeviceStateAlertingEv com.cisco.jtapi.extensions.CiscoTermDeviceStateHeldEv com.cisco.jtapi.extensions.CiscoTermDeviceStateWhisperEv com.cisco.jtapi.extensions.CiscoTermDeviceStateWhisperEv com.cisco.jtapi.extensions.CiscoTermDNDStatusChangedEv com.cisco.jtapi.extensions.CiscoTermEvFilter (also extends javax.telephony.events.TermEv) com.cisco.jtapi.extensions.CiscoMediaOpenLogicalChannelEv com.cisco.jtapi.extensions.CiscoRTPInputKeyEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-7
com.cisco.jtapi.extensions.CiscoRTPInputStartedEv com.cisco.jtapi.extensions.CiscoRTPInputStoppedEv com.cisco.jtapi.extensions.CiscoRTPOutputKeyEv com.cisco.jtapi.extensions.CiscoRTPOutputStartedEv com.cisco.jtapi.extensions.CiscoRTPOutputStoppedEv com.cisco.jtapi.extensions.CiscoTermButtonPressedEv com.cisco.jtapi.extensions.CiscoTermDataEv com.cisco.jtapi.extensions.CiscoTermDeviceStateActiveEv com.cisco.jtapi.extensions.CiscoTermDeviceStateAlertingEv com.cisco.jtapi.extensions.CiscoTermDeviceStateHeldEv com.cisco.jtapi.extensions.CiscoTermDeviceStateIdleEv com.cisco.jtapi.extensions.CiscoTermDeviceStateWhisperEv com.cisco.jtapi.extensions.CiscoTermDNDStatusChangedEv com.cisco.jtapi.extensions.CiscoTermInServiceEv com.cisco.jtapi.extensions.CiscoTermOutOfServiceEv(also extends com.cisco.jtapi.extensions.CiscoOutOfServiceEv) com.cisco.jtapi.extensions.CiscoTermRegistrationFailedEv com.cisco.jtapi.extensions.CiscoTermSnapshotCompletedEv com.cisco.jtapi.extensions.CiscoTermSnapshotEv com.cisco.jtapi.extensions.CiscoTermInServiceEv com.cisco.jtapi.extensions.CiscoTermOutOfServiceEv(also extends com.cisco.jtapi.extensions.CiscoOutOfServiceEv, com.cisco.jtapi.extensions.CiscoTermEv) com.cisco.jtapi.extensions.CiscoTermRegistrationFailedEv com.cisco.jtapi.extensions.CiscoTermRemovedEv com.cisco.jtapi.extensions.CiscoTermRestrictedEv com.cisco.jtapi.extensions.CiscoTermSnapshotCompletedEv com.cisco.jtapi.extensions.CiscoTermSnapshotEv com.cisco.jtapi.extensions.CiscoToneChangedEv com.cisco.jtapi.extensions.CiscoTransferEndEv com.cisco.jtapi.extensions.CiscoTransferStartEv javax.telephony.events.ProvEv com.cisco.jtapi.extensions.CiscoProvEv (also extends com.cisco.jtapi.extensions.CiscoEv) com.cisco.jtapi.extensions.CiscoAddrActivatedEv com.cisco.jtapi.extensions.CiscoAddrActivatedOnTerminalEv com.cisco.jtapi.extensions.CiscoAddrAutoAcceptStatusChangedEv com.cisco.jtapi.extensions.CiscoAddrCreatedEv com.cisco.jtapi.extensions.CiscoAddrRemovedEv com.cisco.jtapi.extensions.CiscoAddrRemovedFromTerminalEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-8
OL-16702-01
Chapter 5
com.cisco.jtapi.extensions.CiscoAddrRestrictedEv com.cisco.jtapi.extensions.CiscoAddrRestrictedOnTerminalEv com.cisco.jtapi.extensions.CiscoProvCallParkEv com.cisco.jtapi.extensions.CiscoProvFeatureEv com.cisco.jtapi.extensions.CiscoProvCallParkEv com.cisco.jtapi.extensions.CiscoRestrictedEv com.cisco.jtapi.extensions.CiscoAddrRestrictedEv com.cisco.jtapi.extensions.CiscoAddrRestrictedOnTerminalEv com.cisco.jtapi.extensions.CiscoTermActivatedEv com.cisco.jtapi.extensions.CiscoTermCreatedEv com.cisco.jtapi.extensions.CiscoTermRemovedEv com.cisco.jtapi.extensions.CiscoTermRestrictedEv javax.telephony.events.TermEv com.cisco.jtapi.extensions.CiscoTermEv (also extends com.cisco.jtapi.extensions.CiscoEv) com.cisco.jtapi.extensions.CiscoMediaOpenLogicalChannelEv com.cisco.jtapi.extensions.CiscoRTPInputKeyEv com.cisco.jtapi.extensions.CiscoRTPInputStartedEv com.cisco.jtapi.extensions.CiscoRTPInputStoppedEv com.cisco.jtapi.extensions.CiscoRTPOutputKeyEv com.cisco.jtapi.extensions.CiscoRTPOutputStartedEv com.cisco.jtapi.extensions.CiscoRTPOutputStoppedEv com.cisco.jtapi.extensions.CiscoTermButtonPressedEv com.cisco.jtapi.extensions.CiscoTermDataEv com.cisco.jtapi.extensions.CiscoTermDeviceStateActiveEv com.cisco.jtapi.extensions.CiscoTermDeviceStateAlertingEv com.cisco.jtapi.extensions.CiscoTermDeviceStateHeldEv com.cisco.jtapi.extensions.CiscoTermDeviceStateIdleEv com.cisco.jtapi.extensions.CiscoTermDeviceStateWhisperEv com.cisco.jtapi.extensions.CiscoTermDNDStatusChangedEv com.cisco.jtapi.extensions.CiscoTermInServiceEv com.cisco.jtapi.extensions.CiscoTermOutOfServiceEv (also extends com.cisco.jtapi.extensions.CiscoOutOfServiceEv) com.cisco.jtapi.extensions.CiscoTermRegistrationFailedEv com.cisco.jtapi.extensions.CiscoTermSnapshotCompletedEv com.cisco.jtapi.extensions.CiscoTermSnapshotEv javax.telephony.JtapiPeer com.cisco.jtapi.extensions.CiscoJtapiPeer (also extends com.cisco.jtapi.extensions.CiscoObjectContainer, com.cisco.services.tracing.TraceModule)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-9
Chapter 5 Extensions
javax.telephony.Provider com.cisco.jtapi.extensions.CiscoProvider (also extends com.cisco.jtapi.extensions.CiscoObjectContainer) javax.telephony.capabilities.ProviderCapabilities com.cisco.jtapi.extensions.CiscoProviderCapabilities javax.telephony.ProviderObserver com.cisco.jtapi.extensions.CiscoProviderObserver javax.telephony.callcenter.RouteSession com.cisco.jtapi.extensions.CiscoRouteSession javax.telephony.callcenter.events.RouteSessionEvent javax.telephony.callcenter.events.RouteEvent com.cisco.jtapi.extensions.CiscoRouteEvent javax.telephony.callcenter.events.RouteUsedEvent com.cisco.jtapi.extensions.CiscoRouteUsedEvent javax.telephony.Terminal com.cisco.jtapi.extensions.CiscoTerminal (also extends com.cisco.jtapi.extensions.CiscoObjectContainer) com.cisco.jtapi.extensions.CiscoMediaTerminal com.cisco.jtapi.extensions.CiscoRouteTerminal javax.telephony.TerminalConnection javax.telephony.callcontrol.CallControlTerminalConnection com.cisco.jtapi.extensions.CiscoTerminalConnection (also extends com.cisco.jtapi.extensions.CiscoObjectContainer) javax.telephony.TerminalObserver com.cisco.jtapi.extensions.CiscoTerminalObserver com.cisco.services.tracing.Trace com.cisco.services.tracing.ConditionalTrace com.cisco.services.tracing.UnconditionalTrace com.cisco.services.tracing.TraceManagercom.cisco.services.tracing.TraceModule com.cisco.jtapi.extensions.CiscoJtapiPeer (also extends com.cisco.jtapi.extensions.CiscoObjectContainer, javax.telephony.JtapiPeer) com.cisco.services.tracing.TraceWriter com.cisco.services.tracing.TraceWriterManager
Extensions
The Cisco Unified JTAPI extension consists of a set of classes and interfaces that expose the functionality available in Cisco Unified Communications Manager. This API allows programmers to create independent applications for Cisco Unified Communications Manager. The Cisco Unified JTAPI implementation offers additional functionality not readily exposed through the JTAPI 1.2 interfaces.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-10
OL-16702-01
Chapter 5
Applications can use the interfaces and classes in the com.cisco.jtapi.extensions package with the standard JTAPI interfaces and classes described in the JTAPI v 1.2 Specification to create new applications.
CiscoAddrActivatedEv
If an address is monitored and the restriction status is changed to active, this event is sent to the application.
Declaration
public interface CiscoAddrActivatedEv extends CiscoProvEv
All Superinterfaces
CiscoEv,CiscoProvEv javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
Applications will see this event whenever a Line or associated device is in the control list and is removed from the restricted list from the Cisco Unified Communications Manager Admin pages. If there are any observers on the address already, then applications will see CiscoAddrInServiceEv. If there are none, applications can try to add observers and address will go in service. Member Summary
Methods
public Address public int getAddress() getID()
Methods
getAddress()
public Address getAddress()
getID()
public int getID()
CiscoAddrActivatedOnTerminalEv
Declaration
public interface CiscoAddrActivtedOnTerminalEv extends CiscoProvEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-11
Chapter 5 Extensions
All Superinterfaces
CiscoEv, CiscoProvEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
When a shared line, or a device which has shared line, is removed from the restricted list then this event will be sent. Interface getTerminal() will return the terminal which is getting added to Address. Interface getAddress() will return the address on which new terminal is added. Member Summary
Methods
javax.telephony.Address javax.telephony.Terminal getAddress() getTerminal()
Methods
getAddress()
public javax.telephony.Address getAddress()
getTerminal()
public javax.telephony.Address getTerminal()
CiscoAddrAddedToTerminalEv
Declaration
public interface CiscoAddrAddedToTerminalEv extends CiscoProvEv
All Superinterfaces
CiscoEv, CiscoProvEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
The CiscoAddrAddedToTerminalEv event gets sent under the following conditions:
When User adds a Terminal/Device into the user controlList that contains SharedDN, this event will be sent to application. If a user has an address in control list, and we add new device with same address in control list, this event will be sent. When EM(Extension mobility) user logs into a Terminal with a profile that contains SharedDN, this event notifies that a new Terminal is added to an already existing Address.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-12
OL-16702-01
Chapter 5
A new SharedDN is added to a Device in a user control list. Interface getTerminal() returns the terminal that gets added to Address. Interface getAddress() will return the address on which the new terminal is added.
Member Summary
Fields
static int ID
Methods
javax.telephony.Address javax.telephony.Terminal getAddress() getTerminal()
Fields
ID
public static final int ID
Methods
getAddress()
public javax.telephony.Address getAddress()
getTerminal()
public javax.telephony.Address getTerminal()
CiscoAddrAutoAcceptStatusChangedEv
Declaration
public interface CiscoAddrAutoAcceptStatusChangedEv extends CiscoAddrEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-13
Chapter 5 Extensions
All Superinterfaces
javax.telephony.events.AddrEv, CiscoAddrEv, CiscoEv, javax.telephony.events.Ev
Description
The CiscoAddrAutoAcceptStatusChangedEv event is send to Applications whenever AutoAccept status for the Address on the Terminal is changed. If an Address has multiple Terminals, then this event will be sent for Addresss AutoAccept status on each individual Terminals.
Member Summary
Fields
static int ID
Methods
int
getAutoAcceptStatus()
CiscoAddrAutoAcceptStatusChangedEv.getAutoAcceptStatus() returns following value of AutoAccept status of Address on Terminal CiscoAddress.AUTOACCEPT_OFF CiscoAddress.AUTOACCEPT_ON
CiscoTerminal getTerminal()
Fields
ID
public static final int ID
Methods
getAutoAcceptStatus()
public int getAutoAcceptStatus()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-14
OL-16702-01
Chapter 5
CiscoAddrAutoAcceptStatusChangedEv.getAutoAcceptStatus() returns following value of AutoAccept status of Address on Terminal CiscoAddress.AUTOACCEPT_OFF CiscoAddress.AUTOACCEPT_ON
See Also:
CiscoAddress.getAutoAcceptStatus()
getTerminal()
public com.cisco.jtapi.extensions.CiscoTerminal getTerminal()
Returns the terminal at which this address is going InService In Shared Lines, applications may receive multiple CiscoAddressInService events and the same Address appears on different Terminals. In order for Application to find out which Shared Line is going in service, Applications can use this interface. This interface returns the terminal on which Address is going in Service. Returns: the terminal at which this address is going InService
CiscoAddrCreatedEv
Declaration
public interface CiscoAddrCreatedEv extends CiscoProvEv
All Superinterfaces
CiscoEv,CiscoProvEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
The CiscoAddrCreatedEv event Member Summary
Fields
static int ID
Methods
javax.telephony.Address getAddress()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-15
Chapter 5 Extensions
Fields
ID
public static final int ID
Methods
getAddress()
public javax.telephony.Address getAddress()
CiscoAddrIntercomInfoChangedEv
public interface CiscoAddrIntercomInfoChangedEv extends com.cisco.jtapi.extensions.CiscoAddrEv
Description/Usage
This event is send to the application whenever the target DN or intercom target label changes for a CiscoIntercomAddress. This event is provided to all of the application observers added to the CiscoIntercomAddress. Member Summary
Methods
CiscoIntercomAddress getIntercomAddress() This interface returns the intercom address for which the information changed.
Methods
getIntercomAddress()
CiscoIntercomAddress getIntercomAddress()
This interface returns the intercom address for which the information changed.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-16
OL-16702-01
Chapter 5
CiscoAddrIntercomInfoRestorationFailedEv
This event is send to the application when JTAPI is not able to restore the application-set intercom target DN or the intercom target label for the intercom address during failover or failback. This event is provided on the application observer and is only provided to the application which has set the intercom target DN or the intercom target label.
Declaration
public interface CiscoAddrIntercomInfoRestorationFailedEv extends com.cisco.jtapi.extensions.CiscoAddrEv
Member Summary
Methods
CiscoIntercomAddress getIntercomAddress() This interface returns the address for which intercom information restoration failed.
Methods
getIntercomAddress()
CiscoIntercomAddress getIntercomAddress()
This interface returns the address for which intercom information restoration failed.
CiscoAddrRestrictedEv
If an address is monitored and the restriction status is changed to restricted, this event is sent to the application.
Declaration
public interface CiscoAddrRestrictedEv extends CiscoRestrictedEv
All Superinterfaces
CiscoEv,CiscoProvEv, CiscoRestrictedEv javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
Applications will see this event whenever a Line or associated device is Restricted from the Cisco Unified Communications Manager Admin pages. For restricted lines, the address will go out of service and will not come back in service until it is activated again. If an address is restricted, then addCallObserver and addObserver will throw an exception.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-17
Chapter 5 Extensions
For shared lines, if few shared lines are restricted, and others are not, then no exception is thrown but restricted shared lines will not receive any events. If all shared lines are restricted, then exception is thrown when adding observers. If address is restricted after adding observers, then applications will see CiscoAddrOutOfServiceEv and when address is activated, then the address will go in service. Member Summary
Methods
public Address public int getAddress() getID()
Methods
getAddress()
public Address getAddress()
getID()
public int getID()
CiscoAddrRestrictedOnTerminalEv
Declaration
public interface CiscoAddrRestrictedOnTerminalEv extends CiscoRestrictedEv
All Superinterfaces
CiscoEv, CiscoProvEv, CiscoRestrictedEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
If the user has a Shared address in the control list, and if one of the lines is added into the restricted list, then this event will be sent. Interface getTerminal() will return the terminal on which the address is restricted. Interface getAddress() will return the address which is restricted Member Summary
Methods
javax.telephony.Address javax.telephony.Terminal getAddress() getTerminal()
Methods
getAddress()
public javax.telephony.Address getAddress()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-18
OL-16702-01
Chapter 5
getTerminal()
public javax.telephony.Address getTerminal()
CiscoAddress
Declaration
public interface CiscoAddress extends javax.telephony.Address, CiscoObjectContainer
All Superinterfaces
javax.telephony.Address, CiscoObjectContainer
Description
The CiscoAddress interface extends the Address interface with additional Cisco Unified Communications Manager-specific capabilities.
See Also
static int
static int
static int
static int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-19
Chapter 5 Extensions
static int
static int
Methods void
clearCallConnections() Use this interface to clear off any phantom calls on the address getAddressCallInfo(Terminal) Use this Interface to get info of calls present at the terminal getAutoAcceptStatus(Terminal) Returns the AutoAccept status of the Address on the terminal getAutoAnswerStatus() This interface returns the AutoAnswer status on the address.
CiscoAddressCallInfo
int
int
Methods (continued)
javax.telephony.Terminal getInServiceAddrTerminals() Returns an array of terminals for which this address is InService. getPartition () Returns the partition string of the address object. getRecordingConfig(Terminal term) Returns the recording type configured on the address. getRegistrationState() Returns the state of this address. getRestrictedAddrTerminals() Returns array of Terminals on which this address is restricted. If none is restricted, then returns null.
string int
int
javax.telephony.Terminal
int
getState() Returns the state of this address. getType() Returns the type of this address. isRestricted(javax.telephony.Terminal terminal) Returns true if an address on this terminal is restricted. setAutoAcceptStatus(int, Terminal) Allows the application to enable AutoAccept for addresses on CiscoMediaTerminal and/or CiscoRouteTerminal.
int
boolean
void
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-20
OL-16702-01
Chapter 5
void
Fields
AUTOACCEPT_OFF
public static final int AUTOACCEPT_OFF
AutoAccept is off.
AUTOACCEPT_ON
public static final int AUTOACCEPT_ON
AutoAccept is on.
AUTOANSWER_OFF
static int AUTOANSWER_OFF
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-21
Chapter 5 Extensions
EXTERNAL
public static final int EXTERNAL
This is an external address with a valid name. An address of this type is created when ANI or callerID is available on the call.
EXTERNAL_UNKNOWN
public static final int EXTERNAL_UNKNOWN
This is an external address with an unknown name. An address of this type is created to represent an endpoint for which there is insufficient information.
IN_SERVICE
public static final int IN_SERVICE
This is an external address with a monitoring target or agent. This address type would be temporarily created to represent a connection to the monitoring target or agent. The interface Provider.getAddresses() does not return this type of address even though the monitoring target or agent is in the provider control list. If the monitoring target or agent is in the provider control list, Provider.getAddresses() returns an address of type CiscoAddress.INTERNAL with the same partition/DN value and the Connection for the monitoring target or agent would be represented by another Address object of type CiscoAddress.MONITORING_TARGET.
OUT_OF_SERVICE
public static final int OUT_OF_SERVICE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-22
OL-16702-01
Chapter 5
UNKNOWN
public static final int UNKNOWN
This is an external address with an unknown name. An address of this type is created to represent an endpoint for which there is insufficient information.
Methods
clearCallConnections()
public void clearCallConnections() throws PrivilegeViolationException
Use this interface to clear off any phantom calls on the address Throws: javax.telephony.PrivilegeViolationException
getAddressCallInfo(Terminal)
public com.cisco.jtapi.extensions.CiscoAddressCallInfo getAddressCallInfo(javax.telephony.Terminal iterminal)
CiscoAddress.getAutoAccept(Terminal iterminal) returns AutoAccept status of Address on Terminal. It may return one of the following constants: CiscoAddress.AUTOACCEPT_OFF CiscoAddress.AUTOACCEPT_ON.
Pre-conditions:
1. 2.
(this.getProvider()).getState() == Provider.IN_SERVICE (getState() == IN_SERVICE (this.getProvider()).getState() == Provider.IN_SERVICE (getState() == IN_SERVICE terminal - Terminal on which AutoAccept status of Address will be returned.
Post-conditions:
1. 2.
Parameters:
Throws: javax.telephony.InvalidStateException - The Provider is not in service. javax.telephony.PlatformException - Terminal is not on the Address. javax.telephony.MethodNotSupportedException - This method is not supported.
getInServiceAddrTerminals()
public javax.telephony.Terminal[] getInServiceAddrTerminals()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-23
Chapter 5 Extensions
Use this interface to find out which Shared Lines are in service. In Shared Lines, the same address appears on different Terminals. Returns: an array of terminals on which address is in service
getPartition ()
public string getPartition() JTAPI uses this partition information to distinguish between addresses which have the same DN but belong to different partitions and sends the partition information to open the specific addresses. Returns: partition string of the address object
getRecordingConfig(Terminal term)
int getRecordingConfig(Terminal term)
Returns the recording type configured on the address. Returns: CiscoAddress.NO_RECORDING CiscoAddress.AUTO_RECORDING CiscoAddress.APPLICATION_CONTROLLED_RECORDING Default Value: CiscoAddress.NO_RECORDING
getRegistrationState()
public int getRegistrationState()
Returns: the state of this address The state may be any of the following constants:
CiscoAddress.OUT_OF_SERVICE CiscoAddress.IN_SERVICE This method has been replaced by the getState() method.
Deprecated
getRestrictedAddrTerminals()
public javax.telephony.Terminal[] getRestrictedAddrTerminals()
Returns array of Terminals on which this address is restricted. If none is restricted is restricted, then this method returns null. In shared lines, few lines on Terminals may be restricted. This method returns all the terminals on which this address is restricted. Applications will not be able to see any call events for restricted lines. If a restricted line is involved in a call with any other control device, an external connection is created for the restricted line.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-24
OL-16702-01
Chapter 5
getState()
public int getState()
Returns: the state of this address The state may be any of the following constants:
CiscoAddress.OUT_OF_SERVICE CiscoAddress.IN_SERVICE
getType()
public int getType()
Returns: The type of address The type may be any of the following constants:
isRestricted(javax.telephony.Terminal terminal)
public boolean isRestricted(javax.telephony.Terminal terminal)
This allows Application to enable AutoAccept for Addresses on CiscoMediaTerminal and/or CiscoRouteTerminal. Addresses on CiscoTerminal other than CiscoMediaTerminal or CiscoRouteTerminal will always have AutoAccept on. If Terminal passed in the parameter is not CiscoMediaTerminal or CiscoRouteTerminal, it will throw exception. For the CiscoMediaTerminal that have Shared Address with CiscoTerminal, it is recommended to enable AutoAccept on CiscoMediaTerminal.
Pre-conditions:
1. 2.
Post-conditions:
1. 2.
Parameters:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-25
Chapter 5 Extensions
value - Can be either CiscoAddress.AUTOACCEPT_OFF or CiscoAddress.AUTOACCEPT_ON. If autoAcceptStatus is AUTOACCEPT_ON, it will enable AutoAccept for address on Terminal. If autoAcceptStatus is AUTOACCEPT_OFF, it will disable AutoAccept for address on Terminal. terminal. - It the terminal on which AutoAccept will be enabled Throws: javax.telephony.InvalidStateException - The Provider is not in service. javax.telephony.PlatformException - Terminal is not on the Address. javax.telephony.MethodNotSupportedException - This method is not supported ExtraProviderAddresses.
setMessageWaiting(java.lang.String destination, boolean enable)
public void setMessageWaiting(java.lang.String destination, boolean enable) throws MethodNotSupportedException, InvalidStateException, PrivilegeViolationExcep tion
Specifies whether the message-waiting indicator should be activated or deactivated for the Address specified by the destination. If enable is true, message-waiting is activated if not already activated. If enable is false, message-waiting is deactivated if not already deactivated. Preconditions:
1.
Postconditions:
1.
Note
The following postconditions as specified in CallControlAddress are currently not enforced by this implementation.
1. 2.
this.getMessageWaiting() == enable CallCtlAddrMessageWaitingEv is delivered for this Address destination - DN whose message waiting indicator should be activated enable - True to activate message-waiting, false to deactivate.
Parameters:
Throws: javax.telephony.MethodNotSupportedException - This method is not supported by the given implementation. javax.telephony.InvalidStateException - The Provider is not in service. javax.telephony.PrivilegeViolationException - The Provider user has insufficient privileges to invoke the message waiting indicator for this destination
setRingerStatus(int)
public void setRingerStatus(int status) throws MethodNotSupportedException, InvalidStateException, InvalidArgumentException
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-26
OL-16702-01
Chapter 5
Accepts on of the following constants: CiscoAddress.RINGER_DEFAULT CiscoAddress.RINGER_DISABLE CiscoAddress.RINGER_ENABLE Throws: javax.telephony.InvalidArgumentException, javax.telephony.InvalidStateException, javax.telephony.MethodNotSupportedException
CiscoAddressCallInfo
Declaration
public class CiscoAddressCallInfo java.lang.Object | +--com.cisco.jtapi.extensions.CiscoAddressCallInfo
Member Summary
Constructors
CiscoAddressCallInfo(int, int, int, int), int imaxActiveCalls, int inumCallsOnHold, int imaxCallsOnHold) CiscoAddressCallInfo(int, int, int, int, CiscoCall[]), int imaxActiveCalls, int inumCallsOnHold, int imaxCallsOnHold, CiscoCall icalls)
Methods
CiscoCall[] int int int int getCalls() getMaxActiveCalls() getMaxCallsOnHold() getNumActiveCalls() getNumCallsOnHold()
Constructors
CiscoAddressCallInfo(int, int, int, int)
public CiscoAddressCallInfo(int inumActiveCalls, int imaxActiveCalls, int inumCallsOnHold, int imaxCallsOnHold)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-27
Chapter 5 Extensions
Methods
getCalls()
public com.cisco.jtapi.extensions.CiscoCall[] getCalls()
getMaxActiveCalls()
public int getMaxActiveCalls()
getMaxCallsOnHold()
public int getMaxCallsOnHold()
getNumActiveCalls()
public int getNumActiveCalls()
getNumCallsOnHold()
public int getNumCallsOnHold()
CiscoAddressObserver
Declaration
public interface CiscoAddressObserver extends javax.telephony.AddressObserver
All Superinterfaces
javax.telephony.AddressObserver
Description
Applications implement this interface in order to receive CiscoAddrEv events such as CiscoAddrInServiceEv and CiscoAddrOutOfServiceEv when observing Addresses via the Address.addObserver method.
See Also:
CiscoAddressRecordingConfigChangedEv
Description/Usage
This event is delivered to the address observer if the record setting on the address is changed.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-28
OL-16702-01
Chapter 5
Member Summary
Methods
Int getRecordingConfig() Returns the recording type configured for the address. getTerminal() Returns the terminal on which the recording type is changed.
Terminal
Methods
getRecordingConfig()
public Int getRecordingConfig()
CiscoAddrEv
Declaration
public interface CiscoAddrEv extends CiscoEv, javax.telephony.events.AddrEv
All Superinterfaces
javax.telephony.events.AddrEv, CiscoEv, javax.telephony.events.Ev
Description
The CiscoAddrEv interface, which extends JTAPIs core javax.telephony.events.AddrEv interface, serves as the base interface for all Cisco-extended JTAPI Address events. Every Address-related event in this package extends this interface, directly or indirectly.
See Also:
javax.telephony.events.AddrEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-29
Chapter 5 Extensions
CiscoAddrInServiceEv
Declaration
public interface CiscoAddrInServiceEv extends CiscoAddrEv
All Superinterfaces
javax.telephony.events.AddrEv, CiscoAddrEv, CiscoEv, javax.telephony.events.Ev
Description
The CiscoAddrInServiceEv event Member Summary
Fields
static int ID
Methods
CiscoTerminal getTerminal() Returns the terminal at which this address is going InService.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-30
OL-16702-01
Chapter 5
Fields
ID
public static final int ID
Methods
getTerminal()
public com.cisco.jtapi.extensions.CiscoTerminal getTerminal()
Returns the terminal at which this address is going InService In Shared Lines, applications may receive multiple CiscoAddressInService events and the same Address appears on different Terminals. In order for Application to find out which Shared Line is going in service, Applications can use this interface. This interface returns the terminal on which Address is going in Service. Returns: the terminal at which this address is going InService
See Also:
CiscoAddress.getInServiceAddressTerminal()
CiscoAddrOutOfServiceEv
Declaration
public interface CiscoAddrOutOfServiceEv extends CiscoAddrEv, CiscoOutOfServiceEv
All Superinterfaces
javax.telephony.events.AddrEv,CiscoAddrEv, CiscoEv, CiscoOutOfServiceEv, javax.telephony.events.Ev
Description
The CiscoAddrOutOfServiceEv event
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-31
Chapter 5 Extensions
Member Summary
Fields
ID
Fields
ID
public static final int ID
Methods
getTerminal()
public com.cisco.jtapi.extensions.CiscoTerminal getTerminal()
Returns the terminal at which this address is going OutOfService In Shared Lines, applications may receive multiple CiscoAddressOutOfService events and the same Address appears on different Terminals. Applications use this interface to find out which Shared Line is going out of service. Returns: the terminal at which this address is going OutOfService
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-32
OL-16702-01
Chapter 5
See Also:
CiscoAddress.getInServiceAddressTerminal()
CiscoAddrRemovedEv
Declaration
public interface CiscoAddrRemovedEv extends CiscoProvEv
All Superinterfaces
CiscoEv, CiscoProvEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
The CiscoAddrRemovedEv event Member Summary
Fields
static int ID
Methods
javax.telephony.Address getAddress()
Fields
ID
public static final int ID
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-33
Chapter 5 Extensions
Methods
getAddress()
public javax.telephony.Address getAddress()
CiscoAddrRemovedFromTerminalEv
Declaration
public interface CiscoAddrRemovedEv extends CiscoProvEv
All Superinterfaces
CiscoEv, CiscoProvEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
The CiscoAddrRemovedFromTerminalEv event gets sent under the following conditions:
When User removes a Terminal/Device into the user controlList that contains SharedDN, this event will be sent to application. If a user has an address in control list, and we remove a device with same address in control list, this event will be sent. When EM(Extension mobility) user logs out from Terminal with a profile that contains SharedDN, this event notifies that one of the Terminals is removed from an existing Address. A new SharedDN is removed from a Device in a user control list. Interface getTerminal() returns the terminal that is removed from the Address. Interface getAddress() will return the address from where the terminal is removed.
Member Summary
Fields
static int ID
Methods
javax.telephony.Address getAddress()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-34
OL-16702-01
Chapter 5
Fields
ID
public static final int ID
Methods
getAddress()
public javax.telephony.Address getAddress()
getTerminal()
public javax.telephony.Terminal getTerminal()
CiscoCall
Declaration
public interface CiscoCall extends javax.telephony.callcontrol.CallControlCall, CiscoObjectContainer
All Superinterfaces
javax.telephony.Call, javax.telephony.callcontrol.CallControlCall, CiscoObjectContainer
Description
The CiscoCall interface extends the CallControlCall interface with additional Cisco Unified Communications Manager-specific capabilities. In Cisco Unified Communications Manager terms, every Call object comprises a set of call legs that share a common identifier: the global call handle. Connection objects represent call legs in JTAPI, and the Call object that relates a set of Connections contains the global call handle that the underlying call legs share. The global call handle within a CiscoCall is accessible via its CallManagerID and CallID properties. Taken together, the CallManagerID and CallID form the global call handle maintained by the Cisco Unified Communications Manager. This pair of properties is guaranteed to be unique among all ACTIVE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-35
Chapter 5 Extensions
Call objects, but when an ACTIVE call becomes INACTIVE, its CallManagerID and CallID may be reused to identify a newly-created Call object. Therefore, it is possible for an INACTIVE Call to have identical CallManagerID and CallID properties to those of a currently ACTIVE Call object. Two versions of the startMonitor interface allow silent monitoring of calls. Both interfaces return the terminal connection of the monitor initiator created as a result of this request. See startMonitor.
See Also:
int
int int
int
void
javax.telephony.Connection[]
boolean
CiscoPartyInfo
CiscoCallID
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-36
OL-16702-01
Chapter 5
int
CiscoConferenceChain
javax.telephony.Address boolean
java.lang.String
CiscoPartyInfo
javax.telephony.Address
boolean
boolean
java.lang.String
CiscoPartyInfo
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-37
Chapter 5 Extensions
boolean
CiscoPartyInfo
javax.telephony.Address
javax.telephony.Address
javax.telephony.Connection
Connection[]
Connection[]
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-38
OL-16702-01
Chapter 5
Methods
CiscoCall.CALLSECURITY_ AUTHENTICATED
public int CiscoCall.CALLSECURITY_ AUTHENTICATED
This interface is used by the application in a startMonitor request to specify the parties to which a tone is played to indicate monitoring.
conference(Call[])
public void converence(javax.telephony.Call[] otherCalls)
Throws:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-39
Chapter 5 Extensions
InvalidStateException, InvalidArgumentException, MethodNotSupportedException, PrivilegeViolationException, ResourceUnavailableException Merges N Calls together, resulting in the union of the participants of all the Calls being placed on a single Call. This method takes list of Calls as argument, referred to hereafter as the secondary Calls. All of the participants from the secondary call are moved to the Call on which this method is invoked.
The Conference Controller
In order for the conferencing feature to happen, there must be a common participant to all the Calls, as represented by a single Terminal and multiple TerminalConnections, one on all of the Calls. These TerminalConnections are known as the conference controllers. In the real-world, only one of the Calls would be active with respect to the controlling Terminal, and hence, the TerminalConnection on the secondary Call should be in the CallControlTerminalConnection.HELD state. The N conference controlling TerminalConnections are merged into one as a result of this method. Applications can control which TerminalConnection acts as the conference controller when setting up a conference call via the CallControlCall.setConferenceController() method. The CallControlCall.getConferenceController() method returns the current conference controller, or null if there is none. If no conference controller is set initially, the implementation chooses a suitable TerminalConnection when the conferencing feature is invoked. Only the original conference controller can add new parties to a conference call. Attempting to change the conference controller while a conference is going on will not take effect; however, no error gets thrown in the setConferenceController API.
The Telephone Call Argument
All of the participants from the secondary Calls, passed as the argument to this method, are moved to the Call on which this method was invoked. That is, new Connections and TerminalConnections are created on this Call which are found on the secondary Calls. Those Connections and TerminalConnections on the secondary Calls are removed from the Call and the Call moves into the Call.INVALID state. The conference controller TerminalConnections are merged into one on this Call. That is, the existing TerminalConnection controller on this Call remains unchanged, while the TerminalConnection on the secondary Calls gets removed from that Call.
Other Shared Participants
There may exist Address and Terminals which are part of some telephone calls in addition to the designated conference controller. In these instances, those participants which are shared between both Calls are merged into one. That is, the Connections and TerminalConnections on this Calls are left unchanged. The corresponding Connections and TerminalConnections on the secondary Calls are removed from that Call. Pre-conditions:
1. 2. 3. 4. 5. 6.
Let tc1 be the conference controller on this Call Let connection1 = tc1.getConnection() Let tc2 to tcN be the conference controllers on otherCalls (this.getProvider()).getState() == Provider.IN_SERVICE (this.getState() == Call.ACTIVE tc1.getTerminal() == tc2.getTerminal()...=tcN.getTerminal
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-40
OL-16702-01
Chapter 5
7. 8. 9.
tc1.getCallControlState() == CallControlTerminalConnection.TALKING/HELD tc2-tcN.getCallControlState() == CallControlTerminalConnection.HELD/TALKING this != otherCalls (this.getProvider()).getState() == Provider.IN_SERVICE this.getState() == Call.ACTIVE otherCall.getState() == INVALID Let c[] be the Connections to be merged from otherCall Let tc[] be the TerminalConnections to be merged from otherCall Let new(c) be the set of new Connections created on this Call Let new(tc) be the set of new TerminalConnections created on this Call new(c) element of this.getConnections() new(c).getCallState() == c.getCallState() new(tc) element of (this.getConnections()).getTerminalConnections() new(tc).getCallState() == tc.getCallState() c[i].getCallControlState() == CallControlConnection.DISCONNECTED for all i tc[i].getCallControlState() == CallControlTerminalConnection.DROPPED for all i CallInvalidEv is delivered for otherCall CallCtlConnDisconnectedEv/ConnDisconnectedEv is delivered for all c[i] CallCtlTermConnDroppedEv/TermConnDroppedEv is delivered for all tc[i] ConnCreatedEv is delivered for all new(c) TermConnCreatedEv is delivered for all new(tc) Appropriate events are delivered for all new(c) and new(tc)
Post-conditions:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Parameters: otherCall - The second Call which to merge with this Call object. Throws: javax.telephony.InvalidArgumentException - The Call object provided is not valid for the conference javax.telephony.InvalidStateException - Either the Provider is not in service, the Call is not active, or the conference controllers are not in the proper state. javax.telephony.MethodNotSupportedException - This method is not supported by the implementation. javax.telephony.PrivilegeViolationException - The application does not have the proper authority to invoke this method. javax.telephony.ResourceUnavailableException - An internal resource necessary for the successful invocation of this method is not available.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-41
Chapter 5 Extensions
See Also:
From CallEvent perspective, this method behaves similar to Call.connect(Terminal terminal, Address origaddr, String dialedDigits). This method may only be invoked when making a call from CiscoMediaTerminal want to specify media parameters for this call. Establishes the media at the specified CiscoRTPParams parameters if the request is successful. Throws: javax.telephony.MethodNotSupportedException, javax.telephony.InvalidStateException, javax.telephony.InvalidArgumentException, javax.telephony.InvalidPartyException, javax.telephony.PrivilegeViolationException, javax.telephony.ResourceUnavailableException
getCalledAddressPI()
public boolean getCallAddressPI()
Returns Presentation Indicator (PI) associated with getCalledAddressPI. If it returns true, Application can display this address name to the end users. If it returns false, Application should not display this Address name to the end user.
getCallID()
public com.cisco.jtapi.extensions.CiscoCallID getCallID()
CallID is a unique identifier among all ACTIVE calls with the same CallManagerID. Returns: the CallID property of this Call
getCalledPartyInfo()
CiscoPartyInfo getCalledPartyInfo()
Returns Presentation Indicator (PI) associated with getCallingAddressPI. If it returns true, Application can display this address name to the end users. If it returns false, Application should not display this Address name to the end user.
getCallSecurityStatus()
public int getCallSecurityStatus()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-42
OL-16702-01
Chapter 5
Returns the call security status of the call (0UNKNOWN, 1NOTAUTHENTICATED, 2AUTHENTICATED, 3-ENCRYPTED).
getConferenceChain
CiscoConferenceChain getConferenceChain()
This interface returns a CiscoConferenceChain object if this call is a chained conference call. Otherwise, this interface returns null.
getCurrentCalledAddress()
public javax.telephony.Address getCurrentCalledAddress()
This interface returns current calling address for the call this will return updated called address every time call gets redirected or transferred. For example, in the CiscoJtapi implementation, CallControlCall.getCalledAddress() returns the first called party of the call.
getCurrentCalledAddressPI()
public javax.telephony.Address getCurrentCalledAddressPI()
Returns Presentation Indicator (PI) associated with getCalledAddressPI. If it returns true, Application can display this address name to the end users. If it returns false, Application should not display this Address name to the end user.
getCurrentCalledDisplayNamePI()
public boolean getCurrentCalledDisplayNamePI()
Returns Presentation Indicator (PI) associated with CurrentCalledAddress. If it returns true, Application can display this address name to the end users. If it returns false, Application should not display this Address name to the end user.
getCurrentCalledPartyDisplayName()
public java.lang.String getCurrentCalledPartyDisplayName()
This interface returns the display of the called party in the call. It returns null if display name is unknown.
getCurrentCalledPartyInfo()
CiscoPartyInfo getCurrentCalledPartyInfo()
This interface returns the PartyInfo of the current called party of the call.
getCurrentCallingAddress()
public javax.telephony.Address getCurrentCallingAddress()
This interface returns current called address for the call this will return updated calling address every time call is redirected or transferred
Note
In the CiscoJtapi implementation CallControlCall.getCallingAddress()returns the first calling party of the call i.e. the original calling party
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-43
Chapter 5 Extensions
See Also:
javax.telephony.callcontrol.CallControlCall
getCurrentCallingAddressPI()
public boolean getCurrentCallingAddressPI()
Returns Presentation Indicator(PI) associated with getCurrentCallingAddress. If it returns true, Application can display this Address to end users. If it returns false, Applications should not display this Address name to end user
getCurrentCallingDisplayNamePI()
public boolean getCurrentCallingDisplayNamePI()
Returns Presentation Indicator(PI) associated with getCurrentCalledDisplayNamePI. If it returns true, Application can display this DisplayName to end users. If it returns false, Applications should not display this DisplayName to end user
getCurrentCallingPartyDisplayName()
public java.lang.String getCurrentCallingPartyDisplayName()
This interface returns the display name of the calling party. It returns null if display name is unknown.
getLastRedirectedPartyInfo()
CiscoPartyInfo getLastRedirectedPartyInfo()
This interface returns the PartyInfo of the last redirecting party of the call.
getLastRedirectingAddressPI()
public boolean getLastRedirectingAddressPI()
Returns Presentation Indicator(PI) associated with getLastRedirectingAddressPI. If it returns true, Application can display this Address name to end users. If it returns false, Applications should not display this Address name to end user
getModifiedCalledAddress()
public javax.telephony.Address getModifiedCalledAddress()
This interface returns modified called address for the call if an application modifies its calling party using from selectRoute API. However, this information may not be accurate if an application is only controlling the Route Point that is modifying the calling number. If no modified calling number is performed, this is similar to getCurrentCalledAddress interface. Typically, this is varied from getCurrentCalledAddress when a feature is invoked after modified calling number modifications. Usage:
if ( call instanceof CiscoCall ) { Address currentCalled = ((CiscoCall)call).getModifiedCalledAddress (); }
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-44
OL-16702-01
Chapter 5
This interface returns modified calling address for the call if an application modifies its calling party using from selectRoute API. However, this information may not be accurate if an application is only controlling the RP that is modifying the calling number. If no modified calling number is performed, this is similar to getCurrentCallingAddress interface. Usage:
if ( call instanceof CiscoCall ) { Address currentCalled = ((CiscoCall)call).getModifiedCallingAddress (); }
If an application already has a callObserver on the monitor target, the application can begin monitoring the call by specifying the monitor target terminal connection as shown in the first interface above. If an application is not monitoring the monitor target, the application can use the second method to begin monitoring a call by specifying the terminal, the address, and the integer value of the connectionID of the monitor target. To stop monitoring, the application can drop the call at the monitor initiator. This will have no impact on the monitored call at the monitor target. Preconditions for startMonitor:
The call is in the IDLE state. The application has monitoring enabled.
delivered to the call observer. Parameters: MonitorInitiatorterminal: the terminal from which the application would like to monitor a call on the monitor target. MonitorInitiatoraddress: the address from which application would like to monitor a call on the monitor target.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-45
Chapter 5 Extensions
MonitorTargetCallID: an intValue() from the CiscoConnectionID of the connection on the monitor target. The application should have the monitor target in its control list or get this from an application which has the monitor target in its control list. MonitorTargetDN: the DN of the monitor target, which has the monitored call. MonitorTargetTerminalName: The name of the monitor target device. MonitorType: the type of monitor. Only Silent_Monitor is supported in this version. PlayToneDirection: indicates whether a tone needs to be played to the target, the initiator, or both. The value should be one of CiscoCall.PlayTone_NoLocalOrRemote, CiscoCall.PlayTone_LocalOnly, CiscoCall.PlayTone_RemoteOnly, or CiscoCall.PlayTone_BothLocalandRemote.
transfer(String, String, String)
javax.telephony.Connection transfer (java.lang.String destinationAddress, java.lang.String facCode, java.lang.String cmcCode)
This method overloads the CallControlCall.transfer(String) method. It takes two new parameters: facCode and cmcCode. The facCode is the forced authorization code (FAC), and cmcCode is the client matter code (CMC). See Also: javax.telephony.callcontrol.CallControlCall
CiscoCallChangedEv
Declaration
public interface CiscoCallChangedEv extends CiscoCallEv, javax.telephony.events.CallEv
All Superinterfaces
javax.telephony.events.CallEv, CiscoCallEv, javax.telephony.events.Ev
Description
The CiscoCallChangedEv event is delivered to the call observer for all supported features whenever the Global Call ID (GCID) of the call changes. In previous releases, CiscoCallChangedEv was delivered only when the GCID of the call was changed due to path replacement (QSIG_PR). Starting with this release CiscoCallChangedEv will be delivered for other features (transfer, conference, barge, cbarge, unpark) as well. In the case of shared lines, multiple CiscoCallChangedEv events would be delivered. When the GCID of the call changes, GlobalCallHandleChangedEvent is received from CTI. This event is also delivered when two or more calls are merged into one. Transfer, conference, unpark, Barge, and CBarge are features that will cause this event to be delivered. In addition to the current interfaces on this event, getCiscoFeatureReason() will return the feature code defined in the CiscoFeatureReason interface.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-46
OL-16702-01
Chapter 5
Member Summary
Methods
CiscoCall getSurvivingCall()
Returns a reference to the new call, which would be the surviving call.
CiscoCall getOriginalCall()
Returns the feature that caused the event. The reasons returned by this method are defined in CiscoFeatureReason.
CiscoConnection getConnection()
Returns the connection of the call on which the change has occurred.
TerminalConnection getTerminalConnection()
Returns the terminal connection of the on which the GCID has changed. A Null is returned if there is no terminal connection.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-47
Chapter 5 Extensions
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-48
OL-16702-01
Chapter 5
Methods
getSurvivingCall()
public com.cisco.jtapi.extensions.CiscoCall getSurvivingCall()
Returns a reference to the new call, which would be the surviving call.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-49
Chapter 5 Extensions
getOriginalCall()
public com.cisco.jtapi.extensions.CiscoCall getOriginalCall()
Returns the feature that caused the event. The reasons returned by this method are defined in CiscoFeatureReason.
Caution
Applications should be able to handle unrecognized reasons and provide default behavior as new reasons could be added in the future and this interface may not be backward compatible.
getConnection()
public com.cisco.jtapi.extensions.CiscoConnection getConnection()
Returns the connection of the call on which the change has occurred.
getTerminalConnection()
public javax.telephony.TerminalConnection getTerminalConnection()
Returns the terminal connection of the call on which the GCID has changed. A Null is returned if there is no terminal connection.
CiscoCallCtlTermConnHeldReversionEv
Declaration
public interface CiscoCallCtlTermConnHeldReversionEv
Description/Usage
The CiscoCallCtlTermConnHeldReversionEv event indicates that hold reversion notification has been received on the TerminalConnection from Cisco Unified Communications Manager. Member Summary
Methods
static int ID
ID
static final int ID
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-50
OL-16702-01
Chapter 5
CiscoCallCtlConnOfferedEv
Declaration
public interface CiscoCallCtlConnOfferedEv extends javax.telephony.callcontrol.events.CallCtlConnOfferedEv
Description/Usage
Applications can use this method to obtain the IP address of the calling party device. The IP address information might not be available for all calling party devices. A return value of 0 indicates that the information is not available. Member Summary
Methods
InetAddress getCallingPartyIpAddr() Returns the IP address of the calling party. A value <blank>/0.0.0.0 will be returned if not available.
Methods
getCallingPartyIpAddr()
public InetAddress getCallingPartyIpAddr()
Returns the IP address of the calling party, or 0 if the address is not available.
CiscoTermConnMonitoringEndEv
All Superinterfaces:
javax.telephony.events.CallEv, javax.telephony.events.Ev, javax.telephony.events.TermConnEv public interface CiscoTermConnMonitoringEndEv extends javax.telephony.events.TermConnEv
Description
The system delivers the CiscoTermConnMonitoringEndEv event to the call observer when monitoring stops on the call or when call is disconnected.
Inherited Fields
Fields inherited from interface javax.telephony.events.Ev are: CAUSE_CALL_CANCELLED, CAUSE_DEST_NOT_OBTAINABLE, CAUSE_INCOMPATIBLE_DESTINATION, CAUSE_LOCKOUT, CAUSE_NETWORK_CONGESTION, CAUSE_NETWORK_NOT_OBTAINABLE, CAUSE_NEW_CALL, CAUSE_NORMAL, CAUSE_RESOURCES_NOT_AVAILABLE, CAUSE_SNAPSHOT, CAUSE_UNKNOWN,
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-51
Chapter 5 Extensions
Methods
getMonitorType()
Inherited Methods
The method inherited from interface javax.telephony.events.TermConnEv is getTerminalConnection. The method inherited from interface javax.telephony.events.CallEv is getCall. The methods inherited from interface javax.telephony.events.Ev are getCause, getID, getMetaCode, getObserved, and isNewMetaEvent.
Fields
static final int ID
See Also
CiscoTermConnMonitoringStartEv
All Superinterfaces
javax.telephony.events.CallEv, javax.telephony.events.Ev, javax.telephony.events.TermConnEv public interface CiscoTermConnMonitoringStartEv extends javax.telephony.events.TermConnEv
Description
The system delivers the CiscoTermConnMonitoringStartEv event to the call observer when monitoring starts on the call.
Fields
static final int:ID Fields inherited from interface javax.telephony.events.Ev are CAUSE_CALL_CANCELLED, CAUSE_DEST_NOT_OBTAINABLE, CAUSE_INCOMPATIBLE_DESTINATION, CAUSE_LOCKOUT, CAUSE_NETWORK_CONGESTION, CAUSE_NETWORK_NOT_OBTAINABLE, CAUSE_NEW_CALL, CAUSE_NORMAL, CAUSE_RESOURCES_NOT_AVAILABLE, CAUSE_SNAPSHOT, CAUSE_UNKNOWN,
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-52
OL-16702-01
Chapter 5
Methods
getMonitorType()
Inherited Methods
The methods inherited from interface javax.telephony.events.TermConnEv is getTerminalConnection. The method inherited from interface javax.telephony.events.CallEv is getCall. The methods inherited from interface javax.telephony.events.Ev are getCause, getID, getMetaCode, getObserved, and isNewMetaEvent.
See Also
CiscoCallEv
Declaration
public interface CiscoCallEv extends CiscoEv, javax.telephony.events.CallEv
All Superinterfaces
javax.telephony.events.CallEv, CiscoEv, javax.telephony.events.Ev
Description
The CiscoCallEv interface, which extends the JTAPI core javax.telephony.events.CallEv interface, serves as the base interface for all Cisco-extended JTAPI Call events. Every Call-related event in this package extends this interface, directly or indirectly.
See Also:
javax.telephony.events.CallEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-53
Chapter 5 Extensions
Member Summary
Fields
static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int CAUSE_ACCESSINFORMATIONDISCARDED CAUSE_BARGE CAUSE_BCBPRESENTLYAVAIL CAUSE_BCNAUTHORIZED CAUSE_BEARERCAPNIMPL CAUSE_CALLBEINGDELIVERED CAUSE_CALLIDINUSE CAUSE_CALLMANAGER_FAILURE CAUSE_CALLREJECTED CAUSE_CALLSPLIT CAUSE_CHANTYPENIMPL CAUSE_CHANUNACCEPTABLE CAUSE_CTIMANAGER_FAILURE CAUSE_DESTINATIONOUTOFORDER CAUSE_DESTNUMMISSANDDCNOTSUB CAUSE_DEVICE_RESTRICTED CAUSE_FACILITYREJECTED CAUSE_IDENTIFIEDCHANDOESNOTEXIST CAUSE_IENIMPL CAUSE_INBOUNDBLINDTRANSFER CAUSE_INBOUNDCONFERENCE CAUSE_INBOUNDTRANSFER CAUSE_INCOMINGCALLBARRED CAUSE_INCOMPATABLEDDESTINATION CAUSE_INTERWORKINGUNSPECIFIED CAUSE_INVALIDCALLREFVALUE CAUSE_INVALIDIECONTENTS CAUSE_INVALIDMESSAGEUNSPECIFIED CAUSE_INVALIDNUMBERFORMAT CAUSE_INVALIDTRANSITNETSEL CAUSE_LINE_RESTRICTED CAUSE_MANDATORYIEMISSING CAUSE_MSGNCOMPATABLEWCS CAUSE_MSGTYPENCOMPATWCS CAUSE_MSGTYPENIMPL CAUSE_NETOUTOFORDER CAUSE_NOANSWERFROMUSER
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-54
OL-16702-01
Chapter 5
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-55
Chapter 5 Extensions
Methods
int getCiscoCause() Returns the Cisco Unified Communications Manager cause for this event. getCiscoFeatureReason Returns the Cisco Unified Communications Manager reason for this event. getCurrentCalledPartyUnicodeDisplayName() Returns the Unicode display name of the current called party in the call getCurrentCalledPartyUnicodeDisplayNamelocale() Returns the locale of the current called party Unicode display name. getCurrentCallingPartyUnicodeDisplayName() Returns the Unicode display name of the current calling party in the call. getCurrentCallingPartyUnicodeDisplayNamelocale() Returns the locale of the current calling party Unicode display name
int
string
int
string
int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-56
OL-16702-01
Chapter 5
Fields
CAUSE_ACCESSINFORMATIONDISCARDED
public static final int CAUSE_ACCESSINFORMATIONDISCARDED
CAUSE_BARGE
public static final int CAUSE_BARGE
CAUSE_BCBPRESENTLYAVAIL
public static final int CAUSE_BCBPRESENTLYAVAIL
CAUSE_BCNAUTHORIZED
public static final int CAUSE_BCNAUTHORIZED
CAUSE_BEARERCAPNIMPL
public static final int CAUSE_BEARERCAPNIMPL
CAUSE_CALLBEINGDELIVERED
public static final int CAUSE_CALLBEINGDELIVERED
CAUSE_CALLIDINUSE
public static final int CAUSE_CALLIDINUSE
CAUSE_CALLMANAGER_FAILURE
public static final int CAUSE_CALLMANAGER_FAILURE
CAUSE_CALLREJECTED
public static final int CAUSE_CALLREJECTED
CAUSE_CALLSPLIT
public static final int CAUSE_CALLSPLIT
CAUSE_CHANTYPENIMPL
public static final int CAUSE_CHANTYPENIMPL
CAUSE_CHANUNACCEPTABLE
public static final int CAUSE_CHANUNACCEPTABLE
CAUSE_CTIMANAGER_FAILURE
public static final int CAUSE_CTIMANAGER_FAILURE
CAUSE_DESTINATIONOUTOFORDER
public static final int CAUSE_DESTINATIONOUTOFORDER
CAUSE_DESTNUMMISSANDDCNOTSUB
public static final int CAUSE_DESTNUMMISSANDDCNOTSUB
CAUSE_DEVICE_RESTRICTED
public static final int CAUSE_DEVICE_RESTRICTED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-57
Chapter 5 Extensions
CAUSE_FACILITYREJECTED
public static final int CAUSE_FACILITYREJECTED
CAUSE_IDENTIFIEDCHANDOESNOTEXIST
public static final int CAUSE_IDENTIFIEDCHANDOESNOTEXIST
CAUSE_IENIMPL
public static final int CAUSE_IENIMPL
CAUSE_INBOUNDBLINDTRANSFER
public static final int CAUSE_INBOUNDBLINDTRANSFER
CAUSE_INBOUNDCONFERENCE
public static final int CAUSE_INBOUNDCONFERENCE
CAUSE_INBOUNDTRANSFER
public static final int CAUSE_INBOUNDTRANSFER
CAUSE_INCOMINGCALLBARRED
public static final int CAUSE_INCOMINGCALLBARRED
CAUSE_INCOMPATABLEDDESTINATION
public static final int CAUSE_INCOMPATABLEDDESTINATION
CAUSE_INTERWORKINGUNSPECIFIED
public static final int CAUSE_INTERWORKINGUNSPECIFIED
CAUSE_INVALIDCALLREFVALUE
public static final int CAUSE_INVALIDCALLREFVALUE
CAUSE_INVALIDIECONTENTS
public static final int CAUSE_INVALIDIECONTENTS
CAUSE_INVALIDMESSAGEUNSPECIFIED
public static final int CAUSE_INVALIDMESSAGEUNSPECIFIED
CAUSE_INVALIDNUMBERFORMAT
public static final int CAUSE_INVALIDNUMBERFORMAT
CAUSE_INVALIDTRANSITNETSEL
public static final int CAUSE_INVALIDTRANSITNETSEL
CAUSE_LINE_RESTRICTED
public static final int CAUSE_LINE_RESTRICTED
CAUSE_MANDATORYIEMISSING
public static final int CAUSE_MANDATORYIEMISSING
CAUSE_MSGNCOMPATABLEWCS
public static final int CAUSE_MSGNCOMPATABLEWCS
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-58
OL-16702-01
Chapter 5
CAUSE_MSGTYPENCOMPATWCS
public static final int CAUSE_MSGTYPENCOMPATWCS
CAUSE_MSGTYPENIMPL
public static final int CAUSE_MSGTYPENIMPL
CAUSE_NETOUTOFORDER
public static final int CAUSE_NETOUTOFORDER
CAUSE_NOANSWERFROMUSER
public static final int CAUSE_NOANSWERFROMUSER
CAUSE_NOCALLSUSPENDED
public static final int CAUSE_NOCALLSUSPENDED
CAUSE_NOCIRCAVAIL
public static final int CAUSE_NOCIRCAVAIL
CAUSE_NOERROR
public static final int CAUSE_NOERROR
CAUSE_NONSELECTEDUSERCLEARING
public static final int CAUSE_NONSELECTEDUSERCLEARING
CAUSE_NORMALCALLCLEARING
public static final int CAUSE_NORMALCALLCLEARING
CAUSE_NORMALUNSPECIFIED
public static final int CAUSE_NORMALUNSPECIFIED
CAUSE_NOROUTETODDESTINATION
public static final int CAUSE_NOROUTETODDESTINATION
CAUSE_NOROUTETOTRANSITNET
public static final int CAUSE_NOROUTETOTRANSITNET
CAUSE_NOUSERRESPONDING
public static final int CAUSE_NOUSERRESPONDING
CAUSE_NUMBERCHANGED
public static final int CAUSE_NUMBERCHANGED
CAUSE_ONLYRDIVEARERCAPAVAIL
public static final int CAUSE_ONLYRDIVEARERCAPAVAIL
CAUSE_OUTBOUNDCONFERENCE
public static final int CAUSE_OUTBOUNDCONFERENCE
CAUSE_OUTBOUNDTRANSFER
public static final int CAUSE_OUTBOUNDTRANSFER
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-59
Chapter 5 Extensions
CAUSE_PROTOCOLERRORUNSPECIFIED
public static final int CAUSE_PROTOCOLERRORUNSPECIFIED
CAUSE_QUALOFSERVNAVAIL
public static final int CAUSE_QUALOFSERVNAVAIL
CAUSE_RECOVERYONTIMEREXPIRY
public static final int CAUSE_RECOVERYONTIMEREXPIRY
CAUSE_REDIRECTED
public static final int CAUSE_REDIRECTED
CAUSE_REQCALLIDHASBEENCLEARED
public static final int CAUSE_REQCALLIDHASBEENCLEARED
CAUSE_REQCIRCNAVIL
public static final int CAUSE_REQCIRCNAVIL
CAUSE_REQFACILITYNIMPL
public static final int CAUSE_REQFACILITYNIMPL
CAUSE_REQFACILITYNOTSUBSCRIBED
public static final int CAUSE_REQFACILITYNOTSUBSCRIBED
CAUSE_RESOURCESNAVAIL
public static final int CAUSE_RESOURCESNAVAIL
CAUSE_RESPONSETOSTATUSENQUIRY
public static final int CAUSE_RESPONSETOSTATUSENQUIRY
CAUSE_SERVNOTAVAILUNSPECIFIED
public static final int CAUSE_SERVNOTAVAILUNSPECIFIED
CAUSE_SERVOPERATIONVIOLATED
public static final int CAUSE_SERVOPERATIONVIOLATED
CAUSE_SERVOROPTNAVAILORIMPL
public static final int CAUSE_SERVOROPTNAVAILORIMPL
CAUSE_SUSPCALLBUTNOTTHISONE
public static final int CAUSE_SUSPCALLBUTNOTTHISONE
CAUSE_SWITCHINGEQUIPMENTCONGESTION
public static final int CAUSE_SWITCHINGEQUIPMENTCONGESTION
CAUSE_TEMPORARYFAILURE
public static final int CAUSE_TEMPORARYFAILURE
CAUSE_UNALLOCATEDNUMBER
public static final int CAUSE_UNALLOCATEDNUMBER
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-60
OL-16702-01
Chapter 5
CAUSE_USERBUSY
public static final int CAUSE_USERBUSY
REASON_BARGE
public static final int REASON_BARGE
REASON_BLINDTRANSFER
public static final int REASON_BLINDTRANSFER
REASON_CALLPICKUP
public static final int REASON_CALLPICKUP
REASON_CM_REDIRECTION
public static final int REASON_CM_REDIRECTION
REASON_CONFERENCE
public static final int REASON_CONFERENCE
REASON_FAC_CMC
public static final int REASON_FAC_CMC
REASON_FORWARDALL
public static final int REASON_FORWARDALL
REASON_FORWARDBUSY
public static final int REASON_FORWARDBUSY
REASON_FORWARDNOANSWER
public static final int REASON_FORWARDNOANSWER
REASON_IMMDIVERT
public static final int REASON_IMMDIVERT
REASON_NORMAL
public static final int REASON_NORMAL
REASON_PARK
public static final int REASON_PARK
REASON_PARKREMAINDER
public static final int REASON_PARKREMAINDER
REASON_QSIG_PR
public static final int REASON_QSIG_PR
REASON_REDIRECT
public static final int REASON_REDIRECT
REASON_REFER
public static final int REASON_REFER
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-61
Chapter 5 Extensions
REASON_TRANSFER
public static final int REASON_TRANSFER
REASON_UNPARK
public static final int REASON_UNPARK
Methods
getCiscoCause()
public int getCiscoCause()
Returns the Cisco Unified Communications Manager cause for this event. In order to function properly, some applications need to know the reason why an event happened at an endpoint that the application is observing. For example, a Connection may be disconnected because the call was not answered (CAUSE_NOANSWERFROMUSER), or whether the caller it was disconnected because it was rejected (CAUSE_CALLREJECTED).
getCiscoFeatureReason
public int getCiscoFeatureReason()
Returns the Cisco Unified Communications Manager Feature Reason for this event. In order to function properly, some applications need to know the reason why an event happened. This interface provides the CiscoFeatureReason in JTAPI Call events for current and new features. Existing features, such as transfer, will continue to receive the CiscoCause provided by interface current CiscoCallEv.getCiscoCause(), while this interface will provide REASON_TRANSFER for transfer.
Caution
Applications should make sure to handle unrecognized reasons and provide default behavior as new reasons could be added in future and this interface may not be backward compatible.
getCurrentCalledPartyUnicodeDisplayName()
public java.lang.String getCurrentCalledPartyUnicodeDisplayName()
Returns the Unicode display name of the current called party in the call.
getCurrentCalledPartyUnicodeDisplayNamelocale()
public int getCurrentCalledPartyUnicodeDisplayNamelocale()
Returns the locale of the current called party Unicode display name. The CiscoLocales interface lists the supported locales.
getCurrentCallingPartyUnicodeDisplayName()
public java.lang.String getCurrentCallingPartyUnicodeDisplayName()
Returns the Unicode display name of the current calling party in the call.
getCurrentCallingPartyUnicodeDisplayNamelocale()
public int getCurrentCallingPartyUnicodeDisplayNamelocale()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-62
OL-16702-01
Chapter 5
Returns the locale of the current calling party Unicode display name. The CiscoLocales interface lists the supported locales.
CiscoCallID
Declaration
public interface CiscoCallID extends CiscoObjectContainer
All Superinterfaces
CiscoObjectContainer
Description
The CiscoCallID object represents a unique object associated with each call. Applications may use the object itself or the integer representation of the object returned by the intValue() method. Member Summary
Methods
CiscoCall int getCall() getCallManagerID() returns the call manager nodeID of the call getGlobalCallID() returns the GlobalCallID of the call intValue() Returns an integer representation of this object, currently a bitwise OR of the CallManagerID and GlobalCallID properties (shifted and truncated appropriately)
int int
Methods
getCall()
public com.cisco.jtapi.extensions.CiscoCall getCall()
getCallManagerID()
public int getCallManagerID()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-63
Chapter 5 Extensions
getGlobalCallID()
public int getGlobalCallID()
Returns an integer representation of this object, currently a bitwise OR of the CallManagerID and GlobalCallID properties (shifted and truncated appropriately) Returns: an integer representation of this object
CiscoCallSecurityStatusChangedEv
Description/Usage
Applications receive this event when the overall call security status changes. Member Summary
Methods
int getCallSecurityStatus() Returns the call security status of the call (0UNKNOWN, 1NOTAUTHENTICATED, 2AUTHENTICATED, 3-ENCRYPTED) callSecurityStatus
int
Methods
getCallSecurityStatus()
public int getCallSecurityStatus()
Range of Values
0 - CiscoCall.CALLSECURITY_UNKNOWN 1- CiscoCall.CALLSECURITY _NOTAUTHENTICATED 2 - CiscoCall.CALLSECURITY _AUTHENTICATED 3 CiscoCall. CALLSECURITY _ENCRYPTED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-64
OL-16702-01
Chapter 5
Default Value
1 - CiscoCall.CALLSECURITY_ NOTAUTHENTICATED
CiscoConferenceChain
Declaration
public interface CiscoConferenceChain
Description/Usage
This interface provides links to conference chain connections for the conference calls that are linked together in a conference chain. This object will be provided in CiscoConferenceChainAddedEv and CiscoConferenceChainRemovedEv. Member Summary
Methods
CiscoCall[] getChainedConferenceCalls() This interface returns a list of calls that are chained together in a single conference. getChainedConferenceConnections() This interface returns a list of connections for conference calls that are chained together in a single conference.
javax.telephony.Connection[]
Methods
getChainedConferenceConnections()
javax.telephony.Connection[] getChainedConferenceConnections()
This interface returns a list of connections for conference calls that are chained together in a single conference. With the list of connection, applications can get all of the conference calls that are linked together. To get the list of connections for all the calls that are chained together in conference, the provider must have an observer on at least one party in the every conference call.
getChainedConferenceCalls()
CiscoCall[] getChainedConferenceCalls()
This interface returns a list of calls that are chained together in a single conference. This interface returns only those calls in that are in the chain conference and are also observed in the provider.
CiscoFeatureReason
The CiscoFeatureReason interface specifies the feature reason that is associated with each delivered event. The application receives this interface when connections are created or removed for remote parties to a conference by using the Click To Conference feature.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-65
Chapter 5 Extensions
Declaration
public interface CiscoFeatureReason
Field Summary
Fields static int static int static int static int static int static int REASON_BARGE REASON_BLINDTRANSFER REASON_CALLPICKUP REASON_CCM_REDIRECTION REASON_CONFERENCE REASON_CLICK_TO_CONFERENCE Indicates that the reason for the event is BARGE feature. Indicates that reason is single step transfer Indicates that the reason for the events is PICKUP Indicates that the reason for the events is SIP 3xx feature. Indicates that the reason for the event is CONFERENCE Indicates that the reason for the event is click to conference and connections have been added or removed. Indicates that the reason for events is DPARK feature Indicates that the reason for events in DPARK Reversion Indicates that the reason for events in DPARK UNPARK Indicates that the reason for the events is FAC, CMC feature Indicates that reason for the event is FORWARD Indicates that the reason for the events is forward busy Indicates that the reason for the events is forward no answer Indicates that the reason for the events is imm divert Indicates that the reason for events caused by Mobility Manager feature Indicates that the reason for events caused by Mobility Manager feature Indicates that the reason for events caused by Mobility Manager feature Indicates that the reason for events caused by Mobility Manager feature
static int static int static int static int static int static int static int static int static int static int static int static int
REASON_DPARK_CALLPARK REASON_DPARK_REVERSION REASON_DPARK_UNPARK REASON_FAC_CMC REASON_FORWARDALL REASON_FORWARDBUSY REASON_FORWARDNOANSWER REASON_IMMDIVERT REASON_MOBILITY REASON_MOBILITY_CELLPICKUP REASON_MOBILITY_FOLLOWME REASON_MOBILITY_HANDIN
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-66
OL-16702-01
Chapter 5
Fields static int static int REASON_MOBILITY_HANDOUT REASON_MOBILITY_IVR Indicates that the reason for events caused by Mobility Manager feature REASON_MOBILITY_IVR>: Indicates that the reason for events caused by Mobility Manager feature Indicates that the reason for the event is NORMAL Indicates that the reason for the event is PARK feature Indicates that the reason for the events is park remainder Indicates that the reason for the event is QSIG path replacement Indicates that the reason for event is REDIRECT REASON_REFER : This reason will be returned for events send for REFER done at CallManager. REASON_REPLACE : This reason will be returned for events send for REPLACE feature done at CallManager. REASON_SILENTMONITORING>: Indicates that the reason for events in SILENT MONITORING Indicates that the reason for the event is TRANSFER Indicates that the reason for the events is unpark
static int static int static int static int static int static int
static int
REASON_REPLACE
static int
REASON_SILENTMONITORING
REASON_TRANSFER REASON_UNPARK
Method Summary
Method int public static final int REASON_CLICK_TO_CONFERENCE This reason is seen when connections are added or removed due to the Click To Conference feature.
See Also:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-67
Chapter 5 Extensions
CiscoConferenceChainAddedEv
Declaration
public interface CiscoConferenceChainAddedEv extends CiscoCallEv
Description/Usage
The CiscoConferenceChainAddedEv event indicates that a conference chain connection has been added to the call. This event is provided every time a new conference chain connection is added. This event is reported via theCallControlCallObserver interface. Member Summary
Fields
static int ID
Methods
javax.telephony.Connection getAddedConnection() This interface returns the conference chain Connection that is just added to the call. getConferenceChain() This interface returns the CiscoConferenceChain that contains all the conference connections for the calls that are linked together.
CiscoConferenceChain
Fields
ID
static final int ID
Methods
getAddedConnection
javax.telephony.Connection getAddedConnection()
This interface returns the conference chain connection that has been added to the call.
getConferenceChain
CiscoConferenceChain getConferenceChain()
This interface returns the CiscoConferenceChain that contains all the conference connections for the calls that are linked together.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-68
OL-16702-01
Chapter 5
CiscoConferenceChainRemovedEv
Declaration
public interface CiscoConferenceChainRemovedEv extends CiscoCallEv
Description/Usage
The CiscoConferenceChainRemovedEv event indicates that a conference chain connection has been removed from the call. This event is provided whenever a conference chain connection is removed. This event is reported via theCallControlCallObserver interface. Member Summary
Fields
static int ID
Methods
javax.telephony.Connection getRemovedConnection() This interface returns the conference chain connection that has been removed from the call. getConferenceChain() This interface returns the CiscoConferenceChain that contains all the conference connections for the calls that are linked together.
CiscoConferenceChain
Fields
ID
static final int ID
Methods
getRemovedConnection
javax.telephony.Connection getRemovedConnection()
This interface returns the conference chain Connection that is just removed from the call.
getConferenceChain
CiscoConferenceChain getConferenceChain()
This interface returns the CiscoConferenceChain that contains all the conference connections for the calls that are linked together.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-69
Chapter 5 Extensions
CiscoConferenceEndEv
Declaration
public interface CiscoConferenceEndEv extends CiscoCallEv
All Superinterfaces
javax.telephony.events.CallEv, CiscoCallEv, CiscoEv, javax.telephony.events.Ev
Description
The CiscoConferenceEndEv event indicates that a transfer operation has completed. This event is reported via the CallControlCallObserver interface. Member Summary
Fields
static int ID
Methods
javax.telephony.Address getConferenceControllerAddress() Returns the Address, which currently acts as the conference controller for this call - the initiating call. getConferencedCall() Returns the call that have merged. getFailedCalls() Returns a list of the calls that could not be conferenced. getFinalCall() Returns the call that remains active after the conference completes. getHeldConferenceController() Returns the TerminalConnection, which currently acts as the conference controller for this call - the initiating call. getHeldConferenceControllers() Returns the TerminalConnection, which currently acts as the conference controller for this call - the initiating call. getTalkingConferenceController() Returns the TerminalConnection, which currently acts as the conference controller for this call - the initiating call. isSuccess() Returns True or False depending on whether Conference is successful or failed.
javax.telephony.Call javax.telephony.Call[]
javax.telephony.Call
javax.telephony.TerminalC onnection
javax.telephony.TerminalC onnection[]
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-70
OL-16702-01
Chapter 5
Fields
ID
static int ID
Methods
getConferenceControllerAddress()
public javax.telephony.Address getConferenceControllerAddress()
Returns the Address which currently acts as the conference controller for this call - the initiating call.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-71
Chapter 5 Extensions
getConferencedCall()
public javax.telephony.Call getConferencedCall()
Returns the call that has been merged. This call is in the Call.INVALID state.
getFailedCalls()
public favax.telephony.Call[] getFailedCalls{}
Returns the list of the calls that could not be conferenced. Returns: Null, if conference is successful. See Also: isSuccess()
getFinalCall()
public javax.telephony.Call getFinalCall()
Returns the call that remains active after the conference is completed.
getHeldConferenceController()
public javax.telephony.TerminalConnection getHeldConferenceController()
Returns the TerminalConnection which currently acts as the conference controller for this call the final call. This is the TerminalConnection that was in HELD state when conference was initiated. This method returns null if the conference controller is not being observed.
getHeldConferenceControllers()
public javax.telephony.TerminalConnection[] getHeldConferenceControllers()
Returns the TerminalConnection which currently acts as the conference controller for this call: the initiating call. This is the TerminalConnection that was in the HELD state. This method returns null if the conference controller is not being observed. This method returns the first held Controller for multiple call join scenario.
getTalkingConferenceController()
public javax.telephony.TerminalConnection getTalkingConferenceController()
Returns the TerminalConnection which currently acts as the conference controller for this call the initiating call. This is the TerminalConnection that was in TALKING state. This method returns null if the conference controller is not being observed.
isSuccess()
public boolean isSuccess()
Returns True or False depending on whether the Conference successful or failed. Application can use interface to find whether Conference is successful. The following are defined as Conference Fail:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-72
OL-16702-01
Chapter 5
If application issues request Call.conferece(otherCalls[]) this Conference would be considered failed, if one or more than one Calls could Join into Conference. Application can use interface getFailedCalls() to find Failed Call. If no Conference Bridge available and conference could not be completed at all. Again Application can use interface getFailedCalls() to get list of Calls that could not Join into Conference. Party being Conferenced Dropped out before conference could be completed.
CiscoConferenceStartEv
Declaration
public interface CiscoConferenceStartEv extends CiscoCallEv
All Superinterfaces
javax.telephony.events.CallEv, CiscoCallEv, CiscoEv, javax.telephony.events.Ev
Description
The CiscoConferenceStartEv event indicates that a conference operation has started. This event is reported via the CallControlCallObserver interface. Member Summary
Fields
static int ID
Methods
javax.telephony.Address getConferenceControllerAddress() Returns the Address which currently acts as the conference controller for this call - the initiating call. getConferencedCall() Returns the call that will be conferenced. getConferencedCalls() Returns the list of the calls that will be conferenced. getFinalCall() Returns the call that will remain active after the conference is completed. getHeldConferenceController() Returns the TerminalConnection which currently acts as the conference controller for this call - the initiating call. getHeldConferenceControllers() Returns the TerminalConnection that currently acts as the conference controller for this call the initiating call.
javax.telephony.Call
javax.telephony.Call[]
javax.telephony.Call
javax.telephony.TerminalC onnection
javax.telephony.TerminalC onnection[]
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-73
Chapter 5 Extensions
javax.telephony.TerminalC onnection
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-74
OL-16702-01
Chapter 5
Fields
ID
public static final int ID
Methods
getConferenceControllerAddress()
public javax.telephony.Address getConferenceControllerAddress()
Returns the Address which currently acts as the conference controller for this call - the initiating call.
getConferencedCall()
public javax.telephony.Call getConferencedCall()
Returns the call that will be conferenced. This is the call that will be merged into the initiating call.
getConferencedCalls()
public javax.telephony.Call getConferencedCalls()
Returns the list of calls that will be conferenced. This is the call that will be merged into the final call.
getFinalCall()
public javax.telephony.Call getFinalCall()
Returns the call that will remain active after the conference is completed. This is the call all calls are finally merged into.
getHeldConferenceController()
public javax.telephony.TerminalConnection getHeldConferenceController()
Returns the TerminalConnection that currently acts as the conference controller for this call - the initiating call. This is the TerminalConnection that was in HELD state. This method returns null if the conference controller is not being observed.
getHeldConferenceControllers()
public javax.telephony.TerminalConnection getHeldConferenceControllers()
Returns the TerminalConnection that currently acts as the conference controller for this call - the initiating call. This is the TerminalConnection that was in HELD state. This method returns null if the conference controller is not being observed. This method returns all held controllers joining into the finalCall.
getOriginalConferenceControllerAddress()
public javax.telephony.Address getOriginalConferenceControllerAddress()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-75
Chapter 5 Extensions
getTalkingConferenceController()
public javax.telephony.TerminalConnection getTalkingConferenceController()
Returns the TerminalConnection which currently acts as the conference controller for this call the initiating call. This is the TerminalConnection that was in TALKING state. This method returns null if the conference controller is not being observed.
CiscoConnection
Declaration
public interface CiscoConnection extends javax.telephony.callcontrol.CallControlConnection, CiscoObjectContainer
All Superinterfaces
javax.telephony.callcontrol.CallControlConnection, CiscoObjectContainer, javax.telephony.Connection
Description
The CiscoConnection interface extends the CallControlConnection interface with additional Cisco Unified Communications Manager-specific capabilities. Applications can use the getReason method to obtain the reason for the creation of this Connection. Member Summary
Fields
static int ADDRESS_SEARCH_SPACE This indicates that the redirect should be done using the search space of the redirect controllers address. CALLED_ADDRESS_DEFAULT This option indicates that the default behavior for Cisco Unified JTAPI should apply. CALLED_ADDRESS_SET_TO_REDIRECT_DESTINATION This option indicates that the calledAddress should be reset to the redirect destination. CALLED_ADDRESS_UNCHANGED This option indicates that the calledAddress should remain unchanged after the redirect operation. CALLINGADDRESS_SEARCH_SPACE This indicates that the redirect should be done using the search space of the calling address. DEFAULT_SEARCH_SPACE This indicates that the redirect should be done using the search space that is the default for the implementation. REASON_DIRECTCALL This Connection was the result of a direct call.
static int
static int
static int
static int
static int
static int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-76
OL-16702-01
Chapter 5
static int
static int
static int
static int
static int
Methods
CiscoConnectionID getConnectionID() CiscoConnectionID is a unique object that identifier among all ACTIVE calls with the same CallManagerID. getReason() Returns the reason for the creation of this Connection. getRedirectController() This method returns the current redirectController for the connection. park() This method parks the call at a system park port and returns the address of the port. redirect(String, int, int, int, String, String, String, int) The redirect() api is overloaded with the additional parameter featurePriority. redirect(String, int) This method overloads the CallControlConnection.redirect() method. redirect(String, int, int) This method overloads the CallControlConnection.redirect() method. redirect(String, int, int, int) This method overloads the CallControlConnection.redirect() method.
int
Connection
javax.telephony.Connecti on
javax.telephony.Connecti on
javax.telephony.Connecti on
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-77
Chapter 5 Extensions
Fields
ADDRESS_SEARCH_SPACE
public static final int ADDRESS_SEARCH_SPACE
This indicates that the redirect should be done using the search space of the redirect controllers address.
CALLED_ADDRESS_DEFAULT
public static final int CALLED_ADDRESS_DEFAULT
This option indicates that the default behavior for Cisco Unified JTAPI should apply. Cisco Unified JTAPIs default behavior is the same as CALLED_ADDRESS_UNCHANGED.
CALLED_ADDRESS_SET_TO_REDIRECT_DESTINATION
public static final int CALLED_ADDRESS_SET_TO_REDIRECT_DESTINATION
This option indicates that the calledAddress should be reset to the redirect destination.
CALLED_ADDRESS_UNCHANGED
public static final int CALLED_ADDRESS_UNCHANGED
This option indicates that the calledAddress should remain unchanged after the redirect operation.
CALLINGADDRESS_SEARCH_SPACE
public static final int CALLINGADDRESS_SEARCH_SPACE
This indicates that the redirect should be done using the search space of the calling address.
DEFAULT_SEARCH_SPACE
public static final int DEFAULT_SEARCH_SPACE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-78
OL-16702-01
Chapter 5
This indicates that the redirect should be done using the search space that is the default for the implementation. The default is to use the calling addresss search space.
REASON_DIRECTCALL
public static final int REASON_DIRECTCALL
This redirect mode instructs the implementation to perform redirect without checking the validity or availability of the destination. The original call will be dropped if the destination is not valid or if its busy.
REDIRECT_NORMAL
public static final int REDIRECT_NORMAL
This redirect mode instructs the implementation to perform redirect if the destination is valid and available. Otherwise, the request will return error. The original call will not be dropped on failure.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-79
Chapter 5 Extensions
Methods
getAddressPI()
public boolean getAddressPI()
Returns Presentation Indicator(PI) associated with Address on which the connection is created. If it returns true, Application can display this Address Name to end users. If it returns false, Applications should not display this Address Name to end user
getConnectionID()
public com.cisco.jtapi.extensions.CiscoConnectionID getConnectionID()
CiscoConnectionID is a unique object that identifier among all ACTIVE calls with the same CallManagerID. Returns: the CallID property of this Call
getReason()
public int getReason()
Returns the reason for the creation of this Connection. In order to function properly, some applications need to know the reason why a Connection is created at an endpoint that the application is observing. For example, a voice mail application may want to know whether a caller is someone that wants to leave a message in a voice mailbox (REASON_FORWARDNOANSWER), or whether the caller is trying to access a voice mail box (REASON_DIRECTCALL). The reason for a Connection creation may be any of the following constants:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-80
OL-16702-01
Chapter 5
park()
public java.lang.String park() throws InvalidArgumentException, PrivilegeViolationException, ResourceUnavailableException, InvalidStateException
This method parks the call at a system park port and returns the address of the port. The call can be unparked using this address. Throws: javax.telephony.InvalidStateException, javax.telephony.ResourceUnavailableException, javax.telephony.PrivilegeViolationException, javax.telephony.InvalidArgumentException
redirect(String, int, int, int, String, String, String, int)
redirect( String destinationAddress, int mode, int callingSearchSpace, int calledAddressOption, String preferredOriginalCalledParty, String facCode, String cmcCode, int featurePriority ) Extends CallControlConnection and CiscoObjectContainer.
This method overloads redirect() with the featurePriority parameter. Range of Values: The featurePriority parameter can take the following values:
CiscoCall.FEATUREPRIORITY_NORMAL =1 CiscoCall.FEATUREPRIORITY_URGENT = 2 CiscoCall.FEATUREPRIORITY_EMERGENCY =3
This method overloads the CallControlConnection.redirect() method. It takes a new parameter redirectMode. When this parameter is:
1.
CiscoConnection.REDIRECT_DROP_ON_FAILURE This mode instructs the implementation to perform redirect without checking the validity or availability of the destination. The original call will be dropped if the destination is not valid or if its busy. CiscoConnection.REDIRECT_NORMAL This mode instructs the implementation to perform redirect only after checking the validity or availability of the destination. This is the same as the CallControlConnection.redirect() method. The original call will not be dropped on failure.
2.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-81
Chapter 5 Extensions
This method overloads the CallControlConnection.redirect() method. It takes two new parameters - redirectMode and callingSearchSpace. The redirectMode is used to select which type of redirect to perform, and the callingSearchSpace is used to instruct the implementation to use either the calling partys search space or the redirect controllers search space. The redirectMode parameter may be:
1. 2.
CiscoConnection.REDIRECT_DROP_ON_FAILURE CiscoConnection.REDIRECT_NORMAL
Read above for a description of what each of these means. The callingSearchSpace parameter may be:
1. 2. 3.
Note
The callingSearchSpace parameter in redirect requests is applied to all address types. Throws: javax.telephony.ResourceUnavailableException, javax.telephony.PrivilegeViolationException, javax.telephony.MethodNotSupportedException, javax.telephony.InvalidPartyException, javax.telephony.InvalidStateException
This method overloads the CallControlConnection.redirect() method. It takes three new parameters - redirectMode, callingSearchSpace, and calledAddressOption. The redirectMode is used to select which type of redirect to perform, and the callingSearchSpace is used to instruct the implementation to use either the calling partys search space or the redirect controllers search space. The calledAddressOption parameter is used to decide whether to reset the original called fields or not. The redirectMode parameter may be:
1. 2.
CiscoConnection.REDIRECT_DROP_ON_FAILURE CiscoConnection.REDIRECT_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-82
OL-16702-01
Chapter 5
Note
The callingSearchSpace parameter in redirect requests is applied to all address types. The calledAddressOption parameter may be:
1. 2. 3.
This method overloads the CallControlConnection.redirect() method. It takes three new parameters -- redirectMode, callingSearchSpace, preferredOriginalCalledParty. The redirectMode is used to select which type of redirect to perform, and the callingSearchSpace is used to instruct the implementation to use either the calling party's search space or the redirect controller's search space. The redirectMode parameter may be:
1. 2.
CiscoConnection.REDIRECT_DROP_ON_FAILURE CiscoConnection.REDIRECT_NORMAL
Read above for a description of what each of these means. The callingSearchSpace parameter may be:
1. 2. 3.
Note
The callingSearchSpace parameter in redirect requests is applied to all address types. PreferredOriginalCalledParty parameter may be: a DN which will be the originalCalledParty field when call is offered to destinationAddress. Throws: javax.telephony.ResourceUnavailableException, javax.telephony.PrivilegeViolationException, javax.telephony.MethodNotSupportedException, javax.telephony.InvalidPartyException, javax.telephony.InvalidStateException
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-83
Chapter 5 Extensions
This method overloads the CallControlConnection.redirect() method. It takes five new parameters - redirectMode, callingSearchSpace, calledAddressOption, facCode, and cmcCode. The redirectMode is used to select which type of redirect to perform, and the callingSearchSpace is used to instruct the implementation to use either the calling partys search space or the redirect controllers search space. The calledAddressOption parameter is used to decide whether to reset the original called fields or not. The redirectMode parameter may be:
1. 2.
CiscoConnection.REDIRECT_DROP_ON_FAILURE CiscoConnection.REDIRECT_NORMAL
Note
The callingSearchSpace parameter in redirect requests is applied to all address types. The calledAddressOption parameter may be:
1. 2. 3.
Throws: javax.telephony.ResourceUnavailableException, javax.telephony.PrivilegeViolationException, javax.telephony.MethodNotSupportedException, javax.telephony.InvalidPartyException, javax.telephony.InvalidStateException PreferredOriginalCalledParty parameter may be a DN that will be the originalCalledParty field when the call is offered to destinationAddress. The facCode is the forced account code (FAC), and cmcCode is the client matter code (CMC).
setRequestController(TerminalConnection)
public void setRequestController(javax.telephony.TerminalConnection tc) throws InvalidArgumentException, InvalidStateException
This interface is provided to Requesting TerminalConnection. Applications are required to call this method prior to redirecting /Parking/disconnecting the Call for a Connection for a SharedLine Call. On a SharedLine address, there will be more that one TerminalConnection for a connection.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-84
OL-16702-01
Chapter 5
When there is only one active terminalConnection, applications may not specify RequestController, however if there is more that one active TerminalConnection in same connection e.g for BargedCall/ConferenceCall then Applications must specify RequestController. RequestController is the TerminalConnection which will be used for completing request. RequestController will be set to null/0 after request is completed/executed. The following examples show how this interface can be used.
Example 5-1 Redirect: Address A has two active terminalConnection TC1 and TC2 Application want to redirect Call T2 to C.
CiscoConnection.setRequqestController(TC2); CiscoConnection.redirect(C);
Example 5-2 Park: Address A have two active TerminalConnection TC1 and TC2 Application want to Park the Call at T2
CiscoConnectionID
Declaration
public interface CiscoConnectionID extends CiscoObjectContainer
All Superinterfaces
CiscoObjectContainer
Description
The CiscoConnectionID object represents a unique object associated with each connection. Applications may use the object itself or the integer representation of the object returned by the intValue() method. Member Summary
Methods
CiscoConnection int getConnection() intValue() Returns an integer representation of this object, currently the Cisco Unified Communications Manager CallLeg ID.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-85
Chapter 5 Extensions
Methods
getConnection()
public com.cisco.jtapi.extensions.CiscoConnection getConnection()
intValue()
public int intValue()
Returns an integer representation of this object, currently the Cisco Unified Communications Manager CallLeg ID. Returns: an integer representation of this object
CiscoConsultCall
Declaration
public interface CiscoConsultCall extends CiscoCall
All Superinterfaces
javax.telephony.Call, javax.telephony.callcontrol.CallControlCall, CiscoCall, CiscoObjectContainer
Description
The CiscoConsultCall interface extends the CiscoCall interface to expose certain properties of Calls that have been created as part of a consultative transfer or consultative conference.
See Also:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-86
OL-16702-01
Chapter 5
Methods
consultWithoutMedia(TerminalConnection, String)
public javax.telephony.Connection[] consultWithoutMedia(javax.telephony.TerminalConnection tc, java.lang.String dialedDigits) throws InvalidStateException, InvalidArgumentException, MethodNotSupportedExceptio n, ResourceUnavailableException, PrivilegeViolationException, InvalidPartyException
From CallEvent perspective, this method behaves similar to CallControlCall.consult(TerminalConnection tc, String dialedDigits). Creates a consultation between this Call and an active Call without establishing the media. This consult call may only be transferred, not conferenced. The Consultation Purpose
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-87
Chapter 5 Extensions
This method does not support if invoked with CallControlCall.setConferneceEnable(). It only supports if invoked with CallControlCall.setTransferEnable(). Throws: javax.telephony.InvalidPartyException, javax.telephony.PrivilegeViolationException, javax.telephony.ResourceUnavailableException, javax.telephony.MethodNotSupportedException, javax.telephony.InvalidArgumentException, javax.telephony.InvalidStateException
getConsultingTerminalConnection()
public javax.telephony.TerminalConnection getConsultingTerminalConnection()
Returns the consulting TerminalConnection that was used to create this CiscoConsultCall. If this Call was created as part of a consultative transfer or consultative conference, the TerminalConnection which was used to perform the consultation on the original Call is returned by the getConsultingTerminalConnection method. This may be useful to applications that wish to correlate a ConsultCall with its original Call. Note that the original Call does not have any methods which may be used to determine the ConsultCall, if any, to which it is related. Returns: null if this Call is not the result of a consultation, or the consulting TerminalConnection of the original Call if this Call is the result of a consultation.
CiscoConsultCallActiveEv
Declaration
public interface CiscoConsultCallActiveEv extends CiscoCallEv, javax.telephony.events.CallActiveEv
All Superinterfaces
javax.telephony.events.CallActiveEv, javax.telephony.events.CallEv, CiscoCallEv, CiscoEv, javax.telephony.events.Ev
Description
The CiscoConsultCallActiveEv event interface extends the JTAPI CallActiveEv. It indicates that the state of the Call object has changed to Call.ACTIVE and that the call was initiated as a result of a consultative transfer or consultative conference operation (manual or programmatic). Applications can obtain the consulting TerminalConnection on the original (consulting) call by using the CiscoConsultCall.getConsultingTerminalConnection method. This event is reported to applications via the CallObserver interface.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-88
OL-16702-01
Chapter 5
See Also:
Member Summary
Fields
static int ID
Methods
javax.telephony.Terminal Connection getHeldTerminalConnection() Returns the consulting TerminalConnection that was used to create this CiscoConsultCall.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-89
Chapter 5 Extensions
Fields
ID
public static final int ID
Methods
getHeldTerminalConnection()
public javax.telephony.TerminalConnection getHeldTerminalConnection()
This may be useful to applications that wish to correlate a consultation Call with its original Call. Note that the original Call does not have any methods which may be used to determine the consultation Call, if any, to which it is related. Returns: the consulting TerminalConnection of the Call that created the Call referenced by this event. Deprecated: replaced by CiscoConsultCall.getConsultingTerminalConnection ()
CiscoEv
Declaration
public interface CiscoEv extends javax.telephony.events.Ev
All Superinterfaces
javax.telephony.events.Ev
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-90
OL-16702-01
Chapter 5
Description
The CiscoEv interface, which extends JTAPIs core javax.telephony.events.Ev interface, serves as the base interface for all Cisco-extended JTAPI events. Every event in this package extends this interface, directly or indirectly.
See Also:
CiscoG711MediaCapability
Declaration
public class CiscoG711MediaCapability extends CiscoMediaCapability java.lang.Object | +--com.cisco.jtapi.extensions.CiscoMediaCapability | +--com.cisco.jtapi.extensions.CiscoG711MediaCapability
Description
The CiscoG711MediaCapability object specifies the properties for a G.711 encoded RTP stream. Applications that support G.711 media termination use this object to specify their preferred packet size when registering a CiscoMediaTerminal. The default packet size is thirty milliseconds. Member Summary
Fields
static int FRAMESIZE_SIXTY_MILLISECOND_PACKET The frames-per-packet value for 60 millisecond packets FRAMESIZE_THIRTY_MILLISECOND_PACKET The frames-per-packet value for 30 millisecond packets FRAMESIZE_TWENTY_MILLISECOND_PACKET The frames-per-packet value for 20 millisecond packets
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-91
Chapter 5 Extensions
Fields
FRAMESIZE_SIXTY_MILLISECOND_PACKET
public static final int FRAMESIZE_SIXTY_MILLISECOND_PACKET
Constructors
CiscoG711MediaCapability()
public CiscoG711MediaCapability()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-92
OL-16702-01
Chapter 5
CiscoG723MediaCapability
Declaration
public class CiscoG723MediaCapability extends CiscoMediaCapability java.lang.Object | +--com.cisco.jtapi.extensions.CiscoMediaCapability | +--com.cisco.jtapi.extensions.CiscoG723MediaCapability
Description
The CiscoG723MediaCapability object specifies the properties for a G.723 encoded RTP stream. Applications that support G.723 media termination use this object to specify their preferred packet size and bit rate when registering a CiscoMediaTerminal. The default packet size is thirty milliseconds and the default bit rate is 6.4k. Member Summary
Fields
static int static int FRAMESIZE_SIXTY_MILLISECOND_PACKET The frames-per-packet value for 60 millisecond packets FRAMESIZE_THIRTY_MILLISECOND_PACKET The frames-per-packet value for 30 millisecond packets FRAMESIZE_TWENTY_MILLISECOND_PACKET The frames-per-packet value for 20 millisecond packets
static int
Constructors
CiscoG723MediaCapability() Constructs a CiscoG723MediaCapability</CODE object with a default thirty millisecond packet size and 6.4k bit rate. CiscoG723MediaCapability(int, int) Constructs a CiscoG723MediaCapability</CODE object with the specified packet size and bit rate.
Methods
int getBitRate() Returns the bit rate specified by this capability object. toString()
java.lang.String
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-93
Chapter 5 Extensions
Fields
FRAMESIZE_SIXTY_MILLISECOND_PACKET
public static final int FRAMESIZE_SIXTY_MILLISECOND_PACKET
Constructors
CiscoG723MediaCapability()
public CiscoG723MediaCapability()
Constructs a CiscoG723MediaCapability</CODE object with a default thirty millisecond packet size and 6.4k bit rate.
CiscoG723MediaCapability(int, int)
public CiscoG723MediaCapability(int maxFramesPerPacket, int bitRate)
Constructs a CiscoG723MediaCapability</CODE object with the specified packet size and bit rate.
Methods
getBitRate()
public int getBitRate()
Returns: a bit rate from the RTPBitRate interface specified by this capability object
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-94
OL-16702-01
Chapter 5
toString()
public java.lang.String toString()
CiscoG729MediaCapability
Declaration
public class CiscoG729MediaCapability extends CiscoMediaCapability java.lang.Object | +--com.cisco.jtapi.extensions.CiscoMediaCapability | +--com.cisco.jtapi.extensions.CiscoG729MediaCapability
Description
The CiscoG729MediaCapability object specifies the properties for a G.729 encoded RTP stream. Applications that support G.729 media termination use this object to specify their preferred packet size when registering a CiscoMediaTerminal. The default packet size is thirty milliseconds. Member Summary
Fields
static int static int FRAMESIZE_SIXTY_MILLISECOND_PACKET The frames-per-packet value for 60 millisecond packets FRAMESIZE_THIRTY_MILLISECOND_PACKET The frames-per-packet value for 30 millisecond packets FRAMESIZE_TWENTY_MILLISECOND_PACKET The frames-per-packet value for 20 millisecond packets
static int
Constructors
CiscoG729MediaCapability() Constructs a CiscoG729MediaCapability</CODE object with a default G729 payload and thirty millisecond packet size. CiscoG729MediaCapability(int, int) Constructs a CiscoG729MediaCapability</CODE object with the specified packet size and payload.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-95
Chapter 5 Extensions
Fields
FRAMESIZE_SIXTY_MILLISECOND_PACKET
public static final int FRAMESIZE_SIXTY_MILLISECOND_PACKET
Constructors
CiscoG729MediaCapability()
public CiscoG729MediaCapability()
Constructs a CiscoG729MediaCapability</CODE object with a default G729 payload and thirty millisecond packet size.
CiscoG729MediaCapability(int, int)
public CiscoG729MediaCapability(int payload, int maxFramesPerPacket)
Constructs a CiscoG729MediaCapability</CODE object with the specified packet size and payload. The choice of payload is specified in CiscoRTPPayload with the options CiscoRTPPayload.G729 and CiscoRTPPayload.G729ANNEXA
CiscoGSMMediaCapability
Declaration
public class CiscoGSMMediaCapability extends CiscoMediaCapability java.lang.Object | +--com.cisco.jtapi.extensions.CiscoMediaCapability
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-96
OL-16702-01
Chapter 5
| +--com.cisco.jtapi.extensions.CiscoGSMMediaCapability
Description
The CiscoGSMMediaCapability object specifies the properties for a GSM encoded RTP stream. Applications that support GSM media termination use this object to specify their preferred packet size when registering a CiscoMediaTerminal. The default packet size is thirty milliseconds. Member Summary
Fields
static int FRAMESIZE_EIGHTY_MILLISECOND_PACKET The frames-per-packet value for 30 millisecond packets
Constructors
CiscoGSMMediaCapability() Constructs a CiscoGSMMediaCapability</CODE object with a default eighty millisecond packet size. CiscoGSMMediaCapability(int) Constructs a CiscoGSMMediaCapability</CODE object with the specified packet size.
Fields
FRAMESIZE_EIGHTY_MILLISECOND_PACKET
public static final int FRAMESIZE_EIGHTY_MILLISECOND_PACKET
Constructors
CiscoGSMMediaCapability()
public CiscoGSMMediaCapability()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-97
Chapter 5 Extensions
CiscoGSMMediaCapability(int)
public CiscoGSMMediaCapability(int maxFramesPerPacket)
CiscoIntercomAddress
Declaration
public interface CiscoIntercomAddress extends CiscoAddress
Description/Usage
The CiscoIntercomAddress interface extends the CiscoAddress interface with additional Cisco Unified Communications Manager-specific capabilities for intercom addresses. This interface lets applications initiate intercom calls and take advantage of other intercom-specific API features. Member Summary
Methods
javax.telephony.Connection[] connectIntercom(javax.telephony.Terminal terminal, java.lang.String targetDN) Places an intercom call from an originating intercom address to a destination intercom address. connectIntercom(javax.telephony.Terminal terminal, java.lang.String targetDN, com.cisco.jtapi.extensions.CiscoRTPParams rtpParams) Places an intercom call from an originating intercom address to a destination intercom address. getDefaultIntercomTargetDN() Returns the default intercom target DN, which is configured through CCMAdmin. getDefaultIntercomTargetLabel() Returns the default current intercom target label which is configured through CCMAdmin getDefaultIntercomUnicodeTargetLabel() Returns the default current intercom target label which is configured through CCMAdmin getIntercomTargetDN() Returns the current intercom target DN which is set by the application. getIntercomTargetLabel() Returns the current intercom target label which is set by the application. getIntercomUnicodeTargetLabel() Returns the current intercom target label which is set by the application.
javax.telephony.Connection[]
java.lang.String
java.lang.String
java.lang.String
java.lang.String
java.lang.String
java.lang.String
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-98
OL-16702-01
Chapter 5
void
Error Codes
CTIERR_INTERCOM_SPEEDDIAL_ALREADY_SET = 0x8CCC00DB CTIERR_INTERCOM_SPEEDDIAL_DESTN_INVALID = 0x8CCC00DC CTIERR_DEVICE_REGISTRATION_FAILED_NOT_SUPPORTED_MEDIATY PE = 0X8CCC00DD
Methods
connectIntercom(javax.telephony.Terminal terminal, java.lang.String targetDN)
javax.telephony.Connection[] connectIntercom(javax.telephony.Terminal terminal, java.lang.String targetDN)
Places a intercom call from an originating intercom address to a destination intercom address.
connectIntercom(javax.telephony.Terminal terminal, java.lang.String targetDN, com.cisco.jtapi.extensions.CiscoRTPParams rtpParams)
javax.telephony.Connection[] connectIntercom(javax.telephony.Terminal terminal, java.lang.String targetDN, com.cisco.jtapi.extensions.CiscoRTPParams rtpParams)
Places an intercom call from an originating intercom address to a destination intercom address.
getDefaultIntercomTargetDN()
java.lang.String getDefaultIntercomTargetDN()
Returns the default current intercom target label which is configured through CCMAdmin
getDefaultIntercomUnicodeTargetLabel()
java.lang.String getDefaultIntercomUnicodeTargetLabel()
Returns the default current intercom target label which is configured through CCMAdmin
getIntercomTargetDN()
java.lang.String getIntercomTargetDN()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-99
Chapter 5 Extensions
getIntercomTargetLabel()
java.lang.String getIntercomTargetLabel()
Returns the current intercom target label which is set by the application
getIntercomUnicodeTargetLabel()
java.lang.String getIntercomUnicodeTargetLabel()
Returns the current intercom target label which is set by the application.
resetIntercomTarget()
public void resetIntercomTarget()
Lets applications reset the intercom target DN, intercom target label, and intercom target unicode label to their default values.
setIntercomTarget(java.lang.String targetDN, java.lang.String targetLabel, java.lang.String UnicodeTargetLabel)
public void setIntercomTarget(java.lang.String targetDN, java.lang.String targetLabel, java.lang.String UnicodeTargetLabel)
Lets applications set the intercom target DN, intercom target label, and intercom target unicode label that are shown next to the intercom line on the phone.
Error Codes
CTIERR_INTERCOM_SPEEDDIAL_ALREADY_SET = 0x8CCC00DB
This error code is returned in exceptions if an applications attempt to set the intercom target fails because the target is already set. CiscoJTAPIExcecption.getErrorCode() will return the value.
CTIERR_INTERCOM_SPEEDDIAL_DESTN_INVALID = 0x8CCC00DC
This error code is returned in exceptions if the intercom target is not within the intercom group. CiscoJTAPIExcecption.getErrorCode() will return the value.
CTIERR_DEVICE_REGISTRATION_FAILED_NOT_SUPPORTED_MEDIATYPE = 0X8CCC00DD
This error code is returned in exceptions if an application tried to register a CTIPort configured with an intercom address with static registration. For a CTIPort with an intercom address, only dynamic port registration is allowed. CiscoJTAPIExcecption.getErrorCode() will return the value.
CiscoJtapiException
Declaration
public interface CiscoJtapiException
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-100
OL-16702-01
Chapter 5
Description
The CiscoJtapiException interface defines CTI error codes. These are the error codes that may be returned by CTI requests. All the JTAPI exceptions have been extended to implement this interface. The Error codes can be got by casting the exception to CiscoJtapiException and calling the method getErrorCode(). If 'e' is any exception caught in an application, see if its an instance of CiscoJtapiException.
try { // some code here } catch ( Exception e ) { if( e instanceof CiscoJtapiException){ CiscoJtapiException ce = com.cisco.cti.client.CTIFAILURE.(CiscoJtapiException) e int errorCode = com.cisco.cti.client.CTIFAILURE.ce.getErrorCode() //returns the Error Code. } }
Member Summary
Fields
static int static int public static final int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int ASSOCIATED_LINE_NOT_OPEN CALL_ALREADY_EXISTS CALL_DROPPED CALLHANDLE_NOTINCOMINGCALL CALLHANDLE_UNKNOWN_TO_LINECONTROL CANNOT_OPEN_DEVICE CANNOT_TERMINATE_MEDIA_ON_PHONE CFWDALL_ALREADY_OFF CFWDALL_ALREADY_SET CFWDALL_DESTN_INVALID CLUSTER_LINK_FAILURE COMMAND_NOT_IMPLEMENTED_ON_DEVICE CONFERENCE_ALREADY_PRESENT CONFERENCE_FAILED CONFERENCE_FULL CONFERENCE_INACTIVE CONFERENCE_INVALID_PARTICIPANT CTIERR_ACCESS_TO_DEVICE_DENIED CTIERR_APP_SOFTKEYS_ALREADY_CONTROLLED CTIERR_APPLICATION_DATA_SIZE_EXCEEDED CTIERR_BIB_RESOURCE_NOT_AVAILABLE CTIERR_CALL_MANAGER_NOT_AVAILABLE CTIERR_CALL_NOT_EXISTED CTIERR_CALL_PARK_NO_DN
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-101
Chapter 5 Extensions
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-102
OL-16702-01
Chapter 5
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-103
Chapter 5 Extensions
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-104
OL-16702-01
Chapter 5
Methods
int getErrorCode() Returns the errorCode for this exception getErrorDescription() This method returns the detail description of the errorCode getErrorDescription(int) This method returns the detail description of the errorCode getErrorName() This method returns an exception in the string format.
java.lang.String
java.lang.String
java.lang.String
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-105
Chapter 5 Extensions
Fields
ASSOCIATED_LINE_NOT_OPEN
public static final int ASSOCIATED_LINE_NOT_OPEN
CALL_ALREADY_EXISTS
public static final int CALL_ALREADY_EXISTS
CALL_DROPPED
public static final int CALL_DROPPED
The call is dropped after the feature request (hold, unhold, transfer, conference) but before completing the request.
CALLHANDLE_NOTINCOMINGCALL
public static final int CALLHANDLE_NOTINCOMINGCALL
CALLHANDLE_UNKNOWN_TO_LINECONTROL
public static final int CALLHANDLE_UNKNOWN_TO_LINECONTROL
CANNOT_OPEN_DEVICE
public static final int CANNOT_OPEN_DEVICE
CANNOT_TERMINATE_MEDIA_ON_PHONE
public static final int CANNOT_TERMINATE_MEDIA_ON_PHONE
CFWDALL_ALREADY_OFF
public static final int CFWDALL_ALREADY_OFF
CFWDALL_ALREADY_SET
public static final int CFWDALL_ALREADY_SET
CFWDALL_DESTN_INVALID
public static final int CFWDALL_DESTN_INVALID
CLUSTER_LINK_FAILURE
public static final int CLUSTER_LINK_FAILURE
COMMAND_NOT_IMPLEMENTED_ON_DEVICE
public static final int COMMAND_NOT_IMPLEMENTED_ON_DEVICE
CONFERENCE_ALREADY_PRESENT
public static final int CONFERENCE_ALREADY_PRESENT
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-106
OL-16702-01
Chapter 5
CONFERENCE_FAILED
public static final int CONFERENCE_FAILED
CONFERENCE_FULL
public static final int CONFERENCE_FULL
CONFERENCE_INACTIVE
public static final int CONFERENCE_INACTIVE
CONFERENCE_INVALID_PARTICIPANT
public static final int CONFERENCE_INVALID_PARTICIPANT
CTIERR_ACCESS_TO_DEVICE_DENIED
public static final int CTIERR_ACCESS_TO_DEVICE_DENIED
CTIERR_APP_SOFTKEYS_ALREADY_CONTROLLED
public static final int CTIERR_APP_SOFTKEYS_ALREADY_CONTROLLED
CTIERR_APPLICATION_DATA_SIZE_EXCEEDED
public static final int CTIERR_APPLICATION_DATA_SIZE_EXCEEDED
CTIERR_BIB_RESOURCE_NOT_AVAILABLE
public static final int CTIERR_BIB_RESOURCE_NOT_AVAILABLE
CTIERR_CALL_MANAGER_NOT_AVAILABLE
public static final int CTIERR_CALL_MANAGER_NOT_AVAILABLE
CTIERR_CALL_NOT_EXISTED
public static final int CTIERR_CALL_NOT_EXISTED
CTIERR_CALL_PARK_NO_DN
public static final int CTIERR_CALL_PARK_NO_DN
CTIERR_CALL_REQUEST_ALREADY_OUTSTANDING
public static final int CTIERR_CALL_REQUEST_ALREADY_OUTSTANDING
CTIERR_CALL_UNPARK_FAILED
public static final int CTIERR_CALL_UNPARK_FAILED
CTIERR_CAPABILITIES_DO_NOT_MATCH
public static final int CTIERR_CAPABILITIES_DO_NOT_MATCH
CTIERR_CLOSE_DELAY_NOT_SUPPORTED_WITH_REG_TYPE
public static final int CTIERR_CLOSE_DELAY_NOT_SUPPORTED_WITH_REG_TYPE
CTIERR_CONFERENCE_ALREADY_EXISTED
public static final int CTIERR_CONFERENCE_ALREADY_EXISTED
CTIERR_CONFERENCE_NOT_EXISTED
public static final int CTIERR_CONFERENCE_NOT_EXISTED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-107
Chapter 5 Extensions
CTIERR_CONNECTION_ON_INVALID_PORT
public static final int CTIERR_CONNECTION_ON_INVALID_PORT
CTIERR_CONSULT_CALL_FAILURE
public static final int CTIERR_CONSULT_CALL_FAILURE
CTIERR_CONSULTCALL_ALREADY_OUTSTANDING
public static final int CTIERR_CONSULTCALL_ALREADY_OUTSTANDING
CTIERR_CTIHANDLER_PROCESS_CREATION_FAILED
public static final int CTIERR_CTIHANDLER_PROCESS_CREATION_FAILED
CTIERR_DEVICE_ALREADY_OPENED
public static final int CTIERR_DEVICE_ALREADY_OPENED
CTIERR_DEVICE_NOT_OPENED_YET
public static final int CTIERR_DEVICE_NOT_OPENED_YET
CTIERR_DEVICE_OWNER_ALIVE_TIMER_STARTED
public static final int CTIERR_DEVICE_OWNER_ALIVE_TIMER_STARTED
CTIERR_DEVICE_RESTRICTED
public static final int CTIERR_DEVICE_RESTRICTED
CTIERR_DN_RESTRICTED
public static final int CTIERR_DN_RESTRICTED
CTIERR_DEVICE_SHUTTING_DOWN
public static final int CTIERR_DEVICE_SHUTTING_DOWN
CTIERR_DUPLICATE_CALL_REFERENCE
public static final int CTIERR_DUPLICATE_CALL_REFERENCE
CTIERR_FAC_CMC_REASON_CMC_INVALID
public static final int CTIERR_FAC_CMC_REASON_CMC_INVALID
CTIERR_FAC_CMC_REASON_CMC_NEEDED
public static final int CTIERR_FAC_CMC_REASON_CMC_NEEDED
CTIERR_FAC_CMC_REASON_FAC_INVALID
public static final int CTIERR_FAC_CMC_REASON_FAC_INVALID
CTIERR_FAC_CMC_REASON_FAC_CMC_NEEDED
public static final int.CTIERR_FAC_CMC_REASON_FAC_CMC_NEEDED
CTIERR_FAC_CMC_REASON_FAC_NEEDED
public static final int CTIERR_FAC_CMC_REASON_FAC_NEEDED
CTIERR_FEATURE_ALREADY_REGISTERED
public static final int CTIERR_FEATURE_ALREADY_REGISTERED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-108
OL-16702-01
Chapter 5
CTIERR_FEATURE_DATA_REJECT
public static final int CTIERR_FEATURE_DATA_REJECT
CTIERR_ILLEGAL_DEVICE_TYPE
public static final int CTIERR_ILLEGAL_DEVICE_TYPE
CTIERR_INCOMPATIBLE_AUTOINSTALL_PROTOCOL_VERSION
public static final int CTIERR_INCOMPATIBLE_AUTOINSTALL_PROTOCOL_VERSION
CTIERR_INCORRECT_MEDIA_CAPABILITY
public static final int CTIERR_INCORRECT_MEDIA_CAPABILITY
CTIERR_INFORMATION_NOT_AVAILABLE
public static final int CTIERR_INFORMATION_NOT_AVAILABLE
CTIERR_INTERCOM_SPEEDDIAL_ALREADY_CONFIGURED
public static final int CTIERR_INTERCOM_SPEEDDIAL_ALREADY_CONFIGURED
CTIERR_INTERCOM_TALKBACK_ALREADY_PENDING
public static final int CTIERR_INTERCOM_TALKBACK_ALREADY_PENDING
CTIERR_INTERNAL_FAILURE
public static final int CTIERR_INTERNAL_FAILURE
CTIERR_INVALID_CALLID
public static final int CTIERR_INVALID_CALLID
CTIERR_INVALID_DEVICE_NAME
public static final int CTIERR_INVALID_DEVICE_NAME
CTIERR_INVALID_DTMFDIGITS
public static final int CTIERR_INVALID_DTMFDIGITS
CTIERR_INVALID_MEDIA_DEVICE
public static final int CTIERR_INVALID_MEDIA_DEVICE
CTIERR_INVALID_MEDIA_PARAMETER
public static final int CTIERR_INVALID_MEDIA_PARAMETER
CTIERR_INVALID_MEDIA_PROCESS
public static final int CTIERR_INVALID_MEDIA_PROCESS
CTIERR_INVALID_MEDIA_RESOURCE_ID
public static final int CTIERR_INVALID_MEDIA_RESOURCE_ID
CTIERR_INVALID_MESSAGE_HEADER_INFO
public static final int CTIERR_INVALID_MESSAGE_HEADER_INFO
CTIERR_INVALID_MESSAGE_LENGTH
public static final int CTIERR_INVALID_MESSAGE_LENGTH
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-109
Chapter 5 Extensions
CTIERR_INVALID_MONITOR_DN_TYPE
public static final int CTIERR_INVALID_MONITOR_DN_TYPE
CTIERR_INVALID_PARAMETER
public static final int CTIERR_INVALID_PARAMETER
CTIERR_INVALID_PARK_DN
public static final int CTIERR_INVALID_PARK_DN
CTIERR_INVALID_PARK_REGISTRATION_HANDLE
public static final int CTIERR_INVALID_PARK_REGISTRATION_HANDLE
CTIERR_INVALID_RESOURCE_TYPE
public static final int CTIERR_INVALID_RESOURCE_TYPE
CTIERR_MAXCALL_LIMIT_REACHED
public static final int CTIERR_MAXCALL_LIMIT_REACHED
CTIERR_INCORRECT_MEDIA_CAPABILITY
public static final int CTIERR_INCORRECT_MEDIA_CAPABILITY
CTIERR_INVALID_DTMFDIGITS
public static final int CTIERR_INVALID_DTMFDIGITS
CTIERR_MEDIA_ALREADY_TERMINATED_DYNAMIC
public static final int CTIERR_MEDIA_ALREADY_TERMINATED_DYNAMIC
CTIERR_MEDIA_ALREADY_TERMINATED_NONE
public static final int CTIERR_MEDIA_ALREADY_TERMINATED_NONE
CTIERR_MEDIA_ALREADY_TERMINATED_STATIC
public static final int CTIERR_MEDIA_ALREADY_TERMINATED_STATIC
CTIERR_MEDIA_CAPABILITY_MISMATCH
public static final int CTIERR_MEDIA_CAPABILITY_MISMATCH
CTIERR_MEDIA_RESOURCE_NAME_SIZE_EXCEEDED
public static final int CTIERR_MEDIA_RESOURCE_NAME_SIZE_EXCEEDED
CTIERR_MEDIAREGISTRATIONTYPE_DO_NOT_MATCH
public static final int CTIERR_MEDIAREGISTRATIONTYPE_DO_NOT_MATCH
CTIERR_MESSAGE_TOO_BIG
public static final int CTIERR_MESSAGE_TOO_BIG
CTIERR_MORE_ACTIVE_CALLS_THAN_RESERVED
public static final int CTIERR_MORE_ACTIVE_CALLS_THAN_RESERVED
CTIERR_NO_EXISTING_CALLS
public static final int CTIERR_NO_EXISTING_CALLS
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-110
OL-16702-01
Chapter 5
CTIERR_NO_EXISTING_CONFERENCE
public static final int CTIERR_NO_EXISTING_CONFERENCE
CTIERR_NO_RESPONSE_FROM_MP
public static final int CTIERR_NO_RESPONSE_FROM_MP
CTIERR_NOT_PRESERVED_CALL
public static final int CTIERR_NOT_PRESERVED_CALL
CTIERR_OPERATION_FAILED_QUIETCLEAR
public static final int CTIERR_OPERATION_FAILED_QUIETCLEAR
CTIERR_OPERATION_NOT_ALLOWED
public static final int CTIERR_OPERATION_NOT_ALLOWED
CTIERR_OWNER_NOT_ALIVE
public static final int CTIERR_OWNER_NOT_ALIVE
CTIERR_PENDING_ACCEPT_OR_ANSWER_REQUEST
public static final int CTIERR_PENDING_ACCEPT_OR_ANSWER_REQUEST
CTIERR_PRIMARY_CALL_INVALID
static final int CTIERR_PRIMARY_CALL_INVALID
CTIERR_PRIMARY_CALL_STATE_INVALID
static final int CTIERR_PRIMARY_CALL_STATE_INVALID
CTIERR_REDIRECT_UNAUTHORIZED_COMMAND_USAGE
public static final int CTIERR_REDIRECT_UNAUTHORIZED_COMMAND_USAGE
CTIERR_REGISTER_FEATURE_ACTIVATION_FAILED
public static final int CTIERR_REGISTER_FEATURE_ACTIVATION_FAILED
CTIERR_RESOURCE_NOT_AVAILABLE
public static final int CTIERR_RESOURCE_NOT_AVAILABLE
CTIERR_STATION_SHUT_DOWN
public static final int CTIERR_STATION_SHUT_DOWN
CTIERR_SYSTEM_ERROR
public static final int CTIERR_SYSTEM_ERROR
CTIERR_UNKNOWN_EXCEPTION
public static final int CTIERR_UNKNOWN_EXCEPTION
CTIERR_UNSUPPORTED_CALL_PARK_TYPE
public static final int CTIERR_UNSUPPORTED_CALL_PARK_TYPE
CTIERR_USER_NOT_AUTH_FOR_SECURITY
public static final int CTIERR_USER_NOT_AUTH_FOR_SECURITY
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-111
Chapter 5 Extensions
DARES_INVALID_REQ_TYPE
public static final int DARES_INVALID_REQ_TYPE
DATA_SIZE_LIMIT_EXCEEDED
public static final int DATA_SIZE_LIMIT_EXCEEDED
DB_ERROR
public static final int DB_ERROR
DB_ILLEGAL_DEVICE_TYPE
public static final int DB_ILLEGAL_DEVICE_TYPE
DB_NO_MORE_DEVICES
public static final int DB_NO_MORE_DEVICES
DESTINATION_BUSY
public static final int DESTINATION_BUSY
DESTINATION_UNKNOWN
public static final int DESTINATION_UNKNOWN
DEVICE_ALREADY_REGISTERED
public static final int DEVICE_ALREADY_REGISTERED
DEVICE_NOT_OPEN
public static final int DEVICE_NOT_OPEN
DEVICE_OUT_OF_SERVICE
public static final int DEVICE_OUT_OF_SERVICE
DIGIT_GENERATION_ALREADY_IN_PROGRESS
public static final int DIGIT_GENERATION_ALREADY_IN_PROGRESS
DIGIT_GENERATION_CALLSTATE_CHANGED
public static final int DIGIT_GENERATION_CALLSTATE_CHANGED
DIGIT_GENERATION_WRONG_CALL_HANDLE
public static final int DIGIT_GENERATION_WRONG_CALL_HANDLE
DIGIT_GENERATION_WRONG_CALL_STATE
public static final int DIGIT_GENERATION_WRONG_CALL_STATE
DIRECTORY_LOGIN_FAILED
public static final int DIRECTORY_LOGIN_FAILED
DIRECTORY_LOGIN_NOT_ALLOWED
public static final int DIRECTORY_LOGIN_NOT_ALLOWED
DIRECTORY_TEMPORARY_UNAVAILABLE
public static final int DIRECTORY_TEMPORARY_UNAVAILABLE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-112
OL-16702-01
Chapter 5
EXISTING_FIRSTPARTY
public static final int EXISTING_FIRSTPARTY
HOLDFAILED
public static final int HOLDFAILED
ILLEGAL_CALLINGPARTY
public static final int ILLEGAL_CALLINGPARTY
ILLEGAL_CALLSTATE
public static final int ILLEGAL_CALLSTATE
ILLEGAL_HANDLE
public static final int ILLEGAL_HANDLE
ILLEGAL_MESSAGE_FORMAT
public static final int ILLEGAL_MESSAGE_FORMAT
INCOMPATIBLE_PROTOCOL_VERSION
public static final int INCOMPATIBLE_PROTOCOL_VERSION
INVALID_LINE_HANDLE
public static final int INVALID_LINE_HANDLE
INVALID_RING_OPTION
public static final int INVALID_RING_OPTION
LINE_INFO_DOES_NOT_EXIST
public static final int LINE_INFO_DOES_NOT_EXIST
LINE_NOT_PRIMARY
public static final int LINE_NOT_PRIMARY
LINECONTROL_FAILURE
public static final int LINECONTROL_FAILURE
MAX_NUMBER_OF_CTI_CONNECTIONS_REACHED
public static final int MAX_NUMBER_OF_CTI_CONNECTIONS_REACHED
MSGWAITING_DESTN_INVALID
public static final int MSGWAITING_DESTN_INVALID
NO_ACTIVE_DEVICE_FOR_THIRDPARTY
public static final int NO_ACTIVE_DEVICE_FOR_THIRDPARTY
NO_CONFERENCE_BRIDGE
public static final int NO_CONFERENCE_BRIDGE
NOT_INITIALIZED
public static final int NOT_INITIALIZED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-113
Chapter 5 Extensions
PROTOCOL_TIMEOUT
public static final int PROTOCOL_TIMEOUT
PROVIDER_ALREADY_OPEN
public static final int PROVIDER_ALREADY_OPEN
PROVIDER_CLOSED
public static final int PROVIDER_CLOSED
PROVIDER_NOT_OPEN
public static final int PROVIDER_NOT_OPEN
REDIRECT_CALL_CALL_TABLE_FULL
public static final int REDIRECT_CALL_CALL_TABLE_FULL
REDIRECT_CALL_DESTINATION_BUSY
public static final int REDIRECT_CALL_DESTINATION_BUSY
REDIRECT_CALL_DESTINATION_OUT_OF_ORDER
public static final int REDIRECT_CALL_DESTINATION_OUT_OF_ORDER
REDIRECT_CALL_DIGIT_ANALYSIS_TIMEOUT
public static final int REDIRECT_CALL_DIGIT_ANALYSIS_TIMEOUT
REDIRECT_CALL_DOES_NOT_EXIST
public static final int REDIRECT_CALL_DOES_NOT_EXIST
REDIRECT_CALL_INCOMPATIBLE_STATE
public static final int REDIRECT_CALL_INCOMPATIBLE_STATE
REDIRECT_CALL_MEDIA_CONNECTION_FAILED
public static final int REDIRECT_CALL_MEDIA_CONNECTION_FAILED
REDIRECT_CALL_NORMAL_CLEARING
public static final int REDIRECT_CALL_NORMAL_CLEARING
REDIRECT_CALL_ORIGINATOR_ABANDONED
public static final int REDIRECT_CALL_ORIGINATOR_ABANDONED
REDIRECT_CALL_PARTY_TABLE_FULL
public static final int REDIRECT_CALL_PARTY_TABLE_FULL
REDIRECT_CALL_PENDING_REDIRECT_TRANSACTION
public static final int REDIRECT_CALL_PENDING_REDIRECT_TRANSACTION
REDIRECT_CALL_PROTOCOL_ERROR
public static final int REDIRECT_CALL_PROTOCOL_ERROR
REDIRECT_CALL_UNKNOWN_DESTINATION
public static final int REDIRECT_CALL_UNKNOWN_DESTINATION
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-114
OL-16702-01
Chapter 5
REDIRECT_CALL_UNKNOWN_ERROR
public static final int REDIRECT_CALL_UNKNOWN_ERROR
REDIRECT_CALL_UNKNOWN_PARTY
public static final int REDIRECT_CALL_UNKNOWN_PARTY
REDIRECT_CALL_UNRECOGNIZED_MANAGER
public static final int REDIRECT_CALL_UNRECOGNIZED_MANAGER
REDIRECT_CALLINFO_ERR
public static final int REDIRECT_CALLINFO_ERR
REDIRECT_ERR
public static final int REDIRECT_ERR
RETRIEVEFAILED
public static final int RETRIEVEFAILED
RETRIEVEFAILED_ACTIVE_CALL_ON_LINE
public static final int RETRIEVEFAILED_ACTIVE_CALL_ON_LINE
SSAPI_NOT_REGISTERED
public static final int SSAPI_NOT_REGISTERED
TIMEOUT
public static final int TIMEOUT
TRANSFER_INACTIVE
public static final int TRANSFER_INACTIVE
TRANSFERFAILED
public static final int TRANSFERFAILED
TRANSFERFAILED_CALLCONTROL_TIMEOUT
public static final int TRANSFERFAILED_CALLCONTROL_TIMEOUT
TRANSFERFAILED_DESTINATION_BUSY
public static final int TRANSFERFAILED_DESTINATION_BUSY
TRANSFERFAILED_DESTINATION_UNALLOCATED
public static final int TRANSFERFAILED_DESTINATION_UNALLOCATED
TRANSFERFAILED_OUTSTANDING_TRANSFER
public static final int TRANSFERFAILED_OUTSTANDING_TRANSFER
UNDEFINED_LINE
public static final int UNDEFINED_LINE
UNKNOWN_GLOBAL_CALL_HANDLE
public static final int UNKNOWN_GLOBAL_CALL_HANDLE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-115
Chapter 5 Extensions
UNRECOGNIZABLE_PDU
public static final int UNRECOGNIZABLE_PDU
UNSPECIFIED
public static final int UNSPECIFIED
The CTI error codes. These are the error codes that may be returned by CTI requests.
Methods
getErrorCode()
public int getErrorCode()
Deprecated. instead use String getErrorDescription (); Returns: String detail description of the errorCode
getErrorName()
public java.lang.String getErrorName()
Deprecated. instead use String getErrorName (); Returns: String representation of the error code
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-116
OL-16702-01
Chapter 5
CiscoJtapiPeer
Declaration
public interface CiscoJtapiPeer extends com.cisco.services.tracing.TraceModule, javax.telephony.JtapiPeer, CiscoObjectContainer
All Superinterfaces
CiscoObjectContainer, javax.telephony.JtapiPeer, com.cisco.services.tracing.TraceModule
Description
By extending the com.cisco.services.tracing.TraceModule interface, the CiscoJtapiPeer exposes trace information to applications. All instances of JtapiPeer objects created by Cisco Unified JTAPI implement this interface. Applications that wish to manipulate the trace settings of the Cisco Unified JTAPI implementation may use the CiscoJtapiPeer.getTraceManager method to obtain its TraceManager object. The TraceManager object may then be manipulated as described in the com.cisco.services.tracing package. An application can configure setProviderOpenRetryAttempts() and getProviderOpenRetryAttempts() to control the number of retry connect attempts by JTAPI to the CTI Manager.
See Also:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-117
Chapter 5 Extensions
Methods
getJtapiProperties()
public com.cisco.jtapi.extensions.CiscoJtapiProperties getJtapiProperties()
CiscoJtapiProperties defines the various methods that applications can use to modify the parameters that the JTAPI layer will use.
See Also:
CiscoJtapiProperties
CiscoJtapiProperties
Declaration
public interface CiscoJtapiProperties
Description
Cisco Unified JTAPI functionality is tailored by many parameters which are read in from the jtapi.ini file when an instance of CiscoJtapiPeer is instantiated. These parameters are now exposed to applications for control via this CiscoJtapiproperties interface. Applications can query the CiscoJtapiproperties object and change these parameters to better suit the applications functionality. Exposing these properties via the CiscoJtapiproperties interface also allows applications to have a single point of administration (at the application end) for these parameters. In this release, JTAPI provides an interface on CiscoJtapiProperties to enable or disable the security option and install the client/server certificates required to establish secure TLS socket connections. The most visible parameters are those describing the tracing levels and tracing destinations.
Usage:
JtapiPeer peer = JtapiPeerFactory.getJtapiPeer ( null ); if(peer instanceof CiscoJtapiPeer){ CiscoJtapiProperties jProps = ((CiscoJtapiPeer)peer).getJtapiProperties(); jProps.setTracePath(\\D:\\Traces\\WorkFlow); jProps.setUseJavaConsoleTrace(false); MyProviderObserver providerObserver = new MyProviderObserver (); provider = peer.getProvider ( providerName ); }
where an application sets the java console tracing to off and the trace path to D:\Traces\WorkFlowApp1. When the peer gets obtained, an object implementing CiscoJtapiProperties gets created by reading parameters set in the jtapi.ini file. If no jtapi.ini file exists in the classpath, the default settings get used to create this object. The parameters used by Cisco Unified JTAPI are read in and frozen when the first getProvider () call is made.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-118
OL-16702-01
Chapter 5
Member Summary
Methods
java.lang.String getAlarmServiceHostname() get the alarm service host name getAlarmServicePort() get the port number for the alarm service getCallSecurityStatusChangedEv() Returns the service parameter value set by the application. getCtiRequestTimeout() get the timeout for cti requests, other than the provider open (seconds) getDebuggingNames() get names of supported debugging level jtapi traces getDebuggingValue(String) get the enabled or disabled state of a debugging level trace getDesiredServerHeartbeatInterval() get the desired interval at which the CTI Manager must send heartbeats to JTAPI (seconds). getFileNameBase() the filename for individual log files. getFileNameExtension() get the filename extension for log files getNumTraceFiles() number of trace files before rollover getPeriodicWakeupEnabled() get the enabled state of periodic wake up getPeriodicWakeupInterval() get the interval for periodic wake up (milliseconds) getProviderOpenRequestTimeout() get the timeout for a provider open request (seconds) getProviderOpenRetryAttempts() get the number of retry attempts while reconnecting to the CTI Manager. getProviderRetryInterval() get the interval at which the connection to the CTI Manager will be retried (seconds) getQueueSizeThreshold() get the threshold for the event queue size to trigger alarms getQueueStatsEnabled() get the enabled state of event queue statistics getRouteSelectTimeout() get the route select timeout (milliseconds) getSecurityPropertyForInstance() returns a Hash table with all the parameters set for the first User/InstanceID
int boolean
int
java.lang.String[]
boolean
int
java.lang.String
java.lang.String int
boolean
int int
int
int
int
boolean
int
public java.util.Hashtab le
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-119
Chapter 5 Extensions
java.lang.String[]
java.lang.String
int java.lang.String
int
java.lang.String[]
java.lang.String boolean
boolean
boolean
boolean
boolean
boolean boolean
void void
void
void
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-120
OL-16702-01
Chapter 5
void
void void
void
void void
void
int
void
void
void void
void
void
void void
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-121
Chapter 5 Extensions
void void
void
void void
void
void
void
void
void
int
Methods
getAlarmServiceHostname()
public java.lang.String getAlarmServiceHostname()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-122
OL-16702-01
Chapter 5
getAlarmServicePort()
public int getAlarmServicePort()
returns the service parameter value that is set by the application Range of Values: True or False Default Value: False, for service parameter
getCtiRequestTimeout()
public int getCtiRequestTimeout()
get the timeout for cti requests, other than the provider open (seconds)
getDebuggingNames()
public java.lang.String[] getDebuggingNames()
get the desired interval at which the CTI Manager must send heartbeats to JTAPI (seconds). The actual interval is decided by the server at connect time.
getFileNameBase()
public java.lang.String getFileNameBase()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-123
Chapter 5 Extensions
gets the number of retry attempts while reconnecting to the CTI Manager
getProviderRetryInterval()
public int getProviderRetryInterval()
get the interval at which the connection to the CTI Manager will be retried (seconds)
getQueueSizeThreshold()
public int getQueueSizeThreshold()
get the threshold for the event queue size to trigger alarms
getQueueStatsEnabled()
public boolean getQueueStatsEnabled()
Returns a hash table with all the parameters set for the first User/InstanceID. The hash table is set with the following key/ value pairs: KEY user String instanceID String AuthCode String CAPF String CAPFPort VALUE userName InstanceID authCode capfServer IP-Address capfServer IP-Address port
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-124
OL-16702-01
Chapter 5
KEY String TFTP String TFTPPort String CertPath String securityOption String certificateStatus
VALUE tftpServer IP-Address tftpServer IP-Address port certificate Path Boolean security option(true for enable/ false for disabled) Boolean certificate status(true for updated/ false for not updated)
Returns: Hash table in above format for first user and instance.
getSecurityPropertyForInstance(java.lang.String user, java.lang.String instanceID)
public java.util.Hashtable getSecurityPropertyForInstance(java.lang.String user, java.lang.String instanceID)
Returns a hash table with all the parameters set for the specified User/InstanceID. The hash table is set with the following key/ value pairs: KEY user String instanceID String AuthCode String CAPF String CAPFPort String TFTP String TFTPPort String CertPath String securityOption String certificateStatus VALUE userName InstanceID authCode capfServer IP-Address capfServer IP-Address port tftpServer IP-Address tftpServer IP-Address port certificate Path Boolean security option(true for enable/ false for disabled) Boolean certificate status(true for updated/ false for not updated)
Parameters: user - UserName for which we are getting security parameter instanceID - InstanceID for which we are getting security parameter Returns: Hash table in above format for the specified user and instance.
getServices()
public java.lang.String[] getServices()
Returns the services that this implementation supports. Note: This is a static list administered in the jtapi.ini file. There is no automatic discovery mechanism to locate available cti services
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-125
Chapter 5 Extensions
getSyslogCollector()
public java.lang.String getSyslogCollector()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-126
OL-16702-01
Chapter 5
if UseSameDir is true this will cause the traces to go to a single directory. Otherwise each instance of a jtapi application will cause the traces to go to a separate directory, indexed in sequence from the last directory written or available.
getUseSyslog()
public boolean getUseSyslog()
Provides information as to whether Client and Server certificates are updated for the specified user/instanceID. Parameters: userTakes UserName as defined in the Cisco Unified Communications Manager admin pages instanceIDTakes instanceID for UserName Returns: true if certificates are updated, false if certificates are not updated.
setAlarmServiceHostname(String)
public void setAlarmServiceHostname(java.lang.String hostname)
Sets the service parameter value to receive or not receive the event. The default is false.
setCtiRequestTimeout(int)
public void setCtiRequestTimeout(int seconds)
set the timeout for cti requests other than provider open (seconds)
setDebuggingValue(String, boolean)
public void setDebuggingValue(java.lang.String debuggingName, boolean value)
set the desired interval at which the CTI Manager must send heartbeats to JTAPI (seconds). The actual interval is decided by the server at connect time.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-127
Chapter 5 Extensions
setFileNameBase(String)
public void setFileNameBase(java.lang.String base)
set the number of retry attempts while reconnecting to the CTI Manager. Takes an integer as the parameter.
Note
The same parameter can be set by adding a new entry in the JTAPI.ini file for ProviderOpenRetryAttempts.
setProviderRetryInterval(int)
public void setProviderRetryInterval(int seconds)
set the interval at which the connection to the CTI Manager will be retried (seconds)
setQueueSizeThreshold(int)
public void setQueueSizeThreshold(int size)
set the threshold for the event queue size to trigger alarms
setQueueStatsEnabled(boolean)
public void setQueueStatsEnabled(boolean enabled)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-128
OL-16702-01
Chapter 5
setServices(String[])
public void setServices(java.lang.String[] services)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-129
Chapter 5 Extensions
setTraceFileSize(int)
public void setTraceFileSize(int val)
if UseSameDir is true this will cause the traces to go to a single directory. Otherwise each instance of a jtapi application will cause the traces to go to a separate directory, indexed in sequence from the last directory written or available.
setUseSyslog(boolean)
public void setUseSyslog(boolean value)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-130
OL-16702-01
Chapter 5
installs an X.509 client certificate for user/instanceID in certificate store and downloads server Certificate Trust List (CTL) from Cisco Unified Communications Manager TFTP server. For getting the client X.509 certificate, connects to Cisco Unified Communications Manager CAPF(Certificate Authority Proxy Function) server. If user credentials provided are not valid, this method throws PrivilegeViolationException. If the TFTP server or CAPF server address provided is not correct, this method throws an InvalidArgumentException. Every instance of an Application requires a unique client certificate. If the multiple instanceID is configured in the Cisco Unified Communications Manager database, Applications can call this interface multiple times to install a client certificate for every instance. Pre-conditions: When calling this interface, Applications should have Network connectivity with the Cisco Unified Communications Manager CAPF and TFTP servers. Post-conditions: This method installs client and server certificates on the JTAPI Application machine. Parameters: userThe name of the CTI Application user configured in the Cisco Unified Communications Manager database. instanceIDApplication instance ID configured in the Cisco Unified Communications Manager database. Every instance of an Application requires a unique ID to be configured. authcodeAuthorization string configured in the Cisco Unified Communications Manager database. Can be used only once for getting certificate. ccmTFTPAddressThe IP address of the Cisco CallManger TFTP server. ccmTFTPPortPort number on which the Cisco Unified Communications Manager TFTP Server is running. If null, the specified default value 69 is used. ccmCAPFAddressThe IP Address of the Cisco Unified Communications Manager CAPF server. ccmCAPFPortPort number on which the Cisco Unified Communications Manager CAPF server is running. If null, the specified default value 3804 is used. certificatePathThe directory path where the certificates need to be installed. Throws: InvalidArgumentExceptionIf either the TFTP server or the CAPF server addresses is not valid, this exception is thrown. PrivilegeViolationExceptionIf the user, instanceID, or authcode provided is not valid, this exception is thrown.
updateServerCertificate
public void updateServerCertificate(java.lang.String ccmTFTPAddress, java.lang.String ccmTFTPPort, java.lang.String ccmCAPFAddress, java.lang.String ccmCAPFPort, java.lang.String certificatePath)
This interface installs an X.509 server certificate on a specified certificate path. If the TFTP server address provided is not correct, this method throws an InvalidArgumentException. Auto update Applications should use this interface to update the server certificate before invoking an HTTPS connection with Cisco Unified Communications Manager. Pre-conditions:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-131
Chapter 5 Extensions
When calling this interface, Application should have network connectivity with the TFTP server. Post-conditions: This method installs the server certificate on the JTAPI Application machine. Parameters: ccmTFTPAddressThe IP address of the Cisco Unified Communications Manager TFTP server. ccmTFTPPortPort number on which the Cisco Unified Communications Manager TFTP Server is running. If null, the specified default value 69 is used. certificatePathThe path for installing the server certificate. ccmCAPFAddressThe IP Address of the Cisco Unified Communications Manager CAPF server. ccmCAPFPortPort number on which the Cisco Unified Communications Manager CAPF server is running. If null, the specified default value 3804 is used. Throws: InvalidArgumentExceptionIf the TFTP server address is invalid, this exception is thrown.
setJavaSocketConnectTimeout
public void setJavaSocketconnectTimeout
This interface has a void return type and takes an integer parameter to set the time out.
getJavaSocketConnectTimeout()
public interface getJavaSocketConnectTimeout()
CiscoJtapiVersion
Declaration
public class CiscoJtapiVersion java.lang.Object | +--com.cisco.jtapi.extensions.CiscoJtapiVersion
Description
This class gives the version information of the installed Cisco Unified JTAPI. Programs can get the version number using the accessor methods. Cisco Unified JTAPI Version is in a.b(x.y) format where a indicates the major version b indicates the minor version x indicates the revision number y indicates the build number. Member Summary
Constructors
CiscoJtapiVersion()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-132
OL-16702-01
Chapter 5
int int
int
int int
java.lang.String
int
int
java.lang.String
Constructors
CiscoJtapiVersion()
public CiscoJtapiVersion()
Methods
getBuildDescription()
public java.lang.String getBuildDescription()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-133
Chapter 5 Extensions
This is returned if this component in thisComponent.compareTo(otherComponent) is greater than the other component only by the extended build number.
IS_LESSER_EXTENDEDBUILD_VERSION
public int IS_LESSER_EXTENDEDBUILD_VERSION
This is returned if this component in thisComponent.compareTo(otherComponent) is less than the other component only by the extended build number.
toString()
public java.lang.String toString()
returns the 5 digit version information in a.b(x.y) format Overrides: toString in class Object
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-134
OL-16702-01
Chapter 5
CiscoLocales
Declaration
public interface CiscoLocales
Description
This interface lists all the locales supported by Cisco Unified JTAPI. Member Summary
Fields
static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int LOCALE_ENGLISH_UNITED_STATES LOCALE_FRENCH_FRANCE LOCALE_GERMAN_GERMANY LOCALE_RUSSIAN_RUSSIA LOCALE_SPANISH_SPAIN LOCALE_ITALIAN_ITALY LOCALE_DUTCH_NETHERLAND LOCALE_NORWEGIAN_NORWAY LOCALE_PORTUGUESE_PORTUGAL LOCALE_SWEDISH_SWEDEN LOCALE_DANISH_DENMARK LOCALE_JAPANESE_JAPAN LOCALE_HUNGARIAN_HUNGARY LOCALE_POLISH_POLAND LOCALE_GREEK_GREECE LOCALE_TRADITIONAL_CHINESE_CHINA LOCALE_SIMPLIFIED_CHINESE_CHINA LOCALE_KOREAN_KOREA LOCALE_FINNISH_FINLAND LOCALE_PORTUGUESE_BRAZIL LOCALE_CHINESE_HONG_KONG LOCALE_SLOVAK_SLOVAKIA LOCALE_CZECH_CZECH_REPUBLIC LOCALE_BULGARIAN_BULGARIA LOCALE_CROATIAN_CROATIA LOCALE_SLOVENIAN_SLOVENIA LOCALE_SLOVENIAN_SLOVENIA LOCALE_ROMANIAN_ROMANIA LOCALE_CATALAN_SPAIN
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-135
Chapter 5 Extensions
Fields
LOCALE_ENGLISH_UNITED_STATES
static final int LOCALE_ENGLISH_UNITED_STATES;
LOCALE_FRENCH_FRANCE
static final int LOCALE_FRENCH_FRANCE
LOCALE_GERMAN_GERMANY
static final int LOCALE_GERMAN_GERMANY
LOCALE_RUSSIAN_RUSSIA
static final int LOCALE_RUSSIAN_RUSSIA
LOCALE_SPANISH_SPAIN
static final int LOCALE_SPANISH_SPAIN
LOCALE_ITALIAN_ITALY
static final int LOCALE_ITALIAN_ITALY
LOCALE_DUTCH_NETHERLAND
static final int LOCALE_DUTCH_NETHERLAND
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-136
OL-16702-01
Chapter 5
LOCALE_NORWEGIAN_NORWAY
static final int LOCALE_NORWEGIAN_NORWAY
LOCALE_PORTUGUESE_PORTUGAL
static final int LOCALE_PORTUGUESE_PORTUGAL
LOCALE_SWEDISH_SWEDEN
static final int LOCALE_SWEDISH_SWEDEN
LOCALE_DANISH_DENMARK
static final int LOCALE_DANISH_DENMARK
LOCALE_JAPANESE_JAPAN
static final int LOCALE_JAPANESE_JAPAN
LOCALE_HUNGARIAN_HUNGARY
static final int LOCALE_HUNGARIAN_HUNGARY
LOCALE_POLISH_POLAND
static final int LOCALE_POLISH_POLAND
LOCALE_GREEK_GREECE
static final int LOCALE_GREEK_GREECE
LOCALE_TRADITIONAL_CHINESE_CHINA
static final int LOCALE_TRADITIONAL_CHINESE_CHINA
LOCALE_SIMPLIFIED_CHINESE_CHINA
static final int LOCALE_SIMPLIFIED_CHINESE_CHINA
LOCALE_KOREAN_KOREA
static final int LOCALE_KOREAN_KOREA
LOCALE_FINNISH_FINLAND
static final int LOCALE_FINNISH_FINLAND
LOCALE_PORTUGUESE_BRAZIL
static final int LOCALE_PORTUGUESE_BRAZIL
LOCALE_CHINESE_HONG_KONG
static final int LOCALE_CHINESE_HONG_KONG
LOCALE_SLOVAK_SLOVAKIA
static final int LOCALE_SLOVAK_SLOVAKIA
LOCALE_CZECH_CZECH_REPUBLIC
static final int LOCALE_CZECH_CZECH_REPUBLIC
LOCALE_BULGARIAN_BULGARIA
static final int LOCALE_BULGARIAN_BULGARIA
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-137
Chapter 5 Extensions
LOCALE_CROATIAN_CROATIA
static final int LOCALE_CROATIAN_CROATIA
LOCALE_SLOVENIAN_SLOVENIA
static final int LOCALE_SLOVENIAN_SLOVENIA
LOCALE_ROMANIAN_ROMANIA
static final int LOCALE_ROMANIAN_ROMANIA
LOCALE_CATALAN_SPAIN
static final int LOCALE_CATALAN_SPAIN
LOCALE_ENGLISH_UNITED_KINGDOM
static final int LOCALE_ENGLISH_UNITED_KINGDOM
LOCALE_ARABIC_UNITED_ARAB_EMIRATES
static final int LOCALE_ARABIC_UNITED_ARAB_EMIRATES
LOCALE_ARABIC_OMAN
static final int LOCALE_ARABIC_OMAN
LOCALE_ARABIC_SAUDI_ARABIA
static final int LOCALE_ARABIC_SAUDI_ARABIA
LOCALE_ARABIC_KUWAIT
static final int LOCALE_ARABIC_KUWAIT
LOCALE_HEBREW_ISRAEL
static final int LOCALE_HEBREW_ISRAEL
LOCALE_SERBIAN_REPUBLIC_OF_SERBIA
static final int LOCALE_SERBIAN_REPUBLIC_OF_SERBIA
LOCALE_SERBIAN_REPUBLIC_OF_MONTENEGRO
static final int LOCALE_SERBIAN_REPUBLIC_OF_MONTENEGRO
LOCALE_THAI_THAILAND
static final int LOCALE_THAI_THAILAND
LOCALE_ARABIC_ALGERIA
static final int LOCALE_ARABIC_ALGERIA
LOCALE_ARABIC_BAHRAIN
static final int LOCALE_ARABIC_BAHRAIN
LOCALE_ARABIC_EGYPT
static final int LOCALE_ARABIC_EGYPT
LOCALE_ARABIC_IRAQ
static final int LOCALE_ARABIC_IRAQ
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-138
OL-16702-01
Chapter 5
LOCALE_ARABIC_JORDAN
static final int LOCALE_ARABIC_JORDAN
LOCALE_ARABIC_LEBANON
static final int LOCALE_ARABIC_LEBANON
LOCALE_ARABIC_MOROCCO
static final int LOCALE_ARABIC_MOROCCO
LOCALE_ARABIC_QATAR
static final int LOCALE_ARABIC_QATAR
LOCALE_ARABIC_TUNISIA
static final int LOCALE_ARABIC_TUNISIA
LOCALE_ARABIC_YEMEN
static final int LOCALE_ARABIC_YEMEN
CiscoCallSecurityIndicator
Declaration
public interface CiscoCallSecurityIndicator
Description
Member Summary
Methods
CiscoCallID getCallID() returns CiscoCallID object getCiscoSecurityIndicator() returns security indicator getCiscoRTPHandle() returns CiscoRTPHandle object
int CiscoRTPHandle
Methods
getCallID()
CiscoCallID getCallID()
Returns CiscoCallID object if there is already CiscoCall present when this event is sent. If there is no CiscoCall present, then this method will return null.
getCiscoSecurityIndicator()
public int getCiscoSecurityIndicator()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-139
Chapter 5 Extensions
Returns CiscoRTPHandle object. Applications can get call reference using CiscoProvider.getCall ( CiscoRTPHandle ).If there is no callobserver or if there was no callobserver when this event is delivered, then CiscoProvider.getCall( CiscoRTPHandle ) may return null.
CiscoMediaCapability
Declaration
public class CiscoMediaCapability java.lang.Object | +--com.cisco.jtapi.extensions.CiscoMediaCapability
Description
The CiscoMediaCapability object specifies the properties of a particular media format that an application can support for CiscoMediaTerminals that it registers. Because CiscoMediaCapability is an abstract class, applications may only construct its subclasses directly.
See Also:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-140
OL-16702-01
Chapter 5
Constructors
CiscoMediaCapability(int, int), int maxFramesPerPacket) Constructs a CiscoMediaCapability object for specified payload type and packet size (in milliseconds).
Methods
int int getMaxFramesPerPacket() Returns the packet size specified by this object. getPayloadType() Returns the payload type specified by this object. isSupported() Returns whether the payload of this object gets supported or not. toString()
boolean
java.lang.String
Fields
G711_64K_30_MILLISECONDS
public static final com.cisco.jtapi.extensions.CiscoMediaCapability G711_64K_30_MILLISECONDS
CiscoG711MediaCapability
G723_6K_30_MILLISECONDS
public static final com.cisco.jtapi.extensions.CiscoMediaCapability G723_6K_30_MILLISECONDS
CiscoG723MediaCapability
G729_30_MILLISECONDS
public static final
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-141
Chapter 5 Extensions
com.cisco.jtapi.extensions.CiscoMediaCapability G729_30_MILLISECONDS
CiscoG729MediaCapability
GSM_80_MILLISECONDS
public static final com.cisco.jtapi.extensions.CiscoMediaCapability GSM_80_MILLISECONDS
CiscoGSMMediaCapability
WIDEBAND_256K_10_MILLISECONDS
public static final com.cisco.jtapi.extensions.CiscoMediaCapability WIDEBAND_256K_10_MILLISECONDS
CiscoWideBandMediaCapability
Constructors
CiscoMediaCapability(int, int)
public CiscoMediaCapability(int payloadType, int maxFramesPerPacket)
Constructs a CiscoMediaCapability object for the specified payload type and packet size.
Methods
getMaxFramesPerPacket()
public int getMaxFramesPerPacket()
Returns the packet size (in milliseconds) specified by this object. Returns: the packet size, specified as a number of milliseconds. The maxFramesPerPacket parameter is a carry over from the H.245 protocol definition. Cisco Unified Communications Manager does not use this field as the number of frames per RTP packet, but rather as the number of milliseconds of audio per RTP packet that the device can receive. Non-Cisco IP Phones may utilize different (higher) rates even though these rates may not be exceeded to and or from Cisco IP Phones.
getPayloadType()
public int getPayloadType()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-142
OL-16702-01
Chapter 5
Returns the payload type specified by this object. Returns: a payload type from the RTPPayload interface
isSupported()
public boolean isSupported()
Returns whether the payload of this object is supported or not. Returns: true if the payloadType gets supported; otherwise, false.
toString()
public java.lang.String toString()
CiscoMediaConnectionMode
Declaration
public interface CiscoMediaConnectionMode
Description
This is a new interface introduced in this release that lists all the media connection modes:
NONEThis mode means there is no transmit or receive channel active. RECEIVE_ONLYThis mode means only the receive channel is active. TRANSMINT_ONLYThis mode means only the transmit channel is active. TRANSMIT_AND_RECEIVEThis mode means both receive and transmit channels are active.
Member Summary
Fields
static int NONE no transmit or receive channel active RECEIVE_ONLY only the receive channel is active TRANSMIT_ONLY only the transmit channel is active TRANSMIT_AND_RECEIVE both receive and transmit channels are active
static int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-143
Chapter 5 Extensions
Fields
NONE
public static final int NONE
RECEIVE_ONLY
public static final int RECEIVE_ONLY
TRANSMIT_ONLY
public static final int TRANSMIT_ONLY
TRANSMIT_AND_RECEIVE
public static final int TRANSMIT_AND_RECEIVE
CiscoMediaEncryptionAlgorithmType
Declaration
public interface CiscoMediaEncryptionAlgorithmType
Description
The CiscoMediaEncryptionAlgorithmType interface indicates the SRTP algorithm type used for encryption. This interface lists all of the security indicator values that an application can get in CiscoRTPInputKeyEv and CiscoRTPOutputKeyEv. If an application is terminating its own media on CTIPorts and Media Terminated RPs, only one of the following algorithms needs to be provided in the register API.
Fields
static int
AES_128_COUNTER The algorithm used is based on Advanced Encryption Standard (AES), which is a computer security standard. The cryptography scheme is a symmetric block cipher that encrypts and decrypts 128-bit blocks of data.
See Also:
CiscoMediaEncryptionKeyInfo
Declaration
public interface CiscoMediaEncryptionKeyInfo
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-144
OL-16702-01
Chapter 5
Description
This is a new interface introduced in this release for SRTP Key Materials. Member Summary
int getAlgorithmID() returns media encryption algorithm for current stream getIsMKIPresent() indicates whether MKI is present or not getKeyLength() returns master Key Length getKey() returns master key for the stream getSaltLength() returns salt length getSalt() returns salt key for the stream keyDerivationRate() indicates SRTP key Derivation rate for this session.
int
int byte[]
int
byte[] int
Methods
getAlgorithmID()
public int getAlgorithmID()
This method returns the media encryption algorithm for the current stream
getIsMKIPresent()
public int getIsMKIPresent()
An MKI Indicator which indicates whether MKI is present or not.The MKI is defined, signaled, and used by key management.
getKeyLength()
public int getKeyLength()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-145
Chapter 5 Extensions
CiscoMediaOpenLogicalChannelEv
Declaration
public interface CiscoMediaOpenLogicalChannelEv extends CiscoTermEv
All Superinterfaces:
CiscoEv, CiscoTermEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
The CiscoMediaOpenLogicalChannelEv event is sent each time when media is established for dynamically registered CiscoMediaTerminals or CiscoRouteTerminals. Upon receiving this event applications must invoke setRTPParams on CiscoMediaTerminal or CiscoRouteTerminal and pass in the IP Address and port number where to terminate media along with rtpHandle that is delivered in this event. Applications can get call reference using CiscoProvider.getCall(CiscoRTPHandle). Applications need to be aware that the far end and local end may not be able to invoke features unless setRTPParams method is invoked. If applications fail to respond to this event within the specified time, the call may be disconnected. Member Summary
Fields
static int ID
Methods
CiscoRTPHandle int getCiscoRTPHandle() Returns CiscoRTPHandle object. getMediaConnectionMode() returns CiscoMediaConnectionMode getPacketSize() Returns the packet size of the far end in milliseconds. getPayLoadType() Returns the payload format of the far end, one of the following constants.
int
int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-146
OL-16702-01
Chapter 5
Fields
ID
public static final int ID
Methods
getCiscoRTPHandle()
public com.cisco.jtapi.extensions.CiscoRTPHandle getCiscoRTPHandle()
Returns CiscoRTPHandle object. Applications should pass this handle along with RTP Parameters to CiscoMediaTerminal or CiscoRouteTerminal. Applications can get call reference using CiscoProvider.getCall. If there is no callobserver or there was no callobserver when this event gets delivered, then CiscoProvider.getCall may return null.
See Also:
CiscoRTPParams
getMediaConnectionMode()
public int CiscoMediaConnectionMode getMediaConnectionMode()
This interface returns CiscoMediaConnectionMode. Applications could get the following values for mediaMode:
CiscoMediaConnectionMode.RECEIVE_ONLY: Means one-way media receive only. CiscoMediaConnectionMode.TRANSMIT_AND_RECEIVE: Means two-way media.
You should never get an event with mode NONE; however, if that happens Applications should ignore the event and log an error.
getPacketSize()
public int getPacketSize()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-147
Chapter 5 Extensions
Returns the payload format of the far end, one of the following constants:
CiscoRTPPayload.NONSTANDARD CiscoRTPPayload.G711ALAW64K CiscoRTPPayload.G711ALAW56K CiscoRTPPayload.G711ULAW64K CiscoRTPPayload.G711ULAW56K CiscoRTPPayload.G722_64K CiscoRTPPayload.G722_56K CiscoRTPPayload.G722_48K CiscoRTPPayload.G7231 CiscoRTPPayload.G728 CiscoRTPPayload.G729 CiscoRTPPayload.G729ANNEXA CiscoRTPPayload.IS11172AUDIOCAP CiscoRTPPayload.IS13818AUDIOCAP CiscoRTPPayload.ACY_G729AASSN CiscoRTPPayload.DATA64 CiscoRTPPayload.DATA56 CiscoRTPPayload.GSM CiscoRTPPayload.ACTIVEVOICE
CiscoMediaSecurityIndicator
Description
This is sent in the CiscoRTPInputKeyEv and CiscoRTPOutputKeyEv messages. It indicates the security status of the call and has one of the following values:
Member Summary
Fields
static int MEDIA_ENCRYPTED_KEYS_AVAILABLE indicates that media terminated is secured and keys are available MEDIA_ENCRYPTED_KEYS_UNAVAILABLE indicates that media is terminated in secured mode, but keys are not available because SRTP is not enabled in Cisco Unified Communications Manager Admin User pages
static int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-148
OL-16702-01
Chapter 5
static int
Fields
static int MEDIA_ENCRYPTED_KEYS_AVAILABLE
Indicates that media is terminated in secured mode, but keys are not available because SRTP is not enabled in Cisco Unified Communications Manager Admin User pages. This could be because either there is no TLS or no IPSec configured for this application.
static int MEDIA_ENCRYPTED_USER_NOT_AUTHORIZED
Indicates that media is terminated in secured mode, but keys are not available because user is not authorized to get the keys.
static int MEDIA_NOT_ENCRYPTED
CiscoMediaTerminal
Declaration
public interface CiscoMediaTerminal extends CiscoTerminal
All Superinterfaces
CiscoObjectContainer, CiscoTerminal, javax.telephony.Terminal
Description
A CiscoMediaTerminal is a special kind of CiscoTerminal that allows applications to terminate RTP media streams. Unlike a CiscoTerminal, a CiscoMediaTerminal does not represent a physical telephony endpoint, which is observable and controllable in a third-party manner. Instead, a CiscoMediaTerminal is a logical telephony endpoint, which may be associated with any application that desires to terminate media. Such applications include voice mail systems, interactive voice response (IVR), and soft phones.
Note
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-149
Chapter 5 Extensions
Terminating media is a two-step process. To terminate media for a particular terminal, an application adds an observer that implements the CiscoTerminalObserver interface using the Terminal.addObserver method. Finally, the application registers its IP address and port number to which the Terminals incoming RTP streams are to be directed using the CiscoMediaTerminal.register method.
See Also:
boolean
void
void
void
void
void
void
void
void
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-150
OL-16702-01
Chapter 5
Methods
changeRTPDefaults(InetAddress, int)
public void changeRTPDefaults(java.net.InetAddress address, int port) throws CiscoRegistrationException
Changes the default registration parameters to specified address and port. Only Registered application may invoke this method. Parameters: address - the internet address for inbound RTP streams on this terminal port - the UDP port for inbound RTP streams on this terminal Throws: CiscoRegistrationException
isRegistered()
public boolean isRegistered()
This method returns true if the CiscoMediaTerminal is registered and false otherwise.
isRegisteredByThisApp()
public boolean isRegisteredByThisApp()
This method returns true if this application issued a successful registration request. This if valid even if device is out of service because of CTIManager failure. This will be set to true until this application unregisters the device.
register(CiscoMediaCapability[], int)
public void register(com.cisco.jtapi.extensions.CiscoMediaCapability[] capabilities, int failureCloseDelay) throws CiscoRegistrationException
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-151
Chapter 5 Extensions
The CiscoMediaTerminal must be in the CiscoTerminal.UNREGISTERED state and its Provider must be in the Provider.IN_SERVICE state. The successful effect of this method is to register the MediaTerminal. Registers a Terminal with specified CiscoMediaCapabilities. Indicates that application is interested in supplying ipAddress and port dynamically for each call. Applications registering with this method receive CiscoMediaOpenLogicalChannelEv for each call and will have to supply ipAddress and port number using setRTPParams method on CiscoTerminalConnection. Method Arguments Arguments indicate the type of RTP encodings that the application is willing to support for this Terminal and the application or CTIManager failure persistence delay Method Post-conditions This method returns successfully when the CiscoMediaTerminal is registered. Parameters: capabilities - the list of RTP encodings supported by this terminal failureCloseDelay - persistence delay seconds on application or CTIManager failure Throws: CiscoRegistrationException
See Also:
CiscoMediaOpenLogicalChannelEv
register(InetAddress, int)
public void register(java.net.InetAddress address, int port throws CiscoRegistrationException
Deprecated. Registers a Terminal with the specified address and port, defaulting to G.711 64KHz u-law encoding with a thirty millisecond packet size. Parameters: address - the internet address for inbound RTP streams on this terminal port - the UDP port for inbound RTP streams on this terminal Throws: CiscoRegistrationException
register(InetAddress, int, CiscoMediaCapability[])
public void register(java.net.InetAddress address, int port, com.cisco.jtapi.extensions.CiscoMediaCapability[] capabilities) throws CiscoRegistrationException
The CiscoMediaTerminal must be in the CiscoTerminal.UNREGISTERED state and its Provider must be in the Provider.IN_SERVICE state. The successful effect of this method is to register the MediaTerminal. Method Arguments This method has three arguments. The first argument specifies the internet address at which the RTP media stream for this Terminal will be terminated, the second indicates the UDP port at which RTP packets will be directed, and the final argument indicates the type of RTP encodings that the application is willing to support for this Terminal.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-152
OL-16702-01
Chapter 5
Method Post-conditions This method returns successfully when the MediaTerminal is registered. Parameters: address - the internet address for inbound RTP streams on this terminal port - the UDP port for inbound RTP streams on this terminal capabilities - the list of RTP encodings supported by this terminal Throws: CiscoRegistrationException
register(CiscoMediaCapability[] capabilities, int[] supportedAlgorithms)
public void register(CiscoMediaCapability[] capabilities, int[] supportedAlgorithms)
The CiscoMediaTerminal must be in the CiscoTerminal.UNREGISTERED state and its Provider must be in the Provider.IN_SERVICE state. This interface is provided for dynamic registration with secure media. By default if applications do not invoke this method, media is terminated in non-secure mode.
register(java.net.InetAddress address, int port, CiscoMediaCapability[] capabilities, int[] algorithmIDs)
public void register(java.net.InetAddress address, int port, CiscoMediaCapability[] capabilities, int[] algorithmIDs)
The CiscoMediaTerminal must be in the CiscoTerminal.UNREGISTERED state and its Provider must be in the Provider.IN_SERVICE state. This interface is provided for static registration with secure media. By default media is non-secured if applications do not register this interface. AlgorithmIDs indicates SRTP algorithms that this CTIPort supports. AlgorithmIDs may only be one of CiscoSupportedAlgorithms
register(InetAddress, int, CiscoMediaCapability[], int)
public void register(java.net.InetAddress address, int port, com.cisco.jtapi.extensions.CiscoMediaCapability[] capabilities, int failureCloseDelay) throws CiscoRegistrationException
The CiscoMediaTerminal must be in the CiscoTerminal.UNREGISTERED state and its Provider must be in the Provider.IN_SERVICE state. The successful effect of this method is to register the MediaTerminal. Method Arguments This method has four arguments. The first argument specifies the internet address at which the RTP media stream for this Terminal will be terminated, the second indicates the UDP port at which RTP packets will be directed, the third argument indicates the type of RTP encodings that the application is willing to support for this Terminal, and the final argument is the application or CTIManager failure persistence delay Method Post-conditions This method returns successfully when the MediaTerminal is registered. Parameters: address - the internet address for inbound RTP streams on this terminal port - the UDP port for inbound RTP streams on this terminal capabilities - the list of RTP encodings supported by this terminal
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-153
Chapter 5 Extensions
Applications can set ipAddress and RTP Port number to dynamically stream media for a call. In order to do this, applications will have to register MediaTerminal or CiscoRouteTeminal by providing only capabilities. Applications will have to invoke this method upon receiving CiscoCallOpenLogicalChannel on terminalObserver. Applications need to pass in rtpHandle that is received in CiscoCallOpenLogicalChannelEv. Applications can get CiscoCall reference using CiscoProvider.getRTPHandle(rtpHandle) method. This may return null if either no callobserver is added on the terminal or no callobserver at the time when this event was sent or there is no call associated with this handle. Throws: javax.telephony.PrivilegeViolationException, javax.telephony.InvalidArgumentException, javax.telephony.InvalidStateException
See Also:
CiscoRTPParams
unregister()
public void unregister() throws CiscoUnregistrationException
The CiscoMediaTerminal must not be registered and its Provider must be in the Provider.IN_SERVICE state. The successful effect of this method is to unregister the MediaTerminal. Method Post-conditions This method returns successfully when the MediaTerminal is unregistered. Throws: CiscoRegistrationException
CiscoMediaTerminalConnection
Description/Usage
Applications can use these methods to start and stop recording. If the startRecording() interface is used, no tone is played to the caller or the recording initiator. Member Summary
Methods
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-154
OL-16702-01
Chapter 5
void
void
stopRecording()
Methods
GetMediaState()
public int GetMediaState()
stopRecording()
pubic void stopRecording()
CiscoMediaTerminalConnectionCapabilities
Description/Usage
This interface returns information about recording capabilities. Member Summary
Methods
boolean canStartRecording() Returns true if the provider has the canRecord capability, the address is configured with application-controlled call recording, and the terminal connection is in the TALKING state. canStopRecording() Returns true if the provider has the canRecord capability, the address is configured with application-controlled call recording, the terminal connection is in the TALKING state, and the media state is MediaTerminalConnection.RECORDING.
boolean
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-155
Chapter 5 Extensions
Methods
canStartRecording()
public boolean canStartRecording()
Returns true if the provider has the canRecord capability, the address is configured with application-controlled call recording, and the terminal connection is in the TALKING state
canStopRecording()
public boolean canStopRecording()
Returns true if the provider has the canRecord capability, the address is configured with application-controlled call recording, the terminal connection is in the TALKING state, and the media state is MediaTerminalConnection.RECORDING.
CiscoMonitorInitiatorInfo
Description/Usage
This interface provides information about the monitor initiator. Member Summary
Methods
int getMonitorInitiatorCallLegHandle() Returns the handle of the call at the monitor initiator. JATAPI can get the call at the monitor target using provider.getCall(int monitorInitiatorCallLegHandle). This method returns null if the call at the monitor initiator is not active in this provider. getTerminalName() Returns the name of the monitor initiator device. getAddress() Returns the address of the monitor initiator.
String
Address
Methods
getMonitorInitiatorCallLegHandle()
public int getMonitorInitiatorCallLegHandle()
Returns the handle of the call at the monitor initiator. JATAPI can get the call at the monitor target using provider.getCall (int monitorInitiatorCallLegHandle). This method returns null if the call at the monitor initiator is not active in this provider.
getTerminalName()
public string getTerminalName()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-156
OL-16702-01
Chapter 5
getAddress()
public address getAddress()
CiscoMonitorTargetInfo
Description/Usage
This interface provides information about the monitor target. Member Summary
Methods
int getmonitorTargetCallLegHandle() Returns the handle of the call at the monitor target. JTAPI can get the call at the monitor target using provider.getCall(int monitorTargetCallLegHandle). This method returns null if the monitor target call is not active in this provider. getTerminalName() Returns the name of the monitor target device. getAddress() Returns the address of the monitor target.
String
Address
Methods
getmonitorTargetCallLegHandle()
public int getmonitorTargetCallLegHandle()
Returns the handle of the call at the monitor target. JTAPI can get the call at the monitor target using provider.getCall(intmonitorTargetCallLegHandle). This method returns null if the monitor target call is not active in this provider.
getTerminalName()
public string getTerminalName()
CiscoObjectContainer
Declaration
public interface CiscoObjectContainer
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-157
Chapter 5 Extensions
Description
The ApplicationObject interface allows applications to associate an application defined object to objects that implement this interface. Member Summary
Methods
java.lang.Object getObject() Gets the application-defined object. setObject(Object) Sets an application-defined object.
java.lang.Object
Methods
getObject()
public java.lang.Object getObject()
Gets the application-defined object. Returns: the CallID property of this Call
setObject(Object)
public java.lang.Object setObject(java.lang.Object reference)
CiscoOutOfServiceEv
Declaration
public interface CiscoOutOfServiceEv extends CiscoEv
All Superinterfaces
CiscoEv, javax.telephony.events.Ev
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-158
OL-16702-01
Chapter 5
Description
The CiscoAddrOutOfServiceEv event is sent when an address goes out of service. Member Summary
Fields
static int static int static int static int static int static int static int static int static int static int CAUSE_CALLMANAGER_FAILURE CAUSE_CTIMANAGER_FAILURE CAUSE_DEVICE_FAILURE CAUSE_DEVICE_RESTRICTED CAUSE_DEVICE_UNREGISTERED CAUSE_LINE_RESTRICTED CAUSE_NOCALLMANAGER_AVAILABLE CAUSE_REHOME_TO_HIGHER_PRIORITY_CM CAUSE_REHOMING_FAILURE ID
Fields
CAUSE_CALLMANAGER_FAILURE
public static final int CAUSE_CALLMANAGER_FAILURE
CAUSE_CTIMANAGER_FAILURE
public static final int CAUSE_CTIMANAGER_FAILURE
CAUSE_DEVICE_FAILURE
public static final int CAUSE_DEVICE_FAILURE
CAUSE_DEVICE_RESTRICTED
public static final int CAUSE_DEVICE_RESTRICTED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-159
Chapter 5 Extensions
CAUSE_DEVICE_UNREGISTERED
public static final int CAUSE_DEVICE_UNREGISTERED
CAUSE_LINE_RESTRICTED
public static final int CAUSE_LINE_RESTRICTED
CAUSE_NOCALLMANAGER_AVAILABLE
public static final int CAUSE_NOCALLMANAGER_AVAILABLE
CAUSE_REHOME_TO_HIGHER_PRIORITY_CM
public static final int CAUSE_REHOME_TO_HIGHER_PRIORITY_CM
CAUSE_REHOMING_FAILURE
public static final int CAUSE_REHOMING_FAILURE
ID
public static final int ID
CiscoPartyInfo
Declaration
public interface CiscoPartyInfo public int getNumberType()
All Superinterfaces
CiscoCall
Description
This interface is defined on CiscoCall to allow applications to get the URL information of external SIP entities. Applications receive this number type along with the current calling, called, and last redirected party information. The range of values are:
Member Summary
CiscoUrlInfo getUrlInfo() returns the URL information for the SIP entity
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-160
OL-16702-01
Chapter 5
String String
boolean
boolean
boolean
string int
int
Methods
getUrlInfo()
public interface getURLInfo
getUnicodeDisplayName()
public String getUnicodeDisplayName
Returns the Unicode display name associated with the SIP entity. It returns null if the Unicode display name is unknown.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-161
Chapter 5 Extensions
getAddressPI()
public boolean getAddressPI()
Returns Presentation Indicator(PI) associated with the IP Address of the SIP entity. If it returns true, Application can display this Address to end users. If it returns false, Applications should not display this Address to end users.
getDisplayNamePI()
public boolean getDisplayNamePI()
Returns Presentation Indicator(PI) associated with the DisplayName that is associated with the SIP entity. If it returns true, Application can display this DisplayName to end users. If it returns false, Applications should not display this DisplayName to end users.
getlocale()
public boolean getlocale
Returns the called number, calling number, originally calling number, and the last redirecting party information. Range of values are: 0CiscoPartyInfo.UNKNOWN_NUMBER 1CiscoPartyInfo.INTERNATIONAL_NUMBER 2CiscoPartyInfo.NATIONAL_NUMBER 3CiscoPartyInfo.NET_SPECIFIC_NUMBER 4CiscoPartyInfo.SUBSCRIBER_NUMBER 6CiscoPartyInfo.ABBREVIATED_NUMBER 7CiscoPartyInfo.ssRESERVED_FOR_EXTENSION
CiscoProvCallParkEv
Declaration
public interface CiscoProvCallParkEv extends CiscoProvFeatureEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-162
OL-16702-01
Chapter 5
All Superinterfaces
CiscoEv, CiscoProvEv, CiscoProvFeatureEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
The CiscoProvCallParkEv event is delivered to the provider observer when a call is parked by any device in the cluster. To receive this event the application should register using CiscoProvider.registerFeature() and CiscoProvFeatureID.MONITOR_CALLPARK_DN. The user profile used by the application should have the Call Park Retrieval Allowed flag enabled to receive this event. Member Summary
Fields
static int static int static int ID PARK_STATE_ACTIVE Indicates that a call is parked PARK_STATE_IDLE Indicates that a call is unparked REASON_CALLPARK This event is due to call park REASON_CALLPARKREMAINDER This event is due to call park remainder REASON_CALLUNPARK This event is due to call being unparked
static int
Methods
int java.lang.String getintCallIDValue() Returns an integer representation of this object getParkDN() Returns where the call is parked getParkPartyPartition() Returns the partition string of the park DN getParkedParty() Returns the DN of the parked party getParkedPartyPartition() Returns the partition string of the parked party getParkingParty() Returns the DN of the parking party getParkingPartyPartition() Returns the partition string of the parking party getReason() Returns the reason of the event. getState() Returns the state of the call. Possible states are CiscoProvCallParkEv.PARK_STATE_IDLE CiscoProvCallParkEv.PARK_STATE_ACTIVE
String
java.lang.String String
java.lang.String
String
int int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-163
Chapter 5 Extensions
Fields
ID
public static final int ID
PARK_STATE_ACTIVE
public static final int PARK_STATE_ACTIVE
Methods
getintCallIDValue()
public int getintCallIDValue()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-164
OL-16702-01
Chapter 5
This returns the reason of the event. Possible states include the following: CiscoProvCallParkEv.REASON_CALLPARK CiscoProvCallParkEv.REASON_CALLUNPARK CiscoProvCallParkEv.REASON_CALLPARKREMAINDER
getState()
public int getState()
This returns the state of the call Possible states include the following: CiscoProvCallParkEv.PARK_STATE_IDLE CiscoProvCallParkEv.PARK_STATE_ACTIVE
CiscoProvEv
Declaration
public interface CiscoProvEv extends CiscoEv, javax.telephony.events.ProvEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-165
Chapter 5 Extensions
All Superinterfaces
CiscoEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
The CiscoProvEv interface, which extends JTAPIs core javax.telephony.events.ProvEv interface, serves as the base interface for all Cisco-extended JTAPI Provider events. Every Provider-related event in this package extends this interface, directly or indirectly.
See Also:
CiscoProvFeatureEv
Declaration
public interface CiscoProvFeatureEv extends CiscoProvEv
All Superinterfaces
CiscoEv, CiscoProvEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-166
OL-16702-01
Chapter 5
Methods
getFeatureID()
public int getFeatureID()
CiscoProvFeatureID
Declaration
public interface CiscoProvFeatureID
Description
This interface lists the features supported by the registerFeature interface. Member Summary
Fields
static int MONITOR_CALLPARK_DN
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-167
Chapter 5 Extensions
Fields
MONITOR_CALLPARK_DN
public static final int MONITOR_CALLPARK_DN
This feature ID is used with registerFeature interface in CiscoProvider to receive CiscoProvCallParkEv when a call is parked or unparked from any device in the cluster.
CiscoProvFeatureUnRegisteredEv
Declaration
public interface CiscoProvFeatureUnRegisteredEv extends CiscoProvEv
All Superinterfaces
CiscoEv, CiscoProvEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
The CiscoProvFeatureUnRegisteredEv event This event indicates the unregistration of a particular feature by Cisco Unified Communications Manager Member Summary
Fields
static int ID
Methods
int getFeatureID() FeatureID for which application no longer receives events
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-168
OL-16702-01
Chapter 5
Fields
ID
public static final int ID
Methods
getFeatureID()
public int getFeatureID()
CiscoProvider
Declaration
public interface CiscoProvider extends javax.telephony.Provider, CiscoObjectContainer
All Superinterfaces
CiscoObjectContainer, javax.telephony.Provider
Description
Member Summary
Methods
CiscoTerminal createTerminal(java.lang.String name) Returns an instance of the CiscoTerminal class which corresponds to the given name. deleteCall(Call) Deletes an unused call created by createCall(). deleteTerminal(com.cisco.jtapi.extensions.CiscoTerminal terminal) Removes the CiscoTerminal Object from providers control. getAddress(string number) Returns an array of Address objects corresponding to the number and different partitions. getAddress(string number, string partition) Returns the address object which has the same DN as the number parameter and belongs to the same partition as specified by the partition parameter. int getAppDSCPValue() Returns the DSCP IP for CTI applications service parameter.
void
void
Address[]
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-169
Chapter 5 Extensions
boolean
CiscoCall
CiscoMediaTerminal
CiscoMediaTerminal[]
java.lang.String
boolean
boolean
boolean
boolean
void
void
void
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-170
OL-16702-01
Chapter 5
Methods
createTerminal(java.lang.String name)
CiscoTerminal createTerminal(java.lang.String name)
Returns an instance of the CiscoTerminal class which corresponds to the given name.
deleteCall(Call)
public void deleteCall(javax.telephony.Call call throws InvalidStateException
Deletes an unused call created by createCall(). An exception is generated if the call is not in IDLE state or if provider is not in Provider.IN_SERVICE state. Applications may use this interface to move un used calls to INVALID state and reclaim resources allocated to the call. Pre-conditions:
1. 2.
Post-conditions:
1.
Throws: javax.telephony.InvalidStateException
deleteTerminal(com.cisco.jtapi.extensions.CiscoTerminal terminal)
void deleteTerminal(com.cisco.jtapi.extensions.CistoTerminal terminal)
If you have two addresses, A(1000, P1) and B(1000,P2), where 1000 denotes the DN of the two address objects (which is the same) and P1, P2 indicate the partitions to which the addresses belong, when the application calls provider.getAddress(1000), it will get two address objects, A and B. When the application then calls A.getPartition(), it will get P1. A call to B.getPartition() returns P2. Applications can distinguish between the two address objects using this getPartition method. Returns: An array of Address objects corresponding to the number and different partitions.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-171
Chapter 5 Extensions
Returns: Address object which has the same DN as the number parameter and belongs to the same partition as specified by the partition parameter.
getAppDSCPValue()
private int precedenceValue = 0x00;
Returns: The DSCP IP for CTI applications service parameter.This value specifies the DSCP value that JTAPI will set on its link to CTI. Applications can get this value by querying the Provider object using this API when they get a ProviderInServiceEvent.
getCall(CiscoRTPHandle)
public com.cisco.jtapi.extensions.CiscoCall0 getCall(com.cisco.jtapi.extensions.CiscoRTPHandle rtpHandle) throws InvalidStateException
Returns: Call object with the rtpHandle associated with a specific terminal. M<ay return null if this rtpHandle is no longer associated with any call or if there was no callObserver added on the terminal at the time when CiscoCallOpenLogicalChannelEv which contained this handle gets sent to applications. Throws: javax.telephony.InvalidStateException
getCallbackGuardEnabled()
public boolean getCallbackGuardEnabled()
Returns the current state of the callback guard feature Returns: the current state of the callback guard feature
getCall(int callleg)
CiscoCall getCall(int callleg)
Returns Cisco call corresponding to the call leg if available in provider domain, otherwise it returns a null. This method can be used to access the call on the monitor initiator and monitor target using the call leg in CiscoTermConnMonitorInititatorInfoEv and CiscoTermConnMonitorTargetInfoEv respectively.
getMediaTerminal(String)
public com.cisco.jtapi.extensions.CiscoMediaTerminal getMediaTerminal(java.lang.String name throws InvalidArgumentException
Returns an instance of the CiscoMediaTerminal class which corresponds to the given name. Each CiscoMediaTerminal has a unique name associated with it, which is assigned to it by the JTAPI implementation. If no CiscoMediaTerminal is available for the given name within the Providers
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-172
OL-16702-01
Chapter 5
domain, this method throws the InvalidArgumentException. This CiscoMediaTerminal is contained in the arrays generated by Provider.getTerminals() and CiscoProvider.getMediaTerminals(). Pre-conditions:
1. 2. 3.
Let CiscoMediaTerminal terminal = this.getMediaTerminal(name); terminal is an element of this.getTerminals(); terminal is an element of this.getMediaTerminals(); Let CiscoMediaTerminal terminal = this.getMediaTerminal(name); terminal is an element of this.getTerminals(); terminal is an element of this.getMediaTerminals(); name - The name of desired CiscoMediaTerminal object.
Post-conditions:
1. 2. 3.
Parameters:
Returns: The CiscoMediaTerminal object associated with the given name. Throws: javax.telephony.InvalidArgumentException - The name provided does not correspond to a name of any CiscoMediaTerminal known to the Provider or within the Providers domain.
getMediaTerminals()
public com.cisco.jtapi.extensions.CiscoMediaTerminal[] getMediaTerminals() throws ResourceUnavailableException
Returns an array of CiscoMediaTerminals associated with the Provider and within the Providers domain. Each CiscoMediaTerminal possesses a unique name, which is assigned to it by the JTAPI implementation. If there are no CiscoMediaTerminals associated with this Provider, then this method returns null. This array is a subset of the array returned by Provider.getTerminals(). Post-conditions:
1. 2. 3.
Let CiscoMediaTerminal[] terminals = this.getMediaTerminals() terminals == null or terminals.length >= 1 if terminals != null, terminals is a subset of this.getTerminals () An array of Terminals in the Providers local domain.
Returns:
Throws: javax.telephony.ResourceUnavailableException - Indicates the number of media terminals present in the Provider is too great to return as a static array.
getVersion()
public java.lang.String getVersion()
Returns the current version of provider running if provider is in service otherwise it will return empty string
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-173
Chapter 5 Extensions
hasSuperproviderChanged()
public boolean hasSuperproviderChanged()
used to register for a particular feature for which application will get Provider events. Applications should pass in the featureID of the softkey. Current supported features are listed in CiscoProvFeatureID interface Throws: javax.telephony.InvalidArgumentException, javax.telephony.PrivilegeViolationException, javax.telephony.InvalidStateException
setCallbackGuardEnabled(boolean)
public void setCallbackGuardEnabled(boolean enabled)
Enables or disables try/catch logic for observer callbacks In order to protect itself from application exceptions in observer callbacks, the Provider normally guards all invocations of application interfaces (e.g. observers) with the following code:
try { observer.callStateChanged ( ... ); } catch ( Throwable t ) { // log the exception here }
This isolates application errors from the JTAPI implementation, allowing easier troubleshooting, since the JTAPI implementation can note the unhandled exception and continue operating. Some errors are considered non-recoverable and will be re-thrown by JTAPI, generally resulting in application exit. Such errors include ThreadDeath, OutOfMemoryError, and StackOverflowError. Applications wishing to trap errors within JTAPI threads should create a subclass of ThreadGroup
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-174
OL-16702-01
Chapter 5
and initialize JTAPI from a thread within that ThreadGroup. By overriding the ThreadGroup.uncaughtException () method, the application can be made aware of all unrecoverable errors thrown on JTAPI threads. In some cases, JTAPI aggressive error-catching approach may make it more difficult to troubleshoot applications within a java debugger. Microsoft Visual J++ version 6.0, for example, does not handle breakpoints within application observer callbacks properly if JTAPI catches Throwable. In such cases, JTAPI application developers may choose to disable the internal JTAPI try/catch logic.
Caution
Disabling callback guards in this manner is only intended for use while troubleshooting applications, and never for use in production environments. By default, callback guards are always enabled. Parameters: enabled - if true, callback guard will be enabled; if false, callback guard will be disabled
unregisterFeature(int)
public void unregisterFeature(int featureID) throws InvalidStateException
used to unregister a particular feature. Provider events for the feature will stop after unregistering the feature Throws: javax.telephony.InvalidStateException
CiscoProviderCapabilities
Declaration
public interface CiscoProviderCapabilities extends javax.telephony.capabilities.ProviderCapabilities
All Superinterfaces
javax.telephony.capabilities.ProviderCapabilities
Description
This interface defines the specific capabilities offered by the Cisco Unified JTAPI implementation. Member Summary
Methods
boolean canMonitor() Returns true if the silent monitoring capability is configured for the user. canRecord() Returns true if the recording capability is configured for the user.
boolean
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-175
Chapter 5 Extensions
Methods
canMonitor()
public boolean canMonitor()
Returns true if the silent monitoring capability is configured for the user.
canRecord()
public boolean canRecord()
Enables a user to be provisioned in the Directory to be able to observe any Terminal (and its addresses) in the system.
CiscoProviderCapabilityChangedEv
Description/Usage
This event is delivered to the provider observer if the capabilities of the JTAPI user changed. The following methods on this interface will indicate if the monitoring or recording capability of the user has changed. Member Summary
Methods
Boolean hasMonitorCapabilityChanged() This interface will return true if the monitoring capability of the provider has changed. hasRecordingCapabilityChanged() This interface will return true if the recording capability of the provider has changed.
Boolean
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-176
OL-16702-01
Chapter 5
Methods
hasMonitorCapabilityChanged()
public boolean hasMonitorCapabilityChanged()
This interface will return true if the monitoring capability of the provider has changed.
hasRecordingCapabilityChanged()
public boolean hasRecordingCapabilityChanged()
This interface will return true if the recording capability of the provider has changed.
CiscoProviderObserver
Declaration
public interface CiscoProviderObserver extends javax.telephony.ProviderObserver
All Superinterfaces
javax.telephony.ProviderObserver
Description
Applications implement this interface in order to receive CiscoProvEv events such as CiscoAddrCreatedEv and CiscoTermCreatedEv when observing a Provider via the Provider.addObserver method.
See Also:
CiscoRecorderInfo
Description/Usage
This interface provides information about the recorder in a recording session. When recording session is active, this interface gives information about the recording device. Member Summary
Methods
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-177
Chapter 5 Extensions
Address
Methods
get CiscoRecorderInfo ()
Returns a CiscoRecorderInfo which exposes the terminal name and address of the recording device.
getTerminalName()
String getTerminalName()
CiscoRegistrationException
Declaration
public class CiscoRegistrationException extends java.lang.Exception java.lang.Object | +--java.lang.Throwable | +--java.lang.Exception | +--com.cisco.jtapi.extensions.CiscoRegistrationException
Description
The CiscoMediaTerminal.register method throws this exception when the registration process fails for any reason. For example, registration would fail if the Provider were OUT_OF_SERVICE or if the device were already registered.
See Also:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-178
OL-16702-01
Chapter 5
Member Summary
Constructors
CiscoRegistrationException() CiscoRegistrationException(String)
Constructors
CiscoRegistrationException()
public CiscoRegistrationException()
CiscoRegistrationException(String)
public CiscoRegistrationException(java.lang.String description)
CiscoRestrictedEv
This is the parent class for the CiscoAddrRestrictedEv and CiscoAddrRestrictedOnTerminalEv events.
Declaration
public interface CiscoRestrictedEv extends CiscoProvEv { public static final int ID = com.cisco.jtapi.CiscoEventID.CiscoRestrictedEv; /** * The following define the cause codes for restricted events */ public final static int CAUSE_USER_RESTRICTED = 1; public final static int CAUSE_UNSUPPORTED_PROTOCOL = 2; }
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-179
Chapter 5 Extensions
Description
This is the base class for restricted events and defines the cause codes for all restricted events. CAUSE_USER_RESTRICTED indicates the terminal or address is marked are restricted. CAUSE_UNSUPPORTED_PROTOCOL indicates that the device in the control list is using a protocol that is not supported by Cisco Unified JTAPI. Existing 7960 and 7940 phones running SIP fall in this category. Member Summary
Fields static int static int Methods
CiscoEventID CiscoRestrictedEv CAUSE_UNKNOWN UNSUPPORTED_DEVICE_CONFIGURATION
CiscoRouteAddress
Declaration
public interface CiscoRouteAddress extends javax.telephony.callcenter.RouteAddress
All Superinterfaces
javax.telephony.Address, javax.telephony.callcenter.RouteAddress
Member Summary
Methods void registerRouteCallback(RouteCallback, boolean)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-180
OL-16702-01
Chapter 5
Methods
registerRouteCallback(RouteCallback, boolean)
public void registerRouteCallback(javax.telephony.callcenter.RouteCallback routeCallback, boolean disableAutoRehoming)throws ResourceUnavailableException, MethodNotSupportedException
CiscoRouteEvent
Declaration
public interface CiscoRouteEvent extends javax.telephony.callcenter.events.RouteEvent
Description/Usage
Applications can use this method to obtain the IP address of the calling party device. The IP address information might not be available for all calling party devices. A return value of 0 indicates that the information is not available. Member Summary
Methods
InetAddress getCallingPartyIpAddr() Returns the IP address of the calling party.
Methods
getCallingPartyIpAddr()
public InetAddress getCallingPartyIpAddr()
Returns the IP address of the calling party. If the IP address is not available, this method returns an InetAddress with the IP address 0.0.0.0 and a null HostName. Printing this object yields a string representation of <Blank>/0.0.0.0.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-181
Chapter 5 Extensions
CiscoRouteSession
Declaration
public interface CiscoRouteSession extends javax.telephony.callcenter.RouteSession
All Superinterfaces
javax.telephony.callcenter.RouteSession
Description
The CiscoRouteSession supports application access to underlying call associated with a RouteSession. Also, various internal ERRORs where endRoute is called internally are exposed to the application, should they wish to handle endRouteEvent() in any special way for these cases.
See Also:
static int
static int
static int
static int
static int
static int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-182
OL-16702-01
Chapter 5
static int
Methods
javax.telephony.Call getCall() Returns the call associated with this RouteSession. selectRoute(String[], int) This method overloads the selectRoute method in the RouteSession interface to allow applications to specify a calling search space to be used when the call is redirected to the route destination. selectRoute(String[], int, String[]) Selects one or more possible destinations for the routing of the Call with modifying calling number. selectRoute(String[], int, String[], int[]) Selects one or more possible destinations for the routing of the Call. selectRoute(String[], int, String[], String[], int[], String[], String[], int) The selectRoute() API is overloaded with an additional parameter featurePriority. selectRoute(String[] routeSelected, int[] callingSpearchSpace, String[] modifyingCallingNumber, String[] preferredOriginalCalledNumber, int[] preferredOriginalCalledOption, String[] facCode, String[] cmcCode, int[] featurePriority) This API is overloaded with calling search space and feature priority as an array of int. It provides the flexibility to applications that can provide different feature priorities and calling search spaces for each route selected.
void
void
void
Connection
void
Fields
CALLINGADDRESS_SEARCH_SPACE
public static final int CALLINGADDRESS_SEARCH_SPACE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-183
Chapter 5 Extensions
This indicates that the redirect should be done using the search space of the calling address.
DEFAULT_SEARCH_SPACE
public static final int DEFAULT_SEARCH_SPACE
This indicates that the redirect should be done using the search space that is the default for the implementation. The default is to use the callers search space.
DONOT_RESET_ORIGINALCALLED
public static final int DONOT_RESET_ORIGINALCALLED
This could be parameter value for PreferredOriginalCalled Option, it specifies not to reset OriginalCalled
ERROR_INVALID_STATE
public static final int ERROR_INVALID_STATE
If an internal InvalidStateException occurred or some preconditions/postconditions were not met during routing endRoute is called with this ERROR_INVALID_STATE error.
ERROR_NO_CALLBACK
public static final int ERROR_NO_CALLBACK
For now, since there is no default route mechanism in place, if there is no callback registered for this application, an endRoute with this error is called.
ERROR_NONE
public static final int ERROR_NONE
ERRORS defined for internal successful endRoute call. Error value set for no error.
ERROR_ROUTESELECT_TIMEOUT
public static final int ERROR_ROUTESELECT_TIMEOUT
Each routeEvent()/reRouteEvent() sent starts a timer for the application to respond with a routeSelect()/ endRoute(). The default value of this timer is 5secs. Should the application not respond within this time, an endRoute is called with this error = ERROR_ROUTESELECT_TIMEOUT
RESET_ORIGINALCALLED
public static final int RESET_ORIGINALCALLED
This could be parameter value for PreferredOriginalCalled Option, it value of preferredOriginalCalledOption is set to this, it will reset OriginalCalled to preferredOriginalCalledNumber
ROUTEADDRESS_SEARCH_SPACE
public static final int ROUTEADDRESS_SEARCH_SPACE
This indicates that the redirect should be done using the search space of the route point address.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-184
OL-16702-01
Chapter 5
Methods
getCall()
public javax.telephony.Call getCall()
Returns the call associated with this RouteSession. Returns: the call associated with this RouteSession
selectRoute(String[], int)
public void selectRoute(java.lang.String[] routeSelected, int callingSearchSpace) throws MethodNotSupportedException
This method overloads the selectRoute method in the RouteSession interface to allow applications to specify a calling search space to be used when the call is redirected to the route destination. The callingSearchSpace parameter may be:
1. 2. 3.
Throws: javax.telephony.MethodNotSupportedException
selectRoute(String[], int, String[])
public void selectRoute(java.lang.String[] routeSelected, int callingSearchSpace, java.lang.String[] modifyingCallingNumber) throws PrivilegeViolationException, MethodNotSupportedException
Selects one or more possible destinations for the routing of the Call with modifying calling number. This method takes an array of string destination telephone address names, modifying calling numbers in priority order. The highest priority destination is the first element in the given array, and routing is attempted with this destination first with the corresponding element of modifying calling number. If modifiedCallingNumber is null for an element, the calling number is not modified, if a call is routed to that particular routeSelected element. Successive given destination addresses are attempted until one is found which does not fail. A RouteUsedEvent event is delivered to the application when a successful routing destination has been selected and the Call has been routed to that destination. Pre-conditions: this.getRouteAddress().getProvider().getState() == Provider.IN_SERVICE this.getState() == RouteSession.ROUTE or RouteSession.RE_ROUTE Post-Conditions this.getRouteAddress().getProvider().getState() == Provider.IN_SERVICE this.getState() == RouteSession.ROUTE_USED if Call was successfully routed. RouteUsedEvent is delivered for this RouteSession if a successful destination was selected. Parameters: routeSelected - A list of possible destinations for the call. Throws: MethodNotSupportedExceptionImpl - Routing is not supported by the implementation. The callingSearchSpace parameter may be: CiscoRouteSession.DEFAULT_SEARCH_SPACE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-185
Chapter 5 Extensions
CiscoRouteSession.CALLINGADDRESS_SEARCH_SPACE CiscoRouteSession.ROUTEADDRESS_SEARCH_SPACE The modifiedCallingNumber may be an array of elements for which application would like to modify the calling number when call reaches routeselected element. javax.telephony.MethodNotSupportedException, javax.telephony.PrivilegeViolationException
selectRoute(String[], int, String[], int[])
public void selectRoute(java.lang.String[] routeSelected, int callingSearchSpace, java.lang.String[] preferredOriginalCalledNumber, int[] preferredOriginalCalledOption) throws PrivilegeViolationException, MethodNotSupportedException
Selects one or more possible destinations for the routing of the Call. This method takes an array of string destination telephone address names, in prioritized order and array of string for PreferredOriginalCalled number. PreferredOriginalCalled number will be selected corresponding to index of destination telephone name Array. If index corresponding to destination array is not found in PreferredOriginalCalled number array then preferredOriginalCalled preferredOriginalCalled will be set to destination. The highest priority destination is the first element in the given array, and routing is attempted with this destination first. Successive given destination addresses are attempted until one is found which does not fail. A RouteUsedEvent event is delivered to the application when a successful routing destination has been selected and the Call has been routed to that destination. Pre-conditions: this.getRouteAddress().getProvider().getState() == Provider.IN_SERVICE this.getState() == RouteSession.ROUTE or RouteSession.RE_ROUTE Post-Conditions this.getRouteAddress().getProvider().getState() == Provider.IN_SERVICE this.getState() == RouteSession.ROUTE_USED if Call was successfully routed. RouteUsedEvent is delivered for this RouteSession if a successful destination was selected. Parameters: routeSelected - A list of possible destinations for the call. preferredOriginalCalledOption - A list of option each corresponding to RouteList, this option specifies whether to set OriginalCalled to preferredOriginalCalledNumber. This takes value CiscoRouteSession.DONOT_RESET_ORIGINALCALLED, CiscoRouteSession.RESET_ORIGINALCALLED. If value is not specified or it is null then, JTAPI will default it to CiscoRouteSession.DONOT_RESET_ORIGINALCALLED Throws: MethodNotSupportedExceptionImpl - Routing is not supported by the implementation. javax.telephony.MethodNotSupportedException, javax.telephony.PrivilegeViolationException
selectRoute(String[], int, String[], String[], int[], String[], String[], int)
Connection selectRoute(String[] routeSelected, int callingSearchSpace, String[] modifyingCallingNumber, String[] preferredOriginalCalledNumber, int[] preferredOriginalCalledOption, String[] facCode, String[] cmcCode, int featurePriority)
This version of the selectRoute() interface is overloaded with the parameter featurePriority. Range of Values:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-186
OL-16702-01
Chapter 5
This API is overloaded with calling search space and feature priority as an array of int. It provides the flexibility to applications that can provide different feature priorities and calling search spaces for each route selected. Calling Search Space Constants:
CiscoRoute.Session.DEFAULT_SEARCH_SPACE CiscoRoute.Session.CALLINGADDRESS_SEARCH_SPACE CiscoRoute.Session.ROUTEADDRESS_SEARCH_SPACE
CiscoRouteTerminal
Declaration
public interface CiscoRouteTerminal extends CiscoTerminal
All Superinterfaces
CiscoObjectContainer, CiscoTerminal, javax.telephony.Terminal
Description
A CiscoRouteTerminal is a special kind of CiscoTerminal that allows applications to terminate RTP media streams. Unlike a CiscoTerminal, a CiscoRouteTerminal does not represent a physical telephony endpoint, which is observable and controllable in a third-party manner. Instead, a CiscoRouteTerminal is a logical telephony endpoint, which may be associated with any application that desires to route calls and also terminate media. Unlike CiscoMediaTerminal, CiscoRouteTerminal can have multiple active calls at the same time. Typically, CiscoRouteTerminals will be used to put callers in queue until an agent is available to service the caller.
Note
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-187
Chapter 5 Extensions
Application registers its media capabilities with this terminal using CiscoRouteTerminal.register method. An application adds an observer that implements CiscoTerminalObserver interface using the Terminal.addObserver method. Application will either registerRouteCallBack on RouteAddress associated with this terminal or addCallObserver on CiscoRouteTerminal.
Applications will receive CiscoMediaOpenLogicalChannelEv for each call and will have to supply ipAddress and port number using setRTPParams method on CiscoTerminalConnection.
Note
For no media termination, all applications written for or prior to CiscoJtapiClient 1.4(x) release need to be modified to register with NO_MEDIA_TERMINATION. Multiple applications can register with same RoutePoint as long as they are registered with same media capabilities and registrationType. All applications if registered with CiscoRouteTerminal.DYNAMIC_MEDIA_REGISTRATION and adds callObserver will receive CiscoMediaOpenLogicalChannelEv but only one application will be able to invoke setRTPParams. CiscoRouteTerminals can also be registered with a delayed close. On an application or CTIManager failure the Cisco Unified Communications Manager persists the CiscoRouteTerminal resource for the duration of the delay. This allows a back-up application to recover the route point and take over the call control for it. Calls that are in an ACCEPTED or CONNECTED state will remain and the back-up application's CallObserver will be delivered existing call notifications.
See Also:
static int
Methods
boolean isRegistered() Returns true only if the CiscoRouteTerminal is registered isRegisteredByThisApp() This method returns true if this application issued a successful registration request. register(CiscoMediaCapability[], int, int) CiscoRouteTerminal must be in CiscoTerminal.UNREGISTERED state and its Provider must be in Provider.IN_SERVICE state
boolean
void
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-188
OL-16702-01
Chapter 5
void
void
Fields
DYNAMIC_MEDIA_REGISTRATION
public static final int DYNAMIC_MEDIA_REGISTRATION
Applications that are interested in media termination need to register with this type and pass in capabilities that it supports in registration request.
NO_MEDIA_REGISTRATION
public static final int NO_MEDIA_REGISTRATION
Applications that are not interested in media termination need to register with this type and pass in null value for CiscoMediaCapability in the registration request.
Methods
isRegistered()
public boolean isRegistered()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-189
Chapter 5 Extensions
This method returns true only if the CiscoRouteTerminal is registered and false otherwise. If RouteTerminal is OutOfService, this returns false and if it is InService, it returns true. For CTIManager failure cases, this is false.
isRegisteredByThisApp()
public boolean isRegisteredByThisApp()
This method returns true if this application issued a successful registration request. This if valid even if device is out of service because of CTIManager failure. This will be set to true until this application unregisters the device.
register(CiscoMediaCapability[], int, int)
public void register(com.cisco.jtapi.extensions.CiscoMediaCapability[] capabilities, int registrationType, int failureCloseDelay) throws CiscoRegistrationException
The CiscoRouteTerminal must be in the CiscoTerminal.UNREGISTERED state and its Provider must be in the Provider.IN_SERVICE state. The successful effect of this method is to register the RouteTerminal. Registers a Terminal with specified CiscoMediaCapabilities and register type.
1. 2.
If registrationType is CiscoRouteTerminal.NO_MEDIA_REGISTRATION, application cannot terminate media and can use route point for call routing purpose. If registration Type is CiscoRouteTerminal.DYNAMIC_MEDIA_REGISTRATION, then application can terminate media and can have multiple active calls. This Indicates that application is interested in supplying ipAddress and port dynamically for each call. Applications registering with this type will receive CiscoMediaOpenLogicalChannelEv for each call and will have to supply ipAddress and port number using setRTPParams method on CiscoTerminalConnection.
indicates the type of RTP encodings that the application is willing to support for this Terminal. If application is not interested in media termination, it may pass in null value
Possible RegistrationTypes:
1. 2.
CiscoRouteTerminal.NO_MEDIA_REGISTRATION CiscoRouteTerminal.DYNAMIC_MEDIA_REGISTRATION
FailureCloseDelay:
1.
Method Post-conditions This method returns successfully when the CiscoRouteTerminal is registered. Parameters: capabilities - the list of RTP encodings supported by this terminal registrationType - CiscoRouteTerminal.DYNAMIC_MEDIA_REGISTRATION or CiscoRouteTerminal.NO_MEDIA_REGISTRATION failureCloseDelay - persistence delay seconds on application or CTIManager failure
register(CiscoMediaCapability[] capabilities, int registrationType, int[] algorithmIDs)
public void register(CiscoMediaCapability[] capabilities, int registrationType, int[] algorithmIDs)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-190
OL-16702-01
Chapter 5
The CiscoRouteTerminal must be in the CiscoTerminal.UNREGISTERED state and its Provider must be in the Provider.IN_SERVICE state. By default media is terminated in non-secure mode. AlgorithmIDs indicates SRTP algorithms that this CTIPort supports. AlgorithmIDs may only be one of CiscoSupportedAlgorithms.
setRTPParams(CiscoRTPHandle, CiscoRTPParams)
public void setRTPParams(com.cisco.jtapi.extensions.CiscoRTPHandle0 rtpHandle, com.cisco.jtapi.extensions.CiscoRTPParams0 rtpParams) throws InvalidStateException, InvalidArgumentException, PrivilegeViolationException
Applications can set ipAddress and RTP Port number to dynamically stream media for a call. In order to do this, applications will have to register MediaTerminal or CiscoRouteTeminal by providing only capabilities. Applications will have to invoke this method upon receiving CiscoCallOpenLogicalChannel on terminalObserver. Applications need to pass in rtpHandle that is received in CiscoCallOpenLogicalChannelEv Throws: javax.telephony.PrivilegeViolationException, javax.telephony.InvalidArgumentException, javax.telephony.InvalidStateException See Also: CiscoRTPParams, CiscoMediaOpenLogicalChannelEv
unregister()
public void unregister() throws CiscoUnregistrationException
The CiscoRouteTerminal must be registered and its Provider must be in the Provider.IN_SERVICE state. The successful effect of this method is to unregister the RouteTerminal. Method Post-conditions This method returns successfully when the MediaTerminal is unregistered. Throws: CiscoUnregistrationException
CiscoRouteUsedEvent
Declaration
public interface CiscoRouteUsedEvent extends javax.telephony.callcenter.events.RouteUsedEvent
All Superinterfaces
javax.telephony.callcenter.events.RouteSessionEvent javax.telephony.callcenter.events.RouteUsedEvent
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-191
Chapter 5 Extensions
Description
The CiscoRouteUsedEvent event interface indicates the RouteSession interface has moved into the RouteSession.ROUTE_USED state and the Call has terminated at a destination as a result of routing by the application. This interface extends the RouteUsedEvent interface and is reported via the RouteCallback interface. Member Summary
Methods int getRouteSelectedIndex()
This method returns an array index of route where the call has been routed.
Methods
getRouteSelectedIndex()
public int getRouteSelectedIndex()
This method returns an array index of route where the call has been routed.
CiscoRTPBitRate
Declaration
public interface CiscoRTPBitRate
Description
The RTPBitRate interface contains constants describing G.723 RTP bit rates. These constants are returned by the CiscoRTPInputProperties.getBitRate method and the CiscoRTPOutputProperties.getBitRate method.
See Also:
CiscoRTPInputProperties.getBitRate(), CiscoRTPOutputProperties.getBitRate()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-192
OL-16702-01
Chapter 5
Member Summary
Fields
static int R5_3 5.3k G.723 bit rate R6_4 6.4k G.723 bit rate
static int
Fields
R5_3
public static final int R5_3
CiscoRTPHandle
Declaration
public interface CiscoRTPHandle
Description
The CiscoRTPHandle is returned in CiscoMediaCallOpenLogicalChannelEv and applications should pass this handle in setRTPParams of CiscoMediaTerminal or CiscoRouteTerminal depending on where CiscoMediaCallOpenLogicalChannelEv is received. Applications can use this object to get call reference using CiscoProvider.getCall(CiscoRTPHandle). However, if there is no callobserver added or there was no callobserver added at the time when CiscoMediaCallOpen LogicalChannelEv is sent, CiscoProvider.getCall(CiscoRTPHandle) may return null method. Member Summary
Methods
int getBitRate() Returns the media bit rate, one of the following constants:
Methods
getHandle()
public int getHandle()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-193
Chapter 5 Extensions
Returns an integer representation of this object, currently the Cisco Unified Communications Manager CallLeg ID of the call. Returns: an integer representation of this object
CiscoRTPInputKeyEv
Declaration
public interface CiscoRTPInputKeyEv
Description
Member Summary
Methods
Cisco MediaEncryptionKeyInfo int getCiscoMediaEncryptionKeyInfo() returns CiscoMediaEncryptionKeyInfo getCiscoMediaSecurityIndicator() returns media security indicator getCallID() returns CiscoCallID object getCiscoRTPHandle() returns CiscoRTPHandle object
CiscoCallID
CiscoRTPHandle
Methods
getCiscoMediaEncryptionKeyInfo()
public interface getCiscoMediaEncryptionKeyInfo()
Returns CiscoMediaEncryptionKeyInfo only if Provider is opened with TLS link and SRTP enabled option is set for the application in the Cisco Unified Communications Manager User Admin pages. Otherwise, it will return null.
getCiscoMediaSecurityIndicator()
public int getCiscoMediaSecurityIndicator()
Returns one of the following constants from CiscoMediaSecurityIndicator: MEDIA_ENCRYPTED_KEYS_AVAILABLE MEDIA_ENCRYPT_USER_NOT_AUTHORIZED MEDIA_ENCRYPTED_KEYS_UNAVAILABLE MEDIA_NOT_ENCRYPTED
getCallID()
CiscoCallID getCallID()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-194
OL-16702-01
Chapter 5
Returns CiscoCallID object if there is already CiscoCall present when this event is sent. If there is no CiscoCall present, then this method will return null.
getCiscoRTPHandle()
CiscoRTPHandle getCiscoRTPHandle()
Returns CiscoRTPHandle object. Applications can get call reference using CiscoProvider.getCall( CiscoRTPHandle ).If there is no callobserver or if there was no callobserver when this event is delivered, then CiscoProvider.getCall( CiscoRTPHandle ) may return null.
CiscoRTPInputProperties
Declaration
public interface CiscoRTPInputProperties
Description
Member Summary
Methods
int getBitRate() Returns the media bit rate, one of the following constants: getEchoCancellation() getLocalAddress() getLocalPort() getPacketSize() getPayloadType() Returns the payload format, one of the following constants:
Methods
getBitRate()
public int getBitRate()
CiscoRTPBitRate.R5_3 CiscoRTPBitRate.R6_4
Returns: payload type
getEchoCancellation()
public boolean getEchoCancellation()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-195
Chapter 5 Extensions
CiscoRTPPayload.NONSTANDARD CiscoRTPPayload.G711ALAW64K CiscoRTPPayload.G711ALAW56K CiscoRTPPayload.G711ULAW64K CiscoRTPPayload.G711ULAW56K CiscoRTPPayload.G722_64K CiscoRTPPayload.G722_56K CiscoRTPPayload.G722_48K CiscoRTPPayload.G7231 CiscoRTPPayload.G728 CiscoRTPPayload.G729 CiscoRTPPayload.G729ANNEXA CiscoRTPPayload.IS11172AUDIOCAP CiscoRTPPayload.IS13818AUDIOCAP CiscoRTPPayload.ACY_G729AASSN CiscoRTPPayload.DATA64 CiscoRTPPayload.DATA56
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-196
OL-16702-01
Chapter 5
CiscoRTPPayload.GSM CiscoRTPPayload.ACTIVEVOICE
CiscoRTPInputStartedEv
Declaration
public interface CiscoRTPInputStartedEv extends CiscoEv
All Superinterfaces
CiscoEv, CiscoTermEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
Member Summary
Fields
static int ID
Methods
CiscoCallID getCallID() returns CiscoCallID getRTPInputProperties() returns CiscoRTPInputProperties getCiscoRTPHandle() returns CiscoRTPHandle object getMediaConnectionMode() returns CiscoMediaConnectionMode
CiscoRTPInputProperties CiscoRTPHandle
int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-197
Chapter 5 Extensions
Fields
ID
public static final int ID
Methods
getCallID()
public com.cisco.jtapi.extensions.CiscoCallID getCallID()
Returns CiscoCallID.
getRTPInputProperties()
public com.cisco.jtapi.extensions.CiscoRTPInputProperties getRTPInputProperties()
Returns CiscoRTPHandle object. Applications can get call reference using CiscoProvider.getCall(CiscoRTPHandle). If there is no callobserver or if there was no callobserver when this event was delivered, then CiscoProvider.getCall(CiscoRTPHandle) may return null.
getMediaConnectionMode()
public int getMediaConnectionMode()
CiscoMediaConnectionMode.RECEIVE_ONLY: Means one-way media receive only. CiscoMediaConnectionMode.TRANSMIT_AND_RECEIVE: Means two-way media.
In general, you should never get an event with mode NONE; however, if that happens Applications should ignore the event and log an error.
CiscoRTPInputStoppedEv
Declaration
public interface CiscoRTPInputStoppedEv extends CiscoTermEv
All Superinterfaces
CiscoEv, CiscoTermEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-198
OL-16702-01
Chapter 5
Description
Member Summary
Fields
static int ID
Methods
CiscoCallID getCallID() returns CiscoCallID getCiscoRTPHandle() returns CiscoRTPHandle object getMediaConnectionMode() returns CiscoMediaConnectionMode
CiscoRTPHandle
int
Fields
ID
public static final int ID
Methods
getCallID()
public com.cisco.jtapi.extensions.CiscoCallID getCallID()
returns CiscoCallID
getCiscoRTPHandle()
CiscoRTPHandle getCiscoRTHandle()
Returns CiscoRTPHandle object. Applications can get call reference using CiscoProvider.getCall(CiscoRTPHandle). If there is no callobserver or if there was no callobserver when this event was delivered, then CiscoProvider.getCall(CiscoRTPHandle) may return null.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-199
Chapter 5 Extensions
getMediaConnectionMode()
public int getMediaConnectionMode()
CiscoMediaConnectionMode.RECEIVE_ONLY : Means one-way media receive only. CiscoMediaConnectionMode.TRANSMIT_AND_RECEIVE: Means two-way media.
In general, you should never get an event with mode NONE; however, if that happens Applications should ignore the event and log an error.
CiscoRTPOutputKeyEv
Declaration
public interface CiscoRTPOutputKeyEv
Description
Member Summary
Methods
Cisco MediaEncryptionKeyInfo int CiscoCallID getCiscoMediaEncryptionKeyInfo() returns CiscoMediaEncryptionKeyInfo getCiscoMediaSecurityIndicator() returns media security indicator getCallID() returns CiscoCallID object getCiscoRTPHandle() returns CiscoRTPHandle object
CiscoRTPHandle
Methods
getCiscoMediaEncryptionKeyInfo()
public interface getCiscoMediaEncryptionKeyInfo()
Returns CiscoMediaEncryptionKeyInfo only if Provider is opened with TLS link and SRTP enabled option is set for the application in the Cisco Unified Communications Manager User Admin pages. Otherwise, it will return null.
getCiscoMediaSecurityIndicator()
public int getCiscoMediaSecurityIndicator()
Returns one of the following constants from CiscoMediaSecurityIndicator: MEDIA_ENCRYPTED_KEYS_AVAILABLE MEDIA_ENCRYPT_USER_NOT_AUTHORIZED MEDIA_ENCRYPTED_KEYS_UNAVAILABLE MEDIA_NOT_ENCRYPTED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-200
OL-16702-01
Chapter 5
getCallID()
CiscoCallID getCallID()
Returns CiscoCallID object if there is already CiscoCall present when this event is sent. If there is no CiscoCall present, then this method will return null.
getCiscoRTPHandle()
CiscoRTPHandle getCiscoRTPHandle()
Returns CiscoRTPHandle object. Applications can get call reference using CiscoProvider.getCall( CiscoRTPHandle ).If there is no callobserver or if there was no callobserver when this event is delivered, then CiscoProvider.getCall( CiscoRTPHandle ) may return null.
CiscoRTPOutputProperties
Declaration
public interface CiscoRTPOutputProperties
Description
Member Summary
Methods
int getBitRate() Returns the media bit rate, one of the following constants: getMaxFramesPerPacket() getPacketSize() getPayloadType() Returns the payload format, one of the following constants: getPrecedenceValue() getRemoteAddress() getRemotePort() getSilenceSuppression()
Methods
getBitRate()
public int getBitRate()
CiscoRTPBitRate.R5_3 CiscoRTPBitRate.R6_4
Returns payload type
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-201
Chapter 5 Extensions
getMaxFramesPerPacket()
public int getMaxFramesPerPacket()
CiscoRTPPayload.NONSTANDARD CiscoRTPPayload.G711ALAW64K CiscoRTPPayload.G711ALAW56K CiscoRTPPayload.G711ULAW64K CiscoRTPPayload.G711ULAW56K CiscoRTPPayload.G722_64K CiscoRTPPayload.G722_56K CiscoRTPPayload.G722_48K CiscoRTPPayload.G7231 CiscoRTPPayload.G728 CiscoRTPPayload.G729 CiscoRTPPayload.G729ANNEXA CiscoRTPPayload.IS11172AUDIOCAP CiscoRTPPayload.IS13818AUDIOCAP CiscoRTPPayload.ACY_G729AASSN CiscoRTPPayload.DATA64 CiscoRTPPayload.DATA56 CiscoRTPPayload.GSM CiscoRTPPayload.ACTIVEVOICE
Returns payload type
getPrecedenceValue()
public int getPrecedenceValue()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-202
OL-16702-01
Chapter 5
CiscoRTPOutputStartedEv
Declaration
public interface CiscoRTPOutputStartedEv extends CiscoTermEv
All Superinterfaces
CiscoEv, CiscoTermEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
Member Summary
Fields
static int ID
Methods
CiscoCallID getCallID() returns CiscoCallID getRTPOutputProperties() getCiscoRTPHandle() returns CiscoRTPHandle object getMediaConnectionMode() returns CiscoMediaConnectionMode
CiscoRTPOutputProperties CiscoRTPHandle
int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-203
Chapter 5 Extensions
Fields
ID
public static final int ID
Methods
getCallID()
public com.cisco.jtapi.extensions.CiscoCallID getCallID()
Returns CiscoCallID.
getRTPOutputProperties()
public com.cisco.jtapi.extensions.CiscoRTPOutputProperties getRTPOutputProperties()
Returns CiscoRTPHandle object. Applications can get call reference using CiscoProvider.getCall(CiscoRTPHandle). If there is no callobserver or if there was no callobserver when this event was delivered, then CiscoProvider.getCall(CiscoRTPHandle) may return null.
getMediaConnectionMode()
public int getMediaConnectionMode()
CiscoMediaConnectionMode.TRANSMIT_ONLY: Means one-way media transmit only. CiscoMediaConnectionMode.TRANSMIT_AND_RECEIVE: Means two-way media.
In general, you should never get an event with mode NONE; however, if that happens Applications should ignore the event and log an error.
CiscoRTPOutputStoppedEv
Declaration
public interface CiscoRTPOutputStoppedEv extends CiscoTermEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-204
OL-16702-01
Chapter 5
All Superinterfaces
CiscoEv, CiscoTermEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
Member Summary
Fields
static int ID
Methods
CiscoCallID getCallID() returns CiscoCallID getCiscoRTPHandle() returns CiscoRTPHandle object getMediaConnectionMode() returns CiscoMediaConnectionMode
CiscoRTPHandle
int
Fields
ID
public static final int ID
Methods
getCallID()
public com.cisco.jtapi.extensions.CiscoCallID getCallID()
returns CiscoCallID
getCiscoRTPHandle()
CiscoRTPHandle getCiscoRTHandle()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-205
Chapter 5 Extensions
Returns CiscoRTPHandle object. Applications can get call reference using CiscoProvider.getCall(CiscoRTPHandle). If there is no callobserver or if there was no callobserver when this event was delivered, then CiscoProvider.getCall(CiscoRTPHandle) may return null.
getMediaConnectionMode()
public int getMediaConnectionMode()
CiscoMediaConnectionMode.TRANSMIT_ONLY: Means one-way media transmit only. CiscoMediaConnectionMode.TRANSMIT_AND_RECEIVE: Means two-way media.
In general, you should never get an event with mode NONE; however, if that happens Applications should ignore the event and log an error.
CiscoRTPParams
Declaration
public class CiscoRTPParams java.lang.Object | +--com.cisco.jtapi.extensions.CiscoRTPParams
Member Summary
Constructors
CiscoRTPParams(InetAddress, int)
Methods
java.net.InetAddress java.lang.String byte[] int java.lang.String getRTPAddress() getRTPAddressHostName() getRTPByteAddress() getRTPPort() toString()
Constructors
CiscoRTPParams(InetAddress, int)
public CiscoRTPParams(java.net.InetAddress rtpAddress, int rtpPort)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-206
OL-16702-01
Chapter 5
Methods
getRTPAddress()
public java.net.InetAddress getRTPAddress()
getRTPAddressHostName()
public java.lang.String getRTPAddressHostName()
getRTPByteAddress()
public byte[] getRTPByteAddress()
getRTPPort()
public int getRTPPort()
toString()
public java.lang.String toString()
CiscoRTPPayload
Declaration
public interface CiscoRTPPayload
Description
The RTPPayload interface contains constants describing RTP formats. These constants are returned by the CiscoRTPInputProperties.getPayloadType method and the CiscoRTPOutputProperties.getPayloadType method.
See Also:
CiscoRTPInputProperties.getPayloadType(), CiscoRTPOutputProperties.getPayloadType()
Member Summary
Fields
static int ACTIVEVOICE ACTIVEVOICE payload ACY_G729AASSN ACY_G729AASSN payload DATA56 DATA56 payload DATA64 DATA64 payload
static int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-207
Chapter 5 Extensions
static int
static int
static int
static int
Fields
ACTIVEVOICE
public static final int ACTIVEVOICE
ACTIVEVOICE payload
ACY_G729AASSN
public static final int ACY_G729AASSN
ACY_G729AASSN payload
DATA56
public static final int DATA56
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-208
OL-16702-01
Chapter 5
DATA56 payload
DATA64
public static final int DATA64
DATA64 payload
G711ALAW56K
public static final int G711ALAW56K
G.723.1 payload
G728
public static final int G728
G.728 payload
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-209
Chapter 5 Extensions
G729
public static final int G729
G.729 payload
G729ANNEXA
public static final int G729ANNEXA
G.729a payload
GSM
public static final int GSM
GSM payload
IS11172AUDIOCAP
public static final int IS11172AUDIOCAP
IS11172AUDIOCAP payload
IS13818AUDIOCAP
public static final int IS13818AUDIOCAP
IS13818AUDIOCAP payload
NONSTANDARD
public static final int NONSTANDARD
Wide_Band_256k payload
CiscoSynchronousObserver
Declaration
public interface CiscoSynchronousObserver
Description
The Cisco Unified JTAPI implementation is designed to allow applications to invoke blocking JTAPI methods such as Call.connect() and TerminalConnection.answer() from within their observer callbacks. This means that applications are not subject to the restrictions imposed by the JTAPI specification, which cautions applications against using JTAPI methods from within observer callbacks. Normally, when an application adds a new observer to a JTAPI object, the Cisco Unified JTAPI implementation creates an event queue and an accompanying worker thread to service the new observer. If the same observer is added to another object, its queue and thread are reused; in effect, every unique observer object has a single queue and worker thread. As noted, the advantage of this arrangement is that
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-210
OL-16702-01
Chapter 5
an application may invoke blocking JTAPI methods from within its observer callback. A subtle disadvantage, however, is that accessor methods such as Call.getConnections() and Connection.getState() may not return results that are consistent with events when invoked from within the observer callback. For example, suppose that an application creates and connects a call from address A to address B. If the application is observing address A, it might reasonably expect that when it receives the CallActiveEv, the state of the call will be Call.ACTIVE. This is not necessarily so, since the worker thread delivering events to the application is decoupled from the internal JTAPI thread that is updating object states. In fact, if B rejects the call from A, the call object might be in either the Call.ACTIVE state or the Call.INVALID state, depending on the exact moment at which the worker thread delivers the CallActiveEv. Many applications will not be adversely affected by this asynchronous behavior. Applications that would benefit from a coherent call model during observer callbacks, however, can selectively disable the queueing logic of the Cisco Unified JTAPI implementation. By implementing the CiscoSynchronousObserver interface on its observer objects, an application declares that it wishes events to be delivered synchronously to its observers. Events delivered to synchronous observers will match the states of the call model objects queried from within the observer callback.
Usage Notes
Objects that implement the CiscoSynchronousObserver interface are strictly forbidden from invoking blocking JTAPI methods from within their event callbacks. The consequences of doing so are unpredictable, and may include deadlocking the JTAPI implementation. On the other hand, they may safely use the accessor methods of any JTAPI object, for instance Call.getConnections() or Connection.getState().
CiscoTermActivatedEv
Declaration
public interface CiscoTermActivatedEv extends CiscoRestrictedEv
All Superinterfaces
CiscoEv, CiscoProvEv, CiscoRestrictedEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
If a terminal is monitored and the restriction status is changed to active, this event is sent to the application. Member Summary
Methods
javax.telephony.Terminal getTerminal() Returns the terminal which is activated and removed from the restricted list.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-211
Chapter 5 Extensions
Methods
getTerminal()
public javax.telephony.Terminal getTerminal()
CiscoTermButtonPressedEv
Declaration
public interface CiscoTermButtonPressedEv extends CiscoTermEv
All Superinterfaces
CiscoEv, CiscoTermEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
CiscoTermButtonPressedEv event is delivered on a TerminalObserver when a button is pressed on the Terminal. In order to receive these events an application must also enable the flag for these events in the CiscoTermEvFilter. The button pressed events responds only to the numeric keypad button presses on the Terminal as listed in the constants in this interface (such as 0-9, *, #, A, B, C, D). Member Summary
Fields
static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int static int CHARA CHARB CHARC CHARD EIGHT FIVE FOUR ID NINE ONE POUND SEVEN SIX STAR THREE TWO ZERO
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-212
OL-16702-01
Chapter 5
Fields
CHARA
public static final int CHARA
CHARB
public static final int CHARB
CHARC
public static final int CHARC
CHARD
public static final int CHARD
EIGHT
public static final int EIGHT
FIVE
public static final int FIVE
FOUR
public static final int FOUR
ID
public static final int ID
NINE
public static final int NINE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-213
Chapter 5 Extensions
ONE
public static final int ONE
POUND
public static final int POUND
SEVEN
public static final int SEVEN
SIX
public static final int SIX
STAR
public static final int STAR
THREE
public static final int THREE
TWO
public static final int TWO
ZERO
public static final int ZERO
Methods
getButtonPressed()
public int getButtonPressed()
CiscoTermConnPrivacyChangedEv
Declaration
public interface CiscoTermConnPrivacyChangeEv
Description
This event is sent when Privacy status of TeminalConnection changes during CallProgress. If privacy is on, you cannot Barge into the Call and vice versa. The CiscoTermConnPrivacyChangedEv event Member Summary
Fields
static int ID
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-214
OL-16702-01
Chapter 5
Fields
ID
public static final int ID
Methods
getTerminalConnection()
public javax.telephony.TerminalConnection getTerminalConnection ()
CiscoTermConnSelectChangedEv
Declaration
com.cisco.jtapi.extensions.CiscoTermConnSelectChangeEv
Description
This event is sent when the call is selected either by feature or manually. Once the application receives the event, the application can use TerminalConnection.getSelectStatus() to get proper call select status. The CiscoTermConnSelectChangedEv event Member Summary
Methods
int TerminalConnection.getSelectStatus () returns the select status of the call.
Methods
TerminalConnection.getSelectStatus()
getSelectStatus()
CiscoTerminalConnection. CISCO_SELECTEDNONE The select status means that the call is not selected. CiscoTerminalConnection. CISCO_ SELECTEDLOCAL The select status means that the call is selected on the terminal connection CiscoTerminalConnection. CISCO_ SELECTEDREMOTE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-215
Chapter 5 Extensions
CiscoTermConnMonitorInitiatorInfoEv
Description/Usage
The interface exposes monitor initiator information and is delivered to call observer of monitor target. The following methods are defined on this interface. Member Summary
Methods
CiscoMonitorInitiatorInfo getCiscoMonitorInitiatorInfo() Returns CiscoMonitorInitiatorInfo which lists the terminal name and address of the monitor initiator.
Methods
getCiscoMonitorInitiatorInfo()
CiscoMonitorInitiatorInfo getCiscoMonitorInitiatorInfo()
Returns CiscoMonitorInitiatorInfo which lists the terminal name and address of the monitor initiator.
CiscoTermConnMonitorTargetInfoEv
Description/Usage
Member Summary
Methods
CiscoMonitorInitiatorInfo getCiscoMonitorTargetInfo() Returns CiscoMonitorInitiatorInfo, which exposes the terminal name and address of the monitor target.
The interface exposes monitor target information and is delivered to the call observer of the monitor initiator.
Methods
getCiscoMonitorTargetInfo()
Returns CiscoMonitorInitiatorInfo, which exposes the terminal name and address of the monitor target.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-216
OL-16702-01
Chapter 5
CiscoTermConnRecordingEndEv
Declaration
public interface CiscoTermConnRecordingEndEv extends javax.telephony.events.TermConnEv
All Superinterfaces:
javax.telephony.events.CallEv, javax.telephony.events.Ev, javax.telephony.events.TermConnEv
Description
The JTAPI delivers CiscoTermConnRecordingEndEv to the call observer when call recording stops.
Fields
static int ID
Inherited Fields
Fields inherited from interface javax.telephony.events.Ev are CAUSE_CALL_CANCELLED, CAUSE_DEST_NOT_OBTAINABLE, CAUSE_INCOMPATIBLE_DESTINATION, CAUSE_LOCKOUT, CAUSE_NETWORK_CONGESTION, CAUSE_NETWORK_NOT_OBTAINABLE, CAUSE_NEW_CALL, CAUSE_NORMAL, CAUSE_RESOURCES_NOT_AVAILABLE, CAUSE_SNAPSHOT, CAUSE_UNKNOWN, META_CALL_ADDITIONAL_PARTY, META_CALL_ENDING, META_CALL_MERGING, META_CALL_PROGRESS, META_CALL_REMOVING_PARTY, META_CALL_STARTING, META_CALL_TRANSFERRING, META_SNAPSHOT, META_UNKNOWN.
Inherited Methods
The method inherited from interface javax.telephony.events.TermConnEv is getTerminalConnection. The method inherited from interface javax.telephony.events.CallEv is getCall. The methods inherited from interface javax.telephony.events.Ev are getCause, getID, getMetaCode, getObserved, and isNewMetaEvent.
See Also
CiscoTermConnRecordingStartEv
Declaration
public interface CiscoTermConnRecordingStartEv extends javax.telephony.events.TermConnEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-217
Chapter 5 Extensions
All Superinterfaces
javax.telephony.events.CallEv, javax.telephony.events.Ev, javax.telephony.events.TermConnEv
Description
The JTAPI delivers CiscoTermConnRecordingStartEv to the call observer when call recording starts.
Inherited Fields
Fields inherited from interface javax.telephony.events.Ev are CAUSE_CALL_CANCELLED, CAUSE_DEST_NOT_OBTAINABLE, CAUSE_INCOMPATIBLE_DESTINATION, CAUSE_LOCKOUT, CAUSE_NETWORK_CONGESTION, CAUSE_NETWORK_NOT_OBTAINABLE, CAUSE_NEW_CALL, CAUSE_NORMAL, CAUSE_RESOURCES_NOT_AVAILABLE, CAUSE_SNAPSHOT, CAUSE_UNKNOWN, META_CALL_ADDITIONAL_PARTY, META_CALL_ENDING, META_CALL_MERGING, META_CALL_PROGRESS, META_CALL_REMOVING_PARTY, META_CALL_STARTING, META_CALL_TRANSFERRING, META_SNAPSHOT, META_UNKNOWN
Inherited Methods
The method inherited from interface javax.telephony.events.TermConnEv is getTerminalConnection. The method inherited from interface javax.telephony.events.CallEv is getCall. The methods inherited from interface javax.telephony.events.Ev are getCause, getID, getMetaCode, getObserved, and isNewMetaEvent.
Fields
static final int ID
See Also
CiscoTermConnRecordingTargetInfoEv
Description/Usage
The interface provides the recording device information to JTAPI and is delivered to the call observer of the recording requestor. Member Summary
Methods
CiscoRecorderInfo getCiscoRecorderInfo() Returns CiscoRecorderInfo which provides the terminal name and address of the recording device.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-218
OL-16702-01
Chapter 5
Methods
getCiscoRecorderInfo()
CiscoRecorderInfo getCiscoRecorderInfo()
Returns CiscoRecorderInfo, which provides the terminal name and address of the recording device.
CiscoTermCreatedEv
Declaration
public interface CiscoTermCreatedEv extends CiscoProvEv
All Superinterfaces
CiscoEv, CiscoProvEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
The CiscoTermCreatedEv event is sent when a terminal is created. Member Summary
Fields
static int ID
Methods
getTerminal() javax.telephony.Terminal
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-219
Chapter 5 Extensions
Fields
ID
public static final int ID
Methods
getTerminal()
public javax.telephony.Terminal getTerminal()
CiscoTermDataEv
Declaration
public interface CiscoTermDataEv extends CiscoTermEv
All Superinterfaces
CiscoEv, CiscoTermEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
The CiscoTermDataEv event is sent to the application if the terminal has data available. Member Summary
Fields
static int ID
Methods
java.lang.String byte[] getData() getTermData()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-220
OL-16702-01
Chapter 5
Fields
ID
public static final int ID
Methods
getData()
public java.lang.String getData()
CiscoTermDeviceStateActiveEv
Declaration
public interface CiscoTermDeviceStateActiveEV extends com.cisco.jtapi.extensions.CiscoTermEv
All Super-Interfaces
CiscoTermEv, CiscoEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
The CiscoTermDeviceStateActiveEv is sent to the application if any of the addresses on the terminal have an outgoing call (in CTI State Dialtone, Dialing, Proceeding, Ringback, or Connected) or an incoming call (in CTI State Connected). Member Summary
Methods
int void boolean getDeviceState() setDeviceStateActiveEvFilter(boolean filterValue) getDeviceStateActiveEvFilter()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-221
Chapter 5 Extensions
Methods
getDeviceState()
public int getDeviceState()
Returns the DeviceState of the terminal, which can be one of the following constants:
CiscoTerminal.DEVICESTATE_IDLE CiscoTerminal.DEVICESTATE_ACTIVE CiscoTerminal.DEVICESTATE_ALERTING CicsoTerminal.DEVICESTATE_HELD CiscoTerminal.DEVICESTATE_UNKNOWN
DeviceState is the cumulative call state of all the addresses on the terminal. CiscoTerminal.DEVICESTATE_UNKNOWN is returned if CicsoTermEvFilter is not enabled for DeviceState events or if the terminal is OUTOFSERVICE.
setDeviceStateActiveEvFilter(boolean filterValue)
public void setDeviceStateActiveEvFilter(boolean filterValue)
Enables and disables the CiscoTermDeviceStateActiveEv filter for the terminal. The default value is Disable.
getDeviceStateActiveEvFilter()
public boolean getDeviceStateActiveEvFilter()
CiscoTermDeviceStateAlertingEv
Declaration
public interface CiscoTermDeviceStateAlertingEv extends com.cisco.jtapi.extensions.CiscoTermEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-222
OL-16702-01
Chapter 5
All Super-Interfaces
CiscoTermEv, CiscoEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
The CiscoDeviceAlertingEv event is sent to the application if none of the address on the terminal have an outgoing call (in CTI state Dialing, Dialtone, Proceeding, Ringback, or Connected) or an incoming call (in CTI state Offering, Accepted, or Ringing). Member Summary
Methods
int void boolean getDeviceState() setDeviceStateAlertingEvFilter(boolean filterValue) getDeviceStateAlertingEvFilter()
Methods
getDeviceState()
public int getDeviceState()
Returns the DeviceState of the terminal, which can be one of the following constants:
CiscoTerminal.DEVICESTATE_IDLE CiscoTerminal.DEVICESTATE_ACTIVE CiscoTerminal.DEVICESTATE_ALERTING CicsoTerminal.DEVICESTATE_HELD CiscoTerminal.DEVICESTATE_UNKNOWN
DeviceState is the cumulative call state of all the addresses on the terminal. CiscoTerminal.DEVICESTATE_UNKNOWN is returned if CicsoTermEvFilter is not enabled for DeviceState events or if the terminal is OUTOFSERVICE.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-223
Chapter 5 Extensions
setDeviceStateAlertingEvFilter(boolean filterValue)
public void setDeviceStateAlertingEvFilter(boolean filterValue)
Enables and disables the CiscoTermDeviceStateAlertingEv filter for the terminal. The default value is Disable.
getDeviceStateAlertingEvFilter()
public boolean getDeviceStateAlertingEvFilter()
CiscoTermDeviceStateHeldEv
Declaration
public interface CiscoTermDeviceStateHeldEv extends com.cisco.jtapi.extensions.CiscoTermEv
All Super-Interfaces
CiscoTermEv, CiscoEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
The CiscoTermDeviceStateHeldEv is sent to the application if all the calls on any of the address on the terminal are HELD (in CTI State OnHold). Member Summary
Methods
int void boolean getDeviceState() setDeviceStateHeldEvFilter(boolean filterValue) getDeviceStateHeldEvFilter()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-224
OL-16702-01
Chapter 5
Methods
getDeviceState()
public int getDeviceState()
Returns the DeviceState of the terminal, which can be one of the following constants:
CiscoTerminal.DEVICESTATE_IDLE CiscoTerminal.DEVICESTATE_ACTIVE CiscoTerminal.DEVICESTATE_ALERTING CicsoTerminal.DEVICESTATE_HELD CiscoTerminal.DEVICESTATE_UNKNOWN
DeviceState is the cumulative call state of all the addresses on the terminal. CiscoTerminal.DEVICESTATE_UNKNOWN is returned if CicsoTermEvFilter is not enabled for DeviceState events or if the terminal is OUTOFSERVICE.
setDeviceStateHeldEvFilter(boolean filterValue)
public void setDeviceStateHeldEvFilter(boolean filterValue)
Enables and disables the CiscoTermDeviceStateHeldEv filter for the terminal. The default value is Disable.
getDeviceStateHeldEvFilter()
public boolean getDeviceStateHeldEvFilter()
CiscoTermDeviceStateIdleEv
Declaration
public interface CiscoTermDeviceStateIdleEv extends com.cisco.jtapi.extensions.CiscoTermEv
All Superinterfaces
CiscoEv, CiscoTermEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
The CiscoTermDeviceStateIdleEv event is sent to the application if there is no call on any of the addresses on the terminal. Member Summary
Methods
int void boolean getDeviceState() setDeviceStateIdleEvFilter(boolean filterValue) getDeviceStateIdleEvFilter()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-225
Chapter 5 Extensions
Methods
getDeviceState()
public int getDeviceState()
Returns the DeviceState of the terminal, which can be one of the following constants:
CiscoTerminal.DEVICESTATE_IDLE CiscoTerminal.DEVICESTATE_ACTIVE CiscoTerminal.DEVICESTATE_ALERTING CicsoTerminal.DEVICESTATE_HELD CiscoTerminal.DEVICESTATE_UNKNOWN
DeviceState is the cumulative call state of all the addresses on the terminal. CiscoTerminal.DEVICESTATE_UNKNOWN is returned if CicsoTermEvFilter is not enabled for DeviceState events or if the terminal is OUTOFSERVICE.
setDeviceStateIdleEvFilter(boolean filterValue)
public void setDeviceStateIdleEvFilter (boolean filterValue)
Enables and disables the CiscoTermDeviceStateIdleEv filter for the terminal. The default value is Disable.
getDeviceStateIdleEvFilter()
public boolean getDeviceStateIdleEvFilter()
CiscoTermDeviceStateWhisperEv
Declaration
public interface CiscoTermDeviceStateWhisperEv extends CiscoTermEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-226
OL-16702-01
Chapter 5
Description/Usage
This event is provided if any of the Addresses on the Terminal is an intercom target and has an intercom call where the TerminalConnection or CallCtlTerminalConneciton state is Passive or Bridged. In this state the user can initiate new outgoing calls and receive new incoming calls. Field Summary
Fields
static int ID
CiscoTermDNDStatusChangedEv
Declaration
public interface CiscoTermDNDStatusChangedEv extends CiscoTermEv
Description
This event is delivered to the terminal observer if the DND status changes. This event is deliverd only if the filter to receive events is enabled by the application. This event is provided on the applciations observer. Member Summary
Methods
boolean getDNDStatus() This interface returns the current DND status to the application. getDNDOptionChangedEvFilter This interface returns the status of the filter to the application. Default value returned is false. setDNDOptionChangedEvFilter(Boolean filter value) (Boolean filter value) This interface sets the status of the filter.
boolean
void
Methods
getDNDStatus()
public boolean getDNDStatus()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-227
Chapter 5 Extensions
CiscoTermDNDOptionChangedEv
Description
This event is delivered to the terminal observer if DND option is changed. This event is delivered only if the filter to receive events is enabled by the application.
All Superinterfaces
CiscoEv, CiscoTermEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Declaration
public interface CiscoTermDNDOptionChangedEv extends CiscoTermEv See also CiscoTermEv.
Field Summary
Field static int Description ID
Inherited Fields
From Interface javax.telephony.events.Ev
CAUSE_CALL_CANCELLED, CAUSE_DEST_NOT_OBTAINABLE, CAUSE_INCOMPATIBLE_DESTINATION, CAUSE_LOCKOUT, CAUSE_NETWORK_CONGESTION, CAUSE_NETWORK_NOT_OBTAINABLE, CAUSE_NEW_CALL, CAUSE_NORMAL, CAUSE_RESOURCES_NOT_AVAILABLE, CAUSE_SNAPSHOT, CAUSE_UNKNOWN, META_CALL_ADDITIONAL_PARTY, META_CALL_ENDING, META_CALL_MERGING, META_CALL_PROGRESS, META_CALL_REMOVING_PARTY, META_CALL_STARTING, META_CALL_TRANSFERRING, META_SNAPSHOT, META_UNKNOWN
From Interface javax.telephony.events.Ev
CAUSE_CALL_CANCELLED, CAUSE_DEST_NOT_OBTAINABLE, CAUSE_INCOMPATIBLE_DESTINATION, CAUSE_LOCKOUT, CAUSE_NETWORK_CONGESTION, CAUSE_NETWORK_NOT_OBTAINABLE, CAUSE_NEW_CALL, CAUSE_NORMAL, CAUSE_RESOURCES_NOT_AVAILABLE, CAUSE_SNAPSHOT, CAUSE_UNKNOWN, META_CALL_ADDITIONAL_PARTY, META_CALL_ENDING, META_CALL_MERGING, META_CALL_PROGRESS, META_CALL_REMOVING_PARTY, META_CALL_STARTING, META_CALL_TRANSFERRING, META_SNAPSHOT, META_UNKNOWN
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-228
OL-16702-01
Chapter 5
Method Summary
Interface int Method getDNDOption() Description This interface returns an integer value, the current DND option to the application. The constants are defined in CiscoTerminal.
Inherited Methods
From Interface javax.telephony.events.Ev
getTerminal
From Interface javax.telephony.events.Ev
CiscoTermEv
Declaration
public interface CiscoTermEv extends CiscoEv, javax.telephony.events.TermEv
All Superinterfaces
CiscoEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
The CiscoTermEv interface, which extends JTAPIs core javax.telephony.events.TermEv interface, serves as the base interface for all Cisco-extended JTAPI events. Every Call-related event in this package extends this interface, directly or indirectly.
See Also:
javax.telephony.events.CallEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-229
Chapter 5 Extensions
CiscoTermEvFilter
Declaration
public interface CiscoTermEvFilter
Description
An application can use the CiscoTermEvFilter interface to selectively restrict those Terminal events that is not of interest to it. Member Summary
Methods
boolean getButtonPressedEnabled() get the enable / disable status of the button pressed events for the Terminal, default value is disabled. getDeviceDataEnabled() get the enable / disable status of the device data events for the Terminal, default value is disabled. getRTPEventsEnabled() get the enable / disable status of the RTP events for the Terminal, default value is disabled getRTPKeyEvEnabled() get the enable/disable status of CiscoRTPInputKeyEv and CiscoRTPOutputKeyEv getSnapshotEnabled() get the enable/status of CiscoTermSnapshotEv and CiscoTermSnapshotCompletedEv for the Terminal getDeviceStateWhisperEvFilter() This interface returns true if CiscoTermDeviceStateWhisperEv filter is enabled, otherwise it will return false.
boolean
boolean
boolean
boolean
boolean
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-230
OL-16702-01
Chapter 5
void
void
void
void
void
void
void
boolean
void
Methods
getButtonPressedEnabled()
public boolean getButtonPressedEnabled()
get the enable / disable status of the button pressed events for the Terminal, default value is disabled. Returns: the button pressed events enabled status on the Terminal
getDeviceDataEnabled()
public boolean getDeviceDataEnabled()
get the enable / disable status of the device data events for the Terminal, default value is disabled. Returns: the device data events status on the Terminal
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-231
Chapter 5 Extensions
getDNDOptionChangedEvFilter()
boolean getDNDOptionChangedEvfilter()
invokes the interface to know the status of the filter. Returns: the default value of false.
getRTPEventsEnabled()
public boolean getRTPEventsEnabled()
get the enable / disable status of the RTP events for the Terminal, default value is disabled Returns: the RTP events enabled status on the Terminal
getRTPKeyEvEnabled()
public boolean getRTPKeyEvEnabled()
This interface returns true if CiscoTermDeviceStateWhisperEv filter is enabled, otherwise it will return false. Range of Values: True or False
getDNDOptionChangedEvFilter()
public boolean getDNDOptionChangedEvFilter
Application uses this interface to get the status of the filter. Default value is false. Range of Values: True or False Default Value: False
setButtonPressedEnabled(boolean)
public void setButtonPressedEnabled(boolean enabled)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-232
OL-16702-01
Chapter 5
enable / disable the device data status events for the Terminal
setDeviceStateWhisperEvFilter (boolean filterValue)
public void setDeviceStateWhisperEvFilter (boolean filterValue)
Used for enabling/disabling the CiscoTermDeviceStateWhisperEv filter. Range of Values: Enable or Disable Default Value: Disable
setDNDChangedEvFilter(boolean filter value)
public void set DNDChangedEvFilter(boolean filterValue)
Set the status of the filter. The default is false (disabled). It takes a Boolean value as the parameter.
setRTPEventsEnabled(boolean)
public void setRTPEventsEnabled(boolean enabled)
Sets the enabled or disabled status of CiscoTermSnapshotEv. If the value is disabled, CiscoTermSnapshotEv and CiscoTermSnapshotCompletedEv are not sent to applications.
Range of Values
CiscoTerminalProtocol
public interface CiscoTerminalProtocol
Description
The CiscoTerminalProtocol event is a container for the constants that define protocol types.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-233
Chapter 5 Extensions
Fields
Fields static int PROTOCOL_NONE This constant value returned by the getProtocol() interface on CiscoTerminal indicates that the protocol type for the CiscoTerminal is not known or not available. This constant value returned by the getProtocol() interface on CiscoTerminal indicates that the protocol type for the CiscoTerminal is SCCP. This constant value returned by the getProtocol() interface on CiscoTerminal indicates that the protocol type for the CiscoTerminal is SIP.
static int
PROTOCOL_SCCP
static int
PROTOCOL_SIP
See Also
CiscoTone
Declaration
public interface CiscoTone The CiscoTone interface defines CTI Tone constant codes. CiscoToneChangedEv provides the getTone() method to return one of these constants. Only the ZIPZIP tone type is exposed to applications.
Fields
static int: ZIPZIP This interface defines the integer value for the ZIPZIP tone.The CiscoToneChangedEv.getTone() interface returns an integer value for tone. See Also CiscoToneChangedEv, Constant Field Values
CiscoTermRestrictedEv
Declaration
public interface CiscoTermRestrictedEv extends CiscoRestrictedEv
All Superinterfaces
CiscoEv, CiscoProvEv, CiscoRestrictedEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-234
OL-16702-01
Chapter 5
Description
Applications will see this event when a Device is added into the restricted list from the Cisco Unified Communications Manager Admin pages after the application comes up. Applications will not be able to see events for restricted terminals or addresses on those terminals. If a terminal is restricted when it is in the InService state, then applications will get this event and the terminal and corresponding addresses will move to the OutofService state. Member Summary
Methods
javax.telephony.Terminal getTerminal() Returns the terminal which is restricted and is added to the restricted list.
Methods
getTerminal()
public javax.telephony.Terminal getTerminal()
CiscoTermSnapshotEv
Declaration
public interface CiscoTermSnapshotEv
Description
If an application comes up after a call is established between two end points, for mid-call monitoring the application needs to query Terminal.createSnapshot(). The snapshot event, CiscoTermSnapshotEv, is sent which indicates whether the current media between the endpoints is secure or not. Applications could also query CiscoMediaCallSecurityIndicator to get the security indicator for a call; however, this does not contain any KeyMaterial in the event. If there are no calls on any of the lines on the Terminal, applications will only get CiscoTermSnapshotCompletedEv. In order to maintain backward compatibility, these events are generated only when the application enables the snapShotRTPEnabled filter in CiscoTermEvFilter. Member Summary
CiscoMediaCall MediaSecurityIndicator[] getMediaCallSecurityIndicator() returns media security status for each active call on this device
Methods
getMediaCallSecurityIndicator()
CiscoMediaCallMediaSecurityIndicator[] getMediaCallSecurityIndicator()
Returns media security status for each active call on this device.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-235
Chapter 5 Extensions
CiscoTermSnapshotCompletedEv
Declaration
public interface CiscoTermSnapshotCompletedEv
Description
If an application comes up after a call is established between two end points, for mid-call monitoring the application needs to query Terminal.createSnapshot(). If there are no calls on any of the lines on the Terminal, applications will get CiscoTermSnapshotCompletedEv. In order to maintain backward compatibility, these events are generated only when the application enables the snapShotRTPEnabled filter in CiscoTermEvFilter.
CiscoTerminal
Declaration
public interface CiscoTerminal extends javax.telephony.Terminal and CiscoObjectContainer
All Superinterfaces
CiscoObjectContainer, javax.telephony.Terminal
Description
Since JTAPI does not support the notion of dynamic terminal registration, the CiscoTerminal interface extends the standard Terminal interface to do so. All Cisco Unified Communications Manager devices are represented by CiscoTerminals, and all CiscoTerminals may be queried to determine whether they are currently IN_SERVICE or OUT_OF_SERVICE. If the Cisco Unified Communications Manager device represented by the CiscoTerminal is an IP telephone, for instance, it would become OUT_OF_SERVICE if it were to lose its network connection. Other types of devices, such as CTIPorts, are registered on demand by applications, and may be IN_SERVICE or OUT_OF_SERVICE accordingly. New constants are added for IP addressing modes and they are:
See Also:
javax.telephony.Terminal, CiscoMediaTerminal
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-236
OL-16702-01
Chapter 5
Member Summary
Fields
static int static int static int static int static int static int static int static int static int static int static int static int static int DEVICESTATE_WHISPER DND_OPTION_NONE DND_OPTION_RINGER_OFF DND_OPTION_CALL_REJECT IN_SERVICE OUT_OF_SERVICE PROTOCOL_NONE PROTOCOL_SCCP PROTOCOL_SIP UNKNOWN_ENCODING = 0 NOT_APPLICABLE = 1 ASCII_ENCODING = 2 UCS2UNICODE_ENCODING = 3
Methods
void createSnapshot () generates CiscoTermSnapshotEv which contains security status of current active call on the terminal getAltScript() Returns alternate script information for the terminal if supported. getDNDOption() Retrieve the configured DND options. getDNDStatus() Check DND status. getFilter() Retrieve the filter object associated with the terminal. getLocale() Returns the current Locale information associated with this Terminal The CiscoTerminal must be in the CiscoTerminal.IN_SERVICE state to access this method getProtocol() Returns the protocol associated with the terminal. getRegistrationState() Returns the state of this terminal. getRTPInputProperties() The CiscoTerminal must be in the CiscoTerminal.REGISTERED state, its Provider must be in the Provider.IN_SERVICE state. getRTPOutputProperties() The CiscoTerminal must be in the CiscoTerminal.REGISTERED state, its Provider must be in the Provider.IN_SERVICE state.
java.lang.String
int
boolean CiscoTermEvFilter
int
int
int
CiscoRTPInputProperties
CiscoRTPOutputProperties
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-237
Chapter 5 Extensions
int
boolean
void
int
Fields
DEVICESTATE_WHISPER
public static final int DEVICESTATE_WHISPER
DND_OPTION_NONE
public static final int DND_OPTION_NONE =0
DND_OPTION_RINGER_OFF
public static final int DND_OPTION_RINGER_OFF =1
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-238
OL-16702-01
Chapter 5
DND_OPTION_CALL_REJECT
public static final int DND_OPTION_CALL_REJECT =2
IN_SERVICE
public static final int IN_SERVICE
OUT_OF_SERVICE
public static final int OUT_OF_SERVICE
PROTOCOL_NONE
public static final int PROTOCOL_NONE
PROTOCOL_SCCP
public static final int PROTOCOL_SCCP
PROTOCOL_SIP
public static final int PROTOCOL_SIP
UNKNOWN_ENCODING = 0
public static final int UNKNOWN_ENCODING = 0
Indicates the <Code>CiscoTerminal.getSupportedEncoding ()</CODE> for this is NOT_APPLICABLE. This is valid for only CiscoMediaTerminals and RoutePoints.
ASCII_ENCODING = 2
public final static int ASCII_ENCODING = 2
Indicates the <Code>CiscoTerminal.getSupportedEncoding ()</CODE> for this Terminal is ASCII and this terminal supports only ASCII_ENCODING
UCS2UNICODE_ENCODING = 3
public final static int UCS2UNICODE_ENCODING = 3
Methods
createSnapshot ()
void createSnapshot()
Generates CiscoTermSnapshotEv which contains security status of current active call on the terminal. In order to access this method Terminal must be in CiscoTerminal.IN_SERVICE state and CiscoTermEvFilter.setSnapshotEnabled() must be set to true. Throws:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-239
Chapter 5 Extensions
InvalidStateException;
getAltScript()
java.lang.String getAltScript()
Returns: Alternate script information for the terminal, if supported. An empty string return value indicates there is no alternate script configured or the terminal does not support an alternate script. For this release, only one alternate script, Kanji, for the Japanese locale is supported.
getFilter()
public com.cisco.jtapi.extensions.CiscoTermEvFilter getFilter()
getDNDStatus()
Public boolean getDNDStatus()
Returns the current Locale information associated with this Terminal. The CiscoTerminal must be in the CiscoTerminal.IN_SERVICE state to access this method.
getProtocol()
public int getProtocol()
returns the protocol associated with the terminal. It can be one of the following:
PROTOCOL_NONEindicates that the protocol type is unrecognized or unknown PROTOCOL_SCCPindicates that the device is using the SCCP protocol to communicate PROTOCOL_SIPindicates that the device is using the SIP protocol to communicate
getRegistrationState()
public int getRegistrationState()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-240
OL-16702-01
Chapter 5
Returns: the state of this terminal The state may be any of the following constants:
CiscoTerminal.OUT_OF_SERVICE CiscoTerminal.IN_SERVICE
getRTPInputProperties()
public com.cisco.jtapi.extensions.CiscoRTPInputProperties getRTPInputProperties() throws InvalidStateException
The CiscoTerminal must be in the CiscoTerminal.REGISTERED state, its Provider must be in the Provider.IN_SERVICE state. and Terminal.getTerminalConnections () must return at least one terminal connection in the TerminalConnection.ACTIVE state. Returns: the properties to be used for the RTP input stream associated with the ACTIVE TerminalConnection on this Terminal Throws: javax.telephony.InvalidStateException
getRTPOutputProperties()
public com.cisco.jtapi.extensions.CiscoRTPOutputProperties getRTPOutputProperties() throws InvalidStateException
The CiscoTerminal must be in the CiscoTerminal.REGISTERED state, its Provider must be in the Provider.IN_SERVICE state. and Terminal.getTerminalConnections () must return at least one terminal connection in the TerminalConnection.ACTIVE state. Returns: the properties to be used for the RTP output stream associated with the ACTIVE TerminalConnection on this Terminal Throws: javax.telephony.InvalidStateException
getState()
public int getState()
Returns: the state of this terminal The state may be any of the following constants:
CiscoTerminal.OUT_OF_SERVICE CiscoTerminal.IN_SERVICE
getSupportedEncoding ()
public int getSupportedEncoding()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-241
Chapter 5 Extensions
This method returns the UniCodeCapability of this Terminal. The CiscoTerminal must be in the CiscoTerminal.IN_SERVICE state to access this method. getSupportedEncoding () returns one of the following: UNKNOWN_ENCODING = 0
isRestricted()
public boolean isRestricted()
This method indicates whether a terminal is restricted or not. If a terminal is restricted, then all associated addresses on this terminal are also restricted. Returns true if terminal is restricted, otherwise it returns false.
sendData(byte[])
public byte[] sendData (byte[] terminalData) throws InvalidStateException, MethodNotSupportedException
Set the DND status. Range of Values: DND_OPTION_NONE DND_OPTION_RINGER_OFF (the default value) DND_OPTION_CALL_REJECT
setFilter(CiscoTermEvFilter)
public void setFilter(com.cisco.jtapi.extensions.CiscoTermEvFilter terminalEvFilter)
Allows an application to have a finer degree of control over the events that are delivered to the TerminalObserver. This method can be invoked at any time during the execution of the code but typical use is setting up the Terminal events as part of initialization or when a CiscoTermCreatedEv indicates the creation of a new Terminal.
Example 1
One use might be to turn on the button pressed events that are normally not delivered
Terminal term = provider.getTerminal ( name ); if ( term instanceof CiscoTerm ) { CiscoTerm ciscoTerm = (CiscoTerm)term;
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-242
OL-16702-01
Chapter 5
Example 2
Another use might be turning off some events that is not of interest to an application. For example an application doing pure call control could turn off the media (RTP) events as follows:
Terminal term = provider.getTerminal ( name ); if ( term instanceof CiscoTerm ) { CiscoTerm ciscoTerm = (CiscoTerm)term; CiscoTermEvFilter filter = ciscoTerm.getFilter (); filter.setRTPEventsEnabled ( false ); ciscoTerm.setFilter ( filter ); } term.addObserver ( terminalObserver ); term.getAddresses () [0].addCallObserver ( callObserver );
Note
Adding a CallObserver (without explicitly setting a filter) turns the RTP events on. This behavior of Cisco Unified JTAPI 1.4 and earlier is still preserved. If an explicit setFilter call is made then the filter settings will take effect. The RTP events will not be delivered for the code snippet as in Example 2, but will be delivered for the following example.
Example 3
Terminal term = provider.getTerminal ( name ); term.addObserver ( terminalObserver ); term.getAddresses () [0].addCallObserver ( callObserver );
unPark(Address, String)
public javax.telephony.TerminalConnection unPark(javax.telephony.Address UnParkAddress, java.lang.String ParkedAt) throws InvalidStateException, InvalidArgumentException, ResourceUnavailableExcepti on
This method Unparks a call at a terminal and returns a terminalConnection. The CiscoTerminal must be in CiscoTerminal.REGISTERED state, its Provider must be in the Provider.IN_SERVICE state. This method takes an address and string as input. The address is any address on the terminal and string is system park port where a call was previously parked. This string is returned when the a call is parked Throws: javax.telephony.ResourceUnavailableException, javax.telephony.InvalidArgumentException, javax.telephony.InvalidStateException
getEMLoginUsername
This method returns the Extension Mobility login username. If no EM username has logged into Terminal, this interface returns a null or empty string.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-243
Chapter 5 Extensions
CiscoTerminalConnection
Declaration
public interface CiscoTerminalConnection extends javax.telephony.callcontrol.CallControlTerminalConnection, CiscoObjectContainer
All Superinterfaces
javax.telephony.callcontrol.CallControlTerminalConnection, CiscoObjectContainer, javax.telephony.TerminalConnection
Description
The CiscoTerminalConnection interface extends the CallControlTerminalConnection interface with additional capabilities. Applications can use the getReason method to obtain the reason for the creation of this Connection. Member Summary
Methods
boolean getPrivacyStatus() The getPrivacyStatus interface returns privacy status of the call on the terminal. getCiscoMonitorInitiatorInfo() Returns null or CiscoMonitorInitiatorInfo. The application can use this method on the terminal connection of the monitor target to get information about the monitor initiator or determine that there is no monitor session. getCiscoMonitorTargetInf() Returns null or CiscoMonitorTargetInfo. The application can use this method on the terminal connection of the monitor initiator to get information about the monitor target. This method returns null when called on a terminal connection of the monitor target or if there is no monitor session. getCiscoRecorderInfo() Returns CiscoRecorderInfo, which exposes the terminal name and address of the recorder. The call Control Terminal connection must be in the talking state. setRTPParams(CiscoRTPParams) Applications can set the ipAddress and the RTP Port number to dynamically stream media for a call. startRecording(int playToneDirection) Starts streaming audio to the recording device.
CiscoMonitorInitiatorInfo
CiscoMonitorTargetInfo
CiscoRecorderInfo
void
void
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-244
OL-16702-01
Chapter 5
Methods
getPrivacyStatus()
public boolean getPrivacyStatus()
The getPrivacyStatus interface returns privacy Status of the Call on the terminal. The Application can use method TerminalConnection.getPrivacyStatus() to get privacy of the call This interface returns true if Privacy is on and vice versa. Application should always see the Privacy status of TerminalConnection before displaying any information about the call at Applications Terminal implementation.
getCiscoMonitorInitiatorInfo()
CiscoMonitorInitiatorInfo getCiscoMonitorInitiatorInfo()
Returns null or CiscoMonitorInitiatorInfo. The application can use this method on the terminal connection of the monitor target to get information about the monitor initiator or determine that there is no monitor session.
getCiscoMonitorTargetInf()
CiscoMonitorTargetInfo getCiscoMonitorTargetInfo()
Returns null or CiscoMonitorTargetInfo. The application can use this method on the terminal connection of the monitor initiator to get information about the monitor target. This method returns null when called on a terminal connection of the monitor target or if there is no monitor session.
getCiscoRecorderInfo()
CiscoRecorderInfo getCiscoRecorderInfo()
Returns CiscoRecorderInfo, which exposes the terminal name and address of the recorder. The call Control Terminal connection must be in the talking state.
setRTPParams(CiscoRTPParams)
public void setRTPParams(com.cisco.jtapi.extensions.CiscoRTPParams rtpParams) throws InvalidStateException, InvalidArgumentException, PrivilegeViolationException
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-245
Chapter 5 Extensions
Applications can set ipAddress and RTP Port number to dynamically stream media for a call. In order to do this, applications will have to register MediaTerminal or CiscoRouteTeminal by providing only capabilities. Applications have to invoke this method upon receiving OpenLogicalChannel on terminalObserver. This method is valid for calls presented for CiscoMediaTerminal or CiscoRouteTerminal only. Throws: javax.telephony.PrivilegeViolationException, javax.telephony.InvalidArgumentException, javax.telephony.InvalidStateException
See Also:
CiscoRTPParams
startRecording(int playToneDirection)
public void startRecording(int playToneDirection)
CiscoTerminalObserver
Declaration
public interface CiscoTerminalObserver extends javax.telephony.TerminalObserver
All Superinterfaces:
javax.telephony.TerminalObserver
Description
Applications implement this interface in order to receive CiscoTermEv events such as CiscoRTPInputStartedEv and CiscoRTPInputStoppedEv when observing Terminals via the Terminal.addObserver method.
See Also:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-246
OL-16702-01
Chapter 5
CiscoTermInServiceEv
Declaration
public interface CiscoTermInServiceEv extends CiscoTermEv
All Superinterfaces
CiscoEv, CiscoTermEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
The CiscoTermInServiceEv event Member Summary
Fields
static int ID
Methods
int getDNDOption() This interface returns the current DND option configured to the application. getDNDStatus() This interface returns the current DND status to the application. getLocale() Returns the current Locale information associated with this terminal. getSupportedEncoding() Returns true if this Terminal supports Unicode.
boolean
int
int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-247
Chapter 5 Extensions
Fields
ID
public static final int ID
Methods
getDNDOption()
public int getDNDOption()
This interface returns the currently configured DND option to the application. See CiscoTerminal for a list of values.
getDNDStatus()
public boolean getDNDStatus()
This interface returns the current DND status, true or false, to the application.
getLocale()
public int getLocale()
CiscoTermOutOfServiceEv
Declaration
public interface CiscoTermOutOfServiceEv extends CiscoTermEv, CiscoOutOfServiceEv
All Superinterfaces
CiscoEv, CiscoOutOfServiceEv, CiscoTermEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
The CiscoTermOutOfServiceEv event Member Summary
Fields
static int ID
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-248
OL-16702-01
Chapter 5
Fields
ID
public static final int ID
CiscoTermRegistrationFailedEv
Declaration
public interface CiscoTermRegistrationFailedEv extends CiscoTermEv
All Superinterfaces
CiscoEv, CiscoTermEv, javax.telephony.events.Ev, javax.telephony.events.TermEv
Description
The CiscoTermRegistrationFailedEv event sends to Application when TerminalRegistration failed by provider for some reason. Error returned by getErrorCode() interface defines type of error. On getting this event Application should try to reregister Terminal with proper parameter Following are the error returned and suggested action to be taken by Application. If the addressing capability fails, a new error code is sent called CiscoTermRegistrationRailedEv.IP_ADDRESSING_MODE_MISMATCH.
Error Code:
CiscoTermRegistrationRailedEv.IP_ADDRESSING_MODE_MISMATCH.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-249
Chapter 5 Extensions
Error Code:
CiscoTermRegistraionFailedEv.MEDIA_CAPABILITY_MISMATCH Registration cannot be done, as Terminal is already registered, second registration should be done with same media capability. Try reregistering with same capability.
Error Code:
CiscoTermRegistraionFailedEv.MEDIA_ALREADY_TERMINATED_NONE Registration cannot be done, as Terminal is already registered with Media termination type none. Try reregistering with Media termination type none.
Error Code:
CiscoTermRegistraionFailedEv.MEDIA_ALREADY_TERMINATED_STATIC Registration cannot be done, as Terminal is already registered with Static media termination For static registration, second registration is not allowed. Wait until Terminal UnRegisters.
Error Code:
CiscoTermRegistraionFailedEv.MEDIA_ALREADY_TERMINATED_DYNAMIC Registration cannot be done, as Terminal already registered with Dynamic media termination. Try reregistering with Dynamic Media termination.
Error Code:
CiscoTermRegistraionFailedEv.OWNER_NOT_ALIVE Registration is in race condition while registering terminal. Try registering the Terminal again. Member Summary
Fields
static int static int ID MEDIA_ALREADY_TERMINATED_DYNAMIC Registration cannot be done, as Terminal is already registered with Dynamic media termination. Try reregistering with Dynamic Media termination. MEDIA_ALREADY_TERMINATED_NONE Registration cannot be done, as Terminal is already registered with Media termination type none. Try reregistering with Media termination type none. MEDIA_ALREADY_TERMINATED_STATIC Registration cannot be done, as Terminal is already registered with Static media termination. For static registration, second registration is not allowed. Wait until Terminal UnRegisters. MEDIA_CAPABILITY_MISMATCH Registration cannot be done, as Terminal is already registered, second registration should be done with same media capability. OWNER_NOT_ALIVE Registration is in a race condition while registering the terminal. Try registering the Device.
static int
static int
static int
static int
Methods
int getErrorCode() Returns the errorCode for this exception.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-250
OL-16702-01
Chapter 5
Fields
ID
public static final int ID
MEDIA_ALREADY_TERMINATED_DYNAMIC
public static final int MEDIA_ALREADY_TERMINATED_DYNAMIC
Registration cannot be done, as Terminal is already registered with Dynamic media termination. Try reregistering with Dynamic Media termination.
MEDIA_ALREADY_TERMINATED_NONE
public static final int MEDIA_ALREADY_TERMINATED_NONE
Registration cannot be done, as Terminal is already registered with Media termination type none. Try reregistering with Media termination type none.
MEDIA_ALREADY_TERMINATED_STATIC
public static final int MEDIA_ALREADY_TERMINATED_STATIC
Registration cannot be done, as Terminal is already registered with Static media termination. For static registration, second registration is not allowed. Wait until Terminal UnRegisters.
MEDIA_CAPABILITY_MISMATCH
public static final int MEDIA_CAPABILITY_MISMATCH
Registration cannot be done, as Terminal is already registered, second registration should be done with same media capability. Try reregistering with same capability.
OWNER_NOT_ALIVE
public static final int OWNER_NOT_ALIVE
Registration has got in race condition while register terminal. Try registering the Device.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-251
Chapter 5 Extensions
Methods
getErrorCode()
public int getErrorCode()
CiscoTermRemovedEv
Declaration
public interface CiscoTermRemovedEv extends CiscoProvEv
All Superinterfaces
CiscoEv, CiscoProvEv, javax.telephony.events.Ev, javax.telephony.events.ProvEv
Description
The CiscoTermRemovedEv event Member Summary
Fields
static int ID
Methods
javax.telephony.Terminal getTerminal()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-252
OL-16702-01
Chapter 5
Fields
ID
public static final int ID
Methods
getTerminal()
public javax.telephony.Terminal getTerminal()
CiscoToneChangedEv
Declaration
public interface CiscoToneChangedEv extends CiscoCallEv
All Superinterfaces
CiscoCallEv, CiscoEv, javax.telephony.events.CallEv, javax.telephony.events.Ev
Description
The CiscoToneChangedEv event indicates that a tone is generated. If getCiscoCause() returns CiscoCallEv.CAUSE_FAC_CMC, then additional digits need to be entered using the CiscoConnection.addToAddress(String) interface. Member Summary
Fields
public static int public static int public static int public static int public static int CMC_REQUIRED FAC_CMC_REQUIRED FAC_REQUIRED ID ZIPZIP
Methods
int int getWhichCodeRequired() getTone()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-253
Chapter 5 Extensions
Fields
CMC_REQUIRED
public static int CMC_REQUIRED
Indicates that the client matter code (CMC) needs to be entered using Connection.addToAddress(String) to extend the call. This is applicable only if getCiscoCause() is CiscoCallEv.CAUSE_FAC_CMC.
FAC_CMC_REQUIRED
public static int FAC_CMC_REQUIRED
Indicates that the DN requires both the CMC and the forced authorization code (FAC) to extend the call. This is applicable only if () is CiscoCallEv.CAUSE_FAC_CMC.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-254
OL-16702-01
Chapter 5
FAC_REQUIRED
public static int FAC_REQUIRED
Indicates that the DN requires the FAC to be entered using Connection.addToAddress(String) to extend the call. This is applicable only if getCiscoCause() is CiscoCallEv.CAUSE_FAC_CMC.
ID
public static int ID
ZIPZIP
Methods
getWhichCodeRequired()
int getWhichCodeRequired()
CiscoTransferEndEv
Declaration
public interface CiscoTransferEndEv extends CiscoCallEv
All Superinterfaces
javax.telephony.events.CallEv, CiscoCallEv, CiscoEv, javax.telephony.events.Ev
Description
The CiscoTransferEndEv event indicates that a transfer operation has completed. This event is reported via the CallControlCallObserver interface. Member Summary
Fields
static int ID
Methods
javax.telephony.Call getFinalCall() Returns the call that remains active after the transfer is completed.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-255
Chapter 5 Extensions
boolean
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-256
OL-16702-01
Chapter 5
Fields
ID
public static final int ID
Methods
getFinalCall()
public javax.telephony.Call getFinalCall()
Returns the call that remains active after the transfer is completed.
getTransferController()
public javax.telephony.TerminalConnection getTransferController()
Returns the TerminalConnection which currently acts as the transfer controller for this call - the final call. This method returns null if the transfer controller is not being observed.
getTransferControllerAddress()
public javax.telephony.Address getTransferControllerAddress()
Returns the Address which currently acts as the transfer controller for this call - the final call.
getTransferControllers()
public javax.telephony.TerminalConnection[] getTransferControllers()
Returns the List of TerminalConnection which currently acts as the transfer controller for this call -- the final call. When transferController is not SharedLine, there will be only TerminalConnection in the list This method returns null if the transfer controller is not being observed.
getTransferredCall()
public javax.telephony.Call getTransferredCall()
Returns the call that has been transferred. This call is in the Call.INVALID state.
isSuccess()
public boolean isSuccess()
Return true or false, depending on whether Transfer is successful. Application can use this interface to find whether Transfer is successful.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-257
Chapter 5 Extensions
CiscoTransferStartEv
Declaration
public interface CiscoTransferStartEv extends CiscoCallEv
All Superinterfaces
javax.telephony.events.CallEv, CiscoCallEv, CiscoEv, javax.telephony.events.Ev
Description
The CiscoTransferStartEv event indicates that a transfer operation has started. This event is reported via the CallControlCallObserver interface. Member Summary
Fields
static int ID
Methods
javax.telephony.Call getFinalCall() Returns the call that will remain active after the transfer is completed. getTransferController() Returns the TerminalConnection which currently acts as the transfer controller for this call - the final call. getTransferControllerAddress() Returns the Address which currently acts as the transfer controller for this call - the final call. getTransferControllers() Returns the List of TerminalConnection which currently acts as the transfer controller for this call - the final call. getTransferredCall() Returns the call that will be transferred.
javax.telephony.Terminal Connection[]
javax.telephony.Call
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-258
OL-16702-01
Chapter 5
Fields
ID
public static final int ID
Methods
getFinalCall()
public javax.telephony.Call getFinalCall()
Returns the call that will remain active after the transfer is completed.
getTransferController()
public javax.telephony.TerminalConnection getTransferController()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-259
Chapter 5 Extensions
Returns the TerminalConnection which currently acts as the transfer controller for this call - the final call. This method returns null if the transfer controller is not being observed.
getTransferControllerAddress()
public javax.telephony.Address getTransferControllerAddress()
Returns the Address which currently acts as the transfer controller for this call - the final call.
getTransferControllers()
public javax.telephony.TerminalConnection[] getTransferControllers()
Returns the List of TerminalConnection which currently acts as the transfer controller for this call -- the final call. When transferController is not SharedLine, there will be only TerminalConnection in the list This method returns null if the transfer controller is not being observed.
getTransferredCall()
public javax.telephony.Call getTransferredCall()
CiscoUnregistrationException
Declaration
public class CiscoUnregistrationException extends java.lang.Exception java.lang.Object | +--java.lang.Throwable | +--java.lang.Exception | +--com.cisco.jtapi.extensions.CiscoUnregistrationException
Description
The CiscoMediaTerminal.unregister method throws this exception when the unregistration process fails for any reason. For example, registration would fail if the Provider were OUT_OF_SERVICE or if the device were already unregistered.
See Also:
CiscoMediaTerminal.unregister()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-260
OL-16702-01
Chapter 5
Member Summary
Constructors
CiscoUnregistrationException() CiscoUnregistrationException(String)
Constructors
CiscoUnregistrationException()
public CiscoUnregistrationException()
CiscoUnregistrationException(String)
public CiscoUnregistrationException(java.lang.String description)
CiscoUrlInfo
Declaration
public interface CiscoUrlInfo
All Superinterfaces
CiscoCall, CiscoPartyInfo
Description
The CiscoUrlInfo object specifies the properties of the Uniform Resources Locator (URL) associated with a SIP entity. Member Summary
int getUrlType() returns URL type, which can be one of the following: URL_TYPE_TEL, URL_TYPE_SIP, URL_TYPE_UNKNOWN getHost() returns the Host name associated with the SIP entity
String
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-261
Chapter 5 Extensions
int int
Methods
getUrlType()
public int getUrlType()
Returns the type of URL associated with the SIP entity. It can be one of the following: URL_TYPE_TEL, URL_TYPE_SIP, URL_TYPE_UNKNOWN.
getHost()
public string getHost()
Returns the Transport Layer protocol type used with the SIP entity. It can be one of the following: TRANSPORT_TYPE_UDP or TRANSPORT_TYPE_TCP.
CiscoWideBandMediaCapability
public class CiscoWideBandMediaCapability extends CiscoMediaCapability java.lang.Object | +--com.cisco.jtapi.extensions.CiscoMediaCapability | +--com.cisco.jtapi.extensions.CiscoWideBandMediaCapability
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-262
OL-16702-01
Chapter 5
Description
The CiscoWideBandMediaCapability object specifies the properties for a wide band encoded RTP stream. Applications that support wide band media termination use this object to specify their preferred packet size when registering a CiscoMediaTerminal. The default packet size is ten milliseconds. Member Summary
Fields
static int FRAMESIZE_TEN_MILLISECOND_PACKET The frames per packet value for 10 millisecond packets.
Constructors
CiscoWideBandMediaCapability(), int maxFramesPerPacket) Constructs a CiscoWideBandMediaCapability object for the default ten millisecond packet size. CiscoWideBandMediaCapability(int) Constructs a CiscoWideBandMediaCapability object for the specified packet size.
Fields
FRAMESIZE_TEN_MILLISECOND_PACKET
public static final int FRAMESIZE_TEN_MILLISECOND_PACKET
Constructors
CiscoWideBandMediaCapability()
public CiscoWideBandMediaCapability()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-263
Class Alarms
Class Summary
Interfaces
Alarm AlarmWriter The Alarm interface is used to define Alarms in. An AlarmWriter receives alarm messages and transmits it to the receiving Alarm Service on a TCP link.
Classes
AlarmManager DefaultAlarm DefaultAlarmWriter The AlarmManager is used to create Alarm objects. An Implementation of the Alarm interface. DefaultAlarmWriter implementation of the AlarmWriter interface. ParameterList is a list of name value pairs that is used to send additional (and optional) user defined parameters to the Alarm Service.
ParameterList
Alarm
Declaration
public interface Alarm
Description
The Alarm interface is used to define Alarms in. An Alarm has an XML representation that it must adhere to in order to be recognized by the Alarm Service, with a DTD as shown below. An application can implement this interface or use the AlarmFactory to generate Alarms of the correct format. The Alarm is the a specification that needs to be sent to an AlarmService that will take some action based on the Alarm. Using this specification the AlarmService will access definitions available in a catalog. This catalog is maintained by the user requiring the Alarm function to effect the appropriate action for the Alarm. The severity specified the Alarm can over-ride the severity associated with this Alarm in the catalog. If no severity is specified in the Alarm the catalog severity is used. Alarm severities are derived from Syslog and are defined as follows: 0 = EMERGENCIES System unusable 1 = ALERTS Immediate action needed 2 = CRITICAL Critical conditions 3 = ERROR Error conditions
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-264
OL-16702-01
Chapter 5
4 = WARNING Warning conditions 5 = NOTIFICATION Normal but significant condition 6 = INFORMATIONAL Informational messages only 7 = DEBUGGING Debugging messages Member Summary
Fields
static int ALERTS The application will continue working on the tasks but all functions may not be operational (one or more devices in the list are not accessible but others in the list can be accessed) Syslog severity level = 1 CRITICAL A critical failure, the application cannot accomplish the tasks required due to this failure, for example, the application cannot open the database to read the device list Syslog severity level = 2 DEBUGGING Very detailed information regarding errors or processing status that is only generated when DEBUG mode has been enabled Syslog severity level = 7 EMERGENCIES Emergency situation, a system shutdown is necessary Syslog severity level = 0 ERROR An error condition of some kind has occurred and the user needs to understand the nature of that failure Syslog severity level = 3 HIGHEST_LEVEL The highest trace level, currently this is DEBUGGING with a trace level of 7 INFORMATIONAL Information of some form not relating to errors, warnings, audit, or debug Syslog severity level =6 LOWEST_LEVEL The lowest trace level, currently this is EMERGENCIES with a trace level of 0 NO_SEVERITY Applications can set this level to generate Alarms without a severity. NOTIFICATION Notification denotes a normal but significant condition Syslog severity level = 5 UNKNOWN_MNEMONIC String used when a mnemonic is not specified during an Alarm send WARNING Warning that a problem of some form exists but is not keeping the application from completing its tasks Syslog severity level = 4
static int
static int
static int
static int
static int
static int
static int
static int
static int
static java.lang.String
static int
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-265
void
Fields
ALERTS
public static final int ALERTS
The application will continue working on the tasks but all functions may not be operational (one or more devices in the list are not accessible but others in the list can be accessed) Syslog severity level = 1
CRITICAL
public static final int CRITICAL
A critical failure, the application cannot accomplish the tasks required due to this failure, for example, the application cannot open the database to read the device list Syslog severity level = 2
DEBUGGING
public static final int DEBUGGING
Very detailed information regarding errors or processing status that is only generated when DEBUG mode has been enabled (Syslog severity level = 7).
EMERGENCIES
public static final int EMERGENCIES
An error condition of some kind has occurred and the user needs to understand the nature of that failure Syslog severity level = 3
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-266
OL-16702-01
Chapter 5
HIGHEST_LEVEL
public static final int HIGHEST_LEVEL
The highest trace level, currently this is DEBUGGING with a trace level of 7
INFORMATIONAL
public static final int INFORMATIONAL
Information of some form not relating to errors, warnings, audit, or debug Syslog severity level =6
LOWEST_LEVEL
public static final int LOWEST_LEVEL
The lowest trace level, currently this is EMERGENCIES with a trace level of 0
NO_SEVERITY
public static final int NO_SEVERITY
Applications can set this level to generate Alarms without a severity. NOTE: This is only intended for cases where an application wants the AlarmService to use the severity associated with the Alarm in the catalog
NOTIFICATION
public static final int NOTIFICATION
Notification denotes a normal but significant condition (Syslog severity level = 5).
UNKNOWN_MNEMONIC
public static final java.lang.String UNKNOWN_MNEMONIC
Warning that a problem of some form exists but is not keeping the application from completing its tasks (Syslog severity level = 4).
Methods
getFacility()
public java.lang.String getFacility()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-267
getSubFacility()
public java.lang.String getSubFacility()
send the Alarm with the specified mnemonic. If a null or empty String is passed a mnemonic UNK is sent
send(String, ParameterList)
public void send(java.lang.String mnemonic, com.cisco.services.alarm.ParameterList parameterList)
send an Alarm with the specified mnemonic and supplied parameter list
send(String, String, String)
public void send(java.lang.String mnemonic, java.lang.String parameterName, java.lang.String parameterValue)
send an Alarm with the specified mnemonic and with one parameter
AlarmManager
Declaration
public class AlarmManager java.lang.Object | +--com.cisco.services.alarm.AlarmManager
Description
The AlarmManager is used to create Alarm objects. The AlarmManager is created with a facility and AlarmService hostname and port. All alarms created by the factory will be associated with this facility. This class also maintains a reference to a single AlarmWriter that can be used system wide. An application can make use of this AlarmWriter. AlarmManager exposes a default implementation of an AlarmWriter. Applications can override this with a user defined implementation of their own AlarmWriter.
Usage:
AlarmManager AlarmManager = new AlarmManager(facilityName, alarmServiceHost, alarmServicePort, debugTrace, errorTrace); Alarms are created by the factory by supplying the alarmName (mnemonic), subfacility and severity Alarms can be cached for use in different parts of the application. During a send alarm applications can specify the variable parameters that offer specific information to the AlarmService.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-268
OL-16702-01
Chapter 5
Usage:
Typically applications will maintain their own AlarmManager instance. Applications will also have to set a debug and error trace to enable the alarm tracing to also be sent to the existing trace destinations. Setup the manager and writer classes: AlarmWriter alarmWriter = new DefaultAlarmWriter(port, alarmServiceHost); AlarmManager alarmManager = new AlarmManager(AA_IVR, alarmWriter, debugTrace, errorTrace); Generating the Alarms: create an alarm for the subfacility and a default severity. Alarm alarm = alarmManager.createAlarm(HTTPSS, Alarm.INFORMATIONAL); alarm.send(090T) sends the alarm with the mnemonic alarm.send(090T, Port is stuck, CTIPort01) or with a mnemonic and parameter
Note
Member Summary
Constructors
AlarmManager(String, AlarmWriter, Trace, UnconditionalTrace) Create an instance of the AlarmManager for the facility.
Methods
Alarm createAlarm(String, int) Creates an Alarm of required severity for the subFacility getAlarmWriter() setAlarmWriter(AlarmWriter) Allows applications to override the AlarmWriter to be used by this AlarmManager, with a user defined AlarmWriter
AlarmWriter void
Constructors
AlarmManager(String, AlarmWriter, Trace, UnconditionalTrace)
public AlarmManager(java.lang.String facility, com.cisco.services.alarm.AlarmWriter writer, com.cisco.services.tracing.Trace debugTrace_, com.cisco.services.tracing.UnconditionalTrace errorTrace_)
Create an instance of the AlarmManager for the facility. Applications specify an AlarmWriter to be used by this AlarmManager to send the Alarms to the AlarmService.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-269
Methods
createAlarm(String, int)
public com.cisco.services.alarm.Alarm createAlarm(java.lang.String subfacility, int severity)
Creates an Alarm of required severity for the subFacility Returns: an object implementing the alarm interface
getAlarmWriter()
public com.cisco.services.alarm.AlarmWriter getAlarmWriter()
Allows applications to override the AlarmWriter to be used by this AlarmManager, with a user defined AlarmWriter
AlarmWriter
Declaration
public interface AlarmWriter
Description
An AlarmWriter receives alarm messages and transmits it to the receiving AlarmService on a TCP link. This interface can be used to implement other AlarmWriters to be used with this implementation of com.cisco.service.alarm A DefaultAlarmWriter is provided with this implementation and can be obtained from the AlarmManager. Member Summary
Methods
void close() close the AlarmWriter getDescription() getEnabled() getName()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-270
OL-16702-01
Chapter 5
void
Methods
close()
public void close()
Send out the alarm message to the AlarmService. Parameters: the - Alarm to be sent
setEnabled(boolean)
public void setEnabled(boolean enable)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-271
DefaultAlarm
Declaration
public class DefaultAlarm implements Alarm java.lang.Object | +--com.cisco.services.alarm.DefaultAlarm
Description
An Implementation of the Alarm interface. The AlarmManager creates these Alarms when the createAlarm() method is called. Member Summary
Constructors
DefaultAlarm(String, String, int, AlarmWriter))
Methods
java.lang.String int java.lang.String void void getFacility() getSeverity() getSubFacility() send(String) Send the alarm with the specified mnemonic send(String, ParameterList) Send the alarm with the specified name and list of parameters. send(String, String, String) Send the alarm with the specified name and parameter
void
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-272
OL-16702-01
Chapter 5
Constructors
DefaultAlarm(String, String, int, AlarmWriter)
public DefaultAlarm(java.lang.String facility, java.lang.String subFacility, int severity, com.cisco.services.alarm.AlarmWriter alarmWriter)
Methods
getFacility()
public java.lang.String getFacility()
Send the alarm with the specified mnemonic Specified By: send in interface Alarm
send(String, ParameterList)
public void send(java.lang.String mnemonic, com.cisco.services.alarm.ParameterList paramList)
Send the alarm with the specified name and list of parameters. Specified By: send in interface Alarm
send(String, String, String)
public void send(java.lang.String mnemonic, java.lang.String paramName, java.lang.String paramValue)
Send the alarm with the specified name and parameter Specified By: send in interface Alarm
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-273
DefaultAlarmWriter
Declaration
public class DefaultAlarmWriter implements AlarmWriter java.lang.Object | +--com.cisco.services.alarm.DefaultAlarmWriter
Description
DefaultAlarmWriter implementation of the AlarmWriter interface. DefaultAlarmWriter maintains a queue of a fixed size to which the alarms are written. The sending of the alarms to the alarm service takes place on a separate thread. The queue is fixed size. Member Summary
Constructors
DefaultAlarmWriter(int, String) Constructor for the DefaultAlarmWriter which takes the AlarmService hostname, port and a queue size of fifty (50). DefaultAlarmWriter(int, String, int) Constructor for the DefaultAlarmWriter which takes the AlarmService hostname, port and queue size. DefaultAlarmWriter(int, String, int, ConditionalTrace, UnconditionalTrace) Constructor for the DefaultAlarmWriter which takes the AlarmService hostname, port and queue size.
Methods
void close() Shutdown the send thread and close the socket getDescription() getEnabled() getName() main(String[]) send(String) send the Alarm to the alarm service setEnabled(boolean) Applications can dynamically enable or disable the AlarmWriter
void
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-274
OL-16702-01
Chapter 5
Constructors
DefaultAlarmWriter(int, String)
public DefaultAlarmWriter(int port, java.lang.String alarmServiceName) throws UnknownHostException
Constructor for the DefaultAlarmWriter which takes the AlarmService hostname, port and a queue size of fifty (50). The AlarmService is listening on this port for Alarm messages. Parameters: port: port on which the alarm service is listening alarmServiceName: The host name of the machine with the Alarm service Throws: java.net.UnknownHostException
DefaultAlarmWriter(int, String, int)
public DefaultAlarmWriter(int port, java.lang.String alarmServiceName, int queueSize) throws UnknownHostException
Constructor for the DefaultAlarmWriter which takes the AlarmService hostname, port and queue size. The AlarmService is listening on this port for Alarm messages. Parameters: portport on which the alarm service is listening alarmServiceNameThe host name of the machine with the Alarm service queueSize - the size of the queue to be maintained in the alarm writer Throws: java.net.UnknownHostException
DefaultAlarmWriter(int, String, int, ConditionalTrace, UnconditionalTrace)
public DefaultAlarmWriter(int port, java.lang.String alarmServiceName, int queueSize, com.cisco.services.tracing.ConditionalTrace debugTrace_, com.cisco.services.tracing.UnconditionalTrace errorTrace_) throws UnknownHostException
Constructor for the DefaultAlarmWriter which takes the AlarmService hostname, port and queue size. The AlarmService is listening on this port for Alarm messages. Parameters: portport on which the alarm service is listening alarmServiceNameThe host name of the machine with the Alarm service
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-275
queueSize - the size of the queue to be maintained in the alarm writer Throws: java.net.UnknownHostException
Methods
close()
public void close()
Shutdown the send thread and close the socket Specified By: close in interface AlarmWriter
getDescription()
public java.lang.String getDescription()
Specified By: getDescription in interface AlarmWriter Returns: a short description of the AlarmWriter
getEnabled()
public boolean getEnabled()
Specified By: getEnabled in interface AlarmWriter Returns: the enabled state of the AlarmWriter
getName()
public java.lang.String getName()
Specified By: getName in interface AlarmWriter Returns: the name of the AlarmWriter
main(String[])
public static void main(java.lang.String[] args)
send(String)
public void send(java.lang.String alarmMessage)
send the Alarm to the alarm service Specified By: send in interface AlarmWriter
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-276
OL-16702-01
Chapter 5
setEnabled(boolean)
public void setEnabled(boolean enable)
Applications can dynamically enable or disable the AlarmWriter Specified By: setEnabled in interface AlarmWriter
ParameterList
Declaration
public class ParameterList java.lang.Object | +--com.cisco.services.alarm.ParameterList
Description
ParameterList is a list of name value pairs that is used to send additional (and optional) user defined parameters to the AlarmService. These parameters can contain the specifics of an Alarm. As an example, a LowResourceAlarm can have a parameter that informs the service which particular resource is low: name=CPUUsage value=0.9 These parameters are user definable but must, however, also be pre-defined in the AlarmService catalog. Member Summary
Constructors
ParameterList() Default constructor for the ParameterList ParameterList(String, String) Constructor that takes a name value pair.
Methods
void addParameter(String, String) method used to add additional name value pairs (parameters) to the list getParameterNames() Get the parameter names in the list getParameterValue(String) get the value for a parameter removeAllParameters() remove all the parameters in the list removeParameter(String) remove a particular parameter if it is in the list toString()
java.lang.String[]
java.lang.String
void void
java.lang.String
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-277
Constructors
ParameterList()
public ParameterList()
Methods
addParameter(String, String)
public void addParameter(java.lang.String name, java.lang.String value)
method used to add additional name value pairs (parameters) to the list
getParameterNames()
public java.lang.String[] getParameterNames()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-278
OL-16702-01
Chapter 5
Class Tracing
Class Summary
Interfaces
ConditionalTrace The ConditionalTrace interface extends the Trace interface and defines the methods that allow enabling and disabling of tracing for this particular condition. The Trace interface defines the methods that allow application tracing. The TraceManager interface defines the methods that allow applications trace management. The TraceModule interface serves two purposes. Introduction TraceWriterManager contains the list of TraceWriter objects that are used to implement the tracing. The UnconditionalTrace interface extends the Trace interface.
Trace
TraceManager
UnconditionalTrace
Classes
BaseTraceWriter This abstract class is useful for supplying a default, non-printing TraceWriter to a TraceWriterManager This class must be extended to provide the functionality to trace to different streams. Supplies a console TraceWriter to trace to System.out. Introduction OutputStreamTraceWriter wraps an output stream in a TraceWriter. SyslogTraceWriter refines the BaseTraceWriter to allow tracing to syslog. The TraceManagerFactory class is a class by which applications obtain a TraceManager object.
SyslogTraceWriter
TraceManagerFactory
BaseTraceWriter
Declaration
public abstract class BaseTraceWriter implements TraceWriter
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-279
java.lang.Object | +--com.cisco.services.tracing.BaseTraceWriter
Description
This abstract class is useful for supplying a default, non-printing TraceWriter to a TraceWriterManager This class must be extended to provide the functionality to trace to different streams. The doPrintln() method must be implemented by the extending class. Member Summary
Constructors
protected BaseTraceWriter(int[], String, String) BaseTraceWriter with trace levels as passed in traceLevels in the array falling outside the range Trace.LOWEST_LEVEL and Trace.HIGHEST_LEVEl are ignored BaseTraceWriter(int, String, String) BaseTraceWriter that traces all levels up to the maxTraceLevel The trace level is maintained in the range [Trace.HIGHEST_LEVEL, Trace.LOWEST_LEVEL ] BaseTraceWriter(String, String)) BaseTraceWriter which only traces the lowest level i.e. severity level, Trace.LOWEST_LEVEL messages
protected
protected
Methods
void protected void protected void protected abstract void close() doClose() doFlush() doPrintln(String, int) Must be implemented by the various TraceWriters extending BaseTraceWriter to provide the specific tracing functionality flush() getDescription() getEnabled() getName() getTraceLevels() println(String, int) setTraceLevels(int[]) toString()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-280
OL-16702-01
Chapter 5
Constructors
BaseTraceWriter(int[], String, String)
protected BaseTraceWriter(int[] traceLevels, java.lang.String name, java.lang.String description)
BaseTraceWriter with trace levels as passed in traceLevels in the array falling outside the range Trace.LOWEST_LEVEL and Trace.HIGHEST_LEVEl are ignored Parameters: traceLevels - array of trace levels
See Also:
Trace
BaseTraceWriter(int, String, String)
protected BaseTraceWriter(int maxTraceLevel, java.lang.String name, java.lang.String description)
BaseTraceWriter that traces all levels up to the maxTraceLevel The trace level is maintained in the range [Trace.HIGHEST_LEVEL, Trace.LOWEST_LEVEL]
See Also:
Trace
BaseTraceWriter(String, String)
protected BaseTraceWriter(java.lang.String name, java.lang.String description)
BaseTraceWriter which only traces the lowest level i.e. severity level, Trace.LOWEST_LEVEL messages
See Also:
Trace
Methods
close()
public final void close()
Description copied from interface: com.cisco.services.tracing.TraceWriter Releases any resources associated by this TraceWriter.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-281
doFlush()
protected void doFlush()
doPrintln(String, int)
protected abstract void doPrintln(java.lang.String message, int messageNumber)
Must be implemented by the various TraceWriters extending BaseTraceWriter to provide the specific tracing functionality
flush()
public final void flush()
Description copied from interface: com.cisco.services.tracing.TraceWriter Forces output of any messages that have been printed using the println method Specified By: flush in interface TraceWriter
getDescription()
public final java.lang.String getDescription()
Description copied from interface: com.cisco.services.tracing.TraceWriter Returns whether the println method will print anything or not. A closed TraceWriter will always return false from this method. Specified By: getEnabled in interface TraceWriter
getName()
public final java.lang.String getName()
Specified By:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-282
OL-16702-01
Chapter 5
Description copied from interface: com.cisco.services.tracing.TraceWriter Prints the specified string followed by a carriage return The concrete TraceWriter class will use the severity to block out messages from a particular stream. Each trace writer has a notion of the highest level trace it traces. Specified By: println in interface TraceWriter
setTraceLevels(int[])
public final void setTraceLevels(int[] levels)
Description copied from interface: com.cisco.services.tracing.TraceWriter set the trace levels that will be traced by this TraceWriter Specified By: setTraceLevels in interface TraceWriter
toString()
public final java.lang.String toString()
ConditionalTrace
Declaration
public interface ConditionalTrace extends Trace
All Superinterfaces
Trace
Description
The ConditionalTrace interface extends the Trace interface and defines the methods that allow enabling and disabling of tracing for this particular condition. Typically, applications obtain one ConditionalTrace object for each condition that they need to trace under certain circumstances but not always (for example, AUDIT, INFO, and so on). Member Summary
Methods
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-283
void
Methods
disable()
public void disable()
ConsoleTraceWriter
Declaration
public final class ConsoleTraceWriter extends BaseTraceWriter java.lang.Object | +--com.cisco.services.tracing.BaseTraceWriter | +--com.cisco.services.tracing.ConsoleTraceWriter
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-284
OL-16702-01
Chapter 5
Description
Supplies a console TraceWriter to trace to System.out.
See Also:
Methods
protected void protected void static void doFlush() doPrintln(String, int) main(String[])
Constructors
ConsoleTraceWriter()
public ConsoleTraceWriter()
Trace
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-285
ConsoleTraceWriter(int[])
public ConsoleTraceWriter(int[] traceLevels)
Construct a ConsoleTraceWriter with an array of trace levels Only traces with the severity in the tracelevel array are traced Parameters: int - [] traceLevels
See Also:
Trace
Methods
doFlush()
protected final void doFlush()
Description copied from class: com.cisco.services.tracing.BaseTraceWriter Must be implemented by the various TraceWriters extending BaseTraceWriter to provide the specific tracing functionality Overrides: doPrintln in class BaseTraceWriter
main(String[])
public static void main(java.lang.String[] args)
LogFileTraceWriter
Declaration
public final class LogFileTraceWriter extends BaseTraceWriter java.lang.Object | +--com.cisco.services.tracing.BaseTraceWriter | +--com.cisco.services.tracing.LogFileTraceWriter
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-286
OL-16702-01
Chapter 5
Description
This class extends the BaseTraceWriter class to implement a TraceWriter that writes to a set of log files, rotating among them as each becomes filled to a specified capacity and stores them in a specified directory. Each of the log files is named according to a pattern controlled by three properties, CurrentFile, FileNameBase, and FileExtension. The CurrentFile property determines which log file, by ordinal number, is being written at present, the FileNameBase property determines the prefix of each log file name, and the FileExtension property determines the suffix, e.g. txt. From these properties, log files are named FileNameBase LeadingZeroPadding CurrentFile.FileExtension. The CurrentFile property takes on a value from 1 to the value of the MaxFiles property. Note that the CurrentFile property, when converted to a String, is padded with leading zeroes depending on the values of the MaxFiles and CurrentFile properties. An index file tracks the index of the last file written. If the logFileWriter is recreated (for example if an application is restarted) new files will continue from the last written index. Where the log files are stored is determined by the path, dirNameBase, useSameDir. If a path is not specified, the current path is used as default. If a dirNameBase is not specified, it write log files in the path. Depending upon whether useSameDir is true or false, files are written to the same directory or a new directory, each time an instance of LogFileTraceWriter is created. In case new directories are being made each time, the directory name will consist of the dirNameBase and a number, separated by an _. The number is one more than the greatest number associated with directories with the same dirNameBame in the path. While specifying the path, you may use either a / or \\, but not \ The LogFileTraceWriter keeps track of how many bytes have been written to the current log file. When that number grows within approximately LogFileTraceWriter.ROLLOVER_THRESHOLD bytes, tracing continues to the next file, which is either CurrentFile + 1 if CurrentFile is not equal to MaxFiles, or 1 if CurrentFile is equal to MaxFiles.
Note
All properties of this class are specified in the constructor; there is no way to change them dynamically. Caveat: If two instances of LogFileTraceWriter are created with the same path and dirNameBase, and useSameDir is true, they may write to the same file.
Example
The following code instantiates a LogFileTraceWriter that will create log files called MyLog01.log through MyLog12.log. Each file will grow to approximately 100K bytes in size before the next file is created: LogFileTraceWriter out = new LogFileTraceWriter ( MyLog, log, 12, 100 * 1024 ); will create a log file TraceWriter which will rotate traces to 12 files from Mylog01.log and Mylog12.log with a file size of 100 KBytes. By default the tracing is set to the HIGHEST_LEVEL.
Example
The following code constructs a LogFileTraceWriter which stores the log files in the path c:/LogFiles in a sub directory, Run. The files will be named MyLogXX.log. The number of rotating files will be 12 with a size of 100 KB. The same directory gets used for each instance of the application. LogFileTraceWriter out = new LogFileTraceWriter (c:/logFiles, Run, MyLog, log, 12, 100*1024, true);
See Also:
Trace
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-287
Member Summary
Fields
static java.lang.String static java.lang.String static char static int static int static int DEFAULT_FILE_NAME_BASE DEFAULT_FILE_NAME_EXTENSION DIR_BASE_NAME_NUM_SEPERATOR MIN_FILE_SIZE MIN_FILES ROLLOVER_THRESHOLD
Constructors
LogFileTraceWriter(String, String, int, int) Default constructor for LogFileTraceWriter that rotates among an arbitrary number of files with tracing for all levels. LogFileTraceWriter(String, String, String, String, int, int, boolean) Default constructor for LogFileTraceWriter that rotates among an arbitrary number of files with tracing for all levels. LogFileTraceWriter(String, String, String, String, int, int, int, boolean) Constructs a LogFileTraceWriter that rotates among an arbitrary number of files storing them in a specified directory.
Methods
protected void doClose() Closes this OutputStream. doFlush() doPrintln(String, int) getCurrentFile() Returns the CurrentFile property getFileExtension() Returns the FileExtension property getFileNameBase() Returns the FileNameBase property getHeader() Get the header string that will be written at the beginning of each log file. getMaxFiles() Returns the MaxFiles property getMaxFileSize() Returns the MaxFileSize property setHeader(String) Set the constant header string that will be written at the beginning of every file, trace writing continues from the next line after the header is written.
java.lang.String
java.lang.String java.lang.String
int
int
void
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-288
OL-16702-01
Chapter 5
Fields
DEFAULT_FILE_NAME_BASE
public static final java.lang.String DEFAULT_FILE_NAME_BASE
DEFAULT_FILE_NAME_EXTENSION
public static final java.lang.String DEFAULT_FILE_NAME_EXTENSION
DIR_BASE_NAME_NUM_SEPERATOR
public static final char DIR_BASE_NAME_NUM_SEPERATOR
MIN_FILE_SIZE
public static final int MIN_FILE_SIZE
MIN_FILES
public static final int MIN_FILES
ROLLOVER_THRESHOLD
public static final int ROLLOVER_THRESHOLD
Constructors
LogFileTraceWriter(String, String, int, int)
public LogFileTraceWriter(java.lang.String fileNameBase, java.lang.String fileNameExtension, int maxFiles, int maxFileSize) throws IOException
Default constructor for LogFileTraceWriter that rotates among an arbitrary number of files with tracing for all levels. Since a path and Directory Base name is not specified, it writes the files to the current directory without any sub directories. Throws: java.io.IOException
LogFileTraceWriter(String, String, String, String, int, int, boolean)
public LogFileTraceWriter(java.lang.String path,
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-289
java.lang.String dirNameBase, java.lang.String fileNameBase, java.lang.String fileNameExtension, int maxFiles, int maxFileSize, boolean useSameDir) throws IOException
Default constructor for LogFileTraceWriter that rotates among an arbitrary number of files with tracing for all levels. Throws: java.io.IOException
LogFileTraceWriter(String, String, String, String, int, int, int, boolean)
public LogFileTraceWriter(java.lang.String path, java.lang.String dirNameBase, java.lang.String fileNameBase, java.lang.String fileNameExtension, int maxFiles, int maxFileSize, int maxTraceLevel, boolean useSameDir) throws IOException
Constructs a LogFileTraceWriter that rotates among an arbitrary number of files storing them in a specified directory. Throws: java.io.IOException
Methods
doClose()
protected void doClose()
Closes this OutputStream. Any log file that is currently open will be closed as well. Overrides: doClose in class BaseTraceWriter
doFlush()
protected void doFlush()
Description copied from class: com.cisco.services.tracing.BaseTraceWriter Must be implemented by the various TraceWriters extending BaseTraceWriter to provide the specific tracing functionality Overrides: doPrintln in class BaseTraceWriter
getCurrentFile()
public int getCurrentFile()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-290
OL-16702-01
Chapter 5
Get the header string that will be written at the beginning of each log file. Returns: the Header Property
getMaxFiles()
public int getMaxFiles()
Set the constant header string that will be written at the beginning of every file, trace writing continues from the next line after the header is written. If setHeader is called after a file output has started, it will take effect from the next file to be written. Usage:
tm = TraceManagerFactory.registerModule( this ); tw = new LogFileTraceWriter ( trace, log, 10, 1024*1024); tw.setHeader ( header ); tm.getTraceWriterManager ().addTraceWriter (tw);
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-291
OutputStreamTraceWriter
Declaration
public final class OutputStreamTraceWriter extends BaseTraceWriter java.lang.Object | +--com.cisco.services.tracing.BaseTraceWriter | +--com.cisco.services.tracing.OutputStreamTraceWriter
Description
OutputStreamTraceWriter wraps an output stream in a TraceWriter. This simplifies adding custom tracing classes that can co-exist with other TraceWriters. Member Summary
Constructors
OutputStreamTraceWriter(int, OutputStream) Default constructor which is auto-flushing OutputStreamTraceWriter(int, OutputStream, boolean) Create an OutputStreamTraceWriter
Methods
protected void protected void protected void java.io.OutputStream doClose() doFlush() doPrintln(String, int) getOutputStream()
Constructors
OutputStreamTraceWriter(int, OutputStream)
public OutputStreamTraceWriter(int maxTraceLevel, java.io.OutputStream outputStream)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-292
OL-16702-01
Chapter 5
Trace
OutputStreamTraceWriter(int, OutputStream, boolean)
public OutputStreamTraceWriter(int maxTraceLevel, java.io.OutputStream outputStream, boolean autoFlush)
Create an OutputStreamTraceWriter
See Also:
Trace
Methods
doClose()
protected void doClose()
Description copied from class: com.cisco.services.tracing.BaseTraceWriter Must be implemented by the various TraceWriters extending BaseTraceWriter to provide the specific tracing functionality Overrides: doPrintln in class BaseTraceWriter
getOutputStream()
public java.io.OutputStream getOutputStream()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-293
SyslogTraceWriter
Declaration
public final class SyslogTraceWriter extends BaseTraceWriter java.lang.Object | +--com.cisco.services.tracing.BaseTraceWriter | +--com.cisco.services.tracing.SyslogTraceWriter
Description
SyslogTraceWriter refines the BaseTraceWriter to allow tracing to syslog. Cisco syslog specification calls for sending low level traces to a syslog collector in the form of UDP messages. No buffering is done in this TraceWriter. The SyslogTraceWriter makes an exception to the println() method in that it places a \0 instead of a System specified line separator to terminate the message packet. Member Summary
Constructors
SyslogTraceWriter(int, String) Default SyslogTraceWriter with a max trace level of INFORMATIONAL SyslogTraceWriter(int, String, int) SyslogTraceWriter with max trace level specified SyslogTraceWriter(int, String, int[]) SyslogTraceWriter which takes an array of trace levels.
Methods
void doClose() Closes the socket doPrintln(String, int) The SyslogTraceWriter makes an exception to the println() method in that it places a \0 instead of a System specified line separator to terminate the message packet. main(String[])
protected void
static void
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-294
OL-16702-01
Chapter 5
Constructors
SyslogTraceWriter(int, String)
public SyslogTraceWriter(int port, java.lang.String collector)
Trace
SyslogTraceWriter(int, String, int)
public SyslogTraceWriter(int port, java.lang.String collector, int maxTraceLevel)
Trace
SyslogTraceWriter(int, String, int[])
public SyslogTraceWriter(int port, java.lang.String collector, int[] traceLevels)
Trace
Methods
doClose()
public void doClose()
The SyslogTraceWriter makes an exception to the println() method in that it places a \0 instead of a System specified line separator to terminate the message packet. The portion of the message after a \r or \n is ignored
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-295
Trace
Declaration
public interface Trace
Description
The Trace interface defines the methods that allow application tracing. Trace also defines the standard trace types as specified by Syslog Trace Logging.Syslog currently defines 8 levels of trace. The severity of the message is indicated in the trace as a number ranging between [0-7] (0 and 7 included). Currently 7 is HIGHEST_LEVEL and 0 is the LOWEST_LEVEL trace. All 8 levels are predefined here as static int types for reference in tracing sub-system implementations. The severities traced are as follows: 0 = EMERGENCIES System unusable 1 = ALERTS Immediate action needed 2 = CRITICAL Critical conditions 3 = ERROR Error conditions 4 = WARNING Warning conditions 5 = NOTIFICATION Normal but significant condition 6 = INFORMATIONAL Informational messages only 7 = DEBUGGING Debugging messages Member Summary
Fields
static int ALERTS The application will continue working on the tasks but all functions may not be operational (one or more devices in the list are not accessible but others in the list can be accessed) Syslog severity level = 1 ALERTS_TRACE_NAME String descriptor for ALERTS trace level
static java.lang.String
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-296
OL-16702-01
Chapter 5
static java.lang.String
static int
static java.lang.String
static int
static int
static int
static java.lang.String
static int
static java.lang.String
Methods
java.lang.String getName() Returns the name of this Trace object.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-297
int boolean
void
void
void
void
void
Fields
ALERTS
public static final int ALERTS
The application will continue working on the tasks but all functions may not be operational (one or more devices in the list are not accessible but others in the list can be accessed) Syslog severity level = 1
ALERTS_TRACE_NAME
public static final java.lang.String ALERTS_TRACE_NAME
A critical failure, the application cannot accomplish the tasks required due to this failure, e.g.: the application cant open the database to read the device list Syslog severity level = 2
CRITICAL_TRACE_NAME
public static final java.lang.String CRITICAL_TRACE_NAME
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-298
OL-16702-01
Chapter 5
Very detailed information regarding errors or processing status that is only generated when DEBUG mode has been enabled Syslog severity level = 7
DEBUGGING_TRACE_NAME
public static final java.lang.String DEBUGGING_TRACE_NAME
An error condition of some kind has occurred and the user needs to understand the nature of that failure Syslog severity level = 3
ERROR_TRACE_NAME
public static final java.lang.String ERROR_TRACE_NAME
The highest trace level, currently this is DEBUGGING with a trace level of 7
INFORMATIONAL
public static final int INFORMATIONAL
Information of some form not relating to errors, warnings, audit, or debug Syslog severity level =6
INFORMATIONAL_TRACE_NAME
public static final java.lang.String INFORMATIONAL_TRACE_NAME
The lowest trace level, currently this is EMERGENCIES with a trace level of 0
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-299
NOTIFICATION
public static final int NOTIFICATION
Warning that a problem of some form exists but is not keeping the application from completing its tasks Syslog severity level = 4
WARNING_TRACE_NAME
public static final java.lang.String WARNING_TRACE_NAME
Methods
getName()
public java.lang.String getName()
Returns: the type of trace as specified in Syslog. DEBUGGING, INFORMATIONAL, WARNING, etc.
isEnabled()
public boolean isEnabled()
Returns the state of this Trace object. By default, Trace objects are enabled, that is, println() method will always trace. The state may not be changed through this interface, however, this object may implement additional interfaces that allow the state to be changed. Returns:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-300
OL-16702-01
Chapter 5
ConditionalTrace
println(Object)
public void println(java.lang.Object object)
Prints the string returned by the Object.toString() method and terminates the line as defined by the system. Parameters: object - the object to be printed
println(String)
public void println(java.lang.String message)
Prints a message in the same format as Trace.print() and terminates the line as defined by the system. Parameters: message - the message to be printed
println(String, Object)
public void println(java.lang.String mnemonic, java.lang.Object object)
Prints the string returned by the Object.toString() method and terminates the line as defined by the system. Parameters: object - the object to be printed mnemonic - the mnemonic mapped to message to be printed
println(String, String)
public void println(java.lang.String mnemonic, java.lang.String message)
Prints a message in the same format as Trace.print() and terminates the line as defined by the system. Parameters: message - the message to be printed mnemonic - the mnemonic mapped to message to be printed
setDefaultMnemonic(String)
public void setDefaultMnemonic(java.lang.String mnemonic)
Sets a default mnemonic for all messages printed out to this trace. Parameters: mnemonic, - a mnemonic string
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-301
TraceManager
Declaration
public interface TraceManager
Description
The TraceManager interface defines the methods that allow applications trace management. Typically, an application obtains only one TraceManager object. All Trace objects are created by default: Predefined Trace in accordance with Syslog definitions are:
ConditionalTraces: INFORMATIONAL, DEBUGGING, NOTIFICATION, WARNING UnconditionalTraces: ERROR, CRITICAL, ALERTS, EMERGENCIES
Facilities/Sub-Facilities:
FacilityA code consisting of two or more uppercase letters that indicate the facility to which the message refers. A facility can be a hardware device, a protocol, or a module of the system software. SubFacilityA code consisting of two or more uppercase letters that indicate the sub-facility to which the message refers. A sub-facility can be a hardware device component, a protocol unit, or a sub-module of the system software.
By default all 8 Conditional and UnConditional Traces are created for the Facility and 8 for each of the subFacilities In order to use the DEBUGGING trace for the parent FACILITY, for example, the application needs to use the getConditionalTrace( DEBUGGING ) method of this object. In order to use the DEBUGGING trace for the SUBFACILITY, for example, the application needs to use the getConditionalTrace( SUBFACILITY + _ + DEBUGGING ) method of this object or use the getConditionalTrace( SUBFACILITY, DEBUGGING ) method. System wide TraceWriterManager is set through the setTraceWriterManager method provided by this interface. The Trace Manager object also allows the application to enable or disable tracing for all trace through the enableAll() and disableAll() methods. Member Summary
Methods
void addSubFacilities(String[]) Sets a set of subFacilities for this TraceManager/Facility. addSubFacility(String) Adds a single subFacility for this TraceManager/Facility. disableAll() Disables tracing for all Trace objects managed by this TraceManager. disableTimeStamp() Disables prefixing a time stamp for every message printed by this TraceManager.
void
void
void
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-302
OL-16702-01
Chapter 5
void
ConditionalTrace
ConditionalTrace
java.lang.String
java.lang.String[]
java.util.Enumeration
TraceWriterManager
UnconditionalTrace
UnconditionalTrace
void
void
void
void
Methods
addSubFacilities(String[])
public void addSubFacilities(java.lang.String[] names)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-303
Disables prefixing a time stamp for every message printed by this TraceManager.
enableAll()
public void enableAll()
Enables prefixing a time stamp for every message printed by this TraceManager.
getConditionalTrace(int)
public com.cisco.services.tracing.ConditionalTrace getConditionalTrace(int severity)
Creates a new ConditionalTrace object or obtains an existing ConditionalTrace object for this condition.
getConditionalTrace(String, int)
public com.cisco.services.tracing.ConditionalTrace getConditionalTrace(java.lang.String subFacility, int severity)
Creates a new ConditionalTrace object or obtains an existing ConditionalTrace object for this condition and subFacility
getName()
public java.lang.String getName()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-304
OL-16702-01
Chapter 5
getTraceWriterManager()
Creates a new UnconditionalTrace object or obtains an existing UnconditionalTrace object for this condition.
getUnconditionalTrace(String, int)
public com.cisco.services.tracing.UnconditionalTrace getUnconditionalTrace(java.lang.String subFacility, int severity)
Creates a new UnconditionalTrace object or obtains an existing UnconditionalTrace object for this condition and subFacility
removeTrace(Trace)
public void removeTrace(com.cisco.services.tracing.Trace tc)
Deprecated. and replaced with TraceManager.addSubFacilities method Sets a set of subFacilities for this TraceManager/Facility.
setSubFacility(String)
public void setSubFacility(java.lang.String name)
Deprecated. and replaced with TraceManager.addSubFacility method Adds a single subFacility for this TraceManager/Facility.
setTraceWriterManager(TraceWriterManager)
public void setTraceWriterManager(com.cisco.services.tracing.TraceWriterManager twm)
TraceManagerFactory
Declaration
public class TraceManagerFactory java.lang.Object |
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-305
+--com.cisco.services.tracing.TraceManagerFactory
Description
The TraceManagerFactory class is a class by which applications obtain a TraceManager object. The TraceModule passed in the constructor is registered in a list. The list can be enumerated using the getModules() method. Member Summary
Methods
static java.util.Enumeration static TraceManager getModules() Returns an enumeration of the TraceModules registered with this factory. registerModule(TraceModule) Returns an instance of a TraceManager object. registerModule(TraceModule, String[], TraceWriterManager)) Returns an instance of a TraceManager object. registerModule(TraceModule, TraceWriterManager) Returns an instance of a TraceManager object.
static TraceManager
static TraceManager
Methods
getModules()
public static java.util.Enumeration getModules()
Returns an instance of a TraceManager object. The contained TraceWriterManager will not have any default TraceWriters.
registerModule(TraceModule, String[], TraceWriterManager)
public static com.cisco.services.tracing.TraceManager registerModule(com.cisco.services.tracing.TraceModule module, java.lang.String[] subFacilities, com.cisco.services.tracing.TraceWriterManager traceWriterManager)
Returns an instance of a TraceManager object. Trace output will be redirected to the TraceWriterManager object specified.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-306
OL-16702-01
Chapter 5
registerModule(TraceModule, TraceWriterManager)
public static com.cisco.services.tracing.TraceManager registerModule(com.cisco.services.tracing.TraceModule module, com.cisco.services.tracing.TraceWriterManager traceWriterManager)
Returns an instance of a TraceManager object. Trace output will be redirected to the TraceWriterManager object specified.
TraceManagerImpl
Declaration
public class TraceManagerImpl extends java.lang.Object java.lang.Object | +--com.cisco.services.tracing.implementation.TraceManagerImpl
Constructors
public TraceManagerImpl(java.lang.String moduleName, java.lang.String[] subFacilities, TraceWriterManager traceWriterManager) public TraceManagerImpl(java.lang.String moduleName, TraceWriterManager traceWriterManager)
Methods
getConditionalTrace
public ConditionalTrace getConditionalTrace(int severity) Description copied from interface: TraceManager Creates a new ConditionalTrace object or obtains an existing ConditionalTrace object for this condition. Specified by: getConditionalTrace in interface TraceManager
getConditionalTrace
public ConditionalTrace getConditionalTrace(java.lang.String subFacility, int severity) Description copied from interface: TraceManager Creates a new ConditionalTrace object or obtains an existing ConditionalTrace object for this condition and subFacility Specified by: getConditionalTrace in interface TraceManager
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-307
getUnconditionalTrace
public UnconditionalTrace getUnconditionalTrace(int severity) Description copied from interface: TraceManager Creates a new UnconditionalTrace object or obtains an existing UnconditionalTrace object for this condition. Specified by: getUnconditionalTrace in interface TraceManager
getUnconditionalTrace
public UnconditionalTrace getUnconditionalTrace(java.lang.String subFacility, int severity) Description copied from interface: TraceManager Creates a new UnconditionalTrace object or obtains an existing UnconditionalTrace object for this condition and subFacility Specified by: getUnconditionalTrace in interface TraceManager
getTraceWriterManager
public TraceWriterManager getTraceWriterManager() Description copied from interface: TraceManager Returns the TraceWriter used by this TraceManager. Specified by: getTraceWriterManager in interface TraceManager
setTraceWriterManager
public void setTraceWriterManager(TraceWriterManager out) Description copied from interface: TraceManager Sets the TraceWriter to be used by this TraceManager. Specified by: setTraceWriterManager in interface TraceManager
removeTrace
public void removeTrace(Trace tc) Description copied from interface: TraceManager Removes a Trace object given an object. Specified by: removeTrace in interface TraceManager
getTraces
public java.util.Enumeration getTraces() Description copied from interface: TraceManager Returns an enumeration of the Trace objects managed by this TraceManager. Specified by:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-308
OL-16702-01
Chapter 5
public void enableAll() Description copied from interface: TraceManager Enables tracing for all Trace objects managed by this TraceManager. Specified by: enableAll in interface TraceManager
disableAll
public void disableAll() Description copied from interface: TraceManager Disables tracing for all Trace objects managed by this TraceManager. Specified by: disableAll in interface TraceManager
getName
public java.lang.String getName() Description copied from interface: TraceManager Returns the Facility name for this TraceManager. Specified by: getName in interface TraceManager
enableTimeStamp
public void enableTimeStamp() Description copied from interface: TraceManager Enables prefixing a time stamp for every message printed by this TraceManager. Specified by: enableTimeStamp in interface TraceManager
disableTimeStamp
public void disableTimeStamp() Description copied from interface: TraceManager Disables prefixing a time stamp for every message printed by this TraceManager. Specified by: disableTimeStamp in interface TraceManager
getSubFacilities
public java.lang.String[] getSubFacilities() Returns the subFacility names for this TraceManager/Facility. Specified by: getSubFacilities in interface TraceManager
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-309
addSubFacilities
public void addSubFacilities(java.lang.String[] names) Adds subFacilities for this TraceManager/Facility. Specified by: addSubFacilities in interface TraceManager
addSubFacility
public void addSubFacility(java.lang.String name) Adds a subFacility for this TraceManager/Facility. Specified by: addSubFacility in interface TraceManager
Deprecated
getSubFacilities(java.lang.String[] names)
Replaced by addSubFacilties(String[]).
setSubFacility(java.lang.String name)
Replaced by addSubFacility(String).
Inherited Methods
Inherited methods from class java.lang.Object are: clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait.
TraceWriterManagerImpl
Declaration
public class TraceWriterManagerImpl extends java.lang.Object implements TraceWriterManager java.lang.Object com.cisco.services.tracing.implementation.TraceWriterManagerImpl
Description
TraceWriterManager contains the list of TraceWriter objects that are used to implement the tracing. The list is populated at startup from the switches in a .ini file. A LogFileTraceWriter, a ConsoleTraceWriter, and a SyslogTraceWriter are available. Users can override the existing TraceWriters by setting a user implemented TraceWriter[] or adding to the existing TraceWriters. This makes it possible to add other traceWriters that can function along with exisiting trace writers.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-310
OL-16702-01
Chapter 5
Note
Methods inherited from class java.lang.Object are clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait.
Constructors
TraceWriterManagerImpl
Methods
setTraceWriters
public void setTraceWriters(TraceWriter[] traceWriters) Overrides the existing TraceWriters with a new user supplied set . Specified by: setTraceWriters in interface TraceWriterManager Parameters: traceWriters - An array of TraceWriters.
getTraceWriters
public TraceWriter[] getTraceWriters() Returns the array of TraceWriters currently in use . Specified by: getTraceWriters in interface TraceWriterManager Returns: The array of TraceWriters in the manager.
addTraceWriter
public void addTraceWriter(TraceWriter tw) Add this TraceWriter to the array of trace writers Specified by: addTraceWriter in interface TraceWriterManager Parameters: tw - TraceWriter to be added to the list
removeTraceWriter
public void removeTraceWriter(TraceWriter tw) Remove the Tracewriter from the array of trace writers. Specified by: removeTraceWriter in interface TraceWriterManager
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-311
println
public void println(java.lang.String message, int severity) All traces invoke this method. A trace supplies its severity along with the message. Traces below the threshold severity of the TraceWriter are allowed. Eg. If the Threshhold severity is set to INFORMATIONAL (level = 6) DEBUG traces will not be passed by the TraceWriter. The severity level is set in the constructor of the TraceWriter Specified by: println in interface TraceWriter Parameters: message - The string to print severity - The severity of the trace. See Also: Trace Flush
public void flush()
Description copied from interface: TraceWriter Forces output of any messages that have been printed using the println method Specified by: flush in interface TraceWriter
close
public void close() Description copied from interface: TraceWriter Releases any resources associated by this TraceWriter. Specified by: close in interface TraceWriter
getEnabled
public boolean getEnabled() Returns true if any one of the underlying TraceWriter is enabled, else returns false. Specified by: getEnabled in interface TraceWriter Returns: True if this TraceWriter is enabled, false if not.
getName
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-312
OL-16702-01
Chapter 5
public java.lang.String getDescription() Specified by: getDescription in interface TraceWriter Returns: A short description of this TraceWriter.
setTraceLevels
public void setTraceLevels(int[] levels) The TraceWriterManager does nothing for this method . Specified by: setTraceLevels in interface TraceWriter Parameters: Levels - Array of trace levels. See Also: Trace
getTraceLevels
public int[] getTraceLevels() The TraceWriterManager returns a null, as the traceLevel is maintained at the individual TraceWriter . Specified by: getTraceLevels in interface TraceWriter Returns: null
TraceModule
Declaration
public interface TraceModule
Description
The TraceModule interface serves two purposes. First, it allows applications to discover the TraceManager object used by other packages that they use. Second, applications that register with the TraceManagerFactory must identify themselves by implementing this interface.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-313
Member Summary
Methods
TraceManager getTraceManager() Returns the TraceManager that an object is using for tracing. getTraceModuleName() Returns the module name.
java.lang.String
Methods
getTraceManager()
public com.cisco.services.tracing.TraceManager getTraceManager()
TraceWriter
Declaration
public interface TraceWriter
Description
The TraceWriter interface abstracts the details of trace message output. The TraceWriter uses its enabled method to advertise whether or not the print and println methods will have any effect. Users of TraceWriter should use the value returned by the getEnabled method as an indication of whether they should invoke the print and println methods at all. Member Summary
Methods
void close() Releases any resources associated by this TraceWriter.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-314
OL-16702-01
Chapter 5
java.lang.String boolean
void
Methods
close()
public void close()
Forces output of any messages that have been printed using the println method
getDescription()
public java.lang.String getDescription()
Returns whether the println method will print anything or not. A closed TraceWriter will always return false from this method. Returns: true if this TraceWriter is enabled, false if not
getName()
public java.lang.String getName()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-315
getTraceLevels()
public int[] getTraceLevels()
Returns: the array of trace levels that will be traced by this TraceWriter
println(String, int)
public void println(java.lang.String message, int severity)
Prints the specified string followed by a carriage return The concrete TraceWriter class will use the severity to block out messages from a particular stream. Each trace writer has a notion of the highest level trace it traces Parameters: message - the string to print severity - of the trace.
See Also:
Trace
setTraceLevels(int[])
public void setTraceLevels(int[] levels)
set the trace levels that will be traced by this TraceWriter Parameters: int[] - levels
See Also:
Trace
TraceWriterManager
Declaration
public interface TraceWriterManager extends TraceWriter
All Superinterfaces
TraceWriter
Description
TraceWriterManager contains the list of TraceWriter objects that are used to implement the tracing. The list is populated at startup from the switches in a .ini file. A LogFileTraceWriter, a ConsoleTraceWriter, and a SyslogTraceWriter are available. Users can override the existing TraceWriters by setting a user implemented TraceWriter[] or adding to the existing TraceWriters. This makes it possible to add other TraceWriters that can function along with existing trace writers.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-316
OL-16702-01
Chapter 5
Member Summary
Methods
void addTraceWriter(TraceWriter) Add another TraceWriter to the array getTraceWriters() removeTraceWriter(TraceWriter) Remove the TraceWriter from the array in the manager setTraceWriters(TraceWriter[]) Implementations can use this method to override or enhance the provided TraceWriters
TraceWriter[] void
void
Methods
addTraceWriter(TraceWriter)
public void addTraceWriter(com.cisco.services.tracing.TraceWriter traceWriter)
Add another TraceWriter to the array Parameters: TraceWriter - to be added to the list
getTraceWriters()
public com.cisco.services.tracing.TraceWriter[] getTraceWriters()
Implementations can use this method to override or enhance the provided TraceWriters Parameters: set - the array of TraceWriters.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
5-317
UnconditionalTrace
Declaration
public interface UnconditionalTrace extends Trace
All Superinterfaces
Trace
Description
The UnconditionalTrace interface extends the Trace interface. Note that because this object extends Trace, its state is enabled by default and it may not be changed. Typically, applications would obtain one UnconditionalTrace object per each condition that they need to trace always under any circumstances (such as, ERROR, FATAL, and so on). Inherited Member Summary
Fields inherited from interface Trace
ALERTS, ALERTS_TRACE_NAME, CRITICAL, CRITICAL_TRACE_NAME, DEBUGGING, DEBUGGING_TRACE_NAME, EMERGENCIES, EMERGENCIES_TRACE_NAME, ERROR, ERROR_TRACE_NAME, HIGHEST_LEVEL, INFORMATIONAL, INFORMATIONAL_TRACE_NAME, LOWEST_LEVEL, NOTIFICATION, NOTIFICATION_TRACE_NAME, WARNING, WARNING_TRACE_NAME
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
5-318
OL-16702-01
CH A P T E R
Running makecall
MakeCall.java
/** * makecall.java * * Copyright Cisco Systems, Inc. * * Performance-testing application (first pass) for Cisco JTAPI * implementation. * * Known problems: * * Due to synchronization problems between Actors, calls may * not be cleared when this application shuts down. * */ //import com.ms.wfc.app.*; import java.util.*; import javax.telephony.*; import javax.telephony.events.*; import com.cisco.cti.util.Condition;
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
6-1
Chapter 6 MakeCall.java
public class makecall extends TraceWindow implements ProviderObserver { Vector actors = new Vector (); ConditionconditionInService = new Condition (); Providerprovider; public makecall ( String [] args ) { super ( "makecall" + ": "+ new CiscoJtapiVersion()); try { println ( "Initializing Jtapi" ); int curArg = 0; String providerName = args[curArg++]; String login = args[curArg++]; String passwd = args[curArg++]; int actionDelayMillis = Integer.parseInt ( args[curArg++] ); String src = null; String dest = null; JtapiPeer peer = JtapiPeerFactory.getJtapiPeer ( null ); if ( curArg < args.length ) { String providerString = providerName + ";login=" + login + ";passwd=" + passwd; println ( "Opening " + providerString + "...\n" ); provider = peer.getProvider ( providerString ); provider.addObserver ( this ); conditionInService.waitTrue (); println ( "Constructing actors" ); for ( ; curArg < args.length; curArg++ ) { if ( src == null ) { src = args[curArg]; } else { dest = args[curArg]; Originator originator = new Originator ( provider.getAddress ( src ), dest, this, actionDelayMillis ); actors.addElement ( originator ); actors.addElement ( new Receiver ( provider.getAddress ( dest ), this, actionDelayMillis, originator ) ); src = null; dest = null; } } if ( src != null ) { println ( "Skipping last originating address \"" + src + "\"; no destination specified" ); } } Enumeration e = actors.elements (); while ( e.hasMoreElements () ) { Actor actor = (Actor) e.nextElement (); actor.initialize (); } Enumeration en = actors.elements (); while ( en.hasMoreElements () ) { Actor actor = (Actor) en.nextElement (); actor.start (); }
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
6-2
OL-16702-01
Chapter 6
} catch ( Exception e ) { println ( "Caught exception " + e ); } } public void dispose () { println ( "Stopping actors" ); Enumeration e = actors.elements (); while ( e.hasMoreElements () ) { Actor actor = (Actor) e.nextElement (); actor.dispose (); } } public static void main ( String [] args ) { if ( args.length < 6 ) { System.out.println ( "Usage: makecall <server> <login> <password> <delay> <origin> <destination> ..." ); System.exit ( 1 ); } new makecall ( args ); } public void providerChangedEvent ( ProvEv [] eventList ) { if ( eventList != null ) { for ( int i = 0; i < eventList.length; i++ ) { if ( eventList[i] instanceof ProvInServiceEv ) { conditionInService.set (); } } } } }
Actor.java
/** * Actor.java * * Copyright Cisco Systems, Inc. * */ import import import import javax.telephony.*; javax.telephony.events.*; javax.telephony.callcontrol.*; javax.telephony.callcontrol.events.*;
import com.cisco.jtapi.extensions.*; public abstract class Actor implements AddressObserver, TerminalObserver, CallControlCallObserver, Trace { public static final int ACTOR_OUT_OF_SERVICE = 0; public static final int ACTOR_IN_SERVICE =1; private Tracetrace; protected intactionDelayMillis; private AddressobservedAddress;
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
6-3
Chapter 6 Actor.java
private Terminal observedTerminal; private boolean addressInService; private boolean terminalInService; protected int state = Actor.ACTOR_OUT_OF_SERVICE; public Actor ( Trace trace, Address observed, int actionDelayMillis ) { this.trace = trace; this.observedAddress = observed; this.observedTerminal = observed.getTerminals ()[0]; this.actionDelayMillis = actionDelayMillis; } public void initialize () { try { if ( observedAddress != null ) { bufPrintln ( "Adding Call observer to address " + observedAddress.getName () ); observedAddress.addCallObserver ( this ); //Now add observer on Address and Terminal bufPrintln ( "Adding Adddress Observer to address " + observedAddress.getName () ); observedAddress.addObserver ( this ); bufPrintln ( "Adding Terminal Observer to Terminal" + observedTerminal.getName () ); observedTerminal.addObserver ( this ); } } catch ( Exception e ) { } finally { flush (); } } public final void start () { onStart (); }
public final void dispose () { try { onStop (); if ( observedAddress != null ) { bufPrintln ( "Removing observer from Address " + observedAddress.getName () ); observedAddress.removeObserver ( this ); bufPrintln ( "Removing call observer from Address "
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
6-4
OL-16702-01
Chapter 6
+ observedAddress.getName () ); observedAddress.removeCallObserver ( this ); } if ( observedTerminal != null ){ bufPrintln ( "Removing observer from terminal " + observedTerminal.getName () ); observedTerminal.removeObserver ( this ); } } catch ( Exception e ) { println ( "Caught exception " + e ); } finally { flush (); } } public final void stop () { onStop (); }
public final void callChangedEvent ( CallEv [] events ) { // // for now, all metaevents are delivered in the // same package... // metaEvent ( events ); } public void addressChangedEvent ( AddrEv [] events ) { for ( int i=0; i<events.length; i++ ) { Address address = events[i].getAddress (); switch ( events[i].getID () ) { case CiscoAddrInServiceEv.ID: bufPrintln ( "Received " + events[i] + "for "+ address.getName ()); addressInService = true; if ( terminalInService ) { if ( state != Actor.ACTOR_IN_SERVICE ) { state = Actor.ACTOR_IN_SERVICE ; fireStateChanged (); } } break; case CiscoAddrOutOfServiceEv.ID: bufPrintln ( "Received " + events[i] + "for "+ address.getName ()); addressInService = false; if ( state != Actor.ACTOR_OUT_OF_SERVICE ) { state = Actor.ACTOR_OUT_OF_SERVICE; // you only want to notify when you had notified earlier that you are IN_SERVICE fireStateChanged (); } break; } } flush (); } public void terminalChangedEvent ( TermEv [] events ) {
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
6-5
Chapter 6 Actor.java
for ( int i=0; i<events.length; i++ ) { Terminal terminal = events[i].getTerminal (); switch ( events[i].getID () ) { case CiscoTermInServiceEv.ID: bufPrintln ( "Received " + events[i] + "for " + terminal.getName ()); terminalInService = true; if ( addressInService ) { if ( state != Actor.ACTOR_IN_SERVICE ) { state = Actor.ACTOR_IN_SERVICE; fireStateChanged (); } } break; case CiscoTermOutOfServiceEv.ID: bufPrintln ( "Received " + events[i] + "for " + terminal.getName () ); terminalInService = false; if ( state != Actor.ACTOR_OUT_OF_SERVICE ) { // you only want to notify when you had notified earlier that you are IN_SERVICE state = Actor.ACTOR_OUT_OF_SERVICE; fireStateChanged (); } break; } } flush(); } final void delay ( String action ) { if ( actionDelayMillis != 0 ) { println ( "Pausing " + actionDelayMillis + " milliseconds before " + action ); try { Thread.sleep ( actionDelayMillis ); } catch ( InterruptedException e ) {} } } protected abstract void metaEvent ( CallEv [] events ); protected abstract void onStart (); protected abstract void onStop (); protected abstract void fireStateChanged (); public final void bufPrint ( String string ) { trace.bufPrint ( string ); } public final void bufPrintln ( String string ) { trace.bufPrint ( string ); trace.bufPrint ("\n"); } public final void print ( String string ) { trace.print ( string ); } public final void print ( char character ) { trace.print ( character ); } public final void print ( int integer ) { trace.print ( integer ); } public final void println ( String string ) { trace.println ( string ); } public final void println ( char character ) {
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
6-6
OL-16702-01
Chapter 6
trace.println ( character ); } public final void println ( int integer ) { trace.println ( integer ); } public final void flush () { trace.flush (); } }
Originator.java
/** * originator.java * * Copyright Cisco Systems, Inc. * */ import import import import javax.telephony.*; javax.telephony.events.*; javax.telephony.callcontrol.*; javax.telephony.callcontrol.events.*;
import com.ms.com.*; import com.cisco.jtapi.extensions.*; public class Originator extends Actor { Address srcAddress; String destAddress; int iteration; StopSignalstopSignal; boolean ready = false; int receiverState = Actor.ACTOR_OUT_OF_SERVICE; boolean callInIdle = true; public Originator ( Address srcAddress, String destAddress, Trace trace, int actionDelayMillis ) { super ( trace, srcAddress, actionDelayMillis );// observe srcAddress this.srcAddress = srcAddress; this.destAddress = destAddress; this.iteration = 0; } protected final void metaEvent ( CallEv [] eventList ) { for ( int i = 0; i < eventList.length; i++ ) { try { CallEv curEv = eventList[i]; if ( curEv instanceof CallCtlTermConnTalkingEv ) { TerminalConnection tc = ((CallCtlTermConnTalkingEv)curEv).getTerminalConnection (); Connection conn = tc.getConnection (); if ( conn.getAddress ().getName ().equals ( destAddress ) ) { delay ( "disconnecting" ); bufPrintln ( "Disconnecting Connection " + conn ); conn.disconnect (); } } else if ( curEv instanceof CallCtlConnDisconnectedEv ) { Connection conn = ((CallCtlConnDisconnectedEv)curEv).getConnection ();
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
6-7
Chapter 6 Originator.java
if ( conn.getAddress ().equals ( srcAddress ) ) { stopSignal.canStop (); setCallProgressState ( true ); } } } catch ( Exception e ) { println ( "Caught exception " + e ); } finally { flush (); } } } protected void makecall () throws ResourceUnavailableException, InvalidStateException, PrivilegeViolationException, MethodNotSupportedException, InvalidPartyException, InvalidArgumentException { println ( "Making call #" + ++iteration + " from " + srcAddress + " to " + destAddress + " " + Thread.currentThread ().getName () ); Call call = srcAddress.getProvider ().createCall (); call.connect ( srcAddress.getTerminals ()[0], srcAddress, destAddress ); setCallProgressState ( false ); println ( "Done making call" ); }
protected final void onStart () { stopSignal = new StopSignal (); new ActionThread ().start (); } protected final void fireStateChanged () { checkReadyState (); } protected final void onStop () { stopSignal.stop (); Connection[] connections = srcAddress.getConnections (); try { if ( connections != null ) { for (int i=0; i< connections.length; i++ ) { connections[i].disconnect (); } } }catch ( Exception e ) { println (" Caught Exception " + e); } } public int getReceiverState () { return receiverState; } public void setReceiverState ( int state ) { if ( receiverState != state ){ receiverState = state; checkReadyState (); } }
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
6-8
OL-16702-01
Chapter 6
public synchronized void checkReadyState () { if ( receiverState == Actor.ACTOR_IN_SERVICE && state == Actor.ACTOR_IN_SERVICE ) { ready = true; }else { ready = false; } notifyAll (); } public synchronized void setCallProgressState ( boolean isCallInIdle ) { callInIdle = isCallInIdle; notifyAll (); } public synchronized void doAction () { if ( !ready || !callInIdle ) { try { wait (); }catch ( Exception e ) { println (" Caught Exception from wait state" + e ); } } else { if ( actionDelayMillis != 0 ) { println ( "Pausing " + actionDelayMillis + " milliseconds before making call " ); flush (); try { wait ( actionDelayMillis ); } catch ( Exception ex ) {} } //make call after waking up, recheck the flags before making the call if ( ready && callInIdle ) { try { makecall (); }catch ( Exception e ) { println (" Caught Exception in MakeCall " + e + " Thread =" + Thread.currentThread ().getName ()); } } } }
class ActionThread extends Thread { ActionThread ( ) { super ( "ActionThread"); } public void run () { while ( true ) { doAction (); } } } }
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
6-9
Chapter 6 Receiver.java
Receiver.java
/** * Receiver.java * * Copyright Cisco Systems, Inc. * */ import import import import javax.telephony.*; javax.telephony.events.*; javax.telephony.callcontrol.*; javax.telephony.callcontrol.events.*;
public class Receiver extends Actor { Address address; StopSignalstopSignal; Originatororiginator; public Receiver ( Address address, Trace trace, int actionDelayMillis, Originator originator ) { super ( trace, address, actionDelayMillis ); this.address = address; this.originator = originator; } protected final void metaEvent ( CallEv [] eventList ) { for ( int i = 0; i < eventList.length; i++ ) { TerminalConnection tc = null; try { CallEv curEv = eventList[i]; if ( curEv instanceof CallCtlTermConnRingingEv ) { tc = ((CallCtlTermConnRingingEv)curEv).getTerminalConnection (); delay ( "answering" ); bufPrintln ( "Answering TerminalConnection " + tc ); tc.answer (); stopSignal.canStop (); } } catch ( Exception e ) { bufPrintln ( "Caught exception " + e ); bufPrintln ( "tc = " + tc ); } finally { flush (); } } } protected final void onStart () { stopSignal = new StopSignal (); } protected final void onStop () { stopSignal.stop (); Connection[] connections = address.getConnections (); try { if ( connections != null ) { for (int i=0; i< connections.length; i++ ) { connections[i].disconnect (); } }
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
6-10
OL-16702-01
Chapter 6
}catch ( Exception e ) { println (" Caught Exception " + e); } } protected final void fireStateChanged () { originator.setReceiverState ( state ); } }
StopSignal.java
/** * StopSignal.java * * Copyright Cisco Systems, Inc. * */ class StopSignal { boolean stopping = false; boolean stopped = false; synchronized boolean isStopped () { return stopped; } synchronized boolean isStopping () { return stopping; } synchronized void stop () { if ( !stopped ) { stopping = true; try { wait (); } catch ( InterruptedException e ) {} } } synchronized void canStop () { if ( stopping = true ) { stopping = false; stopped = true; notify (); } } }
Trace.java
/** * Trace.java * * Copyright Cisco Systems, Inc. * */ public interface Trace {
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
6-11
Chapter 6 TraceWindow.java
/** * bufPrint (str) puts str in buffer only. */ public void bufPrint ( String string ); /** * print () */ public void public void public void public void public void public void
println () bufPrint and invoke flush (); print ( print ( print ( println println println String string ); char character ); int integer ); ( String string ); ( char character ); ( int integer );
TraceWindow.java
/** * TraceWindow.java * * Copyright Cisco Systems, Inc. * */
import java.awt.*; import java.awt.event.*; public class TraceWindow extends Frame implements Trace { TextArea textArea; booleantraceEnabled = true; StringBuffer buffer = new StringBuffer (); public TraceWindow (String name ) { super ( name ); initWindow (); } public TraceWindow(){ this(""); }
private void initWindow() { this.addWindowListener(new WindowAdapter () { public void windowClosing(WindowEvent e){ dispose (); } }); textArea = new TextArea(); setSize(400,400); add(textArea);
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
6-12
OL-16702-01
Chapter 6
setEnabled(true); this.show(); }
public final void bufPrint ( String str ) { if ( traceEnabled ) { buffer.append ( str ); } } public final void print ( String str ) { if ( traceEnabled ) { buffer.append ( str ); flush (); } } public final void print ( char character ) { if ( traceEnabled ) { buffer.append ( character ); flush (); } } public final void print ( int integer ) { if ( traceEnabled ) { buffer.append ( integer ); flush (); } } public final void println ( String str ) { if ( traceEnabled ) { print ( str ); print ( '\n' ); flush (); } } public final void println ( char character ) { if ( traceEnabled ) { print ( character ); print ( '\n' ); flush (); } } public final void println ( int integer ) { if ( traceEnabled ) { print ( integer ); print ( '\n' ); flush (); } } public final void setTrace ( boolean traceEnabled ) { this.traceEnabled = traceEnabled; } public final void flush () { if ( traceEnabled ) { textArea.append ( buffer.toString()); buffer = new StringBuffer (); } }
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
6-13
Running makecall
To Invoke makecall on the client workstation, from the Windows NT command line, navigate to the makecall directory where JTAPI Tools directory was installed and execute the following command:
jview makecall <server name> <login> <password> 1000 <device 1> <device2>
<server name> specifies the hostname or IP address of your Cisco Unified Communications Manager and <device1> <device2> are directory numbers of IP phones. Make sure that the phones are part of the associated devices of a given user as administered in the Cisco Unified Communications Managers directory administration. The <logic> and <password> apply similarly as administered in the directory. This will test that you have installed and configured everything correctly. The application will make calls between the two devices with an action delay of 1000 msecs until terminated.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
6-14
OL-16702-01
A P P E N D I X
CallSelect and UnSelect Dynamic CTIPort Registration Per Call Media Termination at Route Point Redirect Set OriginalCalledID Single Step Transfer Modifying Calling Number AutoAccept for CTIPort and RoutePoint Forced Authorization and Customer Matter Codes Super Provider Message Flow SuperProvider and Change Notification Enhancements Use Cases
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-1
QSIG Path Replacement Device State Server Partition Support Hairpin Support QoS Support TLS Security SRTP Key Material Device and Line Restriction SIP Support SIP REPLACE Unicode Support Backward Compatibility Enhancements Half Duplex Media Recording and Monitoring Intercom Do Not Disturb DNDR Secure Conferencing JTAPI Cisco Unified IP 7931G Phone Interaction Locale Infrastructure Development Scenarios Calling Party Normalization Click to Conference Call Pickup selectRoute() with Calling Search Space and Feature Priority Extension Mobility Login Username Calling Party IP Address
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-2
OL-16702-01
Appendix A
AddressInService/AddressOutofService Events
Scenario: Shared Address 2005 at terminal SEP003094C25AFF(T1) and Terminal SEP003094C2A0B0(T2) Application Events delivered at AddressObserver JTAPI Application adds AddressObserver at 2005 JTAPI opens Line 2005 at T1 with CTI CiscoAddressInService(2005 at T1) LineInServiceEvent for 2005 at T! JTAPI opens Line 2005 at T2 with CTI CiscoAddressInService(2005 at T2) LineInServiceEvent for 2005 at T! Terminal T1 unregisters CiscoAddressOutOfService(2005 at T1) LineOutOfService for 2005 at T1 CTI
Note: At this point Address 2005 is still InService at T2, so Address State for 2005 would be still InService Terminal T2 unregisters CiscoAddressOutOfService(2005 at T2) LineOutOfService for 2005 at T2
Note: At this point both the SharedLines for Address 2005 has gone OutOfServic, so Address State for 2005 would be OutOfService Terminal T1 re-registers CiscoAddressInService(2005 at T1) LineInServiceEvent for 2005 at T! Terminal T2 re-registers CiscoAddressInService(2005 at T2) AddressObservationEnded event JTAPI closes Line 2005 at T1 with CTI JTAPI closes Line 2005 at T2 with CTI
92473
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-3
JTAPI
CTI
CallStateDialing CallStateProceeding
NEW META EVENT____META_CALL_ADDITIONAL_PARTY ConnCreatedEv for 2005 ConnInProgressEv for 2005 CallCtlConnOfferedEv for 2005
NEW META EVENT____META_CALL_PROGRESS ConnAlertingEv for 2005 CallCtlConnAlertingEv for 2005 TermConnCreatedEv for SEP003094C2A0B0 TermConnRingingEv for SEP003094C2A0B0 CallCtlTermConnRingingEvlmp for SEP003094C2A0B0
CallStateAccepted-T2
NEW META EVENT____META_CALL_PROGRESS TermConnCreatedEv for SEP003094C25AFF TermConnRingingEv for SEP003094C25AFF CallCtlTermConnRingingEvlmp for SEP003094C25AFF
CallStateAccepted-T1
SEP003094C2A0B0 answers the call NEW META EVENT____META_CALL_PROGRESS TermConnActiveEv for SEP003094C2A0B0 CallCtlTermConnTalkingEv for SEP003094C2A0B0 CallStateConnected-T1
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-4
92474
CallStateConnected-RIU-T2
OL-16702-01
Appendix A
JTAPI
CTI
CallStateDialing
CallStateAccepted
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-5
JTAPI
CTI
2005-T1 calls 2005-T2 12/1 12/1 12/1 21/1 CallActiveEv ConnCreatedEv ConnConnectedEv CallCtlConnInitiatedEv for callID=102 for 2005 for 2005 for 2005 for SEP003094C25AFF for SEP003094C25AFF for SEP003094C25AFF NewCallEvent for T2
NewCallEvent for T1
12/1 TermConnCreatedEv for SEP003094C2A0B0 12/1 TermConnPassiveEv for SEP003094C2A0B0 12/1 CallCtlTermConnBridgedEv for SEP003094C2A0B0 12/1 CallCtlConnDialingEv 12/1 CallCtlConnEstablishedEv for 2005
12/1 TermConnRingingEv for SEP003094C2A0B0 12/1 CallCtTermConnRingingEvlmp for SEP003094C2A0B0 12/1 TermConnActiveEv 12/1 CallCtTermConnTalkingEv for SEP003094C2A0B0 for SEP003094C2A0B0
CallStateConnected
Now 2005 drops the Call 12/1 TermConnDroppedEv for SEP003094C25AFF 12/1 CallCtlTermConnDroppedEv for SEP003094C25AFF 12/1 TermConnDroppedEv for SEP003094C2A0B0 12/1 CallCtlTermConnDroppedEv for SEP003094C2A0B0 12/1 ConnDisconnectedEv for 2005 12/1 CallCtlConnDisconnectedEv for 2005 12/1 CallInvalidEv for callID-102 CallStateIdle for T1
CallStateIdle for T2
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-6
92476
OL-16702-01
Appendix A
JTAPI
CTI
NEW META EVENT____META_CALL_STARTING 2/1 CallActiveEv for callID=101 2/1 ConnCreatedEv for 2000 Cause 2/1 ConnConnectedEv for 2000 Cause 2/1 CallCtlConnInitiatedEv for 2000 Cause 2/1 TermConnCreatedEv for SEP0002FD3BA460 2/1 TermConnActiveEv for SEP0002FD3BA460 2/1 CallCtlTermConnTalkingEv for SEP0002FD3BA460 NEW META EVENT____META_CALL_PROGRESS 2/1 CallCtlConnDialingEv for 2000 NEW META EVENT____META_CALL_PROGRESS 2/1 CallCtlConnEstablishedEv for 2000 NEW META EVENT____META_CALL_ADDITIONAL_PARTY 2/1 ConnCreatedEv for 2001 2/1 ConnInProgressEv for 2001 2/1 CallCtlConnOfferedEv for 2001 NEW META EVENT____META_CALL_PROGRESS 2/1 ConnAlertingEv for 2001 2/1 CallCtlConnAlertingEv for 2001 2/1 TermConnCreatedEv for SEP003094C2A0B0 2/1 TermConnRingingEv for SEP003094C2A0B0 2/1 CallCtlTermConnRingingEvlmp for SEP003094C2A0B0 NEW META EVENT____META_CALL_PROGRESS 2/1 ConnConnectedEv for 2001 2/1 CallCtlConnEstablishedEv for 2001 2/1 TermConnActiveEv for SEP003094C2A0B0 2/1 CallCtlTermConnTalkingEv for SEP003094C2A0B0 NEW META EVENT____META_CALL_PROGRESS
SEP003094C2A0B0 answers the call NEW META EVENT____META_CALL_PROGRESS 2/1 CallCtlTermConnHeldEv for SEP003094C2A0B0
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
92477
CallStateHold 2001
A-7
NEW META EVENT____META_CALL_STARTING 3/1 CallActiveEv for callID=101 3/1 ConnCreatedEv for 2001 3/1 ConnConnectedEv for 2001 3/1 CallCtlConnInitiatedEv for 2001 3/1 TermConnCreatedEv for SEP0003094C2A0B0 3/1 TermConnActiveEv for SEP0003094C2A0B0 3/1 CallCtlTermConnTalkingEv for SEP0003094C2A0B0 NEW META EVENT____META_CALL_PROGRESS 3/1 CallCtlConnDialingEv for 2001 NEW META EVENT____META_CALL_PROGRESS 3/1 CallCtlConnEstablishedEv for 2001 NEW META EVENT____META_CALL_ADDITIONAL_PARTY 3/1 ConnCreatedEv for 2002 3/1 ConnInProgressEv for 2002 3/1 CallCtlConnOfferedEv for 2002 NEW META EVENT____META_CALL_PROGRESS 3/1 ConnAlertingEv for 2002 3/1 CallCtlConnAlertingEv for 2002 3/1 TermConnCreatedEv for SEP003094C2573E 3/1 TermConnRingingEv for SEP003094C2573E 3/1 CallCtlTermConnRingingEvlmp for SEP003094C2573E NEW META EVENT____META_CALL_PROGRESS 3/1 ConnConnectedEv for 2002 3/1 CallCtlConnEstablishedEv for 2002 3/1 TermConnActiveEv for SEP003094C2573E 3/1 CallCtlTermConnTalkingEv for SEP003094C2573E NEW META EVENT____META_CALL_UNKNOWN 2/1 CiscoTransferStartEv for callID=1073754118 NEW META EVENT____META_CALL_TRANSFERRING 2/1 ConnCreatedEv for 2002 2/1 ConnConnectedEv for 2002 2/1 CallCtlConnEstablishedEv for 2002 2/1 TermConnCreatedEv for SEP003094C2573E 2/1 TermConnRingingEv for SEP003094C2573E 2/1 CallCtlTermConnTalkingEv for SEP003094C2573E NEW META EVENT____META_CALL_TRANSFERRING 3/1 TermConnDroppedEv for SEP003094C2A0B0 3/1 CallCtlTermConnDroppedEv for SEP003094C2A0B0 3/1 ConnDisconnectedEv for 2001 3/1 CallCtlConnDisconnectedEv for 2001 NEW META EVENT____META_UNKNOWN 3/1 CallObservationEndedEv for callID=103 NEW META EVENT____META_CALL_TRANSFERRING 2/1 TermConnDroppedEv for SEP003094C2A0B0 2/1 CallCtlTermConnDroppedEv for SEP003094C2A0B0 2/1 ConnDisconnectedEv for 2001 2/1 CallCtlConnDisconnectedEv for 2001 NEW META EVENT____META_UNKNOWN 2/1 CiscoTransferEndEv for callID=1073754117 NEW META EVENT____META_UNKNOWN 2/1 CallObservationEndedEv for callID=103
TransferEndec
92478
Consult Transfer
The message flow for Consult Transfer acts the same as the flow for Arbitrary Transfer.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-8
OL-16702-01
Appendix A
Join/Arbitrary Conference
Scenario: 2000 Calls 2001, 2001 calls 2002, 2001 does arbitrary Conference PAGE-1 Application Events delivered at AddressCallObserver
CTI
NEW META EVENT____META_CALL_STARTING 2/1 CallActiveEv for callID=101 2/1 ConnCreatedEv for 2000 Cause 2/1 ConnConnectedEv for 2000 Cause 2/1 CallCtlConnInitiatedEv for 2000 Cause 2/1 TermConnCreatedEv for SEP0002FD3BA460 2/1 TermConnActiveEv for SEP0002FD3BA460 2/1 CallCtlTermConnTalkingEv for SEP0002FD3BA460 NEW META EVENT____META_CALL_PROGRESS 2/1 CallCtlConnDialingEv for 2000 NEW META EVENT____META_CALL_PROGRESS 2/1 CallCtlConnEstablishedEv for 2000 NEW META EVENT____META_CALL_ADDITIONAL_PARTY 2/1 ConnCreatedEv for 2001 2/1 ConnInProgressEv for 2001 2/1 CallCtlConnOfferedEv for 2001 NEW META EVENT____META_CALL_PROGRESS 2/1 ConnAlertingEv for 2001 2/1 CallCtlConnAlertingEv for 2001 2/1 TermConnCreatedEv for SEP003094C2A0B0 2/1 TermConnRingingEv for SEP003094C2A0B0 2/1 CallCtlTermConnRingingEvlmp for SEP003094C2A0B0 NEW META EVENT____META_CALL_PROGRESS 2/1 ConnConnectedEv for 2001 2/1 CallCtlConnEstablishedEv for 2001 2/1 TermConnActiveEv for SEP003094C2A0B0 2/1 CallCtlTermConnTalkingEv for SEP003094C2A0B0 NEW META EVENT____META_CALL_PROGRESS
2001 Calls 2002 NEW META EVENT____META_CALL_PROGRESS 2/1 CallCtlTermConnHeldEv for SEP003094C2A0B0
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
92479
CallStateHold 2001
A-9
Join/Arbitrary ConferencePage 2
Scenario: 2000 Calls 2001, 2001 calls 2002, 2001 does arbitrary Conference PAGE-2 Application Events delivered at AddressCallObserver JTAPI 2000 Calls 2001 NewCallEvent for 2001 CTI
NEW META EVENT____META_CALL_STARTING 3/1 CallActiveEv for callID=101 3/1 ConnCreatedEv for 2001 3/1 ConnConnectedEv for 2001 3/1 CallCtlConnInitiatedEv for 2001 3/1 TermConnCreatedEv for SEP0003094C2A0B0 3/1 TermConnActiveEv for SEP0003094C2A0B0 3/1 CallCtlTermConnTalkingEv for SEP0003094C2A0B0 NEW META EVENT____META_CALL_PROGRESS 3/1 CallCtlConnDialingEv for 2001 NEW META EVENT____META_CALL_PROGRESS 3/1 CallCtlConnEstablishedEv for 2001 NEW META EVENT____META_CALL_ADDITIONAL_PARTY 3/1 ConnCreatedEv for 2002 3/1 ConnInProgressEv for 2002 3/1 CallCtlConnOfferedEv for 2002 NEW META EVENT____META_CALL_PROGRESS 3/1 ConnAlertingEv for 2002 3/1 CallCtlConnAlertingEv for 2002 3/1 TermConnCreatedEv for SEP003094C2573E 3/1 TermConnRingingEv for SEP003094C2573E 3/1 CallCtlTermConnRingingEvlmp for SEP003094C2573E NEW META EVENT____META_CALL_PROGRESS 3/1 ConnConnectedEv for 2002 3/1 CallCtlConnEstablishedEv for 2002 3/1 TermConnActiveEv for SEP003094C2573E 3/1 CallCtlTermConnTalkingEv for SEP003094C2573E NEW META EVENT____META_UNKNOWN 2/1 CiscoConferenceStartedEv for callID=1073754118 NEW META EVENT____META_CALL_MERGING 2/1 CallCtlTermConnTalkingEv for SEP003094C2A0B0 NEW META EVENT____META_CALL_MERGING 2/1 ConnCreatedEv for 2002 2/1 ConnConnectedEv for 2002 2/1 CallCtlConnEstablishedEv for 2002 2/1 TermConnCreatedEv for SEP003094C2573E 2/1 TermConnActiveEv for SEP003094C2573E 2/1 CallCtlTermConnTalkingEv for SEP003094C2573E NEW META EVENT____META_CALL_MERGING 3/1 TermConnDroppedEv for SEP003094C2A0B0 3/1 CallCtlTermConnDroppedEv for SEP003094C2A0B0 3/1 ConnDisconnectedEv for 2001 3/1 CallCtlConnDisconnectedEv for 2001 NEW META EVENT____META_UNKNOWN 3/1 CallObservationEndedEv for callID=103 NEW META EVENT____META_UNKNOWN 2/1 CiscoConferenceEndedEv for callID=1073754117 NEW META EVENT____META_UNKNOWN 2/1 CallObservationEndedEv for callID=103
2001 Completes the Conference/Application completes arbitrary conference TransferStartec CallStateConnected for 2001 GCIDChangedEvent
ConferenceEndec
92480
Consult Conference
The message flow for Consult Conference acts the same as the flow for Arbitrary Conference.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-10
OL-16702-01
Appendix A
Application conferences the two calls on B1and B2 by invoking GC1.conference(GC2) to chain TermConnActiveEv TermB GC1 two conference call. CallCtlTermConnTalkingEv TermB GC1 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE ConnCreatedEv Conference-2 GC1 ConnConnectedEv Conference-2 GC1 CallCtlConnEstablishedEv Conference-2 GC1 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE CiscoConferenceChainAddedEv GC1 Ev.getAddedConnection will return connection for Conference-2 Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-2 Ev.getConferenceChain().getChainedConferenceCalls() will return GC1 Event for CallObserver at B2, D & E: ConnDisconnectedEv B2 GC2 Cause=NORMAL CallCtlConnDisconnectedEv B2 GC2 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE TermConnDroppedEv TermB GC2 Cause=NORMAL CallCtlTermConnDroppedEv TermB GC2 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE ConnCreatedEv Conference-1 GC2 ConnConnectedEv Conference-1 GC2 CallCtlConnEstablishedEv Conference-1 GC2 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE CiscoConferenceChainAddedEv GC2 Ev.getAddedConnection will return connection of Conference-1 Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-1 & Conference-2 Ev.getConferenceChain().getChainedConferenceCalls() will return GC1 & GC2
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-11
Events Event for CallObserver at B2, D & E: TermConnActiveEv TermB GC2 CallCtlTermConnTalkingEv TermB GC2 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE ConnCreatedEv Conference-1 GC2 ConnConnectedEv Conference-1 GC2 CallCtlConnEstablishedEv Conference-1 GC2 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE CiscoConferenceChainAddedEv GC2 Ev.getAddedConnection will return connection for Conference-1 Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-1 Ev.getConferenceChain().getChainedConferenceCalls() will return GC2 Events for CallObservers at A, B1 & C: ConnDisconnectedEv B1 GC1 Cause=NORMAL CallCtlConnDisconnectedEv B1 GC1 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE TermConnDroppedEv TermB GC1 Cause=NORMAL CallCtlTermConnDroppedEv TermB GC1 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE ConnCreatedEv Conference-2 GC1 ConnConnectedEv Conference-2 GC1 CallCtlConnEstablishedEv Conference-2 GC1 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE CiscoConferenceChainAddedEv GC1 Ev.getAddedConnection will return connection for Conference-2 Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-2 Ev.getConferenceChain().getChainedConferenceCalls() will return GC1
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-12
OL-16702-01
Appendix A
Action
Events A, B1, C are in conference-1 (GC1), B1,D, E are Event for CallObserver at A, B1 & C: in conference-2 (GC2), B2, F, G are in TermConnActiveEv TermB GC1 conference-3 (GC-3) CallCtlTermConnTalkingEv TermB GC1 Cause=NORMAL, Application completes conference at C by callCtlCause=CAUSE_CONFERENCE initiating GC1.conference(GC2, GC3) setting ConnCreatedEv Conference-2 GC1 B1 as controller. ConnConnectedEv Conference-2 GC1 CallCtlConnEstablishedEv Conference-2 GC1 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE CiscoConferenceChainAddedEv GC1 Ev.getAddedConnection will return connection for Conference-2 Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-2 Ev.getConferenceChain().getChainedConferenceCalls() will return GC1 TermConnDroppedEv TermB GC2 CallCtlTermConnDroppedEv TermB GC2 ConnCreatedEv Conference-3 GC1 ConnConnectedEv Conference-3 GC1 CallCtlConnEstablishedEv Conference-3 GC1 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE CiscoConferenceChainAddedEv GC1 Ev.getAddedConnection will return connection for Conference-3 Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-2 & Conference-3 Ev.getConferenceChain().getChainedConferenceCalls() will return GC2 & GC3
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-13
Action
Events Event for CallObserver at B1,D & E: ConnDisconnectedEv B1 GC2 Cause=NORMAL CallCtlConnDisconnectedEv B1 GC2 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE TermConnDroppedEv TermB GC2 Cause=NORMAL CallCtlTermConnDroppedEv TermB GC2 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE ConnCreatedEv Conference-1 GC2 ConnConnectedEv Conference-1 GC2 CallCtlConnEstablishedEv Conference-1 GC2 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE CiscoConferenceChainAddedEv GC2 Ev.getAddedConnection will return connection for Conference-1 Ev.getConferenceChain().getChainedConferenceConnections() will return connections of Conference-1-GC2 Ev.getConferenceChain().getChainedConferenceCalls() will return GC2 Event for CallObserver at B2, F & G: ConnDisconnectedEv B2 GC3 Cause=NORMAL CallCtlConnDisconnectedEv B2 GC3 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE TermConnDroppedEv TermB GC3 Cause=NORMAL CallCtlTermConnDroppedEv TermB GC3 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE ConnCreatedEv Conference-1 GC3 ConnConnectedEv Conference-1 GC3 CallCtlConnEstablishedEv Conference-1 GC3 Cause=NORMAL, callCtlCause=CAUSE_CONFERENCE CiscoConferenceChainAddedEv GC3 Ev.getAddedConnection will return connection for Conference-1 Ev.getConferenceChain().getChainedConferenceConnections() will returnconnections of Conference-1 Ev.getConferenceChain().getChainedConferenceCalls() will return GC3
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-14
OL-16702-01
Appendix A
Action Application sets the requestor as B2 and calls GC2.conference(GC1) getControllerAddress() returns B2. getOriginalControllerAddress() returns B1.
Events A CiscoConferenceStartEv CallCtlTermConnTalkingEv TermB GC1 ConnCreatedEv D GC1 ConnConnectedEv D GC1 CallCtlTermConnDroppedEv TermB GC2 CiscoConferenceEndEv B1 CallCtlTermConnHeldEv TermB GC1 CiscoConferenceStartEv CallCtlTermConnTalkingEv TermB GC1 ConnCreatedEv D ConnConnectedEv CiscoConferenceEndEv B2 ConnDisconnectedEv B GC2 CallCtlTermConnHeldEv TermB GC2 D CallActiveEv GC2 ConnAlertingEv D GC2 ConnConnectedEv D GC2 CiscoConferenceStartEv TermConnDroppedEv TermB GC2 CallActiveEv GC1 CiscoCallChangedEv TermConnTalkingEv TermB GC1 TermConnDroppedEv TermD GC2 CallObservationEndedEv GC2 CiscoConferenceEndEv
If application uses B1 as request controller in the above setup getControllerAddress() returns B1. getOriginalControllerAddress() returns B1.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-15
Barge
Scenario: 2005 is Shared line appearing on terminal SEP003094C25AFF (T1) and Terminal SEP00394C2A0B0(T2). 2000 makes calls to 2005, 2005-T1 answers the Call. Now T2 Barges into the Call. Application Events delivered at AddressCallObserver NEW META EVENT________META_CALL_STARTING
13/1 CallActiveEv 13/1 CallCreatedEx 13/1 CallConnectedEv 13/1 CallCtlConnEstablishedEv 13/1 TermConnCreatedEv 13/1 TermConnActiveEv 13/1 CallCtlTermConnTalkingEv 13/1 ConnCreatedEx 13/1 ConnInProgressEv 13/1 CallCtlConnOfferedEv 13/1 ConnAlertingEv 13/1 CallCtlConnAlertingEv 13/1 TermConnCreatedEv 13/1 TermConnRingingEv 13/1 CalCtlTermConnRingingEv 13/1 TermConnCreatedEv 13/1 TermConnRingingEv 13/1 CallCtlTermConnRingingEv 13/1 ConnConnectedEv 13/1 CallCtlConnEstablishedEv 13/1 TermConnPassiveEv 13/1 CallCtlTermConnBridgedEv 13/1 TermConnActiveEv 13/1 CallCtlTermConnTalkingEv for callID-101 for 2000 for 2000 for 2000 for SEP0002FD3BA46D for SEP0002FD3BA46D for SEP0002FD3BA46D for 2005 for 2005 for 2005 for for for for for 2005 2005 SEP003094C25AFF SEP003094C25AFF SEP003094C25AFF
JTAPI
JTAPI
CallStateAccepted-T1
T2 Barges into the Call. A new call is temporarily created due to barge. NEW META EVENT________META_CALL_STARTING NewCallEvent for T1-RIU 14/1 CallActiveEv for callID-101 14/1 ConnCreatedEv for 2005 NewCallEvent for T2
14/1 ConnConnectedEv 14/1 CalCtlCommInitiatedEv 14/1 TermConnCreatedEv 14/1 TermConnActiveEv 14/1 CallCtlTermConnTalingEv 14/1 CallCtlConnDialingEv 14/1 TermConnCreatedEv 14/1 TermConnPassiveEv 14/1 CallCtlTermConnBridgedEv 14/1 CallCtlConnEstablishedEv 14/1 ConnCreatedEv 14/1 ConnCreatedEv 14/1 TermConnDroppedEv 14/1 CallCtlTermConnDroppedEv 14/ TermConnActiveEv 14/1 CallCtlTermConnTalkingEv 14/1 TermConnDroppedEv 14/1 CallCtlTermConnDroppedEv 14/1 ConnDisconnectedEv 14/1 CallCtlConnDisconnectedEv 14/1 CallInvalidEv 14/ CallObservationEndedEv for for for for for 2005 2005 SEP003094C2A0B0 SEP003094C2A0B0 SEP003094C2A0B0
CallStateDialingT1-RIU CallStateDialingT2
CallStateProceedingT1-RIU CallStateProceedingT1
GlobalCallIDChangedEv-T1-RIU GlonalCallIDChangedEv-T2
NEW META EVENT________META_UNKNOWN T2 Drops Out of the Barged Call CallStateIdle-T2 TerminalConnection T2 goes back to Passive/Bridged
141470
13/1 TermConnPassiveEv 14/1 CallCtlTermConnBridgedEv for SEP003094C2A0B0 for SEP003094C2A0B0
CallStateIdle-T1-RIU
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-16
OL-16702-01
Appendix A
CBarge
Scenario: 2005 is Shared line appearing on terminal SEP003094C25AFF (T1) and Terminal SEP00394C2A0B0(T2). 2000 makes calls to 2005, 2005-T1 answers the Call. Now T2 CBarges into the Call. Application Events delivered at AddressCallObserver NEW META EVENT________META_CALL_STARTING
13/1 CallActiveEv 13/1 CallCreatedEx 13/1 CallConnectedEv 13/1 CallCtlConnEstablishedEv 13/1 TermConnCreatedEv 13/1 TermConnActiveEv 13/1 CallCtlTermConnTalkingEv 13/1 ConnCreatedEx 13/1 ConnInProgressEv 13/1 CallCtlConnOfferedEv 13/1 ConnAlertingEv 13/1 CallCtlConnAlertingEv 13/1 TermConnCreatedEv 13/1 TermConnRingingEv 13/1 CalCtlTermConnRingingEv 13/1 TermConnCreatedEv 13/1 TermConnRingingEv 13/1 CallCtlTernConnRingingEv 13/1 ConnConnectedEv 13/1 CallCtlConnEstablishedEv 13/1 TermConnPassiveEv 13/1 CallCtlTermConnBridgedEv 13/1 TermConnActiveEv 13/1 CallCtlTermConnTalkingEv for callID-101 for 2000 for 2000 for 2000 for SEP0002FD3BA46D for SEP0002FD3BA46D for SEP0002FD3BA46D for 2005 for 2005 for 2005 for 2005 for 2005 for SEP003094C25AFF for SEP003094C25AFF for SEP003094C25AFF for SEP003094C2A0B0 for SEP003094C2A0B0 for SEP003094C2A0B0 for 2005 for 2005 for SEP003094C2A0B0 for SEP003094C2A0B0 for SEP003094C25AFF for SEP003094C25AFF
JTAPI
JTAPI
CallStateAccepted-T1
T2 Barges into the Call. A new call is temporarily created due to barge. NEW META EVENT________META_CALL_STARTING NewCallEvent for T1-RIU 14/1 CallActiveEv for callID-101 14/1 ConnCreatedEv for 2005 NewCallEvent for T2
14/1 ConnConnectedEv 14/1 CalCtlCommInitiatedEv 14/1 TermConnCreatedEv 14/1 TermConnActiveEv 14/1 CallCtlTermConnTalingEv 14/1 CallCtlConnDialingEv 14/1 TermConnCreatedEv 14/1 TermConnPassiveEv 14/1 CallCtlTermConnBridgedEv 14/1 CallCtlConnEstablishedEv 14/1 ConnCreatedEv 14/1 ConnCreatedEv 14/1 TermConnDroppedEv 14/1 CallCtlTermConnDroppedEv 14/ TermConnActiveEv 14/1 CallCtlTermConnTalkingEv 14/1 TermConnDroppedEv 14/1 CallCtlTermConnDroppedEv 14/1 ConnDisconnectedEv 14/1 CallCtlConnDisconnectedEv 14/1 CallInvalidEv 14/ CallObservationEndedEv for 2005 for 2005 for SEP003094C2A0B0 for SEP003094C2A0B0 for SEP003094C2A0B0 for 2005 for SEP003094C25AFF for SEP003094C25AFF for SEP003094C25AFF for 2005 for Unknown for Unknown for SEP003094C25AFF for SEP003094C25AFF for SEP003094C2A0B0 for SEP003094C2A0B0 for SEP003094C2A0B0 for SEP003094C2A0B0 for 2005 for 2005 for callID-102 for callID-103
CallStateDialingT1-RIU CallStateDialingT2
CallStateProceedingT1-RIU CallStateProceedingT1
GlobalCallIDChangedEv-T1-RIU GlonalCallIDChangedEv-T2
NEW META EVENT________META_UNKNOWN T2 Drops Out of the Barged Call CallStateIdle-T2 TerminalConnection T2 goes back to Passive/Bridged
141471
13/1 TermConnPassiveEv 14/1 CallCtlTermConnBridgedEv for SEP003094C2A0B0 for SEP003094C2A0B0
CallStateIdle-T1-RIU
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-17
Privacy
A,A' are SharedLine, A calls B. Now A presses Privacy key to enable privacy Application CallObserver CallManager/ CallImpl ICCNLineA/A' CTI
CiscoTermConnPrivChgEv CallCtlTermConnBridged
CallCtlTermConnBridged
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-18
OL-16702-01
Appendix A
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-19
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-20
OL-16702-01
Appendix A
A, B, and C appear in an applications controlled list. D is does not appear in the control list. A calls B. B redirects call to D with C as preferredOriginalCalledParty.
Application will see following events for parties A and B: Meta Event Cause META_CALL_ADDING_PARTY Call Call 1 Event ConnCreatedEv for D ConnConnectedEv for D CallCtlConnEstablishedEv for D ConnDisconnectedEv for B CallCtlConnDisconnectedEv for B TermConnDroppedEv for B CallCtlTermConnDroppedEv for B CallObservationEndedEv for B Fields CallingParty=A CalledParty = B LastRedirectedParty=C CurrentCalledParty=D CallingParty=A CalledParty = B LastRedirectedParty=C CurrentCalledParty=D
META_CALL_REMOVE_PARTY
Call 1
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-21
Note
The specified event group may not be in the same order and might change depending on where parties are present in the cluster, on the load, and other conditions.
Scenario Two
A, B, and C do not appear in the Control list, and D is in the application control list. A calls B. B redirects the call to D with C as preferredOriginalCalledParty.
Call Call1
Event CallActiveEv ConnCreatedEv for D ConnInProgressEv for D CallCtlConnOfferedEv for D ConnCreatedEv for A CallCtlConnInitiatedEv for A ConnAlertingEv for D CallCtlConnAlertingEv for D TermConnCreatedEv for D CallCtlTermConnRingingEv for D ConnConnectedEv for A CallCtlConnEstablishedEv for A ConnConnectedEv for D CallCtlConnEstablishedEv for D TermConnActiveEv for D CallCtlTermConnTalkingEv for D
META_CALL_PROGRESS
Call1
META_CALL_PROGRESS
Call
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-22
OL-16702-01
Appendix A
Action Call.transfer(string)
CallActiveEv Cause: NEW META EVENT__ META_CALL_REMOVING_P CAUSE_NEW_CALL ARTY ConnCreatedEv 5003 Cause: CAUSE_NORMAL TermConnDroppedEv CTIP2 Cause: CAUSE_NORMAL CallCtlTermConnDroppedEv CTIP2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER ConnInProgressEv 5003 Cause: CAUSE_NORMAL CallCtlConnOfferedEv 5003 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER ConnCreatedEv 5001Cause: CAUSE_NORMAL ConnConnectedEv 5001 Cause: CAUSE_NORMAL CallCtlConnEstablishedEv 5001Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL
ConnDisconnectedEv 5002 Cause: CAUSE_NORMAL CallCtlConnDisconnectedEv 5002 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-23
Address C (5003) Terminal CTIP3 ConnAlertingEv 5003 Cause: CAUSE_NORMALCallCtlCon nAlertingEv 5003 Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL TermConnCreatedEv CTIP3 TermConnRingingEv CTIP3Cause: CAUSE_NORMAL CallCtlTermConnRingingEvIm pl CTIP3 Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL CiscoRTPInputStartedEv Cause: CAUSE_NORMAL CiscoRTPOutputStartedEv Cause: CAUSE_NORMAL ConnConnectedEv 2004 Cause: CAUSE_NORMAL CallCtlConnEstablishedEv 5003Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL
NEW META EVENT_________META_UN CiscoRTPOutputStartedEv KNOWN Cause: CAUSE_NORMAL CallObservationEndedEv ConnConnectedEv 5003 Cause: CAUSE_NORMAL CAUSE_NORMAL CallCtlConnEstablishedEv 5003 Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-24
OL-16702-01
Appendix A
Address C (5003) Terminal CTIP3 TermConnActiveEv CTIP3 Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv CTIP3 Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL CiscoRTPInputStoppedEv Cause: CAUSE_NORMAL CiscoRTPOutputStoppedEv Cause: CAUSE_NORMAL ConnDisconnectedEv 5001 Cause: CAUSE_NORMAL CallCtlConnDisconnectedEv 5001 Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL TermConnDroppedEv CTIP3 Cause: CAUSE_NORMAL CallCtlTermConnDroppedEv CTIP3 Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL ConnDisconnectedEv 5003 Cause: CAUSE_NORMAL CallCtlConnDisconnectedEv 5003 Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL META_UNKNOWN CallInvalidEv [#32] Cause: CAUSE_NORMAL
The application controls the device Route Point (RP) and registers RP . A and B are PNO and appear within the Cisco Unified Communications Manager cluster.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-25
A calls RP. Call arrives at RP Action Call Arrives at RP Event RouteEvent Fields State = ROUTE getCurrentRouteAddress () = RP getCallingAddress () = A getCallingTerminal () = SEPA (Terminal associated with A) State = ROUTE_USED getCallingAddress () = A getCallingTerminal () = SEPA (Terminal associated with A) getRouteUsed () = C
Application invokes
RouteUsedEvent
selectRoute( routeselected[], callingsearchspace, modifiyingcallingnumber[] ) where routeSelected[] = C callingSearchSpace = CiscoRouteSession.DEFAULT_ SEARCH_SPACE Application invokes RouteEndEvent
endRoute (ERROR_NONE)
Scenario Two
The application is controls A and B. A calls RP, which selects Route call to B with modified calling number as M.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-26
OL-16702-01
Appendix A
Action
Event
Fields getCallingAddress() = A getCalledAddress() = getLastRedirectedAddress ()= getCurrentCallingAddress ()= A getCurrentCalledAddress()= getModifiedCallingAddress()=A getModifiedCalledAddress() =
A calls RP, which is not in NEW META controlled list. EVENT_________META_CALL_ STARTING CallActiveEv Cause: CAUSE_NEW_CALL ConnCreatedEv A Cause: CAUSE_NORMAL ConnConnectedEv A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL TermConnCreatedEv SEPA Cause: Other: 0 TermConnActiveEv SEPA Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv SEPA Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL NEW META EVENT_________META_CALL_ PROGRESS CallCtlConnDialingEv A
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-27
Action Another application controls the RP selectRoute to B with modifying calling number as M.
Event NEW META EVENT_________META_CALL_ ADDITIONAL_PARTY ConnCreatedEv B ConnInProgressEv B CallCtlConnOfferedEv B ConnDisconnectedEv RP CallCtlConnDisconnectedEv RP
Fields getCallingAddress() = A getCalledAddress() = B getLastRedirectedAddress ()= RP getCurrentCallingAddress ()= A getCurrentCalledAddress()= B getModifiedCallingAddress()= M getModifiedCalledAddress() =B
NEW META EVENT_________META_CALL_ PROGRESS ConnAlertingEv B CallCtlConnAlertingEv B TermConnCreatedEv B TermConnRingingEv B CallCtlTermConnRingingEv B B answers the call. ConnConnectedEv B CallCtlConnEstablishedEv B TermConnActiveEv B CallCtlTermConnTalkingEv B
getCallingAddress() = A getCalledAddress() = B getLastRedirectedAddress ()= RP getCurrentCallingAddress ()= A getCurrentCalledAddress()= B getModifiedCallingAddress()= M getModifiedCalledAddress() =B getCallingAddress() = A getCalledAddress() = B getLastRedirectedAddress ()= RP getCurrentCallingAddress ()= A getCurrentCalledAddress()= B getModifiedCallingAddress()= M getModifiedCalledAddress() =B
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-28
OL-16702-01
Appendix A
The application controls A and B; B requires a forced authorization code (FAC) to extend the call. Action A calls B by using call.Connect(), or A places a consult call to B by using Call.Consult(). Event NEW META EVENT_________META_CALL_STARTING CallActiveEv Cause: CAUSE_NEW_CALL ConnCreatedEv A Cause: CAUSE_NORMAL ConnConnectedEv A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL TermConnCreatedEv SEPA Cause: Other: 0 TermConnActiveEv SEPA Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv SEPA Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL NEW META EVENT_________META_CALL_PROGRESS CallCtlConnDialingEv A NEW META EVENT_________META_CALL_PROGRESS CiscoToneChangedEv ToneType = CiscoTone.ZIPZIP cause = CiscoCallEv.CAUSE_FAC_CMC getWhichCodRequired = CiscoToneChangedEv. FAC_REQUIRED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-29
Event NEW META EVENT_________META_CALL_ADDITIONAL_PARTY ConnCreatedEv B ConnInProgressEv B CallCtlConnOfferedEv B NEW META EVENT_________META_CALL_PROGRESS ConnAlertingEv B CallCtlConnAlertingEv B TermConnCreatedEv B TermConnRingingEv B CallCtlTermConnRingingEv B ConnConnectedEv B CallCtlConnEstablishedEv B
TermConnActiveEv B
The application controls A and B; B requires both an FAC and a CMC (client matter code) to extend the call. Action A calls B by using call.Connect(), or A places a consult call to B by using Call.Consult(). Event NEW META EVENT_________META_CALL_STARTING CallActiveEv Cause: CAUSE_NEW_CALL ConnCreatedEv A Cause: CAUSE_NORMAL ConnConnectedEv A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL TermConnCreatedEv SEPA Cause: Other: 0 TermConnActiveEv SEPA Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv SEPA Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL NEW META EVENT_________META_CALL_PROGRESS CallCtlConnDialingEv A NEW META EVENT_________META_CALL_PROGRESS CiscoToneChangedEv ToneType = CiscoTone.ZIPZIP cause = CiscoCallEv.CAUSE_FAC_CMC getWhichCodRequired = CiscoToneChangedEv. FAC_CMC_REQUIRED Application enters FAC code digits with # termination by using CiscoConnection.addToAddress within the T302 timer. NEW META EVENT_________META_CALL_PROGRESS CiscoToneChangedEv ToneType = CiscoTone.ZIPZIP cause = CiscoCallEv.CAUSE_FAC_CMC getWhichCodRequired = CiscoToneChangedEv. CMC_REQUIRED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-30
OL-16702-01
Appendix A
Action Application enters CMC code digits with # terminated by using CiscoConnection.addToAddress within T302 timer.
Event NEW META EVENT_________META_CALL_ADDITIONAL_PARTY ConnCreatedEv B ConnInProgressEv B CallCtlConnOfferedEv B NEW META EVENT_________META_CALL_PROGRESS ConnAlertingEv B CallCtlConnAlertingEv B TermConnCreatedEv B TermConnRingingEv B CallCtlTermConnRingingEv B
Scenario Three
The application controls A and B; B requires a CMC, and the application enters an invalid code. Action A calls B by using call.Connect(), or A places a consult call to B by using Call.Consult(). Event NEW META EVENT_________META_CALL_STARTING CallActiveEv Cause: CAUSE_NEW_CALL ConnCreatedEv A Cause: CAUSE_NORMAL ConnConnectedEv A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL TermConnCreatedEv SEPA Cause: Other: 0 TermConnActiveEv SEPA Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv SEPA Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL NEW META EVENT_________META_CALL_PROGRESS CallCtlConnDialingEv A NEW META EVENT_________META_CALL_PROGRESS CiscoToneChangedEv ToneType = CiscoTone.ZIPZIP cause = CiscoCallEv.CAUSE_FAC_CMC getWhichCodRequired = CiscoToneChangedEv. CMC_REQUIRED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-31
Action The application enters the incorrect CMC digits (# terminated) by using CiscoConnection.addToAddress within the T302 timer limit.
The application receives reorder NEW META EVENT_________META_CALL_ENDING tone. TermConnDroppedEv CallCtlTermConnDropped ConnDisconnectedEv CallCtlConnDisconnectedEv CallInvalidEv CallObservationEndedEv
Scenario Four
The application controls both A and B; A calls B; B redirects the call to C, which needs both an FAC and a CMC. Action A calls B by using call.Connect(), or A places a consult call to B by using Call.Consult(). Event NEW META EVENT_________META_CALL_STARTING CallActiveEv Cause: CAUSE_NEW_CALL ConnCreatedEv A Cause: CAUSE_NORMAL ConnConnectedEv A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL TermConnCreatedEv SEPA Cause: Other: 0 TermConnActiveEv SEPA Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv SEPA Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL NEW META EVENT_________META_CALL_PROGRESS CallCtlConnDialingEv A NEW METAEVENT_________META_CALL_ADDITIONAL_PARTY ConnCreatedEv B ConnInProgressEv B CallCtlConnOfferedEv B NEW META EVENT_________META_CALL_PROGRESS ConnAlertingEv B CallCtlConnAlertingEv B TermConnCreatedEv SEPB TermConnRingingEv SEPB CallCtlTermConnRingingEv SEPB ConnConnectedEv B CallCtlConnEstablishedEv B TermConnActiveEv SEPB CallCtlTermConnTalkingEv SEPB
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-32
OL-16702-01
Appendix A
Action B issues a redirect request to C and passes an FAC and a CMC code.
Event NEW META EVENT_________META_CALL_REMOVING_PARTY TermConnDroppedEv SEPB CallCtlTermConnDroppedEv SEPB Cause: CAUSE_NORMAL CallControlCause: CAUSE_REDIRECTED CiscoCause: CAUSE_NORMALUNSPECIFIED ConnDisconnectedEv B Cause: CAUSE_NORMAL CiscoCause: CAUSE_NORMALUNSPECIFIED CallCtlConnDisconnectedEv B Cause: CAUSE_NORMAL CallControlCause: CAUSE_REDIRECTED CiscoCause: CAUSE_NORMALUNSPECIFIED NEW META EVENT_________META_CALL_PROGRESS ConnCreatedEv C Cause: CAUSE_NORMAL CiscoCause: CAUSE_NORMALUNSPECIFIED NEW META EVENT_________META_CALL_PROGRESS ConnInProgressEv C Cause: CAUSE_NORMAL CiscoCause: CAUSE_NORMALUNSPECIFIED CallCtlConnOfferedEv C Cause: CAUSE_NORMAL CallControlCause: CAUSE_REDIRECTED CiscoCause: CAUSE_NORMALUNSPECIFIED NEW META EVENT_________META_CALL_PROGRESS ConnAlertingEv A Cause: CAUSE_NORMAL CiscoCause: CAUSE_NORMALUNSPECIFIED CallCtlConnAlertingEv C Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL CiscoCause: CAUSE_NORMALUNSPECIFIED NEW META EVENT_________META_CALL_PROGRESS ConnConnectedEv C Cause: CAUSE_NORMAL CiscoCause: CAUSE_NOERROR CallCtlConnEstablishedEv C Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL CiscoCause: CAUSE_NOERROR
Scenario Five
Application controls the device Route Point (RP) and registers the RP. A and B are PNO and within the Cisco Unified Communications Manager cluster. Action Call arrives at RP Event RouteEvent Fields State = ROUTE getCurrentRouteAddress () = RP getCallingAddress () = A getCallingTerminal () = SEPA (Terminal associated with A)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-33
Action Application invokes selectRoute(routeselected[], callingsearchspace, modifiyingcallingnumber[], preferredOriginalCdNumber[], preferredOriginalCdOption[], facCode[], cmcCode[]) where routeSelected[] = B callingSearchSpace = CiscoRouteSession.DEFAULT_ SEARCH_SPACE modifyingCgNumber = null, preferredOriginalCdNumber = null, preferredOriginalCdOption = CiscoRouteSession.DONOT_R ESET_ORIGINALCALLED, facCode[] = facCode for B cmcCode[] = cmcCode for B Application invokes endRoute (ERROR_NONE)
Event RouteUsedEvent
Fields State = ROUTE_USED getCallingAddress () = A getCallingTerminal () = SEPA (Terminal associated with A) getRouteUsed () = B
RouteEndEvent
JTAPI would return CiscoTerminal object and If the application already has a terminal where the 2001 address already exists, that the following events get sent is, 2001 is a SharedLine Address. CiscoTermCreatedEv CTIPort1<---------------CiscoAddrCreated 2000<-----------------------Now, the application invokes CiscoProvider.CreateTerminal(CTIPort1) CiscoAddrAddedToTerminalEv 2001<-------Application invokes CiscoProvider. CreateTerminal(CTIPortX) where CTIPortX does not exist in Cisco Unified Communications Manager cluster. JTAPI would throw an exception: InvalidArgumentException
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-34
OL-16702-01
Appendix A
No. 4
Action Application invokes CiscoProvider. CreateTerminal(CTIPort1) where CiscoProviderCapabilities.canObserve AnyTerminal() returns FALSE.
Superprovider user opens provider and opens a few devices in Superprovider mode which are not in control list. From admin pages, Superprovider privilege is removed. Application receives CiscoProviderCapabilityChangedEvent event. JTAPI sends CiscoTermRemovedEv all the devices which are opened / acquired and are not in the control list. JTAPI will send provider OOS to application, CiscoTermRemovedEv to devices not in control list and will reopen connection to CTI. When connect succeeds, JTAPI will send provider in service event to the application. Else, it will close the provider.
Scenario Two
Normal user opens provider and opens a few devices in control list. From admin pages, Superprovider privilege is added to the user. Application receives CiscoProviderCapabilityChangedEvent event. User will now be able to acquire/open devices not in its control list.
Scenario Three
Normal user opens provider and opens a few park DNs. From admin pages, park DN monitor privilege is removed for the user. Application receives CiscoProviderCapabilityChangedEvent event. JTAPI will cleanup all park DN addresses.
Scenario Four
Normal user opens provider. From admin pages, park DN monitor privilege is added for the user. Application receives CiscoProviderCapabilityChangedEvent event. Application registers the park DN monitoring feature and is able to monitor park DN.
Scenario Five
Normal user opens provider. From admin pages, modify calling party privilege is removed for the user. Application receives CiscoProviderCapabilityChangedEvent event. Application is not able to change the calling party number during redirect. JTAPI will throw error if application tries to do this.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-35
Scenario Six
Normal user opens provider. From admin pages, modify calling party privilege is added for the user. Application receives CiscoProviderCapabilityChangedEvent event. Application is able to change the calling party number in a call during redirect.
Scenario Seven
Superprovider user opens provider and acquires a device not in control list. From admin pages, the device is deleted. Application receives CiscoTermRemovedEv event. Device is closed from JTAPI perspective.
A registered with CM1, B is registered with These events get delivered to applications: CM2, and C registered with CM3. CallCtrlConnectionEstablishedEv A A calls B (GC1); B transfers the call to C. CallCtrlConnectionDisConnectEv B The application is monitors C. The PR feature replaces the path after the call gets OpenLogicalChannelEvent if C is a CTI device (Dynamically registered CTIPorts and RP) connected to C. The same action applies to scenarios that involve call forward at B. (The called party transfers the call.)
A registered with CM1, B registered with CM2, and C registered with CM3. B calls C; C answers; B transfers the call to A. A answers. The application is monitors only C. (The calling party transfers the call.)
In this case, both A are C represent called parties when transfer completes. After the call is answered, PR replaces the path. In this case, A and C represent IP phones; the display will be updated as a part of PR feature operation, that makes either A or C as calling. JTAPI events: GC1: CallCtlConnEstablishedEv A GC1: CallCtlConnDisconnectedEv B
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-36
OL-16702-01
Appendix A
No. 3
Action 3.Trombone case: A registered to CM1, B registered to CM2, and C registered to CM1. A calls B (GC1); B answers and transfers the call to C (GC2). Path replacement connects A and C bypassing CM2. The application observes both A and C. (The called party transfers the call.)
Event For GC1 Call Observer: GC1: CallCtlConnEstablishedEv C GC1: CallCtlConnDisconnected B Before the PR feature replaces the path, the application sees two calls: GC1 with connections to A and C (external) and GC2 with connections to C and A (external). When the PR feature replaces the path, either GC1 changes GC2, or GC2 changes to GC1. Assuming A's GCID changes from GC1 to GC2: GC1: CiscoCallChangedEv (oldGCID=GC1,newGCID=GC2) GC1: CallCtlConnDisconnected for A GC1: CallCtlConnDisconnected for C GC1: CallInValid GC2: TermConnTalkingEvent for TerminalA cause= CAUSE_QSIG_PR
Trombone case: A registered to CM1, B registered to CM2, and C registered to CM1. B calls A and transfers the call to C. Path replacement connects A and C, bypassing CM2. Application observes both A and C. (The calling party transfers the call.)
Before the PR feature replaces the path, the application will see two calls: GC1 with connections to A and B (external) and GC2 with connections to C and B (external). In this case, the application will not see any transfer start events. When PR feature replaces the path, it updates the display of A and C and path gets replaced, resulting in a GCID change. Assuming A's GCID is changed and made the calling party, the following JTAPI events occur: GC1: CiscoCallChangedEv (GC1 to GC2) GC1: CallCtlConnDisconnected for A GC1: CallCtlConnDisconnected for C GC1: CallInValid GC2: ConnCreatedEv A GC2: ConnConnectedEv A GC2: TermConnTalkingEvent for TerminalA cause= CAUSE_QSIG_PR
A registered to CM1, B registered to CM2, Path replacement gets abandoned. and C registered to CM1. A calls B; B transfers the call to C. C answers and before path replacement completes, C invokes a feature (park, redirect, and so on).
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-37
No. 6
Action
Event
In some conditions, call processing ignores JTAPI: feature requests (redirect, park, transfer, Exception will be thrown from JTAPI for feature and so on). This happens when a setup requests. request is sent out, and the local CM is waiting for connect from the other end. In some cases, the application could receive No events dead air when CM goes down when the PR JTAPI Apps: Hang up the call feature is trying to switch the RTP path. This could happen to a previously connected call.
CiscoTermDeviceStateIdleEv
CiscoTermDSIdleEv
DeviceStateIdleEv
CtiDeviceStateIdle
CtiDeviceStateActive CiscoTermDSActiveEv CiscoTermDeviceStateActiveEv CtiDeviceStateAlerting DeviceStateAlertingEv CiscoTermDSAlertingEv CiscoTermDeviceStateAlertingEv CiscoTermDSHeldEv CiscoTermDeviceStateHeldEv DeviceStateHeldEv CtiDeviceStateHeld DeviceStateActiveEv
Partition Support
Since the address hashing mechanism in JTAPI has changed, this feature is expected to have performance degradation in address lookup time and during load tests.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-38
OL-16702-01
120189
Appendix A
Example A-1
Basic Address Operation JTAPI Three address objects created Addr A Addr B Addr C
A P P L I C A T I O N
Open Address A.
In this case, there are three addresses which belong to three different partitions: A(2001, P1), B(2001, P2) and C(2001, P3), where 2001 indicates DN and P1, P2, and P3 denote different partitions. When JTAPI calls provider.getAddress(2001), the provider object will return an array of three address objects containing A, B and C, since all of them have the same DN. The application and JTAPI will distinguish between the three addresses by using the getPartition() method of the address object.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
141473
A-39
Example A-2
Using getAddress(String number, String partition) JTAPI Three address objects created Addr A, 2001, P1
A P P L I C A T I O N
In this case, there are three addresses which belong to three different partitions. Let us denote them by A(2001, P1), B(2001, P2) and C(2001, P3), where 2001, indicates DN and P1,P2,P3 denote different partitions. When JTAPI calls provider.getAddress(2001, P1), the provider object will return the address object which has the same DN i.e. 2001 and the same partition info, that is P1as provided in the API. In this case, the address object A will be returned to the application.
Scenario of Simple Call
Consider the following scenario where A calls B. A has DN 1000 and calls B which also has DN 1000. A belongs to partition P1 and B belongs to partition P2. The following diagram illustrates the various events and the results of API calls pertaining to this scenario, which are relevant to partition support feature.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-40
141474
OL-16702-01
Appendix A
Example A-3
Scenario: Call from line x1000 :P1" to line x1000 "P2" Provider
Call Connection Connected Address A - 1000 Terminal Connection Terminal Terminal Address B - 1000 Connection
1000, P2
Provider
Park DN
Park DNs are also treated as addresses in JTAPI. Hence, the same treatment given to normal DN is also given to park DN. The following message flow illustrates how an application will use park DN partition information in a call where park DNs are involved.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-41
141475
Example A-4
Park DN Scenario
JTAPI
A P P L I C A T I O N
When the application is monitoring park DN, it is possible to have the park DN to be the same as a regular DN (while both belong to different partitions). In this case, C is a park DN having same DN value as A and B while belonging to a different partition. A receives a call and parks the call at C. B unparks the call. While the call is parked, and unparked, CiscoProvCallParkEv is generated. The API getParkingPartyPartition(), getParkedPartyPartition() and getParkPartyPartition() return the associated address objects as shown in the figure.
Partition Change
Partition attribute is similar to the DN attribute of an address. Hence, whenever the partition attribute changes, the address object has to be destroyed and recreated. When the partition information of an address is changed, JTAPI will be restarted during which the current address objects will be deleted and new address objects will be created, reflecting the changed partition information.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-42
OL-16702-01
Appendix A
Example A-5
Change in Partition
A P P L I C A T I O N
Addr B, 2001, P2 Addr C, 2001, P3 Addr A, 2001, P1 A.getPartition = "P1" Delete Address A. Addr A, 2001, P1 A.getPartition() = "P4" A's - Partition Info changed to "P4"
When the partition information of an address is changed, the address object will be destroyed and a new address object will be created. The new address object will have the new partition information. In the example given, Address A's partition string was changed to P4. Hence, the current address object of A will be deleted and a new address object will be created. A query on the old address object using A.getPartition() will retrieve P1, while the same query on the new object will return P4. When the address partition changes, applications should query the address objects to update their partition information.
Two address objects are created, Call is established one for A and one for B. All the between A and B appropriate call related events are delivered to both the addresses. Two address objects are created, Call is established one for A and one for B. All the between A and B. appropriate call related events are delivered to both the addresses.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-43
S.No. 3
Pre-Condition A, B, and C are three different addresses with different DN. (P1, P2, P3). A park DN is configured with same DN as C and different partition (P4).
Scenario
Expected Behavior
Result
A calls B. B parks the call. C JTAPI should allow C to unpark C is successfully able to unpark the unparks the call from a park the call from park DN. call from park DN. DN which is same as Cs DN.
A calls B, B parks call at JTAPI should allow C to unpark A, B, and C are three park DN. C unparks the call. the call from park DN. different addresses having the same DN and different partitions (P1, P2, P3). A park DN is configured with same DN but belonging to a different partition (P4) A, B, and C are three different addresses with same DN and different partitions (P1, P2, and P3) JTAPI calls getPartitionAddress(DN of A). Three address objects are returned each corresponding to A, B and C.
A is able to call B. B should be able to park the call at the park DN. C should be able to pick up the call. JTAPI maintains the address objects based on partition info and DN. Partition strings of the addresses are returned correctly.
A and B are addresses with Application calls getPartition() on the address same DN but belong to different partitions (P1, P2). objects of A and B. A and B are two different addresses (different DNs) belonging to different partitions. A and B are in the control list of the same user. Provider open is completed and the lines are opened. A is an address in the control list of user and is opened by the user. From the CM admin page the partition information of A is changed. The device is restarted after this. JTAPI supports old API to open lines when DN is different. There will be no change in behavior.
Lines A and B will be opened, Address objects for A and B are created but since they have different successfully. DN, user need not specify the partition info. DN alone is sufficient to open the lines, but users can also give partition info and both modes of opening lines will be supported by JTAPI. JTAPI will delete the current address object and create a new address object for A when it comes in service again. By querying the partition info of this address object, user should get changed partition info. New partition information is reflected in the new address object.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-44
OL-16702-01
Appendix A
Hairpin Support
S.No. 1 Pre-Condition IP Phones A and C are in same cluster, IP phone B is in another cluster. JTAPI observes A and C. Gateway does not pass new party information to each other. There will be no transfer start and end events as transfer controller is not a controlled device. IP Phones A and C are in same cluster, IP phone B is in another cluster. JTAPI observes A and C. Gateway is able to pass new party information to each other. Use Case A calls B via gateway. B transfers call to C via gateway. B completes the transfer and goes out of scenario. Now IP Phones A and C are connected Expected Behavior At A: It is connected to B. As type is CiscoAddress.Internal Bs type is CiscoAddress.External At C: It is connected to B. Cs type is CiscoAddress.Internal Bs type is CiscoAddress.External At A: It is connected to C. As type is CiscoAddress.Internal Cs type is CiscoAddress.External At C: It is connected to A. Cs type is CiscoAddress.Internal As type is CiscoAddress.External At A and B, ConferenceCallStateChanged event has participantInfo with following types: A: CiscoAddress.Internal B: CiscoAddress.Internal C: CiscoAddress.External At A and B, ConferenceCallStateChanged event has participantInfo with following types: A: CiscoAddress.Internal B: CiscoAddress.Internal C: CiscoAddress.External At A and B, ConferenceCallStateChanged event has participantInfo with following types: A: CiscoAddress.Internal B: CiscoAddress.Internal C: CiscoAddress.External Result A and C are connected.
A calls B via gateway. B transfers call to C via gateway. B completes the transfer and goes out of scenario. Now IP Phones A and C are connected.
IP Phones A and B are in same cluster, IP phone C is in another cluster. JTAPI observes A and B.
A calls B. B does a conference call to C via gateway. B completes the conference and all A,B and C are in conference.
IP Phones A and B are in same cluster, IP phone C is in another cluster. JTAPI observes A,B and C.
A calls B. B does a conference call to C via gateway. B completes the conference and all A,B and C are in conference.
IP Phones A, B, C are in same cluster, IP phone D is in another cluster. JTAPI observes A, B and C. Gateway is able to pass new party information to each other.
A calls B. B does a conference call to D via gateway. D transfers the call to C. B completes the conference and all A,B and C are in conference.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-45
S.No. 6
Pre-Condition IP Phones A, B, C are in same cluster, IP phone D is in another cluster. JTAPI observes A, B and C. Gateway does not pass new party information to each other. IP Phones A and C are in same cluster, IP phone B is in another cluster. JTAPI observes A and C.
Use Case A calls B. B does a conference call to D via gateway. D transfers the call to C. B completes the conference and all A,B and C are in conference. A calls B via gateway. B redirects call to C. Now IP Phones A and C are connected.
Expected Behavior At A and B, ConferenceCallStateChanged event has participantInfo with following types: A: CiscoAddress.Internal B: CiscoAddress.Internal D: CiscoAddress.External At A: It is connected to C. As type is CiscoAddress.Internal Cs type is CiscoAddress.External At C: It is connected to A. Cs type is CiscoAddress.Internal As type is CiscoAddress.External
QoS Support
Figure A-1 Call Flow Diagram for QoS Support
getA
getAppDSCPValue() to applications
CiscoProvider
getPrecedenceValue() to applications
CiscoRTP OutputProperties
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-46
OL-16702-01
Appendix A
JTAPI QoS
For QoS to work in Windows, complete the following steps:
Step 1 Step 2
The registry key is one path. On the Edit menu, click Add Value. Type DisableUserTOSSetting. Click REG_DWORD in the Data Type box. Click OK. Enter 0 in the prompt box. Quit the Registry Editor. Restart the computer.
Scenario
JTAPI Behavior
Application uses the JTAPI getPrecedenceValue() JTAPI returns the DSCP value received from CTI API to query for the new DSCP value, in in StartTransmissionEvent to the application. CiscoRTPOutputStartedEvent. Application uses the JTAPI getAppDSCPValue() JTAPI returns the DSCP value received from CTI API to query for the new DSCP value, when it gets in ProviderOpenCompletedEvent to the ProviderInServiceEvent. application.
TLS Security
Message flow for updating certificate and establishing TLS certificate is illustrated in Figure A-2 and Figure A-3.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-47
Figure A-2
Update Certificate User JTAPI Client CTL Reg CTL Reg CTL CTL
CCM a. First CTL download is always trusted b. Subsequent CTL download is verified with SAST present in previous CTL file
All Carts
CAPF
JTAPI Client CTL Reg a. First CTL download is always trusted b. Subsequent CTL download is verified with SAST present in previous CTL file CCM CTL
All Carts
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-48
OL-16702-01
141468
Appendix A
Figure A-3
Establishing TLS connection JTAPI (JTAPI need to use jave TLS Library for establishing connection) CTL Req CTL Update CTL Initiate TLS Connection Server Cert Verify server cert with CTL Client Cert Req Client certificate Verify Client LSC Complete TLS connection Mutually authenticated TLS connection
141469
TFTP Server
Action
Event
App adds CallObserver on an Address 1 and initiates a call CiscoRTPInputKeyEv CiscoRTPInputStartedEv to address2 and involves in secure media conversation. CiscoRTPOutputKeyEv CiscoRTPOutputStartedEv If user is authorized, then CiscoRTPInputKeyEv and CiscoRTPOutputKeyEv contain key material.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-49
Scenario Two
Action Application adds TerminalObserver by enabling snapshotEnabled filter. Device is already in a secure call and queries invokes CiscoTerminal.createSnapshot ()
Event CiscoTermSnapshotEv using which applications can query getCiscoMediaCallSecurity () to find out if a call is secured or not.
Scenario Three
Action
Response
Application does not have a TLS link and tries to register PrivilegeViolationException is thrown to the application with secure media. CiscoMediaTerminal.register (ipAddr, portNum, mediaCaps, algorithm) Application has a secure media and registers CiscoMediaTerminal.register (ipAddr, portNum, mediaCaps, algorithm) Request is successful
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-50
OL-16702-01
Appendix A
Application has Devices T1, T2, T3 whose lines are A1, A2, A3 in the control list. Application opens the provider and adds observer on all terminals and addresses. T1 and A2 are added to the restricted list. T1 and L2 are removed from restricted list CiscoTermRestrictedEv for T1 CiscoAddrRestrictedEv for L1 CiscoAddrRestrictedEv for A2 sent to providerObserver. CiscoTermOutOfServiceEv for T1 CiscoAddrOutOfServiceEv for L1 CiscoAddrOutOfServiceEv for A2 CiscoTermActivatedEv for T1 and CiscoAddrActivatedEv for A1 CiscoAddrActivatedEv for A2 sent to providerObserver. CiscoTermInServiceEv for T1and CiscoAddrInServiceEv for A1 CiscoAddrInServiceEv for A2 sent to terminal and address observers.
Application has Devices T1, T2, T3 whose lines are A1, A1, A2 in the control list. A1 is the shared line on T1 and T2 Application opens provider and adds observer on all terminals/addresses T1 is added into the restricted list. Application will see CiscoTermRestrictedEv for T1 and CiscoAddrRestrictedOnTerminalEv which contains getAddress is L1 and getTerminal as T1. Application will also see CiscoTermOutOfServiceEv for T1 and CiscoAddrOutOfService for A1/T1
T1 is removed from the restricted list CiscoTermActivatedEv for T1 CiscoAddrActivatedEv for L1 CiscoTermInServiceEv for T1 CiscoAddrInServiceEv for A1/T1
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-51
Application has Devices T1, T2, T3 whose lines are A1, A1, A1 in the control list. A1 is the shared line on T1, T2 and T3 Application opens the provider and adds observer on all terminals and addresses A1 on T1 is added to the restricted list A1 on T2 is added to the restricted list A1 on T3 is added to the restricted list A1 on T1 is removed from the restricted list A1 on T2 is removed from the restricted list A1 on T3 is removed from the restricted list CiscoAddrRestrictedOnTerminalEv for A1/T1 CiscoAddrOutOfServiceEv for A1/T1 CiscoAddrRestrictedOnTerminalEv for A1/T2 CiscoAddrOutOfServiceEv for A1/T2 CiscoAddrRestrictedEv for A1 CiscoAddrOutOfServiceEv for A1/T3 CiscoAddrActivatedOnTerminalEv for A1/T1 CiscoAddrInServiceEv for A1/T1 CiscoAddrActivatedOnTerminalEv for A1/T2 CiscoAddrInServiceEv for A1/T2 CiscoAddrActivatedEv for A1 CiscoAddrInServiceEv for A1/T3
Application has Devices T1, T2, T3 whose lines are A1, A2, A3 in the control list. Application opens the provider and adds observer on all terminals and addresses. A1 is involved in a call with party X. A1 is added into the restricted list. ConnDisconnectedEv CallCtlConnDisconnectedEv TermConnDroppedEv CallCtlConnDroppedEv CallInvalidEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-52
OL-16702-01
Appendix A
SIP Support
S.No 1 Scenario External SIP phone (external@someserver.com) calls A, A is monitored by application. Events Event delivered to call observer on A CallActiveEv ConnCreatedEv A ConnCreatedEv unknown
Assuming external sip phone uses uri getCurrentCallingPartyInfo().geUrlInfo().getUser() returns external. and not DN. getCurrentCallingPartyInfo().geUrlInfo().getHost() returns someserver.com getCurrentCallingPartyInfo().geUrlInfo().getUrlType () returns SIP_URL_TYPE 2 7970 runs SIP protocol with 2 max calls set. 3rd call comes in with GCID=GCID3 7960 running SIP is included in the control list. Applications add callobserver on the terminal GCID3 CallActiveEv GCID3 ConnCreatedEv A GCID3 ConnFailedEv A GCID3 callInvalidEv Exception is thrown to addobserver exception. TerminalRestrictedEv will be delivered if the status changed.
SIP REPLACE
For the JTAPI events in the scenario described below, we have not shown Terminal events. It will be sent for all the observed Terminals as usual. Also events are shown with the assumption that only A, B, or C is observed; events would vary if combination of A, B, or C is observed.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-53
SN 1.
Scenario REPLACE with INVITE a confirmed Dialog: A (Dialog1) is in Call with B(Dialog2)(GC1). C sends INVITE with REPLACE Dialog2(GC2). After replace is completed, A(Dialog1) and C(Dialog3) are in the Call
Events at A
Events at B
Events at C NewCall/CSCE-Dialing/ CSCE-Connected with Cgpn=C, Cdpn=A, Ocdpn=B, Lrp=B JTAPI Events: CallActiveEv GC2 ConnCreatedEv C GC2 ConnConnectedEv-C-GC2 CallCtlConnEstablishedEv -CGC2 ConnCreatedEv AGC2 ConnConnectedEv A-GC2 CallCtlConnEstablishedEv -A-GC2
GCID and CPIC with reason CSCE IDLE with reason REPLACES, Cgpn=C, REPLACES Cdpn=A, Ocdpn=A, Lrp=B JTAPI Events: CiscoCallChangedEv-(GC1 -GC2) ConnDisconnectedEv B-GC1 CallCtlConnDisconnected Ev-BGC1 ConnDisconnectedEv A-GC1 CallCtlConnDisconnected Ev-AGC1 CallInvalid-GC1 CallActive-CG2 ConnCreatedEv C-GC2 ConnConnectedEv C-GC2 CallCtlConnEstablishedEvC-CG2 ConnCreatedEv A GC2 ConnConnectedEv A-GC2 CallCtlConnEstablishedEvA-CG2 Cause =CAUSE_NORMAL CiscoFeatureReason= REASON_REPLACES JTAPI CallInfo: Calling=C, Called=A, CurrentCalling=C, CurrentCalled=A, LastRedirecting=B JTAPI Events: ConnDisconnectedEv A GC1 CallCtlConnDisconnected Ev-A-GC1 ConnDisconnectedEv B-GC1 CallCtlConnDisconnected Ev-B-GC1 CallInvalidEv-GC1 CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-54
OL-16702-01
Appendix A
2.
REPLACE with INVITE an GCID and CPIC with reason CSCE-Idle with reason REPLACES REPLACES, Cgpn=C, early Dialog: Cdpn=A, Ocdpn=A, Lrp=B A (Dailog1) is in Call with B(Dialog2)(GC1), B is ringing. C sends INVITE with REPLACE Dialog2(GC2). After replace completed, A(Dialog1) and C(Dialog3) in the Call JTAPI Events CiscoCallChangedEv-(GC1 -GC2) ConnDisconnectedEv B-GC1 CallCtlConnDisconnected Ev-BGC1 ConnDisconnectedEv A-GC1 CallCtlConnDisconnected Ev-AGC1 CallInvalid-GC1 CallActive-CG2 ConnCreatedEv C-GC2 ConnConnectedEv C-GC2 CallCtlConnEstablishedEvC-CG2 ConnCreatedEv A GC2 ConnConnectedEv A-GC2 CallCtlConnEstablishedEvA-CG2 Cause =CAUSE_NORMAL CiscoFeatureReason= REASON_REPLACES JTAPI CallInfo: Calling=C, Called=A, CurrentCalling=C, CurrentCalled=A, LastRedirecting=B JTAPI Events: ConnDisconnectedEv A GC1 CallCtlConnDisconnected Ev-A-GC1 ConnDisconnectedEv B-GC1 CallCtlConnDisconnected Ev-B-GC1 CallInvalidEv-GC1 CAUSE_NORMAL
NewCall/CSCE-Dialing/CS CE-Connected, with Cgpn=C, Ccdpn=A, Ocdpn=A, Lrp=B JTAPI Events: CallActiveEv GC2 ConnCreatedEv C GC2 ConnConnectedEv-C-GC2 CallCtlConnEstablishedEvCGC2 ConnCreatedEv AGC2 ConnConnectedEv A-GC2 CallCtlConnEstablishedEvA-GC2
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-55
3.
REPLACE with INVITE an early Dialog: A (Dialog1) is in Call with B(Dialog2) (GC1), B is ringing. C sends invite with replace Dialog-X (GC2)
NewCall/CSCE_Dialing/ reason REPLACES CSCE-Disconnected with reason REPLACES JTAPI Events: CallActiveEv GC2 ConnCreatedEv CGC2 ConnConnectedEv CGC2 CallCtlConnEstablishedEvC-GC2 ConnFailedEv C-GC2 ConnConnectedEv C-GC2 CallCtlConnEstablishedEvA-GC2 Cause = CAUSE_NORMAL CiscoFeatureReason= REASON_REPLACES JTAPI CallInfo: Calling=C, Called=, CurrentCalling=C, CurrentCalled=, LastRedirecting=
4.
REFER request with REPLACE Dialog: When REPLACE Dialog is in a Cisco Unified Communications Manager Cluster. A is in call with B(REFEREE) Dialog1, and Dialog2 A is in Call with C(REFER TO TARGET) Dialog3 and Dialog4 SIP-UA A send REFER B on Dialog1 to C with REPLACES Dialog3
TransferStartEv CSCE-Idle at Dialog1 with reason TRANSFER and at Dialog3 with reason TRANSFER TransferEndEv JTAPI Event: Regular TransferEvent
TransterStartEv CPIC with reason TRANSFER and Cgpn=B, Cdpn=C, Lrp=A OCdpn=C TransferEndEv JTAPI Event: Regular TransferEvents
TransferStartEv GCID with reason TRANSFER and Cgpn=B, Cdpn=C, Lrp=A OCdpn=C TransferEndEv JTAPI Event: Regular TransferEvents
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-56
OL-16702-01
Appendix A
5.
REFER request with REPLACE Dialog: When REPLACE Dialog is outside Cisco Unified Communications Manager Cluster SIP-UA A is in call with B, Dialog1 and Dialog2(GC1) SIP-UA A is in call with SIP-UA C Dialog3 SIP-UA A sends REFER B on Dialog1 to SIP-UA C with REPLACES Dialog3
No Events
CPIC with reason REFER and Cgpn=B, Cdpn=C, Lrp=A OCdpn=B JTAPI Events: ConnDisconnectedEv A-GC1 CallCtlConnDisconnectedE v-A-GC1 ConnCreatedEv C GC1 ConnConnectedEv C-GC1 CallCtlConnEstablishedEv C-GC1 Cause = CAUSE_NORMAL CiscoFeatureReason=REAS ON_REFER JTAPI CallInfo: Calling=A, Called=B, CurrentCalling=B, CurrentCalled=C, LastRedirecting=A
No Events
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-57
6.
REFER request with REPLACE Dialog: When A is outside a Cisco Unified Communications Manager Cluster SIP-UA A is in call with B, Dialog1 and Dialog2 SIP-UA A is in call with C Dialog3 and Dialog4 SIP-UA A sends REFER B on Dialog1 to C with REPLACES Dialog3
No Events
GCID with reason CPIC with reason REPLACES and Cgpn=B, REPLACES and Cgpn=B, Cdpn=C, Lrp=A, OCdpn=C Cdpn=C, Lrp=A OCdpn=C JTAPI Events: ConnDisconnectedEv A-GC1 CallCtlConnDisconnected Ev-A-GC1 ConnCreatedEv C- GC1 ConnConnectedEv C GC1 CallCtlConnEstablishedEv C-GC1 Cause = CAUSE_NORMAL CiscoFeatureReason= REASON_REPLACES JTAPI Events: CiscoCallChangedEv(GC2GC1) ConnDisconnectedEv A-GC2 CallCtlConnDisconnected Ev-A-GC2 ConnDisconnectedEv C-GC2 CallCtlConnDisconnected Ev-C-GC2 CallInvalid-GC2 CallActive-CG1 ConnCreatedEv B GC1 ConnConnectedEv B-GC1 CallCtlConnEstablishedEvB-CG1 ConnCreatedEv C-GC1 ConnConnectedEv C-GC1 CallCtlConnEstablishedEvC-CG1 Cause = CAUSE_NORMAL CiscoFeatureReason= REASON_REPLACES JTAPI CallInfo: Calling=A, Called=B, CurrentCalling=B, CurrentCalled=C, LastRedirecting=A JTAPI CallInfo: Calling=A, Called=B, CurrentCalling=B, CurrentCalled=C, LastRedirecting=A
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-58
OL-16702-01
Appendix A
7.
REFER request with REPLACE Dialog: When REPLACE Dialog is in a Cisco Unified Communications Manager Cluster. A is in call with B(REFEREE) Dailog1, and Dialog2 (GC1) D is in Call with C(REFER TO TARGET) Dialog3 and Dialog4 (GC2) A sends REFER B on Dialog1 to C with REPLACES Dialog3 B and C in final call.
CSCE-Idle at Dialog1 with reason REFER and at Dialog3 with reason REPLACES JTAPI Events: ConnDisconnectedEv A GC1 CallCtlConnDisconnected Ev-A-GC1 ConnDisconnectedEv B-GC1 CallCtlConnDisconnected Ev-B-GC1 CallInvalidEv-GC1
CPIC with reason REPLACES and Cgpn=B, Cdpn=C, Lrp=D OCdpn=C JTAPI Events: ConnDisconnectedEv A-GC1 CallCtlConnDisconnected Ev-A-GC1 ConnCreatedEv C-GC1 ConnConnectedEv C GC1 CallCtlConnEstablishedEvC-GC1
GCID with reason REPLACES and Cgpn=B, Cdpn=C, Lrp=D, OCdpn=C JTAPI Events: CiscoCallChangedEv(GC2GC1) ConnDisconnectedEv -D CallCtlConnDisconnected Ev-D ConnDisconnectedEv -C CallCtlConnDisconnected Ev-C CallInvalid-GC2
CallActive-CG1 Cause = CAUSE_NORMAL Cause = CAUSE_NORMAL ConnCreatedEv C-GC1 CiscoFeatureReason= CiscoFeatureReason= ConnConnectedEv C-GC1 REASON_REPLACES REASON_REFER CallCtlConnEstablishedEvC-CG1 Event at D: ConnDisconnectedEv D GC2 CallCtlConnDisconnectedE v-D-GC2 ConnDisconnectedEv C-GC2 CallCtlConnDisconnectedE v-C-GC2 CallInvalidEv-GC2 ConnCreatedEv B GC1 ConnConnectedEv B-GC1 CallCtlConnEstablishedEvB-CG2 Cause = CAUSE_NORMAL CiscoFeatureReason= REASON_REPLACES JTAPI CallInfo: JTAPI CallInfo: Calling=C, Called=C, CurrentCalling=B, CurrentCalled=C, LastRedirecting=D
SIP REFER
The following section describes the scenarios that might be encountered during a SIP REFER. There are two categories of REFER scenarios: IN-Dialog and OutOfDialog.
A (SIP UA in cluster/in control) is in a call with B. A (referrer) REFERs B (Referee) to C (Refer to target), C is Ringing. JTAPI moves As Connect/CallControlConnection/TerminalConnection/ CallControlTerminalConnection into the UNKNOWN state. CAUSE_CODE provided will be CAUSE_NORMAL, new API provides REASON_REFER.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-59
For C a new Connect/CallControlConnection/TerminalConnection/CallControlTerminalConnection would be created. CallInfo at B and C would be as follows: At B: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C At C: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C JTAPI Application observing B will see: getCallingParty() = A getCalledParty() = B getCurrentCallingParty()=B getCurrentCalledParty()=C getLastRedirecting()=A JTAPI Application observing C will see: getCallingParty() = B getCalledParty() = C getCurrentCallingParty()=B getCurrentCalledParty()=C getLastRedirecting()=A
Scenario Two
A(SIP UA in cluster/in control) is in a call with B. A(referrer) REFERs B(Referee) to C(Refer to target), C Answers the Call. JTAPI will Disconnect/Drop As Connect/CallControlConnection/TerminalConnection/ CallControlTerminalConnection. CAUSE_CODE provided will be CAUSE_NORMAL and the new API would provide REASON_REFER. For C Connect/CallControlConnection/TerminalConnection/CallControlTerminalConnection will move to the Connected/Established/Active/Talking state. CallInfo at B and C will be as follows At B: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C At C: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C JTAPI Application observing B will see: getCallingParty() = A getCalledParty() = B getCurrentCallingParty()=B getCurrentCalledParty()=C getLastRedirecting()=A JTAPI Application observing C will see: getCallingParty() = B getCalledParty() = C getCurrentCallingParty()=B getCurrentCalledParty()=C
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-60
OL-16702-01
Appendix A
getLastRedirecting()=A
Scenario Three
A(SIP UA inside cluster) is in a call with B. A(referrer) REFERs B(Referee) to C(Refer to target), C is ringing but C did not answer the call and has no forward configured. Refer fails, the original call between A and B is restored. JTAPI will Disconnect/Drop the Connection/CallControlConnection/TerminalConnection/ CallControlTerminalConnection for C. CAUSE_CODE provided will be CAUSE_NORMAL and the new API will provide REASON_REFER and move As Connection/CallControlConnection/ TerminalConnection/CallControlTerminalConnection from the Unknown state to the Connected/ Established/Active/Talking state. CallInfo at A and B will be as follows At A: Cgpn=A, Cdpn=B, Lrp= OCdpn=B At B: Cgpn=A, Cdpn=B, Lrp= OCdpn=B JTAPI Application observing A will see: getCallingParty() = A getCalledParty() = B getCurrentCallingParty()=A getCurrentCalledParty()=B getLastRedirecting()= NULL JTAPI Application observing B will see: getCallingParty() = A getCalledParty() = B getCurrentCallingParty()=A getCurrentCalledParty()=B getLastRedirecting()=NULL
Scenario Four
A(SIP UA outside cluster) is in call with B. A(referrer) REFERs B(Referee) to C(Refer to target), C is ringing. JTAPI will create Connection/CallControlConnection/TerminalConnection/ CallControlTerminalConnection for C and will drop A's Connection/CallControlConnection on getting CPIC at B, CAUSE_CODE provided will be CAUSE_NORMAL and the new API will provide REASON_REFER. CallInfo at B and C will be as follows: At B: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C At C: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C JTAPI Application observing B will see: getCallingParty() = A getCalledParty() = B getCurrentCallingParty()=B getCurrentCalledParty()=C
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-61
getLastRedirecting()=A JTAPI Application observing C will see: getCallingParty() = B getCalledParty() = C getCurrentCallingParty()=B getCurrentCalledParty()=C getLastRedirecting()=A
Scenario Five
A(SIP UA outside cluster) is in a call with B. A(referrer) refers B(Referee) to C(Refer to target), C is ringing but C did not answer the call and has no forward configured. Refer fails, the original Call between A and B is restored. JTAPI will create Connection/CallControlConnection for A again and drops Connection/ CallControlConnection/TerminalConnection/CallControlTerminalConnection for C. CAUSE_CODE provided will be CAUSE_NORMAL and new API will provide REASON_REFER. CallInfo at A and B will be as follows At A: Cgpn=A, Cdpn=B, Lrp= OCdpn=B At B: Cgpn=A, Cdpn=B, Lrp= OCdpn=B JTAPI Application observing A will see: getCallingParty() = A getCalledParty() = B getCurrentCallingParty()=A getCurrentCalledParty()=B getLastRedirecting()=NULL JTAPI Application observing C will see: getCallingParty() = A getCalledParty() = B getCurrentCallingParty()=A getCurrentCalledParty()=B getLastRedirecting()=NULL
Scenario Six
A(SIP UA in cluster/in control) is in a call with B. A(referrer) REFERs B(Referee) to C(Refer to target), C answers the call. JTAPI moves Connection/CallControlConnection/TerminalConnection/CallControlTerminalConnection for C to the Connected/Established/Active/Talking state. CAUSE_CODE provided is CAUSE_NORMAL and the new API will provide REASON_REFER. CallInfo at B and C will be as follows At B: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C At C: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C JTAPI Application observing B will see:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-62
OL-16702-01
Appendix A
getCallingParty() = A getCalledParty() = B getCurrentCallingParty()=B getCurrentCalledParty()=C getLastRedirecting()=A JTAPI Application observing C will see: getCallingParty() = B getCalledParty() = C getCurrentCallingParty()=B getCurrentCalledParty()=C getLastRedirecting()=A
Scenario Seven
A(SIP UA in cluster/in control) is in a call with B. A(referrer) REFERs B(Referee) to C(Refer to target), C forwardAll to D, D is ringing. JTAPI creates Connection/CallControlConnection/TerminalConnection/CallControlTerminalConnection for D. CAUSE_CODE provided will be CAUSE_REDIRECT and the reason received from CTI would be ForwardAll. CallInfo at B and D will be as follows At B: Cgpn=B, Cdpn=D, Lrp=C OCdpn=C At D: Cgpn=B, Cdpn=D, Lrp=C OCdpn=C JTAPI Application observing B will see: getCallingParty() = A getCalledParty() = B getCurrentCallingParty()=B getCurrentCalledParty()=D getLastRedirecting()=C JTAPI Application observing D will see: getCallingParty() = B getCalledParty() = D getCurrentCallingParty()=B getCurrentCalledParty()=D getLastRedirecting()=C
Scenario Eight
A (SIP UA in cluster/in control) is in a call with B. A(referrer) REFERs B(Referee) to C(Refer to target), C Redirect to D, D is ringing. JTAPI creates Connection/CallControlConnection/TerminalConnection/CallControlTerminalConnection for D. CAUSE_CODE provided will be CAUSE_REDIRECT and the reason received from CTI in NewCallEvent at D will be Redirect. Callinfo when Call is offered at C:
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-63
At B: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C At C: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C CallInfo in final Call: At B: Cgpn=B, Cdpn=D, Lrp=C OCdpn=C At D: Cgpn=B, Cdpn=D, Lrp=C OCdpn=C JTAPI Application observing B will see in final Call: getCallingParty() = A getCalledParty() = B getCurrentCallingParty()=B getCurrentCalledParty()=D getLastRedirecting()=C JTAPI Application observing D will see: getCallingParty() = B getCalledParty() = D getCurrentCallingParty()=B getCurrentCalledParty()=D getLastRedirecting()=C
Scenario Nine
A(SIP UA in cluster/in control) is in a call with B. B consult transfer to D, A(Referrer) REFERs B(Referee) to C(Refer to target), C is ringing, B completes the transfer. Attempt to transfer will fail while C is ringing.
Scenario Ten
A(SIP UA in cluster/in control) is in a call with B. B consult transfer to D, A(Referrer) REFERs B(Referee) to C(Refer to target), C answers the call. Refer will be successful. B completes the transfer, transfer will be successful, C and D will be in call. JTAPI Disconnect/Drops As Connect/CallControlConnection/TerminalConnection/ CallControlTerminalConnection. CAUSE_CODE provided will be CAUSE_NORMAL and the new API will provide REASON_REFER. For C, Connect/CallControlConnection/TerminalConnection/CallControlTerminalConnection will move to Connected/Established/Active/Talking state. CallInfo at D and C would be as follows At D: Cgpn= C, Cdpn=D, Lrp=B OCdpn=D At C: Cgpn=C, Cdpn=D, Lrp=B OCdpn=D JTAPI Application observing D will see: getCallingParty() = B getCalledParty() = D getCurrentCallingParty()=C getCurrentCalledParty()=D getLastRedirecting()=B
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-64
OL-16702-01
Appendix A
JTAPI Application observing C will see: getCallingParty() = B getCalledParty() = C getCurrentCallingParty()=C getCurrentCalledParty()=D getLastRedirecting()=B
Scenario Eleven
B is in a call with D, B consults to A(SIP UA in cluster/in control). A(Referrer) REFERs B(Referee) to C(Refer to target), C is ringing, B completes the transfer. REFER would fail. Call at A will be dropped, transfer is successful, D is getting RingBack, C is ringing. JTAPI Disconnect/Drops As Connect/CallControlConnection/TerminalConnection/ CallControlTerminalConnection. CAUSE_CODE provided will be CAUSE_NORMAL and the new API would provide REASON_REFER, Application will not know if REFER failed. For C, Connect/CallControlConnection/TerminalConnection/CallControlTerminalConnection will move to Alerting/Alerting/Ringing/Ringing state. CallInfo at D and C would be as follows: At D: Cgpn= D, Cdpn=C, Lrp=B OCdpn=C At C: Cgpn=D, Cdpn=C, Lrp=B OCdpn=C JTAPI Application observing D will see: getCallingParty() = B getCalledParty() = D getCurrentCallingParty()=D getCurrentCalledParty()=C getLastRedirecting()=B JTAPI Application observing C will see: getCallingParty() = B getCalledParty() = C getCurrentCallingParty()=D getCurrentCalledParty()=C getLastRedirecting()=B
OutOfDialog Refer
SIP-UA A REFERs B(Referee) to C (Refer To Target) B gets newcall with Cgpn=A, Cdpn=B, Lrp=, OCdpn=B. JTAPI Application will get CallActive, Connection, CallCtlConnection, TerminalConnecton and CallCtlTerminalConnection created for B with CAUSE_NORMAL, and the new API will return REASON_REFER. Bs Connection/CallCtlConnection, TerminalConnection/CallCtlTerminalConnection will go into the Connected/Established/Active/Talking state. JTAPI creates Connection and CallCtlConnection for A in UNKNOWN state based on FarEndPointType_ServerCall provided by CTI/CP.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-65
B answers the call and is connected to A (at this point no RTPEvent will be sent). B get CallPartyInfoChangedEv with Cgpn=B, Cdpn=C, Lrp=A, OCdpn=C, Reason=REFER. C get NewCall offering with Cgpn=B, Cdpn=C, Lrp=A, OCdpn=C, Reason=REFER. JTAPI Application will get Connection, CallControlConnection, TerminalConnecton and CallCtlTerminalConnection created for B with CAUSE_NORMAL, and the new API will return REASON_REFER. C Accepts/Answers the call, B is connected to C (now Application receives RTP events). Cs Connection/CallCtlConnection, TerminalConnection/CallCtlTerminalConnection will go into the Connected/Established/Active/Talking state. JTAPI Application observing B will see: getCallingParty() = A getCalledParty() = B getCurrentCallingParty()=B getCurrentCalledParty()=C getLastRedirecting()=A JTAPI Application observing C will see: getCallingParty() = B getCalledParty() = C getCurrentCallingParty()=B getCurrentCalledParty()=C getLastRedirecting()=A
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-66
OL-16702-01
Appendix A
CTIManager
1000@ccm.cisco.com
CCM
SIP Proxy
SIP Device
333777@bbb.com
INVITE (333555@aaa.com) CtiNewCallNotify NewCall CallState(Dialtone/Dialing/Proceeding) CallState (Dialtone/Dialing/ Proceeding) INVITE (333555@aaa.com) 302 Contacts: sip: 333777@bbb.com ACK
CallCtlConnDialingEv CallCtlConnEstablishedEv
ConnCreatedEv for sip:333777@bbb.com ConnInProgressEv CallCtlConnOfferedEv CiscoCallEv.getCiscoFeatureReas on () = REASON_CCMREDIRECTION JTAPICallInfo: CurrentCalling = 1000 Called = 333555@aaa.com CurrentCalled = 333777@bbb.com lastRedirected = 333555@aaa.com
CallPartInfoChange cgpn = 1000 cdpn = sip: 333777@bbb.com lrp = sip: 333555@aaa.com ocdpn = sip: 333555@aaa.com reason = SIPRedirection
CallInfoChangeNotify
100 Trying /180 Ringing CallState (Ringback) 200 OK CallState (Ringback) ACK
ConnAlertingEv CallCtlConnAlertingEv
JTAPI application monitors 1000@ccm.cisco.com Cisco Unified Communications Manager user1000 initiates a call to 333555@aaa.com CTI reports NewCallNotify and CtiCallStateNotify (Dialtone/Dialing) based on INVITE. JTAPI reports CallActiveEv and Connection and CallCtlConnection events for 1000 JTAPI reports CallCtlConnEstablishedEv SIP proxy reports a 302 for 333555@aaa.com. Based on the 302, the Cisco Unified Communications Manager initiates a call to the first contact in the Target list based on the q value to 333777@bbb.com. CallPartyInfoChange event is reported to application based on the SIPAlertInd from a Cisco Unified Communications Manager, if the called party information is changed. JTAPI reports connection created events for 333777@bbb.com CTI reports CtiCallStateNotify (Ringback) and CtiCallStateNotify (Connected). JTAPI reports ConnAlertingEv and ConnEstablishedEv for far end.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-67
141478
ConnConnectedEv CallCtlConnEstablishedEv
CTIManager
1000@ccm.cisco.com
CCM
SIP Device
555888@ccc.com
INVITE (333555@aaa.com) CtiNewCallNotify NewCall CallState(Dialtone/Dialing/Proceeding) CallState (Dialtone/ Dialing/Proceeding) INVITE (333555@aaa.com) 302 333777@bbb.com 555888@ccc.com ACK INVITE (333777@aaa.com) 486 User Busy
CallCtlConnDialingEv CallCtlConnEstablishedEv
ConnCreatedEv for sip:555888@bbb.com ConnInProgressEv CallCtlConnOfferedEv getCiscoFeatureReason = REASON_CCM_REDIRECTION JTAPI CallInfo; CurrentCalling = 1000 Currentcalled = 555888@ccc.com Called = 333555@aaa.com lastRedirected = 333777@bbb.com
CallPartInfoChange cgpn = 1000 cdpn = sip: 555888@ccc.com lrp = sip: 333777@bbb.com ocdpn = sip: 333555@aaa.com reason = SIPRedirection
INVITE (555888@ccc.com)
ConnAlertingEv CallCtlConnAlertingEv
ACK
ConnConnectedEv CallCtlConnEstablishedEv
JTAPI CTI application monitors 1000@ccm.cisco.com Cisco Unified Communications Manager user1000 initiates a call to 333555@aaa.com CTI reports NewCallNotify and CtiCallStateNotify (Dialtone/Dialing) based on INVITE. JTAPI reports CallActiveEv and Connection and CallCtlConnection events for 1000 CTI reports CtiCallStateNotify (Proceeding) JTAPI reports CallCtlConnEstablishedEv SIP proxy reports a 302 for 333555@aaa.com. Based on the 302 the Cisco Unified Communications Manager initiates a call to the first contact in the Target list based on the q value to 333777@bbb.com. A 486 user busy response is reported by 333777@bbb.com. Based on this response the Cisco Unified Communications Manager initiates a call to 555888@cisco.com. CallPartyInfoChange event is reported to application based on the SIPAlertInd from the Cisco Unified Communications Manager if the called party information is changed. JTAPI reports connection created event for 555888@cisco.com. CTI also reports CtiCallStateNotify (Ringback) and CtiCallStateNotify (Connected). JTAPI reports CallCtlConnAlertingEv and CallCtlConnEstablishedEv for the new party
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-68
OL-16702-01
141479
CallState (Connected)
CallState (Connected)
Appendix A
SIP Device
555888@ccc.com
CTIManager
1000@ccm.cisco.com
INVITE (333555@aaa.com) CtiNewCallNotify NewCall CallState(Dialtone/Dialing/Proceeding) CallState (Dialtone/ Dialing/Proceeding) CallPartInfoChange cgpn = 1000 cdpn = sip: 333777@ccc.com lrp = sip: 333555@aaa.com ocdpn = sip: 333555@aaa.com reason = SIPRedirection INVITE (333555@aaa.com) 302 Contact: 333777@bbb.com, 555888@ccc.com ACK INVITE (333777@bbb.com) CallInfoChangeNotify CallState (Ringback) CallState (Ringback) RNAR Timer 180 Ringing
ConnCreatedEv for sip:333777@bbb.com ConnInProgressEv CallCtlConnOfferedEv protocol Specific cause code = REDIRECTION ConnAlertingEv CallCtlConnAlertingEv
ConnDisconnectedEv for 333777 CallCtlConnDisconnectedEv ConnCreatedEv for 555888 ConnInProgressEv CallCtlConnOfferedEv getCiscoFeatureReason = REASON_CCM_REDIRECTION ConnAlertingEv CallCtlConnAlertingEv getCiscoFeatureReason = REASON_CCM_REDIRECTION JTAPI CallInfo: CurrentCalling = 1000 CurrentCalled = 555888@ccc.com Called = 333777@bbb.com lastRedirected = 333555@aaa.com
CallPartInfoChange cgpn = 1000 cdpn = sip: 555888@ccc.com lrp = sip: 333777@bbb.com ocdpn = sip: 333555@aaa.com reason = SIPRedirection
INVITE (555888@ccc.com)
100 Trying / 180 Ringing CallInfoChangeNotify 200 OK 100 Trying / 180 Ringing ACK 200 OK CallState (Connected)
JTAPI application monitors 1000@ccm.cisco.com Cisco Unified Communications Manager user1000 initiates a call to 333555@aaa.com CTI reports NewCallNotify and CtiCallStateNotify (Dialtone/Dialing) based on INVITE. JTAPI reports CallActiveEv and connection and terminalConnection events for 1000 CTI reports CtiCallStateNotify (Proceeding) JTAPI reports CallCtlConnEstablishedEv for 1000 SIP proxy reports a 302 for 333555@aaa.com. Based on the 302 the Cisco Unified Communications Manager initiates a call to the first contact in the Target list based on the q value to 333777@bbb.com. The Cisco Unified Communications Manager starts the RNAR timer. CallPartyInfoChange event is reported to application based on the SIPAlertInd from the Cisco Unified Communications Manager if the called party information is changed. JTAPI reports connection created events for 333777 RNAR timer expires and based on this expiration the Cisco Unified Communications Manager initiates a call to 555888@cisco.com. CallPartyInfoChange event is reported to application based on the SIPAlertInd/CcNotifyReq from the Cisco Unified Communications Manager if the called party information is changed. JTAPI removes connection for 333777 and creates connection for 555888 CTI also reports CtiCallStateNotify (Connected). JTAPI reports CallCtlConnEstablishedEv for 555888
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-69
141480
ConnConnectedEv CallCtlConnEstablishedEv
CallState (Connected)
3XX Redirection Contact Within Cisco Unified Communications Manager Cluster Configured with Call Forward
JTAPI
CallActiveEv ConnCreatedEv ConnConnectedEv CallCtlConnInitiatedEv TermConnCreatedEv TermConnActiveEv CallCtlTermConnTalkingEv CallCtlConnDialingEv CallCtlConnEstablishedEv
CTIManager
SIP Device
1000@ccm.cisco.com INVITE (333555@aaa.com)
CCM
SIP Proxy
SIP Device
SIP Device
SIP Device
555888@ccc.com
2000@ccm.cisco.com 3000@ccm.cisco.com
CtiNewCallNotify NewCall CallState(Dialtone/Dialing/Proceeding) CallState (Dialtone/ Dialing/Proceeding) INVITE 333555@aaa.com 302 Contact: 2000@ccm.cisco.com, 55888@ccc.com ACK
ConnCreatedEv for sip:3000@bbb.com ConnInProgressEv CallCtlConnOfferedEv getCiscoFeatureReason = REASON_CCM_REDIRECTION JTAPI CallInfo: CurrentCalling = 1000 Calling = 1000 CurrentCalled = 3000@ccm.cisco.com Called = 333555@aaa.com lastRedirected = 333777@bbb.com
CallInfoChangeNotify
100 Trying / 180 Ringing
ConnAlertingEv
ConnDisconnectedEv for 3000
CallCtlConnAlertingEv
CallCtlConnDisconnectedEv ConnCreatedEv for 555888 ConnInProgressEv CallCtlConnOfferedEv getCiscoFeatureReason = REASON_CCM_REDIRECTION ConnAlertingEv CallCtlConnAlertingEv getCiscoFeatureReason = REASON_CCM_REDIRECTION JTAPI CallInfo: CurrentCalling = 1000 Calling = 1000 CurrentCalled = 555888@ccc.com Called = 3000@ccm.cisco.com lastRedirected = 3000@ccm.cisco.com
CallState (Ringback)
CallInfoChangeNotify
CallPartInfoChange cgpn = 1000, cdpn = sip: 555888@ccc.com lrp = 3000@ccm.cisco.com, ocdpn = 1000@ccm.cisco.com, reason = SIPRedirection 200 OK CallState (Connected) CallState (Connected) ConnConnectedEv CallCtlConnEstablishedEv 200 OK ACK
JTAPI application monitors 1000@ccm.cisco.com Cisco Unified Communications Manager user1000 initiates a call to 333555@aaa.com CTI reports NewCallNotify and CtiCallStateNotify (Dialtone/Dialing) based on INVITE. JTAPI reports CallActiveEv and connection and terminalConnection events for 1000 CTI reports CtiCallStateNotify (Proceeding) JTAPI reports CallCtlConnEstablishedEv for 1000 SIP proxy reports a 302 for 333555@aaa.com. Based on the 302 the Cisco Unified Communications Manager initiates a call to the first contact in the Target list based on the q value to 2000@ccm.cisco.com. A 486 user busy response is reported by 2000@ccm.cisco.com. 2000 has Call Forward busy configured so the Cisco Unified Communications Manager initiates a call to 3000@ccm.cisco.com. The Cisco Unified Communications Manager also starts the RNAR timer. CallPartyInfoChange event is reported to application based on the SIPAlertInd from the Cisco Unified Communications Manager if the called party information is changed. JTAPI reports connection created event for 3000 3000 does not answer and RNAR timer expires and based on this expiration the Cisco Unified Communications Manager initiates a call to 555888@cisco.com. CallPartyInfoChange event is reported to application based on the SIPAlertInd/CcNotifyReq from the Cisco Unified Communications Manager if the called party information is changed. JTAPI destroys connection for 3000 and creates connection for 555888 CTI also reports CtiCallStateNotify (Connected). JTAPI reports CallCtlConnEstablishedEv for 555888
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-70
OL-16702-01
141481
Appendix A
JTAPI application monitors 1000@ccm.cisco.com Cisco Unified Communications Manager user1000 initiates a call to 333555@aaa.com CTI reports NewCallNotify and CtiCallStateNotify (Dialtone/Dialing) based on INVITE. JTAPI reports CallActiveEv and connection and terminalConnection events for 1000 CTI reports CtiCallStateNotify (Proceeding) JTAPI reports CallCtlConnEstablishedEv for 1000 SIP proxy reports a 302 for 333555@aaa.com. 302 contains target list of 1212@ccm.cisco.com and 2000@ccm.cisco.com. 1212@ccm.cisco.com is an invalid DN. The Cisco Unified Communications Manager tries to contact 1212@ccm.cisco.com first, but gets an invalid DN and so attempts to place the call to 2000@ccm.cisco.com. CallPartyInfoChange event is reported to application based on the SIPAlertInd from the Cisco Unified Communications Manager if the called party information is changed. JTAPI reports connection created event for 2000 CTI also reports CtiCallStateNotify (Ringback/Connected). JTAPI reports CallCtlConnAlertingEv and CallCtlConnEstablishedEv for 2000.
Unicode Support
Unicode Display Name Scenario
Scenario A line is configured on IP phone A with no ASCII name and a Unicode name in Japanese. IP phone B is configured with ASCII name and no Unicode name. A calls B. Only B is observed. A, B and C are in conference. Shared lines A and B are shared lines with different locales. A calls C. C is unobserved.
Events Delivered to JTAPI Applications Call info should contain: getCurrentCalledPartyDisplayName=asciiNameB getCurrentCalledPartyUnicodeDisplayName=null getCurrentCallingPartyDisplayName=null getCurrentCallingPartyUnicodeDisplayName= japaneseNameA DisplayName does not apply. Applications should consider conference as the called party. Calling party Unicode display name can change between A and B.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-71
Scenario A line is configured on IP phone A with no ASCII name and Unicode name in Japanese. Application adds TerminalObserver on the Device.
CiscoTerminalInServiceEv contains getLocale = JAPANESE getSupportedEncoding= UCS2UNICODE_ENCODING CiscoTerminal.getLocale = JAPANESE CiscoTerminal. getSupportedEncoding= UCS2UNICODE_ENCODING
A calls B, B transfers the call to C. GC1 is the call between A and B, GC2 is the consult call between B and C. Similar events are delivered for Conference and other features. Action Events
B completes the transfer. Events GC2 CiscoTransferStartEv Cause: CAUSE_NORMAL to call observer on C Reason=REASON_TRANSFER CallActiveEv GC1 Cause: CAUSE_NORMAL CiscoCause: CAUSE_NORMALUNSPECIFIED Reason=REASON_TRANSFER ConnCreatedEv C Cause: CAUSE_NORMAL CiscoCause: CAUSE_NORMALUNSPECIFIED Reason=REASON_TRANSFER ConnCreatedEv B Cause: CAUSE_NORMAL CiscoCause: CAUSE_NORMALUNSPECIFIED Reason=REASON_TRANSFER CiscoCallChangedEv SurvingCall=GC1, original call=GC2 CiscoCause: NORMAL Reason: REASON_TRANSFER
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-72
OL-16702-01
Appendix A
Events ConnConnectedEv C Cause: CAUSE_NORMAL CiscoCause: CAUSE_NORMALUNSPECIFIED Reason=REASON_TRANSFER CallCtlConnEstablishedEv C Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER CiscoCause: CAUSE_NORMALUNSPECIFIED Reason=REASON_TRANSFER TermConnCreatedEv TERM C Cause: CAUSE_NORMAL CiscoCause: CAUSE_NORMALUNSPECIFIED Reason=REASON_TRANSFER TermConnActiveEv TERM C Cause: CAUSE_NORMAL CiscoCause: CAUSE_NORMALUNSPECIFIED Reason=REASON_TRANSFER CallCtlTermConnTalkingEv TERM C Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER CiscoCause: CAUSE_NORMALUNSPECIFIED Reason=REASON_TRANSFER ConnConnectedEv B Cause: CAUSE_NORMAL CiscoCause: CAUSE_NORMALUNSPECIFIED Reason=REASON_TRANSFER GC2: ConnDisconnectedEv B REASON=REASON_TRANSFER Cause: CAUSE_NORMAL GC2: ConnDisconnectedEv C REASON=REASON_TRANSFER Cause: CAUSE_NORMAL GC2: TermConnDropped TERMB REASON=REASON_TRANSFER Cause: CAUSE_NORMAL GC2: CalInvalid REASON=REASON_TRANSFER Cause: CAUSE_NORMAL GC1: CallCtlTermConnHeldEv TERMB REASON=REASON_TRANSFER Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL GC2: ConsultCallActive REASON=NORMAL Cause: CAUSE_NEW_CALL GC2: ConnCreatedEv B REASON=NORMAL Cause: CAUSE_NORMAL GC2: ConnConnectedEv B REASON=NORMAL Cause: CAUSE_NORMAL GC1: ConnDisconnectedEv B REASON=REASON_TRANSFER Cause: CAUSE_UNKNOWN
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-73
Events GC1: CallCtlConnDisconnectedEv B REASON=REASON_TRANSFER Cause: CAUSE_UNKNOWN CallControlCause: CAUSE_TRANSFER GC1: TermConnDroppedEv TERMB REASON=REASON_TRANSFER Cause: CAUSE_UNKNOWN GC1: CallCtlTermConnDroppedEv TERMB REAASON=REASON_TRANSFER CallControlCause: CAUSE_TRANSFER GC1: ConnDisconnectedEv A REASON=REASON_TRANSFER GC1: CallCtlConnDisconnectedEv A REASON=REASON_TRANSFER CallControlCause: CAUSE_TRANSFER GC1: CallInvalidEv REASON=REASON_TRANSFER GC2: ConnDisconnectedEv C REASON=REASON_TRANSFER GC2: CallCtlConnDisconnectedEv C REASON=REASON_TRANSFER CallControlCause: CAUSE_TRANSFER GC2: TermConnDroppedEv TERMB REASON=REASON_TRANSFER GC2: CallCtlTermConnDroppedEv TERMB REASON=REASON_TRANSFER CallControlCause: CAUSE_TRANSFER GC2: ConnDisconnectedEv B REASON=REASON_TRANSFER GC2: CallCtlConnDisconnectedEv B REASON=REASON_TRANSFER CallControlCause: CAUSE_TRANSFER GC2: CallInvalidEv REASON=REASON_TRANSFER GC2: CallObservationEndedEv REASON=NORMAL Cause: CAUSE_NORMAL GC1 CiscoTransferEndEv REASON=REASON_TRANSFER Cause: CAUSE_NORMAL GC2 CallObservationEndedEv REASON=NORMAL Cause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-74
OL-16702-01
Appendix A
Scenario Two
A calls B, call=GC1. B parks the call at 99999. C unparks the call using call GC2. Action Events
Events delivered to call observer GC1: ConnDisconnectedEv B REASON=REASON_PARK on A when call is parked. Cause: CAUSE_NORMAL GC1: CallCtlConnDisconnectedEv B REASON=REASON_PARK Cause: CAUSE_NORMAL CallControlCause: CAUSE_PARK GC1: ConnCreatedEv 9999 REASON=REASON_PARK Cause: CAUSE_NORMAL GC1: ConnInProgressEv 9999 REASON=REASON_PARK Cause: CAUSE_NORMAL GC1: CallCtlConnQueuedEv 9999 REASON=REASON_PARK Cause: CAUSE_NORMAL CallControlCause: CAUSE_PARK When call is unparked using GC2 GC2: CiscoCallChangedEv Surviving= GC2 origcall= GC1 address= A REASON=REASON_UNPARK CallActiveEv REASON=REASON_UNPARK Cause: CAUSE_NEW_CALL GC2: ConnCreatedEv A REASON=REASON_UNPARK Cause: CAUSE_NORMAL GC2: ConnConnectedEv A REASON=REASON_UNPARK Cause: CAUSE_NORMAL GC2: CallCtlConnEstablishedEv A REASON=REASON_UNPARK Cause: CAUSE_NORMAL CallControlCause: CAUSE_PARK GC2: TermConnCreatedEv TERMA REASON=REASON_UNPARK GC2: TermConnActiveEv TERMA REASON=REASON_UNPARK Cause: CAUSE_NORMAL GC2: CallCtlTermConnTalkingEv TERMA REASON=REASON_UNPARK Cause: CAUSE_NORMAL CallControlCause: CAUSE_PARK
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-75
GC1: ConnDisconnectedEv 9999 REASON=REASON_UNPARK Cause: CAUSE_NORMAL GC1: CallCtlConnDisconnectedEv 9995 REASON=REASON_UNPARK Cause: CAUSE_NORMAL CallControlCause: CAUSE_PARK GC1: TermConnDroppedEv TERMA REASON=REASON_UNPARK Cause: CAUSE_NORMAL GC1: CallCtlTermConnDroppedEv TERMA REASON=REASON_UNPARK Cause: CAUSE_NORMAL CallControlCause: CAUSE_PARK GC1: ConnDisconnectedEv A REASON=REASON_UNPARK Cause: CAUSE_NORMAL GC1: CallCtlConnDisconnectedEv A REASON=REASON_UNPARK Cause: CAUSE_NORMAL CallControlCause: CAUSE_PARK GC1: CallInvalidEv REASON=REASON_UNPARK Cause: CAUSE_NORMAL GC1: CallObservationEndedEv REASON=NORMAL Cause: CAUSE_NORMAL GC2: ConnCreatedEv C REASON=REASON_UNPARK Cause: CAUSE_NORMAL GC2: ConnConnectedEv C REASON=UNPARK Cause: CAUSE_NORMAL GC2: CallCtlConnEstablishedEv C REASON=UNPARK Cause: CAUSE_NORMAL CallControlCause: CAUSE_PARK
Scenario Three
A calls B, B has forward no answer to C. B does not answer and call is offered to C. Action Events
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-76
OL-16702-01
Appendix A
Events delivered to call observer GC1: CallActiveEv on A. REASON=NORMAL Cause: CAUSE_NEW_CALL GC1: ConnCreatedEv A REASON=NORMAL Cause: CAUSE_NORMAL GC1: ConnConnectedEv A REASON=NORMAL Cause: CAUSE_NORMAL GC1: CallCtlConnInitiatedEv A REASON=NORMAL Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL GC1: TermConnCreatedEv TERMA REASON=NORMAL GC1: TermConnActiveEv TERMA REASON=NORMAL Cause: CAUSE_NORMAL GC1: CallCtlTermConnTalkingEv TERMA REASON=NORMAL Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL GC1: CallCtlConnDialingEv A REASON=NORMAL Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL GC1: CallCtlConnEstablishedEv A REASON=NORMAL Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL GC1: ConnCreatedEv B REASON=NORMAL Cause: CAUSE_NORMAL GC1: ConnInProgressEv B REASON=NORMAL Cause: CAUSE_NORMAL GC1: CallCtlConnOfferedEv B REASON=NORMAL Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-77
Events delivered to call observer GC1: ConnAlertingEv B on A. (continued) REASON=NORMAL Cause: CAUSE_NORMAL GC1: CallCtlConnAlertingEv B REASON=NORMAL Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL GC1: ConnCreatedEv C REASON=REASON_FORWARDNOANSWER Cause: CAUSE_NORMAL GC1: ConnInProgressEv C REASON= REASON_FORWARDNOANSWER Cause: CAUSE_NORMAL GC1: CallCtlConnOfferedEv C REASON= REASON_FORWARDNOANSWER Cause: CAUSE_NORMAL CallControlCause: CAUSE_REDIRECTED GC1: ConnAlertingEv C REASON= REASON_FORWARDNOANSWER Cause: CAUSE_NORMAL GC1: CallCtlConnAlertingEv C REASON= REASON_FORWARDNOANSWER Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL GC1: ConnDisconnectedEv B REASON= REASON_FORWARDNOANSWER Cause: CAUSE_NORMAL GC1: CallCtlConnDisconnectedEv B REASON= REASON_FORWARDNOANSWER Cause: CAUSE_NORMAL CallControlCause: CAUSE_REDIRECTED GC1: ConnConnectedEv C REASON=NORMAL Cause: CAUSE_NORMAL GC1: CallCtlConnEstablishedEv C REASON=NORMAL Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL
Scenario Four
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-78
OL-16702-01
Appendix A
Events delivered to call observer GC1: CallActiveEv on B. REASON=NORMAL Cause: CAUSE_NEW_CALL GC1: ConnCreatedEv B REASON=NORMAL Cause: CAUSE_NORMAL GC1: ConnInProgressEv REASON=NORMAL Cause: CAUSE_NORMAL GC1: CallCtlConnOfferedEv B REASON=NORMAL Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL GC1: ConnCreatedEv A REASON=NORMAL Cause: CAUSE_NORMAL GC1: ConnConnectedEv A REASON=NORMAL Cause: CAUSE_NORMAL GC1: CallCtlConnEstablishedEv A REASON=NORMAL Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL GC1: ConnAlertingEv B REASON=NORMAL Cause: CAUSE_NORMAL GC1: CallCtlConnAlertingEv B REASON=NORMAL Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL GC1: TermConnCreatedEv TERMB REASON=NORMAL Cause: Other: 0 GC1: TermConnRingingEv TERMB REASON=NORMAL Cause: CAUSE_NORMAL GC1: CallCtlTermConnRingingEvImpl TERMB REASON=NORMAL Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-79
Events delivered to call observer GC1: ConnDisconnectedEv A on B. (continued) REASON=REDIRECT Cause: CAUSE_NORMAL GC1: CallCtlConnDisconnectedEv A REASON=REDIRECT Cause: CAUSE_NORMAL CallControlCause: CAUSE_REDIRECTED GC1: TermConnDroppedEv TERMB REASON=REDIRECT Cause: CAUSE_NORMAL GC1: CallCtlTermConnDroppedEv TERMB REASON=REDIRECT Cause: CAUSE_NORMAL CallControlCause: CAUSE_REDIRECTED GC1: ConnDisconnectedEv B REASON=REDIRECT Cause: CAUSE_NORMAL GC1: CallCtlConnDisconnectedEv B REASON=REDIRECT Cause: CAUSE_NORMAL CallControlCause: CAUSE_REDIRECTED GC1: CallInvalidEv REASON=REDIRECT Cause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-80
OL-16702-01
Appendix A
Action
Events
ciscoProvider.getCapabili JTAPI returns TRUE ties().canRecord() ciscoProvider.getCapabili JTAPI returns FALSE ties().canMonitor()
Scenario Two
Administrator enables monitoring capability for the user. Action Events CiscoProviderCapabilityChangedEv hasMonitorCapabilityChanged() on this event returns true hasRecordingCapabilityChanged() returns true ciscoProvider.getCapabili JTAPI returns true ties().canMonitor()
Scenario Three
Call Info NA
NA
Recording setting. A has auto recording setup. Action Events Call Info
ciscoAddressA.getRecord CiscoAddress.AUTO_RECORDING is NA: ingConfig() returned Recording status on address is changed to application controlled recording. CiscoAddressRecordingConfigChange NA dEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-81
Scenario Four
AutoRecording. A has auto recording setup. Caller X calls A. A answers the call. A has call observer. TA has observer. Action A hangs up Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv TA Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL CiscoRTPOutputStartedEv CiscoTermConnRecordingStartEv Cause: CAUSE_NORMAL CiscoRTPInputStartedEv CiscoTermConnRecordingTargetInf oEv Call Info Calling: X Called: A LRP: null Current calling: X Current called: A
AutoRecording. A has auto recording setup. Caller X calls A. A answers the call. Application calls startRecording().
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-82
OL-16702-01
Appendix A
Action
Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv TA Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL
Call Info Calling: X Called: A LRP: null Current calling: X Current called: A
Call.startRecording()
AutoRecording. A has auto recording setup. Caller X calls A. A answers the call. Application calls startRecording ().
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-83
Action
Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv TA Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL
Call Info Calling: X Called: A LRP: null Current calling: X Current called: A
Call.startRecording()
StartRecording(). A has application controlled setup. Caller X calls A. Application calls startRecording(). A answers the call. Application calls startRecording().
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-84
OL-16702-01
Appendix A
Action
Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL
Call Info Calling: X Called: A LRP: null Current calling: X Current called: A
Call.startRecording()
Scenario Eight
stopRecording(). A has application controlled recording setup. Caller X calls A. A answers the call. Application calls stopRecording().
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-85
Action
Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL
Call Info Calling: X Called: A LRP: null Current calling: X Current called: A
A answers the call CallCrlTermConnTalkingEv TA Cause: CAUSE_NORMAL CiscoRTPOutputStartedEv CiscoRTPInputStartedEv Call.startRecording() CiscoTermConnRecordingStartEv Cause: CAUSE_NORMAL CiscoTermConnRecordingTargetInf oEv
Call.stopRecording()
Hold. A has auto recording configured. Caller X calls A. a answers the call and holds the call. A resumes the call. RTP events are delivered to terminal observer and are independent of call events.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-86
OL-16702-01
Appendix A
Action
Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL CallCrlTermConnTalkingEv TA Cause: CAUSE_NORMAL
Call Info Calling: X Called: A LRP: null Current calling: X Current called: A
CiscoTermConnRecordingStartEv Cause: CAUSE_NORMAL CiscoTermConnRecordingTargetInfoEv A puts the call on HOLD CiscoRTPOutputStoppedEv CallCrlTermConnHeldEv Cause: CAUSE_NORMAL CiscoRTPInputStoppedEv CiscoTermConnRecordingEndEv Cause: CAUSE_NORMAL CallCrlTermConnTalkingEv TA Cause: CAUSE_NORMAL A resumes the call CiscoTermConnRecordingStartEv Cause: CAUSE_NORMAL CiscoRTPOutputStartedEv CiscoRTPInputStartedEv CiscoTermConnRecordingTargetInfoEv
CiscoTermConnRecordingEndEv Cause: CAUSE_NORMAL CallCtlTermConnDroppedEv TA Cause: CAUSE_NORMAL CallControlCause: CAUSE_NORMAL A drops the call CiscoRTPOutputStoppedEv CallInvalidEv CiscoRTPInputStoppedEv
Scenario Ten
Conference controller and recording initiator. A has auto recording configured. Caller X calls A. A answers the call. A initiates consult call to Y. Y answers and A completes conference.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-87
Action
Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL
Call Info GC1: Calling: X Called: A LRP: null Current calling: X Current called: A
GC1:CallCrlTermConnHeldEv Cause: CAUSE_NORMAL CiscoRTPInputStoppedEv GC1:CiscoTermConnRecordingEndEv Cause: CAUSE_NORMAL CallActiveEv for callID=GC2 Cause: CAUSE_NEW_CALL GC2:ConnCreatedEv for A Cause: CAUSE_NORMAL GC2:ConnConnectedEv for A Cause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-88
OL-16702-01
Appendix A
Action
Events GC2:CallCrlTermConnTalkingEv TA Cause: CAUSE_NORMAL GC2: ConnConnected Y CiscoRTPOutputStartedEv GC2:CiscoTermConnRecordingStartEv Cause: CAUSE_NORMAL CiscoRTPInputStartedEv CiscoTermConnRecordingTargetInfoEv
Call Info
CiscoConferenceStartEv(GC2 -> GC1) A completes conference GC2: CiscoTermConnRecordingEndEv TA GC2:CallCtlTermConnDroppedEv TA Cause: CAUSE_NORMAL GC2:CiscoRTPOutputStoppedEv GC2:CallInvalidEv GC2:CiscoRTPInputStoppedEv GC1: CallCtlTermConnTalkingEv TA GC1: ConnCreatedEv X GC1: ConnCreatedEv Y GC1: CiscoTermConnRecordingStartEv TA CiscoConferenceEndEv CiscoTermConnRecordingTargetInfoEv
CiscoRTPOutputStartedEv CiscoRTPInputStartedEv (recording start could be seen after conference end event)
Scenario Eleven
Conference target and recording initiator. A has auto recording configured. Caller X calls Y GC1. Y consults with A, A answers the call (GC2) and Y completes the conference.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-89
Action
Events CallActiveEv for callID=GC2 Cause: CAUSE_NEW_CALL GC2:ConnCreatedEv for A Cause: CAUSE_NORMAL GC2:ConnConnectedEv for A Cause: CAUSE_NORMAL GC2: ConnConnectedEv Y
Call Info GC1: Calling: X Called: A LRP: null Current calling: X Current called: A
GC2:CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL GC2:CallCrlTermConnTalkingEv TA Cause: CAUSE_NORMAL CiscoRTPOutputStartedEv CiscoRTPInputStartedEv GC2:CiscoTermConnRecordingStartEv Cause: CAUSE_NORMAL CiscoTermConnRecordingTargetInfoEv
Y completes conference
GC1: CallActiveEv GC1: ConnCreatedEv for A Cause: CAUSE_NORMAL GC1: ConnCreatedEv for Y Cause: CAUSE_NORMAL CiscoConferenceStartEv(GC2->GC1) CiscoCallChangedEv . CiscoRTPOutputStoppedEv CiscoRTPInputStoppedEv
GC2: CallCrlTermConnDroppedEv TA GC2: CallInvalidEv CiscoRTPOutputStartedEv CiscoRTPInputStartedEv GC1: CallCrlTermConnTalkingEv TA GC1: ConnConnectedEv Y GC1: ConnConnectedEv X GC1: CiscoConferenceEndEv (recording start could be seen before conference end event)
Scenario Twelve
Transfer controller and recording initiator. A has recording configured. Caller X calls A. A answers the call. A initiates consult call to Y. Y answers and A completes transfer.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-90
OL-16702-01
Appendix A
Action
Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL
Call Info GC1: Calling: X Called: A LRP: null Current calling: X Current called: A
CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL CallCrlTermConnTalkingEv TA Cause: CAUSE_NORMAL CiscoRTPOutputStartedEv CiscoRTPInputStartedEv CiscoTermConnRecordingStartEv Cause: CAUSE_NORMAL CiscoTermConnRecordingTargetInfoEv
CiscoRTPOutputStoppedEv GC1:CallCrlTermConnHeldEv Cause: CAUSE_NORMAL CiscoRTPInputStoppedEv GC1:CiscoTermConnRecordingEndEv Cause: CAUSE_NORMAL CallActiveEv for callID=GC2 Cause: CAUSE_NEW_CALL GC2:ConnCreatedEv for A Cause: CAUSE_NORMAL GC2:ConnConnectedEv for A Cause: CAUSE_NORMAL GC2: Calling: A Called: Y LRP: null Current calling: A Current called: Y
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-91
Action
Call Info
A completes transfer
CiscoTransferStartEv(GC2 -> GC1) GC2:CiscoTermConnRecordingEndEv GC2:CallCtlTermConnDroppedEv TA GC2:CiscoRTPOutputStoppedEv GC2:CallInvalidEv GC2:CiscoRTPInputStoppedEv GC1: CallCtlTermConnDroppedEv TA GC1: CallInvalidEv CiscoTransferEndEv CiscoRTPOutputStartedEv CiscoRTPInputStartedEv (recording end may not be seen after A completes transfer) GC1: Calling: X Called: Y LRP: A Current calling: X Current called: Y
Scenario Thirteen
Transfer target and recording initiator. A has auto recording configured. Caller X calls Y GC1. Y consults with A, A answers the call (GC2) and Y completes the transfer.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-92
OL-16702-01
Appendix A
Action
Events CallActiveEv for callID=GC2 Cause: CAUSE_NEW_CALL GC2:ConnCreatedEv for A Cause: CAUSE_NORMAL GC2:ConnConnectedEv for A Cause: CAUSE_NORMAL GC2: ConnConnectedEv Y
Call Info GC1: Calling: X Called: A LRP: null Current calling: X Current called: A
GC2:CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL GC2:CallCrlTermConnTalkingEv TA Cause: CAUSE_NORMAL CiscoRTPOutputStartedEv CiscoRTPInputStartedEv GC2:CiscoTermConnRecordingStartEv Cause: CAUSE_NORMAL CiscoTermConnRecordingTargetInfoEv
Y completes transfer
GC1: CallActiveEv GC1: ConnCreatedEv for A Cause: CAUSE_NORMAL GC1: ConnCreatedEv for Y Cause: CAUSE_NORMAL CiscoTransferStartEv(GC2->GC1) CiscoCallChangedEv . CiscoRTPOutputStoppedEv CiscoRTPInputStoppedEv GC1: CallCrlTermConnTalkingEv TA GC1: CallCtlConnDisconnectedEv Y GC1: ConnConnectedEv X GC2: CallCrlTermConnDroppedEv TA GC2: CallInvalidEv CiscoRTPOutputStartedEv CiscoRTPInputStartedEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-93
Scenario Fourteen
Start and Stop monitor: A is monitor target, B is monitor initiator. X calls A, A answers the call GC1 (ci1). B calls start monitor using GC2. Application has call observer on both A and B. Application has monitoring capability enabled. Action Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL GC1:ConnCreatedEv for A Cause: CAUSE_NORMAL GC1:ConnConnectedEv for A Cause: CAUSE_NORMAL GC1: ConnConnectedEv X A answers GC1 GC1:CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL GC1:CallCrlTermConnTalkingEv TA Cause: CAUSE_NORMAL CiscoRTPOutputStartedEv CiscoRTPInputStartedEv B calls start monitor using GC2 giving CI1, GC2:CallActive Cause: CAUSE_NORMAL GC2: GC1:ConnConnectedEv for B Cause: CAUSE_NORMAL Call Info GC1: Calling: X Called: A LRP: null Current calling: X Current called: A
GC2: CallCtlTermConnTalkingEv TB A and TermA from GC2: ConnCreatedEv A GC1 (No terminal connection for A or GC2) GC2: ConnConnectedEv A GC2:CiscoTermConnMonitorTargetInfoEv Cause: CAUSE_NORMAL address:A, terminal name: TA, rtphandle=CI1 GC1: CiscoTermConnMonitorStartEv TA GC1: CiscoTermConnMonitorInitiatorInfoEv TA Cause: CAUSE_NORMAL address:B, device name: TB
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-94
OL-16702-01
Appendix A
Events GC2: CiscoRTPOutputStoppedEv GC1: CiscoRTPOutputStoppedEv GC1: CallCtlTermConnHeldEv TA GC2:CiscoRTPInputStoppedEv GC1: CiscoRTPInputStoppedEv GC1: CiscoRTPOutputStartedEv
Call Info
Scenario Fifteen
Monitor initiator transfers the call to Y. A is monitor target, B is monitor initiator. X calls A, A answers the call GC1 (ci1). B calls start monitor using GC2. Application has call observer on both A and B. application has monitoring capability enabled. B transfers the call to Y.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-95
Action
Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL GC1:ConnCreatedEv for A Cause: CAUSE_NORMAL GC1:ConnConnectedEv for A Cause: CAUSE_NORMAL GC1: ConnConnectedEv X GC1:CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL GC1:CallCrlTermConnTalkingEv TA Cause: CAUSE_NORMAL CiscoRTPOutputStartedEv CiscoRTPInputStartedEv
Call Info GC1: Calling: X Called: A LRP: null Current calling: X Current called: A
A answers GC1
B calls start monitor using GC2 and ci2 giving CI1, A and TermA from GC1
GC2:CallActive Cause: CAUSE_NORMAL GC2: ConnConnectedEv for B Cause: CAUSE_NORMAL GC2: CallCtlTermConnTalkingEv TB GC2: ConnCreatedEv A (No terminal connection for A or GC2) GC2: ConnConnectedEv A
GC2:CiscoTermConnMonitorTargetInfoEv Cause: Or using the teminalconnection CAUSE_NORMAL Monitor_TARGET address:A, device of A. name: TA, rtphandle=CI1 GC1: CiscoTermConnMonitorStartEv TA GC1: CiscoTermConnMonitorInitiatorInfoEv TA Cause: CAUSE_NORMAL address:B, device name: TB rtphandle=ci2
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-96
OL-16702-01
Appendix A
Action
Events
Call Info
B consults Y using GC3: CallActiveEv GC3 and GC3: ConnConnectedEv B completes transfer. GC3: CallCtlTermConnTalkingEv TB GC3: ConnConnectedEv Y CiscoTransferStartEv(GC3->GC2) GC3: ConnDisconnectedEv Y GC1: CiscoTermConnMonitorInitiatorInfoEv TA Cause: CAUSE_NORMAL address:Y, device name: TY GC3: ConnDisconnectedEv B GC3: CallCtlTermConnDroppedEv TB GC3: CallInvalidEv GC2: CallCtlTermConnDroppedEv TB . GC2: CallInvalidEv CiscoTransferEndEv Call observer on Y GC3: CallActive would see GC3: CallCtlTermConnRingingEv TY GC3: CallCtlTermConnTalkingEv TY CiscoTransferStartEv CiscoCallChangedEv GC3->GC2 GC2: ConnConnectedEv Y GC2: ConnConnectedEv B GC2: CiscoTermConnMonitorTargetInfoEv TY Cause: CAUSE_NORMAL address:A, device name: TA GC3: ConnDisconnectedEv Y GC3: CallCtlTermConnDroppedEv TY GC3: CallInvalidEV GC2: ConnConnectedEv X GC2: ConnDisconnectedEv A CiscoTransferEndEv GC1: Calling: X Called: A LRP: A Current calling: X Current called: Y
(CiscoTermConnMonitorInitiatorInfoEv on GC1 is independent of transfer events on GC3 and GC2 and can be delivered at any time before or after end event.)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-97
Scenario Sixteen
Monitoring a barged call: A and A are shared lines. Caller calls A, A answers the call. A barge into the call. B calls start monitor. Action Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL GC1:ConnCreatedEv for A Cause: CAUSE_NORMAL GC1:ConnConnectedEv for A Cause: CAUSE_NORMAL GC1: ConnConnectedEv X A answers GC1 GC1:CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL GC1:CallCrlTermConnTalkingEv TA Cause: CAUSE_NORMAL CiscoRTPOutputStartedEv CiscoRTPInputStartedEv GC1: CallCtlTermConnBridgedEv TermA A barges the call GC1: GC1:CallCrlTermConnTalkingEv TA Exception is thrown to startMonitor request. B calls start monitor using GC2 giving CI1, A and TermA from GC1
Scenario Seventeen
Call Info GC1: Calling: X Called: A LRP: null Current calling: X Current called: A
Monitor and recording: A is monitor target and has auto recording configured. B is monitor initiator. X calls A, A answers the call GC1 (ci1). B calls start monitor using GC2. Application has call observer on both A and B. Application has monitoring capability enabled.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-98
OL-16702-01
Appendix A
Action
Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL GC1:ConnCreatedEv for A Cause: CAUSE_NORMAL GC1:ConnConnectedEv for A Cause: CAUSE_NORMAL GC1: ConnConnectedEv X GC1:CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL GC1:CallCrlTermConnTalkingEv TA Cause: CAUSE_NORMAL CiscoRTPOutputStartedEv GC1: CiscoTermConnRecordingStartEv TA GC1: CiscoTermConnRecordingTargetInfoEv TA CiscoRTPInputStartedEv
Call Info GC1: Calling: X Called: A LRP: null Current calling: X Current called: A
A answers GC1
B calls start monitor using GC2 giving CI1, GC2:CallActive Cause: CAUSE_NORMAL A and TermA from GC2: GC1:ConnConnectedEv for B Cause: GC1 CAUSE_NORMAL GC2: CallCtlTermConnTalkingEv TB GC2: ConnCreatedEv A (No terminal connection for A on GC2) GC2: ConnConnectedEv A GC2:CiscoTermConnMonitorTargetInfoEv Cause: CAUSE_NORMAL address:A, device name: TA, rtphandle=CI1 GC1: CiscoTermConnMonitorStartEv TA GC1: CiscoTermConnMonitorTargetInfoEv TA Cause: CAUSE_NORMAL address:B, device name: TB
Scenario Eighteen
Observing remote in use shared line in Monitoring: A and A are shared lines. Caller calls A, A answers the call. B calls start monitor. Application has call observer on A only. B initiates monitor request for connected call on A. No start events are delivered to call observer of A.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-99
Action
Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL GC1:ConnCreatedEv for A Cause: CAUSE_NORMAL GC1:ConnConnectedEv for A Cause: CAUSE_NORMAL GC1: ConnConnectedEv X GC1:CallCrlTermConnRingingEv TA Cause: CAUSE_NORMAL GC1: CallCtlTermConnBridgedEv TermA Cause: CAUSE_NORMAL
Call Info GC1: Calling: X Called: A LRP: null Current calling: X Current called: A
GC1: CallCrlTermConnHeldEv TA
B drops the call and initiates start monitor using GC3 giving the terminal connection of A in monitor request.
Scenario Nineteen
Snap Shot events for Monitor and recording: A is monitor target and has auto recording configured. B is monitor initiator. X calls A, A answers the call GC1 (ci1), B calls start monitor using GC2. Another application adds call observer on A after monitoring and recording sessions are established.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-100
OL-16702-01
Appendix A
Action
Events CallActiveEv for callID=GC1 Cause: CAUSE_SNAPSHOT GC1:ConnCreatedEv for A Cause: CAUSE_SNAPSHOT GC1:ConnConnectedEv for A Cause: CAUSE_SNAPSHOT GC1: ConnConnectedEv X GC1:CallCrlTermConnTalkingEv TA Cause: CAUSE_SNAPSHOT GC1: CiscoTermConnRecordingStartEv TA Cause: CAUSE_SNAPSHOT GC1: CiscoTermConnRecordingTargetInfoEv TA Cause: CAUSE_SNAPSHOT GC1: CiscoTermConnMonitorStartEv TA Cause: CAUSE_SNAPSHOT GC1: CiscoTermConnMonitorInitiatorInfoEv TA Cause: CAUSE_SNAPSHOT address:B, device name: TB
Call Info GC1: Calling: X Called: A LRP: null Current calling: X Current called: A
Scenario Twenty
Chained conference and recording: A has auto recording configured. A, B and C are in conference in GC1. A consults D using GC3. D sets up conference (with E and F) using Gc4 and adds As consult call to conference. A completes conference, resulting in a conference chain.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-101
Action
Events CallActiveEv for callID=GC1 GC1:ConnCreatedEv for A Cause: CAUSE_NORMAL GC1:ConnConnectedEv for A Cause: CAUSE_NORMAL GC1: ConnConnectedEv X
Call Info NA
B calls A, A answers the call on GC1:CallCrlTermConnTalkingEv TA Cause: GC1 CAUSE_NORMAL GC1: CiscoTermConnRecordingStartEv TA Cause: CAUSE_NORMAL GC1: CiscoTermConnRecordingTargetInfoEv TA Cause: CAUSE_NORMAL
GC1: CiscoTermConnMonitorStartEv TA Cause: CAUSE_NORMAL GC1: CiscoTermConnMonitorInitiatorInfoEv TA Cause: CAUSE_NORMAL address:B, device name: TB A consults C using GC1: TermConnHeldEv TA GC2 GC2: CallActiveEv GC1: CiscoTermConnRecordingEndEv TA Cause: CAUSE_NORMAL GC2: CallCrlTermConnTalkingEv TA Cause: CAUSE_NORMAL GC2: CiscoTermConnRecordingStartEv TA Cause: CAUSE_NORMAL .
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-102
OL-16702-01
Appendix A
Events GC2: CiscoTermConnRecordingEndEv TA Cause: CAUSE_NORMAL GC2: CallInvalidEv GC1: CiscoTermConnRecordingStartEv TA Cause: CAUSE_NORMAL GC1: TermConnTalkingEv TA
Call Info
D answers GC3: CallCrlTermConnTalkingEv TA GC3: CiscoTermConnRecordingStartEv TA Cause: CAUSE_NORMAL D consults with E and F and completes conference A completes conference
Intercom
Configuration: terminal T1 has intercom line A with TargetDN B, label Bob, Unicode label UBob. Terminal T2 has intercom line B. Application provider has both T1 and T2 in control list. C, Carol, UCarol is in the same intercom group as A, and B. D, David, UDavid is not in the same intercom group as A, B and C.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-103
Appendix A Intercom
Action
Result
Application opens provider, after provider comes JTAPI returns A and B as array in service, application issues of CiscoIntercomAddress. provider.getIntercomAddresses() Application issues CiscoIntercomAddress.getIntercomTargetDN(), CiscoIntercomAddress.getIntercomTargetLabel() and CiscoIntercomAddress.getIntercomUnicodeTarge t Label() request at A.
JTAPI will return B as target DN N.A and Bob and UBob as target label.
JTAPI will return B as target DN N.A Application issues CiscoIntercomAddress.getDafaultIntercomTarget and Bob and UBob as target label. DN(), CiscoIntercomAddress.getDefaultIntercomTarget Label() and CiscoIntercomAddress.getDefaultIntercomUnico deTargetLabel() request at A. Application issues CiscoIntercomAddres.setIntercomTarget(C, Carol, UCarol) on intercom address A. AddressObserver at A: CiscoAddrIntercomInfoChange dEv Cause: CAUSE_NORMAL N.A
After successful response, Application issues CiscoIntercomAddress.getIntercomTargetDN(), JTAPI will return C as target DN CiscoIntercomAddress.getIntercomTargetLabel() and Carol and UCarol as target and label. CiscoIntercomAddress.getIntercomUnicodeTarge tLabel() request at A. Application1 is observing CiscoIntercomAddress App1 : AddressObserver at A: A and has AddressObserverAdded to it. CiscoAddrIntercomInfoChange Application2 sets intercom target, label to C, dEv Cause: CAUSE_NORMAL Carol, UCarol. After above step Application1 issues Exception will be thrown to CiscoIntercomAddres.setIntercomTarget(B, Bob, application as another UBob) on intercom address A. application instance has already set the target to C, Carol, UCarol. N.A
N.A
Intercom target DN and label for intercom address Exception will be thrown as D, N.A David, UDavid is not in the same A is set to default, now application issues intercom group. CiscoIntercomAddres.setIntercomTarget(D, David, UDavid) on intercom address A.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-104
OL-16702-01
Appendix A
Action
Result
Application has set intercom target DN and label AddressObserver at A: to C, Carol, UCarol for intercom address A. Now CiscoAddrIntercomInfoChange CTI Manager goes out of service, JTAPI failover dEv Cause: CAUSE_NORMAL to another CTIManager node. After intercom address A come back in service, JTAPI will restore intercom target DN and label to C, Carol, UCarol respectively.
Application issues JTAPI will return C as target DN CiscoIntercomAddress.getIntercomTargetDN(), and Carol and UCarol as target CiscoIntercomAddress.getIntercomTargetLabel() label. and CiscoIntercomAddress.getIntercomUnicodeTarge tLabel() request at A. Application has set intercom target DN and label to C, Carol for intercom address A. Now CTI Manager goes out of service, JTAPI failsover to another CTIManager node. After intercom address A come back in service, JTAPI tries to restore intercom target DN, label and UnicodeLabel to C, Carol, UCarol respectively, however due to race condition some other application has already set the target DN, JTAPI get failure response from CTI. Application is connected to a CTIManager node, Cisco Unified Communications Manager node goes down, intercom device failsover to another Cisco Unified Communications Manager node, after intercom address comes back in service. CTIManager should restore intercom target Dn and label. N.A AddressObserver at A: CiscoAddrIntercomInfoRestorat ionFailedEv Cause: CAUSE_NORMAL
N.A
JTAPI will return C as target DN Application issues and Carol and UCarol as target CiscoIntercomAddress.getIntercomTargetDN(), label. CiscoIntercomAddress.getIntercomLabel() and CiscoIntercomAddress.getIntercomUnicodeTarge tLabel() request at A. Application is connected to a CTIManager node, Cisco Unified Communications Manager node goes down, intercom device failsover to another Cisco Unified Communications Manager node, after intercom address comes back in service. CTIManager tries to restore intercom target Dn and label, however due to race condition some other application has already set the target Dn and Label, hence CTI is not able to restore the intercom target DN and label. AddressObserver at A: N.A CiscoAddrIntercomInfoRestorat ionFailedEv Cause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-105
Appendix A Intercom
Action Application is observing intercom addresses A and B. A has target set to B. User initiates intercom call.
Result CallObserver at A and B: CallActiveEv GC1 Cause: CAUSE_NORMALConnCreate dEv A, Cause: CAUSE_NORMALConnConne ctedEv A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv A Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM ALTermConnCreatedEv A- T1 Cause: CAUSE_NORMAL TermConnActiveEv A- T1 Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv A T1 Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM AL
CallCtlConnDialingEv A Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM AL CallCtlConnEstablishedEv A Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM AL ConnCreatedEv B, Cause: CAUSE_NORMAL ConnConnectedEv B Cause: CAUSE_NORMAL CallCtlConnOfferedEv B Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM AL CallCtlConnEstablishedEv B Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM AL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-106
OL-16702-01
Appendix A
Action
Result TermConnCreatedEv B- T2 Cause: CAUSE_NORMAL TermConnPassiveEv B T2 Cause: CAUSE_NORMAL CallCtlTermConnBridgeEv B T2 Cause: CAUSE_NORMAL CallCtl Cause=CAUSE_NORMAL CiscoToneChangedEv T1 GC1 CiscoToneChangedEv T2 GC1 CiscoRTPOutputStartedEv T1 CiscoRTPInputStartedEv T2
Call Info
CallObserver at A and B: TermConnActiveEv B - T2 Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv B T2 Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM AL CiscoRTPOutputStartedEv T2CiscoRTPInputStartedEv T1
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-107
Appendix A Intercom
Action Intercom address A has target defined as B. Application initiates an intercom call by calling interface Address.ConnectIntercom() with dialeddigit as empty.
Result CallObserver at A and B : CallActiveEv GC1 Cause: CAUSE_NORMAL ConnCreatedEv A Cause: CAUSE_NORMAL ConnConnectedEv A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv A Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM AL TermConnCreatedEv T1 Cause: CAUSE_NORMAL TermConnActiveEv T1 Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv T1 Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM AL CallCtlConnDialingEv A Cause: CAUSE_NORMAL CallCtlConnEstablishedEv A Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM AL ConnCreatedEv B Cause: CAUSE_NORMAL C ConnConnectedEv B Cause: CAUSE_NORMAL CallCtlConnOfferedEv B Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM AL CallCtlConnEstablishedEv B Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM AL TermConnCreatedEv B- T2 Cause: CAUSE_NORMAL TermConnPassiveEv B T2 Cause: CAUSE_NORMAL CallCtlTermConnBridgeEv B T2 Cause: CAUSE_NORMAL CallCtlCause=CAUSE_NORM AL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-108
OL-16702-01
Appendix A
Action
Call Info
CiscoRTPOutputStartedEv T2 CiscoRTPInputStartedEv T1 Application tried to put the intercom call on hold at A by issuing TerminalConnection.hold() Application tried to accept intercom call at intercom target by issuing connection.accept() at connection of B. Application tried to reject intercom call at intercom target by issuing connection.reject() at connection of B. PlatformException will be thrown, intercom call stay connected. PlatformException will be thrown, intercom call stay connected. Intercom call will be disconnected. N.A
N.A
N.A
PlatformException will be Application tried to redirect intercom call by issuing connection.redirect() at connection of A or thrown, intercom call stay B. connected. Application tried to park call by issuing connection.park() at Connection of A or B. Terminal T1 has intercom address A which has intercom target set to B. Terminal T2 has intercom address B and another address C. C is in call with D, GC1. A initiates intercom call to B, intercom call is auto-answered at B Application tries to set forward on intercom address A by issuing CiscoIntercomAddress. setForwarding () Application tries to setRingerStatus on intercom address A by issuing CiscoIntercomAddress. setRingerStatus() PlatformException will be thrown. PlatformException will be thrown. No event to GC1 call, it will stay in Connected State. PlatformException will be thrown, intercom call stay connected.
N.A
N.A
N.A
N.A
N.A
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-109
Appendix A Intercom
Action Application tries to setMessageWaiting on intercom address A by issuing CiscoIntercomAddress.setMessageWaiting() Application tries to setAutoAcceptEnabled on intercom address A at CTIPort by issuing CiscoIntercomAddress. setAutoAcceptStatus () Application tries to getAutoAcceptEnabled on intercom address A at CTIPort by issuing CiscoIntercomAddress. getAutoAcceptStatus ()
DeviceState Whisper Scenario
Result PlatformException will be thrown. PlatformException will be thrown. PlatformException will be thrown.
N.A
N.A
Configuration: Terminal T1 has intercom address B, Terminal T2 has intercom address A. Application has set CiscoTermEvFilter to enable CiscoTermDeviceStateWhisperEv as well as all other DeviceState filters on T1 and T2. Application had added Terminal observer on both T1 and T2. Action Intercom address A has target defined as B. Application initiates an intercom call by calling interface Address.ConnectIntercom() with dialeddigit as empty. Events Event received at TerminalObserver of T1 Call Info N.A
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-110
OL-16702-01
Appendix A
None. Event received at TerminalObserver of T2 CiscoTermDeviceStateActiveEv T1 Cause: CAUSE_NORMAL Terminal T2 already have intercom target call, Application enables CiscoTermFilter for CiscoTermDeviceStateWhisperEv. Event received at TerminalObserver of T2 N.A
Do Not Disturb
Configuration: Application is observing terminal A and terminal B.
Scenario One
Application adds Terminal observer to terminal A using Terminal.addObserver(). Filter is enabled via setDNDChangedEvFilter. DND is enabled on the terminal. Application invokes getDNDStatus() from CiscoTerminal. Action Events Call Info
N.A Application adds terminal observer to terminal A. NEW META Filter is enabled via setDNDChangedEvFilter() in EVENT_________ META_CALL_STARTING CiscoTermEvFilter. DND is enabled on the terminal through phone or admin page. CiscoTermDNDStatusChanged Ev A Cause: CAUSE_NORMAL Application invokes getDNDStatus() from for DND Status: true CiscoTerminal. DND status = true is returned to the application
Scenario Two
Application enables filter to receive events. Application adds Terminal observer to terminal A using Terminal.addObserver(). DND is enabled on the terminal. Application invokes getDNDStatus() from CiscoTerminal.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-111
Action Application enables filter to receive events. Application adds terminal observer to terminal
EVENT_________META_CAL A. DND is enabled on the device through phone or L_STARTING admin pages. CiscoTermDNDStatusChanged Ev A Cause: CAUSE_NORMAL Application invokes getDNDStatus() from for DND Status: true CiscoTerminal. DND status = true is returned to the application
Scenario Three
Application adds Terminal observer to terminal A using Terminal.addObserver(). Filter is disabled via setDNDChangedEvFilter() in CiscoTermEvFilter. Application invokes getDNDStatus() from CiscoTerminal. Action Events Call Info N.A
Application adds Terminal observer to terminal A CiscoTermDNDStatusChanged using Terminal.addObserver(). Filter is disabled Ev is not delivered to application. via setDNDChangedEvFilter() in CiscoTermEvFilter. Application invokes getDNDStatus() from CiscoTerminal.
Scenario Four
Application does not add Terminal observer to terminal. Application invokes getDNDStatus() from CiscoTerminal. Action Application does not add Terminal observer to terminal. Application invokes getDNDStatus() from CiscoTerminal.
Scenario Five
Events
Call Info
Application does not enable the filter to receive events. Application adds Terminal observer to terminal A. DND status is set to true through the phone or admin pages. Application now enables the filter to receive events. Application invokes getDNDStatus() from CiscoTerminal.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-112
OL-16702-01
Appendix A
Action Application does not enable the filter to receive events.Application adds Terminal observer to terminal A. DND status is set to true through the phone or admin pages. Application now enables the filter to receive events
Events CiscoTermDNDStatusChanged Ev is not delivered to application. NEW META EVENT_________META_CAL L_STARTING CiscoTermDNDStatusChanged Ev A Cause: CAUSE_NORMAL for DND Status: true DND status = true is returned to application
Scenario Six
Application sets DND status to false by invoking the setDNDStatus() interface on CiscoTerminal. Action Application invokes setDNDStatus() from CiscoTerminal. Events Call Info
N.A NEW META EVENT_________META_CAL L_STARTINGCiscoTermDNDS tatusChangedEv A Cause: CAUSE_NORMAL for DND Status: false
Scenario Seven
Application 1 and Application 2 are observing terminal a, and both the applications have enabled the filter to receive events. Application 1 sets DND status to false on Terminal A. Application 2 is observing Terminal A. Action Application invokes setDNDStatus() from CiscoTerminal. Events Call Info
N.A NEW META EVENT_________META_CAL L_STARTINGCiscoTermDNDS tatusChangedEv A Cause: CAUSE_NORMAL for DND Status: false
Scenario Eight
DND Type is RingerOff and CFNA is not set. Terminal B calls Terminal A. Call is presented to A and call is not answered.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-113
Action Application invokes redirect() API with feature priority set to 3 from CiscoCall.
Events
Call Info
N.A Call is presented to the device, irrespective of the DND settings on the device. CER call overrides DND setting. N.A Call is presented to the device, irrespective of the DND settings on the device. CER call overrides DND setting.
Application invokes selectRoute() API with feature priority set to 3 from CiscoRouteSession.
Scenario Nine
Action
Events
DND Type is RingerOff and CFNA is not set. ConnFailedEv Cause: Terminal B calls Terminal A .Call is presented to CAUSE_NO ANSWER A and call is not answered.
Scenario Ten
DND Type is CallReject and CFB is not set. Terminal B calls Terminal A. Call is not presented to A. Action Events Call Info N.A
DND Type is CallReject and CFB is not set. ConnFailedEv Cause: Terminal B calls Terminal A. Call is not presented CAUSE_USER BUSY to A
Scenario Eleven
DND is enabled on the terminal A. Terminal A comes IN_SERVICE. Application invokes getDNDStatus() on CiscoTerm in ServiceEv. Action DND is enabled on the terminal A. Terminal A comes IN_SERVICE. Events CiscoTermInServiceEv Cause: CAUSE_NORMAL DND Status =true
Scenario Twelve
DND is enabled on terminal A. Terminal A comes IN_SERVICE. Application invokes setDNDStatus(). DB failure happens after the setDNDStatus() request is sent.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-114
OL-16702-01
Appendix A
Action DND is enabled on the terminal A. Terminal A comes IN_SERVICE. Application invokes setDNDStatus(). DB failure follows and value is not updated in DB.
Events
Call Info
N.A PlatformException is thrown Could not meet post conditions of setDNDStatus() No CiscoTermDNDStatusChanged Ev is received.
Scenario Thirteen
DND is enabled on the terminalA. Terminal A comes IN_SERVICE,DND status is currently true in phone/admin. Application tries to set the same value i.e. invokes setDNDStatus(true). Action Events Call Info
InvalidStateException is caught: N.A DND is enabled on the terminal A. Terminal A comes IN_SERVICE.DND status is currently true DND status with value true is in phone/admin.Application tries to set the same already set value i.e. invokes setDNDStatus(true). No CiscoTermDNDStatusChanged Ev is received.
DNDR
Scenario One
Application adds Terminal observer to terminal A using Terminal.addObserver (). DND-R is enabled on the terminal B via the Admin page or the Common profile page. Action Events Call Info
N.A
NEW META EVENT_________ Application adds terminal observers to terminal A and B. DND-R is enabled on the META_CALL_STARTING terminal B through phone or admin page. CallActiveEv for callID=GC1 Cause: A issues Call.connect to B with the feature CAUSE_NEW_CALL Priority = 1 (Normal) ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv for A Cause: CAUSE_NORMAL ConnFailedEv B Cause:. Cause: CAUSE_USERBUSY.
Scenario Two
Application adds Terminal observer to terminal A using Terminal.addObserver (). DND-R is enabled on the Terminal B via the Admin page or the Common profile page.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-115
Action
Events
Application adds terminal observers to terminal NEW META A and B. DND-R is enabled on the terminal B EVENT_________META_CALL_STARTING through phone or admin page. CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL A issues Call.connect to B with the feature Priority = 3 (Emergency) ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv for A Cause: CAUSE_NORMAL TermConnCreatedEv for A Cause: CAUSE_NORMAL TernConnActiveEv for A Cause: CAUSE_NORMAL CallCtlConnDialingEv for A Cause: CAUSE_NORMAL CallCtlConnEstabilishedEv for A Cause: CAUSE_NORMAL ConnCreatedEv for B cause: CAUSE_NORMAL ConnInProgressEv for B Cause: CAUSE_NORMAL CallCtlConnOfferedEv for B Cause: CAUSE_NORMAL ConnAlertingEv for B Cause: CAUSE_NORMAL CallCtlConnAlertingEv for B Cause: CAUSE_NORMAL TermConnCreatedEv for B Cause: CAUSE_NORMAL TermConnRingingEv for B Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv Cause: CAUSE_NORMAL
Scenario Three
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-116
OL-16702-01
Appendix A
Action Application adds terminal observers to terminal A and B. DND-R is enabled on the terminal B through phone or admin page with no CFB Setting. Terminal A issues Call.connect to Terminal B.
Events NEW META EVENT_________ META_CALL_STARTING CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv for A Cause: CAUSE_NORMAL ConnFailedEv B Cause: CAUSE_USERBUSY.
Scenario Four
Call Info NA
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-117
DND-R is Enabled in Terminal B with CFB CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL set to Terminal C. Terminal A issues Call.connect to Terminal B. Call is not Presented on Terminal B and is Forwarded to Terminal C. ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv for A Cause: CAUSE_NORMAL TermConnCreatedEv for A Cause: CAUSE_NORMAL TernConnActiveEv for A Cause: CAUSE_NORMAL CallCtlConnDialingEv for A Cause: CAUSE_NORMAL CallCtlConnEstabilishedEv for A Cause: CAUSE_NORMAL ConnCreatedEv for C cause: REDIRECTED CALL ConnInProgressEv for C Cause: REDIRECTED CALL CallCtlConnOfferedEv for C Cause: REDIRECTED CALL ConnAlertingEv for C Cause REDIRECTED CALL CallCtlConnAlertingEv for C Cause: REDIRECTED CALL TermConnCreatedEv for C Cause: REDIRECTED CALL TermConnRingingEv for C Cause: REDIRECTED CALL CallCtlTermConnTalkingEv Cause: CAUSE_REDIRECTED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-118
OL-16702-01
Appendix A
Secure Conferencing
Action Scenario:1 Configuration: A (secure) and B (secure). A calls B. B answers. Events CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL GC1:ConnCreatedEv for A Cause: CAUSE_NORMAL GC1:ConnCreatedEv for B Cause: CAUSE_NORMAL Application issues getCallSecurtyStatus(). CallCtlTermConnTalkingEv CallSecurityStatusChangedEv for callID=GC1 Returns the call security status of the call. Configuration: A (secure), B (secure) and CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL C (non-secure). Application sets ini parameter = true by issuing enableSecurtyStatusChangedEv () A calls B. B answers. B call C. C answers. B completes conference. CallSecurityStatusChangedEv for callID=GC1. GC1:ConnCreatedEv for A Cause: CAUSE_NORMAL GC1:ConnCreatedEv for B Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv CallSecurityStatus = 1 (NOTAUTHENTICATED). Note: Though CallSecurityStatus=NotAuthenticated, A and B will continue to have secure media between themselves and the conference bridge, i.e. they will continue to receive SRTP key info because they are encrypted parties. Participants: A, B, C Participants: A, B, C CallSecurityStatus = 3 (ENCRYPTED) will get updated in the call info. CallSecurityStatus = 3 (ENCRYPTED). Call Info Calling: A Called: B
Scenario:3
Configuration: A (secure), B (secure) and GC1:ConnCreatedEv for A Cause: C (secure). Application sets ini parameter = true by CAUSE_NORMAL issuing enableSecurtyStatusChangedEv () A calls B. B answers. B call C. C answers. B completes conference. GC1:ConnCreatedEv for B Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv CallSecurityStatusChangedEv for callID=GC1.
Returns the call security status of the call (Secure). Application issues getCallSecurtyStatus().
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-119
Configuration: A (secure), B (secure) and Returns the call security status of the C (non-secure). call. A calls B. B answers. B call C. C answers. B completes conference. Application later adds call observers on A, B, C. Application issues getCallSecurtyStatus(). Scenario:5 Configuration: A (secure), B (secure). Application sets ini parameter = true by issuing enableSecurtyStatusChangedEv() A calls B. B answers. CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL GC1:ConnCreatedEv for A Cause: CAUSE_NORMAL GC1:ConnCreatedEv for B Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv CallSecurityStatusChangedEv for callID=GC1
CallSecurityStatus = 0 (UNKNOWN) will get updated in the call info. CallSecurityStatus = (ENCRYPTED) will get updated in the call info.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-120
OL-16702-01
Appendix A
Action Scenario:6
Call Info CallSecurityStatus = 3 (ENCRYPTED) will get updated in the call info for GC1.
Configuration: A (secure), B (secure) and GC1:ConnCreatedEv for A Cause: C (non-secure). CAUSE_NORMAL Application sets ini parameter = true by GC1:ConnCreatedEv for B Cause: issuing CAUSE_NORMAL enableSecurtyStatusChangedEv() A calls B. B answers. CallCtlTermConnTalkingEv CallSecurityStatusChangedEv for callID=GC1 B consults C. C answers.
CallSecurityStatus = 1 (NOTAUTHENTICATED) will get updated in the call info for GC2. CallSecurityStatus = 1 (NOTAUTHENTICATED) will get updated in the call info for GC1.
CallActiveEv for callID=GC2 Cause: CAUSE_NEW_CALL GC2:ConnCreatedEv for B Cause: CAUSE_NORMAL B completes transfer. GC2:ConnCreatedEv for C Cause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-121
Action Scenario:7
Call Info CallSecurityStatus = 3 (ENCRYPTED) will get updated in the call info for GC1.
Configuration: A (secure), B (secure), C GC1:ConnCreatedEv for A Cause: (secure), D (secure), and E CAUSE_NORMAL (Authenticated). Application sets ini parameter = true by issuing enableSecurtyStatusChangedEv() A, B and C are part of a conference Call 1. GC1:ConnCreatedEv for C Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv C, D and E are a part of another conference Call 2. GC1:ConnCreatedEv for B Cause: CAUSE_NORMAL
CallSecurityStatus = 2 (AUTHENTICATED) will get updated in the call info for GC2. CallSecurityStatus = 1 (NOTAUTHENTICATED) will get updated in the call info for GC1 and GC2.
CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL GC2:ConnCreatedEv for C Cause: CAUSE_NORMAL C chains the 2 conferences. GC2:ConnCreatedEv for D Cause: CAUSE_NORMAL GC2:ConnCreatedEv for E Cause: CAUSE_NORMAL
CallCtlTermConnTalkingEv CallCtlSecurityStatusChangedEv for callID=GC1 CallActiveEv for callID=GC1 Cause: Configuration: A (secure), B (secure), B CAUSE_NEW_CALL GC1:ConnCreatedEv for A Cause: (authenticated) CAUSE_NORMAL Application sets ini parameter = true by issuing enableSecurtyStatusChangedEv() GC1:ConnCreatedEv for B Cause: CAUSE_NORMAL Scenario:8 CallCtlTermConnTalkingEv CallSecurityStatusChangedEv for callID=GC1. CallSecurityStatus = 2 (AUTHENTICATED) will get updated in the call info for GC1. Note: Applications who have added call observers on B will also get the event, i.e. the new event will be delivered to RIU Parties as well.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-122
OL-16702-01
Appendix A
CurrCalled=B1 User presses transfer key on Cisco Unified IP ControllerTerminalConnection= 7931G phone and dials C, call initiated from B2 to LRP=B1 Null, FinalCall=GC1, C: B2 calls C, C answers - GC2 TransferredCall= null) User presses transfer key to complete transfer. GC-1 ConnDisconnectedEv for B1 Cause: CAUSE_UNKNOWN GC-1 CallCtlConnDisconnectedEv for B1 Cause: CAUSE_UNKNOWN CallControlCause: CAUSE_TRANSFER GC-1 ConnCreatedEv for C Cause: CAUSE_NORMAL GC-1 ConnConnectedEv for C Cause: CAUSE_NORMAL GC-1 CallCtlConnEstablishedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC-1 CiscoTransferEndEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-123
CurrCalled=B1 User presses transfer key on Cisco Unified IP 7931G phone and dials C, call initiated from B2 to ControllerTerminalConnection= LRP=B1 TC at TB1, FinalCall=GC1, C: TransferredCall= null) B2 calls C, C answers - GC2 GC1- TermConnDroppedEv for User presses transfer key to complete transfer TB1 Cause: CAUSE_NORMAL GC1CallCtlTermConnDroppedEv for TB1 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC-1 ConnDisconnectedEv for B1 Cause: CAUSE_UNKNOWN GC-1 CallCtlConnDisconnectedEv for B1 Cause: CAUSE_UNKNOWN CallControlCause: CAUSE_TRANSFER GC-1 ConnCreatedEv for C Cause: CAUSE_NORMAL GC-1 ConnConnectedEv for C Cause: CAUSE_NORMAL GC-1 CallCtlConnEstablishedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER
GC-1 CiscoTransferEndEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-124
OL-16702-01
Appendix A
Action Scenario:3 Application is observing A, B1, B2: A calls B1, B1 answers GC1
CurrCalled=B1 User presses transfer key on Cisco Unified IP 7931G phone and dials C, call initiated from B2 to ControllerTerminalConnection= LRP=B1 TC at TB1, FinalCall=GC1, C: TransferredCall= GC2) B2 calls C, C answers - GC2 GC1- TermConnDroppedEv for User presses transfer key to complete transfer TB1 Cause: CAUSE_NORMAL GC1CallCtlTermConnDroppedEv for TB1 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC-1 ConnDisconnectedEv for B1 Cause: CAUSE_UNKNOWN GC-1 CallCtlConnDisconnectedEv for B1 Cause: CAUSE_UNKNOWN CallControlCause: CAUSE_TRANSFER
GC-1 ConnCreatedEv for C Cause: CAUSE_NORMAL GC-1 ConnConnectedEv for C Cause: CAUSE_NORMAL GC-1 CallCtlConnEstablishedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER
GC2- ConnDisconnectedEv for B2 Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for B2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-125
Action
Events GC2- TermConnDroppedEv for TB2 Cause: CAUSE_NORMAL GC2CallCtlTermConnDroppedEv for TB2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC2- ConnDisconnectedEv for C Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC2- CallInvalidEv Cause: CAUSE_NORMAL
Call Info
GC-1 CiscoTransferEndEv CallControlCause: CAUSE_TRANSFER GC2- CallInvalidEv Cause: CAUSE_NORMAL GC-1 CiscoTransferEndEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-126
OL-16702-01
Appendix A
Action Scenario:4 Application is observing A, B1, B2 and C: A calls B1, B1 answers GC1
Events
Call Info
User presses transfer key on Cisco Unified IP 7931G phone and dials C, call initiated from B2 to ControllerTerminalConnection= LRP=B1 C: TC at TB1, FinalCall=GC1, B2 calls C, C answers - GC2 TransferredCall= GC2) User presses transfer key to complete transfer GC1- TermConnDroppedEv for TB1 Cause: CAUSE_NORMAL GC1CallCtlTermConnDroppedEv for TB1 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC-1 ConnDisconnectedEv for B1 Cause: CAUSE_UNKNOWN GC-1 CallCtlConnDisconnectedEv for B1 Cause: CAUSE_UNKNOWN CallControlCause: CAUSE_TRANSFER GC-1 ConnCreatedEv for C Cause: CAUSE_NORMAL GC-1 ConnConnectedEv for C Cause: CAUSE_NORMAL GC-1 CallCtlConnEstablishedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC1- TermConnCreatedEv CT Cause: Other: 31 GC1- TermConnActiveEv CT Cause: CAUSE_NORMAL GC1CallCtlTermConnTalkingEv CT Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER
Calling=A JTAPI Event received to CallObserver at A, B1, B2 and Called=B1 C CurrCalling=A GC-1 CiscoTransferStartedEv CurrCalled=B1 (ControllerAddress=B1,
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-127
Action
Call Info
GC2- TermConnDroppedEv for TB2 Cause: CAUSE_NORMAL GC2CallCtlTermConnDroppedEv for TB2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC2- ConnDisconnectedEv for B2 Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for B2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC2- TermConnDroppedEv for CT Cause: CAUSE_NORMAL GC2CallCtlTermConnDroppedEv for CT Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC2- ConnDisconnectedEv for C Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC2- CallInvalidEv Cause: CAUSE_NORMAL
GC-1 CiscoTransferEndEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-128
OL-16702-01
Appendix A
Action Scenario:5 Application is observing C: A calls B1, B1 answers GC1 User presses transfer key on Cisco Unified IP 7931G phone and dials C, call initiated from B2 to C: B2 calls C, C answers - GC2 User presses transfer key to complete transfer
GC1- CallActiveEv for callID=101 Cause: CAUSE_NEW_CALL GC1- ConnCreatedEv for C Cause: CAUSE_NORMAL GC1- ConnCreatedEv for B2 Cause: CAUSE_NORMAL GC-1CiscoTransferStartEv (ControllerAddress=B1, ControllerTerminalConnection= Null, FinalCall=GC1, TransferredCall= GC2) Cause: CAUSE_NORMAL GC1- ConnConnectedEv for C Cause: CAUSE_NORMAL GC1CallCtlConnEstablishedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC1- TermConnCreatedEv CT Cause: Other: 31 GC1- TermConnActiveEv CT Cause: CAUSE_NORMAL GC1CallCtlTermConnTalkingEv CT Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-129
Action
Events GC2- CiscoCallChangedEv for C Cause: CAUSE_NORMAL GC2- ConnDisconnectedEv for B2 Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for B2 Cause: CAUSE_NORMAL GC2- TermConnDroppedEv for CT Cause: CAUSE_NORMAL GC2CallCtlTermConnDroppedEv for CT Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER CallControlCause: CAUSE_TRANSFER GC2- ConnDisconnectedEv for C Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC2- CallInvalidEv Cause: CAUSE_NORMAL
Call Info
GC1- ConnDisconnectedEv for B2 Cause: CAUSE_NORMAL GC1CallCtlConnDisconnectedEv for B2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-130
OL-16702-01
Appendix A
Action
Events GC1- ConnCreatedEv for A Cause: CAUSE_NORMAL GC1- ConnConnectedEv for A Cause: CAUSE_NORMAL GC1CallCtlConnEstablishedEv for A Cause: CAUSE_NORMAL GC1- ConnConnectedEv for B2 Cause: CAUSE_NORMAL GC1CallCtlConnEstablishedEv for B2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER CallControlCause: CAUSE_TRANSFER
Call Info
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-131
Action Scenario:6 Application is observing both A and C: A calls B1, B1 answers GC1 User presses transfer key on Cisco Unified IP 7931G phone and dials C, call initiated from B2 to C: B2 calls C, C answers - GC2 User presses transfer key to complete transfer
Events
Call Info
JTAPI events at observer of A & Calling=A C: Called=B1 GC-1CiscoTransferStartEv CurrCalling=A (ControllerAddress=B1, CurrCalled=C ControllerTerminalConnection= LRP=B1 Null, FinalCall=GC1, TransferredCall= GC2) Cause: CAUSE_NORMAL GC2- CiscoCallChangedEv for C Cause: CAUSE_NORMAL GC2- ConnDisconnectedEv for B2 Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for B2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER
GC2- TermConnDroppedEv for CT Cause: CAUSE_NORMAL GC2CallCtlTermConnDroppedEv for CT Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC2- ConnDisconnectedEv for C Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC2- CallInvalidEv Cause: CAUSE_NORMAL GC1- 1 CiscoTransferEndEv Cause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-132
OL-16702-01
Appendix A
Action
Events GC1- ConnCreatedEv for C Cause: CAUSE_NORMAL GC1- ConnConnectedEv for C Cause: CAUSE_NORMAL GC1CallCtlConnEstablishedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER GC1- TermConnCreatedEv CT Cause: Other: 31 GC1- TermConnActiveEv CT Cause: CAUSE_NORMAL GC1CallCtlTermConnTalkingEv CT Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRANSFER NEW META GC-1 ConnDisconnectedEv for B1 GC1 Cause: CAUSE_UNKNOWN GC-1 CallCtlConnDisconnectedEv for B1 GC1 Cause: CAUSE_UNKNOWN CallControlCause: CAUSE_TRANSFER
Call Info
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-133
Action Scenario:7 Application is observing A: A calls B1, B1 answers GC1 User presses conference key on Cisco Unified IP 7931G phone and dials C, call initiated from B2 to C: B2 calls C, C answers - GC2 User presses conference key to complete conference
ControllerTerminalConnection= LRP=B1 Null, FinalCall=GC1, ConsultCall= null) GC-1 ConnCreatedEv for C Cause: CAUSE_NORMAL GC-1 ConnConnectedEv for C Cause: CAUSE_NORMAL GC-1 CallCtlConnEstablishedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC-1 CiscoConferenceEndEv
Scenario:8 Application is observing A, B1: A calls B1, B1 answers GC1 User presses conference key on Cisco Unified IP 7931G phone and dials C, call initiated from B2 to C: B2 calls C, C answers - GC2 User presses conference key to complete conference
ControllerTerminalConnection= LRP=B1 TC at TB1, FinalCall=GC1, ConsultCall= null) GC-1 ConnCreatedEv for C Cause: CAUSE_NORMAL GC-1 ConnConnectedEv for C Cause: CAUSE_NORMAL GC-1 CallCtlConnEstablishedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC1 TermConnPassiveEv TB1 GC1 CallCtlTermConnBridgedEv TB1 GC-1 CiscoConferenceEndEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-134
OL-16702-01
Appendix A
Action Scenario:9 Application is observing A, B1, B2: A calls B1, B1 answers GC1
User presses conference key on Cisco Unified IP ControllerTerminalConnection= LRP=B1 7931G phone and dials C, call initiated from B2 to TC at TB1, FinalCall=GC1, C: ConsultCall= GC2) B2 calls C, C answers - GC2 User presses conference key to complete conference GC-1 ConnCreatedEv for C Cause: CAUSE_NORMAL GC-1 ConnConnectedEv for C Cause: CAUSE_NORMAL GC-1 CallCtlConnEstablishedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC1 TermConnPassiveEv TB1 GC1 CallCtlTermConnBridgedEv TB1 GC2- TermConnDroppedEv for TB2 Cause: CAUSE_NORMAL GC2CallCtlTermConnDroppedEv for TB2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC2- ConnDisconnectedEv for B2 Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for B2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-135
Action
Events GC2- ConnDisconnectedEv for C Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC2- CallInvalidEv Cause: CAUSE_NORMAL GC-1 CiscoConferenceEndEv
Call Info
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-136
OL-16702-01
Appendix A
Action Scenario:10
Events
Call Info
Calling=A JTAPI Event received to CallObserver at A, B1, B2 and Called=B1 Application is observing A, B1, B2, and C: C CurrCalling=A A calls B1, B1 answers GC1 GC-1 CurrCalled= User presses conference key on Cisco Unified IP CiscoConferenceStartedEv Conference 7931G phone and dials C, call initiated from B2 to (ControllerAddress=B1, C: ControllerTerminalConnection= LRP=B1 B2 calls C, C answers - GC2 TC at TB1, FinalCall=GC1, User presses conference key to complete conference ConsultCall= GC2) GC-1 ConnCreatedEv for C Cause: CAUSE_NORMAL GC-1 ConnConnectedEv for C Cause: CAUSE_NORMAL GC-1 CallCtlConnEstablishedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC1 TermConnPassiveEv TB1 GC1 CallCtlTermConnBridgedEv TB1 GC2- CiscoCallChangedEv for C Cause: CAUSE_NORMAL GC2- TermConnDroppedEv for TB2 Cause: CAUSE_NORMAL GC2CallCtlTermConnDroppedEv for TB2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC2- ConnDisconnectedEv for B2 Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for B2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-137
Action
Events GC2- TermConnDroppedEv for TC Cause: CAUSE_NORMAL GC2CallCtlTermConnDroppedEv for TC Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC2- ConnDisconnectedEv for C Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC2- CallInvalidEv Cause: CAUSE_NORMAL GC-1 CiscoConferenceEndEv
Call Info
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-138
OL-16702-01
Appendix A
Events JTAPI Event received to CallObserver at C GC1- CallActiveEv for callID=101 Cause: CAUSE_NEW_CALL
User presses conference key on Cisco Unified IP 7931G phone and dials C, call initiated from B2 to GC1- ConnCreatedEv for C C: Cause: CAUSE_NORMAL B2 calls C, C answers - GC2 GC1- ConnCreatedEv for B2 User presses conference key to complete Cause: CAUSE_NORMAL conference. GC-1CiscoConferenceStartEv (ControllerAddress=B1, ControllerTerminalConnection= Null, FinalCall=GC1, ConsultCall= GC2) Cause: CAUSE_NORMAL GC1- ConnConnectedEv for C Cause: CAUSE_NORMAL GC1CallCtlConnEstablishedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC1- TermConnCreatedEv CT Cause: Other: 31 GC1- TermConnActiveEv CT Cause: CAUSE_NORMAL GC1CallCtlTermConnTalkingEv CT Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC1- ConnConnectedEv for B2 Cause: CAUSE_NORMAL GC1CallCtlConnEstablishedEv for B2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-139
Action
Events GC2- CiscoCallChangedEv for C Cause: CAUSE_NORMAL GC2- ConnDisconnectedEv for B2 Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for B2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC2- TermConnDroppedEv for CT Cause: CAUSE_NORMAL GC2CallCtlTermConnDroppedEv for CT Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC2- ConnDisconnectedEv for C Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC2- CallInvalidEv Cause: CAUSE_NORMAL GC1- ConnDisconnectedEv for B2 Cause: CAUSE_NORMAL GC1CallCtlConnDisconnectedEv for B2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC1- ConnCreatedEv for A Cause: CAUSE_NORMAL GC1- ConnConnectedEv for A Cause: CAUSE_NORMAL
Call Info
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-140
OL-16702-01
Appendix A
Action
Call Info
GC1- ConnCreatedEv for B1 Cause: CAUSE_NORMAL GC1- ConnConnectedEv for B1 Cause: CAUSE_NORMAL GC1CallCtlConnEstablishedEv for B1 Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC1- 1 CiscoConferenceEndEv Cause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-141
Action Scenario:12
Events
Call Info
JTAPI events at observer of A & Calling=A C: Called=B1 Application is observing both A and C: GC-1CiscoConferenceStartEv CurrCalling=A A calls B1, B1 answers GC1 (ControllerAddress=B1, CurrCalled= User presses conference key on Cisco Unified IP 7931G phone and dials C, call initiated from B2 to ControllerTerminalConnection= Conference Null, FinalCall=GC1, C: LRP=B1 ConsultCall= GC2) Cause: B2 calls C, C answers - GC2 CAUSE_NORMAL User presses conference key to complete GC2- CiscoCallChangedEv for conference. C Cause: CAUSE_NORMAL GC2- ConnDisconnectedEv for B2 Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for B2 Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC2- TermConnDroppedEv for CT Cause: CAUSE_NORMAL GC2CallCtlTermConnDroppedEv for CT Cause: CAUSE_NORMAL CallControlCause: CAUSE_TRAN CAUSE_CONFERENCE SFER GC2- ConnDisconnectedEv for C Cause: CAUSE_NORMAL GC2CallCtlConnDisconnectedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC2- CallInvalidEv Cause: CAUSE_NORMAL GC1- ConnCreatedEv for C Cause: CAUSE_NORMAL GC1- ConnConnectedEv for C Cause: CAUSE_NORMAL GC1CallCtlConnEstablishedEv for C Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-142
OL-16702-01
Appendix A
Action
Events GC1- TermConnCreatedEv CT Cause: Other: 31 GC1- TermConnActiveEv CT Cause: CAUSE_NORMAL GC1CallCtlTermConnTalkingEv CT Cause: CAUSE_NORMAL CallControlCause: CAUSE_CONFERENCE GC1- 1 CiscoConferenceEndEv Cause: CAUSE_NORMAL
Call Info
During install, JTAPI client would prompt user to enter TFTP IP address. TFTP-IP Address is stored in JTAPI.ini parameter. JTAPI Preferences application is run first time, it will take user to language tab to language selection. User can select language for running JTAPI Preference application. JTAPI Preference application is run second time, it will present UI in the language that user selected before.
Scenario 2 JTAPI client machine doesnt have connectivity to CallManager TFTP Server
During install JTAPI Client would prompt user to Enter TFTP-IP Address TFTP-IP Address is stored in JTAPI.ini parameter. JTAPI Preferences application is run first time, it will take user to language tab to language selection but user will have only English language to select. JTAPI Preference application is run second time, it will present UI in the English languages. TFTP connectivity is restored. Now JTAPI Preferences UI is run, it will take user to language selection
During install JTAPI Client would prompt user to Enter TFTP-IP Address TFTP-IP Address is stored in JTAPI.ini parameter. JTAPI Preferences application is run first time, it will take user to language tab to language selection. User can select language for running JTAPI Preference application. JTAPI Preference application is run second time, it will present UI in the language that user selected before. Now new locale files are available with added support for a new languages.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-143
User runs JTAPI Preferences application, JTAPI Preferences application would notify user about available. Application restart JTAPI Preferences application, user will be support for new language.
Action A call is offered from a PSTN Number [55555555] A & the Number type is [Subscriber] through the gateway to a JTAPI Observed Terminal [2222] B.
Events NEW META EVENT_________ META_CALL_STARTINGCallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv for A Cause: CAUSE_NORMAL TermConnCreatedEv for A Cause: CAUSE_NORMAL TernConnActiveEv for A Cause: CAUSE_NORMAL CallCtlConnDialingEv for A Cause: CAUSE_NORMAL CallCtlConnEstabilishedEv for A Cause: CAUSE_NORMAL ConnCreatedEv for B cause: CAUSE_NORMAL ConnInProgressEv for B Cause: CAUSE_NORMAL CallCtlConnOfferedEv for B Cause: CAUSE_NORMAL ConnAlertingEv for B Cause CAUSE_NORMAL CallCtlConnAlertingEv for B Cause: CAUSE_NORMAL TermConnCreatedEv for B Cause: CAUSE_NORMAL TermConnRingingEv for B Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv Cause: CAUSE_NORMAL
Call Info Calling: A (55555555) Called: B (2222) getModifiedCallingAddress (): A (55555555) getModifiedCalledAddress (): B (2222.) getCurrentCalledAddress(): B (2222) getCurrentCalledPartyInfo(): B (2222) getGlobalizedCallingParty: A +140855555555 getCurrentCallingPartyInfoNumbe rType().getNumberType() would return: Subscriber
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-144
OL-16702-01
Appendix A
Scenario TwoIncoming call from a National PSTN Number to JTAPI Observed terminal.
Action
Events
Call Info Calling: A (97255555555) Called: B (2222) getModifiedCallingAddress (): 97255555555 getModifiedCalledAddress (): 2222 getCurrentCalledAddress(): 2222 getCurrentCalledPartyInfo(): 2222 getGlobalizedCallingParty (): +197255555555 getCurrentCallingPartyInfoNumberT ype().getNumberType() would return: National
NEW META EVENT_________ A call is offered from a Dallas PSTN Number [55555555] A & the Number type META_CALL_STARTING is [National] through a gateway to a JTAPI CallActiveEv for callID=GC1 Cause: Observed Terminal [2222] B. CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv for A Cause: CAUSE_NORMAL TermConnCreatedEv for A Cause: CAUSE_NORMAL TernConnActiveEv for A Cause: CAUSE_NORMAL CallCtlConnDialingEv for A Cause: CAUSE_NORMAL CallCtlConnEstabilishedEv for A Cause: CAUSE_NORMAL ConnCreatedEv for B cause: CAUSE_NORMAL ConnInProgressEv for B Cause: CAUSE_NORMAL CallCtlConnOfferedEv for B Cause: CAUSE_NORMAL ConnAlertingEv for B Cause: CAUSE_NORMAL CallCtlConnAlertingEv for B Cause: CAUSE_NORMAL TermConnCreatedEv for B Cause: CAUSE_NORMAL TermConnRingingEv for B Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv Cause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-145
Scenario ThreeIncoming call from Inter-National PSTN Number to JTAPI Observed terminal.
Action A Call is offered from India PSTN Number [918028520261] & the Number type is [Inter-national] through a San Jose Gateway to a JTAPI observed Terminal [2222]
Events NEW META EVENT_________ META_CALL_STARTING CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv for A Cause: CAUSE_NORMAL TermConnCreatedEv for A Cause: CAUSE_NORMAL TernConnActiveEv for A Cause: CAUSE_NORMAL CallCtlConnDialingEv for A Cause: CAUSE_NORMAL CallCtlConnEstabilishedEv for A Cause: CAUSE_NORMAL ConnCreatedEv for B cause: CAUSE_NORMAL ConnInProgressEv for B Cause: CAUSE_NORMAL CallCtlConnOfferedEv for B Cause: CAUSE_NORMAL ConnAlertingEv for B Cause: CAUSE_NORMAL CallCtlConnAlertingEv for B Cause: CAUSE_NORMAL TermConnCreatedEv for B Cause: CAUSE_NORMAL TermConnRingingEv for B Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv Cause: CAUSE_NORMAL
Call Info Calling: A (918028520261) Called: B (2222) getModifiedCallingAddress (): 918028520261 getModifiedCalledAddress (): 2222 getCurrentCalledAddress(): 2222 getCurrentCalledPartyInfo(): 2222 getGlobalizedCallingParty (): +918028520261 getCurrentCallingPartyInfoNumberT ype().getNumberType() would return: Inter-National
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-146
OL-16702-01
Appendix A
Scenario FourOutgoing call from a JTAPI Observed Terminal to a PSTN number [SUBSCRIBER]
Action A call is initiated from a JTAPI Observed Terminal 2222 through a San Jose gateway to a PSTN number [44444444] and the Number type is [SUBSCRIBER]
Events NEW META EVENT_________META_CALL_STARTING CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv for A Cause: CAUSE_NORMAL TermConnCreatedEv for A Cause: CAUSE_NORMAL TernConnActiveEv for A Cause: CAUSE_NORMAL CallCtlConnDialingEv for A Cause: CAUSE_NORMAL CallCtlConnEstabilishedEv for A Cause: CAUSE_NORMAL ConnCreatedEv for B cause: CAUSE_NORMAL ConnInProgressEv for B Cause: CAUSE_NORMAL CallCtlConnOfferedEv for B Cause: CAUSE_NORMAL ConnAlertingEv for B Cause: CAUSE_NORMAL CallCtlConnAlertingEv for B Cause: CAUSE_NORMAL TermConnCreatedEv for B Cause: CAUSE_NORMAL TermConnRingingEv for B Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv Cause: CAUSE_NORMAL
Call Info Calling: A (2222) Called: B (44444444) getModifiedCallingAddress (): 2222 getModifiedCalledAddress (): 44444444 getCurrentCalledAddress(): 44444444 getCurrentCalledPartyInfo(): 44444444 getGlobalizedCallingParty (): 2222 getCurrentCallingPartyInfoNumberTyp e ().getNumberType () would return: Unknown.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-147
Scenario FiveOutgoing call from a JTAPI Observed Terminal to a National PSTN number.
Action A call is initiated from a JTAPI Observed Terminal 2222 through a San Jose gateway to a Dallas PSTN number [97244444444] & the Number type is [NATIONAL]
Events NEW META EVENT_________ META_CALL_STARTING CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv for A Cause: CAUSE_NORMAL TermConnCreatedEv for A Cause: CAUSE_NORMAL TernConnActiveEv for A Cause: CAUSE_NORMAL CallCtlConnDialingEv for A Cause: CAUSE_NORMAL CallCtlConnEstabilishedEv for A Cause: CAUSE_NORMAL ConnCreatedEv for B cause: CAUSE_NORMAL ConnInProgressEv for B Cause: CAUSE_NORMAL CallCtlConnOfferedEv for B Cause: CAUSE_NORMAL ConnAlertingEv for B Cause: CAUSE_NORMAL CallCtlConnAlertingEv for B Cause: CAUSE_NORMAL TermConnCreatedEv for B Cause: CAUSE_NORMAL TermConnRingingEv for B Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv Cause: CAUSE_NORMAL
Call Info Calling: A (2222) Called: B (97244444444) getModifiedCallingAddress (): 2222 getModifiedCalledAddress (): 97244444444 getCurrentCalledAddress(): 97244444444 getCurrentCalledPartyInfo(): 97244444444 getGlobalizedCallingParty (): 2222 getCurrentCallingPartyInfoNumbe rType().getNumberType() would return: Unknown.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-148
OL-16702-01
Appendix A
Scenario SixOutgoing call from a JTAPI Observed Terminal to Inter-National PSTN number.
Action A call is initiated from a JTAPI Observed Terminal 2222 through a San Jose gateway to India PSTN number [918028520261] & the Number type is [INTERNATIONAL]
Events NEW META EVENT_________ META_CALL_STARTING CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv for A Cause: CAUSE_NORMAL TermConnCreatedEv for A Cause: CAUSE_NORMAL TernConnActiveEv for A Cause: CAUSE_NORMAL CallCtlConnDialingEv for A Cause: CAUSE_NORMAL CallCtlConnEstabilishedEv for A Cause: CAUSE_NORMAL ConnCreatedEv for B cause: CAUSE_NORMAL ConnInProgressEv for B Cause: CAUSE_NORMAL CallCtlConnOfferedEv for B Cause: CAUSE_NORMAL ConnAlertingEv for B Cause: CAUSE_NORMAL CallCtlConnAlertingEv for B Cause: CAUSE_NORMAL TermConnCreatedEv for B Cause: CAUSE_NORMAL TermConnRingingEv for B Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv Cause: CAUSE_NORMAL
Call Info Calling: A (2222) Called: B (918028520261) getModifiedCallingAddress (): 2222 getModifiedCalledAddress (): 918028520261 getCurrentCalledAddress():918 028520261 getCurrentCalledPartyInfo(): 918028520261 getGlobalizedCallingParty (): 2222 getCurrentCallingPartyInfoNum berType().getNumberType() would return: Unknown.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-149
Scenario SevenIncoming call from a PSTN Redirected to another PSTN by a JTAPI Observed Terminal.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-150
OL-16702-01
Appendix A
Action A call is offered from PSTN [55555555] through a San Jose Gateway to a JTAPI observed terminal [2222] which redirects the call to another San Jose PSTN [44444444]. In CallState [Idle] the fwdDestinationAddress (Redirect Address) should be a minus (-).
Events NEW META EVENT_________ META_CALL_STARTING CallActiveEv for callID=GC1 Cause: CAUSE_NEW_CALL ConnCreatedEv for A Cause: CAUSE_NORMAL ConnConnectedEv for A Cause: CAUSE_NORMAL CallCtlConnInitiatedEv for A Cause: CAUSE_NORMAL TermConnCreatedEv for A Cause: CAUSE_NORMAL TernConnActiveEv for A Cause: CAUSE_NORMAL CallCtlConnDialingEv for A Cause: CAUSE_NORMAL CallCtlConnEstabilishedEv for A Cause: CAUSE_NORMAL ConnCreatedEv for B cause: CAUSE_NORMAL ConnInProgressEv for B Cause: CAUSE_NORMAL CallCtlConnOfferedEv for B Cause: CAUSE_NORMAL ConnAlertingEv for B Cause: CAUSE_NORMAL CallCtlConnAlertingEv for B Cause: CAUSE_NORMAL TermConnCreatedEv for B Cause: CAUSE_NORMAL TermConnRingingEv for B Cause: CAUSE_NORMAL CallCtlTermConnTalkingEv Cause: CAUSE_NORMAL CallRedirectReq Redirect Address = C CallRedirectRes ConnCreatedEv at C Cause: CAUSE_REDIRECTED ConnInProgress Calling party: A, Called Party: C, LRP: B CallRedirectRes CallStateChangedEv (IDLE) Reason: REDIRECT
Call Info Calling: A (55555555) Called: B (2222) getModifiedCallingAddress (): 55555555 getModifiedCalledAddress (): 2222 getCurrentCalledAddress(): 2222 getCurrentCalledPartyInfo(): 2222 getGlobalizedCallingParty (): +140855555555 getCurrentCallingPartyInfoNumberTy pe().getNumberType() would return: SUBSCRIBER destinationAddress: 44444444. getCurrentCallingPartyInfoNumberTy pe().getNumberType() would return: Unknowns
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-151
Scenario EightIncoming call from a PSTN Number (Local) to JTAPI Observed terminal who transfer to another JTAPI observed terminal.
Action A call is offered from a PSTN Number [55555555] A & the Number type is [Subscriber] through a San Jose gateway to a JTAPI observed Terminal [1111] X which transfers the call to another JTAPI Observed Terminal [2222] B
Events After Transfer: GC1: CiscoTransferStartEv ConnCreatedEv for B ConnConnectedEv for B CallCtlConnEstablishedEv for B TermConnDroppedEv for X ConnDisconnectedEv for X CallCtlConnDisconnectedEv for X CiscoTransferStartEv GC2: CiscoTransferStartEv TermConnDroppedEv for X ConnDisconnectedEv for X CallCtlConnDisconnectedEv for X CiscoTransferStartEv
Call Info After Transfer: Calling: A (55555555) Called: B (2222) getModifiedCallingAddress (): A (+140855555555) getModifiedCalledAddress (): B (2222.) getCurrentCalledAddress(): B (2222) getCurrentCalledPartyInfo(): B (2222) getGlobalizedCallingParty: A +140855555555 getCurrentCallingPartyInfoNumberTyp e().getNumberType() would return: Subscriber
Click to Conference
A, B, C and D are addresses and TermA, TermB, TermC and TermD are corresponding terminals. Action A and B are in a call GC1 created using click-to-call. User adds C to the conference call. GC2 is the initial call at C. Application is observing only C Events Call Info
GC2: CallActiveEv Cause: CAUSE_NEW_CALL callingAddress=unknown CiscoFeatureReason: REASON_CONFERENCE calledAddress=C CurrentCalling=unknown CurrentCalled=C GC2: ConnCreatedEv C CiscoFeatureReason=REASON_CONFERENCE Cause: CAUSE_NORMAL GC2: ConnInProgressEv C CiscoFeatureReason=REASON_CONFERENCE Cause: CAUSE_NORMAL GC2: CallCtlConnOfferedEv C CiscoFeatureReason=REASON_CONFERENCE Cause: CAUSE_NORMAL GC2: ConnAlertingEv C CiscoFeatureReason=REASON_CONFERENCE Cause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-152
OL-16702-01
Appendix A
Action
Events GC2: CallCtlConnAlertingEv C CiscoFeatureReason=REASON_CONFERENCE Cause: CAUSE_NORMAL GC2: TermConnCreatedEv TermC GC2: TermConnRingingEv TermC CiscoFeatureReason=REASON_CONFERENCE Cause: CAUSE_NORMAL GC2: CallCtlTermConnRingingEv TermC CiscoFeatureReason=REASON_CONFERENCE Cause: CAUSE_NORMAL CiscoCallChangedEv GC2->GC1 CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: CallActiveEv Cause: CAUSE_NEW_CALL CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE GC1: ConnCreatedEv C CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: ConnAlertingEv C GC1 CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: CallCtlConnAlertingEv C GC1 CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: TermConnCreatedEv TermC GC1: TermConnRingingEv TermC CiscoCallChangedEv GC2->GC1 CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC2: TermConnDroppedEv TermC CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC2: CallCtlTermConnDroppedEv TermC CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC2: ConnDisconnectedEv C CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL
Call Info
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-153
Action
Events GC2: CallCtlConnDisconnectedEv C CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC2: CallInvalidEv CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: ConnCreatedEv B CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: ConnConnectedEv B CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: CallCtlConnEstablishedEv B CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: ConnCreatedEv A CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: ConnConnectedEv A CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: CallCtlConnEstablishedEv A CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: ConnConnectedEv C CiscoFeatureReason =REASON_NORMALCause: CAUSE_NORMAL GC1: CallCtlConnEstablishedEv C CiscoFeatureReason =REASON_NORMALCause: CAUSE_NORMAL GC1: TermConnTalkingEv TermC CiscoFeatureReason =REASON_NORMALCause: CAUSE_NORMAL
Call Info
A calls B using click-to-call GC1. GC1: CallActiveEv Cause: CAUSE_NEW_CALL Calling address: A CiscoFeatureReason: REASON_REFER A adds C to the call using Called address: B click-2-conf. Application has call Current calling: A observer on A Current called: B Last redirecting party=null After C is conferenced, callinfo is not applicable. GC1: ConnCreatedEv A CiscoFeatureReason= REASON_REFER Cause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-154
OL-16702-01
Appendix A
Action
Events GC1: ConnInProgressEv A CiscoFeatureReason= REASON_REFER Cause: CAUSE_NORMAL GC1: CallCtlConnOfferedEv A CiscoFeatureReason= REASON_REFER Cause: CAUSE_NORMAL GC1: ConnAlertingEv A CiscoFeatureReason=REASON_NORMAL Cause: CAUSE_NORMAL GC1: CallCtlConnAlertingEv A CiscoFeatureReason=REASON_NORMAL Cause: CAUSE_NORMAL GC1: TermConnCreatedEv TermA GC1: TermConnRingingEv TermA CiscoFeatureReason=REASON_NORMAL Cause: CAUSE_NORMAL GC1: CallCtlTermConnRingingEv TermA CiscoFeatureReason=REASON_NORMAL Cause: CAUSE_NORMAL GC1: GC1: ConnConnectedEv A CiscoFeatureReason =REASON_NORMAL cause: CAUSE_NORMAL GC1: CallCtlConnEstablishedEv A CiscoFeatureReason =REASON_NORMAL Cause: CAUSE_NORMAL TermConnActiveEv TermA CiscoFeatureReason =REASON_NORMAL Cause: CAUSE_NORMAL GC1: TermConnTalkingEv TermA CiscoFeatureReason =REASON_NORMAL Cause: CAUSE_NORMAL GC1: ConnCreatedEv B CiscoFeatureReason= REASON_REFER Cause: CAUSE_NORMAL GC1: ConnInProgressEv B CiscoFeatureReason= REASON_REFER Cause: CAUSE_NORMAL GC1: CallCtlConnOfferedEv B CiscoFeatureReason= REASON_REFER Cause: CAUSE_NORMAL GC1: ConnAlertingEv B CiscoFeatureReason= REASON_NORMAL Cause: CAUSE_NORMAL GC1: CallCtlConnAlertingEv B CiscoFeatureReason= REASON_NORMAL Cause: CAUSE_NORMAL GC1: GC1: ConnConnectedEv B CiscoFeatureReason = REASON_NORMAL: CAUSE_NORMAL
Call Info
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-155
Action
Events GC1: CallCtlConnEstablishedEv B CiscoFeatureReason = REASON_NORMAL Cause: CAUSE_NORMAL GC1: ConnCreatedEv C CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: ConnAlertingEv C CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL GC1: CallCtlConnAlertingEv TermC CiscoFeatureReason = REASON_CLICK_TO_CONFERENCE Cause: CAUSE_NORMAL
Call Info
GC1: TermConnHeldEv TermA A consults with D-GC3. A completes conference. The events received by application remains the same (as that of consult conference). GC3: ConsultCallActiveEv GC3: ConnCreatedEv A GC3: ConnCreatedEv D GC3: CallCtlConnAlerting D GC3: ConnConnectedEv D GC3: CallCtlConnEstablishedEv B CiscoConferenceStartEv GC3->GC1 GC3: CallCtlConnDisconnectedEv A GC3: CallCtlConnDisconnectedEv D GC1: ConnCreatedEv D GC1: CallCtlConnEstablishedEv D GC1: TermConnTalkingEv TermA GC3: CallInvalidEv CiscoConferenceEndEvent User drops D using click-2-conf feature User drops C using click-2-conference interface
For consult call GC3: Calling address: A Called address: D Callinfo not applicable after conference is completed.
GC1: ConnDisconnectedEv D CiscoFeatureReason Calling address: A = REASON_CONFERENCE Cause: Called address: B CAUSE_NORMAL GC1: CallCtlConnDisconnectedEv D CiscoFeatureReason = REASON_CONFERENCE Cause: CAUSE_NORMAL GC1: ConnDisconnectedEv C CiscoFeatureReason = REASON_CONFERENCE Cause: CAUSE_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-156
OL-16702-01
Appendix A
Action
Call Info
Drop all parties a conference. A calls B using click-2-call. User adds C to the conference using click-2-conference. All parties are dropped using click to conference. Application has call observers on A, B and C.
GC1: CallActiveEv Cause: CAUSE_NEW_CALL Calling address: A CiscoFeatureReason: REASON_REFER Called address: B GC1: ConnCreatedEv A Cause: GC2: Calling address=unknown CAUSE_NORMAL CiscoFeatureReason: Called address: C REASON_REFER
GC1: ConnInProgressEv A Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_REFER GC1: CallCtlConnOfferedEv A Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_REFER GC1: ConnAlertingEv A Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_REFER GC1: CallCtlConnAlertingEv A Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_REFER GC1: TermConnCreatedEv TermA GC1: TermConnRingingEv TermA Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: CallCtlTermConnRingingEv TermA GC1: ConnConnectedEv A Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: CallCtlConnEstablishedEv A Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: TermConnActiveEv TermA Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: CallCtlTermConnTalkingEv TermA Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: ConnCreatedEv B Cause: CAUSE_NORMAL CiscoFeatureReason:REASON_REFER
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-157
Action
Events GC1: ConnInProgressEv B Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_REFER GC1: CallCtlConnOfferedEv B Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_REFER GC1: ConnAlertingEv B Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: CallCtlConnAlertingEv B Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: TermConnCreatedEv TermB Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: TermConnRingingEv TermB Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: CallCtlTermConnRingingEv TermB Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: ConnConnectedEv B Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: CallCtlConnEstablishedEv TermB Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: TermConnActiveEv TermB Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: CallCtlTermConnTalkingEv TermB Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC2: CallActiveEv Cause: CAUSE_NEW_CALL CiscoFeatureReason: REASON_CONFERENCE GC2: ConnCreatedEv Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CONFERENCE GC2: ConnInProgressEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CONFERENCE GC2: CallCtlConnOfferedEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CONFERENCE
Call Info
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-158
OL-16702-01
Appendix A
Action
Events GC2: ConnAlertingEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC2: CallCtlConnAlertingEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC2: TermConnCreatedEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC2: TermConnRingingEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC2: CallCtlTermConnRingingEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC2: CiscoCallChangedEv GC2->GC1 Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC1: ConnCreatedEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC1: ConnInProgressEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC1: CallCtlConnOfferedEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC1: ConnAlertingEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC1: CallCtlConnAlertingEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC1: TermConnCreatedEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason REASON_CLICK_TO_CONFERENCE GC1: TermConnRingingEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC1: CallCtlTermConnRingingEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC2: TermConnDroppedEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE
Call Info
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-159
Action
Events GC2: CallCtlTermConnDroppedEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC2: ConnDisconnectedEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC2: CallCtlConnDisconnectedEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC2: CallInvalidEv Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC1: ConnConnectedEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC1: CallCtlConnEstablishedEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC1: TermConnActiveEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC1: CallCtlTermConnTalkingEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE All parties are dropped using click-2-conference GC1: TermConnDroppedEv TermA Cause: CAUSE_NORMAL CiscoFeatureReason= REASON_CONFERENCE GC1: CallCtlTermConnDroppedEv TermA Cause: CAUSE_NORMAL CiscoFeatureReason= REASON_CONFERENCE GC1: ConnDisconnectedEv A Cause: CAUSE_NORMAL CiscoFeatureReason= REASON_CONFERENCE GC1: CallCtlConnDisconnectedEv A Cause: CAUSE_NORMAL CiscoFeatureReason= REASON_CONFERENCE GC1: TermConnDroppedEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason= REASON_CONFERENCE GC1: CallCtlTermConnDroppedEv TermC Cause: CAUSE_NORMAL CiscoFeatureReason= REASON_CONFERENCE
Call Info
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-160
OL-16702-01
Appendix A
Action
Events GC1: ConnDisconnectedEv C Cause: CAUSE_NORMAL CiscoFeatureReason= REASON_CONFERENCE GC1: CallCtlConnDisconnectedEv C Cause: CAUSE_NORMAL CiscoFeatureReason= REASON_CONFERENCE GC1: TermConnDroppedEv TermB Cause: CAUSE_NORMAL CiscoFeatureReason= REASON_CONFERENCE GC1: CallCtlTermConnDroppedEv TermB Cause: CAUSE_NORMAL CiscoFeatureReason= REASON_CONFERENCE GC1: ConnDisconnectedEv B Cause: CAUSE_NORMAL CiscoFeatureReason= REASON_CONFERENCE GC1: CallCtlConnDisconnectedEv C Cause: CAUSE_NORMAL CiscoFeatureReason= REASON_CONFERENCE GC1: CallInvalidEv
Call Info
A calls B using click-to-call GC1. GC1: TermConnDroppedEv TermC CiscoFeatureReason= REASON_CONFERENCE A adds C to the call using click-2-conf. User drops party C. Application has call observer on C only. GC1: CallCtlTermConnDroppedEv TermC CiscoFeatureReason= REASON_CONFERENCE GC1: ConnDisconnectedEv C CiscoFeatureReason= REASON_CONFERENCE GC1: CallCtlConnDisconnectedEv C CiscoFeatureReason= REASON_CONFERENCE GC1: ConnDisconnectedEv A CiscoFeatureReason= REASON_CONFERENCE GC1: CallCtlConnDisconnectedEv A CiscoFeatureReason= REASON_CONFERENCE GC1: ConnDisconnectedEv B CiscoFeatureReason= REASON_CONFERENCE GC1: CallCtlConnDisconnectedEv B CiscoFeatureReason= REASON_CONFERENCE GC1: CallInvalidEv A calls B using GC1. Address C is configured on TermC1 and TermC2. Application has call observer on C GC2: CallActiveEv CallActiveEv Cause: CAUSE_NEW_CALL CiscoFeatureReason: REASON_ CONFERENCE
NA
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-161
Action
Events
Call Info
User uses click-to-conference to C. GC2: ConnCreatedEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ CONFERENCE GC2: ConnInProgressEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ CONFERENCE GC2: CallCtlConnOfferedEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ CONFERENCE GC2: ConnAlertingEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ NORMAL GC2: CallCtlConnAlertingEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ NORMAL GC2: TermConnCreatedEv TermC1 Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ NORMAL GC2: TermConnRingingEv TermC1 Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ NORMAL GC2: TermConnCreatedEv TermC2 Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ NORMAL GC2: TermConnRingingEv TermC2 Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ NORMAL GC1: CallActiveEv Cause: CAUSE_NEW_CALL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC1: ConnCreatedEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE CiscoCallChangedEv GC2->GC1 TermConn TermC1 CiscoFeatureReason: REASON_CLICK_TO_CONFERENCE GC1: ConnAlertingEv C Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC1: CallCtlConnAlertingEv C Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC1: TermConnCreatedEv TermC1 Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-162
OL-16702-01
Appendix A
Action
Events GC1: TermConnRingingEv TermC1 Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE CiscoCallChangedEv GC2->GC1 TermConn TermC2 Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC1: TermConnCreatedEv TermC2 Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC1: TermConnRingingEv TermC2 Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC2: CallCtlConnDisconnectedEv C Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC2: TermConnDroppedEv TermC1 Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC2: TermConnDroppedEv TermC2 Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC2: CallInvalidEv GC1: ConnCreatedEv B Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC1: ConnConnectedEv B Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC1: CallCtlConnEstablishedEv B Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC1: ConnCreatedEv A Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC1: ConnConnectedEv A Cause:CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC1: CallCtlConnEstablishedEv A Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_ CLICK_TO_CONFERENCE GC1: ConnConnectedEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL
Call Info
C answers at TermC1
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-163
Action
Events GC1: CallCtlConnEstablishedEv C Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: CallCtlTermConnTalkingEv TermC1 Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: TermConnPassEv TermC2 Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL GC1: CallCtlTermConnInUseEv TermC2 Cause: CAUSE_NORMAL CiscoFeatureReason: REASON_NORMAL
Call Info
Call Pickup
The basic scenarios are as follows:
B and C are devices in a call pick up group. A is a device not in it. A calls B. C goes off-hook, and presses its Pickup softkey. C is now on the call with A. Observing A, B, and C Observing A and B Observing A and C Observing B and C Observing only A Observing only B Observing only C
Only observing C, was the primary concern for this fix, as it was what the customer was doing in their scenario. The feature request was for when only observing C, being able to get information about the original called party (A) on Pickup. All test cases passed and the correct info was shown for all of them. These test cases were run with auto-pickup both enabled and disabled, and the functionality of the two differed greatly. Most of the test cases are enumerated below. The basic call from A to B is the same in all cases, and is only shown in the first case below.
Scenario One
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-164
OL-16702-01
Appendix A
Action
Events
Call Info (GCID Info) Calling: A, CCalled: NONE Calling: A, Called: NONE
A goes offhook and dials B (Basic Call) B GC1-CallActiveEvent-NONE is ringing C goes offhook and presses Pickup softkey Old Conn for C is dropped B is dropped / cleaned up C connection on Call 1 is established GC1-ConnCreatedEvent-A GC1-ConnConnectedEvent-A GC1-CallCtlConnInitiatedEv-A GC1-TermConnCreatedEvent GC1-TermConnActiveEvent GC1-CallCtlTermConnTalkingEv GC1-CallCtlConnDialingEv-A GC1-CallCtlConnEstablishedEv-A GC1-ConnCreatedEvent-B GC1-ConnInprogressEvent-B GC1-CallCtlConnOfferedEv-B GC1-ConnAlertingEvent-B GC1-CallCtlConnAlertingEv GC1-TermConnCreatedEvent GC1-TermConnRingingEvent GC1-CallCtlTermConnRingingEv GC2-CallActiveEvent-NONE GC2-ConnCreatedEvent-C GC2-ConnConnectedEvent-C GC2-CallCtlConnInitiatedEv-C GC2-TermConnCreatedEvent GC2-TermConnActiveEvent GC2-CallCtlTermConnTalkingEv GC2-CiscoCallChangedEv GC1-ConnCreatedEvent-C GC1-ConnConnectedEvent-C GC1-CallCtlConnInitiatedEv-C GC1-TermConnCreatedEvent GC1-TermConnActiveEvent GC1-CallCtlTermConnTalkingEv GC2-TermConnDroppedEv GC2-CallCtlTermConnDroppedEv GC2-ConnDisconnectedEvent-C
CAUSE_NEW_CALL REASON_NORMAL LRP: NONE CCalling: A, CCalled: B Calling: A, Called: B CCalling: C, CCalled: NONE CAUSE_NEW_CALL REASON_NORMAL LRP: NONE REASON_CALLPICKUP CCalling: A, CCalled: C LRP: NONE REASON_CALLPICKUP CCalling: C, CCalled: NONE LRP: NONE REASON_NORMAL REASON_CALLPICKUP CCalling: A, CCalled: C REASON_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-165
Action
Note
Both B and C in the following scenarios have exactly the same behavior and events. Only the behavior of device C (the one picking up the call) changes.
Scenario Two
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-166
OL-16702-01
Appendix A
Action C goes offhook and presses Pickup softkey Call 2 gets dropped / invalidated C gets a connection on Call 1 B is dropped from Call 1 C is ringing C is on call with A
Events GC2-CallActiveEvent GC2-ConnCreatedEvent-C GC2-ConnConnectedEvent-C GC2-CallCtlConnInitiatedEv-C GC2-TermConnCreatedEvent GC2-TermConnActiveEvent GC2-CallCtlTermConnTalkingEv GC2-TermConnDroppedEv GC2-CallCtlTermConnDroppedEv GC2-ConnDisconnectedEvent-C GC2-CallCtlConnDisconnectedEv-C GC2-CallInvalidEvent GC2-CallObservationEndedEv GC1-ConnCreatedEvent-C GC1-ConnInprogressEvent-C GC1-CallCtlConnOfferedEv-C GC1-TermConnDroppedEv GC1-CallCtlTermConnDroppedEv GC1-ConnDisconnectedEvent-B GC1-CallCtlConnDisconnectedEv-B GC1-ConnAlertingEvent-C GC1-CallCtlConnAlertingEv-C GC1-TermConnCreatedEvent GC1-TermConnRingingEvent GC1-CallCtlTermConnRingingEv GC1-ConnConnectedEvent-C GC1-CallCtlConnEstablishedEv-C GC1-TermConnActiveEvent GC1-CallCtlTermConnTalkingEv
Call ID Info CCalling C, CCalled: NONE LRP: NONE REASON_NORMAL REASON_CALLPICKUP CCalling A, CCalled: C Calling: A, Called: C, LRP: B REASON_CALLPICKUP Calling A, CCalled: C Calling: A, Called: C, LRP: B REASON_CALLPICKUP REASON_NORMAL REASON_NORMAL
The flow of events differs greatly when the auto-pickup option is enabled or disabled. When Auto Call Pickup is disabled and a user presses the Pickup softkey (C), the phone rings. The user has to answer the phone as if it is a normal call. When the phone is ringing, the original call that was created when they went offhook is destroyed, they are connected to the existing call, and the old party (B) is removed from the call. There is no CiscoCallChangedEv generated when Auto Call Pickup is disabled, because the call does not change, it is destroyed before C joins the new call.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-167
A Group Pickup scenario follows, during which the Group Pickup softkey is used in place of the Pickup softkey. This required actually dialing the number for the pickup group. Group Pickup also is subject to the Auto Call Pickup service parameter. The general flow and call events are identical to the normal Call Pickup scenarios, except with added events for the required dialing of the pickup number. These additional events bold in the table to clearly show the changes that Group Pickup makes.
Scenario Three
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-168
OL-16702-01
Appendix A
Call Event GC1 [add to others to clarify] GC2-CallActiveEvent-NONE GC2-ConnCreatedEvent-C GC2-ConnConnectedEvent-C GC2-CallCtlConnInitiatedEv-C GC2-TermConnCreatedEvent GC2-TermConnActiveEvent GC2-CallCtlTermConnTalkingEv GC2-CallCtlConnDialingEv-C GC2-ConnCreatedEvent-PU GC2-ConnInprogressEvent-PU GC2-CallCtlConnEstablishedEv-C GC2-CiscoCallChangedEv GC1-ConnCreatedEvent-C GC1-ConnCreatedEvent-PU GC1-ConnConnectedEvent-C GC1-CallCtlConnEstablishedEv-C GC1-TermConnCreatedEvent GC1-TermConnActiveEvent GC1-CallCtlTermConnTalkingEv GC1-ConnInprogressEvent-PU GC1-CallCtlConnOfferedEv-PU GC2-ConnDisconnectedEvent-PU GC2-CallCtlConnDisconnectedEv-PU GC2-TermConnDroppedEv GC2-CallCtlTermConnDroppedEv GC2-ConnDisconnectedEvent-C GC2-CallCtlConnDisconnectedEv-C GC2-CallInvalidEvent GC2-CallObservationEndedEv GC1-ConnDisconnectedEvent-PU GC1-CallCtlConnDisconnectedEv-PU GC1-TermConnDroppedEv GC1-CallCtlTermConnDroppedEv GC1-ConnDisconnectedEvent-B GC1-CallCtlConnDisconnectedEv-B
CCalling: C, CCalled: NONE REASON_CALLPICKUP CCalling: C, CCalled: PU, LRP: PU CCalling C, CCalled: PU CCalling: A, CCalled: C, LRP: B Calling: A, Called: B REASON_CALLPICKUP
B is dropped / invalidated
There are only a handful of changes for the above Group Pickup case, and they all directly relate to the extra required step of dialing the pickup number.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-169
Scenario Four
Observing all devices with Group Pickup and Auto-Pickup disabled. Action Event Call Info
C goes offhook and pressed Group GC1 Pickup softkey GC2-CallActiveEvent-NONE GC2-ConnCreatedEvent-C GC2-ConnConnectedEvent-C GC2-CallCtlConnInitiatedEv-C GC2-TermConnCreatedEvent GC2-TermConnActiveEvent GC2-CallCtlTermConnTalkingEv GC2-CallCtlConnDialingEv-C GC2-ConnCreatedEvent-PU GC2-ConnInprogressEvent-PU GC2-CallCtlConnEstablishedEv-C GC2-ConnDisconnectedEvent-PU GC2-CallCtlConnDisconnectedEv-PU GC2-TermConnDroppedEv GC2-CallCtlTermConnDroppedEv GC2-ConnDisconnectedEvent-C GC2-CallCtlConnDisconnectedEv-C GC2-CallInvalidEvent GC2-CallObservationEndedEv GC1-ConnCreatedEvent[ADDRS] GC1-ConnInprogressEvent GC1-CallCtlConnOfferedEv GC1-TermConnDroppedEv GC1-CallCtlTermConnDroppedEv GC1-ConnDisconnectedEvent GC1-CallCtlConnDisconnectedEv GC1-ConnAlertingEvent GC1-CallCtlConnAlertingEv GC1-TermConnCreatedEvent GC1-TermConnRingingEvent GC1-CallCtlTermConnRingingEv GC1-ConnConnectedEvent GC1-CallCtlConnEstablishedEv GC1-TermConnActiveEvent GC1-CallCtlTermConnTalkingEv CCalling: C, CCalled: NO, NO LRP REASON_NORMAL
CCalling: C, CCalled: NO, NO LRP REASON_NORMAL CCalling: C, CCalled: PU CCalling: C, CCalled: PU, LRP: PU REASON_CALLPICKUP
CCalling: A, CCalled: C, LRP: B Calling: A, Called: B REASON_CALLPICKUP CCalling: A, CCalled: C, LRP: B REASON_CALLPICKUP
REASON_NORMAL
C is ringing
C picks up
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-170
OL-16702-01
Appendix A
The tables above have scenarios during which all of the devices were observed. The devices were run with every possible combination, across all varieties of Pickup and Group Pickup. Parts of the scenarios had the exact same output and others were redundant and are not shown here. For example, device A and B were identical and shown only once.
Scenario Five
Only observing device B. Action A is in the process of calling B Call Events GC1-CallActiveEvent-NONE GC1-ConnCreatedEvent-B GC1-ConnInprogressEvent-B GC1-CallCtlConnOfferedEv-B GC1-ConnCreatedEvent-A GC1-ConnConnectedEvent-A GC1-CallCtlConnEstablishedEv-A GC1-ConnAlertingEvent-B GC1-CallCtlConnAlertingEv-B GC1-TermConnCreatedEvent GC1-TermConnRingingEvent GC1-CallCtlTermConnRingingEv GC1-ConnDisconnectedEvent-A GC1-CallCtlConnDisconnectedEv-A GC1-TermConnDroppedEv GC1-CallCtlTermConnDroppedEv GC1-ConnDisconnectedEvent-B GC1-CallCtlConnDisconnectedEv-B GC1-CallInvalidEvent GC1-CallObservationEndedEv REASON_CALLPICKUP Call IDs/Call Info CCalling: A, CCalled: B, Calling: A, Called: B, LRP: NONE REASON_NORMAL
B is ringing
REASON_NORMAL
Scenario Six
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-171
Call Events GC1-CallActiveEvent-NONE GC1-ConnCreatedEvent-A GC1-ConnConnectedEvent-A GC1-CallCtlConnInitiatedEv-A GC1-TermConnCreatedEvent GC1-TermConnActiveEvent GC1-CallCtlTermConnTalkingEv GC1-CallCtlConnDialingEv-A GC1-CallCtlConnEstablishedEv-A GC1-ConnCreatedEvent-B GC1-ConnInprogressEvent-B GC1-CallCtlConnOfferedEv-B GC1-ConnAlertingEvent-B GC1-CallCtlConnAlertingEv-B GC1-ConnCreatedEvent-C GC1-ConnInprogressEvent-C GC1-CallCtlConnOfferedEv-C GC1-ConnAlertingEvent-C GC1-CallCtlConnAlertingEv-C GC1-ConnDisconnectedEvent-B GC1-CallCtlConnDisconnectedEv-B GC1-ConnConnectedEvent-C GC1-CallCtlConnEstablishedEv-C
B is ringing
C is ringing
REASON_CALLPICKUP REASON_NORMAL
Scenario Seven
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-172
OL-16702-01
Appendix A
Action
Call Events
C goes offhook and presses Pickup GC2-CallActiveEvent-NONE GC2-ConnCreatedEvent-C hotkey GC2-ConnConnectedEvent-C GC2-CallCtlConnInitiatedEv-C GC2-TermConnCreatedEvent GC2-TermConnActiveEvent GC2-CallCtlTermConnTalkingEv GC2-CiscoCallChangedEv GC1-CallActiveEvent-NONE GC1-ConnCreatedEvent-C GC1-ConnConnectedEvent-C GC1-CallCtlConnInitiatedEv GC1-TermConnCreatedEvent C is connected to Call 1 GC1-TermConnActiveEvent GC1-CallCtlTermConnTalkingEv GC2-TermConnDroppedEv GC2-CallCtlTermConnDroppedEv GC2-ConnDisconnectedEvent-C GC2-CallCtlConnDisconnectedEv-C GC2-CallInvalidEvent GC2-CallObservationEndedEv GC1-ConnCreatedEvent-A GC1-ConnConnectedEvent-A GC1-CallCtlConnEstablishedEv-A GC1-CallCtlConnEstablishedEv-C
REASON_CALLPICKUP
Scenario Eight
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-173
Action
Call Events
C goes offhook and pressed Pickup GC2-CallActiveEvent-NONE GC2-ConnCreatedEvent-C softkey GC2-ConnConnectedEvent-C GC2-CallCtlConnInitiatedEv-C GC2-TermConnCreatedEvent GC2-TermConnActiveEvent GC2-CallCtlTermConnTalkingEv Call 2 is destroyed GC2-TermConnDroppedEv GC2-CallCtlTermConnDroppedEv GC2-ConnDisconnectedEvent-C GC2-CallCtlConnDisconnectedEv-C GC2-CallInvalidEvent GC2-CallObservationEndedEv
C is added to Call 1, but does not pick GC1-CallActiveEvent GC1-ConnCreatedEvent-C up GC1-ConnInprogressEvent-C GC1-CallCtlConnOfferedEv-C GC1-ConnCreatedEvent-A GC1-ConnConnectedEvent-A GC1-CallCtlConnEstablishedEv-A GC1-ConnAlertingEvent-C GC1-CallCtlConnAlertingEv-C GC1-TermConnCreatedEvent GC1-TermConnRingingEvent C is ringing GC1-CallCtlTermConnRingingEv C picks up, and is connected to Call 1 GC1-ConnConnectedEvent-C GC1-CallCtlConnEstablishedEv-C GC1-TermConnActiveEvent GC1-CallCtlTermConnTalkingEv
Scenario Nine
REASON_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-174
OL-16702-01
Appendix A
Call Event GC2-CallActiveEvent-NONE GC2-ConnCreatedEvent-C GC2-ConnConnectedEvent-C GC2-CallCtlConnInitiatedEv-C GC2-TermConnCreatedEvent GC2-TermConnActiveEvent GC2-CallCtlTermConnTalkingEv GC2-CallCtlConnDialingEv-C GC2-ConnCreatedEvent-PU GC2-ConnInprogressEvent-PU GC2-CallCtlConnEstablishedEv-C GC2-CiscoCallChangedEv GC1-CallActiveEvent GC1-ConnCreatedEvent-C GC1-ConnCreatedEvent-PU GC1-ConnConnectedEvent-C GC1-CallCtlConnEstablishedEv-C GC1-TermConnCreatedEvent GC1-TermConnActiveEvent GC1-CallCtlTermConnTalkingEv GC1-ConnInprogressEvent-PU GC1-CallCtlConnOfferedEv-PU GC2-ConnDisconnectedEvent-PU GC2-CallCtlConnDisconnectedEv-PU GC2-TermConnDroppedEv GC2-CallCtlTermConnDroppedEv GC2-ConnDisconnectedEvent-C GC2-CallCtlConnDisconnectedEv-C GC2-CallInvalidEvent GC2-CallObservationEndedEv GC1-ConnCreatedEvent-A GC1-ConnConnectedEvent-PU GC1-CallCtlConnEstablishedEv-PU GC1-ConnConnectedEvent-C GC1-CallCtlConnEstablishedEv-C GC1-ConnDisconnectedEvent-PU GC1-CallCtlConnDisconnectedEv-PU
CCalling: C, CCalled: PU
CCalling: C, CCalled: PU, LRP: PU REASON_CALLPICKUP REASON_NORMAL REASON_CALLPICKUP CCalling: A,C Called: C CCalling: A, CCalled: C, LRP: B Calling: A, Called: B REASON_CALLPICKUP
C is connected to Call 1
Scenario Ten
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-175
Call Events GC2-CallActiveEvent-NONE GC2-ConnCreatedEvent-C GC2-ConnConnectedEvent-C GC2-CallCtlConnInitiatedEv-C GC2-TermConnCreatedEvent GC2-TermConnActiveEvent GC2-CallCtlTermConnTalkingEv GC2-CallCtlConnDialingEv-C GC2-ConnCreatedEvent-PU GC2-ConnInprogressEvent-PU GC2-CallCtlConnEstablishedEv-C GC2-ConnDisconnectedEvent-PU GC2-CallCtlConnDisconnectedEv-PU GC2-TermConnDroppedEv GC2-CallCtlTermConnDroppedEv GC2-ConnDisconnectedEvent-C GC2-CallCtlConnDisconnectedEv-C GC2-CallInvalidEvent GC1-CallObservationEndedEv
C is added to Call 1 GC1-CallActiveEvent GC1-ConnCreatedEvent-C GC1-ConnInprogressEvent-C GC1-CallCtlConnOfferedEv-C GC1-ConnCreatedEvent-A GC1-ConnConnectedEvent-A GC1-CallCtlConnEstablishedEv-A GC1-ConnAlertingEvent-C GC1-CallCtlConnAlertingEv-C GC1-TermConnCreatedEvent C is ringing GC1-TermConnRingingEvent GC1-CallCtlTermConnRingingEv C is connected to A GC1-ConnConnectedEvent-C GC1-CallCtlConnEstablishedEv-C GC1-TermConnActiveEvent GC1-CallCtlTermConnTalkingEv
REASON_NORMAL
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-176
OL-16702-01
Appendix A
Action Add call observer on phones A,B,C,D. Register Route Point RP Register route call back, with select route API with three rows route selected: A,.....CSS: 0, FP: 1 route selected: B,.....CSS: 1, FP: 3 route selected: D,.....CSS: 1, FP: 1 C calls RP
Events GC1 CallActiveEv GC1 ConnCreatedEv C: GC1 ConnConnectedEv C GC1 CallCtlConnInitiatedEv C: GC1 TermConnCreatedEv TC GC1 TermConnActiveEv TC GC1 CallCtlTermConnTalkingEv TC GC1 CallCtlConnDialingEv C: GC1 CallCtlConnEstablishedEv C: GC1 ConnCreatedEv RP: GC1 ConnInProgressEv RP: GC1 CallCtlConnOfferedEv RP: After redirect request is processed GC1 ConnCreatedEv A: GC1 ConnInProgressEv A: GC1 CallCtlConnOfferedEv A: GC1 ConnDisconnectedEv RP: GC1 CallCtlConnDisconnectedEv RP: GC1 ConnAlertingEv A: GC1 CallCtlConnAlertingEv A: GC1 TermConnCreatedEv TA GC1 TermConnRingingEv TA GC1 CallCtlTermConnRingingEvImpl TA GC1 ConnConnectedEv A: GC1 CallCtlConnEstablishedEv A: GC1 TermConnActiveEv A GC1 TermConnActiveEv A [C] CiscoRTPInputStartedEv [A] CiscoRTPOutputStartedEv [A] CiscoRTPInputStartedEv [C] CiscoRTPOutputStartedEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-177
Action Open provider, Terminal A doesn't have any observer, Application calls CiscoTerminal.getEMLoginUserName() at Terminal A. Open provider, Add Observer to Terminal A, Application calls CiscoTerminal.getEMLoginUserName() at Terminal A.
Call Info NA
NA
Application should get String John Open provider, User John EMLogin to Terminal A and add observer to the Terminal A, Application calls CiscoTerminal.getEMLoginUserName() at Terminal A User John EMLogin to Terminal A, now Application should get String John open provider, add observer to Terminal A, Application calls CiscoTerminal.getEMLoginUserName() at Terminal A. User John EMLogin to Terminal A, now Application should get empty string for username open provider, add observer to Terminal A, User John EMLogout of Terminal A, Application calls CiscoTerminal.getEMLoginUserName() at Terminal A. OpenProvider, User John EMLogin to Terminal B, add observer, application calls CiscoTerminal.getEMLoginUserName() at Terminal B User John EMLogin to Terminal B, OpenProvider, add observer to Terminal B, Application calls CiscoTerminal.getEMLoginUserName() at Terminal B Application should get String John
NA
NA
NA
NA
NA
Terminal A is in control list of user and configured with the Extension Mobility logout profile of user Kerry. The Kerry profile is configured with logout username as Kerry. There is another profile with login username of John.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-178
OL-16702-01
Appendix A
Action
Result
Call Info NA
Application should get String John. User John logs into Terminal A, OpenProvider and add observer to Terminal A. Application calls CiscoTerminal.getEMLoginUserName() at Terminal A. Application should get String Kerry. John logs out at Terminal A. Application calls CiscoTerminal.getEMLoginUserName() at Terminal A.
NA
JTAPI application monitors party B Party A is an IP phone A calls B IP Address of A is available to JTAPI application monitoring party B
JTAPI application monitors party C Party B is an IP phone A talking B B initiates a consultation transfer call to C IP Address of B is available to JTAPI application monitoring party C.
JTAPI application monitors party C Party B is an IP phone A talking B B initiates a consultation conference call to C IP Address of B is available to JTAPI application monitoring party C.
Redirect Scenario
JTAPI application monitors party B and party C Party A is an IP phone A calls B IP Address of A is available to JTAPI application monitoring party B Party A redirects B to party C (
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
A-179
Calling IP address is not available to JTAPI application monitoring party B (not a supported scenario). Calling IP address of B is provided to JTAPI application monitoring party C.
CiscoJtapiProperties
1) Set Socket Connect Timeout to 5 seconds; Plug out the Ethernet cable for PRIMARY CTI Manager and do a normal provider open. Expected Result: Socket Connect to Primary CTI Manager should fail in not more than 5 secs 2) Set Socket Connect Timeout to 5 seconds; Plug out the Ethernet cable for PRIMARY CTI Manager, set security options to True and do a secured provider open. Expected Result: Socket Connect to Primary CTI Manager should fail in not more than 5 secs (Socket Connect timed-out in ~5 seconds, though it took some additional time initially for verifying security certificates) 3) Set Socket Connect Timeout to 0 seconds; Plug out the Ethernet cable for PRIMARY CTI Manager, set security options to true and do a secured provider open. Expected Result: Socket Connect to Primary CTI Manager will no longer rely on new Service Parameter (Socket Connect timed-out in ~23 seconds, though it took some additional time initially for verifying security certificates).
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
A-180
OL-16702-01
A P P E N D I X
Cisco Unified JTAPI Version 1.2 Classes and Interfaces, page B-1, which lists all the JTAPI v 1.2 classes and methods. The supported classes and methods have a check mark in the Cisco Unified JTAPI Support column. Cisco Unified JTAPI Extension Classes and Interfaces, page B-17, which lists the Cisco Unified JTAPI extension classes and methods. Cisco Trace Logging Classes and Interfaces, page B-20, which lists the error tracing classes and methods.
Core Package, page B-2 Call Center Package, page B-4 Call Center Capabilities Package, page B-6 Call Center Events Package, page B-7 Call Control Package, page B-8 Call Control Capabilities Package, page B-11 Call Control Events Package, page B-12 Capabilities Package, page B-13 Events Package, page B-14 Media Package, page B-15 Media Capabilities Package, page B-16 Media Events Package, page B-16 Unsupported Packages, page B-17
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
B-1
Core Package
Table B-1 lists each JTAPI interface in the JTAPI Core Package followed by the associated method(s) and whether the classes are supported by the Cisco Unified JTAPI implementation.
Table B-1 Support for javax.telephony
Method Names addCallObserver addressObserver getAddressCapabilities getCallObservers getCapabilities getConnections getName getObservers getProvider getTerminals removeCallObserver removeObserver
Cisco Unified JTAPI Support Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Comments
AddressObserver Call
A CallObserver must exist for the Terminal or Address originating the call. The FeaturePriority parameter is not supported.
getCallCapabilities getCapabilities getConnections getObservers getProvider getState removeObserver CallObserver Connection callChangedEvent disconnect getAddress getCall getCapabilities
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
B-2
OL-16702-01
Appendix B
Cisco Unified JTAPI Classes and Interfaces Cisco Unified JTAPI Version 1.2 Classes and Interfaces
Table B-1
getConnectionCapabilities getState getTerminalConnections JtapiPeer getName getProvider getServices JtapiPeerFactory Provider getJtapiPeer addObserver createCall getAddress getAddressCapabilities()
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
getAddressCapabilities(Termina Yes l) getAddresses getCallCapabilities() getCallCapabilities(Terminal, Address) getCalls Yes Yes Yes Yes This method returns calls only when there are CallObservers attached to Addresses or Terminals, when a RouteAddress is registered for routing, or when a CiscoMediaTerminal is registered.
getCapabilities getConnectionCapabilities() getConnectionCapabilities(Ter minal, Address) getName getObservers getProviderCapabilities() getProviderCapabilities(Termin al) getState getTerminal getTerminalCapabilities()
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
B-3
Table B-1
getTerminalConnectionCapab ilities(Terminal) getTerminals removeObserver shutdown ProviderObserver Terminal providerChangedEvent addCallObserver addObserver getAddresses getCallObservers getCapabilities getName getObservers getProvider getTerminalCapabilities getTerminalConnections removeCallObserver removeObserver TerminalConnection answer getCapabilities getConnection getState getTerminal getTerminalConnection Capabilities TerminalObserver terminalChangedEvent
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Comments
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
B-4
OL-16702-01
Appendix B
Cisco Unified JTAPI Classes and Interfaces Cisco Unified JTAPI Version 1.2 Classes and Interfaces
Table B-2
getNumberQueued getOldestCallQueued getQueueWaitTime getRelativeQueueLoad ACDAddressObserver ACDConnection ACDManagerAddress ACDManagerConnection Agent getACDManagerConnection getACDAddresses getACDConnections getACDAddress getAgentAddress getAgentID getAgentTerminal getState setState AgentTerminal addAgent getAgents removeAgents setAgents AgentTerminalObserver CallCenterAddress CallCenterCall addCallObserver connectPredictive getApplicationData getTrunks setApplicationData CallCenterCallObserver CallCenterProvider getACDAddresses getACDManagerAddresses getRouteableAddresses CallCenterTrunk getCall getName getState getType RouteAddress cancelRouteCallback getActiveRouteSessions getRouteCallback registerRouteCallback RouteCallback reRouteEvent Yes Yes Yes Yes Yes
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
B-5
Table B-2
routeCallbackEndedEvent routeEndEvent routeEvent routeUsedEvent RouteSession endRoute getCause getRouteAddress getState selectRoute
Comments
ACDConnectionCapabilities canGetACDManager Connection ACDManagerAddress Capabilities ACDManagerConnection Capabilities AgentTerminalCapabilities CallCenterAddress Capabilities CallCenterCallCapabilities canGetACDAddresses canGetACDConnections canHandleAgents canAddCallObserver canConnectPredictive canGetTrunks canHandleApplicationData
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
B-6
OL-16702-01
Appendix B
Cisco Unified JTAPI Classes and Interfaces Cisco Unified JTAPI Version 1.2 Classes and Interfaces
Table B-3
CallCenterProvider Capabilities
RouteAddressCapabilities
canRouteCalls
Comments
ACDAddrLoggedOffEv ACDAddrLoggedOnEv ACDAddrNotReadyEv ACDAddrReadyEv ACDAddrUnknownEv ACDAddrWorkNotReadyEv ACDAddrWorkReadyEv AgentTermBusyEv AgentTermEv getACDAddress getAgent getAgentAddress getAgentID getState AgentTermLoggedOffEv AgentTermLoggedOnEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
B-7
Table B-4
AgentTermNotReadyEv AgentTermReadyEv AgentTermUnknownEv AgentTermWorkNotReadyE v AgentTermWorkReadyEv CallCentCallAppDataEv CallCentCallEv getApplicationData getCalledAddress getCallingAddress getCallingTerminal getLastRedirectedAddress getTrunks CallCentConnEv CallCentConnInProgressEv CallCentEv CallCentTrunkEv CallCentTrunkInvalidEv CallCentTrunkValidEv ReRouteEvent RouteCallbackEndedEvent RouteEndEvent RouteEvent getCallingAddress getCallingTerminal getCurrentRouteAddress getRouteSelectAlgorithm getSetupInformation RouteSessionEvent RouteUsedEvent getRouteSession getCallingAddress getCallingTerminal getDomain getRouteUsed getRouteAddress Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes getCallCenterCause getTrunk
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
B-8
OL-16702-01
Appendix B
Cisco Unified JTAPI Classes and Interfaces Cisco Unified JTAPI Version 1.2 Classes and Interfaces
Table B-5
Comments Only for Call Forward All Only for Call Forward All
Yes
CallControlCall
addParty conference Yes In a consult conference scenario, only OriginalCall.conference (ConsultCall ) is supported. ConsultCall.conference (OriginalCall) is not supported.
consult(TerminalConnection) consult(TerminalConnection, String) drop getCalledAddress getCallingAddress getCallingTerminal getConferenceController getConferenceEnable getLastRedirectedAddress getTransferController getTransferEnable offHook setConferenceController setConferenceEnable setTransferController setTransferEnable
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
B-9
Table B-5
transfer(Call)
Yes
In a consult transfer scenario, only OriginalCall.transfer (ConsultCall) is supported. ConsultCall.transfer (OriginalCall) is not supported.
Yes Yes Yes Yes Yes Yes Yes Redirect allows a connection in the CallControlConnection. ESTABLISHED state to be redirected.
reject CallControlForwarding getDestinationAddress getFilter getSpecificCaller getType CallControlTerminal getDoNotDisturb pickup (Address, Address) pickup (Connection, Address) pickup (TerminalConnection, Address) pickupFromGroup(Address) pickupFromGroup(String, Address) setDoNotDisturb CallControlTerminalConnect getCallControlState ion hold join leave
Yes
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
B-10
OL-16702-01
Appendix B
Cisco Unified JTAPI Classes and Interfaces Cisco Unified JTAPI Version 1.2 Classes and Interfaces
Table B-5
unhold CallControlTerminalObserve r
Yes
Cisco Unified JTAPI Suppt Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Comments
CallControlCallCapabilities
canConsult(TerminalConnection Yes ) canConsult(TerminalConnection Yes , String) canDrop canOffHook canSetConferenceController canSetConferenceEnable canSetTransferController canSetTransferEnable canTransfer canTransfer(Call) canTransfer(String) CallControlConnection Capabilities canAccept Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
B-11
Table B-6
canAddToAddress canPark canRedirect canReject CallControlTerminal Capabilities canGetDoNotDisturb canPickup canPickup(Address, Address) canPickup(Connection, Address)
canPickup(TerminalConnection, Yes Address) canPickupFromGroup canPickupFromGroup(Address) canPickupFromGroup(String, Address) canSetDoNotDisturb CallControlTerminal ConnectionCapabilities canHold canJoin canLeave canUnhold Yes Yes Yes Yes Yes Yes Yes Yes
Comments
getForwarding
Yes
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
B-12
OL-16702-01
Appendix B
Cisco Unified JTAPI Classes and Interfaces Cisco Unified JTAPI Version 1.2 Classes and Interfaces
Table B-7
getCallingAddress getCallingTerminal getLastRedirectedAddress CallCtlConnAlertingEv CallCtlConnDialingEv CallCtlConnDisconnectedEv CallCtlConnEstablishedEv CallCtlConnEv CallCtlConnFailedEv CallCtlConnInitiatedEv CallCtlConnNetworkAlertin gEv CallCtlConnNetworkReache dEv CallCtlConnOfferedEv CallCtlConnQueuedEv CallCtlConnUnknownEv CallCtlEv CallCtlTermConnBridgedEv CallCtlTermConnDroppedE v CallCtlTermConnEv CallCtlTermConnHeldEv CallCtlTermConnInUseEv CallCtlTermConnRingingEv CallCtlTermConnTalkingEv CallCtlTermConnUnknownE v CallCtlTermDoNotDisturbE v CallCtlTermEv getCallControlCause getNumberInQueue getDigits
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Capabilities Package
Table B-8 lists each JTAPI interface in the JTAPI Capabilities Package followed by the associated method(s) and whether the classes are supported by the Cisco Unified JTAPI implementation.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
B-13
Table B-8
Cisco Unified JTAPI Suppt Yes Yes Yes Yes Yes Yes Yes
Comments
Events Package
Table B-9 lists each JTAPI interface in the JTAPI Events Package followed by the associated method(s) and whether the classes are supported by the Cisco Unified JTAPI Implementation.
Table B-9 Support for javax.telephony.events
Class Names AddrEv AddrObservationEndedEv CallActiveEv CallEv CallInvalidEv CallObservationEndedEv ConnAlertingEv ConnConnectedEv ConnCreatedEv ConnDisconnectedEv ConnEv ConnFailedEv ConnInProgressEv ConnUnknownEv Ev
Comments
getCall getEndedObject
getConnection
getCause getID
Yes Yes
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
B-14
OL-16702-01
Appendix B
Cisco Unified JTAPI Classes and Interfaces Cisco Unified JTAPI Version 1.2 Classes and Interfaces
Table B-9
getMetaCode getObserved isNewMetaEvent ProvEv ProvInServiceEv ProvObservationEndedEv ProvOutOfServiceEv ProvShutdownEv TermConnActiveEv TermConnCreatedEv TermConnDroppedEv TermConnEvgetTerminal Connection TermConnPassiveEv TermConnRingingEv TermConnUnknownEv TermEv TermObservationEndedEv getTerminal getProvider
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Media Package
Table B-10 lists each JTAPI interface from the JTAPI Media Package followed by the associated method(s) and whether the classes are supported by the Cisco Unified JTAPI implementation.
Table B-10 Support for javax.telephony.media
Method Names generateDtmf getMediaAvailability getMediaState setDtmfDetection startPlaying startRecording stopPlaying stopRecording useDefaultMicrophone
Comments
Yes
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
B-15
Table B-10
Method Names canDetectDtmf canGenerateDtmf canStartPlaying canStartRecording canStopPlaying canStopRecording canUseDefaultMicrophone canUseDefaultSpeaker canUsePlayURL canUseRecordURL
Cisco Unified JTAPI Suppt Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Comments
Comments
getDtmfDigit
Yes
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
B-16
OL-16702-01
Appendix B
Cisco Unified JTAPI Classes and Interfaces Cisco Unified JTAPI Extension Classes and Interfaces
Table B-12
Yes
Unsupported Packages
Table B-13 shows the JTAPI packages that are not supported by the Cisco Unified JTAPI implementation.
Table B-13 Unsupported JTAPI Packages
Unsupported JTAPI Packages JTAPI Phone Package JTAPI Phone Capabilities Package JTAPI Phone Events Package JTAPI Private Data Package JTAPI Private Data Capabilities Package JTAPI Private Data Events Package
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
B-17
Cisco Extension Interfaces CiscoAddrCreatedEv CiscoAddress CiscoAddressObserver CiscoAddrEv CiscoAddrInService CiscoAddrOutOfService CiscoCall CiscoCallEv CiscoCallID CiscoConferenceEndEv
CiscoConferenceStartEv
CiscoProvEv
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
B-18
OL-16702-01
Appendix B
Cisco Unified JTAPI Classes and Interfaces Cisco Unified JTAPI Extension Classes and Interfaces
Table B-15
CiscoProviderObserver CiscoRouteSession CiscoRTPInputProperties getCall() getBitRate() getEchoCancellation() getLocalAddress() getLocalPort() getPacketSize() getPayloadType() CiscoRTPInputStartedEv CiscoRTPInputStoppedEv CiscoRTPOutputProperties getBitRate() getMaxFramesPerPacket() getPacketSize() getPayloadType() getPrecedenceValue() getRemoteAddress() getRemotePort() CiscoRTPOutputStartedEv CiscoRTPOutputStoppedEv CiscoSynronousObserver CiscoTermCreatedEv CiscoTermEv CiscoTerminal CiscoTerminalConnection CiscoTerminalObserver CiscoTermInServiceEv CiscoTermOutOfServiceEv CiscoTransferEndEv getFinalCall() getTransferController() getTransferredCall() getRegistrationState() getTerminal() getRTPOutputProperties() getRTPInputProperties()
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
B-19
Table B-15
getObject() setObject()
Method Names close() flush() getCurrentFile() getFileExtension() getFileNameBase() getMaxFiles() getMaxFileSize() write(byte[], int, int) write(int)
NullTraceWriter
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
B-20
OL-16702-01
Appendix B
Cisco Unified JTAPI Classes and Interfaces Cisco Trace Logging Classes and Interfaces
Table B-16
TraceManagerFactory
Method Names disable() enable() append(Object) append(String) getName() isEnabled() print(Object) print(String) print(String, Object) print(String, String) println(Object) println(String) println(String, Object) println(String, String) setDefaultMnemonic(String)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
B-21
Table B-17
Method Names disableAll() disableTimeStamp() enableAll() enableTimeStamp() getConditionalTrace(String) getConditionalTrace(String, String) getName() getOutputStream() getSubFacilities() getTraces() getTraceWriter() getUnconditionalTrace(String) getUnconditionalTrace(String, String) removeTrace(String) removeTrace(Trace) setOutputStream(OutputStream) setSubFacilities() setTraceWriter()
UnconditionalTrace
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
B-22
OL-16702-01
A P P E N D I X
CTI Error Codes, page C-1 CiscoEventIDs, page C-10 Reason Codes, page C-13 Cause Codes, page C-14 Additional Troubleshooting Information, page C-18
Description This error indicates that the request is issued on a line, which is not open This error indicates that another call already exists on the line The call dropped after the feature request (hold, unhold, transfer, or conference) but before the request was completed. This error indicates that an attempt is made to answer a call that either does not exist or is not in the correct state This error indicates that attempt to redirect call that was unknown to line control This error indicates that device open failed because the associated device is unregistering This error indicates that media cannot be terminated by an application when the device is a physical phone (the phone always terminates the media) This error indicates that attempt to set CFWALL while it is already set
CFWDALL_ALREADY_SET
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
C-1
Table C-1
Description This error indicates that attempt to CFWALL to an invalid destination This error indicates that link to one of the cisco unified communications managers failed in the cluster (network error) This error indicates that device does not support the command. This error indicates that attempt to conference a party that is already in conference This error indicates that conference completion was not successful. This error indicates that all conference bridges are busy. This error indicates that attempt to complete conference while consult conference is not active This error indicates that an attempt to conference to self or an invalid participant This error indicates that the access to device is denied. This error indicates that the application softkeys are already controlled by another application This error indicates that application data size has exceeded limit This error indicates built in bridge is not configured This error indicates that built in bridge resource not available This error indicates that Communications Manager is not available currently This error indicates that call does not exist This error indicates no call park DN This error indicates call request already outstanding This error indicates that call unpark did not succeed This error indicates that capabilities do not match This error indicates that the close delay is not supported with this registration type This error indicates that conference already exists This error indicates that conference does not exist This error indicates application is trying to connect to invalid port This error indicates consult call failure This error indicates that consult call already outstanding
COMMAND_NOT_IMPLEMENTED_ON_DEVICE CONFERENCE_ALREADY_PRESENT CONFERENCE_FAILED CONFERENCE_FULL CONFERENCE_INACTIVE CONFERENCE_INVALID_PARTICIPANT CTIERR_ACCESS_TO_DEVICE_DENIED CTIERR_APP_SOFTKEYS_ALREADY_CONTROLLED CTIERR_APPLICATION_DATA_SIZE_EXCEEDED CTIERR_BIB_NOT_CONFIGURED CTIERR_BIB_RESOURCE_NOT_AVAILABLE CTIERR_CALL_MANAGER_NOT_AVAILABLE CTIERR_CALL_NOT_EXISTED CTIERR_CALL_PARK_NO_DN CTIERR_CALL_REQUEST_ALREADY_OUTSTANDING CTIERR_CALL_UNPARK_FAILED CTIERR_CAPABILITIES_DO_NOT_MATCH CTIERR_CLOSE_DELAY_NOT_SUPPORTED_WITH_ REG_TYPE CTIERR_CONFERENCE_ALREADY_EXISTED CTIERR_CONFERENCE_NOT_EXISTED CTIERR_CONNECTION_ON_INVALID_PORT CTIERR_CONSULT_CALL_FAILURE CTIERR_CONSULTCALL_ALREADY_OUTSTANDING
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
C-2
OL-16702-01
Appendix C
Table C-1
Description This error indicates that device registration failed as device crypto algorithms does not match with current device registration This error indicates that CTIHandler process creation failed This error indicates DB initialization error This error indicates that device is already opened This error indicates that device is not yet opened This error indicates that there is a device registration failure This error indicates an invalid media type, CTIPort need to be registered with Dynamic media port registation if it has an intercom line This error indicates that the device is restricted This error indicates that device is shutting down This error indicates that there is a directory login time out This error indicates duplicate call reference This indicates registration failure when Cisco Media/Route Tterminal is already registered with different Addressing mode Client Matter Code (CMC) entered is invalid CMC is required to offer the call Forced Authorization Code (FAC) and CMC are required to offer call FAC entered is invalid FAC is required to offer the call This error indicates feature already registered This error indicates feature data reject This error indicates that feature select failed This error indicates that the device type is illegal This error indicates that auto install protocol version is incompatible Device registration failed due to incorrect media capability This error indicates that information is not available This error indicates that intercom target value is already configured, application is trying to make call with Intercom target DN
CTIERR_CTIHANDLER_PROCESS_CREATION_FAILED CTIERR_DB_INITIALIZATION_ERROR CTIERR_DEVICE_ALREADY_OPENED CTIERR_DEVICE_NOT_OPENED_YET CTIERR_DEVICE_OWNER_ALIVE_TIMER_STARTED CTIERR_DEVICE_REGISTRATION_FAILED_NOT_ SUPPORTED_MEDIATYPE CTIERR_DEVICE_RESTRICTED CTIERR_DEVICE_SHUTTING_DOWN CTIERR_DIRECTORY_LOGIN_TIMEOUT CTIERR_DUPLICATE_CALL_REFERENCE CTIERR_DYNREG_IPADDRMODE_MISMATCH
CTIERR_FAC_CMC_REASON_CMC_INVALID CTIERR_FAC_CMC_REASON_CMC_NEEDED CTIERR_FAC_CMC_REASON_FAC_CMC_NEEDED CTIERR_FAC_CMC_REASON_FAC_INVALID CTIERR_FAC_CMC_REASON_FAC_NEEDED CTIERR_FEATURE_ALREADY_REGISTERED CTIERR_FEATURE_DATA_REJECT CTIERR_FEATURE_SELECT_FAILED CTIERR_ILLEGAL_DEVICE_TYPE CTIERR_INCOMPATIBLE_AUTOINSTALL_PROTOCOL_ VERSION CTIERR_INCORRECT_MEDIA_CAPABILITY CTIERR_INFORMATION_NOT_AVAILABLE CTIERR_INTERCOM_SPEEDDIAL_ALREADY_CONFIGURE D
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
C-3
Table C-1
Description This error indicates that intercom request failed as intercom target value is already set, application is trying to set again This error indicates that intercomm request failed as intercom target value in not in the intercom group This error indicates that intercom talk back request is already pending This error indicates that talkback request failed for some reason This error indicates there is a CTI internal failure This error indicates the call ID is invalid This error indicates that the device name is not valid Play DTMF request failed because it is an invalid DTMF digit This error indicates that filter size is invalid This error indicates that the media device is not valid This error indicates media parameter is invalid This error indicates that there is an invalid media process This error indicates media resource ID is not valid This error indicates that the header info is not valid This error indicates that message length is invalid This error indicates monitoring request failed due to invalid monitoring destination This error indicates an invalid monitor DN type This error indicates monitor request failed due to an invalid monitor mode This error indicates that the parameter is not valid This error indicates that the DN is an invalid park DN This error indicates that the handle is an invalid park registration handle This error indicates an invalid resource type This indicates the registration failure due to IP Addressing Mode mismatch. This error indicates that line is out of service. This er ror indicates that the line is restricted This error indicates that maximum call limit has reached This error indicates that device registration failed as device is registered with Dynamic media termination
CTIERR_INTERCOM_SPEEDDIAL_DESTN_INVALID CTIERR_INTERCOM_TALKBACK_ALREADY_PENDING CTIERR_INTERCOM_TALKBACK_FAILURE CTIERR_INTERNAL_FAILURE CTIERR_INVALID_CALLID CTIERR_INVALID_DEVICE_NAME CTIERR_INVALID_DTMFDIGITS CTIERR_INVALID_FILTER_SIZE CTIERR_INVALID_MEDIA_DEVICE CTIERR_INVALID_MEDIA_PARAMETER CTIERR_INVALID_MEDIA_PROCESS CTIERR_INVALID_MEDIA_RESOURCE_ID CTIERR_INVALID_MESSAGE_HEADER_INFO CTIERR_INVALID_MESSAGE_LENGTH CTIERR_INVALID_MONITOR_DESTN CTIERR_INVALID_MONITOR_DN_TYPE CTIERR_INVALID_MONITORMODE CTIERR_INVALID_PARAMETER CTIERR_INVALID_PARK_DN CTIERR_INVALID_PARK_REGISTRATION_HANDLE CTIERR_INVALID_RESOURCE_TYPE CTIERR_IPADDRMODE_MISMATCH CTIERR_LINE_OUT_OF_SERVICE CTIERR_LINE_RESTRICTED CTIERR_MAXCALL_LIMIT_REACHED CTIERR_MEDIA_ALREADY_TERMINATED_DYNAMIC
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
C-4
OL-16702-01
Appendix C
Table C-1
Description This error indicates that device registration failed as device is already registered with media termination none This error indicates that device registration failed as device is registered with Static media termination This error indicates that device registration failed as media capability of device does not match with current device registration This error indicates that media resource name size has exceeded limit This error indicates that media registration types do not match This error indicates that message is too big This error indicates that there are more active calls than reserved This error indicates there are no existing calls This error indicates that there is no existing conference This error indicates recording request failed as there is no recording session This error indicates no response from media resource This error indicates that the call is not preserved This error indicates that feature unavailable for this call due to temporary failure This error indicates that this operation is not allowed This error indicates out of bandwidth error This error indicates a failure during registering the device This error indicates that there is a pending accept or answer request This error indicates there is a pending start monitoring request This error indicates there is a pending start recording request This error indicates there is a pending stop recording request This error indicates that primary call in monitoring request in invalid or gone idle This error indicates that primary call in monitoring request is in invalid state This error indicates recording request failed that recording is already in progress
CTIERR_MEDIA_ALREADY_TERMINATED_STATIC CTIERR_MEDIA_CAPABILITY_MISMATCH
CTIERR_MEDIA_RESOURCE_NAME_SIZE_EXCEEDED CTIERR_MEDIAREGISTRATIONTYPE_DO_NOT_MATCH CTIERR_MESSAGE_TOO_BIG CTIERR_MORE_ACTIVE_CALLS_THAN_RESERVED CTIERR_NO_EXISTING_CALLS CTIERR_NO_EXISTING_CONFERENCE CTIERR_NO_RECORDING_SESSION CTIERR_NO_RESPONSE_FROM_MP CTIERR_NOT_PRESERVED_CALL CTIERR_OPERATION_FAILED_QUIETCLEAR CTIERR_OPERATION_NOT_ALLOWED CTIERR_OUT_OF_BANDWIDTH CTIERR_OWNER_NOT_ALIVE CTIERR_PENDING_ACCEPT_OR_ANSWER_REQUEST CTIERR_PENDING_START_MONITORING_REQUEST CTIERR_PENDING_START_RECORDING_REQUEST CTIERR_PENDING_STOP_RECORDING_REQUEST CTIERR_PRIMARY_CALL_INVALID CTIERR_PRIMARY_CALL_STATE_INVALID CTIERR_RECORDING_ALREADY_INPROGRESS
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
C-5
Table C-1
Description This error indicates recording configuration does not match This error indicates recording request failed because recording session is inactive
CTIERR_REDIRECT_UNAUTHORIZED_COMMAND_USAGE This error indicates a redirect unauthorized command usage CTIERR_REGISTER_FEATURE_ACTIVATION_FAILED CTIERR_REGISTER_FEATURE_APP_ALREADY_ REGISTERED CTIERR_REGISTER_FEATURE_PROVIDER_NOT_ REGISTERED CTIERR_RESOURCE_NOT_AVAILABLE CTIERR_START_MONITORING_FAILED CTIERR_START_RECORDING_FAILED CTIERR_STATION_SHUT_DOWN CTIERR_SYSTEM_ERROR CTIERR_UDP_PASS_THROUGH_NOT_SUPPORTED CTIERR_UNKNOWN_EXCEPTION CTIERR_UNSUPPORTED_CALL_PARK_TYPE CTIERR_UNSUPPORTED_CFWD_TYPE CTIERR_USER_NOT_AUTH_FOR_SECURITY DARES_INVALID_REQ_TYPE DATA_SIZE_LIMIT_EXCEEDED DB_ERROR DB_ILLEGAL_DEVICE_TYPE DB_NO_MORE_DEVICES DESTINATION_BUSY DESTINATION_UNKNOWN DEVICE_ALREADY_REGISTERED DEVICE_NOT_OPEN This error indicates that register feature activation failed Register feature application was already registered Register feature provider was not registered. This error indicates that resource is not available to fulfill the request This error indicates that start monitoring request failed This error indicates that start recording request failed This error indicates that there is a station shutdown This error indicates CTI system error This error indicates UDP data passthrough not supported This error indicates an unknown exception occured This error indicates that call park type is not supported This error indicates that the call forward type is unsupported This error indicates user is not authorized for secure connection This error indicates that there is an internal call processing error: DaRes invalid request type This error indicates that XML data object size is bigger than allowed. This error indicates that the device query contained an illegal device type This error indicates illegal device type in DB This error is no longer used. This error indicates that destination is busy This error indicates that destination is not found This error indicates that device registration attempt failed, because the device is already registered This error indicates that an attempt to open a line failed, as the device is not opened or the device is not registered.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
C-6
OL-16702-01
Appendix C
Table C-1
Error Code DEVICE_OUT_OF_SERVICE DIGIT_GENERATION_ALREADY_IN_PROGRESS DIGIT_GENERATION_CALLSTATE_CHANGED DIGIT_GENERATION_WRONG_CALL_HANDLE DIGIT_GENERATION_WRONG_CALL_STATE DIRECTORY_LOGIN_FAILED DIRECTORY_LOGIN_NOT_ALLOWED DIRECTORY_TEMPORARY_UNAVAILABLE EXISTING_FIRSTPARTY HOLDFAILED ILLEGAL_CALLINGPARTY
Description This error indicates that device is out of service. This error indicates that digit generation is already in progress. This error indicates that call state is invalid to continue. This error indicates that call handle is invalid and call may be gone. This error indicates that call state is not valid to generate digits. This error indicates that directory login failed: directory not initialized This error indicates that directory login failed This error indicates that directory is temporarily unavailable. This error indicates that there is already a device controlling media. This error indicates that the hold was rejected by line control or call control layers This error indicates that an attempt was made to originate call using a calling party that is not on the device This error indicates line is not in a legal state to invoke the request This error indicates the handle is not valid This error indicates that there is a QBE protocol error This error indicates that JTAPI and CTI versions are not compatible : CTI Error Protocol version not supported This error indicates that attempt to perform a line operation on an invalid line handle. This error indicates that the ring option is invalid This error indicates that line is greater than the maximum available lines on this device This error indicates that line information does not exist in the database. This error indicates that internal error returned from call control. This error indicates line control refuses to allow a new call to be initiated because of its current state. The maximum number of CTI connections was reached. This error indicates that attempt to set message waiting lamp for an invalid DN; Message Waiting Destination not found.
ILLEGAL_CALLSTATE ILLEGAL_HANDLE ILLEGAL_MESSAGE_FORMAT INCOMPATIBLE_PROTOCOL_VERSION INVALID_LINE_HANDLE INVALID_RING_OPTION LINE_GREATER_THAN_MAX_LINE LINE_INFO_DOES_NOT_EXIST LINE_NOT_PRIMARY LINECONTROL_FAILURE MAX_NUMBER_OF_CTI_CONNECTIONS_REACHED MSGWAITING_DESTN_INVALID
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
C-7
Table C-1
Error Code NO_ACTIVE_DEVICE_FOR_THIRDPARTY NO_CONFERENCE_BRIDGE NOT_INITIALIZED PROTOCOL_TIMEOUT PROVIDER_ALREADY_OPEN PROVIDER_CLOSED PROVIDER_NOT_OPEN REDIRECT_CALL_CALL_TABLE_FULL REDIRECT_CALL_DESTINATION_BUSY REDIRECT_CALL_DESTINATION_OUT_OF_ORDER REDIRECT_CALL_DIGIT_ANALYSIS_TIMEOUT REDIRECT_CALL_DOES_NOT_EXIST REDIRECT_CALL_INCOMPATIBLE_STATE REDIRECT_CALL_MEDIA_CONNECTION_FAILED REDIRECT_CALL_NORMAL_CLEARING REDIRECT_CALL_ORIGINATOR_ABANDONED REDIRECT_CALL_PARTY_TABLE_FULL REDIRECT_CALL_PENDING_REDIRECT_TRANSACTION REDIRECT_CALL_PROTOCOL_ERROR REDIRECT_CALL_UNKNOWN_DESTINATION REDIRECT_CALL_UNKNOWN_ERROR REDIRECT_CALL_UNKNOWN_PARTY
Description This error indicates there is no active device for thirdparty This error indicates that no conference bridge available This error indicates that attempt is made to open a provider before CTI initialization completes Internal error returned from call control This error indicates that an attempt is made to reopen provider This error indicates an attempt to close provider while it is already closed This error indicates that device list incomplete or device list query timeout or query aborted This error indicates that internal error is returned from call control This error indicates that the redirect destination is busy This error indicates that redirect destination is out of order This error indicates a digit analyss time out, this is an internal error returned from call control This error indicates that an attempt is made to redirect a call that does not exist or is not longer active This error indicates that internal error is returned from call control This error indicates media connection failure, this is an internal error returned from call control This error indicates that redirect failed because of normal call clearing This error indicates that far end hung up on the call being redirected This error indicates that internal error is returned from call control This error indicates that internal error is returned from call control This error indicates a protocol error, this is an internal error returned from call control This error indicates that an attempt is made to redirect to an unknown destination This error indicates that internal error is returned from call control This error indicates an unknown party is detected, this is an internal error returned from call control
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
C-8
OL-16702-01
Appendix C
Table C-1
Description This error indicates that internal error is returned from call control This error indicates that internal error is returned from call control This error indicates that internal error is returned from call control This error indicates that retrieval of call was rejected by line control or call control This error indicates that error occurred in retrieving held call; because there is already another active call on the line This error indicates that the redirect command was issued when the internal supporting interface was not initialized; either CTI has not yet finished its initialization or an internal error occurred This error indicates that the request has timed out. This error indicates that attempt to complete transfer, while consult tranfer is not there This error indicates that the transfer failed probably because one of the call legs was hung up or disconnected from the far end This error indicates that expected response from call control not received during a transfer This error indicates that an attempt is made to transfer call to a busy destination This error indicates an attempt is made to to transfer call to a directory number that is not registered This error indicates that existing transfer is still in progress This error indicates that the line that was specified, is not found on the device This error indicates that the global call handle is unknown This error indicates that there is a QBE protocol error This error indicates that an unspecified error has occurred.
SSAPI_NOT_REGISTERED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
C-9
Appendix C CiscoEventIDs
CiscoEventIDs
This section includes the following events:
Provider Events, page C-10 Terminal Events, page C-10 Address Events, page C-11 Call Events, page C-11 RTP Events, page C-12 TermConn Events, page C-12
Provider Events
Table C-2 Provider Events
Event Name CiscoProvFeatureUnRegisteredEv CiscoRestrictedEv CiscoAddrRestrictedEv CiscoTermRestrictedEv CiscoAddrActivatedEv CiscoTermActivatedEv CiscoAddrActivatedOnTerminalEv CiscoAddrRestrictedOnTerminalEv CiscoProviderCapabilityChangedEv CiscoProvTerminalCapabilityChangedEv
Event Number 0x40000008 0x40000009 0x40000010 0x40000011 0x40000012 0x40000013 0x40000014 0x40000015 0x40000016 0x40000017
Terminal Events
Table C-3 Terminal Events
Event Name CiscoTermCreatedEv CiscoTermDataEv CiscoTermInServiceEv CiscoTermOutOfServiceEv CiscoTermRemovedEv CiscoTermDeviceActiveStatusEv CiscoTermDeviceAlertingStatusEv CiscoTermDeviceHoldStatusEv
Event Number 0x40001001 0x40001002 0x40001003 0x40001004 0x40001005 0x40001006 0x40001007 0x40001008
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
C-10
OL-16702-01
Appendix C
Table C-3
Address Events
Table C-4 Address Events
Event Name CiscoAddrCreatedEv CiscoAddrInServiceEv CiscoAddrOutOfServiceEv CiscoAddrRemovedEv CiscoOutOfServiceEv CiscoAddrAddedToTerminalEv CiscoAddrRemovedFromTerminalEv CiscoAddrAutoAcceptStatusChangedEv CiscoAddrIntercomInfoChangedEv CiscoAddrIntercomInfoRestorationFailedEv CiscoAddrRecordingConfigChangedEv CiscoAddrParkStatusEv
Event Number 0x40002001 0x40002002 0x40002003 0x40002004 0x40002005 0x40002006 0x40002007 0x40002008 0x40002009 0x40002010 0x40002011 0x40002012
Call Events
Table C-5 Call Events
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
C-11
Appendix C CiscoEventIDs
Table C-5
RTP Events
Table C-6 RTP Events
TermConn Events
Table C-7 TermConn Events
Event Name CiscoTermConnPrivacyChangedEv CiscoCallCtlTermConnHeldReversionEv CiscoTermConnSelectChangedEv CiscoTermConnRecordingStartEv CiscoTermConnRecordingEndEv CiscoTermConnMonitoringStartEv CiscoTermConnMonitoringEndEv CiscoTermConnRecordingTargetInfoEv CiscoTermConnMonitorInitiatorInfoEv CiscoTermConnMonitorTargetInfoEv
Event Number 0x40005001 0x40005002 0x40005003 0x40005004 0x40005005 0x40005006 0x40005007 0x40005008 0x40005009 0x4000500A
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
C-12
OL-16702-01
Appendix C
Reason Codes
The following codes are defined in CiscoFeatureReason interface.
Table C-8 Reason Codes
Reason Code Name REASON_TRANSFER REASON_FORWARDNOANWSER REASON_FORWARDBUSY REASON_FORWARDALL REASON_REDIRECT REASON_BLINDTRANSFER REASON_CONFERENCE REASON_PARK REASON_CALLPICKUP REASON_NORMAL REASON_PARKREMINDER REASON_UNPARK REASON_BARGE REASON_IMMDIVERT REASON_FAC_CMC REASON_QSIG_PR REASON_REFER REASON_REPLACE REASON_CCM_REDIRECTION REASON_DPARK_CALLPARK REASON_DPARK_REVERSION REASON_DPARK_UNPARK REASON_SILENTMONITORING REASON_MOBILITY REASON_MOBILITY_IVR REASON_MOBILITY_CELLPICKUP REASON_MOBILITY_HANDIN REASON_MOBILITY_HANDOUT REASON_MOBILITY_FOLLOWME REASON_CLICK_TO_CONFERENCE REASON_FORWARD_NO_RETRIEVE
Reason Code 2 3 4 5 6 7 9 10 11 12 15 16 20 21 22 23 24 25 26 27 28 29 31 33 34 35 36 37 38 39 40
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
C-13
Cause Codes
Table C-9 Cause Codes
Cause Code Name CAUSE_NOERROR CAUSE_UNALLOCATEDNUMBER CAUSE_NOROUTETOTRANSITNET CAUSE_NOROUTETODDESTINATION CAUSE_CHANUNACCEPTABLE CAUSE_CALLBEINGDELIVERED CAUSE_CTIPREEMPTNOREUSE CAUSE_CTIPREEMPTFORREUSE CAUSE_NORMALCALLCLEARING CAUSE_USERBUSY CAUSE_NOUSERRESPONDING CAUSE_NOANSWERFROMUSER CAUSE_SUBSCRIBERABSENT CAUSE_CALLREJECTED CAUSE_NUMBERCHANGED CAUSE_EXCHANGEROUTINGERROR CAUSE_NONSELECTEDUSERCLEARING CAUSE_DDESTINATIONOUTOFORDER CAUSE_INVALIDNUMBERFORMAT CAUSE_FACILITYREJECTED CAUSE_RESPONSETOSTATUSENQUIRY CAUSE_NORMALUNSPECIFIED CAUSE_NOCIRCAVAIL CAUSE_NETOUTOFORDER CAUSE_TEMPORARYFAILURE CAUSE_SWITCHINGEQUIPMENT CONGESTION CAUSE_ACCESSINFORMATION DISCARDED CAUSE_REQCIRCNAVIL CAUSE_CTIPRECEDENCECALLBLOCKED CAUSE_RESOURCESNAVAIL CAUSE_QUALOFSERVNAVAIL CAUSE_REQFACILITYNOTSUBSCRIBED
Cause Code 0X00 (0) 0X01 (1) 0X02 (2) 0X03 (3) 0X06 (6) 0X07 (7) 0X08 (8) 0X09 (9) 0X10 (16) 0X11 (17) 0X12 (18) 0X13 (19) 0X14 (20) 0X15 (21) 0X16 (22) 0X19 (25) 0X1A (26) 0X1B (27) 0X1C (28) 0X1D (29) 0X1E (30) 0X1F (31) 0X22 (34) 0X26 (38) 0X29 (41) 0X2A (42) 0X2B (43) 0X2C (44) 0X2E (46) 0X2F (47) 0X31 (49) 0X32 (50)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
C-14
OL-16702-01
Appendix C
Table C-9
Cause Code Name CAUSE_SERVOPERATIONVIOLATED CAUSE_INCOMINGCALLBARRED CAUSE_BCNAUTHORIZED CAUSE_BCBPRESENTLYAVAIL CAUSE_SERVNOTAVAILUNSPECIFIED CAUSE_BEARERCAPNIMPL CAUSE_CHANTYPENIMPL CAUSE_REQFACILITYNIMPL CAUSE_ONLYRDIVEARERCAPAVAIL CAUSE_SERVOROPTNAVAILORIMPL CAUSE_INVALIDCALLREFVALUE CAUSE_IDENTIFIEDCHANDOESNOTEXIST CAUSE_SUSPCALLBUTNOTTHISONE CAUSE_CALLIDINUSE CAUSE_NOCALLSUSPENDED CAUSE_REQCALLIDHASBEENCLEARED CAUSE_INCOMPATABLEDDESTINATION CAUSE_DESTNUMMISSANDDCNOTSUB CAUSE_INVALIDTRANSITNETSEL CAUSE_INVALIDMESSAGEUNSPECIFIED CAUSE_MANDATORYIEMISSING CAUSE_MSGTYPENIMPL CAUSE_MSGTYPENCOMPATWCS CAUSE_IENIMPL CAUSE_INVALIDIECONTENTS CAUSE_MSGNCOMPATABLEWCS CAUSE_RECOVERYONTIMEREXPIRY CAUSE_PROTOCOLERRORUNSPECIFIED CAUSE_CTIPRECEDENCELEVEL EXCEEDED CAUSE_CTIDEVICENOTPREEMPTABLE CAUSE_OUTOFBANDWIDTH CAUSE_INTERWORKINGUNSPECIFIED CAUSE_CTIPRECEDENCEOUTOF BANDWIDTH CAUSE_REDIRECTED CAUSE_INTERNALCAUSE
Cause Code 0X35 (53) 0X36 (54) 0X39 (57) 0X3A (58) 0X3F (63) 0X41 (65) 0X42 (66) 0X45 (69) 0X46 (70) 0X4F (79) 0X51 (81 ) 0X52 (82) 0X53 (83) 0X54 (84) 0X55 (85) 0X56 (86) 0X58 (88) 0X5A (90) 0X5B (91) 0X5F (95) 0X60 (96) 0X61 (97) 0X62 (98) 0X63 (99) 0X64 (100) 0X65 (101) 0X66 (102) 0X6F (111) 0X7A (122) 0X7B (123) 0X7D (125) 0X7F (127) 0X81 (129) 0XC9 (200) 0X1F4 (500)
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
C-15
Table C-9
Cause Code Name CAUSE_OUTBOUND_TRANSFER CAUSE_OUTBOUND_CONFERENCE CAUSE_INBOUND_TRANSFER CAUSE_INBOUND_CONFERENCE CAUSE_INBOUND_BLINDTRANSFER CAUSE_CTIMANAGER_FAILURE CAUSE_CALLMANAGER_FAILURE CAUSE_BARGE CAUSE_FAC_CMC CAUSE_QSIG_PR CAUSE_DPARK CAUSE_DPARK_UNPARK CAUSE_DPARK_REMINDER CAUSE_QUIET_CLEAR CAUSE_CTICONFERENCEFULL CAUSE_CALLSPLIT CAUSE_CTIDROPCONFEREE CAUSE_CTICCMSIP400BADREQUEST CAUSE_CTICCMSIP401UNAUTHORIZED CAUSE_CTICCMSIP402PAYMENT REQUIRED CAUSE_CTICCMSIP403FORBIDDEN CAUSE_CTICCMSIP404NOTFOUND CAUSE_CTICCMSIP405METHODNOT ALLOWED CAUSE_CTICCMSIP406NOTACCEPTABLE CAUSE_CTICCMSIP407PROXYAUTHENTIC ATIONREQUIRED CAUSE_CTICCMSIP408REQUESTTIMEOUT CAUSE_CTICCMSIP410GONE CAUSE_CTICCMSIP411LENGTHREQUIRED CAUSE_CTICCMSIP413REQUESTENTITY TOOLONG CAUSE_CTICCMSIP414REQUESTURI TOOLONG
Cause Code 0X1F5 (501) 0X1F6 (502) 0X1F7 (503) 0X1F8 (504) 0X1F9 (505) 0x1FB (507) 0x1FC (508) 0x1FD(509) 0x1FE (510) 0x1FF (511) 0x200 (512) 0x201 (513) 0x202 (514) 0x203 (515) 0X40000 + CAUSE_NOERROR 0X60000 + CAUSE_NOERROR 0X70000 + CAUSE_NOERROR 0X1000000 + CAUSE_TEMPORARYFAILURE 0X2000000 + CAUSE_CALLREJECTED 0X3000000 + CAUSE_CALLREJECTED 0X4000000 + CAUSE_CALLREJECTED 0X5000000 + CAUSE_UNALLOCATEDNUMBER 0X6000000 + CAUSE_SERVNOTAVAILUNSPECIFIED 0X7000000 + CAUSE_SERVOROPTNAVAILORIMPL 0X8000000 + CAUSE_CALLREJECTED 0X9000000 + CAUSE_RECOVERYONTIMEREXPIRY 0XB000000 + CAUSE_NUMBERCHANGED 0XC000000 + CAUSE_INTERWORKINGUNSPECIFIED 0XE000000 + CAUSE_INTERWORKINGUNSPECIFIED 0XF000000 + CAUSE_INTERWORKINGUNSPECIFIED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
C-16
OL-16702-01
Appendix C
Table C-9
Cause Code Name CAUSE_CTICCMSIP415UNSUPPORTED MEDIATYPE CAUSE_CTICCMSIP416UNSUPPORTED URISCHEME CAUSE_CTICCMSIP420BADEXTENSION CAUSE_CTICCMSIP421EXTENSTION REQUIRED CAUSE_CTICCMSIP423INTERVALTOO BRIEF CAUSE_CTICCMSIP480TEMPORARILY UNAVAILABLE
Cause Code 0X10000000 + CAUSE_SERVOROPTNAVAILORIMPL 0X11000000 + CAUSE_INTERWORKINGUNSPECIFIED 0X15000000 + CAUSE_INTERWORKINGUNSPECIFIED 0X16000000 + CAUSE_INTERWORKINGUNSPECIFIED 0X18000000 + CAUSE_INTERWORKINGUNSPECIFIED 0X40000000 + CAUSE_NOUSERRESPONDING
CAUSE_CTICCMSIP481CALLLEGDOESNOT 0X41000000 + EXIST CAUSE_TEMPORARYFAILURE CAUSE_CTICCMSIP482LOOPDETECTED CAUSE_CTICCMSIP483TOOMANYHOOPS CAUSE_CTICCMSIP484ADDRESS INCOMPLETE CAUSE_CTICCMSIP485AMBIGUOUS CAUSE_CTICCMSIP486BUSYHERE CAUSE_CTICCMSIP487REQUEST TERMINATED CAUSE_CTICCMSIP488NOTACCEPTABLE HERE CAUSE_CTICCMSIP491REQUESTPENDING CAUSE_CTICCMSIP493UNDECIPHERABLE CAUSE_CTICCMSIP500SERVERINTERNAL ERROR 0X42000000 + CAUSE_EXCHANGEROUTINGERROR 0X43000000 + CAUSE_EXCHANGEROUTINGERROR 0X44000000 + CAUSE_INVALIDNUMBERFORMAT 0X45000000 + CAUSE_UNALLOCATEDNUMBER 0X46000000 + CAUSE_USERBUSY 0X47000000 + CAUSE_NORMALUNSPECIFIED 0X48000000 + CAUSE_NORMALUNSPECIFIED 0X4B000000 + CAUSE_USERBUSY 0X4D000000 + CAUSE_USERBUSY 0X54000000 + CAUSE_TEMPORARYFAILURE
CAUSE_CTICCMSIP501NOTIMPLEMENTED 0X55000000 + CAUSE_SERVOROPTNAVAILORIMPL CAUSE_CTICCMSIP502BADGATEWAY CAUSE_CTICCMSIP503SERVICE UNAVAILABLE CAUSE_CTICCMSIP504SERVERTIMEOUT CAUSE_CTICCMSIP505SIPVERSIONNOT SUPPORTED CAUSE_CTICCMSIP513MESSAGETOO LARGE 0X56000000 + CAUSE_NETOUTOFORDER 0X57000000 + CAUSE_TEMPORARYFAILURE 0X58000000 + CAUSE_RECOVERYONTIMEREXPIRY 0X59000000 + CAUSE_INTERWORKINGUNSPECIFIED 0X5A000000 + CAUSE_INTERWORKINGUNSPECIFIED
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
C-17
Table C-9
Cause Code 0XA1000000 + CAUSE_USERBUSY 0XA2000000 + CAUSE_CALLREJECTED 0XA3000000 + CAUSE_UNALLOCATEDNUMBER 0XA4000000 + CAUSE_NORMALUNSPECIFIED
If DEBUG is enabled, JTPREFS allows you to enable or disable various debugging levels. The following debugging levels are defined:
TAPI_DEBUGGING - to trace JTAPI methods and events TAPI_IMPLDEBUGGING - internal JTAPI implementation trace CTI_DEBUGGING - to trace Cisco Unified Communications Manager events that are sent to the JTAPI implementation CTIIMPL_DEBUGGING - internal CTICLIENT implementation trace PROTOCOL_DEBUGGING - full CTI protocol decoding MISC_DEBUGGING - miscellaneous low-level debug trace
Traces can be directed to a specific path and folder rather than to the application directory by default. The same trace folder could be used for successive or more than one simultaneous launch of JTAPI. Different launches of JTAPI would also send the traces to different folders. This allows simultaneous JTAPI instances to maintain independent trace destinations
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
C-18
OL-16702-01
Appendix C
ismpInstall.log to track events during installation. ismpUninstall.log to track events during uninstallation.
The error messages will contain the information about the wizard beans that were executed as a part of the install procedure and if there were any exceptions.
Proper language details are Locale Files not proper. not displayed during installation Uninstaller/Installer throws error. The JVM has been either removed or replaced with an incompatible version
Installer goes through fine, Permissions but the files have not been copied. Installer/Uninstaller throws exception or crashes during the installation process. version name problem / folder name problem.
.jtapiver.ini missing. Upgrade does not show upgrade message during installation of an upgrade version.
This file is where the current jtapi install details are located. If this is accidently removed then, upgrade/reinstall will have display issues. In the case of an upgrade/reinstall or downgrade failure, the user will have to manually remove the files from the .jtapi/bin and .jtapi/lib folders and then try the installer in order to ensure proper installation during the next time.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
C-19
LDAP connectivity problems Database delays The CTIManager being busy for some other reason and therefore unable to honor the request
The solution is that the application must try again. If the ProviderOpenRequest fails on repeated attempts, modify the ProviderOpenRequest.
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
C-20
OL-16702-01
A P P E N D I X
Table D-1
JTAPI Feature CTI Manager and Support for Fault Tolerance Cisco CallManager Extension Mobility Support Blind Transfer (using Redirect) Support for Forward Reset the Original Called Party with Redirect CiscoAddrInServiceEv or CiscoAddrOutOFServiceEv Localization / Internationalization User Deletion from Directory
3.1
3.2
3.3
4.0
4.1
4.2
4.3
5.0
5.1
6.0
6.1
7.0
UCR
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
D-1
Appendix D
Table D-1
JTAPI Feature Park and Unpark Monitoring Call Park Numbers Call Reason Enhancements Device Data Passthrough CiscoJTAPI Auto Install Multiple Calls per DN Shared Line Support Transfer Direct Transfer Conference Join Privacy Release Barge and cBarge Dynamic Port Registration Media Termination at Route Points Transfer to VoiceMail Modifying Calling Number Support for Presentation Indication QSIG-PR FAC/CMC Support Device State Server SuperProvider Functionality
3.1
3.2
3.3
4.0
4.1
4.2
4.3
5.0
5.1
6.0
6.1
7.0
UCR
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
D-2
OL-16702-01
Appendix D
JTAPI Feature Windows 2003 Support Directed PARK Forward on NoBandWidth and Unregister VoiceMailBox Support Privacy on Hold Hold Reversion (4.2.1.SR1) Support for MLPP (4.2.2) Conference Enhancement-Add Participants to Conf by Non-controller (4.2.2) Conference Chaining (4.2.2) CiscoRTPHandle Interface (4.2.2) CiscoTermRegistrationFailed Ev- New Error Code (4.2.3) Network Events Backward Compatibility Enhancement Hairpin Support Unicode Support SRTP support Partition Support Security (TLS) support Alternate Script Support SIP Features Refer/Replaces
3.1
3.2
3.3
4.0
4.1
4.2
4.3
5.0
5.1
6.0
6.1
7.0
UCR
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
D-3
Appendix D
Table D-1
JTAPI Feature SIP End Point Support Change Notification of SuperProvider and CallParkDN Monitoring capability 3XX Call Select Status QoS support Linux and Solaris Installer Intercom Support Secure Conferencing Support Monitoring & Recording Arabic and Hebrew Language Support Do-Not_Disturb Support Join AcrossLine (SCCP) Certificate Download API Enhancement Intercom Support for Extension Mobility Join Across Line (SIP phone support) Locale Infrastructure Enhancement DND-CallReject (DND-R) Call Party Normalization (CPN) Click-To-Conference IPv6 Support
3.1
3.2
3.3
4.0
4.1
4.2
4.3
5.0
5.1
6.0
6.1
7.0
UCR
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
D-4
OL-16702-01
Appendix D
JTAPI Feature Windows Vista Support EMLogin UserName API SetJtapiProperties API on CiscoJTAPIPeer DropAnyParty from Conference
3.1
3.2
3.3
4.0
4.1
4.2
4.3
5.0
5.1
6.0
6.1
7.0
UCR
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
D-5
Appendix D
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
D-6
OL-16702-01
A P P E N D I X
Table E-1
Device/Phone Model Analog Phone Cisco 12 S Cisco 12 SP Cisco 12 SP Cisco 30 SP Cisco 30 VIP Cisco 3911 Cisco 7902 Cisco 7905 Cisco 7906 Cisco 7910 Cisco 7911 Cisco 7912 Cisco 7914 Sidecar Cisco 7915 Sidecar Cisco 7916 Sidecar Cisco 7920
SCCP
SIP
Comments
UCR UCR
UCR UCR
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
E-1
Appendix E
Table E-1
Device/Phone Model Cisco 7921 Cisco 7931 Cisco 7935 Cisco 7936 Cisco 7937 Cisco 7940 Cisco 7941 Cisco 7941G-GE Cisco 7942 Cisco 7945 Cisco 7960 Cisco 7961 Cisco 7961G-GE Cisco 7962 Cisco 7965 Cisco 7970 Cisco 7971 Cisco 7975 Cisco 7985 Cisco ATA Cisco IP Communicator
SCCP
SIP
Comments
CTI support when running in desktop mode depends on physical device; Softphone mode not yet tested
Cisco Unified Personal Communicator Cisco VGC Phone VG224 VG248 CTI Port CTI Route Point CTI supported virtual device that does not use SCCP or SIP CTI supported virtual device that does not use SCCP or SIP
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
E-2
OL-16702-01
Appendix E
Table E-1
Device/Phone Model CTI Route Point (Pilot Point) ISDN BRI Phone
SCCP
SIP
Comments CTI supported virtual device that does not use SCCP or SIP Not a CTI supported device
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
E-3
Appendix E
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
E-4
OL-16702-01
I N D EX
A
Actor.java Cisco Unified CallManager JTAPI examples addresses and terminals unobserved alarm services
1-7 1-12 3-46 6-3
Cisco Unified CallManagers Tab (figure) JTAPI Tracing Tab (figure) Log Destination Tab (figure) overview
4-3 4-6 3-4 4-8 4-10
B
barge and privacy event notification
3-35
C
call forward call park
3-2 2-20 3-3 3-3 3-36 3-2 2-17
6-12 2-16
CiscoRTPHandle interface
2-18 3-9
CiscoTerminal filter and ButtonPressedEvents CiscoTermRegistrationFailed event Cisco Unified CallManager JTAPI administering user information classes and interfaces configuration settings Language tab (figure) configuring tracing
4-7 4-18 B-1 4-19 3-47
Cisco extensions
3-10 3-9
scenarios
2-15 3-10
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
IN-1
Index
D
device recovery CTI ports phones
3-4 3-4 3-4
4-15
4-13
CTIRoutePoint
3-4
2-20
4-19
F
feature matrix
D-1 D-1 2-19
Cisco Unified JTAPI and contact centers Cisco Unified JTAPI and enterprises Cisco Unified JTAPI applications concepts CiscoObjectContainer interface connections
2-22 1-7 1-4 1-3 1-2
1-2
G
getCurrentCallingParty()
1-4
H
hold reversion
2-22
1-1
L I
intercom
2-12 6-14 2-17
invoking makecall
M J
JTAPI administering user information configuration settings Language tab (figure) installing
4-18 4-19
MakeCall.java Cisco Unified CallManager JTAPI Examples makecall.java media CiscoMediaTerminal endpoint model
3-12 3-14 6-1 6-1
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
IN-2
OL-16702-01
Index
initialization
recording redirect
receiving and responding to media flow events starting transmission and reception stopping transmission and reception media termination at route point message sequence charts MLPP
2-18 3-44 A-1 3-37
3-25
running makecall.java
N
new and changed information
2-1 2-26 2-24 2-9 2-7
S
secure conferencing
2-15 3-48
SelectRoute interface enhancement SetMessageWaiting interface shared line support silent monitoring single step transfer SIP phones StopSignal.java
3-30 2-10 3-40 3-27
from release 5.1(x) to release 6.0(1) from release 6.0(1) to release 6.1(1) no bandwidth forwarding
2-19
2-37, 2-38
O
Originator.java Cisco Unified CallManager JTAPI examples
6-7
6-11
T
TerminalConnection threaded callbacks Trace.java Cisco Unified CallManager JTAPI examples TraceWindow.java Cisco Unified CallManager JTAPI examples
6-12 6-11 1-8 1-11
P
presentation indicator (PI) for the call privacy on hold
2-21 3-50
R
Receiver.java Cisco Unified CallManager JTAPI examples
6-10
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1) OL-16702-01
IN-3
Index
3-33
C-1
U
unregistered DN forwarding user information administering for JTAPI
4-19 2-19
V
version format voice mailboxes
2-17 2-20
X
xsi object pass through
3-29
Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 7.0(1)
IN-4
OL-16702-01