====== 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).