This chapter discusses how to:
Work with sample pages.
Use and demonstrate the JavaScript MultiChannel API (JSMCAPI).
Use PeopleCode built-in functions.
Use Universal Queue classes.
Note. Applications use the PeopleCode built-in function GenerateComponentContentRelURL() to build the relative URLs of the pages that appear when the agent accepts a task. This built-in function takes the portal node as a parameter. This node must have a content URI configured in the PeopleSoft Portal administration pages to ensure that the correct URL is generated.
To demonstrate MCF tools and functionality, use the MCF Sample Pages (MCF_DEMO_CMP) component.
This section discusses how to:
Use the Customer Chat sample page.
Use the URL wizard.
Use the Generic Event sample page.
Use the Generic Event window.
Use the Email sample page.
Use the Email window.
Page Name |
Object Name |
Navigation |
Usage |
Customer Chat |
MCF_DEMO_PG |
PeopleTools, MultiChannel Framework, Universal Queue, Sample Pages, Customer Chat |
View a customer chat session and built-in functions. |
Generic Event |
MCF_DEMO_NOTIFY_PG |
PeopleTools, MultiChannel Framework, Universal Queue, Sample Pages, Generic Event |
View a generic event notification and built-in functions. |
|
MCF_DEMOEM_NTFY_PG |
PeopleTools, MultiChannel Framework, Universal Queue, Sample Pages, Email |
View email retrieval, built-in functions, and application package classes. |
Access the Customer Chat page.
This page demonstrates the InitChat() built-in function, including required and optional parameters.
This page is not intended for production use. On a typical application page, the developer includes a Live Help or Customer Chat button that calls the InitChat() built-in function and passes required parameters, including the context of the chat request. The sample customer chat page demonstrates values that can be included in the InitChat() parameters. The user may not be prompted for any information.
To run a sample chat:
Access the MultiChannel Console.
Open the Customer Chat page.
Open the Queue ID drop-down list box and select the queue that you are logged on to.
The other fields are automatically populated with values that generate a sample chat session. You can change the values as long as valid required values are included.
The User URL is a required field that contains the application page URL to send to the agent chat browser.
The optional Wizard URL field represents a grab URL; the actual page that appears is determined by InitChat() parameters.
The text box displays error messages and additional information for using the sample page.
Click Customer Chat.
The customer chat window appears.
On the MultiChannel Console, click the flashing chat notification icon to accept the chat session.
The agent chat window appears.
You can input text as both agent and customer to demonstrate chat functionality.
Click Select from the agent chat window during a chat session to open the URL wizard:
Use the wizard to form a URL to send to the customer. The URL Wizard page is a template that demonstrates constructing a URL and sending it to a customer. The URL wizard can be used as-is or as the basis for developing URL generation for your application.
URL Type |
Select the type of URL being grabbed:
Fields not required by the selected URL type are not available. |
Show Relative URL |
Click to display the relative URL generated by the values that you have entered into the page's fields. |
URL |
Displays the generated relative URL. |
Push |
Click to send the generated relative URL to the customer's chat window. The Push button demonstrates functionality that must be included in an application-specific URL wizard. |
Push and Close |
Click to send the generated relative URL to the customer's chat window and close the URL wizard. The Push and Close button demonstrates functionality that must be included in an application-specific URL wizard. |
Access the Generic Event page.
This page demonstrates a generic persistent event using the EnQueue() and NotifyQ() built-in functions, including required and optional parameters.
This page is not intended for production use. On a typical application page, the developer includes an Enqueue or similar button that calls the EnQueue() built-in function and passes required parameters, including the context of the request. The sample customer chat page demonstrates values that can be included in the EnQueue() parameters. The user may not be prompted for any information.
To run a sample generic event:
Access the MultiChannel Console.
Open the Generic Event page.
Open the Queue ID drop-down list box and select the queue that you are logged on to.
Open the Agent ID drop-down list box and select the agent ID that you are logged on with.
Select Generic for the task type.
Click Notify.
On the MultiChannel Console, click the flashing event notification icon to accept the event.
The Generic Event window appears.
The format of the generic event window is determined by application developers. PeopleSoft supplies a sample generic event window to demonstrate the available functionality, including the DeQueue() built-in.
Configure the size and initial location of the generic event window on the Agent Window Configuration page:
Description |
Displays text from the generic event. |
To Queue ID |
Select a queue to which the generic event will be forwarded. |
Task ID |
Select the task ID of the generic event to forward. |
To Agent ID |
Select the agent ID to whom the generic event will be forwarded. |
Task Type |
Select the task type of the generic event to be forwarded. |
Forward |
Click to send the generic event to the selected agent or queue. The Forward button demonstrates the functionality of the Forward() built-in function. |
Click to notify the real-time event notification (REN) server that you are done with this task. A message asks if you want to close the window. The Done button demonstrates the functionality of the DeQueue() built-in function. |
See Also
Access the Email page.
The email sample pages are intended for demonstration purposes and should not be used in production.
EnQueue() and NotifyQ() may also be called from PeopleSoft Application Engine batch programs.
See PeopleCode Built-in Functions.
Note. To fully demonstrate the functionality of the Email sample page, an email must be read and written to the email database using the GetMail - Server sample page.
To process a sample email:
Access the MultiChannel Console.
Open the Email page.
Open the Queue ID drop-down list box and select the queue that you are logged on to.
Open the Agent ID drop-down list box and select the agent ID that you are logged on with.
Click Notify.
On the MultiChannel Console, click the flashing email notification icon to accept the email.
The email window appears.
The format of the email window is determined by application developers. PeopleSoft supplies a sample email event window to demonstrate available functionality.
Configure the size and initial location of the email event window on the agents Window Configuration page.
The following example shows an email window:
To Queue ID |
To forward the email to another queue, select a queue ID from the drop-down list box and click Forward. |
To Agent ID |
To forward the email to another agent, select an agent ID from the drop-down list box and click Forward. |
Click to forward the email to the specified queue or agent. This Forward button demonstrates the functionality of the Forward() built-in function. |
|
Click to exit the email and remove it from the queue. The Done button demonstrates the functionality of the DeQueue() built-in. |
Email Parts
If an email has been broken into parts stored in the email database, or has an attachment, they can be accessed here.
See Also
Demonstrating the Email Channel
To demonstrate MCF consoles and tools that use JSMCAPI, use the CTI Sample Pages (PT_CTI_DEMOOUTB) and MCF Sample Pages (MCF_DEMO_CMP) components.
This section provides an overview of JSMCAPI and discusses how to:
Use the CTI Sample Console page and Sample CTI Console.
Use the Agent Console page and Sample UQ Agent Console.
Use the Monitor Agents page and Sample Monitor - Agent States page.
Use the Monitor Queues page Sample Monitor - Queue Statistics page.
The JavaScript MultiChannel Application Programming Interface (JSMCAPI) enables custom configuration of MCF consoles (including the CTI console), MCF functionality on a PeopleSoft Pure Internet Architecture page, and queue and agent monitoring. For example, developers can create supervisor dashboards with which to monitor activity on their channels of interest, or developers can modify consoles according to their company's business requirements. The JSMCAPI builds on the real-time event notification (REN) JavaScript client. JSMCAPI uses standard JavaScript.
PeopleSoft provides sample pages demonstrating the functionality enabled by JSMCAPI. These pages are for demonstration purposes only, and should not be used in a production environment.
JSMCAPI is delivered with PeopleTools; there is no need for a separate installation. The jsmcapi.js file is located in the <PS_HOME>\webserv\<domain>\applications\peoplesoft\PORTAL\ps\pMCF folder.
See Also
Pages Used to Demonstrate JSMCAPI
This section discusses common elements used on the CTI sample pages.
Common Elements Used in CTI Sample Pages
The following common elements are used in CTI sample pages.
Agent Id |
Specify the CTI or MCF agent's agent ID. In the case of a CTI agent, the agent ID may be different from the agent's user ID. |
g/e/c |
Represents three task types: generic, email, chat. |
|
Click to initiate the action selected in the associated drop-down list box. |
MCF Cluster ID |
Specify the MCF cluster to be monitored or on which to test the sample console. |
Physical Queue |
Specify the physical queue to be monitored. Each MCF logical queue can comprise one or more physical queues. Because each physical queue is associated with an MCF cluster, only physical queues can be monitored. |
State |
The State field displays a value indicating the state of the associated element. |
Statistics |
The Statistics fields display statistics generated by the CTI server. |
User Id |
The CTI agent's PeopleSoft user ID. |
Page Name |
Object Name |
Navigation |
Usage |
Agent Console |
PT_SAMPLEAGNTCONSL |
PeopleTools, MultiChannel Framework, Universal Queue, Sample Pages, Agent Console |
View a sample MultiChannel Console generated using JSMCAPI |
CTI Sample Console |
CTI_SAMPLECONSOLE |
PeopleTools, MultiChannel Framework, CTI Configuration, Sample Pages, CTI Sample Console |
View a sample CTI console generated using JSMCAPI. |
Monitor Agents |
PT_UQSAMPLECNSL |
PeopleTools, MultiChannel Framework, Universal Queue, Sample Pages, Monitor Agents |
View a sample agent statistics monitoring page. |
Monitor Queues |
PT_UQSAMPLECNSQ |
PeopleTools, MultiChannel Framework, Universal Queue, Sample Pages, Monitor Queues |
View a sample queue statistics monitoring page. |
Access the CTI Sample Console page.
REN Server Cluster ID |
Specify the REN server cluster on which to test the sample console. |
CTI Sample Console |
Click to initiate the sample console. Note. To demonstrate the CTI sample console, you must have a CTI server running and communicating with the specified REN server cluster. |
After clicking CTI Sample Console, a new browser window appears that displays the sample console.
Note. To enable the new browser window to appear, disable any pop-up blocking software for your browser.
Open/Close Session
Access the Open/Close Session group box.
The Open/Close Session group box displays information about the session.
CTI Session Id |
The CTI Session Id field displays a value identifying the session. If no session ID is displayed, check to ensure that the CTI server and REN server are both running. |
You can close an active session by clicking the Go button. You cannot make a selection from the drop-down list box.
Register User to Session
Access the Register User to Session group box.
Register a user to the session in the Register User to Session group box.
Because a CTI agent can have an agent ID different from the agent's user ID, both values are required. If the agent has a password, the password is also required.
Language |
Reserved for future use. The default language is English. |
You can register or unregister an agent by clicking the Go button. You cannot make a selection from the drop-down list box.
Register Group, Login User to Group, and User-Group States
Access the Register Group, Login User to Group, and User-Group States group box.
Group Id |
Enter the group ID to which the agent will be registered. To register the agent with the specified group, click the Go button. You cannot make a selection from the drop-down list box. |
Login |
Click the Go button to log in if Login appears in the drop-down list box. Click the Go button to log out if Logout appears in the drop-down list box. Note. The agent cannot receive calls until the agent is in the Ready state. |
Presence |
Enter a presence description to associate with the state selected in the drop-down list box. This presence value is different from any presence values pre-defined in the agent configuration. The agent cannot select from the pre-defined values. |
State |
Select an agent state. State options are:
Each state value has an associated state code that appears in the State field. To enable incoming calls, select Ready from the drop-down list box and click the Go button. |
Media Type |
Reserved for future use. The sample console only supports the telephone (voice) channel. However, JSMCAPI can support other channels. |
Register Extension to Session, and Extension Operations
Access the Register Extension to Session, and Extension Operations group box.
Extension |
Specify a valid telephone extension number. |
Phone Number |
Specify a valid telephone number for use in subsequent operations, such as dial, forward, or do-not-disturb (DND). |
Forward |
Select to forward incoming calls to the specified number. |
DND (do not disturb) |
Select to put the selected extension in do-not-disturb status. |
Line 1 or Line 2 |
Displays a name or value for each line. On the sample console, the value will either be 1 or 2. |
User Data |
Specify name-value pairs representing user data to be attached to a call. |
Call Data |
Specify any call data to be attached to the call. Call data includes:
|
Buddies
Access the Buddies group box.
Before an agent can chat with a buddy, the buddy must be registered in the Buddies group box.
Because a CTI agent can have an agent ID different from the agent's user ID, both values are required.
Server State and Broadcasts
Access the Server State and Broadcasts group box.
CTI State |
Displays the status of the CTI server. |
REN State |
Displays the status of the REN server. |
Info (information) |
Displays the text of a broadcast message from the CTI server. |
Tracer
The tracer displays all requests between the CTI server and the console, which can be useful for debugging.
Access the Agent Console page.
MCF Sample Console |
Click to initiate the sample console. Note. To demonstrate the MCF sample console, you must have an MCF cluster running and communicating with the specified REN server cluster. |
After clicking MCF Sample Console, a new browser window appears that displays the sample console.
Note. To enable the new browser window to appear, disable any pop-up blocking software for your browser.
Open/Close Session
Access the Open/Close Session group box.
UQ Session Id |
The universal queue session ID. |
Register User to Session
Access the Register User to Session group box.
Register Group, Login User to Group, and User-Group States
Access the Register Group, Login User to Group, and User-Group States group box.
Address Operations
Access the Address Operations group box.
Buddies
Access the Buddies group box.
|
Click to initiate an agent-to-agent chat session. |
Server State and Broadcasts
Access the Server State and Broadcasts group box.
UQ State |
Displays the state of the queue server. |
REN State |
Displays the state of the REN server. |
Access the Monitor Agents page.
Specify the MCF cluster, physical queue on that cluster, and up to five agents on that queue to be monitored.
After clicking Monitor Agent States, a new browser window appears.
Note. To enable the new browser window to appear, disable any pop-up blocking software for your browser.
Physical Queue
The ID of the physical queue being monitored appears in the first table.
Agent Statistics Table 1
The first agent statistics table displays information published by the JSMCAPI user.onStat1 event..
Time in Current State |
Displays the duration of the agent's current state. Returned by timeInCurrentState. |
Time Since Login |
Denotes the duration since the agent logged in. Returned by timeLogin. |
Num. Tasks Accepted: g/e/c (number of tasks accepted) |
Displays the number of tasks in each task type that the agent has accepted since login. Returned by numTaskAccepted. |
Num. Tasks Unassigned: g/e/c (number of tasks unassigned) |
Displays the number of tasks in each task type that have been unassigned from the agent. Returned by numTasksUnassigned. |
Num. Tasks Done: g/e/c (number of tasks done) |
Displays the number of tasks in each task type that the agent has completed. Returned by numTasksDone. |
Most Recent Task: g/e/c |
Identifies the most recent task accepted since login for each task type. Returned by mostRecentTaskId. |
Most Recent Task Data: g/e/c |
Displays data on the most recent task accepted since login for each task type. Returned by mostRecentTaskInfo |
Agent Statistics Table 2
The second agent statistics table displays information published by the JSMCAPI user.onStat2 event.
Time Idle |
Displays the duration of time during which the agent has been idle. An agent is considered to be idle from the time the agent logs on until the agent accepts a task, and during the time between completing the last accepted task and accepting another task. Returned by timeIdle. |
Time not Ready |
Displays the duration of time during which the queue could not assign tasks to the agent because the agent's maximum workload has been reached. Returned by timeNotReady. |
Total Time Available |
Displays the total amount of time the agent has been in an available status. Returned by totalTimeAvailable. |
Total Time Unavailable |
Displays the total amount of time the agent has been in an unavailable status. Returned by totalTimeUnavailable. |
Access the Monitor Queues Page.
Specify the MCF cluster and up to five physical queues on that cluster to be monitored.
After clicking Monitor Queue Statistics, a new browser window appears.
Note. To enable the new browser window to appear, disable any pop-up blocking software for your browser.
Queue Statistics 1
The first queue statistics table displays data that does not change frequently. The table displays information published by the JSMCAPI group.onStat1 event.
Queue |
Displays an identifier for this queue. Returned by Queue_Id. |
Time Since Start |
The duration since this queue was started (application server domain start). Returned by timeSinceStart. |
Num. Agents in Queue (number of agents in queue) |
The number of agents currently logged in to this queue. Returned by numAgentsLoggedIn. |
Num. Agents Available (number of agents available) |
The number of agents currently logged in to this queue with an available status. Returned by numAgentsAvail. |
Num. Tasks in Queue: g/e/c (number of tasks in queue) |
The number of tasks currently on this queue, by task type. Returned by numTasksQueued. |
Num. Tasks Accepted: g/e/c (number of tasks accepted) |
The number of accepted tasks currently on this queue, by task type. Returned by numTaskAccepted. |
Num. Tasks Done: g/e/c (number of tasks done) |
The number of tasks on this queue that have been completed, by task type. Returned by numTaskDone. |
Num. Escalation: g/e/c (number of escalation) |
The number of escalated tasks on this queue, by task type. Returned by numEscalation. |
Num. Overflow: g/e/c (number of overflow) |
The number of overflow tasks on this queue, by task type. Returned by numOverflow. |
Task Total Time in System: g/e/c |
Displays the total duration of the most recently completed task in the system. The total time is the difference between the time the task was enqueued and the time at which it was marked done. Returned by taskTotalTimeInSystem. |
Queue Statistics 2
The second queue statistics table displays data that changes frequently. The table displays information published by the JSMCAPI group.onStat1 event.
Most Recent Task Enqueued: g/e/c |
Identifies the task most recently enqueued on this queue, by task type. Returned by mostRecentTaskEnqueued. |
Most Recent Task Enqueued Data: g/e/c |
Displays data for the most recently enqueued task on this queue, by task type. Returned by mostRecentTasksEnqueuedData. |
Most Recent Tasks Done: g/e/c |
Identifies the task most recently completed, by task type. Returned by mostRecentTaskDone. |
Most Recent Task Done Data: g/e/c |
Displays data for the most recently completed tasks, by task type. Returned by mostRecentTaskDoneData. |
Queue Statistics 3
The table displays information published by the JSMCAPI group.onStat2 event.
Oldest Task: g/e/c |
Identifies the oldest enqueued and accepted task on this queue, by task type. Returned by oldestTask. |
Time Elapsed for Oldest Task: g/e/c |
Displays the duration that the oldest task on this queue has been enqueued, by task type. Returned by timeElapsedOldestTask. |
Recent Task: g/e/c |
Identifies the most recent task enqueued and accepted on this queue, by task type. Returned by recentTask. |
Time Elapsed for Recent Task: g/e/c |
Displays the duration that the most recent task on this queue has been enqueued, by task type. Returned by timeElapsedRecentTask. |
Avg. Wait Time: g/e/c (average wait time) |
Displays the average time between a task being enqueued and being accepted, by task type. Returned by averageWaitTime. |
Avg. Task Duration: g/e/c (average task duration) |
Displays the average duration before a task is completed. Returned by averageTaskDuration. The average task duration is calculated by referencing a list of completed tasks. The size of that list is determined by the donelistsize parameter set on the Cluster Tuning page. |
PeopleSoft MultiChannel Framework uses several PeopleCode built-in functions. Application developers use these functions to communicate task requests and parameters to the queue server. For example, use InitChat code behind a button on an application page to initiate a chat session with an agent.
The built-in function are:
Use DeQueue to notify the queue server that an enqueued task has been completed and to remove the task from the queue.
Use EnQueue to add a task to an active physical queue belonging to the specified logical queue.
Use Forward to transfer a task from one agent to another agent or another logical queue.
Use InitChat to place a customer chat request on a queue.
Use NotifyQ to notify the queue server of a task enqueued by EnQueue.
See PeopleCode Built-in Functions.
The universal queue classes provide the means by which applications can inspect objects that are processed by the queue server, such as tasks, agents, and queues. The classes also enable tasks to reenter the queue with their original task ID, as well as keep task times based on their original entry into the system.