You are on page 1of 26

Open Interfaces CCT SDK

Nortel

Nortel Open Interfaces CCT SDK


Nortel Open Interfaces CCT SDK..........................................................................1 What is the Nortel Open Interfaces CCT SDK?.................................................2 What is in the Open Interfaces?............................................................................3 Advantages of SOA ..............................................................................................3 SDK contents .........................................................................................................4 Reference Client ................................................................................................4 SDK support .......................................................................................................4 Related Documents ..............................................................................................5 Contacting Support ..............................................................................................6 What are the different Services? ..........................................................................7 Which API to use? ............................................................................................7 Programming with the CCT Open Interfaces.....................................................9 Prerequisites ..........................................................................................................9 Basic Outline of an Application ........................................................................9 CCT Login ...............................................................................................................9 Method Call...........................................................................................................10 Asynchronous Events .......................................................................................10 Notification Producer.....................................................................................10 Notification Consumer...................................................................................11 Open Interfaces Reference Client Eclipse Project.................................11 SOA CXF Tutorial Lite Example ?...............................................................12 Communication Control Toolkit Open Interfaces Object Model ................12 The SSO object ................................................................................................12 The Address object ........................................................................................13 The Terminal object........................................................................................14 The Contact object..........................................................................................16 The Connection object ..................................................................................17 The TerminalConnection object..................................................................18 Object specializations ...................................................................................20 State transition diagrams..............................................................................21 Reference Information ...........................................................................................23 FAQs.......................................................................................................................23 Call attached data limitations ..........................................................................23 Intrinsics Limitations .........................................................................................23 Security..................................................................................................................23 Open Interfaces SDK Reference .........................................................................25

-1-

Open Interfaces CCT SDK

Nortel

What is the Nortel Open Interfaces CCT SDK?


A series of SOAP 1[1] based Open Interfaces will be provided to 3rd parties to communication enable their applications based on the SOA 2[2] architecture. These web services will be SOAP based allowing applications and customers to discover the functionality offered by each Web Service 3[3]using the WSDL 4[4]provided. Customers will be able to use these services to create agent tools or combine these services with additional 3rd Party services (Google, Amazon, Microsoft...) to create the next generation of Web 2.0 applications. These web services are hosted on the CCT server and require that the CCT SOA settings be configured and enabled on the CCT server. These web services can be optionally configured to use TLS. If this functionality is enabled the customer will be required to provided the necessary certificates. Please refer to the Nortel Contact Center Commissioning Guide in the section see Related Document for details on how to configure Open Interfaces on the CCT server. When SOA is configured and enabled on CCT a list of services can be obtained through the splash screen at the following location, where the <CCT HostName> is the host name of the CCT server. http:// <CCT HostName>:9090 Each service is defined by a WSDL. This WSDL (Web Service Definition Language) is a machine readable description of the functionality being offered by this web service. Various technologies use this WSDL to interrogate the web service and create the relevant proxies to send and receive SOAP messages with the web service. In general the associated WSDLs for all services can be obtained at the following location where <Service Name> represents the name of the requested services i.e. SessionService http:// <CCT HostName>:9080/SOAOICCT/services/<Service Name>?wsdl

SOAP is an industry-accepted W3C specification used to describe messages (XML documents and their attachments) so that they can be sent across a network.
A SOA is a collection of services. A service is a function that is well-defined, self-contained, and does not depend on the context or state of other services. These services communicate with each other. 3[3] A Web service is an application that accepts XML-formatted requests from other systems across a network (Internet or intranet) using lightweight, vendor-neutral communications protocols. 4[4] WSDL is the Web Services Description Language. WSDL provides a grammar for describing services as a set of endpoints that exchange messages. A WSDL document serves as a language and platform-agnostic (XML) description of one or more services. It describes the services, how to access them, and what type of response (if any) to expect. A WSDL document can be either privately exchanged or posted to a UDDI registry (either public or private) to allow broader access.
2[2]

1[1]

-2-

Open Interfaces CCT SDK

Nortel

What is in the Open Interfaces?


The Open Interfaces are installed on your Nortel Communication Control Toolkit server but require that associated Open Interfaces license before they can be enabled, see Nortel_Contact_Center_Commissioning for configuring services. These services supplement your existing tools to simplify communication control development.

This documentation is for the CCT Open Interfaces which are related to the following version of the contact centre. Version Build 7.0 7.0.1.142 The specific version of each service can be found by going to the splash an locating the service, the version is detailed in the header of the table Service Method List i.e. for the AddressService the table can be found @ http://47.166.94.66:9090/Services.jsp?servicename=AddressService Please refer to the Developer Program web site for the latest version of all documentation.

Advantages of SOA
SOA is an architectural style whose goal is to achieve a loose coupling among interacting software agents. This means that applications existing on different Operating Systems written in different Operating Systems written in different programming languages can communicate and exchange data with each other. The Open Interfaces provides a number of basic features that make it easier to deploy a variety of applications. These features include: zero deployment SOA has a loose coupling of services with operating systems, programming languages and other technologies and hence does not place additional requirements on the client to download Nortel libaries technology agnostic SOA is not associated with a specific OS, programming language or technology and hence leaves the clients free to develop in their language(s) of choice. Common integration point SOA is becoming a common integration technology between different technologies and applications .

-3-

Open Interfaces CCT SDK

Nortel

SDK contents
The SDK contains the following elements:

application programming interface documentation installed reference client source code for reference client implementations Tutorial for creating a client using flex technology.

Reference Client
The CCT Open Interfaces contains a reference client that can be used to test the web services. This reference client is similar in design to the .Net CCT reference client and allows users to exercise the majority of the call control functionality available through the web services. The reference client can be found at \Open Interfaces CCT SDK\reference client\OI_RefClient This reference client can be launched using the RefClient.bat. Once launched the reference client can be configured to point to the CCT server, by accessing the Preferences file menu and entering the CCT server name the configured port name and whether this service has been configured to use TLS. Once the OI reference client has been configured to point to the CCT server hosting the Open Interfaces the user will need to log in using the correct CCT login in credentials Parameter Description Username A windows user that has been imported into CCT Password Domain Password associated with the windows user The name of the server or domain on which the user has been registered.

SDK support
Support for the SDK APIs is supplied by the Developer Partner Program. For more information about contacting support personnel, see Contacting support.

-4-

Open Interfaces CCT SDK

Nortel

Related Documents
The following table lists documents that contain more information about the Open Interfaces: The following table lists documents that contain more information about the Communication Control Toolkit: For information about Security considerations Planning and engineering requirements See Nortel Contact Center Security (NN44400-612) Nortel Contact Center Planning and Engineering (NN44400-210) Nortel Contact Center Engineering Requirements (NN44400-211) Nortel Contact Center Installation (NN44400-311) Nortel Contact Center Commissioning (NN44400-312) Nortel Contact Center Upgrade and Patches (NN44400-410) Nortel Contact Center Troubleshooting (NN44400-712)

Installing, upgrading, and maintaining the Communication Control Toolkit server software

Troubleshooting problems

-5-

Open Interfaces CCT SDK

Nortel

Contacting Support
If you are a Developer Partner, contact the Developer Support personnel through the following e-mail address: nt4cti@nortel.com. For details about creating new Developer Partner memberships or renewing existing memberships, contact the Developer Support personnel through the following e-mail address:devprog@nortel.com. For details about the Developer Partner Program, see http://www.nortel.com/prd/dpp/.

-6-

Open Interfaces CCT SDK

Nortel

What are the different Services?


There are two types of APIs included in the Communication Control Toolkit OI SDK:

high functionality client application using the Full API simple client application using the Lite API

Each of the above APIs has its own client reference implementation. These API client reference implementations include source code, enabling you to write your own Communication Control Toolkit SDK API Clients.

Which API to use?


The following is a summary of the different features included in each API. Essentially the API can be broken into two groupings, the full API which exposes all the functionality of the full call model and the lite API which offers a simpler call mode. Both these APIs reduce the complexity over traditional APIs Both these APIs closely match the features offered by the existing .Net CCT SDK and should be familiar to users who have experience using this SDK.

Full API features


The full API offers a complete feature set that exposes the full call model to the client. This type of functionality is often required when creating a complex client of complex CCT server base application. Main points of the API are;

complete feature set suitable for both complex client or complex CCT server based solutions

The following is a list of services that comprise of the Full API: Service Name
SOAOICCT_AddressService SOAOICCT_AgentService SOAOICCT_AgentTerminalConnectionService SOAOICCT_AgentTerminalService SOAOICCT_ConnectionService SOAOICCT_ContactService SOAOICCT_MetricsService SOAOICCT_RoutePointAddressService SOAOICCT_RoutePointConnectionService SOAOICCT_TerminalConnectionService SOAOICCT_TerminalService SOAOICCT_UserService SOAOICCT_NotificationProducer SOAOICCT_NotificationConsumer

-7-

Open Interfaces CCT SDK

Nortel

Lite API features


The Lite API offered by the Session Service offers a subset of functionality from the Full API that is typically used in rapid client or simple server based solutions. The SessionService abstracts the client from the full call model allowing them to work with the more familiar concept of Agents, Addresses and Terminal without requiring an in-depth knowledge of Connections and Terminals Connections Main points of the API are;

rapid client or simple server based solutions easy to use, ideal for form or non-form based integrations reduced feature set of Full API

The following is a list of services that comprise of the Full API: Service Name
SOAOICCT_SessionService SOAOICCT_NotificationProducer SOAOICCT_NotificationConsumer

-8-

Open Interfaces CCT SDK

Nortel

Programming with the CCT Open Interfaces


There are may different applications and technologies that can be used to create applications that use the CCT Open Interfaces. Although the actual implemantion may differ from technology to technology the basic steps followed will be similar. Clients can communicate with the Web Services directly through SOAP messaging or through a proxy layer. As each technology has a different approach to interfacing to the web services it is left to specific tutorials located in the SDK or online to detail how to import the services into a client application.

Prerequisites
The following assumptions are made. 1. That the CCT and the CCT Open Interfaces are configured an running. Please refer to the Nortel Contact Center Commissioning guide on how to configure the web services. 2. That the developers are both familiar with their choice of technology and how that technology integrates with web services.

Basic Outline of an Application


Before a 3rd Party Application will be able to access the call control functionality of the Open interfaces it will typically follow these steps; Import the web services into their development environment or applications. This involves a proxy layer being generated from which application method calls are converted to SOAP request. Alternatively an application may create the SOAP messages directly. The application will need to login into CCT to receive a valid Single Sign On (SSO) Token. Once the application has obtained a valid SSO token it will use it in all subsequent calls to the Open Interfaces. This SSO token is used to validate an applications session. The application can then register an endpoint to receive asynchronous messaging from the CCT Open Interfaces for this session.

CCT Login
Before the service can be used the developer must first receive a Single Sign On (SSO) token that will be used for all subsequent calls to the service. To receive this token the developer must supply the required authentication details; Username The user will need to have imported either a windows or domain user into the CCT system Password a password associated with the supplied windows username. Domain the domain of the windows user that was imported. (or server name if user is created locally on CCT server)

-9-

Open Interfaces CCT SDK

Nortel

When the user logs in successfully they receive an sso token that associates a session with the user. This session is used to validate subsequent method calls with a specific session and associate any registered notifications with a specific session. Each session has a time out associated with it. The default for a Session timeout is 2 hours but can be configured using the OI configuration screen. Each time the service is accessed this timeout is reset.

Method Call
Third party applications wishing to access the call control functionality of the CCT Open Interfaces will issue SOAP messages directly or through a proxy layer to the services.

Asynchronous Events
Historically with web-services in a client server environment where a client wants to be kept up to date with status on the server, this was realized through polling. i.e. the client would periodically poll the server for its current status. For example, if a soft phone application wants to know when there was a change in state of the phone conversation, the following steps would occur for a polling approach; The client asks server if any changes in call The server responds indicating no changes. The client asks server if any changes in call The server responds indicating no changes. This continues until at some point after the call changes state, the server responds indicating a change in state and the client can then act on this change.

This approach isnt very efficient. If the time between polls is small then CPU usage and network traffic increases. If there are more than one client/consumer, the server/producer can get saturated process client requests.

The solution to this problem is web services notifications. Instead of periodically asking the producer if there are any changes, we make an initial call asking the producer to notify the consumer whenever a certain event occurs. The CCT Open Interfaces relies on the WS-Notification standard to deliver asynchronous notifications to registered clients. There are two principle parts to this solution the Notification Producer and the Notification Consumer. Basically, notification producers have to expose a subscribe operation that notification consumers can use to request a subscription. Consumers, in turn, have to expose a notify operation that producers can use to deliver the notification.

Notification Producer
A Notification Producer is capable of producing a set of Notification messages. A NotificationProducer accepts incoming Subscribe requests. Each Subscribe request contains a reference to a NotificationConsumer and identifies the subset of the Notifications the NotificationProducer should produce. This subset can be described

- 10 -

Open Interfaces CCT SDK

Nortel

by identifying one or more boolean filters, including filtering by Topic, as discussed in [WS-Topics]. Topics are used to represent the set of items of interest for subscription. The NotificationProducer agrees to produce Notification Messages as requested in the Subscribe request, or returns a fault if the subscription cannot be handled. The user as the choice of registering for all events or a specific list of events, for performance reasons it is recommended that the user registers only for events they are interested in.

Notification Consumer
A Notification Consumer represents the endpoint to which the Notification Producer sends events. The client application implements the Notification Consumer web service based on the Notification Consumer WSDL. The client application then subscribes for events i.e. contact state changes, with the Notification Producer. When an event occurs the producer creates the appropriate notification message and determines what consumers have registered interest in that event from its list of subscriptions. Finally, the producer invokes the notify operation of the consumer passing the notification message as parameter. Please note that the Notification service requires ports being established between the Server and the Client machines, this may require firewall configuration changes.

Open Interfaces Reference Client Eclipse Project


This SDK contains a reference implementation of the Open Interfaces Reference Client. This reference implementation shows how the CCT Open Interfaces can be called from a java client. This project contains the class SOARefClient.java that is used to launch the Reference Client. This client is similar to the reference client available in the CCT .Net SDK and hence should be familiar to existing CCT users. To launch this project select the class SOARefClient.java select Run As\Java Application and enter the following program arguments; -Djava.util.logging.config.file=config.soa.client/logging.properties Djavax.net.ssl.trustStorePassword=123123 Djavax.net.ssl.trustStore=./config.soa.client/trustedCA.keystore Dcxf.config.file=SecureClient.cxf

The project can be obtained from the following directory Tutorial Location
OI Reference Client /Open Interfaces CCT SDK/reference client/project

- 11 -

Open Interfaces CCT SDK

Nortel

SOA CXF Tutorial Lite Example ?


This tutorial describes how to validate a user against the CCT Open Interfaces, create a new contact, create a screen-pop application, and change the state of an agent. The project can be obtained from the following directory Tutorial Location
SOA CXF Tutorial /Open Interfaces CCT SDK/Tutorials/SOA_CXF_Tutorial.doc

Communication Control Toolkit Open Interfaces Object Model


This section will provide an overview of the main object types used when programming with the Communication Control Toolkit SDK, namely:

The SSO object Address objects Terminal objects Contact objects Connection objects TerminalConnection objects

Note: The objects described here are from the Communication Control Toolkit Full API. Similar objects, with slightly different names, exist in the Lite API.

The SSO object


The SSO object represents a client connection to the Open Interfaces and is the starting point for gaining access to Open Interfaces SDK functionality. The client application 1. creates an authenticationLevel object 2. sets properties to indicate the address of the server and which user credentials to use when connecting 3. calls the logInToCCTServer on the SessionService (or UserService) to establish a connection to the Open Interfaces server A SSO object is the result of a successful connection to the server.

The SSO object is required for all subsequent calls to the Open Interfaces. The SSO is used to verify that the user has been authenticated and to associate the user with their current session.

- 12 -

Open Interfaces CCT SDK If there is no activity related to this SSO token for 2 hours (see configuration) the session will timeout and subsequent calls using this session will fail. If the user has registered for events then a SessionTermination imminent event will notify that the session is about to expire and must be refreshed. If the Open Interfaces service is interrupted (planned or unplanned) the session will be invalidated and an exception will be thrown the next time this session is used.

Nortel

For more information, see UserAddressService, SessionService

The Address object


The Address object represents a logical communications endpoint. Examples of addresses are a telephone number, an e-mail address, and a SIP URL. Address objects are remote objects that reside on the Communication Control Toolkit server that can be accessed by the AddressService. Other specializations of an address may exist and can be accessed through their respective services (i.e. RoutePointAddressService) As described above, each client is granted access to a set of addresses that is directly controlled by the Communication Control Toolkit server. In addition, as contacts are created within the Communication Control Toolkit server, the client application may gain visibility to additional addresses that are associated with these contact objects; however, unless the address has been specifically assigned to the client, the client will not be able to exercise any control over the address (the IsControlled property can be queried to determine this). An Address object provides the following types of interfaces that are used by the client application to manipulate the object, and thereby control the underlying communications infrastructure:

object properties that are queried and/or set by the application (for example, the "do not disturb" status of the address) methods that are invoked by the client to perform some function (for example, originate a call from this address) events for which the application can register handlers to be notified of changes related to the address or other objects related to it (for example, a change in value of one of the address properties, or a change in state of one of the connections to this address)

Like many of the object interfaces defined by the Open Interfaces, the Address object contains a special GetCapabilities method. This method returns an object that is used to determine what properties and/or methods the object currently supports. For example, in the case of an AddressService, the Capabilities object is defined by the AddressCapabilities complex type. The Capabilities object contains a set of Boolean flags that map to specific properties and/or methods found on the parent object. These flags indicate whether the

- 13 -

Open Interfaces CCT SDK

Nortel

corresponding property or method is used by the application. Some of the flags defined by the Capabilities object are static in nature (for example, the address never supports Do Not Disturb functionality), or they are dynamically updated by the Communication Control Toolkit server in response to changes in the state of the object. The Capabilities object is used by the application to adjust the user interface to match the set of capabilities provided by the Address object. The Address object defines a rich set of events so that the client application can listen for changes in the Communication Control Toolkit server that are related to the address. The following events are available on the Address object:

Address property changed event Indicates a change in one of the properties of the address object. Connection state changed and remote connection state changed events Separate events are provided for local and remote connections. Local connections are those connections that are directly related to the address, whereas remote connections are those that are related to the address through an existing contact and thereby represent the remote leg of a call. More discussion regarding connection objects will follow in a later section. Connection property changed event This event signals a change in a property of one of the local connections currently associated with the address. Contact property changed event This event signals a change in a property of a contact object associated with the address.

Based on the client application, not all of the events need to have event handlers registered against them; however, Nortel recommends that you register a connection state changed event handler. Nortel also recommends that you register an address state changed event handler on the session service. This enables addresses to be taken out of service or entirely removed from the configuration. For more information, see AddressService, SessionService

The Terminal object


A Terminal object represents a physical communications endpoint (including software applications). Some examples of terminals are

telephone set SIP softphone e-mail client IVR line.

Like Address objects, Terminal objects are remote objects that reside on the Communication Control Toolkit server. The objects can be accessed through the TermnialService. This base TerminalService defines a terminal that models a common business set (also known as a Knowledge Worker set).

- 14 -

Open Interfaces CCT SDK The capabilities supported by a particular terminal are obtained through the TerminalCapabilities complex type, returned by calling the terminal service GetCapabilities method.

Nortel

The Communication Control Toolkit Open Interface also defines a specialization of the Terminal object used to model a contact center agent set. The AgentTerminal service derives from the base Terminal service to provide the expanded functionality of the contact center agent set. Since the AgentTerminal service expands the set of properties and methods available to the client, the Capabilities property for an agent terminal returns an AgentTerminalCapabilities complex type, rather than the TerminalCapabilities complex type that is returned for a normal terminal. Regardless of the particular type of terminal being modeled, all terminals require an address to be associated with them to be useful. The Terminal object provides a RelatedAddresses property that returns the set of addresses defined to be related to the terminal. This information is used by the client application to provide an intelligent interface. This intelligent interface allows you to select the primary terminal and address combination used to initiate outbound contacts. Like the Address object, the Terminal object also defines a set of events on which the client application registers event handlers, although the set is somewhat smaller. The following events are available on the Terminal object:

Terminal property changed event Indicates a change in one of the properties of the Terminal object. Terminal connection state changed event Indicates a change in the state of one of the terminal connections associated with the terminal. To find out more about Terminal Connection objects, see TerminalConnectionState.

Traditional voice Terminal objects (i.e. those that represent a physical phone set) are statically configured on the Communication Control Toolkit server and are assigned to the CCT user via the administration console. Other Terminal objects that represent multimedia terminals or SIP-based telephony clients are dynamically created when a Contact Center agent logs in (refer to the Agent service for more information). Thus, in this environment it is required that a Open Interfaces client application register for Terminal state change event in order to become aware of these dynamically created Terminal objects. Similarly, the Address objects assigned to these Terminals are also dynamically created and require an event handler installed on the ISession.AddressStateChanged event. Note: Because of their dependence on the Nortel Contact Center functionality, these multimedia Terminal objects will never be available in a Knowledge Worker (non Contact Center) environment. For more information, see TerminalService

- 15 -

Open Interfaces CCT SDK

Nortel

The Contact object


A Contact object models a communications session. Some examples of contacts are:

a telephone call an instant message session a video call

Client applications become aware of the existence of a contact through various methods:

a notification received by a registered endpoint on the "contact entering scope" event of the applications Session object a notification received by a registered endpoint on the "connection state changed" event of one of the applications Address objects a notification received by a registered endpoint on the "terminal connection state changed" event of one of the applications Terminal objects the return value of a method called on one of the remote objects associated with the session (for example, the Originate method on an Address object)

A Contact object is a remote object residing on the server, which is accessible through the ContactService. The Contact object implements a GetCapabilities method, which returns a ContactCapabilities complex type. The Capabilities complex type allows the client application to determine what functions the Contact object supports. Unlike the Address and Terminal objects, Contact objects do not directly provide any events to the client. Instead, changes to the properties of a Contact object are received by the application through a "contact property changed" event handler registered on one of the clients Address objects. This approach allows the client to install the event handler prior to actually receiving the contact, thereby eliminating the possibility of missing contact-related events in the time period between when the client first learns of the existence of the contact and when it has an event handler registered on it. The most notable property of the Contact object is the ability to associate arbitrary data with the contact. This data can be accessed through the Data property on the Contact service as an array of key/value pairs. or optionally as Strings or Binary data,, and it remains associated with the contact for the life of the contact. The contact data can be accessed and/or modified by any client that has access to the contact. If a contact is transferred from one address to another, the contact-related data moves with the contact. Client applications can use this contact data to record such things as caller account information with the contact so that when it is moved from department to department, the caller does not need to repeat or reenter it. For more information, see ContactService.

- 16 -

Open Interfaces CCT SDK

Nortel

The Connection object


A connection represents an association between a contact and an address. Typically, a contact has two or more connections. For example, in a phone call between two parties A and B (where A and B are addresses), there is

IAddress object A IAddress object B IContact object C, representing the call IConnection object CA, representing the relationship between address A and contact C IConnection object CB, representing the relationship between address B and contact C

The following diagram shows the Connection object relationships:

The Connection object is a remote object residing on the Communication Control Toolkit server that can be accessed through the Connection service. The Connection object, coupled with the TerminalConnection Service, provides the majority of the state information and control capabilities found in the Communication Control Toolkit Open Interfaces. The client application learns about new connections through the event handlers that the client has registered on the connection state changed events of the sessions Address objects. If the client receives a state change event for a connection it has never seen before, it can assume that the connection represents a new contact on the associated Address object. No one connection state can be expected to signal a new connection on an address. The client application can also query the address object directly for an array of current connections on that address. This is useful following

- 17 -

Open Interfaces CCT SDK

Nortel

connection to the Communication Control Toolkit server for determining the current state of affairs for the addresses assigned to the clients session. As events occur in the Communication Control Toolkit server affecting the state of the connection, state change events are relayed to the client. The client, upon receiving these events, can perform whatever processing is necessary, such as updating a display, enabling buttons, and so on. One important state change that the client must watch for is a transition to the Disconnected state. This state transition signals the client that the associated connection object is no longer valid and all references to it should be discarded. If the client application is monitoring remote connection objects associated with its addresses, it is important to note that the client is not guaranteed to receive a Disconnected event for any remote connections, since local connections from the contact to the address may be torn down before the remote connection. In this case, the removal of the local connection should cause the client to discard any references to associated remote Connection objects. The capabilities associated with the Connection object, defined by the ConnectionCapabilities complex type, are highly state dependent. Capabilities that are enabled while the connection is in one state may become disabled in another state, and vice versa. Due to this state dependence, the client application should use the connection capabilities object provided with each state change event to determine what capabilities are currently enabled. For more information, see Connection Service

The TerminalConnection object


A terminal connection represents the relationship between a terminal and a connection. For example, A calls B. B has a desk phone (Bd) and a mobile phone (Bm) (both of which are configured with Bs address). B answers the call on his desk phone (Bd). The relationship between the terminal (Bd) and the connection is represented by a terminal connection. The following diagram expands the diagram shown in the previous section to include the following terminal connection-related objects:

ITerminal object T1 ITerminal object T2 ITerminalConnection object TCCA-T1, representing the relationship between Connection object CA and Terminal object T1 ITerminalConnection object TCCB-T2, representing the relationship between Connection object CB and Terminal object T2

The following diagram depicts the TerminalConnection object relationships:

- 18 -

Open Interfaces CCT SDK

Nortel

The TerminalConnection is modeled in the Communication Control Toolit Open Interface as a remote object that implements the TerminalConnection interface. Like most Communication Control Toolkit objects, it has a GetCapabilities method that returns an object that implements the TerminalConnectionCapabilities complex type. This object allows the application to determine what operations the terminal connection may be able to perform at the current instant in time. Unlike connections, terminal connections for remote legs of a contact are not visible to the client session. Thus, a client session having access to address A and terminal T1 has a view of the Communication Control Toolkit objects that is a subset of those shown in the above diagram. The following diagram depicts the Session View of Communication Control Toolkit objects: ??

Remote terminal connections are not modeled in the Communication Control Toolkit. This is because real-world systems typically do not have visibility all the way back to the physical set used for the far end of the call. In the case where a client session is granted access to both terminals and addresses involved in a contact, the session is able to see both ends of the call, but it has this visibility due to its access to both terminals involved in the call only. State change event handling for TerminalConnection objects is very similar to that for Connection objects with the exception that there are no event notifications for remote terminal connections. To receive terminal connection state changed events, the client application must register an event handler on the terminals terminal connection state changed event. Changes in the state of a terminal connection usually cause a change in the enabled capabilities for the terminal connection. For this reason, the client application should use the terminal connection capabilities provided with each state transition event to update itself with the current set of capabilities for the terminal

- 19 -

Open Interfaces CCT SDK

Nortel

connection. A transition to the Dropped state is the signal to the client application to discard all references to the terminal connection. For more information, see TerminalConnection Service.

Object specializations
The Communication Control Toolkit SDK interfaces object generally model the most common or basic form of the object. There are some specializations of the base interfaces defined in the Communication Control Toolkit SDK API for terminals and addresses that extend or modify the base functionality.

Agent Terminals
The base Terminal service models a standard physical terminal. An extension of this service is defined specifically for modeling a terminal used by an agent in a contact center. The AgentTerminal service extends the Terminal service to provide the additional functionality available on a contact center agent terminal. In support of the AgentTerminal service, additional service extensions include

AgentTerminalCapabilities Extends TerminalCapabilities to include additional capabilities properties to cover the additional functionality found in the AgentTerminal service. AgentTerminalConnection Extends TerminalConnection to model the association between a Connection object and an agent terminal. The AgentTerminalConnection interface provides additional functionality for controlling terminal connections to an agent terminal.

Route Point Addresses


A route point address is a special address type used in contact center environments for routing incoming contacts. Route point addresses do not have any terminal relationships and cannot directly originate outbound contacts. Contacts received at a route point address are given various treatments (for example, ringing, silence, music) while the contact center locates an available agent to handle the contact, at which point the contact can be routed to the agent. The Communication Control Toolkit Open Interfaces defines an extension of the Address service, named RoutePointAddress, for modeling a route point address. In support of the RoutePointAddress service, additional interface extensions include

RoutePointConnection Extends Connection to model the association between a Contact object and a route point address. The

- 20 -

Open Interfaces CCT SDK

Nortel

RoutePointConnection service provides additional functionality for controlling connections to a route point address. To determine what type of object it is dealing with, a client application uses standard run-time type checking of the received object.

State transition diagrams


Connection and TerminalConnection objects change state based on state computer logic in the Communication Control Toolkit server. This section provides the state transition diagrams to illustrate the legal state transitions for connections and terminal connections. See the Communication Control Toolkit Full API Reference section for detailed descriptions of the various states. The following diagram depicts the Connection state transitions:

Refer to the ConnectionState enumeration for descriptions of the various Connection states.

The following diagram depicts the TerminalConnection state transitions:

- 21 -

Open Interfaces CCT SDK

Nortel

Refer to the TerminalConnectionState enumeration for descriptions of the various TerminalConnection states.

- 22 -

Open Interfaces CCT SDK

Nortel

Reference Information
FAQs
For a complete and up to date list of Frequently Asked Questions please visit the developer partner site.

Call attached data limitations


There is maximum limit of 4 5 k of data to be attached to a contact, please refer to the CCT documentation for further information.

Intrinsics Limitations
It is not recommended that intrinsics should be used to store large quantities of data as it may impact overall performance in the Contact Centre. If these intrinsics are to be accessed using the scripting engine contained in Contact Centre then there are additional limitations to the size and amount of intrinsics that can be associated with a contact, please refer to the scripting documentation for further details.

Security
There are two levels of security for the CCT Open Interfaces. Firstly the web services authenticate whether the user is know and configured and secondly all communication between client and server can be optionally encrypted. User Validation & Authentication: Before the service can be used the developer must first receive a Single Sign On (SSO) token that will be used for all subsequent calls to the service. To receive this token the developer must supply the server details (IP address/CCT server name and port) & the required authentication details; Username Upon registration with the Developer Partner Program (DPP) a developer will receive a user name to allow access to the service. Password a password associated with the supplied username. Domain the domain on which the web service is hosted. When the user submits their username and password to the service it is validated to determine if it is a valid windows user. Depending on the initial configuration of the service this user can be a local windows user on the CCT Server or a windows user on the domain. Once the service has verified that the user is a valid windows user it then checks to see if the user is configured in the CCT console. Once both of these criteria are met the user receives an SSO token representing their current session.
5

This value can vary from Service Provider Implementation i.e. CS1K, CS2k and SIP OCS, please refer to manual for specific limit.

- 23 -

Open Interfaces CCT SDK

Nortel

Each session has a time out associated with it. The default for a Session timeout is 2 hours but can be configured using the OI configuration screen. Each time the service is accessed this timeout is reset. For further information on how to configure the user store and CCT users please consult the section Nortel Contact Center Commissioning.
Encryption:

The client communicates with the server through the use of SOAP messages. These SOAP messages are essentially XML data made up of header and a body. The Open Interfaces CCT can be configured to encrypt these SOAP messages at the transport layer using TLS configuration. To configure TLS an administrator will need to generate a certificate signing request (CSR). The administrator will need to present this CSR to their chosen Certificate Authority (CA) to receive a corresponding certificate. For further information on how to configure TLS please consult the document Nortel Contact Center Commissioning .

- 24 -

Open Interfaces CCT SDK

Nortel

Open Interfaces SDK Reference


The following contains a link to the Java Docs associated with the implementation of the web service. Note Port Number is the default port number used , but is configurable. These services can also be accessed using through the splash screen located at; http://<CCT HostName> :9090 Service Name
SOAOICCT_AddressService

Location
http:// <CCT HostName>:9080/SOAOICC T/services/AddressService?ws dl http:// <CCT HostName>:9080/SOAOICC T/services/AgentService?wsdl http:// <CCT HostName>:9080/SOAOICC T/services/AgentTerminalCon nectionService?wsdl http:// <CCT HostName>:9080/SOAOICC T/services/AgentTerminalServ ice?wsdl http:// <CCT HostName>:9080/SOAOICC T/services/ConnectionService ?wsdl http:// <CCT HostName>:9080/SOAOICC T/services/ContactService?ws dl http:// <CCT HostName>:9080/SOAOICC T/services/MetricsService?ws dl http:// <CCT HostName>:9080/SOAOICC T/services/RoutePointAddress Service?wsdl http:// <CCT HostName>:9080/SOAOICC T/services/RoutePointConnect ionService?wsdl http:// <CCT HostName>:9080/SOAOICC

JavaDoc Location
/Open Interfaces CCT SDK/docs/javadoc/index.html

SOAOICCT_AgentService

/Open Interfaces CCT SDK/docs/javadoc/index.html

SOAOICCT_AgentTerminalConnection Service

/Open Interfaces CCT SDK/docs/javadoc/index.html

SOAOICCT_AgentTerminalService

/Open Interfaces CCT SDK/docs/javadoc/index.html

SOAOICCT_ConnectionService

/Open Interfaces CCT SDK/docs/javadoc/index.html

SOAOICCT_ContactService

/Open Interfaces CCT SDK/docs/javadoc/index.html

SOAOICCT_MetricsService

/Open Interfaces CCT SDK/docs/javadoc/index.html

SOAOICCT_RoutePointAddressService

/Open Interfaces CCT SDK/docs/javadoc/index.html

SOAOICCT_RoutePointConnectionServ ice

/Open Interfaces CCT SDK/docs/javadoc/index.html

SOAOICCT_SessionService

/Open Interfaces CCT SDK/docs/javadoc/index.html

- 25 -

Open Interfaces CCT SDK


T/services/SessionService?ws dl SOAOICCT_TerminalConnectionServic e http:// <CCT HostName>:9080/SOAOICC T/services/TerminalConnectio nService?wsdl http:// <CCT HostName>:9080/SOAOICC T/services/TerminalService?w sdl http:// <CCT HostName>:9080/SOAOICC T/services/UserService?wsdl http:// <CCT HostName>:9080/SOAOICC T/services/NotificationProduc er?wsdl http:// <CCT HostName>:9090/Notificatio nConsumerInterface.wsdl

Nortel

/Open Interfaces CCT SDK/docs/javadoc/index.html

SOAOICCT_TerminalService

/Open Interfaces CCT SDK/docs/javadoc/index.html

SOAOICCT_UserService

/Open Interfaces CCT SDK/docs/javadoc/index.html

SOAOICCT_NotificationProducer

SOAOICCT_NotificationConsumer

- 26 -