Monday, September 26, 2011

How To Use VICIDIAL and FReePBX

How To Use VICIDIAL and FReePBX Author: Erwan Desvergnes – SDCI
Email: erwan.desvergnes@sdci.fr


This how to is working with VICIDIAL latest version and FreePBX 2.2, and Asterisk 1.2.14
I’m using CENTOS 4.4 with latest update ( >10 callcenters for >6 month).



1 - Install Centos 4.4 (or any distrib you want)
2 - Follow the Matt Florell’s scratch install document.

In order to use FreePBX and Vicidial, you need install following Perl Module.

 * Bundle::CPAN
 * MD5
 * Digest::MD5
 * Digest::SHA1
 * readline
 * DBI
 * DBD::mysql
 * Net::Telnet
 * Time::HiRes
 * Net::Server
 * OLE::Storage_Lite
 * Spreadsheet::ParseExcel
 * IPC::Signal
 * Proc::WaitStat
 * MIME
 * Types
 * Time::HiRes




3 - Before compiling asterisk you need to install “SPANDSP” and patching asterisk like it describe in FreePBX setup.

4 - In order to use FreePBX, you need to execute Asterisk as a non root user like it describe in FreePBX setup.

5 - In reference to the Scratch Install “PHASE 5: CONFIGURING ASTERISK AND YOUR SIP PHONES” is not needed You must replace it by the end of the setup of FreePBX

6 - At the end of FreePBX setup you restart Vicidial Scratch install at “PHASE 6: INSTALLING ASTGUICLIENT AND VICIDIAL”

Note: “SUBPHASE 6.2: making additions to your Asterisk conf files” is not needed.

7 - At the end of Vicidial setup process you need to make some change to vicidial Installation.
a. You need to edit “/etc/asterisk/extension.conf” and at the end of the file, you must comment under General context.

And in “macro-dialout-trunk” you must do the following change

exten => s,n,Set(custom=$WARNING: No such module CUT! ) ; Custom trunks are prefixed with "AMP:"
exten => s,n,GotoIf($"${custom}" = "AMP"?customtrunk)
exten => s,n,AGI(call_log.agi,${EXTEN}) ; ADD FOR VICIDIAL
exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM},300,${DIAL_TRUNK_OPTIONS}) ; Regular Trunk Dial
exten => s,n,Goto(s-${DIALSTATUS},1)




b. You need to edit “/etc/asterisk/extension_custom.conf” at the top of the file just under the comments, you need to had the following lines:

#include vicidial_extensions.conf

custom-vicidial
include => default




from-internal-custom
include => default

c. You need to create a file “/etc/asterisk/vicidial_extensions.conf” with the following lines:

default
include => ext-local

; Extension 8600 + 8601 conference rooms
exten => 8600,1,Meetme,8600
exten => 8601,1,Meetme,8601

; Extension 102 - Grandstream hardphone
exten => 102,1,Playback,transfer|skip ; "Please hold while..."
exten => 102,2,Dial,sip/gs102|20|to ; Ring, 20 secs max
exten => 102,3,Voicemail,u102 ; Send to voicemail...
; Extension 2000 Sipura line 1
exten => 2000,1,Dial,sip/spa2000|30|to ; Ring, 30 secs max
exten => 2000,2,Voicemail,u2000 ; Send to voicemail...
; Extension 2001 Sipura line 2
exten => 2001,1,Dial,sip/spa2001|30|to ; Ring, 30 secs max
exten => 2001,2,Voicemail,u2001 ; Send to voicemail...
; Extension 2020 rings both sipura lines
exten => 2001,1,Dial,sip/spa2000&sip/spa2001|30|to ; Ring, 30 secs max
exten => 2001,2,Voicemail,u2000 ; Send to voicemail...
; Extension 301 rings the firefly softphone
exten => 301,1,Dial,(IAX2/firefly01@firefly01/s)
exten => 301,2,Hangup

; # timeout invalid rules
exten => #,1,Playback(invalid) ; "Thanks for trying the demo"
exten => #,2,Hangup ; Hang them up.
exten => t,1,Goto(#,1) ; If they take too long, give up
exten => i,1,Playback(invalid) ; "That's not valid, try again"

; Give voicemail at extension 8500
exten => 8500,1,VoicemailMain?
exten => 8500,2,Goto(s,6)

; ASTERISK AGENTS LOGINS FOR QUEUES (NOT part of VICIDIAL)
; the following assumes phone agent login and exten are 3 digits and the same
; also assumes that 3-digit login is present in agents.conf and queueus.conf
;Agent Logout then stay onhook, DIAL 54 + 3-digit ID
exten => _54XXX,1,AgentCallbackLogin(

)

the following are used to login and logout of Asterisk Queues from phone
Agent Login then stay offhook on the phone, DIAL 55 + 3-digit ID
exten => _55XXX,1,AgentLogin(${EXTEN:1})
Agent Login then stay onhook, phones will ring, DIAL 56 + 3-digit ID
exten => _56XXX,1,AgentCallbackLogin(

${EXTEN:1}@default)

; Extension 4001 rings Zap phone
exten => 4001,1,Dial,Zap/1|30| ; ring Zap device 1
exten => 4001,2,Voicemail,u4001 ; Send to voicemail...

exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log)
exten => h,2,DeadAGI(agi://127.0.0.1:4577/VD_hangup--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}))
;exten => h,1,DeadAGI(call_log.agi,${EXTEN}) ; DeadAGI is new
;exten => h,2,DeadAGI(VD_hangup.agi,PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})

; Extension 3429 - Inbound 800 number ()
exten => _**3429,1,Ringing
exten => _**3429,2,AGI(agi://127.0.0.1:4577/call_log)
;exten => _**3429,2,AGI(call_log.agi,${EXTEN})
exten => _**3429,3,Answer
exten => _**3429,4,Dial,sip/spa2000&sip/spa2001|30|to
exten => _**3429,5,Voicemail,u2000
; Extension 3429 - with ANI callerID
exten => _*NXXNXXXXXX*3429,1,Ringing
exten => _*NXXNXXXXXX*3429,2,AGI(agi://127.0.0.1:4577/call_log)
;exten => _*NXXNXXXXXX*3429,2,AGI(call_log.agi,${EXTEN})
exten => _*NXXNXXXXXX*3429,3,Answer
exten => _*NXXNXXXXXX*3429,4,Dial,sip/spa2000&sip/spa2001|30|to
exten => _*NXXNXXXXXX*3429,5,Voicemail,u2000

; Inbound call from BINFONE
; exten => ,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => ,1,AGI(call_log.agi,${EXTEN})
; exten => ,2,Dial(sip/gs102,55,o)
; exten => ,3,Hangup

; Extension - Inbound local number from PRI with 10 digit delivery
exten => ,1,Ringing
exten => ,2,Wait(1)
exten => ,3,AGI(agi://127.0.0.1:4577/call_log--fullCID--${EXTEN}-----${CALLERID}-----${CALLERIDNUM}-----${CALLERIDNAME})
;exten => ,3,AGI(call_logCID.agi,${EXTEN}-----${CALLERID}-----${CALLERIDNUM}-----${CALLERIDNAME})
exten => ,4,Answer
exten => ,5,Dial,sip/spa2000&sip/spa2001|30|to
exten => ,6,Voicemail,u2000

; dial a long distance outbound number to the UK
exten => _901144XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _901144XXXXXXXXXX,1,AGI(call_log.agi,${EXTEN})
exten => _901144XXXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},55,tTo)
exten => _901144XXXXXXXXXX,3,Hangup

; dial a long distance outbound number to Australia
exten => _901161XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _901161XXXXXXXXX,1,AGI(call_log.agi,${EXTEN})
exten => _901161XXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,tTo)
exten => _901161XXXXXXXXX,3,Hangup

; dial an 800 outbound number
exten => _91800NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _91800NXXXXXX,1,AGI(call_log.agi,${EXTEN})
exten => _91800NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91800NXXXXXX,3,Hangup
exten => _91888NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _91888NXXXXXX,1,AGI(call_log.agi,${EXTEN})
exten => _91888NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91888NXXXXXX,3,Hangup
exten => _91877NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _91877NXXXXXX,1,AGI(call_log.agi,${EXTEN})
exten => _91877NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91877NXXXXXX,3,Hangup
exten => _91866NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _91866NXXXXXX,1,AGI(call_log.agi,${EXTEN})
exten => _91866NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _91866NXXXXXX,3,Hangup

; dial a local 727 outbound number with area code
exten => _9727NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _9727NXXXXXX,1,AGI(call_log.agi,${EXTEN})
exten => _9727NXXXXXX,2,Dial(${TRUNK}/1${EXTEN:1},,tTo)
exten => _9727NXXXXXX,3,Hangup

; dial a local 813 outbound number with area code
exten => _9813NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _9813NXXXXXX,1,AGI(call_log.agi,${EXTEN})
exten => _9813NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo)
exten => _9813NXXXXXX,3,Hangup

; dial a long distance outbound number
exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _91NXXNXXXXXX,1,AGI(call_log.agi,${EXTEN})
exten => _91NXXNXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,tTo)
exten => _91NXXNXXXXXX,3,Hangup
; dial a long distance outbound number through BINFONE
; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;; exten => _91NXXNXXXXXX,1,AGI(call_log.agi,${EXTEN})
; exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN},55,o)
; exten => _91NXXNXXXXXX,3,Hangup
; dial a long distance outbound number through a SIP provider
; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;; exten => _91NXXNXXXXXX,1,AGI(call_log.agi,${EXTEN})
; exten => _91NXXNXXXXXX,2,Dial(sip/${EXTEN}@SIPtrunk,55,o)
; exten => _91NXXNXXXXXX,3,Hangup

; dial Phone Number for France IAX
exten => _910X.,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _910X.,2,Dial(${OUT_2}/${EXTEN:2},55,o) ; Name of the trunk chose in extensions_additional.conf

; dial a local outbound number (modified because of only LD T1)
exten => _9NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _9NXXXXXX,1,AGI(call_log.agi,${EXTEN})
exten => _9NXXXXXX,2,Dial(${TRUNK}/1727${EXTEN:1},,tTo)
exten => _9NXXXXXX,3,Hangup

; parameters for call_inbound.agi (7 fields separated by five dashes "-----"):
; 1. the extension of the phone to ring as defined in the asterisk.phones table
; 2. the phone number that was called, for the live_inbound/_log entry
; 3. a text description of the number that was called in
; 4-7. optional fields, they are also passed as fields in the GUI to web browser

; Extension 3429 - Inbound 800 number ()
exten => _**3429,1,Ringing
exten => _**3429,2,AGI(agi://127.0.0.1:4577/call_log)
;exten => _**3429,2,AGI(call_log.agi,${EXTEN})
exten => _**3429,3,AGI(call_inbound.agi,spa2000----------Inbound 800-----x-----y-----z-----w)
exten => _**3429,4,Answer
exten => _**3429,5,Dial,sip/spa2000&sip/spa2001|30|to
exten => _**3429,6,Voicemail,u2000
; Extension 3429 - with ANI callerID
exten => _*NXXNXXXXXX*3429,1,Ringing
exten => _*NXXNXXXXXX*3429,2,AGI(agi://127.0.0.1:4577/call_log)
;exten => _*NXXNXXXXXX*3429,2,AGI(call_log.agi,${EXTEN})
exten => _*NXXNXXXXXX*3429,3,AGI(call_inbound.agi,spa2000----------Inbound 800-----x-----y-----z-----w)
exten => _*NXXNXXXXXX*3429,3,Answer
exten => _*NXXNXXXXXX*3429,4,Dial,sip/spa2000&sip/spa2001|30|to
exten => _*NXXNXXXXXX*3429,5,Voicemail,u2000

exten => _010*01XXX,1,Goto(default,${EXTEN:16},1)
exten => _010*01XXX*.,1,Goto(default,${EXTEN:16},1)
exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)

; ### server 2 extens:
; exten => _010*01XXX,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o)
; exten => _010*01XXX,2,Hangup
; exten => _010*01XXX*.,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o)
; exten => _010*01XXX*.,2,Hangup




; parameters for agi-VDADcloser.agi (2 fields separated by five dashes "-----"):
; 1. the full extension formatted by VICIDIAL for internal transfers * separated
; 2. the word START to denote the beginning of the acceptance of the transfer
; inbound VICIDIAL transfer calls can arrive through PRI T1 crossover or IAX channel
exten => _90009.,1,Answer ; Answer the line
exten => _90009.,2,AGI(agi-VDADcloser.agi,${EXTEN}-----START)
exten => _90009.,3,Hangup

; parameters for agi-VDADcloser_inbound....agi (7 fields separated by five dashes "-----"):
; 1. the full name of the IN GROUP to be used in vicidial for the inbound call
; 2. the phone number that was called, for the log entry
; 3. the callerID or lead_id of the person that called(usually overridden)
; 4. the park extension audio file name if used
; 5. the status of the call initially(usually not used)
; 6. the list_id to insert the new lead under if it is new (and callerID available)
; 7. the phone dialing code to insert with the new lead if new (and callerID available)

; inbound VICIDIAL call with CID delivery through T1 PRI
exten => 1234,1,Ringing ; call ringing
exten => 1234,2,Wait(1) ; Wait 1 second for CID delivery from PRI
exten => 1234,3,Answer ; Answer the line
exten => 1234,4,AGI(agi-VDADcloser_inboundCID.agi,CL_GALLERIA----------Closer-----park----------999-----1)
exten => 1234,5,Hangup

; inbound VICIDIAL call with ANI delivery through robbed-bit T1 (*NXXNXXXXXX*DNIS)
exten => 1234,1,Answer ; Answer the line
exten => 1234,2,AGI(agi-VDADcloser_inboundANI.agi,CL_GALLERIA----------Closer-----park----------999-----1)
exten => 1234,3,Hangup

; inbound VICIDIAL call with prompt for 4-digit fronter code
exten => 1234,1,Answer ; Answer the line
exten => 1234,2,AGI(agi-VDADcloser_inbound.agi,CL_GALLERIA----------Closer-----park----------999-----1)
exten => 1234,3,Hangup

; barge monitoring extension
exten => 8159,1,ZapBarge?
exten => 8159,2,Hangup

; ZapBarge? direct channel extensions
exten => 8612001,1,ZapBarge(1)
exten => 8612002,1,ZapBarge(2)
exten => 8612003,1,ZapBarge(3)
exten => 8612004,1,ZapBarge(4)
exten => 8612005,1,ZapBarge(5)
exten => 8612006,1,ZapBarge(6)
exten => 8612007,1,ZapBarge(7)
exten => 8612008,1,ZapBarge(8)
exten => 8612009,1,ZapBarge(9)
exten => 8612010,1,ZapBarge(10)
exten => 8612011,1,ZapBarge(11)
exten => 8612012,1,ZapBarge(12)
exten => 8612013,1,ZapBarge(13)
exten => 8612014,1,ZapBarge(14)
exten => 8612015,1,ZapBarge(15)
exten => 8612016,1,ZapBarge(16)
exten => 8612017,1,ZapBarge(17)
exten => 8612018,1,ZapBarge(18)
exten => 8612019,1,ZapBarge(19)
exten => 8612020,1,ZapBarge(20)
exten => 8612021,1,ZapBarge(21)
exten => 8612022,1,ZapBarge(22)
exten => 8612023,1,ZapBarge(23)
exten => 8612024,1,ZapBarge(24)

; astGUIclient conferences
exten => 8600001,1,Meetme,8600001|q
exten => 8600002,1,Meetme,8600002|q
exten => 8600003,1,Meetme,8600003|q
exten => 8600004,1,Meetme,8600004|q
exten => 8600005,1,Meetme,8600005|q
exten => 8600006,1,Meetme,8600006|q
exten => 8600007,1,Meetme,8600007|q
exten => 8600008,1,Meetme,8600008|q
exten => 8600009,1,Meetme,8600009|q
exten => 8600010,1,Meetme,8600010|q
exten => 8600011,1,Meetme,8600011|q
exten => 8600012,1,Meetme,8600012|q
exten => 8600013,1,Meetme,8600013|q
exten => 8600014,1,Meetme,8600014|q
exten => 8600015,1,Meetme,8600015|q
exten => 8600016,1,Meetme,8600016|q
exten => 8600017,1,Meetme,8600017|q
exten => 8600018,1,Meetme,8600018|q
exten => 8600019,1,Meetme,8600019|q
exten => 8600020,1,Meetme,8600020|q
exten => 8600021,1,Meetme,8600021|q
exten => 8600022,1,Meetme,8600022|q
exten => 8600023,1,Meetme,8600023|q
exten => 8600024,1,Meetme,8600024|q
exten => 8600025,1,Meetme,8600025|q
exten => 8600026,1,Meetme,8600026|q
exten => 8600027,1,Meetme,8600027|q
exten => 8600028,1,Meetme,8600028|q
exten => 8600029,1,Meetme,8600029|q

exten => _X48600XXX,1,MeetMeAdmin(${EXTEN:2},T,${EXTEN:0:1})
exten => _X48600XXX,2,Hangup

exten => _X38600XXX,1,MeetMeAdmin(${EXTEN:2},t,${EXTEN:0:1})
exten => _X38600XXX,2,Hangup

exten => 8300,1,Hangup

; VICIDIAL conferences
exten => 8600051,1,Meetme,8600051
exten => 8600052,1,Meetme,8600052
exten => 8600053,1,Meetme,8600053
exten => 8600054,1,Meetme,8600054
exten => 8600055,1,Meetme,8600055
exten => 8600056,1,Meetme,8600056
exten => 8600057,1,Meetme,8600057
exten => 8600058,1,Meetme,8600058
exten => 8600059,1,Meetme,8600059
exten => 8600060,1,Meetme,8600060
exten => 8600061,1,Meetme,8600061
exten => 8600062,1,Meetme,8600062
exten => 8600063,1,Meetme,8600063
exten => 8600064,1,Meetme,8600064
exten => 8600065,1,Meetme,8600065
exten => 8600066,1,Meetme,8600066
exten => 8600067,1,Meetme,8600067
exten => 8600068,1,Meetme,8600068
exten => 8600069,1,Meetme,8600069
exten => 8600070,1,Meetme,8600070
exten => 8600071,1,Meetme,8600071
exten => 8600072,1,Meetme,8600072
exten => 8600073,1,Meetme,8600073
exten => 8600074,1,Meetme,8600074
exten => 8600075,1,Meetme,8600075
exten => 8600076,1,Meetme,8600076
exten => 8600077,1,Meetme,8600077
exten => 8600078,1,Meetme,8600078
exten => 8600079,1,Meetme,8600079
exten => 8600080,1,Meetme,8600080
exten => 8600081,1,Meetme,8600081
exten => 8600082,1,Meetme,8600082
exten => 8600083,1,Meetme,8600083
exten => 8600084,1,Meetme,8600084
exten => 8600085,1,Meetme,8600085
exten => 8600086,1,Meetme,8600086
exten => 8600087,1,Meetme,8600087
exten => 8600088,1,Meetme,8600088
exten => 8600089,1,Meetme,8600089
exten => 8600090,1,Meetme,8600090
exten => 8600091,1,Meetme,8600091
exten => 8600092,1,Meetme,8600092
exten => 8600093,1,Meetme,8600093
exten => 8600094,1,Meetme,8600094
exten => 8600095,1,Meetme,8600095
exten => 8600096,1,Meetme,8600096
exten => 8600097,1,Meetme,8600097
exten => 8600098,1,Meetme,8600098
exten => 8600099,1,Meetme,8600099
exten => 8600100,1,Meetme,8600100
exten => 8600101,1,Meetme,8600101
exten => 8600102,1,Meetme,8600102
exten => 8600103,1,Meetme,8600103
exten => 8600104,1,Meetme,8600104
exten => 8600105,1,Meetme,8600105
exten => 8600106,1,Meetme,8600106
exten => 8600107,1,Meetme,8600107
exten => 8600108,1,Meetme,8600108
exten => 8600109,1,Meetme,8600109
exten => 8600110,1,Meetme,8600110
exten => 8600111,1,Meetme,8600111
exten => 8600112,1,Meetme,8600112
exten => 8600113,1,Meetme,8600113
exten => 8600114,1,Meetme,8600114
exten => 8600115,1,Meetme,8600115
exten => 8600116,1,Meetme,8600116
exten => 8600117,1,Meetme,8600117
exten => 8600118,1,Meetme,8600118
exten => 8600119,1,Meetme,8600119
exten => 8600120,1,Meetme,8600120
exten => 8600121,1,Meetme,8600121
exten => 8600122,1,Meetme,8600122
exten => 8600123,1,Meetme,8600123
exten => 8600124,1,Meetme,8600124
exten => 8600125,1,Meetme,8600125
exten => 8600126,1,Meetme,8600126
exten => 8600127,1,Meetme,8600127
exten => 8600128,1,Meetme,8600128
exten => 8600129,1,Meetme,8600129
exten => 8600130,1,Meetme,8600130
exten => 8600131,1,Meetme,8600131
exten => 8600132,1,Meetme,8600132
exten => 8600133,1,Meetme,8600133
exten => 8600134,1,Meetme,8600134
exten => 8600135,1,Meetme,8600135
exten => 8600136,1,Meetme,8600136
exten => 8600137,1,Meetme,8600137
exten => 8600138,1,Meetme,8600138
exten => 8600139,1,Meetme,8600139
exten => 8600140,1,Meetme,8600140
exten => 8600141,1,Meetme,8600141
exten => 8600142,1,Meetme,8600142
exten => 8600143,1,Meetme,8600143
exten => 8600144,1,Meetme,8600144
exten => 8600145,1,Meetme,8600145
exten => 8600146,1,Meetme,8600146
exten => 8600147,1,Meetme,8600147
exten => 8600148,1,Meetme,8600148
exten => 8600149,1,Meetme,8600149
exten => 8600150,1,Meetme,8600150
exten => 8600151,1,Meetme,8600151
exten => 8600152,1,Meetme,8600152
exten => 8600153,1,Meetme,8600153
exten => 8600154,1,Meetme,8600154
exten => 8600155,1,Meetme,8600155
exten => 8600156,1,Meetme,8600156
exten => 8600157,1,Meetme,8600157
exten => 8600158,1,Meetme,8600158
exten => 8600159,1,Meetme,8600159
exten => 8600160,1,Meetme,8600160
exten => 8600161,1,Meetme,8600161
exten => 8600162,1,Meetme,8600162
exten => 8600163,1,Meetme,8600163
exten => 8600164,1,Meetme,8600164
exten => 8600165,1,Meetme,8600165
exten => 8600166,1,Meetme,8600166
exten => 8600167,1,Meetme,8600167
exten => 8600168,1,Meetme,8600168
exten => 8600169,1,Meetme,8600169
exten => 8600170,1,Meetme,8600170
exten => 8600171,1,Meetme,8600171
exten => 8600172,1,Meetme,8600172
exten => 8600173,1,Meetme,8600173
exten => 8600174,1,Meetme,8600174
exten => 8600175,1,Meetme,8600175
exten => 8600176,1,Meetme,8600176
exten => 8600177,1,Meetme,8600177
exten => 8600178,1,Meetme,8600178
exten => 8600179,1,Meetme,8600179
exten => 8600180,1,Meetme,8600180
exten => 8600181,1,Meetme,8600181
exten => 8600182,1,Meetme,8600182
exten => 8600183,1,Meetme,8600183
exten => 8600184,1,Meetme,8600184
exten => 8600185,1,Meetme,8600185
exten => 8600186,1,Meetme,8600186
exten => 8600187,1,Meetme,8600187
exten => 8600188,1,Meetme,8600188
exten => 8600189,1,Meetme,8600189
exten => 8600190,1,Meetme,8600190
exten => 8600191,1,Meetme,8600191
exten => 8600192,1,Meetme,8600192
exten => 8600193,1,Meetme,8600193
exten => 8600194,1,Meetme,8600194
exten => 8600195,1,Meetme,8600195
exten => 8600196,1,Meetme,8600196
exten => 8600197,1,Meetme,8600197
exten => 8600198,1,Meetme,8600198
exten => 8600199,1,Meetme,8600199
exten => 8600200,1,Meetme,8600200
; quiet entry and leaving conferences for VICIDIAL
exten => _78600XXX,1,Meetme,${EXTEN:1}|q
; quiet monitor extensions for meetme rooms (for room managers)
exten => _68600XXX,1,Meetme,${EXTEN:1}|mq




; park channel for client GUI parking, hangup after 30 minutes
; create a GSM formatted audio file named "park.gsm" that is 30 minutes long
; and put it in /var/lib/asterisk/sounds
exten => 8301,1,Answer
exten => 8301,2,AGI(park_CID.agi)
exten => 8301,3,Playback(park)
exten => 8301,4,Hangup
exten => 8303,1,Answer
exten => 8303,2,AGI(park_CID.agi)
exten => 8303,3,Playback(conf)
exten => 8303,4,Hangup

; park channel for client GUI conferencing, hangup after 30 minutes
; create a GSM formatted audio file named "conf.gsm" that is 30 minutes long
; and put it in /var/lib/asterisk/sounds
exten => 8302,1,Answer
exten => 8302,2,Playback(conf)
exten => 8302,3,Hangup

; default audio for safe harbor 2-second-after-hello message then hangup
; create a GSM formatted audio file complies with safe harbor rules
; and put it in /var/lib/asterisk/sounds then change filename below
exten => 8307,1,Answer
exten => 8307,2,Playback(vm-goodbye)
exten => 8307,3,Hangup

; this is used for recording conference calls, the client app sends the filename
; value as a callerID recordings go to /var/spool/asterisk/monitor (WAV)
exten => 8309,1,Answer
exten => 8309,2,Monitor(wav,${CALLERIDNAME})
exten => 8309,3,Wait,3600
exten => 8309,4,Hangup

; this is used for recording conference calls, the client app sends the filename
; value as a callerID recordings go to /var/spool/asterisk/monitor (GSM)
exten => 8310,1,Answer
exten => 8310,2,Monitor(gsm,${CALLERIDNAME})
exten => 8310,3,Wait,3600
exten => 8310,4,Hangup

; this is used for playing a message to an answering machine forwarded from AMD in VICIDIAL
; replace conf with the message file you want to leave
exten => 8320,1,WaitForSilence(2000,2) ; AMD got machine. leave message after recording
exten => 8320,2,Playback(conf)
exten => 8320,3,AGI(VD_amd_post.agi,${EXTEN})
exten => 8320,4,Hangup

; use for selective CallerID hangup by area code(hard-coded)
exten => 8352,1,AGI(agi-VDADselective_CID_hangup.agi,${EXTEN})
exten => 8352,2,Playback(safe_harbor)
exten => 8352,3,Hangup

; prompt recording AGI script, ID is 4321
exten => 8168,1,Answer
exten => 8168,2,AGI(agi-record_prompts.agi)
exten => 8168,3,Hangup

; playback of recorded prompts
exten => _851XXXXX,1,Answer
exten => _851XXXXX,2,Playback(${EXTEN})
exten => _851XXXXX,3,Hangup

; this is used to allow the GUI to send you directly into voicemail
; don't forget to set GUI variable $voicemail_exten to this extension
exten => 8501,1,VoicemailMain(s${CALLERIDNUM})
exten => 8501,2,Hangup

; this is used to allow the GUI to send live calls directly into voicemail
; don't forget to set GUI variable $voicemail_dump_exten to this extension
exten => _6666.,1,Wait(2)
exten => _6666.,2,Voicemail(${EXTEN:14})
exten => _6666.,3,Hangup

; this is used for sending DTMF signals within conference calls, the client app
; sends the digits to be played in the callerID field
; sound files must be placed in /var/lib/asterisk/sounds
exten => 8500998,1,Answer
exten => 8500998,2,Playback(silence)
exten => 8500998,3,AGI(agi-dtmf.agi)
exten => 8500998,4,Hangup




;#### VDAD SIP UNREGISTERED TRANSFER ENTRIES ####
;#### Use these entries IN PLACE OF the entries above if you are using SIP trunks
;#### and are not registering your provider in sip.conf
;; 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,2,AGI(call_log.agi,${EXTEN})
;exten => 8365,3,AGI(agi-VDADtransfer.agi,${EXTEN})
;exten => 8365,4,AGI(agi-VDADtransfer.agi,${EXTEN})
;exten => 8365,5,AGI(agi-VDADtransfer.agi,${EXTEN})
;exten => 8365,6,Hangup

;#### VDAD STANDARD TRANSFER ENTRIES ####
; 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,1,AGI(call_log.agi,${EXTEN})
exten => 8365,3,AGI(agi-VDADtransfer.agi,${EXTEN:2})
exten => 8365,4,AGI(agi-VDADtransfer.agi,${EXTEN:2})
exten => 8365,5,AGI(agi-VDADtransfer.agi,${EXTEN:2})
exten => 8365,6,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,2,AGI(call_log.agi,${EXTEN})
exten => 8366,3,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,4,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
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,2,AGI(call_log.agi,${EXTEN})
exten => 8367,3,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
exten => 8367,4,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
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,2,AGI(call_log.agi,${EXTEN})
exten => 8368,3,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8368,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
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,2,AGI(call_log.agi,${EXTEN})
exten => 8369,3,AMD(3500||120|50|5|256)
exten => 8369,4,AGI(VD_amd.agi,${EXTEN})
exten => 8369,5,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8369,6,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
exten => 8369,7,Hangup
;
;; VICIDIAL auto-dial reminder script
exten => 8372,1,Playback(sip-silence)
exten => 8372,2,AGI(agi://127.0.0.1:4577/call_log)
;;exten => 8372,2,AGI(call_log.agi,${EXTEN})
exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,5,Hangup






d. You need to edit “/etc/asterisk/manager.conf” and add the following lines:

admin
secret = amp111
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user

cron
secret = 1234
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user

updatecron
secret = 1234
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user

listencron
secret = 1234
read = system,call,log,verbose,command,agent,user
write = command

sendcron
secret = 1234
read = command
write = system,call,log,verbose,command,agent,user

user1
secret = 1234
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user




e. You need to edit “/etc/asterisk/meetme.conf” and add the following line:

#include vicidial_meetme.conf

f. You need to create a file “/etc/asterisk/vicidial_meetme.conf” and add the following lines:

conf => 8600011
conf => 8600012
conf => 8600013
conf => 8600014
conf => 8600015
conf => 8600016
conf => 8600017
conf => 8600018
conf => 8600019
conf => 8600020
conf => 8600021
conf => 8600022
conf => 8600023
conf => 8600024
conf => 8600025
conf => 8600026
conf => 8600027
conf => 8600028
conf => 8600029
conf => 8600051
conf => 8600052
conf => 8600053
conf => 8600054
conf => 8600055
conf => 8600056
conf => 8600057
conf => 8600058
conf => 8600059
conf => 8600060
conf => 8600061
conf => 8600062
conf => 8600063
conf => 8600064
conf => 8600065
conf => 8600066
conf => 8600067
conf => 8600068
conf => 8600069
conf => 8600070
conf => 8600071
conf => 8600072
conf => 8600073
conf => 8600074
conf => 8600075
conf => 8600076
conf => 8600077
conf => 8600078
conf => 8600079
conf => 8600080
conf => 8600081
conf => 8600082
conf => 8600083
conf => 8600084
conf => 8600085
conf => 8600086
conf => 8600087
conf => 8600088
conf => 8600089
conf => 8600090
conf => 8600091
conf => 8600092
conf => 8600093
conf => 8600094
conf => 8600095
conf => 8600096
conf => 8600097
conf => 8600098
conf => 8600099
conf => 8600100

g. In order to get better performance in Perl Script, you need to start asterisk using Matt Florell’s starup script. For this purpose, you need to edit “/usr/sbin/amportal” near line 178 and make follwing change:

case "$1" in
start)
chown_asterisk
# run_asterisk #Replace for Vicidial use
/usr/share/astguiclient/start_asterisk_boot.pl
run_fop
 ;;
stop)
stop_asterisk
stop_fop
 ;;
restart)
stop_asterisk
stop_fop
sleep 1
chown_asterisk
# run_asterisk #Replace for Vicidial use
/usr/share/astguiclient/start_asterisk_boot.pl
run_fop
 ;;
chown)
chown_asterisk
 ;;
kill)
kill_amp
 ;;
*)
echo "----------AMP Control Script-----------"




All must be right now to start using VICIDIAL and FreePBX
If anyone has any questions, comments, or concerns, please let me know.

No comments:

Post a Comment