Вы находитесь на странице: 1из 32

An Oracle White Paper

September 2012

Oracle Fusion Contact Center


Connector Specification
Oracle Fusion Contact Center Connector Specification

Introduction ....................................................................................... 1
Basic API Specification ...................................................................... 2
Contact Center Toolbar Command API ......................................... 2
Contact Center Toolbar Event API ................................................. 9
Message Formatting ........................................................................ 16
Sample Messages ....................................................................... 16
Process Flows ................................................................................. 20
Login ........................................................................................... 20
Inbound Call Lifecycle ................................................................. 20
Outbound Lifecycle ...................................................................... 20
Single Step Transfer .................................................................... 21
Two Step Transfer (Transfer with Consultation Call) .................... 21
Conference Return to Call ........................................................ 22
Conference Leave Conference ................................................. 22
Resend Sample ........................................................................... 23
Logout ......................................................................................... 23
JavaScript Connector Implementation ............................................. 23
Dependencies ............................................................................. 23
Implement Dynamically Loadable JavaScript File ........................ 24
Implement Custom Connector Object .......................................... 25
Sample JavaScript Connector Class............................................ 26
Implement sendToolbarCommand ............................................... 26
Implement Callback Function Invocations .................................... 27
Special Considerations .................................................................... 28
Assumptions ................................................................................ 28
Password Obfuscation ................................................................. 28
Phone Number Formatting .......................................................... 28
Call Data Mappings ..................................................................... 29
Conclusion ...................................................................................... 29
Oracle Fusion Contact Center Connector Specification

Introduction

This document specifies the Oracle Fusion Contact Center Toolbar Driver functionality
requirements for providers of telephony services to enable integration with Oracle Fusion CRM
Applications. Oracle specifies a set of APIs to enable Computer Telephony Integration (CTI) to
the Oracle Fusion CRM Applications. This consists of a JavaScript API which will allow
integration directly in the browser process.

The Oracle Fusion Contact Center Toolbar is an embedded UI component displayed at the top
of enabled Oracle CRM Application pages. For the purposes of this document we will often
refer to this simply as "the toolbar".

The toolbar provides application users with basic telephony controls and integrates telephony
events with application behavior. For example once an incoming call from a customer is
established the toolbar may automatically create and record a Fusion Interaction based upon
the call data. The toolbar may then automatically perform an application page navigation
based upon analysis of contextual information derived from the call data.

This specification is valid through Oracle Fusion Release 6.

1
Oracle Fusion Contact Center Connector Specification

Basic API Specification


The API specifies a character based message structure for external communications to the Contact
Center Toolbar. The message structure is based upon JavaScript Object Notation (JSON). Refer to
http://www.json.org for additional details.
All values in the tables below in bold print represent literal values that must be matched exactly.

Contact Center Toolbar Command API


The following list of commands represents the detailed structure of the data element of the basic
command structure above.

Login

The Login command signs an Oracle Fusion CRM user into the telephony system.

LOGIN

LITERAL VALUE DESCRIPTION

Operation Login Literal command identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

Password <password> *Refer to password implications. User's telephony system password

ProviderDest <Provider URL> URL for locating remote service provider

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

**<Element Name> <value> ** Series of additional name value pairs required for provider login as
configured in Fusion Contact Center

Logout

The logout command signs out an Oracle Fusion CRM user from the telephony system.

LOGOUT

2
Oracle Fusion Contact Center Connector Specification

LITERAL VALUE DESCRIPTION

Operation Logout Literal command identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

SetReady

The SetReady command sets an Oracle Fusion CRM user ready to receive auto-distributed calls.

SETREADY

LITERAL VALUE DESCRIPTION

Operation SetReady Literal command identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

SetNotReady

The SetNotReady command sets an Oracle Fusion CRM user not ready to receive auto-distributed
calls.

SETNOTREADY

LITERAL VALUE DESCRIPTION

Operation SetNotReady Literal command identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

ReasonCode <reasonCode> The Not Ready reason indicator a.k.a. Break Reason Code.

MakeCall

3
Oracle Fusion Contact Center Connector Specification

The MakeCall command makes an outbound call and connects it with the Oracle Fusion CRM users
phone.

MAKECALL

LITERAL VALUE DESCRIPTION

Operation MakeCall Literal command identifier

Destination <dialString> ***Formatted number to dial

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

HangUp

The HangUp command disconnects an active call.

HANGUP

LITERAL VALUE DESCRIPTION

Operation HangUp Literal command identifier

CallID <callId> Provider specified call identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

OnHold

The OnHold command places an active call on hold.

ONHOLD

LITERAL VALUE DESCRIPTION

Operation OnHold Literal command identifier

CallID <callId> Provider specified call identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

4
Oracle Fusion Contact Center Connector Specification

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

OffHold

The OffHold command resumes a call on hold.

OFFHOLD

LITERAL VALUE DESCRIPTION

Operation OffHold Literal command identifier

CallID <callId> Provider specified call identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

Accept

The accept command accepts a newly delivered call. It answers the phone in a ringing state.

ACCEPT

LITERAL VALUE DESCRIPTION

Operation Accept Literal command identifier

CallID <callId> Provider specified call identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

Ignore

The ignore command ignores the newly delivered call, functionality is provider specific.

IGNORE

LITERAL VALUE DESCRIPTION

5
Oracle Fusion Contact Center Connector Specification

Operation Ignore Literal command identifier

CallID <callId> Provider specified call identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

End

The end command terminates a call at the end of any post call wrap up processing.

ONHOLD

LITERAL VALUE DESCRIPTION

Operation End Literal command identifier

CallID <callId> Provider specified call identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

SingleStepTransfer

The SingleStepTransfer makes an outbound call and transfers a currently active call to the new
outbound call in one action.

SINGLESTEPTRANSFER

LITERAL VALUE DESCRIPTION

Operation SingleStepTransfer Literal command identifier

Destination <dial string> Formatted number to dial

TargetAgent <targetAgent> Provider agent name (for internal transfers)

TargetUserId <targetUserId> Provider user ID (for internal transfers)

TargetExtension <targetExtension> Provider extension (for internal transfers)

CallID <callId> Provider specified call identifier

6
Oracle Fusion Contact Center Connector Specification

*<Data Element <value> Variable number of data elements may be updated


Name>

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

Consult

The Consult command places the currently active call on hold and makes a new outbound call for
consultation.

CONSULT

LITERAL VALUE DESCRIPTION

Operation Consult Literal command identifier

Destination <dial string> Formatted number to dial

TargetAgent <targetAgent> Provider agent name (for internal transfers)

TargetUserId <targetUserId> Provider user ID (for internal transfers)

TargetExtension <targetExtension> Provider extension (for internal transfers)

CallID <callId> Provider specified call identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

Conference

The Conference command conferences an active consultation call with the call on hold.

CONFERENCE

LITERAL VALUE DESCRIPTION

Operation Conference Literal command identifier

CallID <callId> Provider specified call identifier

7
Oracle Fusion Contact Center Connector Specification

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

CompleteTransfer

The CompleteTransfer command transfers a call on hold or in conference to the destination of the
consultation call. Used as the second step of a two-step transfer flow or to leave a conference.

COMPLETETRANSFER

LITERAL VALUE DESCRIPTION

Operation CompleteTransfer Literal command identifier

Destination <dialString> Dial string used for consultation call

CallID <callId> Provider specified call identifier

*<data element <value> Variable number of data elements may be updated


name>

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

Cancel

The Cancel command cancels a consultation call or conference and reestablishes the connection with
the original call.

CANCEL

LITERAL VALUE DESCRIPTION

Operation Cancel Literal command identifier

CallID <callId> Provider specified call identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

8
Oracle Fusion Contact Center Connector Specification

UpdateData

The UpdateData command updates the call data with application derived changes or additions.

UPDATEDATA

LITERAL VALUE DESCRIPTION

Operation UpdateData Literal command identifier

CallID <callId> Provider specified call identifier

*<data element <value> Variable number of data elements may be updated


name>

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

ResendLastEvent

The ResendLastEvent command requests the provider to send the last event or sequence of events in
case there is an active call.

RESENDLASTEVENT

LITERAL VALUE DESCRIPTION

Operation ResendLastEvent Literal command identifier

UserName <agentId> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceId> Device identifier as configured in the Oracle Fusion Contact Center

RequestId <requestId> The unique message identifier within the scope of the session

Contact Center Toolbar Event API


BASIC EVENT STRUCTURE

LITERAL VALUE DESCRIPTION

sender ToolbarGateway Literal value hard coded to ToolbarGateway. In the future this will
support a provider specified identifier.

type toolbarResponse Literal identifies this message as a Contact Center Toolbar event

9
Oracle Fusion Contact Center Connector Specification

usid <sessionID> Session identifier as established by the provider during handshake

sourceId <originID> Origin identifier as established during handshake

data <dataMap> JSON formatted sequence of name/value pairs that specify event
details

The following list of events represents the detailed structure of the data element of the basic event
structure above.

AgentLoggedOn

The AgentLoggedOn event is an agent state change to indicate a successful login to the telephony
provider.

AGENTLOGGEDON

LITERAL VALUE DESCRIPTION

EventName AgentLoggedOn Literal event identifier

UserName <agentID> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceID> Device identifier as configured in the Oracle Fusion Contact Center

MessageType AgentEvent Literal identifies the message type

AgentLoggedOut

The AgentLoggedOut event is an agent state change to indicate logged out of the telephony provider.

AGENTLOGGEDOUT

LITERAL VALUE DESCRIPTION

EventName AgentLoggedOut Literal event identifier

UserName <agentID> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceID> Device identifier as configured in the Oracle Fusion Contact Center

MessageType AgentEvent Literal identifies the message type

AgentReady

The AgentReady event is an agent state change to indicate distributed call availability.

10
Oracle Fusion Contact Center Connector Specification

AGENTREADY

LITERAL VALUE DESCRIPTION

EventName AgentReady Literal event identifier

UserName <agentID> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceID> Device identifier as configured in the Oracle Fusion Contact Center

MessageType AgentEvent Literal identifies the message type

AgentNotReady

The AgentNotReady event is an agent state change to indicate distributed call unavailability.

AGENTLOGGEDOUT

LITERAL VALUE DESCRIPTION

EventName AgentNotReady Literal event identifier

UserName <agentID> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceID> Device identifier as configured in the Oracle Fusion Contact Center

MessageType AgentEvent Literal identifies the message type

AgentBusy

The AgentBusy event is an agent state change to indicate unavailability due to call related processing.

AGENTBUSY

LITERAL VALUE DESCRIPTION

EventName AgentBusy Literal event identifier

UserName <agentID> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceID> Device identifier as configured in the Oracle Fusion Contact Center

MessageType AgentEvent Literal identifies the message type

11
Oracle Fusion Contact Center Connector Specification

Delivered

The Delivered event indicates a new call has been delivered to the agent.

DELIVERED

LITERAL VALUE DESCRIPTION

EventName Delivered Literal event identifier

UserName <agentID> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceID> Device identifier as configured in the Oracle Fusion Contact Center

MessageType InteractionEvent Literal identifies the message type

CallId <callID> Unique call identifier as specified by the provider. Used by the toolbar
for identification of future call commands.

ANI <ANI> Automatic Number Identification

DNIS <DNIS> Dialed Number Identification Service

InteractionType <interactionType> Identifies type of call. Valid values are:

InboundCall

OutboundCall

PreviewCall

WebCallback

ConsultationCall

Direction <direction> Indicates call direction. Valid values are:

In

Out

Media Phone Literal to indicate telephony channel.

*<Call Data <value> A variable number of provider and IVR collected data elements
Element>

Established

The Established event indicates a call to the agent is connected and active. For example a new call has
been answered or taken off hold.

ESTABLISHED

LITERAL VALUE DESCRIPTION

12
Oracle Fusion Contact Center Connector Specification

EventName Established Literal event identifier

UserName <agentID> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceID> Device identifier as configured in the Oracle Fusion Contact Center

MessageType InteractionEvent Literal identifies the message type

CallId <callID> Unique call identifier as specified by the provider. Used by the toolbar
for future call commands.

InteractionType <interactionType> Identifies type of call. Valid values are:

InboundCall

OutboundCall

PreviewCall

WebCallback

ConsultationCall

Media Phone Literal to indicate the telephony channel

OnHold

The OnHold event indicates an active call has been placed on hold.

ONHOLD

LITERAL VALUE DESCRIPTION

EventName OnHold Literal event identifier

UserName <agentID> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceID> Device identifier as configured in the Oracle Fusion Contact Center

MessageType InteractionEvent Literal identifies the message type

CallId <callID> Unique call identifier as specified by the provider. Used by the toolbar
for future call commands.

InteractionType <interactionType> Identifies type of call. Valid values are:

InboundCall

OutboundCall

PreviewCall

WebCallback

ConsultationCall

13
Oracle Fusion Contact Center Connector Specification

Media Phone Literal to indicate the telephony channel

OnConsultation

The OnConsultation event indicates that a consultation call has been initiated on behalf of the agent.

ONCONSULTATION

LITERAL VALUE DESCRIPTION

EventName OnConsultation Literal event identifier

UserName <agentID> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceID> Device identifier as configured in the Oracle Fusion Contact Center

MessageType InteractionEvent Literal identifies the message type

CallId <callID> Unique call identifier as specified by the provider. Used by the toolbar
for future call commands.

InteractionType <interactionType> Identifies type of call. Valid values are:

InboundCall

OutboundCall

PreviewCall

WebCallback

ConsultationCall

Media Phone Literal to indicate the telephony channel

OffConference

The OffConference event indicates a call with a consultant in consultation or conference has been
disconnected. This should occur as the result of the consultant hanging up or the toolbar initiating a
Cancel command.

OFFCONFERENCE

LITERAL VALUE DESCRIPTION

EventName OffConference Literal event identifier

UserName <agentID> Agent identifier as configured in the Oracle Fusion Contact Center

14
Oracle Fusion Contact Center Connector Specification

DeviceName <deviceID> Device identifier as configured in the Oracle Fusion Contact Center

MessageType InteractionEvent Literal identifies the message type

CallId <callID> Unique call identifier as specified by the provider. Used by the toolbar
for future call commands.

Released

The Released event indicates a call with an agent has been disconnected.

RELEASED

LITERAL VALUE DESCRIPTION

EventName Released Literal event identifier

UserName <agentID> Agent identifier as configured in the Oracle Fusion Contact Center

DeviceName <deviceID> Device identifier as configured in the Oracle Fusion Contact Center

MessageType InteractionEvent Literal identifies the message type

CallId <callID> Unique call identifier as specified by the provider. Used by the toolbar
for future call commands.

InteractionType <interactionType> Identifies type of call. Valid values are:

InboundCall

OutboundCall

PreviewCall

WebCallback

ConsultationCall

Media Phone Literal to indicate the telephony channel

End

The End event indicates a call with an agent has been terminated.

END

LITERAL VALUE DESCRIPTION

EventName End Literal event identifier

UserName <agentID> Agent identifier as configured in the Oracle Fusion Contact Center

15
Oracle Fusion Contact Center Connector Specification

DeviceName <deviceID> Device identifier as configured in the Oracle Fusion Contact Center

MessageType InteractionEvent Literal identifies the message type

CallId <callID> Unique call identifier as specified by the provider. Used by the toolbar
for future call commands.

InteractionType <interactionType> Identifies type of call. Valid values are:

InboundCall

OutboundCall

PreviewCall

WebCallback

ConsultationCall

Media Phone Literal to indicate the telephony channel

Message Formatting
The message format is based upon JSON referenced at www.json.org. All the commands and events
are represented as a single JSON object. These commands and events begin and end with opening and
closing braces. All message data is represented as strings delimited by double quotes. The name-value
pairs are separated by a comma. The data in the name-value pair is separated by a colon. The data
portion of the message structure contains a nested JSON formatted string. Sample messages for each
command and event will be provided in the next section.

Sample Messages
This section contains sample messages for each command and event. The data value of each message
is highlighted in bold.

Command Formats

Command: Login
{"MessageType":"Request","Operation":"Login","UserName":"shawn1","Password":"EBDC373E304
ACF0B1DB5CDD41C680723O3nQA5TSjf+0Nr2mEoUiLQ==","DeviceName":"null","Company":"
pmdemo","ProviderDest":"https://demo.contactondemand.com:443/CCA/services"}
Command: Logout
{"DeviceName":"null","Operation":"Logout","RequestID":"113","UserName":"shawn1","CallID":"30
045035514571","MessageType":"Request"}
Command: SetReady
{"MessageType":"Request","Operation":"setReady","UserName":"shawn1","RequestID":"100","Devic
eName":"2000"}

16
Oracle Fusion Contact Center Connector Specification

Command: SetNotReady
{"MessageType":"Request","Operation:setNotReady,UserName:shawn1,RequestID:100,DeviceName:
2000"}
Command: MakeCall
{"MessageType":"Request","Operation":"MakeCall","UserName":"shawn1","RequestID":"103","Devi
ceName":"2000","Destination":"+0015402262747"}
Command: OnHold
{"Operation":"OnHold","DeviceName":"null","RequestID":"104","UserName":"shawn1","CallID":"3
0045035514527","MessageType":"Request"}
Command: OffHold
{"Operation":"OffHold","DeviceName":"null","RequestID":"105","UserName":"shawn1","CallID":"3
0045035514527","MessageType":"Request"}
Command: Consult
{"Operation":"Consult","DeviceName":"null","TargetExtension":"null","UserName":"shawn1","Relati
onshipId":999990000410698,"TargetAgent":"null","NoteText":"null","RequestID":"104","CustomerId
":305850,"ContactId":163594,"CallID":"30045035514529","TargetUserId":"null","DisplayString":"Sha
nnon Bryant (J ED TURNER INC)","MessageType":"Request","Destination":"+0015402262747"}
Command: Conference
{"DeviceName":"null","Operation":"Conference","RequestID":"105","UserName":"shawn1","CallID"
:"30045035514529","MessageType":"Request"}
Command: CompleteTransfer
{"DeviceName":"null","Operation":"CompleteTransfer","RequestID":"106","UserName":"shawn1","
RelationshipId":999990000410698,"TargetAgent":"null","NoteText":"null","CustomerId":305850,"Co
ntactId":163594,"CallID":"30045035514529","TargetUserId":"null","DisplayString":"Shannon Bryant
(J ED TURNER INC)","MessageType":"Request","Destination":"+0015402262747"}
Command: SingleStepTransfer (To Internal Agent)
{"Operation":"SingleStepTransfer","DeviceName":"null","TargetExtension":"141","UserName":"shaw
n1","RelationshipId":999990000410698,"TargetAgent":"shailesh","NoteText":"Sample transfer note
Text.","RequestID":"102","CustomerId":305850,"ContactId":163594,"CallID":"30045035514528","Ta
rgetUserId":"1875","MessageType":"Request","DisplayString":"Shannon Bryant (J ED TURNER
INC)","Destination":"null"}
Command: SingleStepTransfer (To External Number)
{"Operation":"SingleStepTransfer","DeviceName":"null","TargetExtension":"null","UserName":"shaw
n1","RelationshipId":999990000410698,"TargetAgent":"null","NoteText":"null","RequestID":"109","C
ustomerId":305850,"ContactId":163594,"CallID":"30045035514530","TargetUserId":"null","DisplaySt

17
Oracle Fusion Contact Center Connector Specification

ring":"Shannon Bryant (J ED TURNER


INC)","MessageType":"Request","Destination":"+0015402262747"}
Command: Cancel
{"DeviceName":"null","Operation":"Cancel","RequestID":"108","UserName":"shawn1","CallID":"30
045035514530","MessageType":"Request"}
Command: HangUp
{"Operation":"HangUp","DeviceName":"null","RequestID":"106","UserName":"shawn1","CallID":"3
0045035514527","MessageType":"Request"}
Command: End
{"Operation":"End","DeviceName":"null","RequestID":"106","UserName":"shawn1","CallID":"3004
5035514527","MessageType":"Request"}
Command: ResendLastEvent
{"MessageType":"Request","Operation":"ResendLastEvent","UserName":"shawn1","RequestID":"100
,"DeviceName":"null"}
Command: Ignore
{"DeviceName":"null","Operation":"Ignore","RequestID":"102","UserName":"shawn1","CallID":"30
046244474173","MessageType":"Request"}

Event Formats

Event: AgentLoggedOn
{"EventName":"AgentLoggedOn","AcdUserId":"1876","AcdExtension":"142","UserName":"shawn1"
,"MessageType":"AgentEvent"}
Event: AgentLoggedOut
{"EventName":"AgentLoggedOut","UserName":"shawn1","MessageType":"AgentEvent"}
Event: AgentReady
{"EventName":"AgentReady","AcdUserId":"1876","AcdExtension":"142","UserName":"shawn1","M
essageType":"AgentEvent"}
Event: AgentNotReady
{"MessageType":"AgentEvent","EventName":"AgentNotReady","UserName":"shawn1","DeviceNam
e":"2000"}
Event: AgentBusy
{"MessageType":"AgentEvent","EventName":"AgentBusy","UserName":"shawn1","DeviceName":"2
000"}

18
Oracle Fusion Contact Center Connector Specification

Event: Delivered
{"EventName":"Delivered","PARAM_FIRSTNAME":"","PARAM_COUNTRYCODE":"1","ACD_
PRIORITY":"3","INTDATE":"1332889847","Direction":"In","DNIS":"5125018465","systemOfferTi
me":"1332889857","ANI":"7034789000","systemTransfer":"0","PARAM_PHONENUMBER":"","Int
eractionType":"InboundCall","queueBeginTime":"0","doNotRecord":"0","INTID":"30045035514529"
,"PARAM_INTERACTIONID":"30045035514529","systemEmailSubject":"","systemStartTime":"133
2889847","Media":"Phone","PARAM_LASTNAME":"","PARAM_CUSTOMERID":"","PARAM_TI
MEZONE":"","MCT":"0","PARAM_EVENTNAME":"INTERACTION_TYPE_INBOUND_CAL
L","PARAM_EMAILADDRESS":"","PARAM_WORKGROUPNAME":"","PARAM_EXTENSIO
N":"","PARAM_COMPANY":"","PARAM_ORIGIN":"7034789000","CallID":"30045035514529","
MessageType":"InteractionEvent"}
Event: Established
{"EventName":"Established","Media":"Phone","InteractionType":"InboundCall","CallID":"30045035
514529","MessageType":"InteractionEvent","Direction":"In"}
Event: OnHold
{"EventName":"OnHold","Media":"Phone","InteractionType":"InboundCall","CallID":"30045035514
529","MessageType":"InteractionEvent","Direction":"In"}
Event: OnConsultation
{"EventName":"OnConsultation","Media":"Phone","InteractionType":"InboundCall","CallID":"3204
5035513492","MessageType":"InteractionEvent","Direction":"In"}
Event: OnConference
{"EventName":"OnConference","Media":"Phone","InteractionType":"InboundCall","CallID":"30045
035514529","MessageType":"InteractionEvent","Direction":"In"}
Event: Released
{"EventName":"Released","Media":"Phone","InteractionType":"InboundCall","CallID":"30045035514
531","MessageType":"InteractionEvent","Direction":"In"}
Event: End
{"EventName":"End","Media":"Phone","InteractionType":"InboundCall","CallID":"30045035514529
","MessageType":"InteractionEvent","Direction":"In"}
Event: Example of an event sent as a result of a resend request
{"EventName":"Established","ResendSequence":"2","Media":"Phone","ResendCount":"2","ResendEv
ent":"true","InteractionType":"InboundCall","CallID":"30045035514532","MessageType":"Interaction
Event","Direction":"In"}

19
Oracle Fusion Contact Center Connector Specification

Process Flows
This specifies the typical expected command and event sequences for the standard functional flows.

Login
TOOLBAR COMMAND DIRECTION CONNECTOR EVENT

Login
AgentLoggedOn

AgentReady

Inbound Call Lifecycle


The Inbound Call Lifecycle is triggered when a call is routed to an agent.

TOOLBAR COMMAND DIRECTION CONNECTOR EVENT

AgentBusy

Delivered

Accept
Established

HangUp
Released

End
End

AgentReady

Outbound Lifecycle
TOOLBAR COMMAND DIRECTION CONNECTOR EVENT

MakeCall
AgentBusy

Delivered

20
Oracle Fusion Contact Center Connector Specification

Established

HangUp
Released

End
End

AgentReady

Single Step Transfer


Assumes an active call is already established.

TOOLBAR COMMAND DIRECTION CONNECTOR EVENT

SingleStepTransfer
Released

End
End

AgentReady

Two Step Transfer (Transfer with Consultation Call)


Assumes an active call is already established.

TOOLBAR COMMAND DIRECTION CONNECTOR EVENT

Consult
OnHold

OnConsultation

CompleteTransfer
Released

End
End

21
Oracle Fusion Contact Center Connector Specification

AgentReady

Conference Return to Call


Assumes an active call is already established.

TOOLBAR COMMAND DIRECTION CONNECTOR EVENT

Consult
OnHold

OnConsultation

Conference
OnConference

Established

HangUp
Released

End
End

AgentReady

Conference Leave Conference


Assumes an active call is already established.

TOOLBAR COMMAND DIRECTION CONNECTOR EVENT

Consult
OnHold

OnConsultation

Conference
OnConference

CompleteTransfer

22
Oracle Fusion Contact Center Connector Specification

Released

End
End

AgentReady

Resend Sample
Assumes an active call is in wrap up state when the ResendLastEvent command is received.

TOOLBAR COMMAND DIRECTION CONNECTOR EVENT

ResendLastEvent
Delivered (ResendSequence=1,ResendCount=3)

Established(ResendSequence=2,ResendCount=3)

Released(ResendSequence=3,ResendCount=3)

Logout
TOOLBAR COMMAND DIRECTION CONNECTOR EVENT

Logout
AgentLoggedOut

JavaScript Connector Implementation


The Direct JavaScript Connector Implementation is the supported integration approach providing
integration within the browser process itself. Integrators implementing this approach will create a
custom JavaScript library. This custom JavaScript library will be dynamically loaded by the Toolbar
JavaScript Framework during initialization based upon user/system configurations.

Dependencies
There are two dependencies:
Reference JavaScript Connector Source
Implementation should support following major browser versions

23
Oracle Fusion Contact Center Connector Specification

Firefox 4+
IE 8+
Chrome 11+
Safari 4+

Implement Dynamically Loadable JavaScript File


Create a new JavaScript file and implement the comm_connector interface. The location of this file
must be configured in the Contact Center Connector Configuration Application for dynamic loading
by the toolbar framework at runtime.
Functions:
getConnector This must return a handle to an instance of your custom connector object.
launchServer - This must be implemented by the connector. It is intended to allow the connector to
start up any processes required for communication purposes. When the connector is able to establish
communications with the service provider it should invoke the serverLaunchCallback with a value of
true. This must be implemented in order for the logon command to be executed.
jnlpLoc - The location of a jnlp file if a Java Web Start Application is required. Most likely this will
be ignored.
serverUrl - This defines the location of your service provider.
serverLaunchCallback - This callback object must be invoked with a value of true once the
connector has verified communications with the service provider.
Prototype:
var comm_connector {
getConnector : function( ) { ; }
launchServer(downloadLocation, serverUrl, serverLaunchCallback);
}

//sample code
var comm_connector = {
getConnector : function(){
return new 3rdPartyConnector();
}

launchServer:function(downloadLocation, serverUrl, serverLaunchCallback){


//if needed perform steps needed to launch connectorserver
//invoke callback
serverLaunchCalllback(serverUp)
};

24
Oracle Fusion Contact Center Connector Specification

Implement Custom Connector Object


The Connector Interface specifies the APIs used by the Toolbar Framework for third party media
service provider communications.
The functions available are:
logon - Establishes a connection with the remote service provider. Note: this is not to be confused
with the Login command specified in the Command API which actually logs an agent into the provider
system. Once a connection is established the Connector should establish a channel for receiving
events.
Parameters:
URL - location of remote service provider
username - user entered string for identifying the user to the third party media provider.
password - encrypted password string, refer to the password implications section.
options - contains the OnOpen, OnClose and OnMessage callback functions. The OnMessage should
be invoked whenever an event needs sent to the Toolbar Framework. Please refer to the Event API
for proper formatting of the events.

logout - Terminates communications with the remote service provider.


No parameters.

isLoggedIn - Returns boolean true if the client is successfully authenticated with the remote service
provider.
Returns boolean to indicate current authentication status

isConnected - Returns boolean true if the client is currently connected.


Returns boolean to indicate connection status

sendToolbarCommand - This is the primary function invoked by the toolbar framework to send the
commands specified in the Command API to the remote provider service.
Returns boolean true it the command was sent successfully.
Parameters:
text - JSON object containing command arguments refer to Command API for details.

25
Oracle Fusion Contact Center Connector Specification

getServerRestarted - Invoked following a browser refresh to determine if a re-login is required.


Returns boolean true if a new login must be made.
close - cleans up any resources allocated by the connector

Sample JavaScript Connector Class


function 3rdPartyConnector(){
// callback methods
// (OnOpen, OnMessage, OnClose will be invoked if passed in as part of parameters)
// OnOpen - when connection is established (currently a no-op)
// OnMessage - for any message to be delivered to the client (currently this
// method is used in lieu of OnOpen and OnClose and processing is based on
// message contents
// OnClose - when connection is closed. (currently a no-op)

function logon(serverURL, userName, password, callbackMethods){};

//boolean returns if connection to server has been established


function isConnected(){}

//boolean used to determine if server was restarted for login purposes


function getServerRestarted(){}

//logout
function logout(){}

//close connection with server


function close(){}

//data is JSON formatted command


function sendToolbarCommand(data){}
};

Implement sendToolbarCommand
The sendToolbarCommand will translate the JSON formatted Toolbar Command into the expected
provider argument(s) and invoke the equivalent functionality on the remote service provider.
// Sample
sendToolbarCommand: function( text ) {
var res = this.checkLoggedIn();

26
Oracle Fusion Contact Center Connector Specification

if( res.code == 0 ) {
this.sendToken(
{
type: "toolbarCommand",
sourceId: this.fClientId,
sender: this.fUsername,
username: this.fUsername,
data: text
},
null
);
}
return res;
}

Implement Callback Function Invocations


Once the custom JavaScript Connector is loaded, the toolbar framework will invoke the logon method
on an instance of this object passing in the call back functions in the options parameter. Internally the
logon method should establish a connection with the remote service provider and utilize the callback
functions for sending events to the toolbar.

OnOpen Function

OnOpen should be invoked once remote communications have been successfully established with the
provider.
Parameters:
aEvent - JSON object.

OnClose Function

OnClose should be invoked once remote communications to the provider have been terminated.
Parameters:
aEvent - JSON object.

OnMessage Function

The OnMessage function is the primary function used by providers for delivering events to the
toolbar. Please refer to the Event API for proper encoding of the arguments passed to this function.
The OnMessage function is typically invoked to send properly encoded Toolbar Events following the
specified structure defined in the Event API. Whenever an event is received via the listener channel
established as part of the logon processing the connector must translate the provider specific event
into the equivalent Toolbar Event and pass it to the toolbar OnMessage callback function.

27
Oracle Fusion Contact Center Connector Specification

Parameters:
aEvent - Raw event stream - this is ignored
aToken - This is the JSON object as specified in the Event API
The OnMessage function also has 2 special purposes, which must be invoked properly to signal that a
connection has been successfully established and that a connection has been closed.
Indicate a successful connection to service provider based upon following event attribute values:
reqType = login
type=response
msg=ok
Indicate the connection to the service provider has been closed based upon the following event
attribute values.
type=goodBye

Special Considerations
Assumptions
The toolbar only supports a single active interaction at a time in this release. Therefore, the provider
should prevent delivery or creation of new items while an interaction is ongoing. For example a
MakeCall request should be ignored if an interaction is active.

Password Obfuscation
For security purposes the password used for agent login purposes is encrypted. For JavaScript, the
unobfuscated password will be accessible via variable "JSPassword" in JavaScript. The password passed
into logon method is obfuscated and cannot be directly used.

Phone Number Formatting


Three different phone number formats may be used for dialing commands.
External Call Format - Used for dialing out of network. The "Notation for International Telephone
Numbers" A.K.A E.123 will be used for these dial strings e.g., +0015552262747. The toolbar client
will always ensure the country code is represented as the 1st 3 numbers following the + character.
SIP Call Format - Used for dialing using Session Initiation Protocol. These dial strings will be
represented in standard SIP Address notation e.g., sip:5552262747@10.1.1.1
Extension Call Format - Used for dialing internal extensions. These dial strings will contain only
numeric data e.g., 1234

28
Oracle Fusion Contact Center Connector Specification

Call Data Mappings


Currently there is a finite predefined set of call data/IVR attributes interpreted by the toolbar
framework. These attribute names are case sensitive and must exactly match those in the list below:
ANI - Automatic Number Identification - Used for caller lookup.
DNIS - Dialed Number Identification Service
CustomerId - Identifies the customer party in the Oracle Fusion CDM schema.
ContactId - Identifies the contact party in the Oracle Fusion CDM schema.
RelationshipId - Identifies the contact and customer relationship in the Oracle Fusion CDM schema.
This is used for B2B interactions.
Note: Any attributes passed in the updateData command or transfer commands should be passed through without any
modifications e.g., NoteText, TransferFrom etc.

Conclusion
With the help of this specification, integrators should be able to write a telephony provider specific
connector which communicates with the Oracle Contact Center Toolbar to CTI enable Oracle Fusion
CRM applications.

29
Oracle Fusion Contact Center Copyright 2012, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only and the
Connector Specification contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other
September 2012 warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or
Author: [OPTIONAL] fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are
Contributing Authors: [OPTIONAL] formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any
means, electronic or mechanical, for any purpose, without our prior written permission.
Oracle Corporation
World Headquarters
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
500 Oracle Parkway
Redwood Shores, CA 94065
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and
U.S.A.
are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are
Worldwide Inquiries: trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group. 0612
Phone: +1.650.506.7000
Fax: +1.650.506.7200

oracle.com