Skip to main content
Version: 2.7.0

Outbound Options Capabilities

Changes for Scheduling a Callback in Siebel UI

Preview Mode

The following commands exist for the Cisco Outbound Option in preview mode:

  • PreviewCallAccept
  • PreviewCallReject
  • PreviewCallRejectClose
  • ClassifyOutboundCall

The device commands can be found in the following section of the Connects for Siebel's default Siebel Definition (DEF-file):

    ;---------------------------------------------------------------------------------------------------
; Device-Commands for outbound option calls

[Command:PreviewCallAccept]
DeviceCommand = "PreviewCallAccept"
Description = "Accept Preview call"
CmdData = "PreviewCallAcceptData"
Hidden = "TRUE"
CmdChannelOnFocus = "TRUE"

[CmdData:PreviewCallAcceptData]
Param.trackingId = "{@SelectedWorkItem:DriverWorkTrackID}"

[Command:PreviewCallReject]
DeviceCommand = "PreviewCallReject"
Description = "Reject Preview call"
CmdData = "PreviewCallRejectData"
Hidden = "TRUE"
CmdChannelOnFocus = "TRUE"

[CmdData:PreviewCallRejectData]
Param.trackingId = "{@SelectedWorkItem:DriverWorkTrackID}"

[Command:PreviewCallRejectClose]
DeviceCommand = "PreviewCallRejectClose"
CmdData = "PreviewCallRejectCloseData"
Hidden = "TRUE"
CmdChannelOnFocus = "TRUE"

[CmdData:PreviewCallRejectCloseData]
Param.trackingId = "{@SelectedWorkItem:DriverWorkTrackID}"

[Command:ClassifyAsVoice]
DeviceCommand = "ClassifyOutboundCall"
CmdData = "ClassifyAsVoiceData"
Hidden = "TRUE"
CmdChannelOnFocus = "TRUE"

[CmdData:ClassifyAsVoiceData]
Param.trackingId = "{@SelectedWorkItem:DriverWorkTrackID}"
Param.classifyasvoice = "1"

[Command:ClassifyAsAnsweringmachine]
DeviceCommand = "ClassifyOutboundCall"
CmdData = "ClassifyAsAnsweringmachineData"
Hidden = "TRUE"
CmdChannelOnFocus = "TRUE"

[CmdData:ClassifyAsAnsweringmachineData]
Param.trackingId = "{@SelectedWorkItem:DriverWorkTrackID}"
Param.classifyasansweringmachine = "1"

[Command:ClassifyAsFax]
DeviceCommand = "ClassifyOutboundCall"
CmdData = "ClassifyAsFaxData"
Hidden = "TRUE"
CmdChannelOnFocus = "TRUE"

[CmdData:ClassifyAsFaxData]
Param.trackingId = "{@SelectedWorkItem:DriverWorkTrackID}"
Param.classifyasfax = "1"

[Command:ClassifyAsInvalid]
DeviceCommand = "ClassifyOutboundCall"
CmdData = "ClassifyAsInvalidData"
Hidden = "TRUE"
CmdChannelOnFocus = "TRUE"

[CmdData:ClassifyAsInvalidData]
Param.trackingId = "{@SelectedWorkItem:DriverWorkTrackID}"
Param.classifyasinvalid = "1"

[Command:ClassifyAsNotAtHome]
DeviceCommand = "ClassifyOutboundCall"
CmdData = "ClassifyAsNotAtHomeData"
Hidden = "TRUE"
CmdChannelOnFocus = "TRUE"

[CmdData:ClassifyAsNotAtHomeData]
Param.trackingId = "{@SelectedWorkItem:DriverWorkTrackID}"
Param.classifyasnotathome = "1"

[Command:ClassifyAsWrongNumber]
DeviceCommand = "ClassifyOutboundCall"
CmdData = "ClassifyAsWrongNumberData"
Hidden = "TRUE"
CmdChannelOnFocus = "TRUE"

[CmdData:ClassifyAsWrongNumberData]
Param.trackingId = "{@SelectedWorkItem:DriverWorkTrackID}"
Param.classifyaswrongnumber = "1"

Commands Mapped to Existing Buttons

To accept or reject a preview call with a simple click, two commands are mapped to the "Answer-Call" and "Release-Call" buttons:

The command "PreviewCallAccept" was added as the 3rd sub-command in the AnswerCallGroup command section.

    [Command:AnswerCallGroup]
SubCommand_1 = "AnswerCall"
SubCommand_2 = "AgentEndAfterCallWorkReady"
SubCommand_3 = "PreviewCallAccept"
Description = "Answer call"
CmdData = ""
Hidden = "TRUE"

The command "PreviewCallReject" was added as the 1st sub-command in the ReleaseCallGroup command section.

    [Command:ReleaseCallGroup]
SubCommand_1 = "PreviewCallReject"
SubCommand_2 = "ReleaseCall"
SubCommand_3 = "AgentEndAfterCallWorkNotReady"
CmdData = ""
Hidden = "TRUE"

Commands Added to the Menu

The three commands to handle preview calls are added as menu selections in Tools Communications in the submenu "Dialer calls":

    [Command:OutboundOptionGroupInMenu]
SubCommand_1 = "PreviewCallAccepInMenu"
SubCommand_2 = "PreviewCallRejectInMenu"
SubCommand_3 = "PreviewCallRejectCloseInMenu"
SubCommand_4 = "ClassifyOutboundCallInMenu"
MenuPosition = "60"
Title = "Dialer calls"
Description = "Dialer calls"
CmdData = ""

[Command:PreviewCallAcceptInMenu]
SubCommand_1 = "PreviewCallAccept"
Title = "Accept Preview Call"
Description = "Accept Preview Call"
MenuPosition = "60.1"

[Command:PreviewCallRejectInMenu]
SubCommand_1 = "PreviewCallReject"
Title = "Reject Preview Call"
Description = "Reject Preview Call"
MenuPosition = "60.2"

[Command:PreviewCallRejectCloseInMenu]
SubCommand_1 = "PreviewCallRejectClose"
Title = "Reject/Close Preview Call"
Description = "Reject/Close Preview Call"
MenuPosition = "60.3"

[Command:ClassifyOutboundCallInMenu]
SubCommand_1 = "ClassifyAsVoiceInMenu"
SubCommand_2 = "ClassifyAsAnsweringmachineInMenu"
SubCommand_3 = "ClassifyAsFaxInMenu"
SubCommand_4 = "ClassifyAsInvalidInMenu"
SubCommand_5 = "ClassifyAsNotAtHomeInMenu"
SubCommand_6 = "ClassifyAsWrongNumberInMenu"
Title = "Classify Outbound Call"
Description = "Classify Outbound Call"
MenuPosition = "60.5"

[Command:ClassifyAsVoiceInMenu]
SubCommand_1 = "ClassifyAsVoice"
Title = "Classify As Voice"
Description = "Classify As Voice"
MenuPosition = "60.5.1"

[Command:ClassifyAsAnsweringmachineInMenu]
SubCommand_1 = "ClassifyAsAnsweringmachine"
Title = "Classify As Answering Machine"
Description = "Classify As Answering Machine"
MenuPosition = "60.5.2"

[Command:ClassifyAsFaxInMenu]
SubCommand_1 = "ClassifyAsFax"
Title = "Classify As Fax"
Description = "Classify As Fax"
MenuPosition = "60.5.3"

[Command:ClassifyAsInvalidInMenu]
SubCommand_1 = "ClassifyAsInvalid"
Title = "Classify As Invalid"
Description = "Classify As Invalid"
MenuPosition = "60.5.4"

[Command:ClassifyAsNotAtHomeInMenu]
SubCommand_1 = "ClassifyAsNotAtHome"
Title = "Classify As Not At Home"
Description = "Classify As Not At Home"
MenuPosition = "60.5.5"

[Command:ClassifyAsWrongNumberInMenu]
SubCommand_1 = "ClassifyAsWrongNumber"
Title = "Classify As Wrong Number"
Description = "Classify As Wrong Number"
MenuPosition = "60.5.6"

Event Mapping to Preview Customer Contact

To open the Customer Contact on a preview call, an EventHandler for the "CallVarUpdated" event on calls with the corresponding call type was added.

Please be aware that you should modify the EventLog section to write what you need into the Call Activity record, i.e. in the Description and Comment fields.

    [EventHandler:PreviewOutboundCampaignReservationCall]
Filter.callingDevice = "?*"
FilterSpec = "[callType] >= '27' AND [callType] <= '31' AND NOT [callType] ='29' AND [ECC.BAResponse] IS NULL"
Filter.callDirection = "INCOMING"
DeviceEvent = "CallVarUpdated"
Response = "OnPreviewCampaignCallReserved"
Order = "1"

[EventResponse:OnPreviewCampaignCallReserved]
QueryAfterAnswer = "TRUE"
QueryBusObj = "Contact"
QueryBusComp = "Contact"
QuerySpec = "'Work Phone #'='{callingDevice:Lookup}'"
SingleView = "Contact Detail View"
MultiView = "Contact List View"
FindDialog = "Contact"
FindField.CSN = "Ask Caller"

Event Mapping to Log a Call Activity Record

To write a Call Activity record, an EventHandler for the "CallEstablished" event on calls with the corresponding call type was added.

Please be aware that you should modify the EventLog section to write what you need into the Call Activity record.

    [EventHandler:PreviewOutboundCampaignCallAnswered]
FilterSpec = "[callType] >= '32' AND [callType] <= '37' AND NOT [callType] = '34'"
DeviceEvent = "CallEstablished"
Response = "OnPreviewOutboundCampaignCallAnswered"
Order = "4"

[EventResponse:OnPreviewOutboundCampaignCallAnswered]
QueryAfterAnswer = "TRUE"
QueryBusObj = "Contact"
QueryBusComp = "Contact"
QuerySpec = "'Work Phone #'='{callingDevice:Lookup}'"
SingleLog = "LogPreviewCampaignCallContactFound"
MultiLog = "LogPreviewCampaignCallMultiContactFound"
Log = "LogPreviewCampaignCallContactNotFound"
UseCtxData = "TRUE"

[EventLog:LogPreviewCampaignCallContactFound]
AfterWork.'ACD Call Duration' = "{@WorkDuration}"
AfterWork.'Done' = "{@Now}"
AfterWork.'Planned' = "{@WorkStartTime}"
AfterWork.'Started' = "{@WorkStartTime}"
BusComp = "Action"
BusObj = "Contact"
Display = "TRUE"
LogField.'Call Id' = "{trackingID}"
LogField.'Planned' = "{@WorkStartTime}"
LogField.'Started' = "{@WorkStartTime}"
LogField.Comment = "Time={@Now},CT={callType},..."
LogField.Description = "Preview Campaign call contact found"
LogField.Type = "Call - Outbound"
ServiceMethod = "Persistent Customer Dashboard.Update Dashboard from CTI"
ServiceParam.Field = "Id"
ServiceParam.Value = "{Contact.Id}"
Comments = ""

[EventLog:LogPreviewCampaignCallMultiContactFound]
AfterWork.'ACD Call Duration' = "{@WorkDuration}"
AfterWork.'Done' = "{@Now}"
AfterWork.'Planned' = "{\@WorkStartTime}"
AfterWork.'Started' = "{\@WorkStartTime}"
BusComp = "Action"
BusObj = "Contact"
Display = "TRUE"
LogField.'Call Id' = "{trackingID}"
LogField.'Planned' = "{@WorkStartTime}"
LogField.'Started' = "{@WorkStartTime}"
LogField.Comment = "Time={@Now},CT={callType},..."
LogField.Description = "Preview Campaign call multiple contacts found"
LogField.Type = "Call - Outbound"
ServiceMethod = "Persistent Customer Dashboard.CleanDashBoard_UI"
Comments = ""

[EventLog:LogPreviewCampaignCallContactNotFound]
AfterWork.'ACD Call Duration' = "{@WorkDuration}"
AfterWork.'Done' = "{@Now}"
AfterWork.'Planned' = "{@WorkStartTime}"
AfterWork.'Started' = "{@WorkStartTime}"
BusComp = "Action"
BusObj = "Contact"
Display = "TRUE"
LogField.'Call Id' = "{trackingID}"
LogField.'Planned' = "{@WorkStartTime}"
LogField.'Started' = "{@WorkStartTime}"
LogField.Comment = "Time={@Now},CT={callType},..."
LogField.Description = "Preview Campaign call no contact found"
LogField.Type = "Call - Outbound"
ServiceMethod = "Persistent Customer Dashboard.CleanDashBoard_UI"
Comments = ""

Predictive / Progressive Mode

Event Mapping to Open the Customer Contact and Log Call Activity

To open the customer contact and write a call activity record, an EventHandler for the "CallDelivered" event on calls with the corresponding call type was added.

Please be aware that you should modify the EventLog section to write what you need into the Call Activity record, i.e. in the Description and Comment fields.

    [EventHandler:OutboundCampaignCallAnswered]
Filter.callType = "34"
DeviceEvent = "CallDelivered"
Response = "OnOutboundCampaignCallAnswered"
Order = "3"

[EventResponse:OnOutboundCampaignCallAnswered]
QueryAfterAnswer = "TRUE"
QueryBusObj = "Contact"
QueryBusComp = "Contact"
QuerySpec = "'Work Phone #'='{callingDevice:Lookup}'"
SingleView = "Contact Detail View"
MultiView = "Contact List View"
FindDialog = "Contact"
FindField.CSN = "Ask Caller"
SingleLog = "LogCampaignCallContactFound"
MultiLog = "LogCampaignCallMultiContactFound"
FindLog = "LogCampaignCallContactNotFound"
UseCtxData = "TRUE"

[EventLog:LogCampaignCallContactFound]
AfterWork.'ACD Call Duration' = "{@WorkDuration}"
AfterWork.'Done' = "{@Now}"
AfterWork.'Planned' = "{@WorkStartTime}"
AfterWork.'Started' = "{@WorkStartTime}"
BusComp = "Action"
BusObj = "Contact"
Display = "TRUE"
LogField.'Call Id' = "{trackingID}"
LogField.'Planned' = "{@WorkStartTime}"
LogField.'Started' = "{@WorkStartTime}"
LogField.Comment = "Time={@Now},CT={callType},..."
LogField.Description = "Campaign (predictive/progressive) call contact found"
LogField.Type = "Call - Outbound"
ServiceMethod = "Persistent Customer Dashboard.Update Dashboard from CTI"
ServiceParam.Field = "Id"
ServiceParam.Value = "{Contact.Id}"
Comments = ""

[EventLog:LogCampaignCallMultiContactFound]
AfterWork.'ACD Call Duration' = "{@WorkDuration}"
AfterWork.'Done' = "{@Now}"
AfterWork.'Planned' = "{@WorkStartTime}"
AfterWork.'Started' = "{@WorkStartTime}"
BusComp = "Action"
BusObj = "Contact"
Display = "TRUE"
LogField.'Call Id' = "{trackingID}"
LogField.'Planned' = "{@WorkStartTime}"
LogField.'Started' = "{@WorkStartTime}"
LogField.Comment = "Time={@Now},CT={callType},..."
LogField.Description = "Campaign (predictive/progressive) multiple contacts found"
LogField.Type = "Call - Outbound"
ServiceMethod = "Persistent Customer Dashboard.CleanDashBoard_UI"
Comments = ""

[EventLog:LogCampaignCallContactNotFound]
AfterWork.'ACD Call Duration' = "{@WorkDuration}"
AfterWork.'Done' = "{@Now}"
AfterWork.'Planned' = "{@WorkStartTime}"
AfterWork.'Started' = "{@WorkStartTime}"
BusComp = "Action"
BusObj = "Contact"
Display = "TRUE"
LogField.'Call Id' = "{trackingID}"
LogField.'Planned' = "{@WorkStartTime}"
LogField.'Started' = "{@WorkStartTime}"
LogField.Comment = "Time={@Now},CT={callType},..."
LogField.Description = "Campaign (predictive/progressive) call no contact found"
LogField.Type = "Call - Outbound"
ServiceMethod = "Persistent Customer Dashboard.CleanDashBoard_UI"
Comments = ""

Connects for Siebel Default Definition File for Cisco Outbound Option

Step-by-Step tutorial for Siebel Tools

info

It's highly recommended to perform the following changes within this section on a local Siebel database and to check in the changes finally to the server database.
The following instructions are all described working with the local Siebel database.

Prerequisites

  1. Open Siebel Tools (1), enter login credentials for a connection to the local Siebel database (2) and login by press the button "OK".

    Siebel Tools Login

  2. Configure the "Object Explorer" view permissions, to see all needed components and their fields during the configuration of this web service.

    a. Open "Development Tools Options" dialog window over menu "View > Options…" (1) and change to tab "Object Explorer" (2)

    ![Development Tools Options](assets/DevelopmentToolsOptions.png "Development Tools Options")

    b. Select in addition the following objects (if not yet enabled).

    ObjectValue
    Applet (with additional sub-tree object "Applet User Prop")ENABLED

Step 1: Lock the project containing the applet

The changes we will make in this tutorial will modify the "Activity Form Applet" from the project "Activity (SSE)", so first check the current state from the Siebel server and lock the project "Activity (SSE)":

Select the record "Project" in the "Object Explorer" view (1), choose the project record "Activity (SSE)" (2) and lock the project by enabling the parameter "Locked" (3).

Siebel Tools Lock Project - Activity

Step 2: Set filter for project specific overview

Open project list field on object explorer view (1) and select project "Activity (SSE)" (2) or alternatively project "** My Locked Projects **".

Siebel Tools Project Set Filter

Step 3: Add Fields and Buttons to the Applet

  1. Edit corresponding applet:
    First, select the record "Applet" in the "Object Explorer" view (1). Then, select the record "Activity Form Applet" in the applets list (2) and choose "Edit Web Layouts" on context menu of the record (3).
    Siebel Tools Edit Web Layouts

  2. Tide up view hiding the currently not used windows:
    Press "auto hide" icon of each not used window (1) to collapse the window (2)
    Siebel Tools Auto Hide

  3. Scale down the existing fields and move them leftwards (1) to create space for new fields (2).
    Siebel Tools Web Layouts - Space

  4. Add a "FormSection" web control element with the caption "Scheduled Callback":
    Open window "Palettes" (1) and pull a web control element "FormSection" per drag & drop method on the applet form (2). Then, open the context menu on the new element and choose "View Properties Window" (3). On the "Properties" window configure value "Scheduled Callback" for the parameter "Caption – String Override" (4) and configure value "20" for the parameter "HTML Height" (5).
    Siebel Tools Web Layouts - Form Section Siebel Tools Web Layouts - Schedule Callback

  5. Move the "Due" field under the new form section element and label it with "Time and Date":
    Mark the text element "Due" (incl. label field) and move it under the new form section element (1). Then, select the text field (2) and configure "Time and Date" as new value for the parameter "Caption – String Override" on the window "Properties" (3).
    Siebel Tools Web Layouts - Due Field

  6. Add a "Field" web control element with the caption "Call Me Phone No.":
    Open again window "Palettes" (1) and pull a web control element "Field" per drag & drop method on the applet form (2). Then, open the context menu on the new element and choose "View Properties Window" (3) again and configure value "Call Me Phone No." for the parameters "Caption – String Override" (4) and "Field" (5) on the "Properties" window.
    Siebel Tools Web Layouts - Add HTML Field Siebel Tools Web Layouts - Call Me

  7. Add a "Label" web control element with the caption "Phone Number:":
    Open again window "Palettes" (1) and pull a web control element "Label" per drag & drop method on the applet form (2). Then, open the context menu on the new element and choose "View Properties Window" (3) again and configure value "Phone Number:" for the parameter "Caption – String Override" (4) on the "Properties" window.
    Siebel Tools Web Layouts - Add Label Siebel Tools Web Layouts - Label Phone Number

  8. Add two new "Button" web control elements with the captions "Request" and "Cancel":
    Open again window "Palettes" (1) and pull two web control elements "Button" per drag & drop method on the applet form (2).
    Then, open the context menu on one of the new elements and choose "View Properties Window" (3).
    Siebel Tools Web Layouts - Buttons Request Cancel
    Configure the following values on the "Properties" window:

    Button 1:

    ParameterValue
    Caption – String OverrideRequest
    Method InvokedScheduleCallback
    Text AlignmentCenter

    Button 2:

    ParameterValue
    Caption – String OverrideCancel
    Method InvokedCancelCallback
    Text AlignmentCenter
  9. Save and close the editor.

Step 4: Add Named Methods to the Applet

Now we add "Named Methods" to the applet that will be called by the two buttons added in the previous step.

  1. Open "Applet User Prop" list:
    First, select the record "Applet" in the "Object Explorer" view (1). Then, select the record "Activity Form Applet" in the applets list (2) and finally select "Applet User Prop" subtree record of "Applet" (3).
    Siebel Tools Applet User Properties

  2. Add the following applet user properties opening the context menu in the "Applet User Properties" window and choose "New Record" (1):
    Siebel Tools Applet User Properties - New Record

    Request Button:

    NameValue
    Named Method 1: ScheduleCallback'INVOKE','WriteRecord'
    Named Method 2: ScheduleCallback'INVOKESVC', 'Communications Client', 'ScheduleCallbackFromActivity'
    Named Method 3: ScheduleCallback'INVOKESVC', 'Communications Client', 'ShowStatusText', 'Text', '"Callback is scheduled."'

    Additional information:

    • "User Property 1" saves the entered data in the fields to database.
    • "User Property 2" searches for and executes the command "ScheduleCallbackFromActivity", which must be defined in the definition file.
    • "User Property 3" displays a confirmation message to the agent.

    Cancel Button:

    ParameterValue
    Named Method 1: CancelCallback'INVOKESVC', 'Communications Client', 'CancelCallbackFromActivity'
    Named Method 2: CancelCallback'INVOKESVC', 'Communications Client', 'ShowStatusText', 'Text', '"Scheduled callback is cancelled."'

    Additional information:

    • "User Property 1" searches for and executes the command "CancelCallbackFromActivity", which must be defined in the definition file.

    • "User Property 2" displays a confirmation message to the agent.

    Siebel Tools Applet User Properties - Request Cancel

Step 5: Compile Project

  1. Open record "Project" (1) and unlock the project "Activity (SSE)" (2) by disabling parameter "Locked". Siebel Tools Unlock Project - Activity

  2. Navigate to menu "Tools > Check In…" (1) and verify if there is something project "Account (SSE)" relevant to upload to the server database.
    If yes, select project object(s) and press "Check In". Otherwise, press "Cancel". Siebel Tools Check In - Account

  3. Get the new Siebel resource file (.srf) by compiling all projects:

    info

    Do not compile or modify the default repository that Siebel Tools uses. This file is locked because the Siebel Tools client is currently reading it. If you attempt to compile this repository, then Siebel Tools displays an error message.

    To identify the repository you must compile:

    a. Use a text editor to open the application configuration file "tools.cfg" which is located in the directory "SIEBEL_TOOLS_ROOT\bin\language_code
    b. In the Siebel section, examine the parameter "RepositoryFile" to determine the repository that it references (siebel_sia.srf or siebel.srf).

    Navigate to menu "Tools > Compile Projects…" (1), select option "All projects" (2), choose repository path & filename (3) and press "Compile" to generate new resource file (4).

    Siebel Tools Compile Projects

Step 6: Deploy Project

  1. Stop the "Siebel Server" service on the Siebel application server(s). Siebel Server Stop Service

  2. Overwrite the current .srf file on the Siebel application server(s) with the just new compiled .srf file.
    In general the .srf files on the Siebel application server(s) are located under the following path:
    C:\<siebel_installation_folder>\siebelsrv\OBJECTS\<language>\

    info

    Make a copy of the current .srf file before the replacement.

    Backup Siebel Repository

  3. Start the "Siebel Server" service on the Siebel application server(s) again. Siebel Server Start Service