Outbound Dialer
Dialer Installation
Dialer is an addon for VoiceXML Browser to provide automatic outbound dialing.
Use root to install the packages. Unzip and untar the dialer package by using the command:
# tar xvzf dialer_Vx.x_date.tar.gz
Go to the directory of the dialer and then, type the following command.
# cd dialer_Vx.x_date # ./install.sh
Dialer configuration
It uses the Asterisk Manager Interface.
To enable the dialer to connect to the Asterisk you need to setup the interface. You can create a “Dialer” account to connect the Dialer application. Edit /etc/asterisk/manager.conf and set :
... [general] enabled = yes port = 5038 bindaddr = 0.0.0.0 ... ... [dialer] secret = 1234 ;deny=0.0.0.0/0.0.0.0 ;permit=209.16.236.73/255.255.255.0 read = system,call,user,originate write = system,call,user,originate ...
Dialer application
Dialer [options] param
Options:
–safe | Starts in “safe” mode (auto-restart). |
–k | clipping, update call row just at the end of call with final results only (override by “clipping” bool dialer.conf file option) |
–help | This help screen. |
–stop | Unconditionally stop the dialer. |
–start | Run as a daemon. |
–action | Execute one if this commands: |
createdatabase | Create the database. |
dropdatabase | Drop the database. |
create | Create the campaign table. |
drop | Drop the campaign table. |
truncate | Remove all the phones. |
repare | Repare DB info after an Asterisk Crash. |
file | Use the text file to fill the campaign. |
insert | Insert a phone in the campaign. |
delete | Delete a phone in the campaign. |
count | Phones in the campaign. |
dump | Dump the campaign in csv. |
fulldump | Dump the campaign in csv with header. |
statitics | Statistics of the campaign. |
–campaign | Name of the campaign for the command. |
–paramater | Parameter for the command. |
NOTE: Dialer is an application located at this directory:
/opt/dialer/
Dialer commands
Purge and create a campaign named “campaign” :
>dialer -c campaign -a drop >dialer -c campaign -a create >dialer -c campaign -a file -p /tmp/list.txt >dialer -c campaign -a insert -p 12345678 >dialer -c campaign -a insert -p 12345678 param
Start in background :
>dialer --start
Start do not fork, stop on last call :
>dialer
Stop all dialer (killall) :
>dialer --stop
Get log :
>dialer -a fulldump -c campaign
Get statistics :
>dialer -a statistics -c campaign
Dialer Call Return Codes
The dialer generates return's codes for each call in the Log file. Please find here the list of codes and its description:
-8 | Burned (We give up) |
-7 | Disconnected Number – No Answer |
-6 | Fax Machine |
-5 | Network Congestion |
-4 | Busy |
-3 | Voicemail – Get called back |
-2 | No Answer |
-1 | Undefined* |
1 | Not Yet Called – Get called back |
0 | Callback |
2 | No Answer |
3 | Voicemail – Get called back |
4 | Busy |
5 | Fast Busy |
6 | Fax Machine |
7 | Disconnected Number |
8 | Do Not Call – Don't count as contacts |
9 | Invalid Lead |
10 | No Sale |
11 | No Sale – These both… |
12 | Sale – count as contacts |
Originate and Hangup Return Codes
OriginateResponse event which contains the failure reason if any. Reason may be one of the following:
1 = Other end has hungup |
2 = Local ring |
3 = Remote end is ringing |
4 = Remote end has answered |
5 = Remote end is busy |
6 = Make it go off hook |
7 = Line is off hook |
8 = Congestion (circuits busy) |
Hangup causes :
1 | Unallocated (unassigned) number |
2 | No route to specified transmit network |
3 | No route to destination |
5 | Misdialled trunk prefix (national use) |
6 | Channel unacceptable |
7 | Call awarded and being delivered in an established channel |
8 | Preemption |
14 | QoR: ported number |
16 | Normal Clearing |
17 | User busy |
18 | No user responding |
19 | No answer from user (user alerted) |
20 | Subscriber absent |
21 | Call Rejected |
22 | Number changed |
23 | Redirected to new destination |
26 | Non-selected user clearing |
27 | Destination out of order |
28 | Invalid number format |
29 | Facility rejected |
30 | Response to STATUS ENQUIRY |
31 | Normal, unspecified |
34 | No circuit/channel available |
38 | Network out of order |
41 | Temporary failure |
42 | Switching equipment congestion |
43 | Access information discarded |
44 | Requested circuit/channel not available |
50 | Requested facility not subscribed |
52 | Outgoing call barred |
54 | Incoming call barred |
57 | Bearer capability not authorized |
58 | Bearer capability not presently available |
65 | Bearer capability not implemented |
66 | Channel type not implemented |
69 | Requested facility not implemented |
81 | Invalid call reference value |
88 | Incompatible destination |
95 | Invalid message unspecified |
96 | Mandatory information element is missing |
97 | Message type non-existent or not implemented |
98 | Message not compatible with call state or message type non-existent or not implemented |
99 | Information element nonexistent or not implemented |
100 | Invalid information element contents |
101 | Message not compatible with call state |
102 | Recover on timer expiry |
111 | Protocol error, unspecified |
127 | Interworking, unspecified |
Configuration file
The dialer's configuration file is located at:
/etc/dialer.conf
Please find here the list of codes and its description:
; ; Dialer Configuration ; [general] debug=true log=true mysqlhost=localhost mysqluser=dialer mysqlpassword=dialeri6net asteriskuser=dialer asteriskpassword=1234 asteriskhost=localhost asteriskport=5038 mysqldatabase=dialer [default] active=true debug=true function=notify ;timeslot=Fri, ;pause=12h-14h calltoday=true blacklist=none maxlines=1 timeout=10000 multiplecalls=yes dialformat=IAX2/user callerid=0033988998899 url=http://192.168.1.200/vxml/dialer.vxml filter=none chanvar=0 chanstr=0 skip=0 orderby=attempts_pickups mode=voximal retries=0 attempts=1 attemptsdelay=00 clipping=false timestart=0 timestop=24 ringonly=false chanvar1= chanvar2= sipheader1= sipheader2= unanswered=false
Default is the default section campaign parameters.
Parameters: active=true function=voximal calltoday=true ; Set it true if you do not do any attemps, nor care of today, simpified loop SQL usednc=false maxlines=30 ; Number of simultaneous calls maxcaps=10 ; Number of calls added on each iteration, "speed of dialing" attemptsdelay=600 ; Delay in seconds between two attempts, default 10minutes (600 seconds) timeout=5000 ; Time out dspmode=none multiplecalls=false trunk=SIP ; Trunk type SIP dialprefix=none callerid=9987803065 ; SIP account filter=0 chanvar=0 chanstr=0 debug=true ; Enable very verbose debug, and debug files in /tmp skip=0 f_mode=0 f_areacode=0 f_areacode_prefix=0 f_zipcode=0 orderby=attempts_pickups mode=voximal ; Use Voximal appliction with a VoiceXML uri uri=http://some/index.vxml timeslot=9h-18h ; Timeslot pause=none blacklist=none attempts=1 ; Number of Attempts (1..n calls) dialformat=SIP/00%s@voztele-out ; Dial format chain clipping=false ; do not update intermediate call status, speed up calling
Dialer Web interface
The Dialer offers a FreePBX module do manage it (it is in beta version).