1. Tutorial: Reverse preview dialing made easy

    Preview dialing is a type of reverse dialing available since WombatDialer 0.7.0 where the agent has a chance to “preview” the number that is to be called before actually having a call placed.

    The way it works is:

    • The agent logs on to a queue. WombatDialer uses the queue (as it usually does in Reverse dialing modes) to know which agents are available. This makes integration with QueueMetrics very easy.
    • The agent asks WombatDialer for a number to call. WombatDialer gets the next number out - considering all its dialing and reschedule rules - and reserves it for the agent.
    • The agent uses a GUI where they can see the number to be dialed and typically embeds, or links to, an external CRM app so that they can review the call
    • When the agent is ready, they ask for the call to be either placed or skipped.
    • If the call is to be placed, the agent is connected immediatately and listens to Music on Hold until the callee is on line
    • If the call is not to be placed, it is maked with a special code
    • Reschedule rules apply - so error states are handled correctly

    Step 1: Installing Elastix

    In order to run this tutorial, we install a brand-new Elastix 2.4 system. On it we create:

    • Three SIP extensions: 300, 301 and 302. We will use 302 as the agent extension while 301 and 300 will be used as sample end-points
    • One queue, called “400”, to hold our agent. Note that calls will NOT be processed through the queue but we will use the queue to keep track of which agents are available. When defining it, we make sure that we set: “Ring Strategy: rrmemory” - “Event when called: yes” - “Member status: yes” so that WombatDialer can fully observe it.

    Step 2: Installing WombatDialer

    We install WombatDialer on the Elastix system using yum. When we log in, we create:

    • An Asterisk server that can talk to Elastix. We can use the AMI user “admin” with the default password you gave during the system installation.
    • A trunk named named “Trunk”, which dial string will be Local/${num}@from-internal
    • An end-point of type QUEUE, which name is “400” (so that it observes queue 400), located at extension “400” context “from-internal” (this is not really needed if you run only reverse campaigns), setting both “Reverse dialing: yes” and “Manual preview: yes”
    • We create a list called “Numbers” and leave it blank for now
    • We create a campaign called “Reverse”, which has logging set as “QM_COMPATIBLE” and which logging code is “400”. We add to it the trunk, the EP and the list we just created.

    Now we go to the list manager and upload the following list:

    300,NAME:John
    301,NAME:Mike
    

    This tells WD to dial numbers 300 and 301, and sets a NAME attribute for each call (that will be useful when previewing).

    Step 3: Installing and configuring QueueMetrics

    Install QueueMetrics on the same machine as the Elastix system by typing:

    yum install queuemetrics-espresso
    

    Now log in into QM and configure:

    • An agent called agent/302
    • A user for agent 302 called “agent/302” password “999” class “AGENTS”
    • A general monitoring queue called “400”. Set agent/302 in the MAIN level of that queue.

    Now edit the “System parameters” and edit the section realtime.agent_button_1 as follows:

    realtime.agent_button_1.enabled=true
    realtime.agent_button_1.caption=Wombat
    realtime.agent_button_1.url=http://10.10.5.30:8080/wombat/agents/rd_pop.jsp? agent=SIP/[a]&url=http://10.10.5.31/sugar/index.php%3faction=UnifiedSearch%26module=Home%26query_string=<NUMBER>%26name=<NAME>&inset=1
    

    Edit the public IP of your Elastix server and replace the “10.10.5.30” address above.

    This code links to an instance of SugarCRM on 10.10.5.31. On it, create a contact named “John” which telephone number is “300” and one contact named “Mike” which telephone number is “301”. You can link to any other CRM software that has a web-based interface just the same way.

    Making it all work together

    • Log “agent/302” into QueueMetrics and have him join queue 400 on extension “302”. Note that we are using Hotdesking - the agent logs into Asterisk with their SIP extension.
    • Start the dialer. From the Live page, start the campaign “Reverse”. No calls will be placed.
    • Check the dialer status. You should see WombatDialer observing queue 400 and finding “SIP/302” logged on. Try pausing and unpausing the agent and refreshing the dialer: the status of SIP/302 should change accordingly.

    Now click on the button called “Wombat” from the Agent’s page. You should see a preview panel like the one in the picure:

    As you can see the SugarCRM panel is displaying the right record.

    TIP: the first time you call the page, SugarCRM might ask you to log in. Do it and refresh the page.

    If you look at the Live page on WombatDialer, the call should appear as “Reserved”. When the agent clicks on Dial, the call should start. Once the agent answers, your dialer will try and connect the other extension.

    When dialing, the Live page will show what is going on:

    And the same thing will happen on the Agent’s page:

    Nice work, isnt’t it? :)

    Improving the solution

    • You can add PSTN numbers to your lists and the will be dialed as if the had been entered on a local extension.
    • If you want WombatDialer to dial without waiting for an agent decision, just remove the “Manual preview” check and restart the dialer.
    • If you want a customized preview panel, you can create one by using the WombatDialer API.