3CTI Integration APIs

CTI Integration APIs

This chapter details the application programming interfaces (API) used for CTI integration. It contains the following topics:

Infrastructure Supporting CTI Integration

Oracle CRM On Demand provides the infrastructure shown in the following table to support computer telephony integration (CTI):

Table Infrastructure Supporting CTI Integration

Task

Oracle CRM On Demand Infrastructure

Creating an activity

CTIActivityInsert Web service method.

Loading a screen pop

CTICommand servlet (Command=ScreenPop), which automatically loads an Oracle CRM On Demand detail page.

Wrapping up

CTICommand servlet (Command=WrapUp), which automatically loads the Wrap-up edit page.

Wrapping up

CTIActivityWrapUp Web service method. This method does not allow the caller to set wrap-up notes. The method is useful for wrapping up an interaction in which the CTI application does not want to prompt the user for information. However, if the interaction has been wrapped up with the CTICommand servlet WrapUp command, a call to the CTIActivityWrapUp method is redundant.

Viewing current interactions

Communications tab containing homepages for each channel: Call, Chat, Email, Voicemail.

Performing CTI actions

UI controls, including buttons, for example, to open email, listen to voicemail, and Click-to-Dial links

The Create Activity Web service and the CTICommand servlet are described in the following topics.

CTI Activity Web Service

CTI activities are created using the CTI Activity Web service in Oracle CRM On Demand.

The CTI Activity Web service:

  • Is a stateless Web service, therefore user credentials must always be passed in the SOAP header in the WSSE UsernameToken token in the Username and Password parameters. For an example of a SOAP request, see CTIActivityInsert SOAP Request.

  • Requires the agent to be provisioned for CTI. To issue CTIActivityInsert requests, the appropriate privileges for accessing call, chat, email, or voicemail communications are required. For more information about necessary privileges, see CTI Role Privileges.

  • Uses the CTIActivity WSDL file, which is only available from the Web Services Administration page in Oracle CRM On Demand, if the user has the Manage CTI On Demand Access privilege. For a listing of the WSDL file, see CTI Activity Web Services Description Language File.

  • Has two methods, the CTIActivityInsert method and the CTIActivityWrapUp method.

The CTIActivityInsert method of the CTI Activity Web service creates one or more CTI activities in Oracle CRM On Demand, and returns details on the activity, including information about records related to the activity.

The CTIActivityWrapUp method of the CTIActivity Web service automatically performs wrap-up on multiple CTI activities in Oracle CRM On Demand.

CTIActivityInsert Interaction Input Parameters

The CTIActivityInsert method accepts the input parameters shown in the following table.

In a SOAP request, the parameters are supplied in the list of Interaction XML nodes. A maximum of five interactions can be specified in a single request.

The parameter names for the Web service (for example, ChannelType) have no spaces, whereas the equivalent parameters names for the CTICommand servlet have spaces (for example, Channel Type).

The various types for the input parameters (as shown in the Type column of the following table) are listed in the second table in this topic. For the String type, the string length limit is also shown.

Table CTIActvityInsert Method Input Parameters

Parameter

Required

Type

Description

AgentOfferTime

Yes

Date-Time

The time that the interaction is offered to an agent (also known as System Offer Time). It is used like a default value for other parameters, like IVRBeginTime and QueueBeginTime. AgentOfferTime is also used as a primary key for differentiating activity records with the same InteractionId. This value originates from CTI.

AssociatedRecordId*

No

String (100)

The ID of a record to associate with the interaction's activity. If the ID does not correspond to a record in Oracle CRM On Demand, the activity is still created and no error is returned.

AssociatedRecordType*

No

Record Type LOV

The type of record provided in the parameter AssociatedRecordId parameter. Any record provided in the AssociatedRecordId/Type parameters takes precedence over records that may be matched to the activity through other means, including Origin/Destination (automatic number identification/dialed number identification service) or record-specific parameters like ServiceRequestNumber, AssociatedRecordType, and AssociatedRecordId are used with the Click-to-Dial functionality.

CampaignSourceCode #

No

String (100)

The source code of an associated campaign record.

If the value does not correspond to a record in Oracle CRM On Demand, the activity is still created and no error is returned.

ChannelType

Yes

LOV

The channel type, equivalent to the activity subtype. The possible values are as follows. (The values shown in parentheses are automatically set in the Type field for the activity.)

  • Inbound Call (Call)

  • Outbound Call (Call)

  • Inbound Transfer (Call)

  • Outbound Transfer (Call)

  • Missed Transfer (Call)

  • Predictive Call (Call)

  • Predictive Transfer (Call)

  • Preview Call (Call)

  • Preview Transfer (Call)

  • DID/Direct Call (Call)

  • Inbound Email (Email)

  • Outbound Email (Email)

  • Forwarded Email (Email)

  • Reassigned Email (Email)

  • Email Response (Email)

  • Inbound Voicemail (Voicemail)

  • Forwarded Voicemail (Voicemail)

  • Reassigned Voicemail (Voicemail)

  • Callback (Callback)

  • Web Callback (Callback)

  • Inbound Chat (Chat)

  • Chat Transfer (Chat)

ContactPhoneNumber #

No

String (100)

The home telephone number for the contact associated with the activity.

If the value does not correspond to a record in Oracle CRM On Demand, the activity is still created and no error is returned.

CreateServiceRequest

No

Boolean

For activity creation only, whether a service request (SR) should be created and associated with the newly created activity.

The associated account and contact of the activity will be associated with this SR. If ServiceRequestNumber is specified or AssociatedRecordType is Service Request, CreateServiceRequest is ignored.

Destination

No

String (100)

For calls and voicemails only, the number that was dialed to initiate the call. For an incoming call, this is the number that the customer dialed to reach the agent. For an outgoing call, it is the number the agent dialed. The country code must be prepended to the start of the value.

For email activities only, the address to which the email was sent.

For chat, either a phone number or an email address.

InteractionId

Yes

String (30)

Part of the primary key of the activity, together with AgentOfferTime.

IVRBeginTime

No

Date-Time

For calls and voicemails only, the time that the call is picked up by the interactive voice response (IVR).

Origin

No

Date-Time

For calls and voicemails only, the phone number of the person originating the call, that is, the caller ID or automatic number identification (ANI) number. The country code must be prepended to the start of the value.

For email activities only, the From address of the original email.

For chat, either a phone number or an email address.

Priority

No

LOV

The priority level of the activity. The following are the default values, but this list can be modified and expanded through Oracle CRM On Demand configuration.

  • 1-High

  • 2-Medium

  • 3-Low

Invalid priority values are ignored.

Queue

No

String (250)

The queue to which the automatic call distributor (ACD) routed the message.

QueueBeginTime

No

Date-Time

For calls and voicemails, this is the time after the user interacts with the IVR at which the call is put into a queue for an agent to pick up.

For email activities only, this is the time that the email is retrieved from the POP server and put into a queue.

ServiceRequestNumber #

No

String (100)

The number of the service request associated with the activity.

If the value does not correspond to a record in Oracle CRM On Demand, the activity is still created and no error is returned.

In the above table, the parameters marked with an asterisk (*) character are used for the Click-to-Dial functionality. If Click-to-Dial is enabled, phone numbers on an Oracle CRM On Demand page have HTML attributes describing the page's record type and ID. If the parameters are set with those attribute values, the activity is associated with that record. For more information, see Click-to-Dial Links.

In the above table, the parameters marked with a number sign (#) character can be a passed in values from an IVR variable. For example, the caller may enter his or her phone number, campaign code, or SR number when prompted.

The various types for the input parameters (as shown in the Type column of the above table) are as follows:

Table CTIActivityInsert Parameter Types

Type

Format

Example

Boolean

A value of true or 1 specifies true. All other values are interpreted as false.

true

Date-Time

A UNIX epoch time, that is, the number of seconds elapsed since midnight UTC on January 1, 1970.

1293235200

(Midnight UTC on 25th December 2010)

LOV

A list of values. The possible values for a parameter are listed in the Description column in the above table.

Inbound Call (for the ChannelType parameter)

Record Type LOV

List of values corresponding to record types supported by CTI:

  • Account

  • Activity

  • Campaign

  • Contact

  • Lead

  • Service Request

Opportunity is also a supported record type for the parameter AssociatedRecordType, but the parameter ScreenPopRecordType does not return Opportunity.

Service Request

String

A string with the length limit specified in parentheses. For example, InteractionId, String (30), has a 30 character length limit.

4259480586

CTIActivityInsert Interaction Output Parameters

The output parameters for the CTIActivityInsert method are shown in the following table.

The Status parameter is always returned, and indicates whether the activity creation was successful.

If the value of the Status parameter is OK or Activity already exists, the ActivityId is always returned.

If the value of the Status parameter is OK and the created activity is associated with other records, the records IDs and other record information are returned (for example, ContactId and ContactFullName).

The various types for the output parameters (as shown in the Type column of the following table) are listed in the second table in CTIActivityInsert Interaction Input Parameters.

Table CTIActivityInsert Method Output Parameters

Parameter Name

Type

Description

AccountId

String

The ID of the account record associated with the activity.

AccountName

String

The name of the account record associated with the activity.

ActivityId

String

The ID of the activity created, or the activity that already existed.

AgentOfferTime

Date-time

The same as for the AgentOfferTime input argument. The time that the interaction is offered to an agent (also known as System Offer Time). It is used like a default value for other parameters, like IVRBeginTime and QueueBeginTime. AgentOfferTime is also used as a primary key for differentiating activity records with the same InteractionId.

CampaignId

String

The ID of the campaign record associated with the activity.

CampaignName

String

The name of the campaign associated with the activity.

ContactFullName

String

The full name of the contact associated with the activity.

ContactId

String

The ID of the contact record associated with the activity.

InteractionId

String

Part of the primary key of the activity, together with AgentOfferTime.

LeadFullName

String

The full name of the lead associated with the activity.

LeadId

String

The ID of the lead associated with the activity.

ScreenPopRecordId

String

The record ID of the screen pop record.

ScreenPopRecordType

Record Type LOV

The suggested record type for the screen pop record. The suggestion is based on the following priority order:

  • Service Request

  • Campaign

  • Contact

  • Lead

  • Account

  • Activity

For example, if the activity is associated with both a contact and an account, Contact is returned because that record type is higher in the priority list. The suggestion, together with the record associations returned, allows third-party vendors to choose the record type for the screen pop.

ServiceRequestId

String

The ID of the service request record associated with the activity.

ServiceRequestNumber

String

The number of the service request associated with the activity.

Status

String

The status of the activity. This can have the following values:

  • OK. The activity was created successfully.

  • Activity already exists. An activity was created for this interaction before the request.

  • Unable to create activity. It was not possible to create the activity.

  • Error. There is an error.

These values are always returned in English, regardless of the user's locale. If there is an exception, an error message (see Exception Messages) is returned, and this may be translated.

CTIActivityInsert SOAP Request

The following is a sample SOAP request to create four activities; one each for call, chat, email and voicemail:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cti="urn:crmondemand/ws/odctibs/ctiactivity/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:data="urn:/crmondemand/xml/ctiactivity/data">

<soapenv:Header>

  <wsse:Security soapenv:mustUnderstand="1">

    <wsse:UsernameToken>

      <wsse:Username>OKP/mos.def</wsse:Username>

      <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>

    </wsse:UsernameToken>

  </wsse:Security>

</soapenv:Header>

<soapenv:Body>

  <cti:CTIActivityInsert_Input>

    <data:ListOfInteraction>

      <data:Interaction>

        <data:InteractionId>900000000051</data:InteractionId>

        <data:AgentOfferTime>1287786900</data:AgentOfferTime>

        <data:ChannelType>Inbound Call</data:ChannelType>

        <data:Origin>15551111212</data:Origin>

        <data:Destination>18003849503</data:Destination>

        <data:Priority>2-Medium</data:Priority>

        <data:IVRBeginTime>1287786601</data:IVRBeginTime>

        <data:QueueBeginTime>1287786213</data:QueueBeginTime>

        <data:Queue>Support</data:Queue>

      </data:Interaction>

      <data:Interaction>

        <data:InteractionId>9000000000054</data:InteractionId>

        <data:AgentOfferTime>1287786900</data:AgentOfferTime>

        <data:ChannelType>Inbound Chat</data:ChannelType>

        <data:Origin>jsoap@match.com</data:Origin>

        <data:Destination>cti@testing.com</data:Destination>

        <data:Priority>2-Medium</data:Priority>

        <data:IVRBeginTime>1287786601</data:IVRBeginTime>

        <data:QueueBeginTime>1287786213</data:QueueBeginTime>

        <data:Queue>Support</data:Queue>

      </data:Interaction>

      <data:Interaction>

        <data:InteractionId>900000000053</data:InteractionId>

        <data:AgentOfferTime>1287786900</data:AgentOfferTime>

        <data:ChannelType>Inbound Email</data:ChannelType>

        <data:Origin>jsoap@match.com</data:Origin>

        <data:Destination>cti@testing.com</data:Destination>

        <data:Priority>2-Medium</data:Priority>

        <data:IVRBeginTime>1287786601</data:IVRBeginTime>

        <data:QueueBeginTime>1287786213</data:QueueBeginTime>

        <data:Queue>Support</data:Queue>

      </data:Interaction>

      <data:Interaction>

        <data:InteractionId>900000000055</data:InteractionId>

        <data:AgentOfferTime>1287786900</data:AgentOfferTime>

        <data:ChannelType>Inbound Voicemail</data:ChannelType>

        <data:Origin>15551111212</data:Origin>

        <data:Destination>18003849503</data:Destination>

        <data:Priority>2-Medium</data:Priority>

        <data:IVRBeginTime>1287786601</data:IVRBeginTime>

        <data:QueueBeginTime>1287786213</data:QueueBeginTime>

        <data:Queue>Support</data:Queue>

      </data:Interaction>

    </data:ListOfInteraction>

  </cti:CTIActivityInsert_Input>

</soapenv:Body>

</soapenv:Envelope>

CTIActivityInsert SOAP Response

The following is the SOAP response for the request shown in CTIActivityInsert SOAP Request.

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="urn:crmondemand/ws/odctibs/ctiactivity/" xmlns:ns1="urn:/crmondemand/xml/ctiactivity/data">

<env:Header>

  <wsse:Security env:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"/>

</env:Header>

<env:Body>

<ns0:CTIActivityInsert_Output>

<ns1:ListOfActivity>

   <ns1:Activity>

      <ns1:Status>OK</ns1:Status>

      <ns1:InteractionId>900000000051</ns1:InteractionId>

      <ns1:AgentOfferTime>1287786900</ns1:AgentOfferTime>

      <ns1:ActivityId>1QA2-S78VL</ns1:ActivityId>

      <ns1:ContactId>1QA2-RXQQC</ns1:ContactId>

      <ns1:ContactFullName>Fred Hong</ns1:ContactFullName>

      <ns1:ScreenPopRecordId>1QA2-RXQQC</ns1:ScreenPopRecordId>

      <ns1:ScreenPopRecordType>Contact</ns1:ScreenPopRecordType>

   </ns1:Activity>

   <ns1:Activity>

      <ns1:Status>OK</ns1:Status>

      <ns1:InteractionId>9000000000054</ns1:InteractionId>

      <ns1:AgentOfferTime>1287786900</ns1:AgentOfferTime>

      <ns1:ActivityId>1QA2-S78VO</ns1:ActivityId>

      <ns1:ScreenPopRecordId>1QA2-S78VO</ns1:ScreenPopRecordId>

      <ns1:ScreenPopRecordType>Activity</ns1:ScreenPopRecordType>

   </ns1:Activity>

   <ns1:Activity>

      <ns1:Status>OK</ns1:Status>

      <ns1:InteractionId>900000000053</ns1:InteractionId>

      <ns1:AgentOfferTime>1287786900</ns1:AgentOfferTime>

      <ns1:ActivityId>1QA2-S78VQ</ns1:ActivityId>

      <ns1:ScreenPopRecordId>1QA2-S78VQ</ns1:ScreenPopRecordId>

      <ns1:ScreenPopRecordType>Activity</ns1:ScreenPopRecordType>

   </ns1:Activity>

   <ns1:Activity>

      <ns1:Status>OK</ns1:Status>

      <ns1:InteractionId>900000000055</ns1:InteractionId>

      <ns1:AgentOfferTime>1287786900</ns1:AgentOfferTime>

      <ns1:ActivityId>1QA2-S78VS</ns1:ActivityId>

      <ns1:ContactId>1QA2-RXQQC</ns1:ContactId>

      <ns1:ContactFullName>Fred Hong</ns1:ContactFullName>

      <ns1:ScreenPopRecordId>1QA2-RXQQC</ns1:ScreenPopRecordId>

      <ns1:ScreenPopRecordType>Contact</ns1:ScreenPopRecordType>

   </ns1:Activity>

</ns1:ListOfActivity>

</ns0:CTIActivityInsert_Output>

</env:Body>

</env:Envelope>

CTIActivityWrapUp Input Parameters

The CTIActivityWrapUp method accepts the input parameters shown in the following table.

In a SOAP request, the parameters are supplied in the list of Interaction XML nodes. A maximum of five interactions can be specified in a single request.

Table CTIActivityWrapUp Method Input Parameters

Parameter

Required

Type

Description

AgentOfferTime

Yes

Date-Time

The time that the interaction is offered to an agent. AgentOfferTime is also used as a primary key for differentiating activity records with the same InteractionId.

ChannelType

Yes

LOV

The channel type, equivalent to the activity subtype. The possible values are as listed in the first table in CTIActivityInsert Interaction Input Parameters.

InteractionId

Yes

String (30)

Part of the primary key of the activity, together with AgentOfferTime

CTIActivityWrapUp Output Parameters

The output parameters for the CTIActivityWrapUp method are shown in the following table.

The Status parameter is always returned, and indicates whether the activity wrap-up was successful.

Table CTIActivityWrapUp Method Output Parameters

Parameter Name

Type

Description

AgentOfferTime

Date-time

The same as for the AgentOfferTime input argument.

InteractionId

String

Part of the primary key of the activity, together with AgentOfferTime.

Status

String

The status of the activity. This can have the following values:

  • OK. The request was processed successfully.

  • Activity has already been wrapped up. The activity has already been wrapped up before the request.

  • Activity not found. Self explanatory.

  • Multiple activites found. Self explanatory.

  • Error. There is an error.

These values are always returned in English, regardless of the user's locale. If there was an exception, an error message (see Exception Messages) is returned, and this may be translated.

CTIActivityWrapUp SOAP Request

The following is a sample SOAP request to wrap up four activities; one each for call, chat, email and voicemail:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cti="urn:crmondemand/ws/odctibs/ctiactivity/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:data="urn:/crmondemand/xml/ctiactivity/data">

  <soapenv:Header>

    <wsse:Security soapenv:mustUnderstand="1">

      <wsse:UsernameToken>

        <wsse:Username>OKP/mos.def</wsse:Username>
        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>

      </wsse:UsernameToken>

    </wsse:Security>

  </soapenv:Header>

<soapenv:Body>

<cti:CTIActivityWrapUp_Input>

<data:ListOfInteraction>

   <data:Interaction>

      <data:InteractionId>100000000000</data:InteractionId>

      <data:AgentOfferTime>1287786900</data:AgentOfferTime>

      <data:ChannelType>Inbound Call</data:ChannelType>

   </data:Interaction>

   <data:Interaction>

      <data:InteractionId>100000000001</data:InteractionId>

      <data:AgentOfferTime>1287786900</data:AgentOfferTime>

      <data:ChannelType>Inbound Chat</data:ChannelType>

   </data:Interaction>

   <data:Interaction>

      <data:InteractionId>100000000002</data:InteractionId>

      <data:AgentOfferTime>1287786900</data:AgentOfferTime>

      <data:ChannelType>Inbound Email</data:ChannelType>

   </data:Interaction>

   <data:Interaction>

      <data:InteractionId>100000000003</data:InteractionId>

      <data:AgentOfferTime>1287786900</data:AgentOfferTime>

      <data:ChannelType>Inbound Voicemail</data:ChannelType>

   </data:Interaction>

</data:ListOfInteraction>

</cti:CTIActivityWrapUp_Input>

</soapenv:Body>

</soapenv:Envelope>

CTIActivityWrapUp SOAP Response

The following is the SOAP response for the request shown in CTIActivityWrapUp SOAP Request.

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="urn:crmondemand/ws/odctibs/ctiactivity/" xmlns:ns1="urn:/crmondemand/xml/ctiactivity/data">

<env:Header>

  <wsse:Security env:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"/>

</env:Header>

<env:Body>

<ns0:CTIActivityWrapUp_Output>

<ns1:ListOfActivity>

   <ns1:Activity>

      <ns1:Status>OK</ns1:Status>

      <ns1:InteractionId>100000000000</ns1:InteractionId>

      <ns1:AgentOfferTime>1287786900</ns1:AgentOfferTime>

   </ns1:Activity>

   <ns1:Activity>

      <ns1:Status>OK</ns1:Status>

      <ns1:InteractionId>100000000001</ns1:InteractionId>

      <ns1:AgentOfferTime>1287786900</ns1:AgentOfferTime>

   </ns1:Activity>

   <ns1:Activity>

      <ns1:Status>OK</ns1:Status>

      <ns1:InteractionId>100000000002</ns1:InteractionId>

      <ns1:AgentOfferTime>1287786900</ns1:AgentOfferTime>

   </ns1:Activity>

   <ns1:Activity>

      <ns1:Status>OK</ns1:Status>

      <ns1:InteractionId>100000000003</ns1:InteractionId>

      <ns1:AgentOfferTime>1287786900</ns1:AgentOfferTime>

   </ns1:Activity>

</ns1:ListOfActivity>

</ns0:CTIActivityWrapUp_Output>

</env:Body>

</env:Envelope>

Exception Messages

The methods of the CTI Activity Web service can return exception error messages as shown in the following table.

Table Exceptions Returned From CTI Activity Calls

Exception From

Translated?

Error message

Comments

Web services framework

No

The security token could not be authenticated or authorized.

Incorrect credentials were supplied

Web services framework

No

Missing <wsse:Security> in SOAP Header

No <Security> element in SOAP request

Web services framework

No

Policy requires authentication token

No <UserNameToken> element in SOAP request

Web services framework

No

Missing user name in security token

No <UserName> element in SOAP request

Web services framework

No

Missing password value

No <PassWord> element in SOAP request

Web services framework

No

Caught exception while handling request: invalid boolean value:

None

Web services framework

No

Caught exception while handling request: expected element is missing:

None

CTI Activity Web service

Yes

Access Denied

None

CTI Activity Web service

Yes

Invalid value, VALUE, is specified for option OPTION

None

CTI Activity Web service

Yes

Request contains too many interactions

Maximum number of interactions is five.

Object Manager

Yes

'<field>FIELDNAME<field>' is a required field. Please enter a value for the field.(SBL-DAT-00498)

None

Object Manager

Yes

The Web Services Operations Allotment of LIMIT has been reached or there is insufficient capacity remaining to process your request.(SBL-SBL-70172)

There is a similar error message for each of the other Web services limiters

For more information about Web services limiters, see Oracle Web Services On Demand Guide and Oracle CRM On Demand Online Help.

CTICommand Servlet API

The CTI application invokes the CTICommand servlet to load CTI content in Oracle CRM On Demand. This is a generic command servlet that can be used to load any Oracle CRM On Demand page.

Parameters are passed to the CTICommand servlet through HTTP POST or GET requests. As HTTP GET requests are supported, these parameters can be passed in through the URL query string. The URL has the format:

<CRMOD base URL>/user/CTICommand

Depending on the value of the Command parameter, the CTICommand servlet invokes screen pop or wrap-up functionality as described in the following topics. An example URL for HTTP GET to invoke a screen pop is as follows:

http://ezintegr4u.us.oracle.com/OnDemand/user/CTICommand?Command=ScreenPop&Record Type=Activity&Record Id=1QA2-S5YEX&Channel Type=Inbound Call

Note: It is not required to pass user credentials to the CTICommand servlet, as is the case for the CTI Activity Web service. This is because the CTICommand servlet uses the credentials from the existing Oracle CRM On Demand browser session.

ScreenPop Command

The CTI screen pop functionality loads the detail page of a record associated with the agent's current call center interaction. For example, if a customer calls in with the phone number 1-555-111-1212, and a corresponding contact record in Oracle CRM On Demand has the same phone number, the CTI screen pop functionality loads that contact's detail page in Oracle CRM On Demand so that the call center agent has information on the caller.

Message Protocol

The CTICommand servlet is used to invoke the CTI screen pop functionality, and the value of the Command parameter in this case is ScreenPop.

The parameters shown in the following table are supported for the ScreenPop command.

Table ScreenPop Command Parameters

Parameter Name

Required

Type

Description

Channel Type

No

(Yes, if Record Type = Activity)

LOV

When specifying the following LOV subtype values, the type value in parentheses is automatically set.

  • Inbound Call (Call)

  • Outbound Call (Call)

  • Inbound Transfer (Call)

  • Outbound Transfer (Call)

  • Missed Transfer (Call)

  • Predictive Call (Call)

  • Predictive Transfer (Call)

  • Preview Transfer (Call)

  • Preview Call (Call)

  • DID/Direct Call (Call)

  • Callback (Callback)

  • Web Callback (Callback)

  • Inbound Chat (Chat)

  • Chat Transfer (Chat)

  • Inbound Email (Email)

  • Outbound Email (Email

  • Forwarded Email (Email

  • Reassigned Email (Email)

  • Email Response (Email

  • Inbound Voicemail (Voicemail)

  • Forwarded Voicemail (Voicemail)

  • Reassigned Voicemail (Voicemail)

Command

Yes

LOV

The value in this case is ScreenPop.

Record Id

Yes

String

The record ID of the record used for the screen pop.

Record Type

Yes

Record Type LOV

The record type for the screen pop. Possible values are:

  • Service Request

  • Contact

  • Account

  • Lead

  • Opportunity

  • Campaign

  • Activity

Example of Contact ScreenPop Command

In this example, when an interaction comes in, the activity is created in Oracle CRM On Demand, which finds a related contact record. The CTI client application might load that contact record in Oracle CRM On Demand using the parameters in the following table. The Record Id and Record Type are returned by the call to CTIActivityInsert.

Table Example of Parameter Values for Contact ScreenPop Command

Parameter

Value Example

Command

ScreenPop

Record Id

1QA2-D903L00

Record Type

Contact

Example of Activity ScreenPop Command

For loading a screen pop for an activity, the Channel Type parameter must be provided with the same value sent in the CTIActivityInsert request. In this case, the parameters are as shown in the following table:

Table Example of Parameter Values for Activity ScreenPop Command

Parameter

Value Example

Channel Type

Inbound Voicemail

Command

ScreenPop

Record Id

1QA2-D903189

Record Type

Activity

WrapUp Command

The WrapUp command displays the activity wrap-up page in Oracle CRM On Demand. The wrap-up page is basically an activity edit page with a special applet layout. Before the wrap-up page can be displayed, a CTI activity must be created.

Message Protocol

The CTICommand servlet is used to invoke the CTI wrap-up functionality and the value of the Command parameter in this case is WrapUp.

The parameters shown in the following table are supported for the WrapUp command.

Table Wrapup Command Parameters

Parameter Name

Required

Type

Description

Agent Offer Time

Yes

Date/Time

The time that the interaction is offered to an agent (also known as System Offer Time). Agent Offer Time is also used as a primary key for differentiating activity records with the same InteractionId.

Command

Yes

LOV

The value in this case is WrapUp.

Interaction Id

Yes

String

Part of the primary key of the activity, together with Agent Offer Time

Example of Call WrapUp Command

In this example, when an interaction has ended, the CTI client application triggers a wrap-up by passing in the following parameter name value pairs to the CTICommand servlet. The Agent Offer Time and Interaction Id must match the values passed in when creating the activity in Oracle CRM On Demand.

Table Example of Parameter Values for WrapUp Command

Parameter

Value Example

Agent Offer Time

1287786213

Command

WrapUp

Interaction Id

90001841534038