1 / 48

Design & Development Aheeva Education & Certification Services

Design & Development Aheeva Education & Certification Services. Inbound Module. Inbound Services. An advanced and flexible mechanism for optimizing agents’ time utilization Powerful graphical tool for building Interactive Voice Response services and Routing Scripts

ursula-dean
Download Presentation

Design & Development Aheeva Education & Certification Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design & DevelopmentAheeva Education & Certification Services

  2. Inbound Module

  3. Inbound Services • An advanced and flexible mechanism for optimizing agents’ time utilization • Powerful graphical tool for building Interactive Voice Response services and Routing Scripts • Dynamically modify your Routing Scripts • Routing of calls to agents based on: • Agent skills • Most idle in a group • Least busy in a group • In this training you will learn how to use all the functionalities that are included in the Aheeva Inbound module

  4. Pre-requisites • A functional Aheeva CCS Manager for demonstration and practice purposes • Knowledge of • Agent management • Agent group management • Basic knowledge of • Asterisk’s configuration files • MySQL database • HTML programming with PHP • Optional C/C++ progamming for building a Custom Server

  5. Agenda • Making sure all processes are running • DNIS configuration in Asterisk • Invoking a Routing script from Asterisk • Defining skills • Creating a Routing script • Distributing calls to agents from an agent group • Distributing calls to agents with a specific set of skills • Configuring Queues • Live statistics for Queues • Customizing data screens (pop-up screens) • Reports for Inbound services

  6. Processes • Making sure all processes are running

  7. Step-by-step (1) • In Asterisk configuration files • Add an entry for the DNIS associated with the Inbound service in aheeva_dialplan.conf in the context [aheeva] • For each agent, create a user in the appropriate technology file, depending on the device the agent will be using • iax.conf if the agent is using the Aheeva Starphone or the web-based AhevaPhone • sip.conf if the agent is using a SIP hardphone • zapata.conf if the agent is using an analog phone • If the agent is using the Aheeva Starphone application, then create an agent in agents.conf for each agent. No need to create such an entry if the agent is using the AheevaPhone or a hardphone • Setup any necessary Music On Hold classes in musiconhold.conf

  8. Step-by-step (2) • In Aheeva CCS Manager • Create the agent group associated with the inbound service • Create the skills • Create the agents and assign value to their skills • Create the routing script associated with the inbound service

  9. Step-by-step (3) • Optional custom server in Aheeva CCS • Create the source file containing the functions of the library • Edit the configuration file that lists the modules and their functions • Compile the source file to generate the shared library

  10. Asterisk Configuration - DNIS • The ‘aheeva’ context in aheeva_dialplan.conf is the context in which all incoming calls land. The only change you need to do in it is the eventual addition of a new DNIS and associating this DNIS with a Routing script • The ‘aheeva_sbr’ context in aheeva_dialplan.conf (‘sbr’ stands for Skill Based Routing) is responsible for invoking the routing script. No change is necessaryin this context • Add the DNIS associated with the inbound service in aheeva_dialplan.conf • Locate the context ‘aheeva’ and add an entry for the DNIS in it. Two possible syntaxes for the entry: • Without any parameters. This form assumes that the DNIS is always received with the call [aheeva] exten => DNIS_value,1,Goto(aheeva_sbr,s,1) … • With one or multiple parameters. The parameters can be retrieved in the routing script by defining ‘Call properties’ with the exact same name as the parameters. [aheeva] exten => DNIS_value,1,Goto(aheeva_sbr,s[^Param1=Value1[^Param2=Value2]…],1) …

  11. Asterisk Configuration - IAX • Create an IAX user of type ‘friend’ in iax.conf for each agent. Only for agents using the Windows Starphone or the AheevaPhone. • The user name is the agent’s ID • The entry must be similar to [1001] type=friend host=dynamic context=agents permit=0.0.0.0/0.0.0.0 disallow=all allow=ulaw

  12. Asterisk Configuration - Agents • Create an agent in agents.conf for each agent. Only for agents using the Windows Starphone • Do not specify a password for the agent • The parameter musiconhold must be set to ‘none’ musiconhold => none agent => 1001,,Agent agent => 1002,,Agent

  13. Asterisk Configuration – MOH (1) • Create a Music On Hold class for the inbound service • Define the class in musiconhold.conf • By setting the ‘mode’ to ‘files’ Asterisk reads files from the directory in any Asterisk supported format

  14. Asterisk Configuration – MOH (2) • Supported format include • WAV • Bit Rate: 128 Kbps • Audio sample size: 16 bit • Channels: 1 (mono) • Audio sample rate: 8KHz • Audio format PCM • RAW - Need to be created in the following way • Make sure the original music file is in WAV format • Use sox, a tool feely available under Linux, to convert the WAV file into a RAW • Place the raw music-on hold-file in the directory specified in the Asterisk configuration file /etc/asterisk/musiconhold.conf for the desired class. • Reload the Asterisk configuration

  15. Routing scripts • Start the routing script builder • Tenant Routing Scripts  <Add Routing Script> • Aheeva CCS provides a graphical interface for building IVRs, routing scripts, and distributing calls to agents • All the operations are accessible from the drop-down menu, and the most frequently used one can be launched directly by clicking on the appropriate icon on the toolbar • Aheeva CCS provides a graphical interface for building IVRs, routing scripts, and distributing calls to agents • When looking for a script to execute, the CCS server parses all available scripts and picks the one whose initial condition (the first action of the script should be an IF-ELSE) is TRUE. If more then one script fulfills the condition, then the one with the highest priority is selected for execution (priority 1 is higher than priority 2)

  16. Routing scripts –Menu bar (1) • Menu bar  Script • Common operations like New/Open/Save/etc. • Script Statistics: Show the values of any counters part of the routing script • Menu bar  Edit • Undo/redo, zoom in/zoom out • Clear diagram • Validate diagram: Checks for construction errors, but does not detect logic errors • Call properties: Properties are variables used in the routing script

  17. Routing scripts –Menu bar (2) • Menu bar  Tools • Statements: • Conditional statement IF-ELSE • Conditional statement SWITCH-CASE • Actions: • Agent pickup method • Call priority increment • Application execute • Get DTMF • Database query • Custom server • End call • Link boxes • Statistics: • Counter • Get statistic

  18. Routing scripts – Call Properties • Call Properties • The Call Properties box lists the standard variables and the ones created by the operations like results of database queries and DTMF captures • Standard variables: • ANI: Automatic Number Identification • DNID: Dialed Number Identifier (DNIS) • CALLDATE: yyyymmdd • CALLTIME: hhmmss • You can manually add new properties, for example if you invoke a function from a custom server, to retrieve the returned values

  19. Routing scripts – Conditional statements • IF-ELSE • Typical if-then-else condition • The Call Property drop-down menu gives access to all the defined script variables • The Operator can be ≤, <, =, >, ≥, !=, or LIKE • Seek value is the value to compare against • SWITCH-CASE • Multi-branch statement • The order of entries is very important. They get evaluated from the top down. The first one from the top that is TRUE exits • The Properties drop-down menu gives access to all the defined script variables • The Operator can be ≤, <, =, >, ≥, !=, or LIKE • Parameters is the value to compare against

  20. Routing scripts –Asterisk application execution • Access to all Asterisk application directly from the script builder (Answer, AGI, Dial, Voicemail, etc.) • The channel is automatically passed to the application when invoked • You can select multiple application to execute in one box, and you can change the order of execution by moving them using the up and down arrows • Parameters is the complete parameter you would pass to any of the applications

  21. Routing scripts –Database query • Run a SQL query on any table in the Aheeva CCS database • All SQL command can be executed, even ‘drop table’ • Any call property used in an expression must be preceeded by the $ sign to indicate its value • A SELECT statement can return multiple rows and columns i.e. SELECT first_name, last_name FROM myTable WHERE account_nbr=“$acc_nbr” • The Result Name is the local variable that will store the result of the query. The result can be a multi-column and multi-row table where the first dimension is an index on the row and the second dimension is an index on the column: result[row][col] • Examples: Results of the previous query are as follow (res being the loca variable Result Name) • res[0]: first_name of the first row (row 0) • res[1]: last_name of the first row (row 0) • res[0][0]: first_name of the first row (row 0) • res[0][1]: last_name of the first row (row 0) • res[1][0]: first_name of the second row (row 1) • res[1][1]: last_name of the second row (row 1)

  22. Routing scripts –DTMF entry & Statistics access • Get DTMF • Play a prompt to the caller asking him to enter a DTMF sequence that will be stored in the ‘Data name’ variable • The voice message must be stored on he Asterisk servers in the directory /var/lib/asterisk/sounds • The ‘Enders’ can be used to choose the character that will terminate the data entry, i.e. ‘#’ • If no DTMFs are entered within the timeout specified, the ‘Default Value’ will be the value of the variable • Get Statistics • Access all real-time queue statistics and agents statistics • For queue statistics you must specify the queue name and choose the type of statistic: Waiting Calls, Calls Entered, Calls Distributed, Abandoned Calls, Longest Waiting Call, Service Factor, Current Average Waiting Time, and Average Waiting Time • For agents statistics you must specify the agent group or a combination of skills, and the type pf statistic: Waiting Agents, Login Agents, Configured Agents

  23. Routing scripts –Custom Server (1) • The ‘custom server’ is a library of C/C++ functions, compiled to produce a shared library (.so binary file) under Linux • The command to compile a custom server abcd.cpp • g++ -lstdc++ abcd.cpp -o abcd.so -shared -fPIC • The source file contains the functions prototype as well as the implementation. The prototype looks like char* function1(char *); • After successfully compiling the library, add the module and function names in the custom server configuration file cs.xml <?xml version="1.0"?> <CustomServer> <Module name=“CustomServer1"> <filename>library1.so</filename> <functions> <function name=“function1" /> … <function name=“functionN" /> </functions> </Module> ... </CustomServer>

  24. Routing scripts –Custom Server (2) • You must restart the CCS server in order to load the library and have it available to the custom server • Invoke a custom server function from the script builder by specifying • The Library: The module name specified in cs.xml • The Function: The function name specified in cs.xml • Optional parameters: A string passed as an input parameter to the function. It could have any format. It is the function’s responsibility to interpret it correctly • To return values, the function must format a sequence of Key-Value pairs into an array of characters: [Param1=Value[^Param2=Value2[…^ParamN=ValueN]…]] • The returned parameters (Param1, Param2, etc.) must be explicitly created as Call Properties prior to using the Custom Server box • You can choose any names for the parameters, as long as they match the ones that the function returns

  25. Routing scripts –Counters, Calls Priority & Call Ending • Counters are used to indicate the number of times a call passed in a certain branch of the script. They can be attached to a routing script or reset every call, and you can display their value directly on the graphical interface of the builder • Priority Increment increases the priority of a call and moves it forward in the queue • Increments range from +1 to +10 • Call Ending box is used to terminate the call with a specific action • Hangup • Voicemail • Transfer

  26. Routing scripts –Attach Variables • You can create a set of key/value pairs that will persist throughout the life of the call • These variables can be attached to the call when distributed to an agent • The values can be DTMF entries, results of database queries, statistics, etc.

  27. Routing scripts –Agent Pickup Method (1) • The agent Pickup Method box is where you specify the requirements for finding the best agents to handle the call • Minimum required: A single or a logical combination of conditions that determine whether an agent is eligible to handle the call. Includes: • An agent group • A specific agent • A skill and its minimum value • The Minimum required could be as simple as AgentGroup=AheevaGroup or more complexe (English=100 AND Sales>75 AND AgentGroup=AheevaGroup) OR AgentGroup=SalesGroup

  28. Routing scripts –Agent Pickup Method (2) • Timeout: How long do we wait for an available agent? • Action during timeout: What do we do while waiting? Play music-on-hold • Tie Breaker: If we have more then one agent that satisfies the ‘minimum required’, which one do we choose? The most idle or the least busy • Call Priority: Priority of this call in the queue. Can be changed during the life of the call • Url: Specifies the URL we want to push to the agent along with the call. By clicking on the Url/Data button you can switch to the type of information you want: • data: A text message • http://192.168.10.195/info.php?param=$val

  29. Routing scripts –Agent Pickup Method (3) • The ‘Agent viewable variables’ are the variables that we will be attached to the call. The agent will view them in a special area on the AheevaPhone • CALLDATE, CALLTIME, ANI, DNID are always available

  30. Routing scripts –Agent Pickup Method (4) • Announcements active: Check the box to activate the periodical messages that will be played to the caller while waiting for an agent. • The Announcement will stop as soon as an agent becomes available to take a call • The fields ‘Thank-you message’, ‘Current-avg-time message’, and ‘Minutes message’ hold the name of the voice files that will be played • Default wording for the messages • Thank-you message: Thank you for your patience • Current-avg-time message: The estimated hold time is currently • Minutes message: Minutes

  31. Routing scripts –Agent Pickup Method (5) • Behavior of the periodic announcements

  32. Routing scripts – Example

  33. Queues • The queues configuration allow you to set the parameters used in the calculation of the service factor, as well as the level of details of the service level in the queues historical report • Access the queues from the Aheeva CCS Manager • Tenant Resources  Queues  Agent Groups Queues or • Tenant Resources  Queues  Routing script Queues • The queues branch in the CCS Manager resources will be automatically populated with the queues defined in the routing scripts for inbound calls and in the agent groups for outbound calls

  34. Queues –Service Factor • On the Service Factor panel of a selected queue you can specify the parameter that will determine the service factor calculation: • Longest waiting time for response: Calls answered within x seconds, default value is 20 seconds • Abandoned shortest time: Exclude calls abandoned within y seconds, default value is 5 seconds • The service factor is calculated as ( Number of calls answered within x seconds / (Number of distributed calls + Number of abandoned calls – Number of calls which are abandoned within y seconds) ) *100

  35. Queues –Service Level • On the Service Level panel of a selected queue you can select the level of details for answered calls and abandoned calls that appears on the queues historical report: • Answered Times: Within x seconds, default times are 10, 20 ,30 , etc. • Abandoned Times: Within y seconds, default times are 10, 20 ,30 , etc.

  36. Queues statistics • Total number of call that got queued since midnight • Number of calls distributed, abandoned, and waiting • Longest call waiting: Time the oldest call is in the queue • Current average waiting time: Average waiting time of the calls presently in the queue • Average waiting time: Average waiting time of all calls since midnight • Service Factor: Is an indicator for calls answered within x seconds, excluding abandons within y seconds. The parameters x and y used in calculating the service factor are set on the Service Factor panel of the Queue configuration. • The service factor is calculated as • ( Number of calls answered within x seconds / (Number of distributed calls + Number of abandoned calls – Number of calls which are abandoned within y seconds) ) *100 • Abandon Level: Percentage of call that got hung up while queued

  37. Attached data screens • Screen pops definition & purpose • Web architecture • Typical content • Simple example

  38. Screen-pop definition & purpose • When an agent receives a call we need to: • Display customer information to the agent • Update existing customer information • Collect new information • Screen pops are web forms intended to help display and collect information • Data collected is stored in databases and can be retrieved to create any custom reports • Screen pops also allow to associate the data with the agent that filled out the forms

  39. Screen-pop web architecture

  40. Screen-pop languages • HTML • Used to create fields to display or fill information • JAVASCRIPT • Used to validate the fields of the form before data submission • PHP • Used to fetch or to submit information in the database

  41. Screen-pop typical content (1) • Depending on the type of campaign, a screen pop will include fields to display or collect: • Customer information • Call information • Campaign specific data

  42. Screen-pop typical content (2) • Customer information • Salutation • Language • First name • Last name • Phone number • Address • Call information • Call result • Call backs date and time • Customer comments • … • City • Province • Date of birth • Customer account number • Customer PIN • …

  43. Screen-pop typical content (3) • Campaign specific information examples • Sales • Customer answer (sale, no sale) • Customer refusal reason code • Customer selected price plan • … • Customer service • Customer profile • Technical support • Technical information provided by customer

  44. Screen-pop simple example

  45. Screen-pop Submit button • By using certain keywords in the screen-pop’s title bar, the Aheeva softphone is capable of detecting if and when the agent clicks on the ‘Submit’ button • When the screen-pop first opens, the title bar contains the keyword ‘submit:required’ • When the agent clicks on the ‘submit’ button, the title bar changes and has the keyword ‘submit:sent’ in it • When the agent finishes a call with a screen-pop opened, the Aheeva softphone does not allow the agent to become Ready for another call unless he clicks on the ‘submit’ button on the screen-pop

  46. Historical reports • You can access historical reports related to inbound services from the Aheeva CCS Manager: Tenant Historical Reports  … • Inbound Calls report • Per agent group, get for each agent the total login time, the number of contacts, sales, no sales, callbacks, the campaign name, calls per hour, sales per hour, refusals per hour, and the net conversion rate • Queue report • For each queue, and per oen hour period, get the number of calls that entered the queue, that got distributed, or that got abandoned

  47. Summary • You learned how configure a DNIS and associate it with a routing script • You learned how to create a routing script using the script builder and distribute a call to an agent • Configure the queues service factore

  48. More information • Additional information can be found in: • Aheeva CCS Administrator User’s Guide • Aheeva CCS Installation guide

More Related