Page 1 of 1

Predictive Dialing not sending calls to agents

PostPosted: Sun Jun 06, 2010 11:29 am
by powehouse
Good day guys,

We're having problems with the predictive dialing, everything is ok in CLI, the box is calling, recognizing AM, BUT...its not sending calls to the agents, some got calls but took them around 10mins. We are new to predictive dialing so below is the setup that we have for it. (Vicidial Admin Panel)

Dial Method: Ratio
Auto Dial Level: 3.0
Available Only Tally: N
Drop Percentage Limit: 3%
Maximum Adapt Dial Level: 3.0
Latest Server Time:
Adapt Intensity Modifier: 0 (Balanced)
Dial Level Difference Target: 5-5 Calls Waiting for Agents
Concurrent Transfers: Auto
Queue Priority: 10- Higher
Multiple Campaign Drop Rate Group: DISABLED

PostPosted: Sun Jun 06, 2010 1:17 pm
by williamconley
when you post, please post your entire configuration including (but not limited to) your installation method, vicidial version and build, asterisk version, telephony hardware (model number is helpful here), cluster information if you have one, and whether any other software is installed in the box.

Similar to This:
Vicibox X.X from .iso | Vicidial X.X.X Build XXXX | Asterisk X.X.X | Single Server | No Digium/Sangoma Hardware | No Extra Software After Installation

this IS a requirement for posting along with reading the stickies (at the top of each forum) and the manager's manual (available on EFLO.net, both free and paid versions)

have you tested this to see if it is passing calls that are not answering machine to the agents by calling your own phone (to be sure you aren't calling ALL answering machines?)

have you tested this without AMD to be sure the campaign works otherwise?

what is your "drop seconds" setting? (AMD takes time, if your calls with AMD take too long to get to the agents they may be considered too long and dropped ...)

how many agents? (why is available tally at "N"?) what is your load level (3.0 with 30 agents and available only to N and 5 calls waiting for agents ... could cause issues, yep)

try setting available only to Y, balanced for the dial level difference, set the auto dial to "1", drop seconds to 10, and put in a list of JUST your cell phone (300 times) to CONTROL a test and see if it works properly. reject every other call (so it goes to VM and your AMD can kick in and do it's job).

and watch your Asterisk CLI while this is happening so you can possibly catch the problem when it happens.

PostPosted: Mon Jun 07, 2010 2:01 am
by powehouse
sorry about not posting configuration

Here it is.
Vicidial 2.2.0-235 Build 100319-1708| Asterisk 1.2.30.2 | Multi-Server | No Digium/Sangoma Hardware | No Extra Software After Installation



I've tried changing the setting that you suggested. AMD is off i think?

Dial Method: RATIO
Auto Dial Level: 1
Available Only Tally: Y
Drop Percentage Limit: 3%
Maximum Adapt Dial Level: 3.0
Adapt Intensity Modifier: 0-BALANCED
Dial Level Difference Target: 0-BALANCED
Concurrent Transfers: AUTO
Queue Priority: 10-HIGHER
Multiple Campaign Drop Rate Group: DISABLED


I tried your suggestion and placed in a list containing my cellphone number and I got a call from vicidial but couldn't here anything and the dialer just hangs up. here is how the cli looked




-- Executing Set("Local/639234564763@default-6929,2", "CALLERID(num)=12086391781") in new stack
-- Executing Dial("Local/639234564763@default-6929,2", "SIP/639234564763@CORDIA||R") in new stack
-- Called 639234564763@CORDIA
-- Got SIP response 603 "Decline" back from 192.168.1.192
-- Remote UNIX connection
-- Remote UNIX connection disconnected
== Parsing '/etc/asterisk/manager.conf': Found
== Manager 'sendcron' logged on from 192.168.1.4
== Parsing '/etc/asterisk/manager.conf': Found
== Manager 'sendcron' logged on from 192.168.1.4
== Manager 'sendcron' logged off from 192.168.1.4
-- Remote UNIX connection
-- Remote UNIX connection disconnected
== Manager 'sendcron' logged off from 192.168.1.4
== Parsing '/etc/asterisk/manager.conf': Found
== Manager 'sendcron' logged on from 192.168.1.4
== Manager 'sendcron' logged off from 192.168.1.4
-- SIP/CORDIA-09238500 is ringing
-- Remote UNIX connection
-- Remote UNIX connection disconnected
-- SIP/CORDIA-09238500 answered Local/639234564763@default-6929,2
== Manager 'sendcron' logged off from 192.168.1.4
-- Executing Playback("Local/639234564763@default-6929,1", "sip-silence") in new stack
-- Playing 'sip-silence' (language 'en')
== Spawn extension (default, 639234564763, 2) exited non-zero on 'Local/639234564763@default-6929,2'
-- Executing DeadAGI("Local/639234564763@default-6929,2", "agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----16-----ANSWER-----11-----0") in new stack
-- AGI Script agi://127.0.0.1:4577/call_log--HVcauses ... --11-----0 completed, returning 0
-- Executing AGI("SIP/CORDIA-09238500", "agi://127.0.0.1:4577/call_log") in new stack
-- AGI Script agi://127.0.0.1:4577/call_log completed, returning 0
-- Executing AGI("SIP/CORDIA-09238500", "agi-VDAD_ALL_outbound.agi|NORMAL-----LB") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/agi-VDAD_ALL_outbound.agi
== Refreshing DNS lookups.
-- Remote UNIX connection
-- Remote UNIX connection disconnected




Here is how the extensions.conf looks like


; VICIDIAL_auto_dialer transfer script for no-agent campaigns:
exten => 8364,1,Playback(sip-silence)
exten => 8364,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8364,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8364,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8364,5,Hangup

; VICIDIAL_auto_dialer transfer script:
exten => 8365,1,Playback(sip-silence)
exten => 8365,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8365,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
exten => 8365,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
exten => 8365,5,Hangup

; VICIDIAL_auto_dialer transfer script SURVEY at beginning:
exten => 8366,1,Playback(sip-silence)
exten => 8366,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
exten => 8366,5,Hangup

; VICIDIAL_auto_dialer transfer script Load Balance Overflow:
exten => 8367,1,Playback(sip-silence)
exten => 8367,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8367,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
exten => 8367,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
exten => 8367,5,Hangup

; VICIDIAL_auto_dialer transfer script Load Balanced:
exten => 8368,1,Playback(sip-silence)
exten => 8368,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8368,5,Hangup

; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
exten => 8369,1,Playback(sip-silence)
exten => 8369,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8369,3,AMD(2000|2000|1000|5000|120|50|4|256)
exten => 8369,4,AGI(VD_amd.agi,${EXTEN})
exten => 8369,5,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8369,6,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8369,7,Hangup

PostPosted: Mon Jun 07, 2010 2:37 am
by powehouse
here is another cli output

-- Executing Set("Local/639234564763@default-54dc,2", "CALLERID(num)=12086391781") in new stack
-- Executing Dial("Local/639234564763@default-54dc,2", "SIP/639234564763@CORDIA||R") in new stack
-- Called 639234564763@CORDIA
== Parsing '/etc/asterisk/manager.conf': Found
== Manager 'sendcron' logged on from 127.0.0.1
== Manager 'sendcron' logged off from 127.0.0.1
-- SIP/CORDIA-09cfc360 is ringing
-- SIP/CORDIA-09cfc360 answered Local/639234564763@default-54dc,2
== Manager 'sendcron' logged off from 127.0.0.1
-- Executing Playback("Local/639234564763@default-54dc,1", "sip-silence") in new stack
-- Playing 'sip-silence' (language 'en')
== Spawn extension (default, 639234564763, 2) exited non-zero on 'Local/639234564763@default-54dc,2'
-- Executing DeadAGI("Local/639234564763@default-54dc,2", "agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----16-----ANSWER-----9-----0") in new stack
-- AGI Script agi://127.0.0.1:4577/call_log--HVcauses ... ---9-----0 completed, returning 0
-- Executing AGI("SIP/CORDIA-09cfc360", "agi://127.0.0.1:4577/call_log") in new stack
-- AGI Script agi://127.0.0.1:4577/call_log completed, returning 0
-- Executing AGI("SIP/CORDIA-09cfc360", "agi-VDAD_ALL_outbound.agi|NORMAL-----SO") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/agi-VDAD_ALL_outbound.agi
== Spawn extension (default, 8365, 3) exited non-zero on 'SIP/CORDIA-09cfc360'
-- Executing DeadAGI("SIP/CORDIA-09cfc360", "agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----0---------------") in new stack
-- AGI Script agi://127.0.0.1:4577/call_log--HVcauses ... ---------- completed, returning 0
== Parsing '/etc/asterisk/manager.conf': Found
== Manager 'sendcron' logged on from 127.0.0.1
== Manager 'sendcron' logged off from 127.0.0.1

PostPosted: Mon Jun 07, 2010 1:57 pm
by gardo
You need to have the "o" flag in your dial string. Not having it breaks a lot of Vicidial functionality.

Executing Set("Local/639234564763@default-54dc,2", "CALLERID(num)=12086391781") in new stack
-- Executing Dial("Local/639234564763@default-54dc,2", "SIP/639234564763@CORDIA||R") in new stack

PostPosted: Mon Jun 07, 2010 7:14 pm
by williamconley
Thanks for posting your specs! I love that!

Check the "Sample" Carriers (especially the SIP Example) ... look at the "Dial Plan" ... those three lines for the "dial plan". Don't change them. You can change the xtension that you dial to get there, but each of those three lines is required exactly as given for generating the call (until you have a functional server ... then you can play with it all you want because you'll see what "breaks" it immediately and switch back!)

It seems minor, but that "call log" line is NOT JUST call logging, the call log notation is a "switch", this first line provides the "link" to vicidial and ALSO logs the call. Absolutely required. Same for the next two lines. Don't change 'em.

If you think you need to ... post the reason here and we can help make you a workable dial plan entry. Very few carriers, however, actually require a special dialplan entry. Seriously. Matt built it to fit almost every carrier i have ever dealt with. No changes (except that first digit ... which can be anything from "9" down to "0", and is discarded after being used in the campaign prefix to bring the call to THIS extension in THIS dialplan).

PostPosted: Mon Jun 07, 2010 9:44 pm
by powehouse
gardo wrote:You need to have the "o" flag in your dial string. Not having it breaks a lot of Vicidial functionality.

Executing Set("Local/639234564763@default-54dc,2", "CALLERID(num)=12086391781") in new stack
-- Executing Dial("Local/639234564763@default-54dc,2", "SIP/639234564763@CORDIA||R") in new stack


Thank you gardo! This worked and saved us a lot of time.


Williamconley

I'm not sure If I follow, I see the dialplan entry you are pointing at but here is a sample of our dialplan that has been working for us for the past 4 months.

exten => _1NXXNXXXXXX,1,Set(CALLERID(num)=2086391781)
exten => _1NXXNXXXXXX,2,Dial(SIP/${EXTEN}@CORDIA,,R)
exten => _1NXXNXXXXXX,3,Congestion

exten => _61Z.,1,Set(CALLERID(num)=2086391781)
exten => _61Z.,2,Dial(SIP/${EXTEN}@CORDIA,,R)
exten => _61Z.,3,Congestion


After looking at the sample dial plan. I take it that our dial plan should basically look like this

exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91999NXXXXXX,2,Dial(${SIP}/${EXTEN:2}@CORDIA,,tTor)
exten => _91999NXXXXXX,3,Hangup

Am I correct?


Cheers!

PostPosted: Mon Jun 07, 2010 10:20 pm
by williamconley
Very close, yes. The difference between what you HAD and vicidial is that vicidial tracks every call using the callerid NAME and several scripts and screens for the entire duration of the call.

So to modify your prior to fit your new, here is your prior:
exten => _1NXXNXXXXXX,2,Dial(SIP/${EXTEN}@CORDIA,,R)
and here is the vicidial sample version:
exten => _91999NXXXXXX,2,Dial(${SIP}/${EXTEN:2}@CORDIA,,tTor)

you are very close, but the 999 was for "sample" and should be changed to a viable (usable) extension:
exten => _91NXXNXXXXXX,2,Dial(${SIP}/${EXTEN:2}@CORDIA,,tTor)


So your final would be:
exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(${SIP}/${EXTEN:2}@CORDIA,,tTor)
exten => _91NXXNXXXXXX,3,Hangup
which allows VICIDIAL to set the calleridnum (which is set in the campaign, you no longer have to do that manually) and the callerid NAME (never mess with the, it's vicidial's life blood) all within the vicidial system.

To use it, you simply put "9" as your "Dial Prefix"

And you can create another carrier next week!

(highly recommended by the way, always have multiple carriers! I recommend several to clients and require active clients to have at least three to maintain "up time") and you could use 81NXX instead for another carrier and just put "8" in the dial prefix of the campaign to activate it (on the fly, by the way, Next Call after submit will use the new carrier immediately).

PostPosted: Mon Jun 07, 2010 10:55 pm
by powehouse
williamconley wrote:Very close, yes. The difference between what you HAD and vicidial is that vicidial tracks every call using the callerid NAME and several scripts and screens for the entire duration of the call.

So to modify your prior to fit your new, here is your prior:
exten => _1NXXNXXXXXX,2,Dial(SIP/${EXTEN}@CORDIA,,R)
and here is the vicidial sample version:
exten => _91999NXXXXXX,2,Dial(${SIP}/${EXTEN:2}@CORDIA,,tTor)

you are very close, but the 999 was for "sample" and should be changed to a viable (usable) extension:
exten => _91NXXNXXXXXX,2,Dial(${SIP}/${EXTEN:2}@CORDIA,,tTor)


So your final would be:
exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(${SIP}/${EXTEN:2}@CORDIA,,tTor)
exten => _91NXXNXXXXXX,3,Hangup
which allows VICIDIAL to set the calleridnum (which is set in the campaign, you no longer have to do that manually) and the callerid NAME (never mess with the, it's vicidial's life blood) all within the vicidial system.

To use it, you simply put "9" as your "Dial Prefix"

And you can create another carrier next week!

(highly recommended by the way, always have multiple carriers! I recommend several to clients and require active clients to have at least three to maintain "up time") and you could use 81NXX instead for another carrier and just put "8" in the dial prefix of the campaign to activate it (on the fly, by the way, Next Call after submit will use the new carrier immediately).




This is Great!

Can I also do it like this?

Globe String:
CORDIA = SIP/Cordia

Dialplan:

exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(${CORDIA}/${EXTEN:2},,tTor)
exten => _91NXXNXXXXXX,3,Hangup

Cheers!

PostPosted: Mon Jun 07, 2010 11:00 pm
by williamconley
powehouse wrote: Can I also do it like this?

Global String:
CORDIA = SIP/Cordia

Dialplan:

exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(${CORDIA}/${EXTEN:2},,tTor)
exten => _91NXXNXXXXXX,3,Hangup

Cheers!

The only use of the Global String is to link the Dial Plan to the Context. So yes, But you may want to consider naming it something like "DIAL9" so that you can use it in other places (without the name in case your carrier name changes, the global variable can remain in all the places you use it)

PostPosted: Tue Jun 08, 2010 1:28 pm
by gardo
I would also take out the tTr dial flags since they don't really do much on a Vicidial system. Everything is done via agent iterface.

PostPosted: Tue Jun 08, 2010 3:15 pm
by mflorell
you need to keep the 'o' in or ViciDial calls won't keep their callerID, also if you have any issues with native bridgining you have to also keep either the 't' or the 'T' in there too.

PostPosted: Tue Jun 08, 2010 4:54 pm
by powehouse
williamconley wrote:Very close, yes. The difference between what you HAD and vicidial is that vicidial tracks every call using the callerid NAME and several scripts and screens for the entire duration of the call.

So to modify your prior to fit your new, here is your prior:
exten => _1NXXNXXXXXX,2,Dial(SIP/${EXTEN}@CORDIA,,R)
and here is the vicidial sample version:
exten => _91999NXXXXXX,2,Dial(${SIP}/${EXTEN:2}@CORDIA,,tTor)

you are very close, but the 999 was for "sample" and should be changed to a viable (usable) extension:
exten => _91NXXNXXXXXX,2,Dial(${SIP}/${EXTEN:2}@CORDIA,,tTor)


So your final would be:
exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(${SIP}/${EXTEN:2}@CORDIA,,tTor)
exten => _91NXXNXXXXXX,3,Hangup
which allows VICIDIAL to set the calleridnum (which is set in the campaign, you no longer have to do that manually) and the callerid NAME (never mess with the, it's vicidial's life blood) all within the vicidial system.

To use it, you simply put "9" as your "Dial Prefix"

And you can create another carrier next week!

(highly recommended by the way, always have multiple carriers! I recommend several to clients and require active clients to have at least three to maintain "up time") and you could use 81NXX instead for another carrier and just put "8" in the dial prefix of the campaign to activate it (on the fly, by the way, Next Call after submit will use the new carrier immediately).


Hi william. Everything is working smoothly now thanks to you guys. Good job!

Anyway can you try and give me an example on how the dial prefix 8 would work in a dialplan? I mean like how it would look like if we had more than 1 carrier in our vicidial. Thanks!! :D :D

PostPosted: Tue Jun 08, 2010 7:01 pm
by williamconley
exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,2,Dial(${DIAL9}/${EXTEN:1},,tTor)
exten => _91NXXNXXXXXX,3,Hangup

becomes
exten => _81NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _81NXXNXXXXXX,2,Dial(${DIAL8}/${EXTEN:1},,tTor)
exten => _81NXXNXXXXXX,3,Hangup
and you put "8" in the dial prefix in the campaign.

simple, right? :)

_9 becomes _8, and {DIAL9} becomes {DIAL8} (assuming you know how to define the GLOBAL :))

done deal