[general]
static=yes
writeprotect=no
[globals]
CONSOLE=Console/dsp ; Console interface for demo
;TRUNK=Zap/r1 ; Trunk interface
;TRUNKX=Zap/r2 ; 2nd trunk interface
TRUNKIAX=IAX2/ASTtest1:[email protected]:4569 ; IAX trunk interface
TRUNKIAX1=IAX2/ASTtest1:[email protected]:4569 ; IAX trunk interface
;TRUNKBINFONE=IAX2/1112223333:[email protected] ; IAX trunk interface
;SIPtrunk=SIP/1234:[email protected] ; SIP trunk
[COLOR="Lime"]
#include extensions-vicidial.conf
[trunkinbound]
; DID call routing process
exten => _X.,1,AGI(agi-DID_route.agi)
; FastAGI for VICIDIAL/astGUIclient call logging
exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
[loopback-no-log]
; This context is to accept calls that have already been logged in another context in Vicidial
; and has been sent through one of the loopbacks. This is why this context is missing the h extension.
; Do not put any extensions in this context unless you specifically understand what this means.
;exten => _91NXXNXXXXXX,1,Dial(${TRUNKX}/${EXTEN:1},,To)
;exten => _91NXXNXXXXXX,n,Hangup
; special Canadian PRI callerIDname settings FOR USE IN LOOPBACK CONTEXT ONLY
;exten => _91NXXNXXXXXX,1,Set(CALLERID(name)="ACME Widgets")
;exten => _91NXXNXXXXXX,n,AGI(agi-CANADA_PRI_CIDname.agi)
;exten => _91NXXNXXXXXX,n,Dial(${TRUNKX}/${EXTEN:1},,To)
;exten => _91NXXNXXXXXX,n,Hangup
exten => _999XX11112,1,Wait(2)
exten => _999XX11112,n,Answer
exten => _999XX11112,n,Playback(ss-noservice)
exten => _999XX11112,n,Playback(vm-goodbye)
exten => _999XX11112,n,Hangup
[default]
include => vicidial-auto
; VICI-GROUP DIRECT SUPPORT LINE (VICIHELP[84244357])
exten => _84244XXX,1,Dial(IAX2/vicihelp/${EXTEN:5})
; Local agent alert extensions
exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
; Local blind monitoring
exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To)
; playback of recorded prompts
exten => _851XXXXX,1,Answer
exten => _851XXXXX,2,Playback(${EXTEN})
exten => _851XXXXX,3,Hangup
; this is used for playing a message to an answering machine forwarded from AMD in VICIDIAL
exten => _7851XXXXX,1,WaitForSilence(2000,2) ; AMD got machine. leave message after recording
exten => _7851XXXXX,2,Playback(${EXTEN:1})
exten => _7851XXXXX,3,AGI(VD_amd_post.agi,${EXTEN:1})
exten => _7851XXXXX,4,Hangup
; FastAGI for VICIDIAL/astGUIclient call logging
exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
; Example phone extensions
; Extension 2000 Sipura/Linksys ATA 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/Linksys ATA line 2
;exten => 2001,1,Dial(sip/spa2001,30,to) ; Ring, 30 secs max
;exten => 2001,2,Voicemail,u2001 ; Send to voicemail...
; Extension 2102 rings Grandstream phone
;exten => 2102,1,Dial(sip/gs102,30,to) ; Ring, 30 secs max
;exten => 2102,2,Voicemail,u2102 ; Send to voicemail...
; Extension 401 rings the firefly softphone
;exten => 401,1,Dial((IAX2/firefly01@firefly01/s||t)
;exten => 401,2,Hangup
; 100-350 phone extensions now auto-generated
; extensions for other SIP and IAX call center phones
; cc100-cc150 SIP Phones
;exten => _1[0-5]X,1,Dial(sip/cc${EXTEN},20,to)
; cc300-cc350 IAX Phones
;exten => _3[0-5]X,1,Dial(IAX2/cc${EXTEN},20,to)
; extensions if using a T1 channelbank
;exten => _19XX,1,Dial(Zap/${EXTEN:2},30,o)
;exten => _19XX,2,Hangup
; Extension 4001 rings Zap phone (this example for FXS on Zap port 1)
;exten => 4001,1,Dial(Zap/1,30,o) ; ring Zap device 1
;exten => 4001,2,Voicemail,u4001 ; Send to voicemail...
; # 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"
; Extensions for performance testing
exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91999NXXXXXX,2,Dial(${TRUNKloop}/${EXTEN:2},,tTo)
exten => _91999NXXXXXX,3,Hangup
exten => 999999999999,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 999999999999,2,Dial(${TRUNKloop}/${EXTEN:1},,tTo)
exten => 999999999999,3,Hangup
; This is a loopback dialaround to allow for hearing of ringing for 3way calls
exten => _881NXXNXXXXXX,1,Answer
exten => _881NXXNXXXXXX,2,Dial(${TRUNKloop}/9${EXTEN:2},,To)
exten => _881NXXNXXXXXX,3,Hangup
; Vtiger fax and email log extensions
exten => _9118XXXXXXXX,1,Dial(${TRUNKblind}/9998818112,55,to)
exten => _9119XXXXXXXX,1,Dial(${TRUNKblind}/9998819112,55,to)
; CARRIER DIALING EXTENSIONS, USE THE ADMIN INTERFACE TO PROGRAM THESE
; dial an 800 outbound number
;exten => _91800NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _91800NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
;exten => _91800NXXXXXX,3,Hangup
;exten => _91888NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _91888NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
;exten => _91888NXXXXXX,3,Hangup
;exten => _91877NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _91877NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
;exten => _91877NXXXXXX,3,Hangup
;exten => _91866NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _91866NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To)
;exten => _91866NXXXXXX,3,Hangup
; dial a long distance outbound number
; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls
;exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _91NXXNXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To)
;exten => _91NXXNXXXXXX,3,Hangup
; 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,2,Dial(${TRUNK}/1727${EXTEN:1},,To)
;exten => _9NXXXXXX,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,2,Dial(${TRUNK}/1${EXTEN:1},,To)
;exten => _9727NXXXXXX,3,Hangup
; dial a long distance outbound number to the UK
; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
;exten => _901144XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _901144XXXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},55,To)
;exten => _901144XXXXXXXXXX,3,Hangup
; dial a long distance outbound number to Australia
; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls,
;exten => _901161XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
;exten => _901161XXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To)
;exten => _901161XXXXXXXXX,3,Hangup
; dial a long distance outbound number through BINFONE
; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN:1},55,To)
; 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,2,Dial(sip/${EXTEN:1}@SIPtrunk,55,o)
; exten => _91NXXNXXXXXX,3,Hangup
; special extensions for North America to catch invalid phone numbers
; exten => _91XXX[0-1]XXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91XXX[0-1]XXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to)
; exten => _91XXX[0-1]XXXXXX,n,Hangup
; exten => _91[0-1]XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91[0-1]XXXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to)
; exten => _91[0-1]XXXXXXXXX,n,Hangup
; exten => _91XXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91XXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to)
; exten => _91XXXXXX,n,Hangup
; exten => _91XXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91XXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to)
; exten => _91XXXXXXX,n,Hangup
; exten => _91XXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91XXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to)
; exten => _91XXXXXXXX,n,Hangup
; exten => _91XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91XXXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to)
; exten => _91XXXXXXXXX,n,Hangup
; exten => _91XXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91XXXXXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to)
; exten => _91XXXXXXXXXXX,n,Hangup
; exten => _91XXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91XXXXXXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to)
; exten => _91XXXXXXXXXXXX,n,Hangup
; exten => _91XXXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91XXXXXXXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to)
; exten => _91XXXXXXXXXXXXX,n,Hangup
; dial a USA long distance outbound number through the loopback-no-log context
; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91NXXNXXXXXX,2,Dial(${TRUNKloop}/888${EXTEN:2},55,o)
; exten => _91NXXNXXXXXX,3,Hangup
;exten => 888NXXNXXXXXX,1,Goto(loopback-no-log,91${EXTEN:3},1)
exten => 8889990011112,1,Goto(loopback-no-log,9990011112,1)
; Inbound call from BINFONE
; exten => 1112223333,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => 1112223333,2,Dial(sip/gs102,55,o)
; exten => 1112223333,3,Hangup
; Extension 7275551212 - Inbound local number from PRI with 10 digit delivery
;exten => 7275551212,1,Ringing
;exten => 7275551212,2,Wait(1)
;exten => 7275551212,3,AGI(agi://127.0.0.1:4577/call_log--fullCID--${EXTEN}-----${CALLERID(all)}-----${CALLERID(num)}-----${CALLERID(name)})
;exten => 7275551212,4,Answer
;exten => 7275551212,5,Dial(sip/spa2000&sip/spa2001,30,To)
;exten => 7275551212,6,Voicemail,u2000
; 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
; This is not part of VICIDIAL, it is for astGUIclient agent use only
; Extension 3429 - Inbound 800 number (1-800-555-3429) example of RBS T1
; with 10 digit ANI and 4 digit DNIS star separated
;exten => _**3429,1,Ringing
;exten => _**3429,2,AGI(agi://127.0.0.1:4577/call_log)
;exten => _**3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----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,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w)
;exten => _*NXXNXXXXXX*3429,4,Answer
;exten => _*NXXNXXXXXX*3429,5,Dial(sip/spa2000&sip/spa2001,30,to)
;exten => _*NXXNXXXXXX*3429,6,Voicemail,u2000
; parameters for agi-VDAD_ALL_inbound.agi (upto 12 fields separated by five dashes "-----"):
; Below are the parameters needed for the script to be run properly
; 1. the method of call handling for the script:
; - CID - CID received, add record with phone number
; - CIDLOOKUP - Lookup CID to find record in whole system
; - CIDLOOKUPRL - Restrict lookup to one list
; - CIDLOOKUPRC - Restrict lookup to one campaign's lists
; - CLOSER - Closer calls from VICIDIAL fronters
; - ANI - ANI received, add record with phone number (based on RBS T1s)
; - ANILOOKUP - Lookup ANI to find record in whole system
; - ANILOOKUPRL - Restrict lookup to one list
; - ANILOOKUPRC - Restrict lookup to one campaign's lists
; - VID - Add record with Vendor Lead Code received as argument 12
; - VIDLOOKUP - Lookup Vendor Lead Code received as argument 12 to find record in whole system
; - VIDLOOKUPRL - Restrict lookup to one list (argument 12)
; - VIDLOOKUPRC - Restrict lookup to one campaign's lists (argument 12)
; - VIDPROMPT - Prompt Vendor Lead Code to User with IVR to add record with Vendor Lead Code
; - VIDPROMPTLOOKUP - Prompt Vendor Lead Code to User with IVR to find record in whole system
; - VIDPROMPTLOOKUPRL - Restrict lookup to one list
; - VIDPROMPTLOOKUPRC - Restrict lookup to one campaign's lists
; - 3DIGITID - Enter 3 digit code to go to agent
; - 4DIGITID - Enter 4 digit code to go to agent
; - XDIGITID - Enter X digit code to go to agent(variable, i.e. 9DIGITID, 12DIGITID, etc...)
; 2. the method of searching for an available agent:
; - LO - Load Balance Overflow only (priority to home server)
; - LB - <default> Load Balance total system
; - SO - Home server only
; 3. the full name of the IN GROUP to be used in vicidial for the inbound call
; 4. the phone number that was called, for the log entry
; 5. the callerID or lead_id of the person that called(usually overridden)
; 6. the park extension audio file name if used
; 7. the status of the call initially(usually not used)
; 8. the list_id to insert the new lead under if it is new (and CID/ANI available)
; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available)
; 10. the campaign_id to search within lists if CIDLOOKUPRC
; 11. the user to queue the call to for AGENTDIRECT in-group calls
; 12. vendor_lead_code if external mechanism like custom IVR is used to prompt user for ID
;
; inbound VICIDIAL call with CID delivery through T1 PRI
;exten => 1234,1,Answer ; Answer the line
;exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----CL_GALLERIA-----7274515134-----Closer-----park----------999-----1)
;exten => 1234,3,Hangup
; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel]
exten => _90009.,1,Answer ; Answer the line
exten => _90009.,2,Dial(${TRUNKloop}/9${EXTEN},,to)
exten => _90009.,3,Hangup
exten => _990009.,1,Answer ; Answer the line, Sometimes needs to be removed
exten => _990009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
exten => _990009.,3,Hangup
; DID forwarded calls
exten => _99909*.,1,Answer
exten => _99909*.,2,AGI(agi-VDAD_ALL_inbound.agi)
exten => _99909*.,3,Hangup
; barge monitoring extension
exten => 8159,1,ZapBarge
exten => 8159,2,Hangup
; ZapBarge direct channel extensions
exten => _86120XX,1,ZapBarge(${EXTEN:5})
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 => _X28600XXX,1,MeetMeAdmin(${EXTEN:2},m,${EXTEN:0:1})
exten => _X28600XXX,2,Hangup
exten => _X18600XXX,1,MeetMeAdmin(${EXTEN:2},M,${EXTEN:0:1})
exten => _X18600XXX,2,Hangup
exten => _55558600XXX,1,MeetMeAdmin(${EXTEN:4},K)
exten => _55558600XXX,2,Hangup
exten => 8300,1,Hangup
; astGUIclient conferences
exten => _86000[0-4]X,1,Meetme,${EXTEN}|q
; VICIDIAL conferences
exten => _86000[5-9]X,1,Meetme,${EXTEN}|F
exten => _8600[1-2]XX,1,Meetme,${EXTEN}|F
; quiet entry and leaving conferences for VICIDIAL (inbound announce and SendDTMF)
exten => _78600XXX,1,Meetme,${EXTEN:1}|Fq
; quiet monitor-only extensions for meetme rooms (for room managers)
exten => _68600XXX,1,Meetme,${EXTEN:1}|Fmq
; quiet monitor-only entry and leaving conferences for VICIDIAL (recording)
exten => _58600XXX,1,Meetme,${EXTEN:1}|Fmq
; voicelab exten
exten => _86009XX,1,Meetme,${EXTEN}|Fmq
; voicelab exten moderator
exten => _986009XX,1,Meetme,${EXTEN:1}
; 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
exten => 8304,1,Answer
exten => 8304,2,Playback(ding)
exten => 8304,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 playing a message to an answering machine forwarded from AMD in VICIDIAL
exten => 8320,1,AGI(VD_amd.agi,${EXTEN}-----YES)
exten => 8320,2,Hangup
exten => _8320*.,1,AGI(VD_amd.agi,${EXTEN}-----YES)
exten => _8320*.,2,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
; 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
; multi-remote-monitor entry extensions
exten => 8162,1,Dial(${TRUNKblind}/34567890123456789,55,to)
exten => 34567890123456789,1,Answer
exten => 34567890123456789,2,Goto(monitor,s,1)
;#### VDAD STANDARD TRANSFER ENTRIES ####
; Below are the parameters needed for the agi-VDAD_ALL_outbound.agi script to be run properly
; 1. the method of call handling for the script:
; - NORMAL - <default> Standard outbound routing to agent
; - TEST - For performance testing only
; - BROADCAST - For no-agent broadcast dialing
; - SURVEY - For survery question then on to agent
; - REMINDER - Reminder campaign
; - REMINDX - Reminder with transfer to agent
; 2. the method of searching for an available agent:
; - LB - <default> Load Balance total system
; - LO - Load Balance Overflow only (priority to home server)
; - SO - Home server only
; 3. the sound file to play when doing a SURVEY, REMINDER, REMINDX campaign
; 4. the acceptible dtmf digits for a SURVEY
; 5. the out-opt digit for a SURVEY (must be in the digit map)
; 6. the sound file to play for a SURVEY when transfering to an agent
; 7. the sound file to play for a SURVEY when DNCing the call
; 8. OPTIN or OPTOUT: if OPTIN call is only sent to agent with button press
; if OPTOUT call is sent to agent if no button press at all
; 9. the status that is use for a SURVEY when someone opts out
; if the status is DNC it will also add them to the internal dnc table
; 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
; 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,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,5,Hangup
; VICIDIAL SURVEY transfer script AMD with Load Balanced:
exten => 8373,1,Playback(sip-silence)
exten => 8373,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8373,3,AMD(2000|2000|1000|5000|120|50|4|256)
exten => 8373,4,AGI(VD_amd.agi,${EXTEN})
exten => 8373,5,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
exten => 8373,6,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
exten => 8373,7,Hangup
; VICIDIAL SURVEY transfer script with Cepstral names:
exten => 8374,1,Playback(sip-silence)
exten => 8374,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8374,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB)
exten => 8374,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB)
exten => 8374,5,Hangup
; VICIDIAL SURVEY transfer script AMD with Cepstral variables:
exten => 8375,1,Playback(sip-silence)
exten => 8375,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8375,3,AMD(2000|2000|1000|5000|120|50|4|256)
exten => 8375,4,AGI(VD_amd.agi,${EXTEN})
exten => 8375,5,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB)
exten => 8375,6,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB)
exten => 8375,7,Hangup
; PERFORMANCE TESTING
exten => _999XXXXXX1,1,Answer
exten => _999XXXXXX1,2,Wait(2)
exten => _999XXXXXX1,3,Playback(vicidial-welcome)
exten => _999XXXXXX1,4,Hangup
exten => _999XX11112,1,Wait(2)
exten => _999XX11112,2,Answer
exten => _999XX11112,3,Playback(ss-noservice)
exten => _999XX11112,4,Playback(vm-goodbye)
exten => _999XX11112,5,Hangup
exten => _999XX18112,1,Wait(2)
exten => _999XX18112,2,Answer
exten => _999XX18112,3,Playback(vtiger-fax)
exten => _999XX18112,4,Playback(vtiger-fax)
exten => _999XX18112,5,Hangup
exten => _999XX19112,1,Wait(2)
exten => _999XX19112,2,Answer
exten => _999XX19112,3,Playback(vtiger-email)
exten => _999XX19112,4,Playback(vtiger-email)
exten => _999XX19112,5,Hangup
exten => _999XXXX112,1,Wait(5)
exten => _999XXXX112,2,Answer
exten => _999XXXX112,3,Playback(demo-instruct)
exten => _999XXXX112,4,Playback(demo-instruct)
exten => _999XXXX112,5,Hangup
exten => _999XXXXXX2,1,Wait(8)
exten => _999XXXXXX2,2,Answer
exten => _999XXXXXX2,3,Playback(demo-instruct)
exten => _999XXXXXX2,4,Hangup
exten => _999XXXXXX3,1,Set(PRI_CAUSE=1)
exten => _999XXXXXX3,2,Hangup
exten => _999XXXXXX4,1,Set(PRI_CAUSE=27)
exten => _999XXXXXX4,2,Hangup
exten => _999XXXXXX5,1,Wait(60)
exten => _999XXXXXX5,2,Hangup
exten => _999XXXXXX6,1,Wait(10)
exten => _999XXXXXX6,2,Answer
exten => _999XXXXXX6,3,Playback(demo-instruct)
exten => _999XXXXXX6,4,Hangup
exten => _999XXXXXX7,1,Wait(12)
exten => _999XXXXXX7,2,Answer
exten => _999XXXXXX7,3,Playback(demo-enterkeywords)
exten => _999XXXXXX7,4,Hangup
exten => _999XXXXXX8,1,Set(PRI_CAUSE=17)
exten => _999XXXXXX8,2,Hangup
exten => _999XXXXXX9,1,Wait(6)
exten => _999XXXXXX9,2,Answer
exten => _999XXXXXX9,3,Playback(demo-abouttotry)
exten => _999XXXXXX9,4,Hangup
exten => _999XXXXXX0,1,Wait(5)
exten => _999XXXXXX0,2,Answer
exten => _999XXXXXX0,3,Playback(vm-goodbye)
exten => _999XXXXXX0,4,Hangup
exten => 99999999999,1,Answer
exten => 99999999999,2,Playback(conf)
exten => 99999999999,3,Playback(conf)
exten => 99999999999,4,Playback(conf)
exten => 99999999999,5,Playback(conf)
exten => 99999999999,6,Playback(conf)
exten => 99999999999,7,Playback(conf)
exten => 99999999999,8,Playback(conf)
exten => 99999999999,9,Playback(conf)
exten => 99999999999,10,Playback(conf)
exten => 99999999999,11,Playback(conf)
exten => 99999999999,12,Playback(conf)
exten => 99999999999,13,Playback(conf)
exten => 99999999999,14,Hangup
[monitor]
exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
exten => s,1,Set(TIMEOUT(digit)=10)
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,Set(MEETME_EXIT_CONTEXT=monitor_exit)
exten => s,n,Background(vm-extension) ; need audio prompt.
exten => s,n,WaitExten(10)
exten => i,1,Goto(monitor_exit,s,1)
exten => #,1,Goto(monitor_exit,s,1)
exten => t,1,Goto(monitor_exit,s,1)
exten => _8[0-2]XX,1,Meetme(8600${EXTEN:1},mqX) ; Listen
exten => _99[0-2]XX,1,Meetme(8600${EXTEN:2},X) ; Barge
[monitor_exit]
exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
exten => _X,1,Goto(monitor,s,1)
exten => i,1,Goto(monitor,s,1)
exten => #,1,Goto(monitor,s,1)
exten => t,1,Goto(monitor,s,1)
meine sip.conf ist folgende:
[general]
context=default ; Default context for incoming calls
;allowguest=no ; Allow or reject guest calls (default is yes)
allowoverlap=no ; Disable overlap dialing support. (Default is yes)
;allowtransfer=no ; Disable all transfers (unless enabled in peers or users)
;realm=mydomain.tld ; Realm for digest authentication
bindport=5060 ; UDP Port to bind to (SIP standard port is 5060)
bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all)
srvlookup=yes ; Enable DNS SRV lookups on outbound calls
;domain=mydomain.tld ; Set default domain for this host
;pedantic=yes ; Enable checking of tags in headers,
;tos_sip=cs3 ; Sets TOS for SIP packets.
;tos_audio=ef ; Sets TOS for RTP audio packets.
;tos_video=af41 ; Sets TOS for RTP video packets.
;maxexpiry=3600 ; Maximum allowed time of incoming registrations
;minexpiry=60 ; Minimum length of registrations/subscriptions (default 60)
;defaultexpiry=120 ; Default length of incoming/outgoing registration
;t1min=100 ; Minimum roundtrip time for messages to monitored hosts
;notifymimetype=text/plain ; Allow overriding of mime type in MWI NOTIFY
;checkmwi=10 ; Default time between mailbox checks for peers
;buggymwi=no ; Cisco SIP firmware doesn't support the MWI RFC
;vmexten=voicemail ; dialplan extension to reach mailbox sets the
disallow=all ; First disallow all codecs
allow=ulaw ; Allow codecs in order of preference
allow=gsm
mohinterpret=default
mohsuggest=default
language=en ; Default language setting for all users/peers
relaxdtmf=yes ; Relax dtmf handling
trustrpid = no ; If Remote-Party-ID should be trusted
sendrpid = yes ; If Remote-Party-ID should be sent
progressinband=no ; If we should generate in-band ringing always
;useragent=Asterisk PBX ; Allows you to change the user agent string
;promiscredir = no ; If yes, allows 302 or REDIR to non-local SIP address
;usereqphone = no ; If yes, ";user=phone" is added to uri that contains
dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833
;compactheaders = yes ; send compact sip headers.
videosupport=no ; Turn on support for SIP video. You need to turn this on
;maxcallbitrate=384 ; Maximum bitrate for video calls (default 384 kb/s)
callevents=yes ; generate manager events when sip ua
;alwaysauthreject = yes ; When an incoming INVITE or REGISTER is to be rejected,
;g726nonstandard = yes ; If the peer negotiates G726-32 audio, use AAL2 packing
;matchexterniplocally = yes ; Only substitute the externip or externhost setting if it matches
;regcontext=sipregistrations
rtptimeout=60 ; Terminate call if 60 seconds of no RTP or RTCP activity
;rtpholdtimeout=300 ; Terminate call if 300 seconds of no RTP or RTCP activity
;rtpkeepalive=<secs> ; Send keepalives in the RTP stream to keep NAT open
;sipdebug = yes ; Turn on SIP debugging by default, from
;recordhistory=yes ; Record SIP history by default
;dumphistory=yes ; Dump SIP history at end of SIP dialogue
;allowsubscribe=no ; Disable support for subscriptions. (Default is yes)
;subscribecontext = default ; Set a specific context for SUBSCRIBE requests
notifyringing = yes ; Notify subscriptions on RINGING state (default: no)
notifyhold = yes ; Notify subscriptions on HOLD state (default: no)
limitonpeers = yes ; Apply call limits on peers only. This will improve
;t38pt_udptl = yes ; Default false
;register => 1234:[email protected]
;registertimeout=20 ; retry registration calls every 20 seconds (default)
;registerattempts=10 ; Number of registration attempts before we give up
;externip = 192.168.1.1 ; Address that we're going to put in outbound SIP
;externhost=test.test.com ; Alternatively you can specify a domain
;externrefresh=10 ; How often to refresh externhost if
localnet=192.168.0.0/255.255.0.0; All RFC 1918 addresses are local networks
localnet=10.0.0.0/255.0.0.0 ; Also RFC1918
localnet=172.16.0.0/12 ; Another RFC1918 with CIDR notation
localnet=169.254.0.0/255.255.0.0 ;Zero conf local network
nat=yes ; Global NAT settings (Affects all peers and users)
canreinvite=no ; Asterisk by default tries to redirect the
;directrtpsetup=yes ; Enable the new experimental direct RTP setup. This sets up
;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list
;rtsavesysname=yes ; Save systemname in realtime database at registration
;rtupdate=yes ; Send registry updates to database using realtime? (yes|no)
;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule
;ignoreregexpire=yes ; Enabling this setting has two functions:
;domain=mydomain.tld,mydomain-incoming
;domain=1.2.3.4 ; Add IP address as local domain
;allowexternaldomains=no ; Disable INVITE and REFER to non-local domains
;autodomain=yes ; Turn this on to have Asterisk add local host
;fromdomain=mydomain.tld ; When making outbound SIP INVITEs to
jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a
jbforce = no ; Forces the use of a jitterbuffer on the receive side of a SIP
jbmaxsize = 100 ; Max length of the jitterbuffer in milliseconds.
jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP
jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
qualify=yes ; By default, qualify all peers at 2000ms
limitonpeer = yes ; enable call limit on a per peer basis, different from limitonpeers
#include sip-vicidial.conf
; register SIP account on remote machine if using SIP trunks
; register => testSIPtrunk:[email protected]:5060
;
; setup account for SIP trunking:
; [SIPtrunk]
; disallow=all
; allow=ulaw
; allow=alaw
; type=friend
; username=testSIPtrunk
; secret=test
; host=10.10.10.16
; dtmfmode=inband
; qualify=1000