Predictive Dialer

Discussion in 'General' started by raseclee, May 8, 2009.

  1. raseclee

    Joined:
    May 6, 2009
    Messages:
    17
    Likes Received:
    0
    Hi,

    We are testing predictive dialer right now using call center module but I think its not predictive but more of an auto dialer. I am requesting any documentation if possible for an answer machine detection procedure so that the dialer can filter all fax/voicemail numbers based on the leads uploaded.


    Thanks,
    Mac
     
  2. jgutierrez

    Joined:
    Feb 28, 2008
    Messages:
    5,737
    Likes Received:
    0
    I have done the following configuration:

    1. I have edited /etc/asterisk/extensions_custom.conf

    2. Added the following context:
    Code:
    [ext-queues-custom] 
    exten => _35X,1,Answer
    exten => _35X,n,Set(cola=${EXTEN})
    exten => _35X,n,BackgroundDetect(silence/5, 1500, 1000)
    exten => _35X,n,Hangup
    exten => talk,1,Goto(ext-queues,${cola},1) 
    exten => talk,n,Hangup
    
    3. execute from the shell:
    asterisk -rx "reload"

    You will need to adjust the parameters of BackgroundDetect, to fits your needs, also if you would like, instead of using BackgroundDetect, you may use AMD.

    As you will see, this configuration is supposed to detect answer machines for outgoing queues from 350 - 359, if you would like to set it up for all queues, you may change it from _35X to _X. (the . must be included).

    On the outgoing campaign just leave the context from-internal, on that part, there is no configuration needed.
     
  3. raseclee

    Joined:
    May 6, 2009
    Messages:
    17
    Likes Received:
    0
    Thanks for the help. We'll do this setup then see if it works.

    Mac
     
  4. raseclee

    Joined:
    May 6, 2009
    Messages:
    17
    Likes Received:
    0
    We followed the the three steps as you said but the result is still the same. Do we need to change something more?
     
  5. jgutierrez

    Joined:
    Feb 28, 2008
    Messages:
    5,737
    Likes Received:
    0
    Quick question, have you followed the instructions that I told you? What is the number of the queue that you are using for outbound campaigns? Are you using the context as it was posted right here, or have you modified it, if yes, paste it here.
     
  6. soulofmischief87

    Joined:
    Apr 30, 2008
    Messages:
    42
    Likes Received:
    0
    I have done the following configuration:

    1. I have edited /etc/asterisk/extensions_custom.conf

    2. Added the following context:
    Code:

    [ext-queues-custom]
    exten => _35X,1,Answer
    exten => _35X,n,Set(cola=${EXTEN})
    exten => _35X,n,BackgroundDetect(silence/5, 1500, 1000)
    exten => _35X,n,Hangup
    exten => talk,1,Goto(ext-queues,${cola},1)
    exten => talk,n,Hangup


    3. execute from the shell:
    asterisk -rx "reload"

    You will need to adjust the parameters of BackgroundDetect, to fits your needs, also if you would like, instead of using BackgroundDetect, you may use AMD.

    As you will see, this configuration is supposed to detect answer machines for outgoing queues from 350 - 359, if you would like to set it up for all queues, you may change it from _35X to _X. (the . must be included).

    On the outgoing campaign just leave the context from-internal, on that part, there is no configuration needed.

    Background detect does the same thing AMD does? if not can you explain how i can achieve AMD installation and configuration thank you
     
  7. raseclee

    Joined:
    May 6, 2009
    Messages:
    17
    Likes Received:
    0
    Here's the config:

    exten => _606,1,Answer
    exten => _606,n,Set(cola=${EXTEN})
    exten => _606,n,BackgroundDetect(silence/5, 1000, 50)
    exten => _606,n,Hangup
    exten => talk,1,Goto(ext-queues,${cola},1)
    exten => talk,n,Hangup


    And we tried these two also:

    [ext-queues-custom]
    exten => _606,1,Set(MACHINE=0)
    exten => _606,2,Answer
    exten => _606,3,Set(cola=${EXTEN})
    exten => _606,4,BackgroundDetect(silence/5, 1000, 50)
    exten => _606,5,Noop(answering machine detected)
    exten => _606,6,Set(MACHINE=1)
    exten => _606,7,BackgroundDetect(silence/30, 1000, 50, 30050)
    exten => _606,8,Noop(too long of a message)
    exten => _606,9,Hangup

    exten => talk,1,GotoIf($[${MACHINE}=1]?2:3)
    exten => talk,2,Goto(detect-machine,103,1) ; this is a machine
    ;exten => talk,3,Goto(detect-human,s,1) ; this is a human
    exten => talk,3,Goto(ext-queues,${cola},1)

    [detect-machine]
    exten => _103,1,Hangup()


    [ext-queues-custom]
    exten => 606,1,Set(cola=${EXTEN})
    exten => 606,2,AMD(3500|1500|300|5000|120|50|5|256)
    exten => 606,3,GotoIf($[${AMDSTATUS}=AMD_PERSON]?4:6)
    exten => 606,4,Goto(ext-queues,${cola},1)
    exten => 606,5,hangup()
    exten => 606,6,hangup()
     
  8. jgutierrez

    Joined:
    Feb 28, 2008
    Messages:
    5,737
    Likes Received:
    0
    soulofmischief87,
    BackgroudDetect works like AMD, I have used it without any trouble

    raseclee,
    I see some mistakes on the context that you have write down, I suppose that you are using queue 606, on the conext, you are using _ but there is no wildcard/regular expresion, so the _ shouldn't be used, on the context that I wrote down I used the _ because I used XX as wildcards.

    In your case, if you want to apply it only for queue 606, the context should be:

    Code:
    exten => 606,1,Answer
    exten => 606,n,Set(cola=${EXTEN})
    exten => 606,n,BackgroundDetect(silence/5, 1000, 50)
    exten => 606,n,Hangup
    exten => talk,1,Goto(ext-queues,${cola},1)
    exten => talk,n,Hangup
    
     
  9. soulofmischief87

    Joined:
    Apr 30, 2008
    Messages:
    42
    Likes Received:
    0
    [Machine detection]
    include => ext-local
    exten => 600,1,Answer
    exten => 600,n,Set(cola=${EXTEN})
    exten => 600,n,BackgroundDetect(silence/5, 1000, 50)
    exten => 600,n,Hangup
    exten => talk,1,Goto(ext-queues,${cola},1)
    exten => talk,n,Hangup

    exten => talk,1,GotoIf($[${MACHINE}=1]?2:3)
    exten => talk,2,Goto(detect-machine,103,1) ; this is a machine
    ;exten => talk,3,Goto(detect-human,s,1) ; this is a human
    exten => talk,3,Goto(ext-queues,${cola},1)

    i dont really understand this the "talk" exten what i want it to do is check if a person answers or answering machine then return it to queue 6 which is my outbound campaign queue how can i achieve this?


    [detect-machine]
    exten => _103,1,Hangup()
     
  10. raseclee

    Joined:
    May 6, 2009
    Messages:
    17
    Likes Received:
    0
    Ok. I think we solve the problem.

    Thanks.
     
  11. raseclee

    Joined:
    May 6, 2009
    Messages:
    17
    Likes Received:
    0
    We use this code instead:

    exten => _X.,1,Answer
    exten => _X.,n,Set(cola=${EXTEN})
    exten => _X.,n,BackgroundDetect(silence/5, 1000, 50)
    exten => _X.,n,Hangup
    exten => talk,1,Goto(ext-queues,${cola},1)
    exten => talk,n,Hangu
     
  12. soulofmischief87

    Joined:
    Apr 30, 2008
    Messages:
    42
    Likes Received:
    0
    Is this is all? or do you have to create a talk context?
     
  13. jgutierrez

    Joined:
    Feb 28, 2008
    Messages:
    5,737
    Likes Received:
    0
    Remember to adjust BackgroundDetect to fit your needs, so if asterisk detects that it is a human being, it will go to the talk priority, else, it will continue with n+1 priority, as you will see the next one is Hangup
     
  14. raseclee

    Joined:
    May 6, 2009
    Messages:
    17
    Likes Received:
    0
    Ok. Thanks again for the help.
    We are now testing the dialer and we bump a couple of troubles again. Pls. help us in solving these:

    1. Leads Uploading. We are having a hard time uploading very large amount of leads on the web. We tried uploading 300K leads on the web but it keeps on failing, after clicking the save button on the create campaign, it just went on a blank screen and when we tried to refresh the browser, it didnt saved at all. One successful try is only 1K leads. We just uploaded the leads on the back end. Can u help us resolve the issue so that we can upload on the web?


    2. We tried the dialer and found out that the call distribution seems a bit slow and its like one call at a time only. Do we need to adjust on the channels? Whats the best setup for these so that the dialer will become faster?

    Thanks again.
     
  15. jgutierrez

    Joined:
    Feb 28, 2008
    Messages:
    5,737
    Likes Received:
    0
    raseclee,
    Here are my comments:
    1. Edit /etc/php.ini
    find the following variables:
    max_execution_time
    max_input_time
    memory_limit
    and increase them by double or triple...
    then restart httpd
    service httpd restart


    2.Edit /opt/elastix/dialer/Predictivo.class.php
    and find the following section:
    Code:
    $iNumLlamadasColocar = 0;
            foreach ($estadoCola['members'] as $infoAgente)
                    {
                    // Ociosos
                if ($infoAgente['status'] == 'canBeCalled') $iNumLlamadasColocar++;
    
    and edit the increment of variable iNumLlamadasColocar, that variable sets the number of calls to dial based on available agents, if you would like 2 calls per agent, you may use it as:

    Code:
    $iNumLlamadasColocar = 0;
            foreach ($estadoCola['members'] as $infoAgente)
                    {
                    // Ociosos
                if ($infoAgente['status'] == 'canBeCalled') $iNumLlamadasColocar=$iNumLlamadasColocar+2;
    
    That depends on your needs, you should take a decision and edit the parameter to your best needs
     
  16. raseclee

    Joined:
    May 6, 2009
    Messages:
    17
    Likes Received:
    0
    Thank. We'll try this out.

    I have another question again. Were trying the inbound calls. We tried logging the agent in the agent console but this time, we cannot see any caller id and it didn't detect any active call but they are actually receiving calls. Its just there's no happening on the agent console.
     
  17. jgutierrez

    Joined:
    Feb 28, 2008
    Messages:
    5,737
    Likes Received:
    0
    Check your configuration, it is very likely that you aren't setting correctly the inbound campaigns. If not, explain me step by step what you are doing so I can test it also...
     
  18. balanoiu

    Joined:
    May 20, 2009
    Messages:
    5
    Likes Received:
    0
    Hi there,

    We are also playing with the predictive dialer and I have to agree with the person before. This seems pretty much to be a auto dialer then predictive dialer. Is there a way to switch between the 2 options?

    Also I have a few issues. As soon as a call it's over the agent doesn
     
  19. raseclee

    Joined:
    May 6, 2009
    Messages:
    17
    Likes Received:
    0
    We created a queue and inbound route for a specific did. Agents under the said queue are logged-in in their softphone and call center module agent console. We we tried to test the did, it went on the agent's station, then answer it normally, the problem is on the agent's console webui, there's nothing happening inside the agents console, it didnt respond even when the agent has an active call, the console should shows if it theres an active call and also the caller's ani.

    On the reporting side. When we tried to look at the reports at Ingoing call success report, there is none. Although call recordings is working fine, we can see all the records of all the agent's inbound calls.
     
  20. raseclee

    Joined:
    May 6, 2009
    Messages:
    17
    Likes Received:
    0
    Hi,

    We already figured out the solution and it is all working now. Thanks again for the help.

    By the way, what is the maximum simultaneous number of calls per elastix server?
     

Share This Page