Wednesday, January 30, 2019

Issabel call center backup and restore

Using issabel-4.0.0-1 from DVD ISO issabel4-USB-DVD-x86_64-20181002

This method you can copy your call center data to a new machine.

SSH to the production machine

This command makes a copy of the database to the local file directory
mysqldump -p call_center > call_center_backup.sql

this backup the file to the local folder.  WINSCP is a great windows application

move this backup .SQL file to the destination ISSABEL machine

SSH to the new machine you want to apply the backup

this command will upload the file INTO mysql/mariaDB
mysql -p call_center < call_center_backup.sql

You should pretty much be instantly able to view everything.


The same thing should work for the vtiger521 database as well

Saturday, January 26, 2019

Trick asterisk to behave like a softphone

I suppose this is less of a trick, and more of a technique.  Use an asterisk box to register against another asterisk box as the extension devices.  

Scenario:

The Issabel CC system needs to be able to handle remote agents using their landline or mobile phone device.


At time of writing this (2019) Issabel CC system has some problems with this.  This issues isn't with asterisk application itself (remote PSTN agent in an asterisk queue has been a feature for 2 decades), but Issabel Call Center application does some custom code to make "at home" agents work

When using Issabel Call Center to send calls to remote agents over PSTN lines, I encountered login issues and call control issues with the calls through their interface.  I tried a variety of different techniques using call forwarding, follow-me, along with a variety of configuration tricks.  Some worked, but all seemed to require admins to manually modifying dialplan code, not something I wanted avoid if possible.

I needed something relatively easy to implement, easy to administer, wouldn't confuse call reporting in the Call Center and would allow all agent desktops at home or at the office to continue to show screen pops and allow updated customer information.

In order to satisfy the (current) needs of the CC system and the PSTN requirement we needed to deliver a call (no voip), a way is needed for Issabel Call Center queue to send a call to a PSTN user that would ensure the call was always in control.  Normally asterisk can handle a remote agent, but with some of the designs of the ISSABEL contact center system, it can't handle the remote agent on a PSTN connection very well (at time of writing)

I came up with a method to have a second asterisk box that acted as a register service for the at home agents, and then itself would register against the issabel cc, appear as if its a full softphone connecting.  The "register" server tricks the issable that actual sip phones are registered, even though the at home agent is fullying using their landline/mobile phone.  I registered an individual trunk connection for each extension from PBX02 to the CC asterisk system.  This gave the appearance to the CC's Asterisk that a SIP hardset/softset extensions were now registered.


When an agent is "ready" in the GUI, the CC would send the call to this SIP connection as it normally would.

On regiseter pbx, the call arrives as a DID being their 4 digit extension.  I send each DID to a unique MISC DESTINATION, which had their PSTN number in it.  This would cause PBX02 to place a call to the agents device.  

When the agent answers, this get passed by PBX02 to the CC system (PBX01) and the customer was connected to the agent.  Metrics were proper and the screen information was still delivered.

Configuration:

Assumptions, 2 Issabel asterisk box'es installed and functional, one configured as the call center, the other one going to be this pstn 'gateway' of sorts.  This document revolves around Issabel, but the concepts apply to asterisk in general.  I wont' be getting into the details of setting up a CC in this document, i'll have to assume you already know how to do that.

Trunk

Each trunk on PBX02 has a name that reflected the 4 digit extension number that we'll register against on PBX01, but the outgoing/incoming context is left blank.  On each trunk, in the incoming section at the bottom there is a registration string.  The syntax is as follows:

Trunk Name (description): 4 digit extension number 
Trunk Name (PEER Details): 4 digit extension number|
PEER DETAILS and USER DETAIL - Completely blank

Register String
extension:password@CallCenterServerIP/extension

Example:
1009:password@10.1.100.50/1009

Submit and Apply the changes

This registration is what PBX01 is expecting from a softphone device authenticate it and be able to handle call flow with it.

The log in the Issabel Call Center computer will show something like the following, showing PBX01 responding to PBX02's registration as Extension 1001


Now, on PBX02 server, go to MISCELLANEOUS DESTINATIONS

Create a MD for each extension, and put in the destination number you want to have for that user

This example is the mobile number for Extension 1001
Save your changes

Go to
INBOUND ROUTES

Create an inbound route
DESCRIPTION and DID Number are the extensions number you are using
Set the MISC Destination to the same extension 

Submit and Apply your changes.

Make sure you have the appropriate outbound and trunks configured for calls leaving this server to get out to the PSTN network.  Depending on your setup, you can send the calls BACK to the CC server to go out your PSTN connection

Now login to your Call Center user

We'll logon our AGENT "Maria Jones" with agent #9500 on Extension 1001 on the GUI

When we attempt to logon, the system will call "SIP/1001"

Here you'll see the system has called SIP 1001, which is sent to the IP registration on PBX02


Now PBX02 the extension 1001 call comes in


PBX02 receives the call and then dials the PSTN/MOBILE number of the agent

Agent answers, puts in their agent ID password.  They are now logged in and hearing music in their device.



Here's PBX02 showing call out PSTN network to agent


I've placed a call to the QUEUE 7777, agent 9500 on SIP/1001 belongs to, with their call being done on their mobile device

Here's their GUI showing the call from "1002" (my test extension)

Agent stats work perfectly



OTHER USES:

Whats cool about this, is this isn't limited to agents at home.  This feature can utilized to merge call centers together under a single umbrella.  As long as the Issabel CC can dial a remote device, it can (mostly) know that state of that phone.  







Basic vTiger5 Issabel integration

This should help to get basic integration working with vTiger5 and Issabel (formerly Elastix)

Install vTiger5 through the Issabel Addon module

Log into Vtiger with the same admin username and password you have setup for your GUI Issabel login.

Go to TOOLS -> PBX Manager

Click on the little "hammer" icon to edit the settings


Since vTiger is installed on the same machine, you can use the above IP of 127.0.0.1  (local host so you dont have to modify any IP permission)

Asterisk Server IP 127.0.0.1Port 5038
Username Admin
Password YourGuiPassword
Asterisk Version 1.8

If you aren't sure of the password, look at /etc/asterisk/manager.conf  and under "admin" use that secret.

Press UPDATE

Now click on MY PREFERENCES
Scroll down to (6?) "Asterisk Configuration"
Put in a valid extension in your asterisk box
Set "Receive Incoming Calls" to YES
Save your changes.

Now make a call to the extension you entered.  You should see a pop up show in CRM

The above example call made to extension 1000 from extension 1002

Troubleshooting steps
1> look at asterisk log  /var/log/asterisk/full  or  watch the live log " asterisk -cvvvvvr "
.  When you press APPLY on the pbx settings you should see some log messages that might help you determine the problem.

2> If you go to the URL below  (your browser will appear like its trying to get to a web page) and then you make a test call, you should see this window show lots of interaction messages.  This may help you with your troubleshooting.

http://IPofYOURpbx/vtigercrm/cron/modules/PBXManager/AsteriskClient.php

Friday, January 25, 2019

Issabel Contact Center installation and configuration (Callback Agent)

This describes Issabel's (formerly Elastix) "CALLBACK AGENT" mode.  This is an ACD style center with calls being sent to a queue, then ringing an agent’s phone, which they manually answer.

(Click HERE for Issabel’s "AGENT" mode, which does the same thing, except agents are permanently “OFF HOOK” (listening to music).  This is usually for outbound, predictive dial centers, but works on inbound.  Agents hear music in their headset and system beeps and automatically connects them with a customer.

The ISSABEL asterisk deployment, based on Centos 7 (as of Jan 2019) and is a full featured product, completely self installing providing the OS, Asterisk, and database, as well as reporting, fax server, email server and a variety of other features all packed into a single product.

One of its many impressive feature sets is the Contact Center Suite

Features:
  • Login with a hardset or softset directly and take queue calls.  
  • Agent GUI featuring screen pops with agent information.
  • LOTS of reporting, both historical and realtime
  • Call Recording
  • CRM integration with TigerCRM (and potentially many others)
  • Break Codes
  • Agent Scripting
  • Form population, useful for capturing caller information 
  • Phone interaction using GUI
Agent desktop GUI example of a call:
SCRIPT - Intended option is to prompt your agent with info about the queue the call has arrived on, and the information they should give to the customer.

You can use it for campaign/queue information (agents can belong to multiple queues so this is a way to allow them to know what queue is calling) 
This information can be altered by call center admins, with the data automatically refreshing on all agent screens automatically.

Forms - You can create forms and agents can fill the information in these boxes while on a call, and save it.  Supervisors can run a report to see this data in a CSV file in a spreadsheet.

CRM – You can integrate with the CRM.  Vtiger is mentioned a lot, and the integration although not completely seamless to get going, is relatively simple in the grand scheme.  At its basic level, the agent can click on the CRM button and be taken to the Vtiger instance, and be taken to any page you want to provide.

The call center system can provide dynamic URLs with variables in the URL that can direct users to a customized urls
This is the browser window that the agents can use to help interact with the caller.
The top shows the agent phone info (extension 1005- followed by agent name)
The call status bar (our example shows green connected) gives a visual indication if the agent is on a call (its red if they are not).  Shows how long they are talking to customer.

Call control boxes- agents can control the phone call through these buttons.  Take Break allows them to go NOT ready and with a a break type that you can specify.

REPORTING

There are some fairly comprehensive reports that come with the application

(1) 
INSTALLATION OF THE Operating System AND ASTERISK
  • Install Asterisk 11 only (as of June 2020)
  • MUST have phone (softphone or hardset) registered to even test first time login
  • Agent MUST be configured properly in PBX queue dynamic or static agent positions
  • Must use 4 digit extensions
Installation is pretty easy.  
Download Issabel ISO from https://www.issabel.org/     

Remember.  This is a SELF INSTALL FULL LINUX OS installation.  This means whatever computer you attempt to install this on will be COMPLETELY erased of all existing installations of OS and all DATA will be non-recoverable. 

Instructions here are based on ISSABEL4 20181002.iso with 4 gig of ram and a 50gig HD size.  
(ISO available as of January 2019).

You can burn this to a DVD (if you are still stuck in the 2000's) or you can put it on a USB key (https://rufus.ie/) can help you get a bootable USB key.  Maybe your are far more advanced than that and you just install it on a vm.  Works in ESXI and HYPER-V



Select Asterisk 11 and Call Center CE in the installation 

Takes 20-30 minutes to install.

After you install, logon with ROOT and then use the password you assigned during install

At the command prompt then type in IP ADDR and get the IP of your machine.

(2) 

CONFIGURATION
  • Login to the GUI using https://IPofIssabel
  • When you first login, you will need to create an account with Issabel web system to get further updates.  Its free.
  • If this is a new configuration, please check your NAT settings in Asterisk.  If you are testing phones and your soft/hard phone is on a different network segment than your Issabel installation, it will probably fail

  • The critical one is putting in your external IP address. That will cause things to fail if you don’t have it set up properly.
  • You'll also want to put in local networks that you will have phones in that might be different than the one your PBX is in.  For most cases, if you are a small location you might only have one, but larger offices will split up teams to different network segments so you'll need to include the different ones here.


(3) 

CREATION of AGENT “CALL BACK" center. 

AGENTS NUMBERS/PHONE NUMBERS MUST BE 4 DIGITS
  • Create an extension
  • Go to PBX - PBX CONFIGURATION -> EXTENSIONS
  • Create a SIP extension
  • Give it the User Extension of 1001 and the Display Name of "Agent One"
  • Press SUBMIT
  • Press APPLY CHANGES bar that appears at the top.
  • Copy of the "SECRET" that is automatically generated.
  • Configure a softphone (xlite or similar) with the number 1001 and use that as the password.
  • You’ll need the login user (1001) the password (automatically generated in the PBX) and the server ip, which is the IP of your asterisk server.
  • Dial *43 and you will be in an echo test. You should hear your voice.

  • “You are about to enter an echo test….”
  • You will need an active, functioning registered SIP phone for successful Agent login.
  • If phone is not available, the call center will not allow you to login the first time you try.
  • If you did not hear your voice echo back when you talk into the MIC, you need to review your configurations to ensure your phone is properly registered.
(4) 
Create a QUEUE
  • Select: PBX-PBX CONFIGURATION - ADD QUEUE

  • Give it a QUEUE NUMBER of " 8000 "
  • Give it a queue name of "QueueTest"
(5)
Assign agents to QUEUE


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

THIS PART IS CRITICAL 
This is a common fail for agent being unable to logon
Put the agent extensions into the DYNAMIC AGENTS box
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • Assume you made a SIP account 1001, put in:  S1001,0
  • Add your agent to the DYNAMIC MEMBERS box.

  • The Dynamic Members syntax looks like the followingXyyyy,Z

    X      
    = Signalling Option (Sip iAx) so if SIP you use "S" if IAX you use "A"

    yyyy 
    = 4 digit extension number belong to the phone of your agent.

    Z      
    = Agent Weight or "Skill Level".  (0 is default highest level)
              0= Highest  10=Lowest

    The extension number you entered in (ex 1001) must prefix with a CAPITAL (for SIP), 
    So extension 1001 would = 
    S1001,0
  • Press SUBMIT CHANGES / APPLY CHANGES 

(6) 

Configure Agent for GUI DESKTOP

(if "Call Center" isn't an option available for you, you may need to install it.  Check ADDONS->ADDONS then look for "Call Center Community Edition"

  • Select CALL CENTER -> AGENT OPTIONS -> CALLBACK EXTENSIONS
  • Select "NEW CALLBACK EXTENSION"

    "CallBack Extension" drop box should have your extension in the list.  If it doesn't, go back to the PBX and make sure that you saved your changes.

  • Assign an agent NAME to this account "John Smith
  • give it a numeric password.
  • Ignore the ECCP password, you can leave those blank.
  • Press SAVE

(7) 
Configure QUEUES for the GUI
Now you want to activate the queue for ISSABEL call center to know to use it.


   


  • Select CALL CENTER -> INCOMING CALLS -> QUEUES
  • Click on "+Select Queue"
  • In the "Select Queue:" drop box select the queue you have created.
  • Select the Queue from the drop box at the top
You can optionally put in a script.  This text will appear in the agent desktop screen pop when a call is delivered to this agent to that queue.  This means an agent can belong to multiple queues, and his screen will reflect the queue information of the call being sent to them.



  • Click on SAVE
(8) 
LOGIN AGENT
  • Select CALL CENTER - Agent Console

Your screen will change to something like this:
  • First click on "CALLBACK LOGIN" button check box.
  • Select SIP 1001 for John Smith
  • Put in the password you assigned and click on "ENTER"
If you configured everything above correctly, you should see something like this
IF your agent fails to login, wait a minute and try again in a minute, in some installation situations there is a refresh or something that needs to happen.


If you see this: Check make sure (as of March 2021) you have installed Issebel version 11 (newer versions of issable do not work with callcenter


If its still not working make sure your phone is registered, make sure the agent is in DYNAMIC MEMBERS properly.  Make sure all changes in PBX are applied (usually a red bar at the top indicating a reload is required)

With AgentCallBack, the agent name and Extension are locked together as one.  This means agent John Smith will always use extension 1001. 

(9) 
Now you can test an inbound call.  

Call your queue and your agent phone should ring.


When your agent answers the phone, your screen should change to something similar as above.