first commit
This commit is contained in:
commit
e227262c43
8
asterisk/adsi.conf
Normal file
8
asterisk/adsi.conf
Normal file
@ -0,0 +1,8 @@
|
||||
;
|
||||
; Sample ADSI Configuration file
|
||||
;
|
||||
[intro]
|
||||
alignment = center
|
||||
greeting => Welcome to the
|
||||
greeting => Asterisk
|
||||
greeting => Open Source PBX
|
39
asterisk/adtranvofr.conf
Normal file
39
asterisk/adtranvofr.conf
Normal file
@ -0,0 +1,39 @@
|
||||
;
|
||||
; Voice over Frame Relay (Adtran style)
|
||||
;
|
||||
; Configuration file
|
||||
|
||||
[interfaces]
|
||||
;
|
||||
; Default language
|
||||
;
|
||||
;language=en
|
||||
;
|
||||
; Lines for which we are the user termination. They accept incoming
|
||||
; and outgoing calls. We use the default context on the first 8 lines
|
||||
; used by internal phones.
|
||||
;
|
||||
context=default
|
||||
;user => voice00
|
||||
;user => voice01
|
||||
;user => voice02
|
||||
;user => voice03
|
||||
;user => voice04
|
||||
;user => voice05
|
||||
;user => voice06
|
||||
;user => voice07
|
||||
; Calls on 16 and 17 come from the outside world, so they get
|
||||
; a little bit special treatment
|
||||
context=remote
|
||||
;user => voice16
|
||||
;user => voice17
|
||||
;
|
||||
; Next we have lines which we only accept calls on, and typically
|
||||
; do not send outgoing calls on (i.e. these are where we are the
|
||||
; network termination)
|
||||
;
|
||||
;network => voice08
|
||||
;network => voice09
|
||||
;network => voice10
|
||||
;network => voice11
|
||||
;network => voice12
|
113
asterisk/agents.conf
Normal file
113
asterisk/agents.conf
Normal file
@ -0,0 +1,113 @@
|
||||
;
|
||||
; Agent configuration
|
||||
;
|
||||
|
||||
[general]
|
||||
;
|
||||
; Define whether callbacklogins should be stored in astdb for
|
||||
; persistence. Persistent logins will be reloaded after
|
||||
; Asterisk restarts.
|
||||
;
|
||||
persistentagents=yes
|
||||
|
||||
; Enable or disable a single extension from logging in as multiple agents.
|
||||
; The default value is "yes".
|
||||
;multiplelogin=yes
|
||||
|
||||
[agents]
|
||||
;
|
||||
; Define maxlogintries to allow agent to try max logins before
|
||||
; failed.
|
||||
; default to 3
|
||||
;
|
||||
;maxlogintries=5
|
||||
;
|
||||
;
|
||||
; Define autologoff times if appropriate. This is how long
|
||||
; the phone has to ring with no answer before the agent is
|
||||
; automatically logged off (in seconds)
|
||||
;
|
||||
;autologoff=15
|
||||
;
|
||||
; Define autologoffunavail to have agents automatically logged
|
||||
; out when the extension that they are at returns a CHANUNAVAIL
|
||||
; status when a call is attempted to be sent there.
|
||||
; Default is "no".
|
||||
;
|
||||
;autologoffunavail=yes
|
||||
;
|
||||
; Define ackcall to require a DTMF acknowledgement when
|
||||
; an agent logs in using agentcallbacklogin. Default is "no".
|
||||
; Can also be set to "always", which will also require AgentLogin
|
||||
; agents to acknowledge calls. Use the acceptdtmf option to
|
||||
; configure what DTMF key press should be used to acknowledge the
|
||||
; call. The default is '#'.
|
||||
;
|
||||
;ackcall=no
|
||||
;acceptdtmf=#
|
||||
;
|
||||
; Define endcall to allow an agent to hangup a call with a
|
||||
; DTMF keypress. Default is "yes". Use the enddtmf option to
|
||||
; configure which DTMF key will end a call. The default is
|
||||
; '*'.
|
||||
;
|
||||
;endcall=yes
|
||||
;enddtmf=*
|
||||
;
|
||||
; Define wrapuptime. This is the minimum amount of time when
|
||||
; after disconnecting before the caller can receive a new call
|
||||
; note this is in milliseconds.
|
||||
;
|
||||
;wrapuptime=5000
|
||||
;
|
||||
; Define the default musiconhold for agents
|
||||
; musiconhold => music_class
|
||||
;
|
||||
;musiconhold => default
|
||||
;
|
||||
; Define the default good bye sound file for agents
|
||||
; default to vm-goodbye
|
||||
;
|
||||
;goodbye => goodbye_file
|
||||
;
|
||||
; Define updatecdr. This is whether or not to change the source
|
||||
; channel in the CDR record for this call to agent/agent_id so
|
||||
; that we know which agent generates the call
|
||||
;
|
||||
;updatecdr=no
|
||||
;
|
||||
; Group memberships for agents (may change in mid-file)
|
||||
;
|
||||
;group=3
|
||||
;group=1,2
|
||||
;group=
|
||||
;
|
||||
; --------------------------------------------------
|
||||
; This section is devoted to recording agent's calls
|
||||
; The keywords are global to the chan_agent channel driver
|
||||
;
|
||||
; Enable recording calls addressed to agents. It's turned off by default.
|
||||
;recordagentcalls=yes
|
||||
;
|
||||
; The format to be used to record the calls: wav, gsm, wav49.
|
||||
; By default its "wav".
|
||||
;recordformat=gsm
|
||||
;
|
||||
; The text to be added to the name of the recording. Allows forming a url link.
|
||||
;urlprefix=http://localhost/calls/
|
||||
;
|
||||
; The optional directory to save the conversations in. The default is
|
||||
; /var/spool/asterisk/monitor
|
||||
;savecallsin=/var/calls
|
||||
;
|
||||
; An optional custom beep sound file to play to always-connected agents.
|
||||
;custom_beep=beep
|
||||
;
|
||||
; --------------------------------------------------
|
||||
;
|
||||
; This section contains the agent definitions, in the form:
|
||||
;
|
||||
; agent => agentid,agentpassword,name
|
||||
;
|
||||
;agent => 1001,4321,Mark Spencer
|
||||
;agent => 1002,4321,Will Meadows
|
85
asterisk/ais.conf
Normal file
85
asterisk/ais.conf
Normal file
@ -0,0 +1,85 @@
|
||||
;
|
||||
; Sample configuration file for res_ais
|
||||
; * SAForum AIS (Application Interface Specification)
|
||||
;
|
||||
; More information on the AIS specification is available from the SAForum.
|
||||
; * http://www.saforum.org/
|
||||
;
|
||||
; A nice open source implementation of AIS is available called openais. Visit
|
||||
; the openais website for downloads and more information.
|
||||
; * http://www.openais.org/
|
||||
;
|
||||
|
||||
;
|
||||
; *** NOTE ***
|
||||
; This document includes some information about using the res_ais module for
|
||||
; distributed events. However, it is important to note that res_ais is still
|
||||
; considered experimental, as the module exposes the binary format of events
|
||||
; over the network between servers. This format is still subject to change
|
||||
; between 1.6.X releases.
|
||||
; ************
|
||||
|
||||
;
|
||||
; [general]
|
||||
; The general section is reserved but not currently used.
|
||||
;
|
||||
|
||||
;
|
||||
; Event channels are named distributed groups that share events. Each node
|
||||
; that is the member of the event channel should have an entry in their
|
||||
; ais.conf file that indicates that they are a member of the event channel.
|
||||
; Each node's entry for the event channel also indicates which event types
|
||||
; will be published to other nodes, as well as which event types this node
|
||||
; will subscribe to from other nodes in the event channel.
|
||||
;
|
||||
; The name of the event channel is the name in brackets that begin a section
|
||||
; in the configuration file.
|
||||
; [mwi]
|
||||
;
|
||||
; To define an event channel, this entry must be in the configuration section:
|
||||
; type=event_channel
|
||||
;
|
||||
; Indicate that a node is capable of publishing events of a certain type by
|
||||
; using the publish_event directive.
|
||||
; publish_event=mwi
|
||||
;
|
||||
; Indicate that a node is interested in receiving events of a certain type
|
||||
; from other nodes in the event channel by using the subscribe_event directive.
|
||||
; subscribe_event=mwi
|
||||
;
|
||||
; Supported event types include: mwi, device_state
|
||||
;
|
||||
|
||||
;
|
||||
; This example is for a node that can provide MWI state information, but should
|
||||
; also be listening for MWI state changes from other nodes. Examples of when
|
||||
; this would be used are when this is both a voicemail server and also has
|
||||
; phones directly registered to it.
|
||||
;
|
||||
; [mwi]
|
||||
; type=event_channel
|
||||
; publish_event=mwi
|
||||
; subscribe_event=mwi
|
||||
;
|
||||
|
||||
;
|
||||
; This example would be used for a node that can provide MWI state to other
|
||||
; nodes, but does not need to know about MWI state changes that happen on
|
||||
; any other node. This would most likely be a voicemail server where no
|
||||
; phones are directly registered.
|
||||
;
|
||||
; [mwi]
|
||||
; type=event_channel
|
||||
; publish_event=mwi
|
||||
;
|
||||
|
||||
;
|
||||
; This example would be used for a node that has phones directly registered
|
||||
; to it, but does not have direct access to voicemail. So, this node wants
|
||||
; to be informed about MWI state changes on other voicemail server nodes, but
|
||||
; is not capable of publishing any state changes.
|
||||
;
|
||||
; [mwi]
|
||||
; type=event_channel
|
||||
; subscribe_event=mwi
|
||||
;
|
80
asterisk/alarmreceiver.conf
Normal file
80
asterisk/alarmreceiver.conf
Normal file
@ -0,0 +1,80 @@
|
||||
;
|
||||
; alarmreceiver.conf
|
||||
;
|
||||
; Sample configuration file for the Asterisk alarm receiver application.
|
||||
;
|
||||
|
||||
|
||||
[general]
|
||||
|
||||
;
|
||||
; Specify a timestamp format for the metadata section of the event files
|
||||
; Default is %a %b %d, %Y @ %H:%M:%S %Z
|
||||
|
||||
timestampformat = %a %b %d, %Y @ %H:%M:%S %Z
|
||||
|
||||
;
|
||||
; Specify a command to execute when the caller hangs up
|
||||
;
|
||||
; Default is none
|
||||
;
|
||||
|
||||
;eventcmd = yourprogram -yourargs ...
|
||||
|
||||
;
|
||||
; Specify a spool directory for the event files. This setting is required
|
||||
; if you want the app to be useful. Event files written to the spool
|
||||
; directory will be of the template event-XXXXXX, where XXXXXX is a random
|
||||
; and unique alphanumeric string.
|
||||
;
|
||||
; Default is none, and the events will be dropped on the floor.
|
||||
;
|
||||
|
||||
eventspooldir = /tmp
|
||||
|
||||
;
|
||||
; The alarmreceiver app can either log the events one-at-a-time to individual
|
||||
; files in the spool directory, or it can store them until the caller
|
||||
; disconnects and write them all to one file.
|
||||
;
|
||||
; The default setting for logindividualevents is no.
|
||||
;
|
||||
|
||||
logindividualevents = no
|
||||
|
||||
;
|
||||
; The timeout for receiving the first DTMF digit is adjustable from 1000 msec.
|
||||
; to 10000 msec. The default is 2000 msec. Note: if you wish to test the
|
||||
; receiver by entering digits manually, set this to a reasonable time out
|
||||
; like 10000 milliseconds.
|
||||
|
||||
fdtimeout = 2000
|
||||
|
||||
;
|
||||
; The timeout for receiving subsequent DTMF digits is adjustable from
|
||||
; 110 msec. to 4000 msec. The default is 200 msec. Note: if you wish to test
|
||||
; the receiver by entering digits manually, set this to a reasonable time out
|
||||
; like 4000 milliseconds.
|
||||
;
|
||||
|
||||
sdtimeout = 200
|
||||
|
||||
;
|
||||
; The loudness of the ACK and Kissoff tones is adjustable from 100 to 8192.
|
||||
; The default is 8192. This shouldn't need to be messed with, but is included
|
||||
; just in case there are problems with signal levels.
|
||||
;
|
||||
|
||||
loudness = 8192
|
||||
|
||||
;
|
||||
; The db-family setting allows the user to capture statistics on the number of
|
||||
; calls, and the errors the alarm receiver sees. The default is for no
|
||||
; db-family name to be defined and the database logging to be turned off.
|
||||
;
|
||||
|
||||
;db-family = yourfamily:
|
||||
|
||||
;
|
||||
; End of alarmreceiver.conf
|
||||
;
|
69
asterisk/alsa.conf
Normal file
69
asterisk/alsa.conf
Normal file
@ -0,0 +1,69 @@
|
||||
;
|
||||
; Open Sound System Console Driver Configuration File
|
||||
;
|
||||
[general]
|
||||
;
|
||||
; Automatically answer incoming calls on the console? Choose yes if
|
||||
; for example you want to use this as an intercom.
|
||||
;
|
||||
autoanswer=yes
|
||||
;
|
||||
; Default context (is overridden with @context syntax)
|
||||
;
|
||||
context=local
|
||||
;
|
||||
; Default extension to call
|
||||
;
|
||||
extension=s
|
||||
;
|
||||
; Default language
|
||||
;
|
||||
;language=en
|
||||
;
|
||||
; Default Music on Hold class to use when this channel is placed on hold in
|
||||
; the case that the music class is not set on the channel with
|
||||
; Set(CHANNEL(musicclass)=whatever) in the dialplan and the peer channel
|
||||
; putting this one on hold did not suggest a class to use.
|
||||
;
|
||||
;mohinterpret=default
|
||||
;
|
||||
; Silence suppression can be enabled when sound is over a certain threshold.
|
||||
; The value for the threshold should probably be between 500 and 2000 or so,
|
||||
; but your mileage may vary. Use the echo test to evaluate the best setting.
|
||||
;silencesuppression = yes
|
||||
;silencethreshold = 1000
|
||||
;
|
||||
; To set which ALSA device to use, change this parameter
|
||||
;input_device=hw:0,0
|
||||
;output_device=hw:0,0
|
||||
|
||||
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
|
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an
|
||||
; ALSA channel. Defaults to "no". An enabled jitterbuffer will
|
||||
; be used only if the sending side can create and the receiving
|
||||
; side can not accept jitter. The ALSA channel can't accept jitter,
|
||||
; thus an enabled jitterbuffer on the receive ALSA side will always
|
||||
; be used if the sending side can create jitter.
|
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||
; resynchronized. Useful to improve the quality of the voice, with
|
||||
; big jumps in/broken timestamps, usually sent from exotic devices
|
||||
; and programs. Defaults to 1000.
|
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP
|
||||
; channel. Two implementations are currently available - "fixed"
|
||||
; (with size always equals to jbmax-size) and "adaptive" (with
|
||||
; variable size, actually the new jb of IAX2). Defaults to fixed.
|
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set.
|
||||
; The option represents the number of milliseconds by which the new
|
||||
; jitter buffer will pad its size. the default is 40, so without
|
||||
; modification, the new jitter buffer will set its size to the jitter
|
||||
; value plus 40 milliseconds. increasing this value may help if your
|
||||
; network normally has low jitter, but occasionally has spikes.
|
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
|
||||
;-----------------------------------------------------------------------------------
|
||||
|
18
asterisk/amd.conf
Normal file
18
asterisk/amd.conf
Normal file
@ -0,0 +1,18 @@
|
||||
;
|
||||
; Answering Machine Detection Configuration
|
||||
;
|
||||
|
||||
[general]
|
||||
initial_silence = 2500 ; Maximum silence duration before the greeting.
|
||||
; If exceeded then MACHINE.
|
||||
greeting = 1500 ; Maximum length of a greeting. If exceeded then MACHINE.
|
||||
after_greeting_silence = 800 ; Silence after detecting a greeting.
|
||||
; If exceeded then HUMAN
|
||||
total_analysis_time = 5000 ; Maximum time allowed for the algorithm to decide
|
||||
; on a HUMAN or MACHINE
|
||||
min_word_length = 100 ; Minimum duration of Voice to considered as a word
|
||||
between_words_silence = 50 ; Minimum duration of silence after a word to consider
|
||||
; the audio what follows as a new word
|
||||
maximum_number_of_words = 3 ; Maximum number of words in the greeting.
|
||||
; If exceeded then MACHINE
|
||||
silence_threshold = 256
|
159
asterisk/asterisk.adsi
Normal file
159
asterisk/asterisk.adsi
Normal file
@ -0,0 +1,159 @@
|
||||
;
|
||||
; Asterisk default ADSI script
|
||||
;
|
||||
;
|
||||
; Begin with the preamble requirements
|
||||
;
|
||||
DESCRIPTION "Asterisk PBX" ; Name of vendor
|
||||
VERSION 0x00 ; Version of stuff
|
||||
;SECURITY "_AST" ; Security code
|
||||
SECURITY 0X9BDBF7AC ; Security code
|
||||
FDN 0x0000000F ; Descriptor number
|
||||
|
||||
;
|
||||
; Flags
|
||||
;
|
||||
FLAG "nocallwaiting"
|
||||
|
||||
;
|
||||
; Predefined strings
|
||||
;
|
||||
DISPLAY "titles" IS "** Asterisk PBX **"
|
||||
DISPLAY "talkingto" IS "Call active." JUSTIFY LEFT
|
||||
DISPLAY "callname" IS "$Call1p" JUSTIFY LEFT
|
||||
DISPLAY "callnum" IS "$Call1s" JUSTIFY LEFT
|
||||
DISPLAY "incoming" IS "Incoming call!" JUSTIFY LEFT
|
||||
DISPLAY "ringing" IS "Calling... " JUSTIFY LEFT
|
||||
DISPLAY "callended" IS "Call ended." JUSTIFY LEFT
|
||||
DISPLAY "missedcall" IS "Missed call." JUSTIFY LEFT
|
||||
DISPLAY "busy" IS "Busy." JUSTIFY LEFT
|
||||
DISPLAY "reorder" IS "Reorder." JUSTIFY LEFT
|
||||
DISPLAY "cwdisabled" IS "Callwait disabled"
|
||||
DISPLAY "empty" IS "asdf"
|
||||
|
||||
;
|
||||
; Begin soft key definitions
|
||||
;
|
||||
KEY "callfwd" IS "CallFwd" OR "Call Forward"
|
||||
OFFHOOK
|
||||
VOICEMODE
|
||||
WAITDIALTONE
|
||||
SENDDTMF "*60"
|
||||
GOTO "offHook"
|
||||
ENDKEY
|
||||
|
||||
KEY "vmail_OH" IS "VMail" OR "Voicemail"
|
||||
OFFHOOK
|
||||
VOICEMODE
|
||||
WAITDIALTONE
|
||||
SENDDTMF "8500"
|
||||
ENDKEY
|
||||
|
||||
KEY "vmail" IS "VMail" OR "Voicemail"
|
||||
SENDDTMF "8500"
|
||||
ENDKEY
|
||||
|
||||
KEY "backspace" IS "BackSpc" OR "Backspace"
|
||||
BACKSPACE
|
||||
ENDKEY
|
||||
|
||||
KEY "cwdisable" IS "CWDsble" OR "Disable Call Wait"
|
||||
SENDDTMF "*70"
|
||||
SETFLAG "nocallwaiting"
|
||||
SHOWDISPLAY "cwdisabled" AT 4
|
||||
TIMERCLEAR
|
||||
TIMERSTART 1
|
||||
ENDKEY
|
||||
|
||||
KEY "cidblock" IS "CIDBlk" OR "Block Callerid"
|
||||
SENDDTMF "*67"
|
||||
SETFLAG "nocallwaiting"
|
||||
ENDKEY
|
||||
|
||||
;
|
||||
; Begin main subroutine
|
||||
;
|
||||
|
||||
SUB "main" IS
|
||||
IFEVENT NEARANSWER THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "titles" AT 1 NOUPDATE
|
||||
SHOWDISPLAY "talkingto" AT 2 NOUPDATE
|
||||
SHOWDISPLAY "callname" AT 3
|
||||
SHOWDISPLAY "callnum" AT 4
|
||||
GOTO "stableCall"
|
||||
ENDIF
|
||||
IFEVENT OFFHOOK THEN
|
||||
CLEAR
|
||||
CLEARFLAG "nocallwaiting"
|
||||
CLEARDISPLAY
|
||||
SHOWDISPLAY "titles" AT 1
|
||||
SHOWKEYS "vmail"
|
||||
SHOWKEYS "cidblock"
|
||||
SHOWKEYS "cwdisable" UNLESS "nocallwaiting"
|
||||
GOTO "offHook"
|
||||
ENDIF
|
||||
IFEVENT IDLE THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "titles" AT 1
|
||||
SHOWKEYS "vmail_OH"
|
||||
ENDIF
|
||||
IFEVENT CALLERID THEN
|
||||
CLEAR
|
||||
; SHOWDISPLAY "titles" AT 1 NOUPDATE
|
||||
; SHOWDISPLAY "incoming" AT 2 NOUPDATE
|
||||
SHOWDISPLAY "callname" AT 3 NOUPDATE
|
||||
SHOWDISPLAY "callnum" AT 4
|
||||
ENDIF
|
||||
IFEVENT RING THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "titles" AT 1 NOUPDATE
|
||||
SHOWDISPLAY "incoming" AT 2
|
||||
ENDIF
|
||||
IFEVENT ENDOFRING THEN
|
||||
SHOWDISPLAY "missedcall" AT 2
|
||||
CLEAR
|
||||
SHOWDISPLAY "titles" AT 1
|
||||
SHOWKEYS "vmail_OH"
|
||||
ENDIF
|
||||
IFEVENT TIMER THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "empty" AT 4
|
||||
ENDIF
|
||||
ENDSUB
|
||||
|
||||
SUB "offHook" IS
|
||||
IFEVENT FARRING THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "titles" AT 1 NOUPDATE
|
||||
SHOWDISPLAY "ringing" AT 2 NOUPDATE
|
||||
SHOWDISPLAY "callname" at 3 NOUPDATE
|
||||
SHOWDISPLAY "callnum" at 4
|
||||
ENDIF
|
||||
IFEVENT FARANSWER THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "talkingto" AT 2
|
||||
GOTO "stableCall"
|
||||
ENDIF
|
||||
IFEVENT BUSY THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "titles" AT 1 NOUPDATE
|
||||
SHOWDISPLAY "busy" AT 2 NOUPDATE
|
||||
SHOWDISPLAY "callname" at 3 NOUPDATE
|
||||
SHOWDISPLAY "callnum" at 4
|
||||
ENDIF
|
||||
IFEVENT REORDER THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "titles" AT 1 NOUPDATE
|
||||
SHOWDISPLAY "reorder" AT 2 NOUPDATE
|
||||
SHOWDISPLAY "callname" at 3 NOUPDATE
|
||||
SHOWDISPLAY "callnum" at 4
|
||||
ENDIF
|
||||
ENDSUB
|
||||
|
||||
SUB "stableCall" IS
|
||||
IFEVENT REORDER THEN
|
||||
SHOWDISPLAY "callended" AT 2
|
||||
ENDIF
|
||||
ENDSUB
|
||||
|
61
asterisk/asterisk.conf
Normal file
61
asterisk/asterisk.conf
Normal file
@ -0,0 +1,61 @@
|
||||
[directories](!) ; remove the (!) to enable this
|
||||
astetcdir => /etc/asterisk
|
||||
astmoddir => /usr/lib64/asterisk/modules
|
||||
astvarlibdir => /var/lib/asterisk
|
||||
astdbdir => /var/lib/asterisk
|
||||
astkeydir => /var/lib/asterisk
|
||||
astdatadir => /var/lib/asterisk
|
||||
astagidir => /var/lib/asterisk/agi-bin
|
||||
astspooldir => /var/spool/asterisk
|
||||
astrundir => /var/run/asterisk
|
||||
astlogdir => /var/log/asterisk
|
||||
|
||||
[options]
|
||||
;verbose = 3
|
||||
;debug = 3
|
||||
;alwaysfork = yes ; same as -F at startup
|
||||
;nofork = yes ; same as -f at startup
|
||||
;quiet = yes ; same as -q at startup
|
||||
;timestamp = yes ; same as -T at startup
|
||||
;execincludes = yes ; support #exec in config files
|
||||
;console = yes ; Run as console (same as -c at startup)
|
||||
;highpriority = yes ; Run realtime priority (same as -p at startup)
|
||||
;initcrypto = yes ; Initialize crypto keys (same as -i at startup)
|
||||
;nocolor = yes ; Disable console colors
|
||||
;dontwarn = yes ; Disable some warnings
|
||||
;dumpcore = yes ; Dump core on crash (same as -g at startup)
|
||||
;languageprefix = yes ; Use the new sound prefix path syntax
|
||||
;internal_timing = yes
|
||||
;systemname = my_system_name ; prefix uniqueid with a system name for global uniqueness issues
|
||||
;autosystemname = yes ; automatically set systemname to hostname - uses 'localhost' on failure, or systemname if set
|
||||
;maxcalls = 10 ; Maximum amount of calls allowed
|
||||
;maxload = 0.9 ; Asterisk stops accepting new calls if the load average exceed this limit
|
||||
;maxfiles = 1000 ; Maximum amount of openfiles
|
||||
;minmemfree = 1 ; in MBs, Asterisk stops accepting new calls if the amount of free memory falls below this watermark
|
||||
;cache_record_files = yes ; Cache recorded sound files to another directory during recording
|
||||
;record_cache_dir = /tmp ; Specify cache directory (used in conjunction with cache_record_files)
|
||||
;transmit_silence_during_record = yes ; Transmit SLINEAR silence while a channel is being recorded
|
||||
;transmit_silence = yes ; Transmit silence while a channel is in a waiting state, a recording only state, or when DTMF is
|
||||
; being generated. Note that the silence internally is generated in raw signed linear format.
|
||||
; This means that it must be transcoded into the native format of the channel before it can be sent
|
||||
; to the device. It is for this reason that this is optional, as it may result in requiring a
|
||||
; temporary codec translation path for a channel that may not otherwise require one.
|
||||
;transcode_via_sln = yes ; Build transcode paths via SLINEAR, instead of directly
|
||||
;sendfullybooted = yes ; Send the FullyBooted AMI event on AMI login and when all modules are finished loading
|
||||
runuser = asterisk ; The user to run as
|
||||
rungroup = asterisk ; The group to run as
|
||||
;lightbackground = yes ; If your terminal is set for a light-colored background
|
||||
documentation_language = en_US ; Set the Language you want Documentation displayed in. Value is in the same format as locale names
|
||||
;hideconnect = yes ; Hide messages displayed when a remote console connects and disconnects
|
||||
|
||||
; Changing the following lines may compromise your security.
|
||||
;[files]
|
||||
;astctlpermissions = 0660
|
||||
;astctlowner = root
|
||||
;astctlgroup = apache
|
||||
;astctl = asterisk.ctl
|
||||
|
||||
[compat]
|
||||
pbx_realtime=1.6
|
||||
res_agi=1.6
|
||||
app_set=1.6
|
163
asterisk/cdr.conf
Normal file
163
asterisk/cdr.conf
Normal file
@ -0,0 +1,163 @@
|
||||
;
|
||||
; Asterisk Call Detail Record engine configuration
|
||||
;
|
||||
; CDR is Call Detail Record, which provides logging services via a variety of
|
||||
; pluggable backend modules. Detailed call information can be recorded to
|
||||
; databases, files, etc. Useful for billing, fraud prevention, compliance with
|
||||
; Sarbanes-Oxley aka The Enron Act, QOS evaluations, and more.
|
||||
;
|
||||
|
||||
[general]
|
||||
|
||||
; Define whether or not to use CDR logging. Setting this to "no" will override
|
||||
; any loading of backend CDR modules. Default is "yes".
|
||||
;enable=yes
|
||||
|
||||
; Define whether or not to log unanswered calls. Setting this to "yes" will
|
||||
; report every attempt to ring a phone in dialing attempts, when it was not
|
||||
; answered. For example, if you try to dial 3 extensions, and this option is "yes",
|
||||
; you will get 3 CDR's, one for each phone that was rung. Default is "no". Some
|
||||
; find this information horribly useless. Others find it very valuable. Note, in "yes"
|
||||
; mode, you will see one CDR, with one of the call targets on one side, and the originating
|
||||
; channel on the other, and then one CDR for each channel attempted. This may seem
|
||||
; redundant, but cannot be helped.
|
||||
;
|
||||
; In brief, this option controls the reporting of unanswered calls which only have an A
|
||||
; party. Calls which get offered to an outgoing line, but are unanswered, are still
|
||||
; logged, and that is the intended behaviour. (It also results in some B side CDRs being
|
||||
; output, as they have the B side channel as their source channel, and no destination
|
||||
; channel.)
|
||||
;unanswered = no
|
||||
|
||||
; Define the CDR batch mode, where instead of posting the CDR at the end of
|
||||
; every call, the data will be stored in a buffer to help alleviate load on the
|
||||
; asterisk server. Default is "no".
|
||||
;
|
||||
; WARNING WARNING WARNING
|
||||
; Use of batch mode may result in data loss after unsafe asterisk termination
|
||||
; ie. software crash, power failure, kill -9, etc.
|
||||
; WARNING WARNING WARNING
|
||||
;
|
||||
;batch=no
|
||||
|
||||
; Define the maximum number of CDRs to accumulate in the buffer before posting
|
||||
; them to the backend engines. 'batch' must be set to 'yes'. Default is 100.
|
||||
;size=100
|
||||
|
||||
; Define the maximum time to accumulate CDRs in the buffer before posting them
|
||||
; to the backend engines. If this time limit is reached, then it will post the
|
||||
; records, regardless of the value defined for 'size'. 'batch' must be set to
|
||||
; 'yes'. Note that time is in seconds. Default is 300 (5 minutes).
|
||||
;time=300
|
||||
|
||||
; The CDR engine uses the internal asterisk scheduler to determine when to post
|
||||
; records. Posting can either occur inside the scheduler thread, or a new
|
||||
; thread can be spawned for the submission of every batch. For small batches,
|
||||
; it might be acceptable to just use the scheduler thread, so set this to "yes".
|
||||
; For large batches, say anything over size=10, a new thread is recommended, so
|
||||
; set this to "no". Default is "no".
|
||||
;scheduleronly=no
|
||||
|
||||
; When shutting down asterisk, you can block until the CDRs are submitted. If
|
||||
; you don't, then data will likely be lost. You can always check the size of
|
||||
; the CDR batch buffer with the CLI "cdr status" command. To enable blocking on
|
||||
; submission of CDR data during asterisk shutdown, set this to "yes". Default
|
||||
; is "yes".
|
||||
;safeshutdown=yes
|
||||
|
||||
; Normally, CDR's are not closed out until after all extensions are finished
|
||||
; executing. By enabling this option, the CDR will be ended before executing
|
||||
; the "h" extension so that CDR values such as "end" and "billsec" may be
|
||||
; retrieved inside of of this extension.
|
||||
;endbeforehexten=no
|
||||
|
||||
; Normally, the 'billsec' field logged to the backends (text files or databases)
|
||||
; is simply the end time (hangup time) minus the answer time in seconds. Internally,
|
||||
; asterisk stores the time in terms of microseconds and seconds. By setting
|
||||
; initiatedseconds to 'yes', you can force asterisk to report any seconds
|
||||
; that were initiated (a sort of round up method). Technically, this is
|
||||
; when the microsecond part of the end time is greater than the microsecond
|
||||
; part of the answer time, then the billsec time is incremented one second.
|
||||
;initiatedseconds=no
|
||||
|
||||
;
|
||||
;
|
||||
; CHOOSING A CDR "BACKEND" (what kind of output to generate)
|
||||
;
|
||||
; To choose a backend, you have to make sure either the right category is
|
||||
; defined in this file, or that the appropriate config file exists, and has the
|
||||
; proper definitions in it. If there are any problems, usually, the entry will
|
||||
; silently ignored, and you get no output.
|
||||
;
|
||||
; Also, please note that you can generate CDR records in as many formats as you
|
||||
; wish. If you configure 5 different CDR formats, then each event will be logged
|
||||
; in 5 different places! In the example config files, all formats are commented
|
||||
; out except for the cdr-csv format.
|
||||
;
|
||||
; Here are all the possible back ends:
|
||||
;
|
||||
; csv, custom, manager, odbc, pgsql, radius, sqlite, tds
|
||||
; (also, mysql is available via the asterisk-addons, due to licensing
|
||||
; requirements)
|
||||
; (please note, also, that other backends can be created, by creating
|
||||
; a new backend module in the source cdr/ directory!)
|
||||
;
|
||||
; Some of the modules required to provide these backends will not build or install
|
||||
; unless some dependency requirements are met. Examples of this are pgsql, odbc,
|
||||
; etc. If you are not getting output as you would expect, the first thing to do
|
||||
; is to run the command "make menuselect", and check what modules are available,
|
||||
; by looking in the "2. Call Detail Recording" option in the main menu. If your
|
||||
; backend is marked with XXX, you know that the "configure" command could not find
|
||||
; the required libraries for that option.
|
||||
;
|
||||
; To get CDRs to be logged to the plain-jane /var/log/asterisk/cdr-csv/Master.csv
|
||||
; file, define the [csv] category in this file. No database necessary. The example
|
||||
; config files are set up to provide this kind of output by default.
|
||||
;
|
||||
; To get custom csv CDR records, make sure the cdr_custom.conf file
|
||||
; is present, and contains the proper [mappings] section. The advantage to
|
||||
; using this backend, is that you can define which fields to output, and in
|
||||
; what order. By default, the example configs are set up to mimic the cdr-csv
|
||||
; output. If you don't make any changes to the mappings, you are basically generating
|
||||
; the same thing as cdr-csv, but expending more CPU cycles to do so!
|
||||
;
|
||||
; To get manager events generated, make sure the cdr_manager.conf file exists,
|
||||
; and the [general] section is defined, with the single variable 'enabled = yes'.
|
||||
;
|
||||
; For odbc, make sure all the proper libs are installed, that "make menuselect"
|
||||
; shows that the modules are available, and the cdr_odbc.conf file exists, and
|
||||
; has a [global] section with the proper variables defined.
|
||||
;
|
||||
; For pgsql, make sure all the proper libs are installed, that "make menuselect"
|
||||
; shows that the modules are available, and the cdr_pgsql.conf file exists, and
|
||||
; has a [global] section with the proper variables defined.
|
||||
;
|
||||
; For logging to radius databases, make sure all the proper libs are installed, that
|
||||
; "make menuselect" shows that the modules are available, and the [radius]
|
||||
; category is defined in this file, and in that section, make sure the 'radiuscfg'
|
||||
; variable is properly pointing to an existing radiusclient.conf file.
|
||||
;
|
||||
; For logging to sqlite databases, make sure the 'cdr.db' file exists in the log directory,
|
||||
; which is usually /var/log/asterisk. Of course, the proper libraries should be available
|
||||
; during the 'configure' operation.
|
||||
;
|
||||
; For tds logging, make sure the proper libraries are available during the 'configure'
|
||||
; phase, and that cdr_tds.conf exists and is properly set up with a [global] category.
|
||||
;
|
||||
; Also, remember, that if you wish to log CDR info to a database, you will have to define
|
||||
; a specific table in that databse to make things work! See the doc directory for more details
|
||||
; on how to create this table in each database.
|
||||
;
|
||||
|
||||
[csv]
|
||||
usegmtime=yes ; log date/time in GMT. Default is "no"
|
||||
loguniqueid=yes ; log uniqueid. Default is "no"
|
||||
loguserfield=yes ; log user field. Default is "no"
|
||||
|
||||
;[radius]
|
||||
;usegmtime=yes ; log date/time in GMT
|
||||
;loguniqueid=yes ; log uniqueid
|
||||
;loguserfield=yes ; log user field
|
||||
; Set this to the location of the radiusclient-ng configuration file
|
||||
; The default is /etc/radiusclient-ng/radiusclient.conf
|
||||
;radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf
|
62
asterisk/cdr_adaptive_odbc.conf
Normal file
62
asterisk/cdr_adaptive_odbc.conf
Normal file
@ -0,0 +1,62 @@
|
||||
;
|
||||
; This configuration defines the connections and tables for which CDRs may
|
||||
; be populated. Each context specifies a different CDR table to be used.
|
||||
;
|
||||
; The columns in the tables should match up word-for-word (case-insensitive)
|
||||
; to the CDR variables set in the dialplan. The natural advantage to this
|
||||
; system is that beyond setting up the configuration file to tell you what
|
||||
; tables to look at, there isn't anything more to do beyond creating the
|
||||
; columns for the fields that you want, and populating the corresponding
|
||||
; CDR variables in the dialplan. For the builtin variables only, you may
|
||||
; create aliases for the real column name.
|
||||
;
|
||||
; Please note that after adding columns to the database, it is necessary to
|
||||
; reload this module to get the new column names and types read.
|
||||
;
|
||||
; Warning: if you specify two contexts with exactly the same connection and
|
||||
; table names, you will get duplicate records in that table. So be careful.
|
||||
;
|
||||
|
||||
;[first]
|
||||
;connection=mysql1
|
||||
;table=cdr
|
||||
|
||||
;[second]
|
||||
;connection=mysql1
|
||||
;table=extracdr
|
||||
|
||||
;[third]
|
||||
;connection=sqlserver
|
||||
;table=AsteriskCDR
|
||||
;usegmtime=yes ; defaults to no
|
||||
;alias src => source
|
||||
;alias channel => source_channel
|
||||
;alias dst => dest
|
||||
;alias dstchannel => dest_channel
|
||||
;
|
||||
; Any filter specified MUST match exactly or the CDR will be discarded
|
||||
;filter accountcode => somename
|
||||
;filter src => 123
|
||||
;
|
||||
; Additionally, we now support setting static values per column. Reason
|
||||
; for this is to allow different sections to specify different values for
|
||||
; a certain named column, presumably separated by filters.
|
||||
;static "Some Special Value" => identifier_code
|
||||
|
||||
|
||||
; On Wednesday 10 September 2008 21:11:16 Tilghman Lesher wrote:
|
||||
;
|
||||
; I thought that the sample cdr_adaptive_odbc.conf was rather clear, but
|
||||
; apparently not. The point of this module is to allow you log whatever you
|
||||
; like in terms of the CDR variables. Do you want to log uniqueid? Then simply
|
||||
; ensure that your table has that column. If you don't want the column, ensure
|
||||
; that it does not exist in the table structure. If you'd like to call uniqueid
|
||||
; something else in your table, simply provide an alias in the configuration
|
||||
; file that maps the standard CDR field name (uniqueid) to whatever column
|
||||
; name you like. Perhaps you'd like some extra CDR values logged that aren't
|
||||
; in the standard repertoire of CDR variables (some that come to mind are
|
||||
; certain values used for LCR: route, per_minute_cost, and per_minute_price).
|
||||
; Simply set those CDR variables in your dialplan, i.e. Set(CDR(route)=27),
|
||||
; ensure that a corresponding column exists in your table, and cdr_adaptive_odbc
|
||||
; will do the rest.
|
||||
|
11
asterisk/cdr_custom.conf
Normal file
11
asterisk/cdr_custom.conf
Normal file
@ -0,0 +1,11 @@
|
||||
;
|
||||
; Mappings for custom config file
|
||||
;
|
||||
; to get your csv output in a format tailored to your liking, uncomment the following
|
||||
; and look for the output in the cdr-custom/Master.csv file (usually in /var/log/asterisk).
|
||||
;
|
||||
;
|
||||
;[mappings]
|
||||
;Master.csv => ${CSV_QUOTE(${CDR(clid)})},${CSV_QUOTE(${CDR(src)})},${CSV_QUOTE(${CDR(dst)})},${CSV_QUOTE(${CDR(dcontext)})},${CSV_QUOTE(${CDR(channel)})},${CSV_QUOTE(${CDR(dstchannel)})},${CSV_QUOTE(${CDR(lastapp)})},${CSV_QUOTE(${CDR(lastdata)})},${CSV_QUOTE(${CDR(start)})},${CSV_QUOTE(${CDR(answer)})},${CSV_QUOTE(${CDR(end)})},${CSV_QUOTE(${CDR(duration)})},${CSV_QUOTE(${CDR(billsec)})},${CSV_QUOTE(${CDR(disposition)})},${CSV_QUOTE(${CDR(amaflags)})},${CSV_QUOTE(${CDR(accountcode)})},${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR(userfield)})}
|
||||
;Simple.csv => ${CSV_QUOTE(${EPOCH})},${CSV_QUOTE(${CDR(src)})},${CSV_QUOTE(${CDR(dst)})}
|
||||
|
15
asterisk/cdr_manager.conf
Normal file
15
asterisk/cdr_manager.conf
Normal file
@ -0,0 +1,15 @@
|
||||
;
|
||||
; Asterisk Call Management CDR
|
||||
;
|
||||
[general]
|
||||
enabled = no
|
||||
|
||||
; The "mappings" category can be used to define additional "key: value" pairs
|
||||
; that will be included in the manager event. (after AccountCode, Source, etc).
|
||||
;
|
||||
; Each line like "varname => label" will include a "label: ${CDR(varname)}"
|
||||
; in the generated event where ${CDR(varname)} its replaced with its value
|
||||
;
|
||||
;[mappings]
|
||||
;rate => Rate
|
||||
;carrier => Carrier
|
61
asterisk/cdr_mysql.conf
Normal file
61
asterisk/cdr_mysql.conf
Normal file
@ -0,0 +1,61 @@
|
||||
;
|
||||
; Note - if the database server is hosted on the same machine as the
|
||||
; asterisk server, you can achieve a local Unix socket connection by
|
||||
; setting hostname=localhost
|
||||
;
|
||||
; port and sock are both optional parameters. If hostname is specified
|
||||
; and is not "localhost" (you can use address 127.0.0.1 instead), then
|
||||
; cdr_mysql will attempt to connect to the port specified or use the
|
||||
; default port. If hostname is not specified or if hostname is
|
||||
; "localhost", then cdr_mysql will attempt to connect to the socket file
|
||||
; specified by sock or otherwise use the default socket file.
|
||||
;
|
||||
;[global]
|
||||
;hostname=database.host.name
|
||||
;dbname=asteriskcdrdb
|
||||
;table=cdr
|
||||
;password=password
|
||||
;user=asteriskcdruser
|
||||
;port=3306
|
||||
;sock=/tmp/mysql.sock
|
||||
;
|
||||
; If you need your CDRs recorded in GMT instead of local time
|
||||
;usegmtime=yes
|
||||
;
|
||||
; If your system's locale differs from mysql database character set,
|
||||
; cdr_mysql can damage non-latin characters in CDR variables. Use this
|
||||
; option to protect your data.
|
||||
;charset=koi8r
|
||||
;
|
||||
; Older versions of cdr_mysql set the calldate field to whenever the
|
||||
; record was posted, rather than the start date of the call. This flag
|
||||
; reverts to the old (incorrect) behavior. Note that you'll also need
|
||||
; to comment out the "start=calldate" alias, below, to use this.
|
||||
;compat=no
|
||||
;
|
||||
; ssl connections (optional)
|
||||
;ssl_ca=<path to CA cert>
|
||||
;ssl_cert=<path to cert>
|
||||
;ssl_key=<path to keyfile>
|
||||
;
|
||||
; You may also configure the field names used in the CDR table.
|
||||
;
|
||||
[columns]
|
||||
;static "<value>" => <column>
|
||||
;alias <cdrvar> => <column>
|
||||
alias start => calldate
|
||||
alias callerid => clid
|
||||
;alias src => src
|
||||
;alias dst => dst
|
||||
;alias dcontext => dcontext
|
||||
;alias channel => channel
|
||||
;alias dstchannel => dstchannel
|
||||
;alias lastapp => lastapp
|
||||
;alias lastdata => lastdata
|
||||
;alias duration => duration
|
||||
;alias billsec => billsec
|
||||
;alias disposition => disposition
|
||||
;alias amaflags => amaflags
|
||||
;alias accountcode => accountcode
|
||||
;alias userfield => userfield
|
||||
;alias uniqueid => uniqueid
|
10
asterisk/cdr_odbc.conf
Normal file
10
asterisk/cdr_odbc.conf
Normal file
@ -0,0 +1,10 @@
|
||||
;
|
||||
; cdr_odbc.conf
|
||||
;
|
||||
|
||||
;[global]
|
||||
;dsn=MySQL-test
|
||||
;loguniqueid=yes
|
||||
;dispositionstring=yes
|
||||
;table=cdr ;"cdr" is default table name
|
||||
;usegmtime=no ; set to "yes" to log in GMT
|
10
asterisk/cdr_pgsql.conf
Normal file
10
asterisk/cdr_pgsql.conf
Normal file
@ -0,0 +1,10 @@
|
||||
; Sample Asterisk config file for CDR logging to PostgresSQL
|
||||
|
||||
[global]
|
||||
;hostname=localhost
|
||||
;port=5432
|
||||
;dbname=asterisk
|
||||
;password=password
|
||||
;user=postgres
|
||||
;table=cdr ;SQL table where CDRs will be inserted
|
||||
;encoding=LATIN9 ; Encoding of logged characters in Asterisk
|
7
asterisk/cdr_sqlite3_custom.conf
Normal file
7
asterisk/cdr_sqlite3_custom.conf
Normal file
@ -0,0 +1,7 @@
|
||||
;
|
||||
; Mappings for custom config file
|
||||
;
|
||||
[master] ; currently, only file "master.db" is supported, with only one table at a time.
|
||||
table => cdr
|
||||
columns => calldate, clid, dcontext, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield, test
|
||||
values => '${CDR(start)}','${CDR(clid)}','${CDR(dcontext)}','${CDR(channel)}','${CDR(dstchannel)}','${CDR(lastapp)}','${CDR(lastdata)}','${CDR(duration)}','${CDR(billsec)}','${CDR(disposition)}','${CDR(amaflags)}','${CDR(accountcode)}','${CDR(uniqueid)}','${CDR(userfield)}','${CDR(test)}'
|
10
asterisk/cdr_tds.conf
Normal file
10
asterisk/cdr_tds.conf
Normal file
@ -0,0 +1,10 @@
|
||||
; Sample Asterisk config file for CDR logging to FreeTDS
|
||||
|
||||
;[global]
|
||||
;hostname=fs.malico.loc
|
||||
;dbname=MalicoHN
|
||||
;user=mangUsr
|
||||
;password=
|
||||
;charset=BIG5
|
||||
;table=cdr
|
||||
|
1224
asterisk/chan_dahdi.conf
Normal file
1224
asterisk/chan_dahdi.conf
Normal file
File diff suppressed because it is too large
Load Diff
12
asterisk/cli.conf
Normal file
12
asterisk/cli.conf
Normal file
@ -0,0 +1,12 @@
|
||||
;
|
||||
; Asterisk CLI configuration
|
||||
;
|
||||
|
||||
[startup_commands]
|
||||
;
|
||||
; Any commands listed in this section will get automatically executed
|
||||
; when Asterisk starts as a daemon or foreground process (-c).
|
||||
;
|
||||
;sip set debug on = yes
|
||||
;core set verbose 3 = yes
|
||||
;core set debug 1 = yes
|
188
asterisk/cli_aliases.conf
Normal file
188
asterisk/cli_aliases.conf
Normal file
@ -0,0 +1,188 @@
|
||||
;
|
||||
; CLI Aliases configuration
|
||||
;
|
||||
; This module also registers a "cli show aliases" CLI command to list
|
||||
; configured CLI aliases.
|
||||
|
||||
[general]
|
||||
; Here you define what alias templates you want to use. You can also define
|
||||
; multiple templates to use as well. If you do, and there is a conflict, then
|
||||
; the first alias defined will win.
|
||||
;
|
||||
template = friendly ; By default, include friendly aliases
|
||||
;template = asterisk12 ; Asterisk 1.2 style syntax
|
||||
;template = asterisk14 ; Asterisk 1.4 style syntax
|
||||
;template = individual_custom ; see [individual_custom] example below which
|
||||
; includes a list of aliases from an external
|
||||
; file
|
||||
|
||||
|
||||
; Because the Asterisk CLI syntax follows a "module verb argument" syntax,
|
||||
; sometimes we run into an issue between being consistant with this format
|
||||
; in the core system, and maintaining system friendliness. In order to get
|
||||
; around this we're providing some useful aliases by default.
|
||||
;
|
||||
[friendly]
|
||||
hangup request=channel request hangup
|
||||
originate=channel originate
|
||||
help=core show help
|
||||
pri intense debug span=pri set debug 2 span
|
||||
reload=module reload
|
||||
|
||||
; CLI Alias Templates
|
||||
; -------------------
|
||||
;
|
||||
; You can define several alias templates.
|
||||
; It works with context templates like all other configuration files
|
||||
;
|
||||
;[asterisk](!)
|
||||
; To create an alias you simply set the variable name as the alias and variable
|
||||
; value as the real CLI command you want executed
|
||||
;
|
||||
;die die die=stop now
|
||||
|
||||
;[asterisk16](asterisk)
|
||||
; Alias for making voicemail reload actually do module reload app_voicemail.so
|
||||
;voicemail reload=module reload app_voicemail.so
|
||||
; This will make the CLI command "mr" behave as though it is "module reload".
|
||||
;mr=module reload
|
||||
;
|
||||
;
|
||||
; In addition, you could also include a flat file of aliases which is loaded by
|
||||
; the [individual_custom] template in the [general] section.
|
||||
;
|
||||
;[individual_custom]
|
||||
;#include "/etc/asterisk/aliases"
|
||||
|
||||
; Implemented CLI Alias Templates
|
||||
; -------------------------------
|
||||
;
|
||||
; Below here we have provided you with some templates, easily allowing you to
|
||||
; utilize previous Asterisk CLI commands with any version of Asterisk. In this
|
||||
; way you will be able to use Asterisk 1.2 and 1.4 style CLI syntax with any
|
||||
; version Asterisk going forward into the future.
|
||||
;
|
||||
; We have also separated out the vanilla syntax into a context template which
|
||||
; allows you to keep your custom changes separate of the standard templates
|
||||
; we have provided you. In this way you can clearly see your custom changes,
|
||||
; and also allowing you to combine various templates as you see fit.
|
||||
;
|
||||
; The naming scheme we have used is recommended, but certainly is not enforced
|
||||
; by Asterisk. If you wish to use the provided templates, simply define the
|
||||
; context name which does not utilize the '_tpl' at the end. For example,
|
||||
; if you would like to use the Asterisk 1.2 style syntax, define in the
|
||||
; [general] section
|
||||
|
||||
[asterisk12_tpl](!)
|
||||
show channeltypes=core show channeltypes
|
||||
show channeltype=core show channeltype
|
||||
show manager command=manager show command
|
||||
show manager commands=manager show commands
|
||||
show manager connected=manager show connected
|
||||
show manager eventq=manager show eventq
|
||||
rtp no debug=rtp set debug off
|
||||
rtp rtcp debug ip=rtcp debug ip
|
||||
rtp rtcp debug=rtcp debug
|
||||
rtp rtcp no debug=rtcp debug off
|
||||
rtp rtcp stats=rtcp stats
|
||||
rtp rtcp no stats=rtcp stats off
|
||||
stun no debug=stun debug off
|
||||
udptl no debug=udptl debug off
|
||||
show image formats=core show image formats
|
||||
show file formats=core show file formats
|
||||
show applications=core show applications
|
||||
show functions=core show functions
|
||||
show switches=core show switches
|
||||
show hints=core show hints
|
||||
show globals=core show globals
|
||||
show function=core show function
|
||||
show application=core show application
|
||||
set global=core set global
|
||||
show dialplan=dialplan show
|
||||
show codecs=core show codecs
|
||||
show audio codecs=core show audio codecs
|
||||
show video codecs=core show video codecs
|
||||
show image codecs=core show image codecs
|
||||
show codec=core show codec
|
||||
moh classes show=moh show classes
|
||||
moh files show=moh show files
|
||||
agi no debug=agi debug off
|
||||
show agi=agi show
|
||||
dump agihtml=agi dumphtml
|
||||
show features=feature show
|
||||
show indications=indication show
|
||||
answer=console answer
|
||||
hangup=console hangup
|
||||
flash=console flash
|
||||
dial=console dial
|
||||
mute=console mute
|
||||
unmute=console unmute
|
||||
transfer=console transfer
|
||||
send text=console send text
|
||||
autoanswer=console autoanswer
|
||||
oss boost=console boost
|
||||
console=console active
|
||||
save dialplan=dialplan save
|
||||
add extension=dialplan add extension
|
||||
remove extension=dialplan remove extension
|
||||
add ignorepat=dialplan add ignorepat
|
||||
remove ignorepat=dialplan remove ignorepat
|
||||
include context=dialplan add include
|
||||
dont include=dialplan remove include
|
||||
extensions reload=dialplan reload
|
||||
show translation=core show translation
|
||||
convert=file convert
|
||||
show queue=queue show
|
||||
add queue member=queue add member
|
||||
remove queue member=queue remove member
|
||||
ael no debug=ael nodebug
|
||||
sip debug=sip set debug
|
||||
sip no debug=sip set debug off
|
||||
show voicemail users=voicemail show users
|
||||
show voicemail zones=voicemail show zones
|
||||
iax2 trunk debug=iax2 set debug trunk
|
||||
iax2 jb debug=iax2 set debug jb
|
||||
iax2 no debug=iax2 set debug off
|
||||
iax2 no trunk debug=iax2 set debug trunk off
|
||||
iax2 no jb debug=iax2 set debug jb off
|
||||
show agents=agent show
|
||||
show agents online=agent show online
|
||||
show memory allocations=memory show allocations
|
||||
show memory summary=memory show summary
|
||||
show version=core show version
|
||||
show version files=core show file version
|
||||
show profile=core show profile
|
||||
clear profile=core clear profile
|
||||
soft hangup=channel request hangup
|
||||
|
||||
[asterisk12](asterisk12_tpl)
|
||||
; add any additional custom commands you want below here, for example:
|
||||
;die quickly=stop now
|
||||
|
||||
[asterisk14_tpl](!)
|
||||
cdr status=cdr show status
|
||||
rtp debug=rtp set debug on
|
||||
rtcp debug=rtcp set debug on
|
||||
rtcp stats=rtcp set stats on
|
||||
stun debug=stun set debug on
|
||||
udptl debug=udptl set debug on
|
||||
core show globals=dialplan show globals
|
||||
core set global=dialplan set global
|
||||
core set chanvar=dialplan set chanvar
|
||||
agi dumphtml=agi dump html
|
||||
ael debug=ael set debug
|
||||
funcdevstate list=devstate list
|
||||
sip history=sip set history on
|
||||
skinny debug=skinny set debug on
|
||||
mgcp set debug=mgcp set debug on
|
||||
abort shutdown=core abort shutdown
|
||||
stop now=core stop now
|
||||
stop gracefully=core stop gracefully
|
||||
stop when convenient=core stop when convenient
|
||||
restart now=core restart now
|
||||
restart gracefully=core restart gracefully
|
||||
restart when convenient=core restart when convenient
|
||||
soft hangup=channel request hangup
|
||||
|
||||
[asterisk14](asterisk14_tpl)
|
||||
; add any additional custom commands you want below here.
|
82
asterisk/cli_permissions.conf
Normal file
82
asterisk/cli_permissions.conf
Normal file
@ -0,0 +1,82 @@
|
||||
;
|
||||
; CLI permissions configuration example for Asterisk
|
||||
;
|
||||
; All the users that you want to connect with asterisk using
|
||||
; rasterisk, should have write/read access to the
|
||||
; asterisk socket (asterisk.ctl). You could change the permissions
|
||||
; of this file in 'asterisk.conf' config parameter: 'astctlpermissions' (0666)
|
||||
; found on the [files] section.
|
||||
;
|
||||
; general options:
|
||||
;
|
||||
; default_perm = permit | deny
|
||||
; This is the default permissions to apply for a user that
|
||||
; does not has a permissions definided.
|
||||
;
|
||||
; user options:
|
||||
; permit = <command name> | all ; allow the user to run 'command' |
|
||||
; ; allow the user to run 'all' the commands
|
||||
; deny = <command name> | all ; disallow the user to run 'command' |
|
||||
; ; disallow the user to run 'all' commands.
|
||||
;
|
||||
|
||||
[general]
|
||||
|
||||
default_perm=permit ; To leave asterisk working as normal
|
||||
; we should set this parameter to 'permit'
|
||||
;
|
||||
; Follows the per-users permissions configs.
|
||||
;
|
||||
; This list is read in the sequence that is being written, so
|
||||
; In this example the user 'eliel' is allow to run only the following
|
||||
; commands:
|
||||
; sip show peer
|
||||
; core set debug
|
||||
; core set verbose
|
||||
; If the user is not specified, the default_perm option will be apply to
|
||||
; every command.
|
||||
;
|
||||
; Notice that you can also use regular expressions to allow or deny access to a
|
||||
; certain command like: 'core show application D*'. In this example the user will be
|
||||
; allowed to view the documentation for all the applications starting with 'D'.
|
||||
; Another regular expression could be: 'channel originate SIP/[0-9]* extension *'
|
||||
; allowing the user to use 'channel originate' on a sip channel and with the 'extension'
|
||||
; parameter and avoiding the use of the 'application' parameter.
|
||||
;
|
||||
; We can also use the templates syntax:
|
||||
; [supportTemplate](!)
|
||||
; deny=all
|
||||
; permit=sip show ; all commands starting with 'sip show' will be allowed
|
||||
; permit=core show
|
||||
;
|
||||
; You can specify permissions for a local group instead of a user,
|
||||
; just put a '@' and we will know that is a group.
|
||||
; IMPORTANT NOTE: Users permissions overwrite group permissions.
|
||||
;
|
||||
;[@adm]
|
||||
;deny=all
|
||||
;permit=sip
|
||||
;permit=core
|
||||
;
|
||||
;
|
||||
;[eliel]
|
||||
;deny=all
|
||||
;permit=sip show peer
|
||||
;deny=sip show peers
|
||||
;permit=core set
|
||||
;
|
||||
;
|
||||
;User 'tommy' inherits from template 'supportTemplate':
|
||||
; deny=all
|
||||
; permit=sip show
|
||||
; permit=core show
|
||||
;[tommy](supportTemplate)
|
||||
;permit=core set debug
|
||||
;permit=dialplan show
|
||||
;
|
||||
;
|
||||
;[mark]
|
||||
;deny=all
|
||||
;permit=all
|
||||
;
|
||||
;
|
65
asterisk/codecs.conf
Normal file
65
asterisk/codecs.conf
Normal file
@ -0,0 +1,65 @@
|
||||
[speex]
|
||||
; CBR encoding quality [0..10]
|
||||
; used only when vbr = false
|
||||
quality => 3
|
||||
|
||||
; codec complexity [0..10]
|
||||
; tradeoff between cpu/quality
|
||||
complexity => 2
|
||||
|
||||
; perceptual enhancement [true / false]
|
||||
; improves clarity of decoded speech
|
||||
enhancement => true
|
||||
|
||||
; voice activity detection [true / false]
|
||||
; reduces bitrate when no voice detected, used only for CBR
|
||||
; (implicit in VBR/ABR)
|
||||
vad => true
|
||||
|
||||
; variable bit rate [true / false]
|
||||
; uses bit rate proportionate to voice complexity
|
||||
vbr => true
|
||||
|
||||
; available bit rate [bps, 0 = off]
|
||||
; encoding quality modulated to match this target bit rate
|
||||
; not recommended with dtx or pp_vad - may cause bandwidth spikes
|
||||
abr => 0
|
||||
|
||||
; VBR encoding quality [0-10]
|
||||
; floating-point values allowed
|
||||
vbr_quality => 4
|
||||
|
||||
; discontinuous transmission [true / false]
|
||||
; stops transmitting completely when silence is detected
|
||||
; pp_vad is far more effective but more CPU intensive
|
||||
dtx => false
|
||||
|
||||
; preprocessor configuration
|
||||
; these options only affect Speex v1.1.8 or newer
|
||||
|
||||
; enable preprocessor [true / false]
|
||||
; allows dsp functionality below but incurs CPU overhead
|
||||
preprocess => false
|
||||
|
||||
; preproc voice activity detection [true / false]
|
||||
; more advanced equivalent of DTX, based on voice frequencies
|
||||
pp_vad => false
|
||||
|
||||
; preproc automatic gain control [true / false]
|
||||
pp_agc => false
|
||||
pp_agc_level => 8000
|
||||
|
||||
; preproc denoiser [true / false]
|
||||
pp_denoise => false
|
||||
|
||||
; preproc dereverb [true / false]
|
||||
pp_dereverb => false
|
||||
pp_dereverb_decay => 0.4
|
||||
pp_dereverb_level => 0.3
|
||||
|
||||
|
||||
[plc]
|
||||
; for all codecs which do not support native PLC
|
||||
; this determines whether to perform generic PLC
|
||||
; there is a minor performance penalty for this
|
||||
genericplc => true
|
97
asterisk/console.conf
Normal file
97
asterisk/console.conf
Normal file
@ -0,0 +1,97 @@
|
||||
;
|
||||
; Configuration for chan_console, a cross-platform console channel driver.
|
||||
;
|
||||
|
||||
[general]
|
||||
|
||||
; Set this option to "yes" to enable automatically answering calls on the
|
||||
; console. This is very useful if the console is used as an intercom.
|
||||
; The default value is "no".
|
||||
;
|
||||
;autoanswer = no
|
||||
|
||||
; Set the default context to use for outgoing calls. This can be overridden by
|
||||
; dialing some extension@context, unless the overridecontext option is enabled.
|
||||
; The default is "default".
|
||||
;
|
||||
;context = default
|
||||
|
||||
; Set the default extension to use for outgoing calls. The default is "s".
|
||||
;
|
||||
;extension = s
|
||||
|
||||
; Set the default CallerID for created channels.
|
||||
;
|
||||
;callerid = MyName Here <(256) 428-6000>
|
||||
|
||||
; Set the default language for created channels.
|
||||
;
|
||||
;language = en
|
||||
|
||||
; If you set overridecontext to 'yes', then the whole dial string
|
||||
; will be interpreted as an extension, which is extremely useful
|
||||
; to dial SIP, IAX and other extensions which use the '@' character.
|
||||
; The default is "no".
|
||||
;
|
||||
;overridecontext = no ; if 'no', the last @ will start the context
|
||||
; if 'yes' the whole string is an extension.
|
||||
|
||||
|
||||
; Default Music on Hold class to use when this channel is placed on hold in
|
||||
; the case that the music class is not set on the channel with
|
||||
; Set(CHANNEL(musicclass)=whatever) in the dialplan and the peer channel
|
||||
; putting this one on hold did not suggest a class to use.
|
||||
;
|
||||
;mohinterpret=default
|
||||
|
||||
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
|
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an
|
||||
; Console channel. Defaults to "no". An enabled jitterbuffer will
|
||||
; be used only if the sending side can create and the receiving
|
||||
; side can not accept jitter. The Console channel can't accept jitter,
|
||||
; thus an enabled jitterbuffer on the receive Console side will always
|
||||
; be used if the sending side can create jitter.
|
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||
; resynchronized. Useful to improve the quality of the voice, with
|
||||
; big jumps in/broken timestamps, usually sent from exotic devices
|
||||
; and programs. Defaults to 1000.
|
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a Console
|
||||
; channel. Two implementations are currently available - "fixed"
|
||||
; (with size always equals to jbmax-size) and "adaptive" (with
|
||||
; variable size, actually the new jb of IAX2). Defaults to fixed.
|
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set.
|
||||
; The option represents the number of milliseconds by which the new
|
||||
; jitter buffer will pad its size. the default is 40, so without
|
||||
; modification, the new jitter buffer will set its size to the jitter
|
||||
; value plus 40 milliseconds. increasing this value may help if your
|
||||
; network normally has low jitter, but occasionally has spikes.
|
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
|
||||
;-----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
;
|
||||
; Any configuration context defined beyond the [general] section configures
|
||||
; specific devices for use.
|
||||
;
|
||||
|
||||
[default]
|
||||
input_device = default ; When configuring an input device and output device,
|
||||
output_device = default ; use the name that you see when you run the "console
|
||||
; list available" CLI command. If you say "default", the
|
||||
; system default input and output devices will be used.
|
||||
autoanswer = no
|
||||
context = default
|
||||
extension = s
|
||||
callerid = MyName Here <(256) 428-6000>
|
||||
language = en
|
||||
overridecontext = no
|
||||
mohinterpret = default
|
||||
active = yes ; This option should only be set for one console.
|
||||
; It means that it is the active console to be
|
||||
; used from the Asterisk CLI.
|
36
asterisk/dbsep.conf
Normal file
36
asterisk/dbsep.conf
Normal file
@ -0,0 +1,36 @@
|
||||
#
|
||||
# Configuration file for dbsep.cgi
|
||||
#
|
||||
# The purpose of this file is to provide realtime access to a database,
|
||||
# possibly through ODBC, without needing to load the ODBC drivers into
|
||||
# Asterisk, since there are several backend drivers which are rather
|
||||
# buggy.
|
||||
#
|
||||
# We accomplish this separation by using the res_config_curl realtime
|
||||
# driver to connect to a server running dbsep.cgi (or another, which
|
||||
# implements the same protocol).
|
||||
#
|
||||
# This file contains the information necessary to configure dbsep.cgi.
|
||||
#
|
||||
#
|
||||
# Once installed to a web server, you'll need to preload func_curl.so
|
||||
# and res_config_curl.so in modules.conf and configure extconfig.conf:
|
||||
#
|
||||
# voicemail => curl,http://server/path/to/dbsep.cgi/voicemail
|
||||
# sippeers => curl,http://server/path/to/dbsep.cgi/sipfriends
|
||||
# sipusers => curl,http://server/path/to/dbsep.cgi/sipfriends
|
||||
#
|
||||
|
||||
# The Data Source Name, as specified by the Perl DBI module.
|
||||
# Typically, this will be along the lines of 'DBI:mysql:astdbname[:dbhostname]' or 'DBI:Pg:dbname=astdbname;hostname=dbhostname'
|
||||
dsn=somedsn
|
||||
|
||||
# Connected database user
|
||||
dbuser=someuser
|
||||
|
||||
# And its password
|
||||
dbpass=password
|
||||
|
||||
# For most databases, this is fine. Set to 'no' for Sybase or MS SQL Server.
|
||||
backslash_is_escape=yes
|
||||
|
5
asterisk/dnsmgr.conf
Normal file
5
asterisk/dnsmgr.conf
Normal file
@ -0,0 +1,5 @@
|
||||
[general]
|
||||
;enable=yes ; enable creation of managed DNS lookups
|
||||
; default is 'no'
|
||||
;refreshinterval=1200 ; refresh managed DNS lookups every <n> seconds
|
||||
; default is 300 (5 minutes)
|
7
asterisk/dsp.conf
Normal file
7
asterisk/dsp.conf
Normal file
@ -0,0 +1,7 @@
|
||||
[default]
|
||||
;
|
||||
; Length of sound (in milliseconds) before a period of silence is considered
|
||||
; to be a change from talking to silence or a period of noise converts silence
|
||||
; to talking. [default=256]
|
||||
;
|
||||
;silencethreshold=256
|
264
asterisk/dundi.conf
Normal file
264
asterisk/dundi.conf
Normal file
@ -0,0 +1,264 @@
|
||||
;
|
||||
; DUNDi configuration file
|
||||
;
|
||||
; For more information about DUNDi, see http://www.dundi.com
|
||||
;
|
||||
;
|
||||
[general]
|
||||
;
|
||||
; The "general" section contains general parameters relating
|
||||
; to the operation of the dundi client and server.
|
||||
;
|
||||
; The first part should be your complete contact information
|
||||
; should someone else in your peer group need to contact you.
|
||||
;
|
||||
;department=Your Department
|
||||
;organization=Your Company, Inc.
|
||||
;locality=Your City
|
||||
;stateprov=ST
|
||||
;country=US
|
||||
;email=your@email.com
|
||||
;phone=+12565551212
|
||||
;
|
||||
;
|
||||
; Specify bind address and port number. Default is
|
||||
; 4520
|
||||
;
|
||||
;bindaddr=0.0.0.0
|
||||
;port=4520
|
||||
;
|
||||
; See qos.tex or Quality of Service section of asterisk.pdf for a description of the tos parameter.
|
||||
;tos=ef
|
||||
;
|
||||
; Our entity identifier (Should generally be the MAC address of the
|
||||
; machine it's running on. Defaults to the first eth address, but you
|
||||
; can override it here, as long as you set it to the MAC of *something*
|
||||
; you own!) The EID can be overridden by a setting in asterisk.conf,
|
||||
; or by setting this option.
|
||||
;
|
||||
;entityid=00:07:E9:3B:76:60
|
||||
;
|
||||
; Peers shall cache our query responses for the specified time,
|
||||
; given in seconds. Default is 3600.
|
||||
;
|
||||
;cachetime=3600
|
||||
;
|
||||
; This defines the max depth in which to search the DUNDi system.
|
||||
; Note that the maximum time that we will wait for a response is
|
||||
; (2000 + 200 * ttl) ms.
|
||||
;
|
||||
ttl=32
|
||||
;
|
||||
; If we don't get ACK to our DPDISCOVER within 2000ms, and autokill is set
|
||||
; to yes, then we cancel the whole thing (that's enough time for one
|
||||
; retransmission only). This is used to keep things from stalling for a long
|
||||
; time for a host that is not available, but would be ill advised for bad
|
||||
; connections. In addition to 'yes' or 'no' you can also specify a number
|
||||
; of milliseconds. See 'qualify' for individual peers to turn on for just
|
||||
; a specific peer.
|
||||
;
|
||||
autokill=yes
|
||||
;
|
||||
; pbx_dundi creates a rotating key called "secret", under the family
|
||||
; 'secretpath'. The default family is dundi (resulting in
|
||||
; the key being held at dundi/secret).
|
||||
;
|
||||
;secretpath=dundi
|
||||
;
|
||||
; The 'storehistory' option (also changeable at runtime with
|
||||
; 'dundi store history' and 'dundi no store history') will
|
||||
; cause the DUNDi engine to keep track of the last several
|
||||
; queries and the amount of time each query took to execute
|
||||
; for the purpose of tracking slow nodes. This option is
|
||||
; off by default due to performance impacts.
|
||||
;
|
||||
;storehistory=yes
|
||||
|
||||
[mappings]
|
||||
;
|
||||
; The "mappings" section maps DUNDi contexts
|
||||
; to contexts on the local asterisk system. Remember
|
||||
; that numbers that are made available under the e164
|
||||
; DUNDi context are regulated by the DUNDi General Peering
|
||||
; Agreement (GPA) if you are a member of the DUNDi E.164
|
||||
; Peering System.
|
||||
;
|
||||
; dundi_context => local_context,weight,tech,dest[,options]]
|
||||
;
|
||||
; 'dundi_context' is the name of the context being requested
|
||||
; within the DUNDi request
|
||||
;
|
||||
; 'local_context' is the name of the context on the local system
|
||||
; in which numbers can be looked up for which responses shall be given.
|
||||
;
|
||||
; 'weight' is the weight to use for the responses provided from this
|
||||
; mapping. The number must be >= 0 and < 60000. Since it is totally
|
||||
; valid to receive multiple responses to a query, responses received
|
||||
; with a lower weight are tried first. Note that the weight has a
|
||||
; special meaning in the e164 context - see the GPA for more details.
|
||||
;
|
||||
; 'tech' is the technology to use (IAX, SIP, H323)
|
||||
;
|
||||
; 'dest' is the destination to supply for reaching that number. The
|
||||
; following variables can be used in the destination string and will
|
||||
; be automatically substituted:
|
||||
; ${NUMBER}: The number being requested
|
||||
; ${IPADDR}: The IP address to connect to
|
||||
; ${SECRET}: The current rotating secret key to be used
|
||||
;
|
||||
; Further options may include:
|
||||
;
|
||||
; nounsolicited: No unsolicited calls of any type permitted via this
|
||||
; route
|
||||
; nocomunsolicit: No commercial unsolicited calls permitted via
|
||||
; this route
|
||||
; residential: This number is known to be a residence
|
||||
; commercial: This number is known to be a business
|
||||
; mobile: This number is known to be a mobile phone
|
||||
; nocomunsolicit: No commercial unsolicited calls permitted via
|
||||
; this route
|
||||
; nopartial: Do not search for partial matches
|
||||
;
|
||||
; There *must* exist an entry in mappings for DUNDi to respond
|
||||
; to any request, although it may be empty.
|
||||
;
|
||||
;e164 => dundi-e164-canonical,0,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
|
||||
;e164 => dundi-e164-customers,100,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
|
||||
;e164 => dundi-e164-via-pstn,400,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
|
||||
|
||||
;digexten => default,0,IAX2,guest@lappy/${NUMBER}
|
||||
;asdf =>
|
||||
|
||||
;
|
||||
; Weights for mappings can be set a few different ways:
|
||||
;
|
||||
; 1) It can be set as a static number.
|
||||
;testmap1 => context1,222,IAX2,guest@peer1/${NUMBER}
|
||||
;
|
||||
; 2) It can be an Asterisk global variable.
|
||||
;testmap2 => context2,${DUNDITESTVAR},IAX2,guest@peer2${NUMBER}
|
||||
;
|
||||
; 3) It can be retrieved using a dialplan function. This can be extremely
|
||||
; useful if you want to let an external script decide what the weight
|
||||
; in a response shouuld be.
|
||||
;testmap3 => context3,${SHELL(echo 123)},IAX2,guest@peer3/${NUMBER}
|
||||
;
|
||||
; Note than when using a global variable or dialplan function to set the
|
||||
; weight for a mapping, that response caching should be disabled if you
|
||||
; plan for these values to change frequently at all. If the results are
|
||||
; cached, then any change in value will not take effect until the cache
|
||||
; has expired.
|
||||
;
|
||||
|
||||
;
|
||||
; The remaining sections represent the peers
|
||||
; that we fundamentally trust. The section name
|
||||
; represents the name and optionally at a specific
|
||||
; DUNDi context if you want the trust to be established
|
||||
; for only a specific DUNDi context.
|
||||
;
|
||||
; inkey - What key they will be authenticating to us with
|
||||
;
|
||||
; outkey - What key we use to authenticate to them
|
||||
;
|
||||
; host - What their host is
|
||||
;
|
||||
; port - The port where their host is listening (default: 4520)
|
||||
;
|
||||
; order - What search order to use. May be 'primary', 'secondary',
|
||||
; 'tertiary' or 'quartiary'. In large systems, it is beneficial
|
||||
; to only query one up-stream host in order to maximize caching
|
||||
; value. Adding one with primary and one with secondary gives you
|
||||
; redundancy without sacrificing performance.
|
||||
;
|
||||
; include - Includes this peer when searching a particular context
|
||||
; for lookup (set "all" to perform all lookups with that
|
||||
; host. This is also the context in which peers are permitted
|
||||
; to precache.
|
||||
;
|
||||
; noinclude - Disincludes this peer when searching a particular context
|
||||
; for lookup (set "all" to perform no lookups with that
|
||||
; host.
|
||||
;
|
||||
; permit - Permits this peer to search a given DUNDi context on
|
||||
; the local system. Set "all" to permit this host to
|
||||
; lookup all contexts. This is also a context for which
|
||||
; we will create/forward PRECACHE commands.
|
||||
;
|
||||
; deny - Denies this peer to search a given DUNDi context on
|
||||
; the local system. Set "all" to deny this host to
|
||||
; lookup all contexts.
|
||||
;
|
||||
; model - inbound, outbound, or symmetric for whether we receive
|
||||
; requests only, transmit requests only, or do both.
|
||||
;
|
||||
; precache - Utilize/Permit precaching with this peer (to pre
|
||||
; cache means to provide an answer when no request
|
||||
; was made and is used so that machines with few
|
||||
; routes can push those routes up a to a higher level).
|
||||
; outgoing means we send precache routes to this peer,
|
||||
; incoming means we permit this peer to send us
|
||||
; precache routes. symmetric means we do both.
|
||||
;
|
||||
; Note: You cannot mix symmetric/outbound model with symmetric/inbound
|
||||
; precache, nor can you mix symmetric/inbound model with symmetric/outbound
|
||||
; precache.
|
||||
;
|
||||
;
|
||||
; The '*' peer is special and matches an unspecified entity
|
||||
;
|
||||
|
||||
;
|
||||
; Sample Primary e164 DUNDi peer
|
||||
;
|
||||
;[00:50:8B:F3:75:BB]
|
||||
;model = symmetric
|
||||
;host = 64.215.96.114
|
||||
;inkey = digium
|
||||
;outkey = misery
|
||||
;include = e164
|
||||
;permit = e164
|
||||
;qualify = yes
|
||||
|
||||
;
|
||||
; Sample Secondary e164 DUNDi peer
|
||||
;
|
||||
;[00:A0:C9:96:92:84]
|
||||
;model = symmetric
|
||||
;host = misery.digium.com
|
||||
;inkey = misery
|
||||
;outkey = ourkey
|
||||
;include = e164
|
||||
;permit = e164
|
||||
;qualify = yes
|
||||
;order = secondary
|
||||
|
||||
;
|
||||
; Sample "push mode" downstream host
|
||||
;
|
||||
;[00:0C:76:96:75:28]
|
||||
;model = inbound
|
||||
;host = dynamic
|
||||
;precache = inbound
|
||||
;inkey = littleguy
|
||||
;outkey = ourkey
|
||||
;include = e164 ; In this case used only for precaching
|
||||
;permit = e164
|
||||
;qualify = yes
|
||||
|
||||
;
|
||||
; Sample "push mode" upstream host
|
||||
;
|
||||
;[00:07:E9:3B:76:60]
|
||||
;model = outbound
|
||||
;precache = outbound
|
||||
;host = 216.207.245.34
|
||||
;register = yes
|
||||
;inkey = dhcp34
|
||||
;permit = all ; In this case used only for precaching
|
||||
;include = all
|
||||
;qualify = yes
|
||||
;outkey=foo
|
||||
|
||||
;[*]
|
||||
;
|
22
asterisk/enum.conf
Normal file
22
asterisk/enum.conf
Normal file
@ -0,0 +1,22 @@
|
||||
;
|
||||
; ENUM Configuration for resolving phone numbers over DNS
|
||||
;
|
||||
; Sample config for Asterisk
|
||||
; This file is reloaded at "module reload enum" in the CLI
|
||||
;
|
||||
[general]
|
||||
;
|
||||
; The search list for domains may be customized. Domains are searched
|
||||
; in the order they are listed here.
|
||||
;
|
||||
search => e164.arpa
|
||||
;
|
||||
; If you'd like to use the E.164.org public ENUM registry in addition
|
||||
; to the official e164.arpa one, uncomment the following line
|
||||
;
|
||||
;search => e164.org
|
||||
;
|
||||
; As there are more H323 drivers available you have to select to which
|
||||
; drive a H323 URI will map. Default is "H323".
|
||||
;
|
||||
h323driver => H323
|
77
asterisk/extconfig.conf
Normal file
77
asterisk/extconfig.conf
Normal file
@ -0,0 +1,77 @@
|
||||
;
|
||||
; Static and realtime external configuration
|
||||
; engine configuration
|
||||
;
|
||||
; Please read doc/extconfig.txt for basic table
|
||||
; formatting information.
|
||||
;
|
||||
[settings]
|
||||
;
|
||||
; Static configuration files:
|
||||
;
|
||||
; file.conf => driver,database[,table]
|
||||
;
|
||||
; maps a particular configuration file to the given
|
||||
; database driver, database and table (or uses the
|
||||
; name of the file as the table if not specified)
|
||||
;
|
||||
;uncomment to load queues.conf via the odbc engine.
|
||||
;
|
||||
;queues.conf => odbc,asterisk,ast_config
|
||||
;extensions.conf => sqlite,asterisk,ast_config
|
||||
;
|
||||
; The following files CANNOT be loaded from Realtime storage:
|
||||
; asterisk.conf
|
||||
; extconfig.conf (this file)
|
||||
; logger.conf
|
||||
;
|
||||
; Additionally, the following files cannot be loaded from
|
||||
; Realtime storage unless the storage driver is loaded
|
||||
; early using 'preload' statements in modules.conf:
|
||||
; manager.conf
|
||||
; cdr.conf
|
||||
; rtp.conf
|
||||
;
|
||||
;
|
||||
; Realtime configuration engine
|
||||
;
|
||||
; maps a particular family of realtime
|
||||
; configuration to a given database driver,
|
||||
; database and table (or uses the name of
|
||||
; the family if the table is not specified
|
||||
;
|
||||
;example => odbc,asterisk,alttable
|
||||
;example2 => ldap,"dc=oxymium,dc=net",example2
|
||||
;
|
||||
; "odbc" is shown in the examples below, but is not the only valid realtime
|
||||
; engine. There is:
|
||||
; odbc ... res_config_odbc
|
||||
; sqlite ... res_config_sqlite
|
||||
; pgsql ... res_config_pgsql
|
||||
;
|
||||
;iaxusers => odbc,asterisk
|
||||
;iaxpeers => odbc,asterisk
|
||||
;sipusers => odbc,asterisk
|
||||
;sippeers => odbc,asterisk
|
||||
;sipregs => odbc,asterisk
|
||||
;voicemail => odbc,asterisk
|
||||
;extensions => odbc,asterisk
|
||||
;meetme => mysql,general
|
||||
;queues => odbc,asterisk
|
||||
;queue_members => odbc,asterisk
|
||||
;musiconhold => mysql,general
|
||||
;queue_log => mysql,general
|
||||
;
|
||||
;
|
||||
; While most dynamic realtime engines are automatically used when defined in
|
||||
; this file, 'extensions', distinctively, is not. To activate dynamic realtime
|
||||
; extensions, you must turn them on in each respective context within
|
||||
; extensions.conf with a switch statement. The syntax is:
|
||||
; switch => Realtime/[[db_context@]tablename]/<opts>
|
||||
; The only option available currently is the 'p' option, which disallows
|
||||
; extension pattern queries to the database. If you have no patterns defined
|
||||
; in a particular context, this will save quite a bit of CPU time. However,
|
||||
; note that using dynamic realtime extensions is not recommended anymore as a
|
||||
; best practice; instead, you should consider writing a static dialplan with
|
||||
; proper data abstraction via a tool like func_odbc.
|
||||
|
456
asterisk/extensions.ael
Normal file
456
asterisk/extensions.ael
Normal file
@ -0,0 +1,456 @@
|
||||
//
|
||||
// Example AEL config file
|
||||
//
|
||||
//
|
||||
// Static extension configuration file, used by
|
||||
// the pbx_ael module. This is where you configure all your
|
||||
// inbound and outbound calls in Asterisk.
|
||||
//
|
||||
// This configuration file is reloaded
|
||||
// - With the "ael reload" command in the CLI
|
||||
// - With the "reload" command (that reloads everything) in the CLI
|
||||
|
||||
// The "Globals" category contains global variables that can be referenced
|
||||
// in the dialplan by using the GLOBAL dialplan function:
|
||||
// ${GLOBAL(VARIABLE)}
|
||||
// ${${GLOBAL(VARIABLE)}} or ${text${GLOBAL(VARIABLE)}} or any hybrid
|
||||
// Unix/Linux environmental variables are reached with the ENV dialplan
|
||||
// function: ${ENV(VARIABLE)}
|
||||
//
|
||||
|
||||
// NOTE! NOTE! NOTE!
|
||||
// Asterisk by default will load both extensions.conf and extensions.ael files.
|
||||
// Upon loading these files the dialplans generated from both with be merged,
|
||||
// so you must make sure that you don't have any overlapping contexts or global
|
||||
// variables. If you do, then unexpected behavior may result when the data is
|
||||
// merged.
|
||||
// NOTE! NOTE! NOTE!
|
||||
|
||||
globals {
|
||||
CONSOLE-AEL="Console/dsp"; // Console interface for demo
|
||||
//CONSOLE-AEL=Zap/1;
|
||||
//CONSOLE-AEL=Phone/phone0;
|
||||
IAXINFO-AEL=guest; // IAXtel username/password
|
||||
//IAXINFO-AEL="myuser:mypass";
|
||||
OUTBOUND-TRUNK="Zap/g2"; // Trunk interface
|
||||
//
|
||||
// Note the 'g2' in the OUTBOUND-TRUNK variable above. It specifies which group (defined
|
||||
// in chan_dahdi.conf) to dial, i.e. group 2, and how to choose a channel to use in
|
||||
// the specified group. The four possible options are:
|
||||
//
|
||||
// g: select the lowest-numbered non-busy DAHDI channel
|
||||
// (aka. ascending sequential hunt group).
|
||||
// G: select the highest-numbered non-busy DAHDI channel
|
||||
// (aka. descending sequential hunt group).
|
||||
// r: use a round-robin search, starting at the next highest channel than last
|
||||
// time (aka. ascending rotary hunt group).
|
||||
// R: use a round-robin search, starting at the next lowest channel than last
|
||||
// time (aka. descending rotary hunt group).
|
||||
//
|
||||
OUTBOUND-TRUNKMSD=1; // MSD digits to strip (usually 1 or 0)
|
||||
//OUTBOUND-TRUNK2=IAX2/user:pass@provider;
|
||||
};
|
||||
|
||||
//
|
||||
// Any category other than "General" and "Globals" represent
|
||||
// extension contexts, which are collections of extensions.
|
||||
//
|
||||
// Extension names may be numbers, letters, or combinations
|
||||
// thereof. If an extension name is prefixed by a '_'
|
||||
// character, it is interpreted as a pattern rather than a
|
||||
// literal. In patterns, some characters have special meanings:
|
||||
//
|
||||
// X - any digit from 0-9
|
||||
// Z - any digit from 1-9
|
||||
// N - any digit from 2-9
|
||||
// [1235-9] - any digit in the brackets (in this example, 1,2,3,5,6,7,8,9)
|
||||
// . - wildcard, matches anything remaining (e.g. _9011. matches
|
||||
// anything starting with 9011 excluding 9011 itself)
|
||||
// ! - wildcard, causes the matching process to complete as soon as
|
||||
// it can unambiguously determine that no other matches are possible
|
||||
//
|
||||
// For example the extension _NXXXXXX would match normal 7 digit dialings,
|
||||
// while _1NXXNXXXXXX would represent an area code plus phone number
|
||||
// preceded by a one.
|
||||
//
|
||||
// Each step of an extension is ordered by priority, which must
|
||||
// always start with 1 to be considered a valid extension. The priority
|
||||
// "next" or "n" means the previous priority plus one, regardless of whether
|
||||
// the previous priority was associated with the current extension or not.
|
||||
// The priority "same" or "s" means the same as the previously specified
|
||||
// priority, again regardless of whether the previous entry was for the
|
||||
// same extension. Priorities may be immediately followed by a plus sign
|
||||
// and another integer to add that amount (most useful with 's' or 'n').
|
||||
// Priorities may then also have an alias, or label, in
|
||||
// parenthesis after their name which can be used in goto situations
|
||||
//
|
||||
// Contexts contain several lines, one for each step of each
|
||||
// extension, which can take one of two forms as listed below,
|
||||
// with the first form being preferred. One may include another
|
||||
// context in the current one as well, optionally with a
|
||||
// date and time. Included contexts are included in the order
|
||||
// they are listed.
|
||||
//
|
||||
//context name {
|
||||
// exten-name => {
|
||||
// application(arg1,arg2,...);
|
||||
//
|
||||
// Timing list for includes is
|
||||
//
|
||||
// <time range>|<days of week>|<days of month>|<months>
|
||||
//
|
||||
// includes {
|
||||
// daytime|9:00-17:00|mon-fri|*|*;
|
||||
// };
|
||||
//
|
||||
// ignorepat can be used to instruct drivers to not cancel dialtone upon
|
||||
// receipt of a particular pattern. The most commonly used example is
|
||||
// of course '9' like this:
|
||||
//
|
||||
// ignorepat => 9;
|
||||
//
|
||||
// so that dialtone remains even after dialing a 9.
|
||||
//};
|
||||
|
||||
|
||||
//
|
||||
// Sample entries for extensions.conf
|
||||
//
|
||||
//
|
||||
context ael-dundi-e164-canonical {
|
||||
//
|
||||
// List canonical entries here
|
||||
//
|
||||
// 12564286000 => &ael-std-exten(6000,IAX2/foo);
|
||||
// _125642860XX => Dial(IAX2/otherbox/${EXTEN:7});
|
||||
};
|
||||
|
||||
context ael-dundi-e164-customers {
|
||||
//
|
||||
// If you are an ITSP or Reseller, list your customers here.
|
||||
//
|
||||
//_12564286000 => Dial(SIP/customer1);
|
||||
//_12564286001 => Dial(IAX2/customer2);
|
||||
};
|
||||
|
||||
context ael-dundi-e164-via-pstn {
|
||||
//
|
||||
// If you are freely delivering calls to the PSTN, list them here
|
||||
//
|
||||
//_1256428XXXX => Dial(DAHDI/G2/${EXTEN:7}); // Expose all of 256-428
|
||||
//_1256325XXXX => Dial(DAHDI/G2/${EXTEN:7}); // Ditto for 256-325
|
||||
};
|
||||
|
||||
context ael-dundi-e164-local {
|
||||
//
|
||||
// Context to put your dundi IAX2 or SIP user in for
|
||||
// full access
|
||||
//
|
||||
includes {
|
||||
ael-dundi-e164-canonical;
|
||||
ael-dundi-e164-customers;
|
||||
ael-dundi-e164-via-pstn;
|
||||
};
|
||||
};
|
||||
|
||||
context ael-dundi-e164-switch {
|
||||
//
|
||||
// Just a wrapper for the switch
|
||||
//
|
||||
|
||||
switches {
|
||||
DUNDi/e164;
|
||||
};
|
||||
};
|
||||
|
||||
context ael-dundi-e164-lookup {
|
||||
//
|
||||
// Locally to lookup, try looking for a local E.164 solution
|
||||
// then try DUNDi if we don't have one.
|
||||
//
|
||||
includes {
|
||||
ael-dundi-e164-local;
|
||||
ael-dundi-e164-switch;
|
||||
};
|
||||
//
|
||||
};
|
||||
|
||||
//
|
||||
// DUNDi can also be implemented as a Macro instead of using
|
||||
// the Local channel driver.
|
||||
//
|
||||
macro ael-dundi-e164(exten) {
|
||||
//
|
||||
// ARG1 is the extension to Dial
|
||||
//
|
||||
goto ${exten}|1;
|
||||
return;
|
||||
};
|
||||
|
||||
//
|
||||
// Here are the entries you need to participate in the IAXTEL
|
||||
// call routing system. Most IAXTEL numbers begin with 1-700, but
|
||||
// there are exceptions. For more information, and to sign
|
||||
// up, please go to www.gnophone.com or www.iaxtel.com
|
||||
//
|
||||
context ael-iaxtel700 {
|
||||
_91700XXXXXXX => Dial(IAX2/${IAXINFO-AEL}@iaxtel.com/${EXTEN:1}@iaxtel);
|
||||
};
|
||||
|
||||
//
|
||||
// The SWITCH statement permits a server to share the dialplan with
|
||||
// another server. Use with care: Reciprocal switch statements are not
|
||||
// allowed (e.g. both A -> B and B -> A), and the switched server needs
|
||||
// to be on-line or else dialing can be severly delayed.
|
||||
//
|
||||
context ael-iaxprovider {
|
||||
switches {
|
||||
// IAX2/user:[key]@myserver/mycontext;
|
||||
};
|
||||
};
|
||||
|
||||
context ael-trunkint {
|
||||
//
|
||||
// International long distance through trunk
|
||||
//
|
||||
includes {
|
||||
ael-dundi-e164-lookup;
|
||||
};
|
||||
_9011. => {
|
||||
&ael-dundi-e164(${EXTEN:4});
|
||||
Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||
};
|
||||
};
|
||||
|
||||
context ael-trunkld {
|
||||
//
|
||||
// Long distance context accessed through trunk
|
||||
//
|
||||
includes {
|
||||
ael-dundi-e164-lookup;
|
||||
};
|
||||
_91NXXNXXXXXX => {
|
||||
&ael-dundi-e164(${EXTEN:1});
|
||||
Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||
};
|
||||
};
|
||||
|
||||
context ael-trunklocal {
|
||||
//
|
||||
// Local seven-digit dialing accessed through trunk interface
|
||||
//
|
||||
_9NXXXXXX => {
|
||||
Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||
};
|
||||
};
|
||||
|
||||
context ael-trunktollfree {
|
||||
//
|
||||
// Long distance context accessed through trunk interface
|
||||
//
|
||||
|
||||
_91800NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||
_91888NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||
_91877NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||
_91866NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||
};
|
||||
|
||||
context ael-international {
|
||||
//
|
||||
// Master context for international long distance
|
||||
//
|
||||
ignorepat => 9;
|
||||
includes {
|
||||
ael-longdistance;
|
||||
ael-trunkint;
|
||||
};
|
||||
};
|
||||
|
||||
context ael-longdistance {
|
||||
//
|
||||
// Master context for long distance
|
||||
//
|
||||
ignorepat => 9;
|
||||
includes {
|
||||
ael-local;
|
||||
ael-trunkld;
|
||||
};
|
||||
};
|
||||
|
||||
context ael-local {
|
||||
//
|
||||
// Master context for local, toll-free, and iaxtel calls only
|
||||
//
|
||||
ignorepat => 9;
|
||||
includes {
|
||||
ael-default;
|
||||
ael-trunklocal;
|
||||
ael-iaxtel700;
|
||||
ael-trunktollfree;
|
||||
ael-iaxprovider;
|
||||
};
|
||||
};
|
||||
|
||||
//
|
||||
// You can use an alternative switch type as well, to resolve
|
||||
// extensions that are not known here, for example with remote
|
||||
// IAX switching you transparently get access to the remote
|
||||
// Asterisk PBX
|
||||
//
|
||||
// switch => IAX2/user:password@bigserver/local
|
||||
//
|
||||
// An "lswitch" is like a switch but is literal, in that
|
||||
// variable substitution is not performed at load time
|
||||
// but is passed to the switch directly (presumably to
|
||||
// be substituted in the switch routine itself)
|
||||
//
|
||||
// lswitch => Loopback/12${EXTEN}@othercontext
|
||||
//
|
||||
// An "eswitch" is like a switch but the evaluation of
|
||||
// variable substitution is performed at runtime before
|
||||
// being passed to the switch routine.
|
||||
//
|
||||
// eswitch => IAX2/context@${CURSERVER}
|
||||
|
||||
|
||||
macro ael-std-exten-ael( ext , dev ) {
|
||||
Dial(${dev}/${ext},20);
|
||||
switch(${DIALSTATUS}) {
|
||||
case BUSY:
|
||||
Voicemail(${ext},b);
|
||||
break;
|
||||
default:
|
||||
Voicemail(${ext},u);
|
||||
};
|
||||
catch a {
|
||||
VoiceMailMain(${ext});
|
||||
return;
|
||||
};
|
||||
return;
|
||||
};
|
||||
|
||||
context ael-demo {
|
||||
s => {
|
||||
Wait(1);
|
||||
Answer();
|
||||
Set(TIMEOUT(digit)=5);
|
||||
Set(TIMEOUT(response)=10);
|
||||
restart:
|
||||
Background(demo-congrats);
|
||||
instructions:
|
||||
for (x=0; ${x} < 3; x=${x} + 1) {
|
||||
Background(demo-instruct);
|
||||
WaitExten();
|
||||
};
|
||||
};
|
||||
2 => {
|
||||
Background(demo-moreinfo);
|
||||
goto s|instructions;
|
||||
};
|
||||
3 => {
|
||||
Set(LANGUAGE()=fr);
|
||||
goto s|restart;
|
||||
};
|
||||
1000 => {
|
||||
goto ael-default|s|1;
|
||||
};
|
||||
500 => {
|
||||
Playback(demo-abouttotry);
|
||||
Dial(IAX2/guest@misery.digium.com/s@default);
|
||||
Playback(demo-nogo);
|
||||
goto s|instructions;
|
||||
};
|
||||
600 => {
|
||||
Playback(demo-echotest);
|
||||
Echo();
|
||||
Playback(demo-echodone);
|
||||
goto s|instructions;
|
||||
};
|
||||
_1234 => &ael-std-exten-ael(${EXTEN}, "IAX2");
|
||||
8500 => {
|
||||
VoicemailMain();
|
||||
goto s|instructions;
|
||||
};
|
||||
# => {
|
||||
Playback(demo-thanks);
|
||||
Hangup();
|
||||
};
|
||||
t => goto #|1;
|
||||
i => Playback(invalid);
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// If you wish to use AEL for your default context, remove it
|
||||
// from extensions.conf (or change its name or comment it out)
|
||||
// and then uncomment the one here.
|
||||
//
|
||||
|
||||
context ael-default {
|
||||
|
||||
// By default we include the demo. In a production system, you
|
||||
// probably don't want to have the demo there.
|
||||
|
||||
includes {
|
||||
ael-demo;
|
||||
};
|
||||
//
|
||||
// Extensions like the two below can be used for FWD, Nikotel, sipgate etc.
|
||||
// Note that you must have a [sipprovider] section in sip.conf whereas
|
||||
// the otherprovider.net example does not require such a peer definition
|
||||
//
|
||||
//_41X. => Dial(SIP/${EXTEN:2}@sipprovider,,r);
|
||||
//_42X. => Dial(SIP/user:passwd@${EXTEN:2}@otherprovider.net,30,rT);
|
||||
|
||||
// Real extensions would go here. Generally you want real extensions to be
|
||||
// 4 or 5 digits long (although there is no such requirement) and start with a
|
||||
// single digit that is fairly large (like 6 or 7) so that you have plenty of
|
||||
// room to overlap extensions and menu options without conflict. You can alias
|
||||
// them with names, too, and use global variables
|
||||
|
||||
// 6245 => {
|
||||
// hint(SIP/Grandstream1&SIP/Xlite1,Joe Schmoe); // Channel hints for presence
|
||||
// Dial(SIP/Grandstream1,20,rt); // permit transfer
|
||||
// Dial(${HINT}/5245},20,rtT); // Use hint as listed
|
||||
// switch(${DIALSTATUS}) {
|
||||
// case BUSY:
|
||||
// Voicemail(6245,b);
|
||||
// return;
|
||||
// default:
|
||||
// Voicemail(6245,u);
|
||||
// return;
|
||||
// };
|
||||
// };
|
||||
|
||||
// 6361 => Dial(IAX2/JaneDoe,,rm); // ring without time limit
|
||||
// 6389 => Dial(MGCP/aaln/1@192.168.0.14);
|
||||
// 6394 => Dial(Local/6275/n); // this will dial ${MARK}
|
||||
|
||||
// 6275 => &ael-stdexten(6275,${MARK}); // assuming ${MARK} is something like DAHDI/2
|
||||
// mark => goto 6275|1; // alias mark to 6275
|
||||
// 6536 => &ael-stdexten(6236,${WIL}); // Ditto for wil
|
||||
// wil => goto 6236|1;
|
||||
//
|
||||
// Some other handy things are an extension for checking voicemail via
|
||||
// voicemailmain
|
||||
//
|
||||
// 8500 => {
|
||||
// VoicemailMain();
|
||||
// Hangup();
|
||||
// };
|
||||
//
|
||||
// Or a conference room (you'll need to edit meetme.conf to enable this room)
|
||||
//
|
||||
// 8600 => Meetme(1234);
|
||||
//
|
||||
// Or playing an announcement to the called party, as soon it answers
|
||||
//
|
||||
// 8700 => Dial(${MARK},30,A(/path/to/my/announcemsg))
|
||||
//
|
||||
// For more information on applications, just type "show applications" at your
|
||||
// friendly Asterisk CLI prompt.
|
||||
//
|
||||
// 'show application <command>' will show details of how you
|
||||
// use that particular application in this file, the dial plan.
|
||||
//
|
||||
}
|
834
asterisk/extensions.conf
Normal file
834
asterisk/extensions.conf
Normal file
@ -0,0 +1,834 @@
|
||||
; extensions.conf - the Asterisk dial plan
|
||||
;
|
||||
; Static extension configuration file, used by
|
||||
; the pbx_config module. This is where you configure all your
|
||||
; inbound and outbound calls in Asterisk.
|
||||
;
|
||||
; This configuration file is reloaded
|
||||
; - With the "dialplan reload" command in the CLI
|
||||
; - With the "reload" command (that reloads everything) in the CLI
|
||||
|
||||
;
|
||||
; The "General" category is for certain variables.
|
||||
;
|
||||
[general]
|
||||
;
|
||||
; If static is set to no, or omitted, then the pbx_config will rewrite
|
||||
; this file when extensions are modified. Remember that all comments
|
||||
; made in the file will be lost when that happens.
|
||||
;
|
||||
; XXX Not yet implemented XXX
|
||||
;
|
||||
static=yes
|
||||
;
|
||||
; if static=yes and writeprotect=no, you can save dialplan by
|
||||
; CLI command "dialplan save" too
|
||||
;
|
||||
writeprotect=no
|
||||
;
|
||||
; If autofallthrough is set, then if an extension runs out of
|
||||
; things to do, it will terminate the call with BUSY, CONGESTION
|
||||
; or HANGUP depending on Asterisk's best guess. This is the default.
|
||||
;
|
||||
; If autofallthrough is not set, then if an extension runs out of
|
||||
; things to do, Asterisk will wait for a new extension to be dialed
|
||||
; (this is the original behavior of Asterisk 1.0 and earlier).
|
||||
;
|
||||
;autofallthrough=no
|
||||
;
|
||||
;
|
||||
;
|
||||
; If extenpatternmatchnew is set (true, yes, etc), then a new algorithm that uses
|
||||
; a Trie to find the best matching pattern is used. In dialplans
|
||||
; with more than about 20-40 extensions in a single context, this
|
||||
; new algorithm can provide a noticeable speedup.
|
||||
; With 50 extensions, the speedup is 1.32x
|
||||
; with 88 extensions, the speedup is 2.23x
|
||||
; with 138 extensions, the speedup is 3.44x
|
||||
; with 238 extensions, the speedup is 5.8x
|
||||
; with 438 extensions, the speedup is 10.4x
|
||||
; With 1000 extensions, the speedup is ~25x
|
||||
; with 10,000 extensions, the speedup is 374x
|
||||
; Basically, the new algorithm provides a flat response
|
||||
; time, no matter the number of extensions.
|
||||
;
|
||||
; By default, the old pattern matcher is used.
|
||||
;
|
||||
; ****This is a new feature! *********************
|
||||
; The new pattern matcher is for the brave, the bold, and
|
||||
; the desperate. If you have large dialplans (more than about 50 extensions
|
||||
; in a context), and/or high call volume, you might consider setting
|
||||
; this value to "yes" !!
|
||||
; Please, if you try this out, and are forced to return to the
|
||||
; old pattern matcher, please report your reasons in a bug report
|
||||
; on bugs.digium.com. We have made good progress in providing something
|
||||
; compatible with the old matcher; help us finish the job!
|
||||
;
|
||||
; This value can be switched at runtime using the cli command "dialplan set extenpatternmatchnew true"
|
||||
; or "dialplan set extenpatternmatchnew false", so you can experiment to your hearts content.
|
||||
;
|
||||
;extenpatternmatchnew=no
|
||||
;
|
||||
; If clearglobalvars is set, global variables will be cleared
|
||||
; and reparsed on a dialplan reload, or Asterisk reload.
|
||||
;
|
||||
; If clearglobalvars is not set, then global variables will persist
|
||||
; through reloads, and even if deleted from the extensions.conf or
|
||||
; one of its included files, will remain set to the previous value.
|
||||
;
|
||||
; NOTE: A complication sets in, if you put your global variables into
|
||||
; the AEL file, instead of the extensions.conf file. With clearglobalvars
|
||||
; set, a "reload" will often leave the globals vars cleared, because it
|
||||
; is not unusual to have extensions.conf (which will have no globals)
|
||||
; load after the extensions.ael file (where the global vars are stored).
|
||||
; So, with "reload" in this particular situation, first the AEL file will
|
||||
; clear and then set all the global vars, then, later, when the extensions.conf
|
||||
; file is loaded, the global vars are all cleared, and then not set, because
|
||||
; they are not stored in the extensions.conf file.
|
||||
;
|
||||
clearglobalvars=no
|
||||
;
|
||||
; User context is where entries from users.conf are registered. The
|
||||
; default value is 'default'
|
||||
;
|
||||
;userscontext=default
|
||||
;
|
||||
; You can include other config files, use the #include command
|
||||
; (without the ';'). Note that this is different from the "include" command
|
||||
; that includes contexts within other contexts. The #include command works
|
||||
; in all asterisk configuration files.
|
||||
;#include "filename.conf"
|
||||
;#include <filename.conf>
|
||||
;#include filename.conf
|
||||
;
|
||||
; You can execute a program or script that produces config files, and they
|
||||
; will be inserted where you insert the #exec command. The #exec command
|
||||
; works on all asterisk configuration files. However, you will need to
|
||||
; activate them within asterisk.conf with the "execincludes" option. They
|
||||
; are otherwise considered a security risk.
|
||||
;#exec /opt/bin/build-extra-contexts.sh
|
||||
;#exec /opt/bin/build-extra-contexts.sh --foo="bar"
|
||||
;#exec </opt/bin/build-extra-contexts.sh --foo="bar">
|
||||
;#exec "/opt/bin/build-extra-contexts.sh --foo=\"bar\""
|
||||
;
|
||||
|
||||
; The "Globals" category contains global variables that can be referenced
|
||||
; in the dialplan with the GLOBAL dialplan function:
|
||||
; ${GLOBAL(VARIABLE)}
|
||||
; ${${GLOBAL(VARIABLE)}} or ${text${GLOBAL(VARIABLE)}} or any hybrid
|
||||
; Unix/Linux environmental variables can be reached with the ENV dialplan
|
||||
; function: ${ENV(VARIABLE)}
|
||||
;
|
||||
[globals]
|
||||
CONSOLE=Console/dsp ; Console interface for demo
|
||||
;CONSOLE=DAHDI/1
|
||||
;CONSOLE=Phone/phone0
|
||||
IAXINFO=guest ; IAXtel username/password
|
||||
;IAXINFO=myuser:mypass
|
||||
TRUNK=DAHDI/G2 ; Trunk interface
|
||||
;
|
||||
; Note the 'G2' in the TRUNK variable above. It specifies which group (defined
|
||||
; in chan_dahdi.conf) to dial, i.e. group 2, and how to choose a channel to use
|
||||
; in the specified group. The four possible options are:
|
||||
;
|
||||
; g: select the lowest-numbered non-busy DAHDI channel
|
||||
; (aka. ascending sequential hunt group).
|
||||
; G: select the highest-numbered non-busy DAHDI channel
|
||||
; (aka. descending sequential hunt group).
|
||||
; r: use a round-robin search, starting at the next highest channel than last
|
||||
; time (aka. ascending rotary hunt group).
|
||||
; R: use a round-robin search, starting at the next lowest channel than last
|
||||
; time (aka. descending rotary hunt group).
|
||||
;
|
||||
TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0)
|
||||
;TRUNK=IAX2/user:pass@provider
|
||||
|
||||
;FREENUMDOMAIN=mydomain.com ; domain to send on outbound
|
||||
; freenum calls (uses outbound-freenum
|
||||
; context)
|
||||
|
||||
;
|
||||
; WARNING WARNING WARNING WARNING
|
||||
; If you load any other extension configuration engine, such as pbx_ael.so,
|
||||
; your global variables may be overridden by that file. Please take care to
|
||||
; use only one location to set global variables, and you will likely save
|
||||
; yourself a ton of grief.
|
||||
; WARNING WARNING WARNING WARNING
|
||||
;
|
||||
; Any category other than "General" and "Globals" represent
|
||||
; extension contexts, which are collections of extensions.
|
||||
;
|
||||
; Extension names may be numbers, letters, or combinations
|
||||
; thereof. If an extension name is prefixed by a '_'
|
||||
; character, it is interpreted as a pattern rather than a
|
||||
; literal. In patterns, some characters have special meanings:
|
||||
;
|
||||
; X - any digit from 0-9
|
||||
; Z - any digit from 1-9
|
||||
; N - any digit from 2-9
|
||||
; [1235-9] - any digit in the brackets (in this example, 1,2,3,5,6,7,8,9)
|
||||
; . - wildcard, matches anything remaining (e.g. _9011. matches
|
||||
; anything starting with 9011 excluding 9011 itself)
|
||||
; ! - wildcard, causes the matching process to complete as soon as
|
||||
; it can unambiguously determine that no other matches are possible
|
||||
;
|
||||
; For example, the extension _NXXXXXX would match normal 7 digit dialings,
|
||||
; while _1NXXNXXXXXX would represent an area code plus phone number
|
||||
; preceded by a one.
|
||||
;
|
||||
; Each step of an extension is ordered by priority, which must always start
|
||||
; with 1 to be considered a valid extension. The priority "next" or "n" means
|
||||
; the previous priority plus one, regardless of whether the previous priority
|
||||
; was associated with the current extension or not. The priority "same" or "s"
|
||||
; means the same as the previously specified priority, again regardless of
|
||||
; whether the previous entry was for the same extension. Priorities may be
|
||||
; immediately followed by a plus sign and another integer to add that amount
|
||||
; (most useful with 's' or 'n'). Priorities may then also have an alias, or
|
||||
; label, in parentheses after their name which can be used in goto situations.
|
||||
;
|
||||
; Contexts contain several lines, one for each step of each extension. One may
|
||||
; include another context in the current one as well, optionally with a date
|
||||
; and time. Included contexts are included in the order they are listed.
|
||||
; Switches may also be included within a context. The order of matching within
|
||||
; a context is always exact extensions, pattern match extensions, includes, and
|
||||
; switches. Includes are always processed depth-first. So for example, if you
|
||||
; would like a switch "A" to match before context "B", simply put switch "A" in
|
||||
; an included context "C", where "C" is included in your original context
|
||||
; before "B".
|
||||
;
|
||||
;[context]
|
||||
;exten => someexten,{priority|label{+|-}offset}[(alias)],application(arg1,arg2,...)
|
||||
;
|
||||
; Timing list for includes is
|
||||
;
|
||||
; <time range>,<days of week>,<days of month>,<months>[,<timezone>]
|
||||
;
|
||||
; Note that ranges may be specified to wrap around the ends. Also, minutes are
|
||||
; fine-grained only down to the closest even minute.
|
||||
;
|
||||
;include => daytime,9:00-17:00,mon-fri,*,*
|
||||
;include => weekend,*,sat-sun,*,*
|
||||
;include => weeknights,17:02-8:58,mon-fri,*,*
|
||||
;
|
||||
; ignorepat can be used to instruct drivers to not cancel dialtone upon receipt
|
||||
; of a particular pattern. The most commonly used example is of course '9'
|
||||
; like this:
|
||||
;
|
||||
;ignorepat => 9
|
||||
;
|
||||
; so that dialtone remains even after dialing a 9. Please note that ignorepat
|
||||
; only works with channels which receive dialtone from the PBX, such as DAHDI,
|
||||
; Phone, and VPB. Other channels, such as SIP and MGCP, which generate their
|
||||
; own dialtone and converse with the PBX only after a number is complete, are
|
||||
; generally unaffected by ignorepat (unless DISA or another method is used to
|
||||
; generate a dialtone after answering the channel).
|
||||
;
|
||||
|
||||
;
|
||||
; Sample entries for extensions.conf
|
||||
;
|
||||
;
|
||||
[dundi-e164-canonical]
|
||||
;include => stdexten
|
||||
;
|
||||
; List canonical entries here
|
||||
;
|
||||
;exten => 12564286000,1,Gosub(6000,stdexten(IAX2/foo))
|
||||
;exten => 12564286000,n,Goto(default,s,1) ; exited Voicemail
|
||||
;exten => _125642860XX,1,Dial(IAX2/otherbox/${EXTEN:7})
|
||||
|
||||
[dundi-e164-customers]
|
||||
;
|
||||
; If you are an ITSP or Reseller, list your customers here.
|
||||
;
|
||||
;exten => _12564286000,1,Dial(SIP/customer1)
|
||||
;exten => _12564286001,1,Dial(IAX2/customer2)
|
||||
|
||||
[dundi-e164-via-pstn]
|
||||
;
|
||||
; If you are freely delivering calls to the PSTN, list them here
|
||||
;
|
||||
;exten => _1256428XXXX,1,Dial(DAHDI/G2/${EXTEN:7}) ; Expose all of 256-428
|
||||
;exten => _1256325XXXX,1,Dial(DAHDI/G2/${EXTEN:7}) ; Ditto for 256-325
|
||||
|
||||
[dundi-e164-local]
|
||||
;
|
||||
; Context to put your dundi IAX2 or SIP user in for
|
||||
; full access
|
||||
;
|
||||
include => dundi-e164-canonical
|
||||
include => dundi-e164-customers
|
||||
include => dundi-e164-via-pstn
|
||||
|
||||
[dundi-e164-switch]
|
||||
;
|
||||
; Just a wrapper for the switch
|
||||
;
|
||||
switch => DUNDi/e164
|
||||
|
||||
[dundi-e164-lookup]
|
||||
;
|
||||
; Locally to lookup, try looking for a local E.164 solution
|
||||
; then try DUNDi if we don't have one.
|
||||
;
|
||||
include => dundi-e164-local
|
||||
include => dundi-e164-switch
|
||||
;
|
||||
; DUNDi can also be implemented as a Macro instead of using
|
||||
; the Local channel driver.
|
||||
;
|
||||
[macro-dundi-e164]
|
||||
;
|
||||
; ARG1 is the extension to Dial
|
||||
;
|
||||
; Extension "s" is not a wildcard extension that matches "anything".
|
||||
; In macros, it is the start extension. In most other cases,
|
||||
; you have to goto "s" to execute that extension.
|
||||
;
|
||||
; For wildcard matches, see above - all pattern matches start with
|
||||
; an underscore.
|
||||
exten => s,1,Goto(${ARG1},1)
|
||||
include => dundi-e164-lookup
|
||||
|
||||
;
|
||||
; Here are the entries you need to participate in the IAXTEL
|
||||
; call routing system. Most IAXTEL numbers begin with 1-700, but
|
||||
; there are exceptions. For more information, and to sign
|
||||
; up, please go to www.gnophone.com or www.iaxtel.com
|
||||
;
|
||||
[iaxtel700]
|
||||
exten => _91700XXXXXXX,1,Dial(IAX2/${GLOBAL(IAXINFO)}@iaxtel.com/${EXTEN:1}@iaxtel)
|
||||
|
||||
;
|
||||
; The SWITCH statement permits a server to share the dialplan with
|
||||
; another server. Use with care: Reciprocal switch statements are not
|
||||
; allowed (e.g. both A -> B and B -> A), and the switched server needs
|
||||
; to be on-line or else dialing can be severly delayed.
|
||||
;
|
||||
[iaxprovider]
|
||||
;switch => IAX2/user:[key]@myserver/mycontext
|
||||
|
||||
[trunkint]
|
||||
;
|
||||
; International long distance through trunk
|
||||
;
|
||||
exten => _9011.,1,Macro(dundi-e164,${EXTEN:4})
|
||||
exten => _9011.,n,Dial(${GLOBAL(TRUNK)}/${FILTER(0-9,${EXTEN:${GLOBAL(TRUNKMSD)}})})
|
||||
|
||||
[trunkld]
|
||||
;
|
||||
; Long distance context accessed through trunk
|
||||
;
|
||||
exten => _91NXXNXXXXXX,1,Macro(dundi-e164,${EXTEN:1})
|
||||
exten => _91NXXNXXXXXX,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
|
||||
|
||||
[trunklocal]
|
||||
;
|
||||
; Local seven-digit dialing accessed through trunk interface
|
||||
;
|
||||
exten => _9NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
|
||||
|
||||
[trunktollfree]
|
||||
;
|
||||
; Long distance context accessed through trunk interface
|
||||
;
|
||||
exten => _91800NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
|
||||
exten => _91888NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
|
||||
exten => _91877NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
|
||||
exten => _91866NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
|
||||
|
||||
[international]
|
||||
;
|
||||
; Master context for international long distance
|
||||
;
|
||||
ignorepat => 9
|
||||
include => longdistance
|
||||
include => trunkint
|
||||
|
||||
[longdistance]
|
||||
;
|
||||
; Master context for long distance
|
||||
;
|
||||
ignorepat => 9
|
||||
include => local
|
||||
include => trunkld
|
||||
|
||||
[local]
|
||||
;
|
||||
; Master context for local, toll-free, and iaxtel calls only
|
||||
;
|
||||
ignorepat => 9
|
||||
include => default
|
||||
include => trunklocal
|
||||
include => iaxtel700
|
||||
include => trunktollfree
|
||||
include => iaxprovider
|
||||
|
||||
;Include parkedcalls (or the context you define in features conf)
|
||||
;to enable call parking.
|
||||
include => parkedcalls
|
||||
;
|
||||
; You can use an alternative switch type as well, to resolve
|
||||
; extensions that are not known here, for example with remote
|
||||
; IAX switching you transparently get access to the remote
|
||||
; Asterisk PBX
|
||||
;
|
||||
; switch => IAX2/user:password@bigserver/local
|
||||
;
|
||||
; An "lswitch" is like a switch but is literal, in that
|
||||
; variable substitution is not performed at load time
|
||||
; but is passed to the switch directly (presumably to
|
||||
; be substituted in the switch routine itself)
|
||||
;
|
||||
; lswitch => Loopback/12${EXTEN}@othercontext
|
||||
;
|
||||
; An "eswitch" is like a switch but the evaluation of
|
||||
; variable substitution is performed at runtime before
|
||||
; being passed to the switch routine.
|
||||
;
|
||||
; eswitch => IAX2/context@${CURSERVER}
|
||||
|
||||
; The following two contexts are a template to enable the ability to dial
|
||||
; ISN numbers. For more information about what an ISN number is, please see
|
||||
; http://www.freenum.org.
|
||||
;
|
||||
; This is the dialing hook. use:
|
||||
; include => outbound-freenum
|
||||
|
||||
[outbound-freenum]
|
||||
; We'll add more digits as needed. The purpose is to dial things
|
||||
; like extension numbers at domains (ITAD number) so we're matching
|
||||
; on lengths of 1 through 6 prior to the separator (the asterisk [*])
|
||||
;
|
||||
exten => _X*X!,1,Goto(outbound-freenum2,${EXTEN},1)
|
||||
exten => _XX*X!,1,Goto(outbound-freenum2,${EXTEN},1)
|
||||
exten => _XXX*X!,1,Goto(outbound-freenum2,${EXTEN},1)
|
||||
exten => _XXXX*X!,1,Goto(outbound-freenum2,${EXTEN},1)
|
||||
exten => _XXXXX*X!,1,Goto(outbound-freenum2,${EXTEN},1)
|
||||
exten => _XXXXXX*X!,1,Goto(outbound-freenum2,${EXTEN},1)
|
||||
|
||||
[outbound-freenum2]
|
||||
; This is the handler which performs the dialing logic. It is called
|
||||
; from the [outbound-freenum] context
|
||||
;
|
||||
exten => _X!,1,Verbose(2,Performing ISN lookup for ${EXTEN})
|
||||
same => n,Set(SUFFIX=${CUT(EXTEN,*,2-)}) ; make sure the suffix is all digits as well
|
||||
same => n,GotoIf($["${FILTER(0-9,${SUFFIX})}" != "${SUFFIX}"]?fn-CONGESTION,1)
|
||||
; filter out bad characters per the README-SERIOUSLY.best-practices.txt document
|
||||
same => n,Set(TIMEOUT(absolute)=10800)
|
||||
same => n,Set(isnresult=${ENUMLOOKUP(${EXTEN},sip,,1,freenum.org)}) ; perform our lookup with freenum.org
|
||||
same => n,GotoIf($["${isnresult}" != ""]?from)
|
||||
same => n,Set(DIALSTATUS=CONGESTION)
|
||||
same => n,Goto(fn-CONGESTION,1)
|
||||
same => n(from),Set(__SIPFROMUSER=${CALLERID(num)})
|
||||
same => n,GotoIf($["${GLOBAL(FREENUMDOMAIN)}" = ""]?dial) ; check if we set the FREENUMDOMAIN global variable in [global]
|
||||
same => n,Set(__SIPFROMDOMAIN=${GLOBAL(FREENUMDOMAIN)}) ; if we did set it, then we'll use it for our outbound dialing domain
|
||||
same => n(dial),Dial(SIP/${isnresult},40)
|
||||
same => n,Goto(fn-${DIALSTATUS},1)
|
||||
|
||||
exten => fn-BUSY,1,Busy()
|
||||
|
||||
exten => _f[n]-.,1,NoOp(ISN: ${DIALSTATUS})
|
||||
same => n,Congestion()
|
||||
|
||||
[macro-trunkdial]
|
||||
;
|
||||
; Standard trunk dial macro (hangs up on a dialstatus that should
|
||||
; terminate call)
|
||||
; ${ARG1} - What to dial
|
||||
;
|
||||
exten => s,1,Dial(${ARG1})
|
||||
exten => s,n,Goto(s-${DIALSTATUS},1)
|
||||
exten => s-NOANSWER,1,Hangup
|
||||
exten => s-BUSY,1,Hangup
|
||||
exten => _s-.,1,NoOp
|
||||
|
||||
[stdexten]
|
||||
;
|
||||
; Standard extension subroutine:
|
||||
; ${EXTEN} - Extension
|
||||
; ${ARG1} - Device(s) to ring
|
||||
; ${ARG2} - Optional context in Voicemail
|
||||
;
|
||||
; Note that the current version will drop through to the next priority in the
|
||||
; case of their pressing '#'. This gives more flexibility in what do to next:
|
||||
; you can prompt for a new extension, or drop the call, or send them to a
|
||||
; general delivery mailbox, or...
|
||||
;
|
||||
; The use of the LOCAL() function is purely for convenience. Any variable
|
||||
; initially declared as LOCAL() will disappear when the innermost Gosub context
|
||||
; in which it was declared returns. Note also that you can declare a LOCAL()
|
||||
; variable on top of an existing variable, and its value will revert to its
|
||||
; previous value (before being declared as LOCAL()) upon Return.
|
||||
;
|
||||
exten => _X.,50000(stdexten),NoOp(Start stdexten)
|
||||
exten => _X.,n,Set(LOCAL(ext)=${EXTEN})
|
||||
exten => _X.,n,Set(LOCAL(dev)=${ARG1})
|
||||
exten => _X.,n,Set(LOCAL(cntx)=${ARG2})
|
||||
exten => _X.,n,Set(LOCAL(mbx)=${ext}${IF($[!${ISNULL(${cntx})}]?@${cntx})})
|
||||
exten => _X.,n,Dial(${dev},20) ; Ring the interface, 20 seconds maximum
|
||||
exten => _X.,n,Goto(stdexten-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
|
||||
|
||||
exten => stdexten-NOANSWER,1,Voicemail(${mbx},u) ; If unavailable, send to voicemail w/ unavail announce
|
||||
exten => stdexten-NOANSWER,n,Return() ; If they press #, return to start
|
||||
|
||||
exten => stdexten-BUSY,1,Voicemail(${mbx},b) ; If busy, send to voicemail w/ busy announce
|
||||
exten => stdexten-BUSY,n,Return() ; If they press #, return to start
|
||||
|
||||
exten => _stde[x]te[n]-.,1,Goto(stdexten-NOANSWER,1) ; Treat anything else as no answer
|
||||
|
||||
exten => a,1,VoicemailMain(${mbx}) ; If they press *, send the user into VoicemailMain
|
||||
exten => a,n,Return()
|
||||
|
||||
[stdPrivacyexten]
|
||||
;
|
||||
; Standard extension subroutine:
|
||||
; ${ARG1} - Extension
|
||||
; ${ARG2} - Device(s) to ring
|
||||
; ${ARG3} - Optional DONTCALL context name to jump to (assumes the s,1 extension-priority)
|
||||
; ${ARG4} - Optional TORTURE context name to jump to (assumes the s,1 extension-priority)`
|
||||
; ${ARG5} - Context in voicemail (if empty, then "default")
|
||||
;
|
||||
; See above note in stdexten about priority handling on exit.
|
||||
;
|
||||
exten => _X.,60000(stdPrivacyexten),NoOp(Start stdPrivacyexten)
|
||||
exten => _X.,n,Set(LOCAL(ext)=${ARG1})
|
||||
exten => _X.,n,Set(LOCAL(dev)=${ARG2})
|
||||
exten => _X.,n,Set(LOCAL(dontcntx)=${ARG3})
|
||||
exten => _X.,n,Set(LOCAL(tortcntx)=${ARG4})
|
||||
exten => _X.,n,Set(LOCAL(cntx)=${ARG5})
|
||||
|
||||
exten => _X.,n,Set(LOCAL(mbx)="${ext}"$["${cntx}" ? "@${cntx}" :: ""])
|
||||
exten => _X.,n,Dial(${dev},20,p) ; Ring the interface, 20 seconds maximum, call screening
|
||||
; option (or use P for databased call _X.creening)
|
||||
exten => _X.,n,Goto(stdexten-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
|
||||
|
||||
exten => stdexten-NOANSWER,1,Voicemail(${mbx},u) ; If unavailable, send to voicemail w/ unavail announce
|
||||
exten => stdexten-NOANSWER,n,NoOp(Finish stdPrivacyexten NOANSWER)
|
||||
exten => stdexten-NOANSWER,n,Return() ; If they press #, return to start
|
||||
|
||||
exten => stdexten-BUSY,1,Voicemail(${mbx},b) ; If busy, send to voicemail w/ busy announce
|
||||
exten => stdexten-BUSY,n,NoOp(Finish stdPrivacyexten BUSY)
|
||||
exten => stdexten-BUSY,n,Return() ; If they press #, return to start
|
||||
|
||||
exten => stdexten-DONTCALL,1,Goto(${dontcntx},s,1) ; Callee chose to send this call to a polite "Don't call again" script.
|
||||
|
||||
exten => stdexten-TORTURE,1,Goto(${tortcntx},s,1) ; Callee chose to send this call to a telemarketer torture script.
|
||||
|
||||
exten => _stde[x]te[n]-.,1,Goto(stdexten-NOANSWER,1) ; Treat anything else as no answer
|
||||
|
||||
exten => a,1,VoicemailMain(${mbx}) ; If they press *, send the user into VoicemailMain
|
||||
exten => a,n,Return
|
||||
|
||||
[macro-page];
|
||||
;
|
||||
; Paging macro:
|
||||
;
|
||||
; Check to see if SIP device is in use and DO NOT PAGE if they are
|
||||
;
|
||||
; ${ARG1} - Device to page
|
||||
|
||||
exten => s,1,ChanIsAvail(${ARG1},s) ; s is for ANY call
|
||||
exten => s,n,GoToIf($[${AVAILORIGCHAN} = ""]?fail:autoanswer)
|
||||
exten => s,n(autoanswer),Set(_ALERT_INFO="RA") ; This is for the PolyComs
|
||||
exten => s,n,SIPAddHeader(Call-Info: Answer-After=0) ; This is for the Grandstream, Snoms, and Others
|
||||
exten => s,n,NoOp() ; Add others here and Post on the Wiki!!!!
|
||||
exten => s,n,Dial(${ARG1})
|
||||
exten => s,n(fail),Hangup
|
||||
|
||||
|
||||
[demo]
|
||||
include => stdexten
|
||||
;
|
||||
; We start with what to do when a call first comes in.
|
||||
;
|
||||
exten => s,1,Wait(1) ; Wait a second, just for fun
|
||||
exten => s,n,Answer ; Answer the line
|
||||
exten => s,n,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
|
||||
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
|
||||
exten => s,n(restart),BackGround(demo-congrats) ; Play a congratulatory message
|
||||
exten => s,n(instruct),BackGround(demo-instruct) ; Play some instructions
|
||||
exten => s,n,WaitExten ; Wait for an extension to be dialed.
|
||||
|
||||
exten => 2,1,BackGround(demo-moreinfo) ; Give some more information.
|
||||
exten => 2,n,Goto(s,instruct)
|
||||
|
||||
exten => 3,1,Set(LANGUAGE()=fr) ; Set language to french
|
||||
exten => 3,n,Goto(s,restart) ; Start with the congratulations
|
||||
|
||||
exten => 1000,1,Goto(default,s,1)
|
||||
;
|
||||
; We also create an example user, 1234, who is on the console and has
|
||||
; voicemail, etc.
|
||||
;
|
||||
exten => 1234,1,Playback(transfer,skip) ; "Please hold while..."
|
||||
; (but skip if channel is not up)
|
||||
exten => 1234,n,Gosub(${EXTEN},stdexten(${GLOBAL(CONSOLE)}))
|
||||
exten => 1234,n,Goto(default,s,1) ; exited Voicemail
|
||||
|
||||
exten => 1235,1,Voicemail(1234,u) ; Right to voicemail
|
||||
|
||||
exten => 1236,1,Dial(Console/dsp) ; Ring forever
|
||||
exten => 1236,n,Voicemail(1234,b) ; Unless busy
|
||||
|
||||
;
|
||||
; # for when they're done with the demo
|
||||
;
|
||||
exten => #,1,Playback(demo-thanks) ; "Thanks for trying the demo"
|
||||
exten => #,n,Hangup ; Hang them up.
|
||||
|
||||
;
|
||||
; A timeout and "invalid extension rule"
|
||||
;
|
||||
exten => t,1,Goto(#,1) ; If they take too long, give up
|
||||
exten => i,1,Playback(invalid) ; "That's not valid, try again"
|
||||
|
||||
;
|
||||
; Create an extension, 500, for dialing the
|
||||
; Asterisk demo.
|
||||
;
|
||||
exten => 500,1,Playback(demo-abouttotry); Let them know what's going on
|
||||
exten => 500,n,Dial(IAX2/guest@pbx.digium.com/s@default) ; Call the Asterisk demo
|
||||
exten => 500,n,Playback(demo-nogo) ; Couldn't connect to the demo site
|
||||
exten => 500,n,Goto(s,6) ; Return to the start over message.
|
||||
|
||||
;
|
||||
; Create an extension, 600, for evaluating echo latency.
|
||||
;
|
||||
exten => 600,1,Playback(demo-echotest) ; Let them know what's going on
|
||||
exten => 600,n,Echo ; Do the echo test
|
||||
exten => 600,n,Playback(demo-echodone) ; Let them know it's over
|
||||
exten => 600,n,Goto(s,6) ; Start over
|
||||
|
||||
;
|
||||
; You can use the Macro Page to intercom a individual user
|
||||
exten => 76245,1,Macro(page,SIP/Grandstream1)
|
||||
; or if your peernames are the same as extensions
|
||||
exten => _7XXX,1,Macro(page,SIP/${EXTEN})
|
||||
;
|
||||
;
|
||||
; System Wide Page at extension 7999
|
||||
;
|
||||
exten => 7999,1,Set(TIMEOUT(absolute)=60)
|
||||
exten => 7999,2,Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n,d)
|
||||
|
||||
; Give voicemail at extension 8500
|
||||
;
|
||||
exten => 8500,1,VoicemailMain
|
||||
exten => 8500,n,Goto(s,6)
|
||||
;
|
||||
; Here's what a phone entry would look like (IXJ for example)
|
||||
;
|
||||
;exten => 1265,1,Dial(Phone/phone0,15)
|
||||
;exten => 1265,n,Goto(s,5)
|
||||
|
||||
;
|
||||
; The page context calls up the page macro that sets variables needed for auto-answer
|
||||
; It is in is own context to make calling it from the Page() application as simple as
|
||||
; Local/{peername}@page
|
||||
;
|
||||
[page]
|
||||
exten => _X.,1,Macro(page,SIP/${EXTEN})
|
||||
|
||||
;[mainmenu]
|
||||
;
|
||||
; Example "main menu" context with submenu
|
||||
;
|
||||
;exten => s,1,Answer
|
||||
;exten => s,n,Background(thanks) ; "Thanks for calling press 1 for sales, 2 for support, ..."
|
||||
;exten => s,n,WaitExten
|
||||
;exten => 1,1,Goto(submenu,s,1)
|
||||
;exten => 2,1,Hangup
|
||||
;include => default
|
||||
;
|
||||
;[submenu]
|
||||
;exten => s,1,Ringing ; Make them comfortable with 2 seconds of ringback
|
||||
;exten => s,n,Wait,2
|
||||
;exten => s,n,Background(submenuopts) ; "Thanks for calling the sales department. Press 1 for steve, 2 for..."
|
||||
;exten => s,n,WaitExten
|
||||
;exten => 1,1,Goto(default,steve,1)
|
||||
;exten => 2,1,Goto(default,mark,2)
|
||||
|
||||
[default]
|
||||
;
|
||||
; By default we include the demo. In a production system, you
|
||||
; probably don't want to have the demo there.
|
||||
;
|
||||
include => demo
|
||||
|
||||
;
|
||||
; An extension like the one below can be used for FWD, Nikotel, sipgate etc.
|
||||
; Note that you must have a [sipprovider] section in sip.conf
|
||||
;
|
||||
;exten => _41X.,1,Dial(SIP/${FILTER(0-9,${EXTEN:2})}@sipprovider,,r)
|
||||
|
||||
; Real extensions would go here. Generally you want real extensions to be
|
||||
; 4 or 5 digits long (although there is no such requirement) and start with a
|
||||
; single digit that is fairly large (like 6 or 7) so that you have plenty of
|
||||
; room to overlap extensions and menu options without conflict. You can alias
|
||||
; them with names, too, and use global variables
|
||||
|
||||
;exten => 6245,hint,SIP/Grandstream1&SIP/Xlite1(Joe Schmoe) ; Channel hints for presence
|
||||
;exten => 6245,1,Dial(SIP/Grandstream1,20,rt) ; permit transfer
|
||||
;exten => 6245,n(dial),Dial(${HINT},20,rtT) ; Use hint as listed
|
||||
;exten => 6245,n,Voicemail(6245,u) ; Voicemail (unavailable)
|
||||
;exten => 6245,s+1,Hangup ; s+1, same as n
|
||||
;exten => 6245,dial+101,Voicemail(6245,b) ; Voicemail (busy)
|
||||
;exten => 6361,1,Dial(IAX2/JaneDoe,,rm) ; ring without time limit
|
||||
;exten => 6389,1,Dial(MGCP/aaln/1@192.168.0.14)
|
||||
;exten => 6390,1,Dial(JINGLE/caller/callee) ; Dial via jingle using labels
|
||||
;exten => 6391,1,Dial(JINGLE/asterisk@digium.com/mogorman@astjab.org) ;Dial via jingle using asterisk as the transport and calling mogorman.
|
||||
;exten => 6394,1,Dial(Local/6275/n) ; this will dial ${MARK}
|
||||
|
||||
;exten => 6275,1,Gosub(${EXTEN},stdexten(${MARK}))
|
||||
; assuming ${MARK} is something like DAHDI/2
|
||||
;exten => 6275,n,Goto(default,s,1) ; exited Voicemail
|
||||
;exten => mark,1,Goto(6275,1) ; alias mark to 6275
|
||||
;exten => 6536,1,Gosub(${EXTEN},stdexten(${WIL}))
|
||||
; Ditto for wil
|
||||
;exten => 6536,n,Goto(default,s,1) ; exited Voicemail
|
||||
;exten => wil,1,Goto(6236,1)
|
||||
|
||||
;If you want to subscribe to the status of a parking space, this is
|
||||
;how you do it. Subscribe to extension 6600 in sip, and you will see
|
||||
;the status of the first parking lot with this extensions' help
|
||||
;exten => 6600,hint,park:701@parkedcalls
|
||||
;exten => 6600,1,noop
|
||||
;
|
||||
; Some other handy things are an extension for checking voicemail via
|
||||
; voicemailmain
|
||||
;
|
||||
;exten => 8500,1,VoicemailMain
|
||||
;exten => 8500,n,Hangup
|
||||
;
|
||||
; Or a conference room (you'll need to edit meetme.conf to enable this room)
|
||||
;
|
||||
;exten => 8600,1,Meetme(1234)
|
||||
;
|
||||
; Or playing an announcement to the called party, as soon it answers
|
||||
;
|
||||
;exten = 8700,1,Dial(${MARK},30,A(/path/to/my/announcemsg))
|
||||
;
|
||||
|
||||
; example of a compartmentalized company called "acme"
|
||||
;
|
||||
; this is the context that your incoming IAX/SIP trunk dumps you in...
|
||||
;[acme-incoming]
|
||||
;exten => s,1,Wait(1)
|
||||
;exten => s,n,Answer()
|
||||
;exten => s,n(menu),Playback(acme/vm-brief-menu)
|
||||
;exten => s,n(exten),Background(vm-enter-num-to-call)
|
||||
;exten => s,n,WaitExten(5)
|
||||
;exten => s,n(goodbye),Playback(vm-goodbye)
|
||||
;exten => s,n(end),Hangup()
|
||||
;
|
||||
;include => acme-extens
|
||||
;
|
||||
;exten => i,1,Playback(vm-invalid)
|
||||
;exten => i,n,Goto(s,exten) ; optionally, transfer to operator
|
||||
;
|
||||
;exten => t,1,Goto(s,goodbye)
|
||||
;
|
||||
; this is the context our internal SIP hardphones use (see sip.conf)
|
||||
;
|
||||
;[acme-internal]
|
||||
;exten => s,1,Answer()
|
||||
;exten => s,n(exten),Background(vm-enter-num-to-call)
|
||||
;exten => s,n,WaitExten(5)
|
||||
;exten => s,n(goodbye),Playback(vm-goodbye)
|
||||
;exten => s,n(end),Hangup()
|
||||
;
|
||||
;include => trunkint
|
||||
;include => trunkld
|
||||
;include => trunklocal
|
||||
;
|
||||
;include => acme-extens
|
||||
;
|
||||
; you can test what your system sounds like to outside callers by dialing this
|
||||
;exten => 777,1,DISA(no-password,acme-incoming)
|
||||
;
|
||||
; grouping of acme's extensions... never used directly, always included.
|
||||
;
|
||||
;[acme-extens]
|
||||
;include => stdexten
|
||||
;exten => 111,1,Gosub(111,stdexten(SIP/pete_1,acme))
|
||||
;exten => 111,n,Goto(s,exten)
|
||||
;
|
||||
;exten => 112,1,Gosub(112,stdexten(SIP/nancy_1,acme))
|
||||
;exten => 112,n,Goto(s,end)
|
||||
;
|
||||
; end of acme example
|
||||
|
||||
;
|
||||
; Time context: you can patch this in via the following.
|
||||
;
|
||||
; [acme-internal]
|
||||
; ...
|
||||
; exten => 777,1,Gosub(time)
|
||||
; exten => 777,n,Hangup()
|
||||
;
|
||||
; ...
|
||||
; include => time
|
||||
;
|
||||
; Note: if you're geographically spread out, you can have SIP extensions
|
||||
; specify their own local timezone in sip.conf as:
|
||||
;
|
||||
; [boi]
|
||||
; type=friend
|
||||
; context=acme-internal
|
||||
; callerid="Boise Ofc. <2083451111>"
|
||||
; ...
|
||||
; ; use system-wide default timezone of MST7MDT
|
||||
;
|
||||
; [lws]
|
||||
; type=friend
|
||||
; context=acme-internal
|
||||
; callerid="Lewiston Ofc. <2087431111>"
|
||||
; ...
|
||||
; setvar=timezone=PST8PDT
|
||||
;
|
||||
; "timezone" isn't a 'reserved' name in any way, and other places where
|
||||
; the timezone is significant (e.g. calls to "SayUnixTime()", etc) will
|
||||
; require modification as well. Note that voicemail.conf already has
|
||||
; a mechanism for timezones.
|
||||
;
|
||||
|
||||
[time]
|
||||
exten => _X.,30000(time),NoOp(Time: ${EXTEN} ${timezone})
|
||||
exten => _X.,n,Wait(0.25)
|
||||
exten => _X.,n,Answer()
|
||||
; the amount of delay is set for English; you may need to adjust this time
|
||||
; for other languages if there's no pause before the synchronizing beep.
|
||||
exten => _X.,n,Set(FUTURETIME=$[${EPOCH} + 12])
|
||||
exten => _X.,n,SayUnixTime(${FUTURETIME},Zulu,HNS)
|
||||
exten => _X.,n,SayPhonetic(z)
|
||||
; use the timezone associated with the extension (sip only), or system-wide
|
||||
; default if one hasn't been set.
|
||||
exten => _X.,n,SayUnixTime(${FUTURETIME},${timezone},HNS)
|
||||
exten => _X.,n,Playback(spy-local)
|
||||
exten => _X.,n,WaitUntil(${FUTURETIME})
|
||||
exten => _X.,n,Playback(beep)
|
||||
exten => _X.,n,Return()
|
||||
|
||||
;
|
||||
; ANI context: use in the same way as "time" above
|
||||
;
|
||||
|
||||
[ani]
|
||||
exten => _X.,40000(ani),NoOp(ANI: ${EXTEN})
|
||||
exten => _X.,n,Wait(0.25)
|
||||
exten => _X.,n,Answer()
|
||||
exten => _X.,n,Playback(vm-from)
|
||||
exten => _X.,n,SayDigits(${CALLERID(ani)})
|
||||
exten => _X.,n,Wait(1.25)
|
||||
exten => _X.,n,SayDigits(${CALLERID(ani)}) ; playback again in case of missed digit
|
||||
exten => _X.,n,Return()
|
||||
|
||||
; For more information on applications, just type "core show applications" at your
|
||||
; friendly Asterisk CLI prompt.
|
||||
;
|
||||
; "core show application <command>" will show details of how you
|
||||
; use that particular application in this file, the dial plan.
|
||||
; "core show functions" will list all dialplan functions
|
||||
; "core show function <COMMAND>" will show you more information about
|
||||
; one function. Remember that function names are UPPER CASE.
|
199
asterisk/extensions.lua
Normal file
199
asterisk/extensions.lua
Normal file
@ -0,0 +1,199 @@
|
||||
|
||||
|
||||
CONSOLE = "Console/dsp" -- Console interface for demo
|
||||
--CONSOLE = "DAHDI/1"
|
||||
--CONSOLE = "Phone/phone0"
|
||||
|
||||
IAXINFO = "guest" -- IAXtel username/password
|
||||
--IAXINFO = "myuser:mypass"
|
||||
|
||||
TRUNK = "DAHDI/G2"
|
||||
TRUNKMSD = 1
|
||||
-- TRUNK = "IAX2/user:pass@provider"
|
||||
|
||||
|
||||
--
|
||||
-- Extensions are expected to be defined in a global table named 'extensions'.
|
||||
-- The 'extensions' table should have a group of tables in it, each
|
||||
-- representing a context. Extensions are defined in each context. See below
|
||||
-- for examples.
|
||||
--
|
||||
-- Extension names may be numbers, letters, or combinations thereof. If
|
||||
-- an extension name is prefixed by a '_' character, it is interpreted as
|
||||
-- a pattern rather than a literal. In patterns, some characters have
|
||||
-- special meanings:
|
||||
--
|
||||
-- X - any digit from 0-9
|
||||
-- Z - any digit from 1-9
|
||||
-- N - any digit from 2-9
|
||||
-- [1235-9] - any digit in the brackets (in this example, 1,2,3,5,6,7,8,9)
|
||||
-- . - wildcard, matches anything remaining (e.g. _9011. matches
|
||||
-- anything starting with 9011 excluding 9011 itself)
|
||||
-- ! - wildcard, causes the matching process to complete as soon as
|
||||
-- it can unambiguously determine that no other matches are possible
|
||||
--
|
||||
-- For example the extension _NXXXXXX would match normal 7 digit
|
||||
-- dialings, while _1NXXNXXXXXX would represent an area code plus phone
|
||||
-- number preceded by a one.
|
||||
--
|
||||
-- If your extension has special characters in it such as '.' and '!' you must
|
||||
-- explicitly make it a string in the tabale definition:
|
||||
--
|
||||
-- ["_special."] = function;
|
||||
-- ["_special!"] = function;
|
||||
--
|
||||
-- There are no priorities. All extensions to asterisk appear to have a single
|
||||
-- priority as if they consist of a single priority.
|
||||
--
|
||||
-- Each context is defined as a table in the extensions table. The
|
||||
-- context names should be strings.
|
||||
--
|
||||
-- One context may be included in another context using the 'includes'
|
||||
-- extension. This extension should be set to a table containing a list
|
||||
-- of context names. Do not put references to tables in the includes
|
||||
-- table.
|
||||
--
|
||||
-- include = {"a", "b", "c"};
|
||||
--
|
||||
-- Channel variables can be accessed thorugh the global 'channel' table.
|
||||
--
|
||||
-- v = channel.var_name
|
||||
-- v = channel["var_name"]
|
||||
-- v.value
|
||||
-- v:get()
|
||||
--
|
||||
-- channel.var_name = "value"
|
||||
-- channel["var_name"] = "value"
|
||||
-- v:set("value")
|
||||
--
|
||||
-- channel.func_name(1,2,3):set("value")
|
||||
-- value = channel.func_name(1,2,3):get()
|
||||
--
|
||||
-- channel["func_name(1,2,3)"]:set("value")
|
||||
-- channel["func_name(1,2,3)"] = "value"
|
||||
-- value = channel["func_name(1,2,3)"]:get()
|
||||
--
|
||||
-- Note the use of the ':' operator to access the get() and set()
|
||||
-- methods.
|
||||
--
|
||||
-- Also notice the absence of the following constructs from the examples above:
|
||||
-- channel.func_name(1,2,3) = "value" -- this will NOT work
|
||||
-- value = channel.func_name(1,2,3) -- this will NOT work as expected
|
||||
--
|
||||
--
|
||||
-- Dialplan applications can be accessed through the global 'app' table.
|
||||
--
|
||||
-- app.Dial("DAHDI/1")
|
||||
-- app.dial("DAHDI/1")
|
||||
--
|
||||
-- More examples can be found below.
|
||||
--
|
||||
-- Before starting long running operations, an autoservice should be started
|
||||
-- using the autoservice_start() function. This autoservice will automatically
|
||||
-- be stopped before executing applications and dialplan functions and will be
|
||||
-- restarted afterwards. The autoservice can be stopped using
|
||||
-- autoservice_stop() and the autoservice_status() function will return true if
|
||||
-- an autoservice is currently running.
|
||||
--
|
||||
|
||||
function outgoing_local(c, e)
|
||||
app.dial("DAHDI/1/" .. e, "", "")
|
||||
end
|
||||
|
||||
function demo_instruct()
|
||||
app.background("demo-instruct")
|
||||
app.waitexten()
|
||||
end
|
||||
|
||||
function demo_congrats()
|
||||
app.background("demo-congrats")
|
||||
demo_instruct()
|
||||
end
|
||||
|
||||
-- Answer the chanel and play the demo sound files
|
||||
function demo_start(context, exten)
|
||||
app.wait(1)
|
||||
app.answer()
|
||||
|
||||
channel.TIMEOUT("digit"):set(5)
|
||||
channel.TIMEOUT("response"):set(10)
|
||||
-- app.set("TIMEOUT(digit)=5")
|
||||
-- app.set("TIMEOUT(response)=10")
|
||||
|
||||
demo_congrats(context, exten)
|
||||
end
|
||||
|
||||
function demo_hangup()
|
||||
app.playback("demo-thanks")
|
||||
app.hangup()
|
||||
end
|
||||
|
||||
extensions = {
|
||||
demo = {
|
||||
s = demo_start;
|
||||
|
||||
["2"] = function()
|
||||
app.background("demo-moreinfo")
|
||||
demo_instruct()
|
||||
end;
|
||||
["3"] = function ()
|
||||
channel.LANGUAGE():set("fr") -- set the language to french
|
||||
demo_congrats()
|
||||
end;
|
||||
|
||||
["1000"] = function()
|
||||
app.goto("default", "s", 1)
|
||||
end;
|
||||
|
||||
["1234"] = function()
|
||||
app.playback("transfer", "skip")
|
||||
-- do a dial here
|
||||
end;
|
||||
|
||||
["1235"] = function()
|
||||
app.voicemail("1234", "u")
|
||||
end;
|
||||
|
||||
["1236"] = function()
|
||||
app.dial("Console/dsp")
|
||||
app.voicemail(1234, "b")
|
||||
end;
|
||||
|
||||
["#"] = demo_hangup;
|
||||
t = demo_hangup;
|
||||
i = function()
|
||||
app.playback("invalid")
|
||||
demo_instruct()
|
||||
end;
|
||||
|
||||
["500"] = function()
|
||||
app.playback("demo-abouttotry")
|
||||
app.dial("IAX2/guest@misery.digium.com/s@default")
|
||||
app.playback("demo-nogo")
|
||||
demo_instruct()
|
||||
end;
|
||||
|
||||
["600"] = function()
|
||||
app.playback("demo-echotest")
|
||||
app.echo()
|
||||
app.playback("demo-echodone")
|
||||
demo_instruct()
|
||||
end;
|
||||
|
||||
["8500"] = function()
|
||||
app.voicemailmain()
|
||||
demo_instruct()
|
||||
end;
|
||||
|
||||
};
|
||||
|
||||
default = {
|
||||
-- by default, do the demo
|
||||
include = {"demo"};
|
||||
};
|
||||
|
||||
["local"] = {
|
||||
["_NXXXXXX"] = outgoing_local;
|
||||
};
|
||||
}
|
||||
|
159
asterisk/extensions_minivm.conf
Normal file
159
asterisk/extensions_minivm.conf
Normal file
@ -0,0 +1,159 @@
|
||||
; MINI-VOICEMAIL dialplan example
|
||||
; ---------------------------------------------------------------------------------------
|
||||
; ASTERISK_FILE_VERSION(__FILE__, "$Revision: 61671 $")
|
||||
;
|
||||
;
|
||||
; This is an example on how to use the Mini-Voicemail system to build
|
||||
; voicemail systems.
|
||||
;
|
||||
;.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
|
||||
; A macro to test the MINIVMACCOUNT dialplan function
|
||||
; Currently, accountcode and pincode is not used in the application
|
||||
; They where added to be used in dialplan scripting
|
||||
;
|
||||
;
|
||||
[macro-minivmfunctest]
|
||||
exten => s,1,set(account=${ARGV1})
|
||||
exten => minivm,n,verbose(1,-------------------- Minivm Function test - Accoutn ${account} -------------)
|
||||
exten => s,n,verbose(1,---- Has account: ${MINIVMACCOUNT(${account}:hasaccount)})
|
||||
exten => s,n,verbose(1,---- Fullname: ${MINIVMACCOUNT(${account}:fullname)})
|
||||
exten => s,n,verbose(1,---- Email: ${MINIVMACCOUNT(${account}:email)})
|
||||
exten => s,n,verbose(1,---- Pager: ${MINIVMACCOUNT(${account}:pager)})
|
||||
exten => s,n,verbose(1,---- E-mail template: ${MINIVMACCOUNT(${account}:etemplate)})
|
||||
exten => s,n,verbose(1,---- Pager template: ${MINIVMACCOUNT(${account}:ptemplate)})
|
||||
exten => s,n,verbose(1,---- Account code: ${MINIVMACCOUNT(${account}:accountcode)})
|
||||
exten => s,n,verbose(1,---- Path: ${MINIVMACCOUNT(${account}:path)})
|
||||
exten => s,n,verbose(1,---- Pincode: ${MINIVMACCOUNT(${account}:pincode)})
|
||||
exten => s,n,verbose(1,---- Time zone: ${MINIVMACCOUNT(${account}:timezone)})
|
||||
exten => s,n,verbose(1,---- Language: ${MINIVMACCOUNT(${account}:language)})
|
||||
; This requires setvar=customerclass=gold in the account configuration
|
||||
exten => s,n,verbose(1,---- Var:customerclass: ${MINIVMACCOUNT(${account}:customerclass)})
|
||||
|
||||
[minivm-scenario1]
|
||||
; minivmtest tests the dialplan function MINIVMACCOUNT
|
||||
; Check the output in the console with verbose set
|
||||
exten => minivmtest,1,answer
|
||||
exten => minivmtest,n,wait(0.5)
|
||||
exten => minivmtest,n,set(ACCOUNT=do-not-spam-me@example.com)
|
||||
exten => minivmtest,n,macro(minivmfunctest, ${ACCOUNT})
|
||||
exten => minivmtest,n,playback(beep)
|
||||
exten => minivmtest,n,hangup
|
||||
|
||||
;.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
|
||||
; "minivm" tests a full scenario
|
||||
; Remember that users may hangup
|
||||
; This works both for users with accounts in minivm.conf and by just giving an e-mail address
|
||||
; without configuring an account
|
||||
exten => minivm,1,answer
|
||||
exten => minivm,n,wait(0.5) ; Wait for Voip channels to settle
|
||||
exten => minivm,n,set(account=oej@example.com)
|
||||
exten => minivm,n,noop(------------------------------------------- Minivm Greet -------------)
|
||||
exten => minivm,n,minivmgreet(${account})
|
||||
exten => minivm,n,verbose(1,-- MINIVM_GREET_STATUS = ${MINIVM_GREET_STATUS} )
|
||||
exten => minivm,n,noop(------------------------------------------- Minivm Record -------------)
|
||||
exten => minivm,n,minivmRecord(${account},b)
|
||||
exten => minivm,n,goto(minivmcleanup,1)
|
||||
|
||||
; Cleanup after recording or hangup
|
||||
exten => minivmcleanup,1,noop(------------------------------------------- Minivm Notify -------------)
|
||||
;Increment voicemail counter with 1. The counter will be used in the e-mail message
|
||||
;and in the filename
|
||||
exten => minivmcleanup,n,gotoif($[${MINIVM_RECORD_STATUS} != SUCCESS]?minivmrecordfailure,1)
|
||||
exten => minivmcleanup,n,set(MINIVMCOUNTER(${account}:voicemailcounter:inc)=1)
|
||||
exten => minivmcleanup,n,set(MVM_COUNTER = ${MINIVMCOUNTER(${account}:voicemailcounter)})
|
||||
exten => minivmcleanup,n,minivmNotify(${account})
|
||||
exten => minivmcleanup,n,verbose(1,-- MINIVM_NOTIFY_STATUS = ${MINIVM_NOTIFY_STATUS} )
|
||||
; Now, clean up after sending voicemail
|
||||
exten => minivmcleanup,n,noop(------------------------------------------- Minivm Delete -------------)
|
||||
exten => minivmcleanup,n,minivmdelete()
|
||||
exten => minivmcleanup,n,verbose(1,-- MINIVM_DELETE_STATUS = ${MINIVM_DELETE_STATUS} )
|
||||
|
||||
;Recording failed
|
||||
exten => minivmrecordfailure,1,playback(vm-sorry)
|
||||
exten => minivmrecordfailure,n,wait(1)
|
||||
exten => minivmrecordfailure,n,hangup
|
||||
|
||||
; If the user hangs up during the recording, we need to clean up
|
||||
; And send notifications
|
||||
exten => h,1,gotoif($[x${MINIVM_DELETE_STATUS} != x] ?h,stop)
|
||||
exten => h,n,noop(------------------------------------------- HANGUP during voicemail recording -------------)
|
||||
exten => h,n,goto(minivmcleanup,1)
|
||||
exten => h,n(stop),noop(---Minivm DONE----)
|
||||
|
||||
;.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
|
||||
; Extension to record a greeting message
|
||||
; Call this like:
|
||||
; macro(recordgreetings,alice@atlanta.example.com)
|
||||
;
|
||||
[macro-recordgreetings]
|
||||
exten => s,1,answer
|
||||
exten => s,n,wait(0.5)
|
||||
exten => s,n,set(account=${ARGV1])
|
||||
; This file give extra options not available here, needs to be edited
|
||||
; Change of password does not work
|
||||
exten => s,n(menu),background(vm-options)
|
||||
exten => 1,1,setvar(option=u)
|
||||
exten => 1,n,macro(minivmrec,${account},${option})
|
||||
exten => 1,n,goto(menu)
|
||||
exten => 2,1,setvar(option=b)
|
||||
exten => 2,n,macro(minivmrec,${account},${option})
|
||||
exten => 2,n,goto(menu)
|
||||
exten => 3,1,setvar(option=n)
|
||||
exten => 3,n,macro(minivmrec,${account},${option})
|
||||
exten => 3,n,goto(menu)
|
||||
exten => 4,1,setvar(option=t)
|
||||
exten => 4,n,macro(minivmrec,${account},${option})
|
||||
exten => 4,n,goto(menu)
|
||||
exten => *,1,playback(vm-thankyou)
|
||||
exten => *,n,wait(1)
|
||||
exten => *,n,hangup
|
||||
|
||||
exten => i,1,playback(invalid)
|
||||
exten => i,n,goto(menu)
|
||||
|
||||
[macro-minivmrec]
|
||||
exten => s,1,gotoif(${MINIVMACCOUNT(${account}:hasaccount)}?record)
|
||||
; Account is not configured in minivm.conf or realtime
|
||||
; Phony message, add something useful here
|
||||
exten => s,n,playback(privacy-incorrect)
|
||||
exten => s,n,macroreturn
|
||||
exten => record,1,minivmappmess(${ARGV1},${ARGV2})
|
||||
exten => record,n,noop(Recording status: ${MINIVM_APPMESS_STATUS})
|
||||
exten => record,n,macroreturn
|
||||
|
||||
;.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
|
||||
; To set a counter and use a template for voicemail to users without acounts
|
||||
; use something like this
|
||||
;
|
||||
; email address is in the "account" channel variable. Set from ast_db or a script
|
||||
; based on called ID
|
||||
|
||||
exten => sendvoicemail,1,answer
|
||||
exten => sendvoicemail,n,wait(0.5)
|
||||
exten => sendvoicemail,n,set(domain=${CUT(account,@,2)})
|
||||
exten => sendvoicemail,n,set(country=${CUT(domain,.,2)})
|
||||
exten => sendvoicemail,n,minivmgreet(${account})
|
||||
exten => sendvoicemail,n,minivmRecord(${account},b)
|
||||
exten => sendvoicemail,n,goto(sendvmcleanup)
|
||||
|
||||
exten => sendvmcleanup,1,gotoif($[${MINIVM_RECORD_STATUS} != SUCCESS]?done)
|
||||
; The counter is set in the domain directory, so we don't create one directory per user
|
||||
; The counter has the email in the name of the counter, increase it
|
||||
; Set the MVM_COUNTER variable that we use in the template
|
||||
exten => sendvmcleanup,n,set(MINIVMCOUNTER(${account}:voicemailcounter:inc)=1)
|
||||
exten => sendvmcleanup,n,set(MVM_COUNTER = ${MINIVMCOUNTER(${account}:voicemailcounter)})
|
||||
; Increase a domain counter too, to see how many voicemails are sent to this domain
|
||||
; This is just for statistics
|
||||
exten => sendvmcleanup,n,set(MINIVMCOUNTER(${domain}:${domain}-all:inc) = 1)
|
||||
|
||||
; Send voicemail in e-mail with country-specific template
|
||||
; The template need to be defined in minivm.conf
|
||||
;
|
||||
exten => sendvmcleanup,n,minivmNotify(${account}, ${country}_email)
|
||||
exten => sendvmcleanup,n,minivmDelete()
|
||||
|
||||
exten => sendvmcleanup,n(done),wait(0.5)
|
||||
exten => sendvmcleanup,n,hangup
|
||||
|
||||
exten => h,1,gotoif($[${MINIVM_RECORD_STATUS} = SUCCESS]?sendvmcleanup,1))
|
||||
|
152
asterisk/features.conf
Normal file
152
asterisk/features.conf
Normal file
@ -0,0 +1,152 @@
|
||||
;
|
||||
; Sample Call Features (parking, transfer, etc) configuration
|
||||
;
|
||||
|
||||
[general]
|
||||
parkext => 700 ; What extension to dial to park (all parking lots)
|
||||
parkpos => 701-720 ; What extensions to park calls on. (defafult parking lot)
|
||||
; These needs to be numeric, as Asterisk starts from the start position
|
||||
; and increments with one for the next parked call.
|
||||
context => parkedcalls ; Which context parked calls are in (default parking lot)
|
||||
;parkinghints = no ; Add hints priorities automatically for parking slots (default is no).
|
||||
;parkingtime => 45 ; Number of seconds a call can be parked for
|
||||
; (default is 45 seconds)
|
||||
;comebacktoorigin = yes ; Whether to return to the original calling extension upon parking
|
||||
; timeout or to send the call to context 'parkedcallstimeout' at
|
||||
; extension 's', priority '1' (default is yes).
|
||||
;courtesytone = beep ; Sound file to play to the parked caller
|
||||
; when someone dials a parked call
|
||||
; or the Touch Monitor is activated/deactivated.
|
||||
;parkedplay = caller ; Who to play the courtesy tone to when picking up a parked call
|
||||
; one of: parked, caller, both (default is caller)
|
||||
;parkedcalltransfers = caller ; Enables or disables DTMF based transfers when picking up a parked call.
|
||||
; one of: callee, caller, both, no (default is no)
|
||||
;parkedcallreparking = caller ; Enables or disables DTMF based parking when picking up a parked call.
|
||||
; one of: callee, caller, both, no (default is no)
|
||||
;parkedcallhangup = caller ; Enables or disables DTMF based hangups when picking up a parked call.
|
||||
; one of: callee, caller, both, no (default is no)
|
||||
;parkedcallrecording = caller ; Enables or disables DTMF based one-touch recording when picking up a parked call.
|
||||
; one of: callee, caller, both, no (default is no)
|
||||
;adsipark = yes ; if you want ADSI parking announcements
|
||||
;findslot => next ; Continue to the 'next' free parking space.
|
||||
; Defaults to 'first' available
|
||||
;parkedmusicclass=default ; This is the MOH class to use for the parked channel
|
||||
; as long as the class is not set on the channel directly
|
||||
; using Set(CHANNEL(musicclass)=whatever) in the dialplan
|
||||
|
||||
;transferdigittimeout => 3 ; Number of seconds to wait between digits when transferring a call
|
||||
; (default is 3 seconds)
|
||||
;xfersound = beep ; to indicate an attended transfer is complete
|
||||
;xferfailsound = beeperr ; to indicate a failed transfer
|
||||
;pickupexten = *8 ; Configure the pickup extension. (default is *8)
|
||||
;pickupsound = beep ; to indicate a successful pickup (default: no sound)
|
||||
;pickupfailsound = beeperr ; to indicate that the pickup failed (default: no sound)
|
||||
;featuredigittimeout = 1000 ; Max time (ms) between digits for
|
||||
; feature activation (default is 1000 ms)
|
||||
;atxfernoanswertimeout = 15 ; Timeout for answer on attended transfer default is 15 seconds.
|
||||
;atxferdropcall = no ; If someone does an attended transfer, then hangs up before the transferred
|
||||
; caller is connected, then by default, the system will try to call back the
|
||||
; person that did the transfer. If this is set to "yes", the callback will
|
||||
; not be attempted and the transfer will just fail.
|
||||
;atxferloopdelay = 10 ; Number of seconds to sleep between retries (if atxferdropcall = no)
|
||||
;atxfercallbackretries = 2 ; Number of times to attempt to send the call back to the transferer.
|
||||
; By default, this is 2.
|
||||
|
||||
;
|
||||
;*** Define another parking lot
|
||||
;
|
||||
; You can set parkinglot with the CHANNEL dialplan function
|
||||
; or by setting 'parkinglot' directly in the channel configuration file.
|
||||
;
|
||||
;[parkinglot_edvina]
|
||||
;context => edvinapark
|
||||
;parkpos => 800-850
|
||||
;findslot => next
|
||||
|
||||
; Note that the DTMF features listed below only work when two channels have answered and are bridged together.
|
||||
; They can not be used while the remote party is ringing or in progress. If you require this feature you can use
|
||||
; chan_local in combination with Answer to accomplish it.
|
||||
|
||||
|
||||
[featuremap]
|
||||
;blindxfer => #1 ; Blind transfer (default is #) -- Make sure to set the T and/or t option in the Dial() or Queue() app call!
|
||||
;disconnect => *0 ; Disconnect (default is *) -- Make sure to set the H and/or h option in the Dial() or Queue() app call!
|
||||
;automon => *1 ; One Touch Record a.k.a. Touch Monitor -- Make sure to set the W and/or w option in the Dial() or Queue() app call!
|
||||
;atxfer => *2 ; Attended transfer -- Make sure to set the T and/or t option in the Dial() or Queue() app call!
|
||||
;parkcall => #72 ; Park call (one step parking) -- Make sure to set the K and/or k option in the Dial() app call!
|
||||
;automixmon => *3 ; One Touch Record a.k.a. Touch MixMonitor -- Make sure to set the X and/or x option in the Dial() or Queue() app call!
|
||||
|
||||
[applicationmap]
|
||||
; Note that the DYNAMIC_FEATURES channel variable must be set to use the features
|
||||
; defined here. The value of DYNAMIC_FEATURES should be the names of the features
|
||||
; to allow the channel to use separated by '#'. For example:
|
||||
;
|
||||
; Set(__DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3)
|
||||
;
|
||||
; (Note: The two leading underscores allow these feature settings to be set on
|
||||
; on the outbound channels, as well. Otherwise, only the original channel
|
||||
; will have access to these features.)
|
||||
;
|
||||
; The syntax for declaring a dynamic feature is any of the following:
|
||||
;
|
||||
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>[,<AppArguments>[,MOH_Class]]
|
||||
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>[,"<AppArguments>"[,MOH_Class]]
|
||||
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>([<AppArguments>])[,MOH_Class]
|
||||
|
||||
;
|
||||
; FeatureName -> This is the name of the feature used in when setting the
|
||||
; DYNAMIC_FEATURES variable to enable usage of this feature.
|
||||
; DTMF_sequence -> This is the key sequence used to activate this feature.
|
||||
; ActivateOn -> This is the channel of the call that the application will be executed
|
||||
; on. Valid values are "self" and "peer". "self" means run the
|
||||
; application on the same channel that activated the feature. "peer"
|
||||
; means run the application on the opposite channel from the one that
|
||||
; has activated the feature.
|
||||
; ActivatedBy -> This is which channel is allowed to activate this feature. Valid
|
||||
; values are "caller", "callee", and "both". "both" is the default.
|
||||
; The "caller" is the channel that executed the Dial application, while
|
||||
; the "callee" is the channel called by the Dial application.
|
||||
; Application -> This is the application to execute.
|
||||
; AppArguments -> These are the arguments to be passed into the application. If you need
|
||||
; commas in your arguments, you should use either the second or third
|
||||
; syntax, above.
|
||||
; MOH_Class -> This is the music on hold class to play while the idle
|
||||
; channel waits for the feature to complete. If left blank,
|
||||
; no music will be played.
|
||||
;
|
||||
|
||||
;
|
||||
; IMPORTANT NOTE: The applicationmap is not intended to be used for all Asterisk
|
||||
; applications. When applications are used in extensions.conf, they are executed
|
||||
; by the PBX core. In this case, these applications are executed outside of the
|
||||
; PBX core, so it does *not* make sense to use any application which has any
|
||||
; concept of dialplan flow. Examples of this would be things like Macro, Goto,
|
||||
; Background, WaitExten, and many more.
|
||||
;
|
||||
; Enabling these features means that the PBX needs to stay in the media flow and
|
||||
; media will not be re-directed if DTMF is sent in the media stream.
|
||||
;
|
||||
; Example Usage:
|
||||
;
|
||||
;testfeature => #9,peer,Playback,tt-monkeys ;Allow both the caller and callee to play
|
||||
; ;tt-monkeys to the opposite channel
|
||||
;
|
||||
; Set arbitrary channel variables, based upon CALLERID number (Note that the application
|
||||
; argument contains commas)
|
||||
;retrieveinfo => #8,peer,Set(ARRAY(CDR(mark),CDR(name))=${ODBC_FOO(${CALLERID(num)})})
|
||||
;
|
||||
;pauseMonitor => #1,self/callee,Pausemonitor ;Allow the callee to pause monitoring
|
||||
; ;on their channel
|
||||
;unpauseMonitor => #3,self/callee,UnPauseMonitor ;Allow the callee to unpause monitoring
|
||||
; ;on their channel
|
||||
|
||||
; Dynamic Feature Groups:
|
||||
; Dynamic feature groups are groupings of features defined in [applicationmap]
|
||||
; that can have their own custom key mappings. To give a channel access to a dynamic
|
||||
; feature group, add the group name to the value of the DYNAMIC_FEATURES variable.
|
||||
;
|
||||
; example:
|
||||
; [myGroupName] ; defines the group named myGroupName
|
||||
; testfeature => #9 ; associates testfeature with the group and the keycode '#9'.
|
||||
; pauseMonitor => ; associates pauseMonitor with the group and uses the keycode specified
|
||||
; ; in the [applicationmap].
|
35
asterisk/festival.conf
Normal file
35
asterisk/festival.conf
Normal file
@ -0,0 +1,35 @@
|
||||
;
|
||||
; Festival Configuration
|
||||
;
|
||||
[general]
|
||||
;
|
||||
; Host which runs the festival server (default : localhost);
|
||||
;
|
||||
;host=localhost
|
||||
;
|
||||
; Port on host where the festival server runs (default : 1314)
|
||||
;
|
||||
;port=1314
|
||||
;
|
||||
; Use cache (yes, no - defaults to no)
|
||||
;
|
||||
;usecache=yes
|
||||
;
|
||||
; If usecache=yes, a directory to store waveform cache files.
|
||||
; The cache is never cleared (yet), so you must take care of cleaning it
|
||||
; yourself (just delete any or all files from the cache).
|
||||
; THIS DIRECTORY *MUST* EXIST and must be writable from the asterisk process.
|
||||
; Defaults to /tmp/
|
||||
;
|
||||
;cachedir=/var/lib/asterisk/festivalcache/
|
||||
;
|
||||
; Festival command to send to the server.
|
||||
; Defaults to: (tts_textasterisk "%s" 'file)(quit)\n
|
||||
; %s is replaced by the desired text to say. The command MUST end with a
|
||||
; (quit) directive, or the cache handling mechanism will hang. Do not
|
||||
; forget the \n at the end.
|
||||
;
|
||||
;festivalcommand=(tts_textasterisk "%s" 'file)(quit)\n
|
||||
;
|
||||
;
|
||||
|
86
asterisk/followme.conf
Normal file
86
asterisk/followme.conf
Normal file
@ -0,0 +1,86 @@
|
||||
; Find-Me / Follow-Me Configuration File
|
||||
[general]
|
||||
;
|
||||
featuredigittimeout=>5000
|
||||
; The number of ms to wait for a digit input for the callee on whether to take the call or
|
||||
; not before we consider them "done" entering digits.
|
||||
;
|
||||
takecall=>1
|
||||
; The global default keypress for the callee to take taking the current call. This can be
|
||||
; a single digit or multiple digits. Default is "1".
|
||||
;
|
||||
declinecall=>2
|
||||
; The global default keypress for the callee to decline taking the current call. This can
|
||||
; be a single digit or multiple digits. Default is "2".
|
||||
;
|
||||
call_from_prompt=>followme/call-from
|
||||
; The global default for the 'Incoming call from' message.
|
||||
;
|
||||
norecording_prompt=>followme/no-recording
|
||||
; The global default for the 'You have an incoming call' message when the caller elects
|
||||
; not to leave their name or the option isn't set for them to do so.
|
||||
;
|
||||
options_prompt=>followme/options
|
||||
; The global default for the 'Press 1 to accept this call or press 2 to decline it' message.
|
||||
;
|
||||
pls_hold_prompt=>followme/pls-hold-while-try
|
||||
; The global default for 'Please hold while we try and connect your call' message.
|
||||
;
|
||||
status_prompt=>followme/status
|
||||
; The global default for 'The party you're calling isn't at their desk' message.
|
||||
;
|
||||
sorry_prompt=>followme/sorry
|
||||
; The global default for 'I'm sorry, but we were unable to locate your party' message.
|
||||
;
|
||||
;
|
||||
[default]
|
||||
musicclass=>default
|
||||
; The moh class that should be used for the caller while they are waiting to be connected.
|
||||
context=>default
|
||||
; The context to dial the numbers from
|
||||
number=>01233456,25
|
||||
; The a follow-me number to call. The format is:
|
||||
; number=> <number to call[&2nd #[&3rd #]]> [, <timeout value in seconds> [, <order in follow-me>] ]
|
||||
; You can specify as many of these numbers as you like. They will be dialed in the
|
||||
; order that you specify them in the config file OR as specified with the order field
|
||||
; on the number prompt. As you can see from the example, forked dialing of multiple
|
||||
; numbers in the same step is supported with this application if you'd like to dial
|
||||
; multiple numbers in the same followme step.
|
||||
; It's also important to note that the timeout value is not the same
|
||||
; as the timeout value you would use in app_dial. This timeout value is the amount of
|
||||
; time allowed between the time the dialing step starts and the callee makes a choice
|
||||
; on whether to take the call or not. That being the case, you may want to account for
|
||||
; this time, and make this timeout longer than a timeout you might specify in app_dial.
|
||||
takecall=>1
|
||||
; The keypress for the callee to take taking the current call. This can be
|
||||
; a single digit or multiple digits. Default is the global default.
|
||||
;
|
||||
declinecall=>2
|
||||
; The keypress for the callee to decline taking the current call. This can
|
||||
; be a single digit or multiple digits. Default is the global default.
|
||||
;
|
||||
call_from_prompt=>followme/call-from
|
||||
; The 'Incoming call from' message prompt. Default is the global default.
|
||||
;
|
||||
norecording_prompt=>followme/no-recording
|
||||
; The 'You have an incoming call' message prompt when the caller elects
|
||||
; not to leave their name or the option isn't set for them to do so. Default
|
||||
; is the global default.
|
||||
;
|
||||
options_prompt=>followme/options
|
||||
; The 'Press 1 to accept this call or press 2 to decline it' message prompt.
|
||||
; Default is the global default.
|
||||
;
|
||||
pls_hold_prompt=>followme/pls-hold-while-try
|
||||
; The 'Please hold while we try and connect your call' message prompt.
|
||||
; Default is the global default.
|
||||
;
|
||||
status_prompt=>followme/status
|
||||
; The 'The party you're calling isn't at their desk' message prompt.
|
||||
; Default is the global default.
|
||||
;
|
||||
sorry_prompt=>followme/sorry
|
||||
; The 'I'm sorry, but we were unable to locate your party' message prompt. Default
|
||||
; is the global default.
|
||||
|
||||
|
92
asterisk/func_odbc.conf
Normal file
92
asterisk/func_odbc.conf
Normal file
@ -0,0 +1,92 @@
|
||||
;
|
||||
; func_odbc.conf
|
||||
;
|
||||
; Each context is a separately defined function. By convention, all
|
||||
; functions are entirely uppercase, so the defined contexts should also
|
||||
; be all-uppercase, but there is nothing that enforces this. All functions
|
||||
; are case-sensitive, however.
|
||||
;
|
||||
; For substitution, you have ${ARG1}, ${ARG2} ... ${ARGn}
|
||||
; for the arguments to each SQL statement.
|
||||
;
|
||||
; In addition, for write statements, you have ${VAL1}, ${VAL2} ... ${VALn}
|
||||
; parsed, just like arguments, for the values. In addition, if you want the
|
||||
; whole value, never mind the parsing, you can get that with ${VALUE}.
|
||||
;
|
||||
;
|
||||
; If you have data which may potentially contain single ticks, you may wish
|
||||
; to use the dialplan function SQL_ESC() to escape the data prior to its
|
||||
; inclusion in the SQL statement.
|
||||
;
|
||||
;
|
||||
; The following options are available in this configuration file:
|
||||
;
|
||||
; readhandle A comma-separated list of DSNs (from res_odbc.conf) to use when
|
||||
; executing the readsql statement. Each DSN is tried, in
|
||||
; succession, until the statement succeeds. You may specify up to
|
||||
; 5 DSNs per function class. If not specified, it will default to
|
||||
; the value of writehandle or dsn, if specified.
|
||||
; writehandle A comma-separated list of DSNs (from res_odbc.conf) to use when
|
||||
; executing the writesql statement. The same rules apply as to
|
||||
; readhandle. "dsn" is a synonym for "writehandle".
|
||||
; readsql The statement to execute when reading from the function class.
|
||||
; writesql The statement to execute when writing to the function class.
|
||||
; insertsql The statement to execute when writing to the function class
|
||||
; succeeds, but initially indicates that 0 rows were affected.
|
||||
; prefix Normally, all function classes are prefixed with "ODBC" to keep
|
||||
; them uniquely named. You may choose to change this prefix, which
|
||||
; may be useful to segregate a collection of certain function
|
||||
; classes from others.
|
||||
; escapecommas This option may be used to turn off the default behavior of
|
||||
; escaping commas which occur within a field. If commas are
|
||||
; escaped (the default behavior), then fields containing commas
|
||||
; will be treated as a single value when assigning to ARRAY() or
|
||||
; HASH(). If commas are not escaped, then values will be separated
|
||||
; at the comma within fields. Please note that turning this option
|
||||
; off is incompatible with the functionality of HASH().
|
||||
; synopsis Appears in the synopsis field for the command
|
||||
; 'core show function <function name>'
|
||||
; mode This option may be set to 'multirow' to allow the function
|
||||
; specified to return more than a single row. However, this
|
||||
; changes the way that func_odbc normally works. Instead of the
|
||||
; invocation of the function returning a row, it returns an opaque
|
||||
; ID, which may be passed to ODBC_FETCH() to return each row in
|
||||
; turn. ODBC_FETCH_STATUS returns SUCCESS or FAILURE, to indicate
|
||||
; whether any results were stored, and you should call ODBC_Finish
|
||||
; on the ID to clean up any remaining results when you are done
|
||||
; with the query. Also, the variable ODBCROWS is set initially,
|
||||
; which may be used in an iterative fashion to return each row in
|
||||
; the result.
|
||||
; Please note that multirow queries are isolated to the channel,
|
||||
; and rows may not be fetched outside of the channel where the
|
||||
; query was initially performed. Additionally, as the results are
|
||||
; associated with a channel, mode=multirow is incompatible with
|
||||
; the global space.
|
||||
; rowlimit An additional option for within mode=multirow, rowlimit limits
|
||||
; the total number of rows which can be stored for that query.
|
||||
; Otherwise, func_odbc will attempt to store all rows in the
|
||||
; resultset, up to the maximum amount of memory.
|
||||
|
||||
|
||||
; ODBC_SQL - Allow an SQL statement to be built entirely in the dialplan
|
||||
[SQL]
|
||||
dsn=mysql1
|
||||
readsql=${ARG1}
|
||||
|
||||
; ODBC_ANTIGF - A blacklist.
|
||||
[ANTIGF]
|
||||
dsn=mysql1,mysql2 ; Use mysql1 as the primary handle, but fall back to mysql2
|
||||
; if mysql1 is down. Supports up to 5 comma-separated
|
||||
; DSNs. "dsn" may also be specified as "readhandle" and
|
||||
; "writehandle", if it is important to separate reads and
|
||||
; writes to different databases.
|
||||
readsql=SELECT COUNT(*) FROM exgirlfriends WHERE callerid='${SQL_ESC(${ARG1})}'
|
||||
syntax=<callerid>
|
||||
synopsis=Check if a specified callerid is contained in the ex-gf database
|
||||
|
||||
; ODBC_PRESENCE - Retrieve and update presence
|
||||
[PRESENCE]
|
||||
dsn=mysql1
|
||||
readsql=SELECT location FROM presence WHERE id='${SQL_ESC(${ARG1})}'
|
||||
writesql=UPDATE presence SET location='${SQL_ESC(${VAL1})}' WHERE id='${SQL_ESC(${ARG1})}'
|
||||
|
18
asterisk/gtalk.conf
Normal file
18
asterisk/gtalk.conf
Normal file
@ -0,0 +1,18 @@
|
||||
;[general]
|
||||
;context=default ; Context to dump call into
|
||||
;bindaddr=0.0.0.0 ; Address to bind to
|
||||
;allowguest=yes ; Allow calls from people not in list of peers
|
||||
|
||||
;[guest] ; special account for options on guest account
|
||||
;disallow=all
|
||||
;allow=ulaw
|
||||
;context=guest
|
||||
|
||||
;[ogorman]
|
||||
;username=ogorman@gmail.com ; username of the peer your
|
||||
; calling or accepting calls from
|
||||
;disallow=all
|
||||
;allow=ulaw
|
||||
;context=default
|
||||
;connection=asterisk ; client or component in jabber.conf for the
|
||||
; call to leave on.
|
207
asterisk/h323.conf
Normal file
207
asterisk/h323.conf
Normal file
@ -0,0 +1,207 @@
|
||||
; The NuFone Network's
|
||||
; Open H.323 driver configuration
|
||||
;
|
||||
[general]
|
||||
port = 1720
|
||||
;bindaddr = 1.2.3.4 ; this SHALL contain a single, valid IP address for this machine
|
||||
;
|
||||
; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters.
|
||||
;tos_audio=ef ; Sets TOS for RTP audio packets.
|
||||
;cos_audio=5 ; Sets 802.1p priority for RTP audio packets.
|
||||
;
|
||||
; You may specify a global default AMA flag for iaxtel calls. It must be
|
||||
; one of 'default', 'omit', 'billing', or 'documentation'. These flags
|
||||
; are used in the generation of call detail records.
|
||||
;
|
||||
;amaflags = default
|
||||
;
|
||||
; You may specify a default account for Call Detail Records in addition
|
||||
; to specifying on a per-user basis
|
||||
;
|
||||
;accountcode=lss0101
|
||||
;
|
||||
; You can fine tune codecs here using "allow" and "disallow" clauses
|
||||
; with specific codecs. Use "all" to represent all formats.
|
||||
;
|
||||
;disallow=all
|
||||
;allow=all ; turns on all installed codecs
|
||||
;disallow=g723.1 ; Hm... Proprietary, don't use it...
|
||||
;allow=gsm ; Always allow GSM, it's cool :)
|
||||
;allow=ulaw ; see doc/rtp-packetization for framing options
|
||||
;
|
||||
; User-Input Mode (DTMF)
|
||||
;
|
||||
; valid entries are: rfc2833, inband, cisco, h245-signal
|
||||
; default is rfc2833
|
||||
;dtmfmode=rfc2833
|
||||
;
|
||||
; Default RTP Payload to send RFC2833 DTMF on. This is used to
|
||||
; interoperate with broken gateways which cannot successfully
|
||||
; negotiate a RFC2833 payload type in the TerminalCapabilitySet.
|
||||
; To specify required payload type, put it after colon in dtmfmode
|
||||
; option like
|
||||
;dtmfmode=rfc2833:101
|
||||
; or
|
||||
;dtmfmode=cisco:121
|
||||
;
|
||||
; Set the gatekeeper
|
||||
; DISCOVER - Find the Gk address using multicast
|
||||
; DISABLE - Disable the use of a GK
|
||||
; <IP address> or <Host name> - The acutal IP address or hostname of your GK
|
||||
;gatekeeper = DISABLE
|
||||
;
|
||||
;
|
||||
; Tell Asterisk whether or not to accept Gatekeeper
|
||||
; routed calls or not. Normally this should always
|
||||
; be set to yes, unless you want to have finer control
|
||||
; over which users are allowed access to Asterisk.
|
||||
; Default: YES
|
||||
;
|
||||
;AllowGKRouted = yes
|
||||
;
|
||||
; When the channel works without gatekeeper, there is possible to
|
||||
; reject calls from anonymous (not listed in users) callers.
|
||||
; Default is to allow anonymous calls.
|
||||
;
|
||||
;AcceptAnonymous = yes
|
||||
;
|
||||
; Optionally you can determine a user by Source IP versus its H.323 alias.
|
||||
; Default behavour is to determine user by H.323 alias.
|
||||
;
|
||||
;UserByAlias=no
|
||||
;
|
||||
; Default context gets used in siutations where you are using
|
||||
; the GK routed model or no type=user was found. This gives you
|
||||
; the ability to either play an invalid message or to simply not
|
||||
; use user authentication at all.
|
||||
;
|
||||
;context=default
|
||||
;
|
||||
; Use this option to help Cisco (or other) gateways to setup backward voice
|
||||
; path to pass inband tones to calling user (see, for example,
|
||||
; http://www.cisco.com/warp/public/788/voip/ringback.html)
|
||||
;
|
||||
; Add PROGRESS information element to SETUP message sent on outbound calls
|
||||
; to notify about required backward voice path. Valid values are:
|
||||
; 0 - don't add PROGRESS information element (default);
|
||||
; 1 - call is not end-end ISDN, further call progress information can
|
||||
; possibly be available in-band;
|
||||
; 3 - origination address is non-ISDN (Cisco accepts this value only);
|
||||
; 8 - in-band information or an appropriate pattern is now available;
|
||||
;progress_setup = 3
|
||||
;
|
||||
; Add PROGRESS information element (IE) to ALERT message sent on incoming
|
||||
; calls to notify about required backwared voice path. Valid values are:
|
||||
; 0 - don't add PROGRESS IE (default);
|
||||
; 8 - in-band information or an appropriate pattern is now available;
|
||||
;progress_alert = 8
|
||||
;
|
||||
; Generate PROGRESS message when H.323 audio path has established to create
|
||||
; backward audio path at other end of a call.
|
||||
;progress_audio = yes
|
||||
;
|
||||
; Specify how to inject non-standard information into H.323 messages. When
|
||||
; the channel receives messages with tunneled information, it automatically
|
||||
; enables the same option for all further outgoing messages independedly on
|
||||
; options has been set by the configuration. This behavior is required, for
|
||||
; example, for Cisco CallManager when Q.SIG tunneling is enabled for a
|
||||
; gateway where Asterisk lives.
|
||||
; The option can be used multiple times, one option per line.
|
||||
;tunneling=none ; Totally disable tunneling (default)
|
||||
;tunneling=cisco ; Enable Cisco-specific tunneling
|
||||
;tunneling=qsig ; Enable tunneling via Q.SIG messages
|
||||
;
|
||||
; Specify how to pass hold notification to remote party. Default is to
|
||||
; use H.450.4 supplementary service message.
|
||||
;hold=none ; Do not pass hold/retrieve notifications
|
||||
;hold=notify ; Use H.225 NOTIFY message
|
||||
;hold=q931only ; Use stripped H.225 NOTIFY message (Q.931 part
|
||||
; ; only, usable for Cisco CallManager)
|
||||
;hold=h450 ; Pass notification as H.450.4 supplementary
|
||||
; ; service
|
||||
;
|
||||
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
|
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a
|
||||
; H323 channel. Defaults to "no". An enabled jitterbuffer will
|
||||
; be used only if the sending side can create and the receiving
|
||||
; side can not accept jitter. The H323 channel can accept jitter,
|
||||
; thus an enabled jitterbuffer on the receive H323 side will only
|
||||
; be used if the sending side can create jitter and jbforce is
|
||||
; also set to yes.
|
||||
|
||||
; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a H323
|
||||
; channel. Defaults to "no".
|
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||
; resynchronized. Useful to improve the quality of the voice, with
|
||||
; big jumps in/broken timestamps, usualy sent from exotic devices
|
||||
; and programs. Defaults to 1000.
|
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a H323
|
||||
; channel. Two implementations are currenlty available - "fixed"
|
||||
; (with size always equals to jbmax-size) and "adaptive" (with
|
||||
; variable size, actually the new jb of IAX2). Defaults to fixed.
|
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
|
||||
;-----------------------------------------------------------------------------------
|
||||
;
|
||||
; H.323 Alias definitions
|
||||
;
|
||||
; Type 'h323' will register aliases to the endpoint
|
||||
; and Gatekeeper, if there is one.
|
||||
;
|
||||
; Example: if someone calls time@your.asterisk.box.com
|
||||
; Asterisk will send the call to the extension 'time'
|
||||
; in the context default
|
||||
;
|
||||
; [default]
|
||||
; exten => time,1,Answer
|
||||
; exten => time,2,Playback,current-time
|
||||
;
|
||||
; Keyword's 'prefix' and 'e164' are only make sense when
|
||||
; used with a gatekeeper. You can specify either a prefix
|
||||
; or E.164 this endpoint is responsible for terminating.
|
||||
;
|
||||
; Example: The H.323 alias 'det-gw' will tell the gatekeeper
|
||||
; to route any call with the prefix 1248 to this alias. Keyword
|
||||
; e164 is used when you want to specifiy a full telephone
|
||||
; number. So a call to the number 18102341212 would be
|
||||
; routed to the H.323 alias 'time'.
|
||||
;
|
||||
;[time]
|
||||
;type=h323
|
||||
;e164=18102341212
|
||||
;context=default
|
||||
;
|
||||
;[det-gw]
|
||||
;type=h323
|
||||
;prefix=1248,1313
|
||||
;context=detroit
|
||||
;
|
||||
;
|
||||
; Inbound H.323 calls from BillyBob would land in the incoming
|
||||
; context with a maximum of 4 concurrent incoming calls
|
||||
;
|
||||
;
|
||||
; Note: If keyword 'incominglimit' are omitted Asterisk will not
|
||||
; enforce any maximum number of concurrent calls.
|
||||
;
|
||||
;[BillyBob]
|
||||
;type=user
|
||||
;host=192.168.1.1
|
||||
;context=incoming
|
||||
;incominglimit=4
|
||||
;h245Tunneling=no
|
||||
;
|
||||
;
|
||||
; Outbound H.323 call to Larry using SlowStart
|
||||
;
|
||||
;[Larry]
|
||||
;type=peer
|
||||
;host=192.168.2.1
|
||||
;fastStart=no
|
||||
|
||||
|
||||
|
76
asterisk/http.conf
Normal file
76
asterisk/http.conf
Normal file
@ -0,0 +1,76 @@
|
||||
;
|
||||
; Asterisk Builtin mini-HTTP server
|
||||
;
|
||||
;
|
||||
; Note about Asterisk documentation:
|
||||
; If Asterisk was installed from a tarball, then the HTML documentation should
|
||||
; be installed in the static-http/docs directory which is
|
||||
; (/var/lib/asterisk/static-http/docs) on linux by default. If the Asterisk
|
||||
; HTTP server is enabled in this file by setting the "enabled", "bindaddr",
|
||||
; and "bindport" options, then you should be able to view the documentation
|
||||
; remotely by browsing to:
|
||||
; http://<server_ip>:<bindport>/static/docs/index.html
|
||||
;
|
||||
[general]
|
||||
;
|
||||
; Whether HTTP/HTTPS interface is enabled or not. Default is no.
|
||||
; This also affects manager/rawman/mxml access (see manager.conf)
|
||||
;
|
||||
;enabled=yes
|
||||
;
|
||||
; Address to bind to, both for HTTP and HTTPS. Default is 0.0.0.0
|
||||
;
|
||||
bindaddr=127.0.0.1
|
||||
;
|
||||
; Port to bind to for HTTP sessions (default is 8088)
|
||||
;
|
||||
;bindport=8088
|
||||
;
|
||||
; Prefix allows you to specify a prefix for all requests
|
||||
; to the server. The default is blank. If uncommented
|
||||
; all requests must begin with /asterisk
|
||||
;
|
||||
;prefix=asterisk
|
||||
;
|
||||
; sessionlimit specifies the maximum number of httpsessions that will be
|
||||
; allowed to exist at any given time. (default: 100)
|
||||
;
|
||||
;sessionlimit=100
|
||||
;
|
||||
; Whether Asterisk should serve static content from http-static
|
||||
; Default is no.
|
||||
;
|
||||
;enablestatic=yes
|
||||
;
|
||||
; Redirect one URI to another. This is how you would set a
|
||||
; default page.
|
||||
; Syntax: redirect=<from here> <to there>
|
||||
; For example, if you are using the Asterisk-gui,
|
||||
; it is convenient to enable the following redirect:
|
||||
;
|
||||
;redirect = / /static/config/cfgbasic.html
|
||||
;
|
||||
; HTTPS support. In addition to enabled=yes, you need to
|
||||
; explicitly enable ssl, define the port to use,
|
||||
; and have a certificate somewhere.
|
||||
; sslenable=yes ; enable ssl - default no.
|
||||
; sslbindport=4433 ; port to use - default is 8089
|
||||
; sslbindaddr=0.0.0.0 ; address to bind to - default is bindaddr.
|
||||
;
|
||||
; sslcert=/tmp/foo.pem ; path to the certificate
|
||||
;
|
||||
; To produce a certificate you can e.g. use openssl
|
||||
; openssl req -new -x509 -days 365 -nodes -out /tmp/foo.pem -keyout /tmp/foo.pem
|
||||
;
|
||||
|
||||
; The post_mappings section maps URLs to real paths on the filesystem. If a
|
||||
; POST is done from within an authenticated manager session to one of the
|
||||
; configured POST mappings, then any files in the POST will be placed in the
|
||||
; configured directory.
|
||||
;
|
||||
;[post_mappings]
|
||||
;
|
||||
; In this example, if the prefix option is set to "asterisk", then using the
|
||||
; POST URL: /asterisk/uploads will put files in /var/lib/asterisk/uploads/.
|
||||
;uploads = /var/lib/asterisk/uploads/
|
||||
;
|
565
asterisk/iax.conf
Normal file
565
asterisk/iax.conf
Normal file
@ -0,0 +1,565 @@
|
||||
|
||||
; Inter-Asterisk eXchange driver definition
|
||||
;
|
||||
; This configuration is re-read at reload
|
||||
; or with the CLI command
|
||||
; reload chan_iax2.so
|
||||
;
|
||||
; General settings, like port number to bind to, and
|
||||
; an option address (the default is to bind to all
|
||||
; local addresses).
|
||||
;
|
||||
[general]
|
||||
;bindport=4569 ; bindport and bindaddr may be specified
|
||||
; ; NOTE: bindport must be specified BEFORE
|
||||
; bindaddr or may be specified on a specific
|
||||
; bindaddr if followed by colon and port
|
||||
; (e.g. bindaddr=192.168.0.1:4569)
|
||||
;bindaddr=192.168.0.1 ; more than once to bind to multiple
|
||||
; ; addresses, but the first will be the
|
||||
; ; default
|
||||
;
|
||||
; Set iaxcompat to yes if you plan to use layered switches or
|
||||
; some other scenario which may cause some delay when doing a
|
||||
; lookup in the dialplan. It incurs a small performance hit to
|
||||
; enable it. This option causes Asterisk to spawn a separate thread
|
||||
; when it receives an IAX DPREQ (Dialplan Request) instead of
|
||||
; blocking while it waits for a response.
|
||||
;
|
||||
;iaxcompat=yes
|
||||
;
|
||||
; Disable UDP checksums (if nochecksums is set, then no checkums will
|
||||
; be calculated/checked on systems supporting this feature)
|
||||
;
|
||||
;nochecksums=no
|
||||
;
|
||||
;
|
||||
; For increased security against brute force password attacks
|
||||
; enable "delayreject" which will delay the sending of authentication
|
||||
; reject for REGREQ or AUTHREP if there is a password.
|
||||
;
|
||||
;delayreject=yes
|
||||
;
|
||||
; You may specify a global default AMA flag for iaxtel calls. It must be
|
||||
; one of 'default', 'omit', 'billing', or 'documentation'. These flags
|
||||
; are used in the generation of call detail records.
|
||||
;
|
||||
;amaflags=default
|
||||
;
|
||||
; ADSI (Analog Display Services Interface) can be enabled if you have
|
||||
; (or may have) ADSI compatible CPE equipment
|
||||
;
|
||||
;adsi=no
|
||||
;
|
||||
; Perform an SRV lookup on outbound calls
|
||||
;
|
||||
;srvlookup=yes
|
||||
;
|
||||
; You may specify a default account for Call Detail Records in addition
|
||||
; to specifying on a per-user basis
|
||||
;
|
||||
;accountcode=lss0101
|
||||
;
|
||||
; You may specify a global default language for users.
|
||||
; Can be specified also on a per-user basis
|
||||
; If omitted, will fallback to english
|
||||
;
|
||||
;language=en
|
||||
;
|
||||
; This option specifies a preference for which music on hold class this channel
|
||||
; should listen to when put on hold if the music class has not been set on the
|
||||
; channel with Set(CHANNEL(musicclass)=whatever) in the dialplan, and the peer
|
||||
; channel putting this one on hold did not suggest a music class.
|
||||
;
|
||||
; If this option is set to "passthrough", then the hold message will always be
|
||||
; passed through as signalling instead of generating hold music locally.
|
||||
;
|
||||
; This option may be specified globally, or on a per-user or per-peer basis.
|
||||
;
|
||||
;mohinterpret=default
|
||||
;
|
||||
; This option specifies which music on hold class to suggest to the peer channel
|
||||
; when this channel places the peer on hold. It may be specified globally or on
|
||||
; a per-user or per-peer basis.
|
||||
;
|
||||
;mohsuggest=default
|
||||
;
|
||||
; Specify bandwidth of low, medium, or high to control which codecs are used
|
||||
; in general.
|
||||
;
|
||||
bandwidth=low
|
||||
;
|
||||
; You can also fine tune codecs here using "allow" and "disallow" clauses
|
||||
; with specific codecs. Use "all" to represent all formats.
|
||||
;
|
||||
;allow=all ; same as bandwidth=high
|
||||
;disallow=g723.1 ; Hm... Proprietary, don't use it...
|
||||
disallow=lpc10 ; Icky sound quality... Mr. Roboto.
|
||||
;allow=gsm ; Always allow GSM, it's cool :)
|
||||
;
|
||||
|
||||
; You can adjust several parameters relating to the jitter buffer.
|
||||
; The jitter buffer's function is to compensate for varying
|
||||
; network delay.
|
||||
;
|
||||
; All the jitter buffer settings are in milliseconds.
|
||||
; The jitter buffer works for INCOMING audio - the outbound audio
|
||||
; will be dejittered by the jitter buffer at the other end.
|
||||
;
|
||||
; jitterbuffer=yes|no: global default as to whether you want
|
||||
; the jitter buffer at all.
|
||||
;
|
||||
; forcejitterbuffer=yes|no: in the ideal world, when we bridge VoIP channels
|
||||
; we don't want to do jitterbuffering on the switch, since the endpoints
|
||||
; can each handle this. However, some endpoints may have poor jitterbuffers
|
||||
; themselves, so this option will force * to always jitterbuffer, even in this
|
||||
; case.
|
||||
;
|
||||
; maxjitterbuffer: a maximum size for the jitter buffer.
|
||||
; Setting a reasonable maximum here will prevent the call delay
|
||||
; from rising to silly values in extreme situations; you'll hear
|
||||
; SOMETHING, even though it will be jittery.
|
||||
;
|
||||
; resyncthreshold: when the jitterbuffer notices a significant change in delay
|
||||
; that continues over a few frames, it will resync, assuming that the change in
|
||||
; delay was caused by a timestamping mix-up. The threshold for noticing a
|
||||
; change in delay is measured as twice the measured jitter plus this resync
|
||||
; threshold.
|
||||
; Resyncing can be disabled by setting this parameter to -1.
|
||||
;
|
||||
; maxjitterinterps: the maximum number of interpolation frames the jitterbuffer
|
||||
; should return in a row. Since some clients do not send CNG/DTX frames to
|
||||
; indicate silence, the jitterbuffer will assume silence has begun after
|
||||
; returning this many interpolations. This prevents interpolating throughout
|
||||
; a long silence.
|
||||
;
|
||||
;
|
||||
; jittertargetextra: number of milliseconds by which the new jitter buffer
|
||||
; will pad its size. the default is 40, so without modification, the new
|
||||
; jitter buffer will set its size to the jitter value plus 40 milliseconds.
|
||||
; increasing this value may help if your network normally has low jitter,
|
||||
; but occasionally has spikes.
|
||||
;
|
||||
|
||||
jitterbuffer=no
|
||||
forcejitterbuffer=no
|
||||
;maxjitterbuffer=1000
|
||||
;maxjitterinterps=10
|
||||
;resyncthreshold=1000
|
||||
;jittertargetextra=40
|
||||
|
||||
; Minimum and maximum amounts of time that IAX peers can request as
|
||||
; a registration expiration interval (in seconds).
|
||||
; minregexpire = 60
|
||||
; maxregexpire = 60
|
||||
;
|
||||
; Enable IAX2 encryption. The default is no.
|
||||
;
|
||||
; encryption = yes
|
||||
;
|
||||
; Force encryption insures no connection is established unless both sides support
|
||||
; encryption. By turning this option on, encryption is automatically turned on as well.
|
||||
;
|
||||
; forceencryption = yes
|
||||
|
||||
; This option defines the maximum payload in bytes an IAX2 trunk can support at a given time.
|
||||
; The best way to explain this is to provide an example. If the maximum number of calls
|
||||
; to be supported is 800, and each call transmits 20ms frames of audio using ulaw
|
||||
; ((8000hz / 1000ms) * 20ms * 1 byte per sample = 160 bytes per frame), the maximum load
|
||||
; in bytes is (160 bytes per frame) * (800 calls) = 128000 bytes total. Once this limit is
|
||||
; reached, calls may be dropped or begin to lose audio. Depending on the codec in use and
|
||||
; number of channels to be supported this value may need to be raised, but in most cases the
|
||||
; default value is large enough.
|
||||
;
|
||||
; trunkmaxsize = 128000 ; defaults to 128000 bytes, which supports up to 800 calls of ulaw
|
||||
; ; at 20ms a frame.
|
||||
|
||||
; With a large amount of traffic on IAX2 trunks, there is a risk of bad voice quality when
|
||||
; allowing the Linux system to handle fragmentation of UDP packets. Depending on the size of
|
||||
; each payload, allowing the O/S to handle fragmentation may not be very efficient. This
|
||||
; setting sets the maximum transmission unit for IAX2 UDP trunking. The default is 1240 bytes
|
||||
; which means if a trunk's payload is over 1240 bytes for every 20ms it will be broken into
|
||||
; multiple 1240 byte messages. Zero disables this functionality and let's the O/S handle
|
||||
; fragmentation.
|
||||
;
|
||||
; trunkmtu = 1240 ; trunk data will be sent in 1240 byte messages.
|
||||
|
||||
; trunkfreq sets how frequently trunk messages are sent in milliseconds. This value is 20ms by
|
||||
; default, which means the trunk will send all the date queued to it in the past 20ms. By
|
||||
; increasing the time between sending trunk messages, the trunk's payload size will increase as
|
||||
; well. Note, depending on the size set by trunkmtu, messages may be sent more often than
|
||||
; specified. For example if a trunk's message size grows to the trunkmtu size before 20ms is
|
||||
; reached that message will be sent immediately.
|
||||
;
|
||||
; trunkfreq=20 ; How frequently to send trunk msgs (in ms). This is 20ms by default.
|
||||
|
||||
; Should we send timestamps for the individual sub-frames within trunk frames?
|
||||
; There is a small bandwidth use for these (less than 1kbps/call), but they
|
||||
; ensure that frame timestamps get sent end-to-end properly. If both ends of
|
||||
; all your trunks go directly to TDM, _and_ your trunkfreq equals the frame
|
||||
; length for your codecs, you can probably suppress these. The receiver must
|
||||
; also support this feature, although they do not also need to have it enabled.
|
||||
;
|
||||
; trunktimestamps=yes
|
||||
;
|
||||
|
||||
; IAX helper threads
|
||||
|
||||
; Establishes the number of iax helper threads to handle I/O.
|
||||
; iaxthreadcount = 10
|
||||
; Establishes the number of extra dynamic threads that may be spawned to handle I/O
|
||||
; iaxmaxthreadcount = 100
|
||||
;
|
||||
; We can register with another IAX server to let him know where we are
|
||||
; in case we have a dynamic IP address for example
|
||||
;
|
||||
; Register with tormenta using username marko and password secretpass
|
||||
;
|
||||
;register => marko:secretpass@tormenta.linux-support.net
|
||||
;
|
||||
; Register joe at remote host with no password
|
||||
;
|
||||
;register => joe@remotehost:5656
|
||||
;
|
||||
; Register marko at tormenta.linux-support.net using RSA key "torkey"
|
||||
;
|
||||
;register => marko:[torkey]@tormenta.linux-support.net
|
||||
;
|
||||
; Sample Registration for iaxtel
|
||||
;
|
||||
; Visit http://www.iaxtel.com to register with iaxtel. Replace "user"
|
||||
; and "pass" with your username and password for iaxtel. Incoming
|
||||
; calls arrive at the "s" extension of "default" context.
|
||||
;
|
||||
;register => user:pass@iaxtel.com
|
||||
;
|
||||
; Sample Registration for IAX + FWD
|
||||
;
|
||||
; To register using IAX with FWD, it must be enabled by visiting the URL
|
||||
; http://www.fwdnet.net/index.php?section_id=112
|
||||
;
|
||||
; Note that you need an extension in you default context which matches
|
||||
; your free world dialup number. Please replace "FWDNumber" with your
|
||||
; FWD number and "passwd" with your password.
|
||||
;
|
||||
;register => FWDNumber:passwd@iax.fwdnet.net
|
||||
;
|
||||
;
|
||||
; You can disable authentication debugging to reduce the amount of
|
||||
; debugging traffic.
|
||||
;
|
||||
;authdebug=no
|
||||
;
|
||||
; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters.
|
||||
;tos=ef
|
||||
;cos=5
|
||||
;
|
||||
; If regcontext is specified, Asterisk will dynamically create and destroy
|
||||
; a NoOp priority 1 extension for a given peer who registers or unregisters
|
||||
; with us. The actual extension is the 'regexten' parameter of the registering
|
||||
; peer or its name if 'regexten' is not provided. More than one regexten
|
||||
; may be supplied if they are separated by '&'. Patterns may be used in
|
||||
; regexten.
|
||||
;
|
||||
;regcontext=iaxregistrations
|
||||
;
|
||||
; If we don't get ACK to our NEW within 2000ms, and autokill is set to yes,
|
||||
; then we cancel the whole thing (that's enough time for one retransmission
|
||||
; only). This is used to keep things from stalling for a long time for a host
|
||||
; that is not available, but would be ill advised for bad connections. In
|
||||
; addition to 'yes' or 'no' you can also specify a number of milliseconds.
|
||||
; See 'qualify' for individual peers to turn on for just a specific peer.
|
||||
;
|
||||
autokill=yes
|
||||
;
|
||||
; codecpriority controls the codec negotiation of an inbound IAX call.
|
||||
; This option is inherited to all user entities. It can also be defined
|
||||
; in each user entity separately which will override the setting in general.
|
||||
;
|
||||
; The valid values are:
|
||||
;
|
||||
; caller - Consider the callers preferred order ahead of the host's.
|
||||
; host - Consider the host's preferred order ahead of the caller's.
|
||||
; disabled - Disable the consideration of codec preference altogether.
|
||||
; (this is the original behaviour before preferences were added)
|
||||
; reqonly - Same as disabled, only do not consider capabilities if
|
||||
; the requested format is not available the call will only
|
||||
; be accepted if the requested format is available.
|
||||
;
|
||||
; The default value is 'host'
|
||||
;
|
||||
;codecpriority=host
|
||||
;
|
||||
; allowfwdownload controls whether this host will serve out firmware to
|
||||
; IAX clients which request it. This has only been used for the IAXy,
|
||||
; and it has been recently proven that this firmware distribution method
|
||||
; can be used as a source of traffic amplification attacks. Also, the
|
||||
; IAXy firmware has not been updated for at least 18 months, so unless
|
||||
; you are provisioning IAXys in a secure network, we recommend that you
|
||||
; leave this option to the default, off.
|
||||
;
|
||||
;allowfwdownload=yes
|
||||
|
||||
;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list
|
||||
; just like friends added from the config file only on a
|
||||
; as-needed basis? (yes|no)
|
||||
|
||||
;rtupdate=yes ; Send registry updates to database using realtime? (yes|no)
|
||||
; If set to yes, when a IAX2 peer registers successfully,
|
||||
; the ip address, the origination port, the registration period,
|
||||
; and the username of the peer will be set to database via realtime.
|
||||
; If not present, defaults to 'yes'.
|
||||
|
||||
;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule
|
||||
; as if it had just registered? (yes|no|<seconds>)
|
||||
; If set to yes, when the registration expires, the friend will
|
||||
; vanish from the configuration until requested again.
|
||||
; If set to an integer, friends expire within this number of
|
||||
; seconds instead of the registration interval.
|
||||
|
||||
;rtignoreregexpire=yes ; When reading a peer from Realtime, if the peer's registration
|
||||
; has expired based on its registration interval, used the stored
|
||||
; address information regardless. (yes|no)
|
||||
|
||||
;parkinglot=edvina ; Default parkinglot for IAX peers and users
|
||||
; This can also be configured per device
|
||||
; Parkinglots are defined in features.conf
|
||||
|
||||
;
|
||||
; The following two options are used to disable call token validation for the
|
||||
; purposes of interoperability with IAX2 endpoints that do not yet support it.
|
||||
;
|
||||
; Call token validation can be set as optional for a single IP address or IP
|
||||
; address range by using the 'calltokenoptional' option. 'calltokenoptional' is
|
||||
; only a global option.
|
||||
;
|
||||
;calltokenoptional=209.16.236.73/255.255.255.0
|
||||
;
|
||||
; By setting 'requirecalltoken=no', call token validation becomes optional for
|
||||
; that peer/user. By setting 'requirecalltoken=auto', call token validation
|
||||
; is optional until a call token supporting peer registers successfully using
|
||||
; call token validation. This is used as an indication that from now on, we
|
||||
; can require it from this peer. So, requirecalltoken is internally set to yes.
|
||||
; requirecalltoken may only be used in peer/user/friend definitions,
|
||||
; not in the global scope.
|
||||
; By default, 'requirecalltoken=yes'.
|
||||
;
|
||||
;requirecalltoken=no
|
||||
;
|
||||
|
||||
;
|
||||
; These options are used to limit the amount of call numbers allocated to a
|
||||
; single IP address. Before changing any of these values, it is highly encouraged
|
||||
; to read the user guide associated with these options first. In most cases, the
|
||||
; default values for these options are sufficient.
|
||||
;
|
||||
; The 'maxcallnumbers' option limits the amount of call numbers allowed for each
|
||||
; individual remote IP address. Once an IP address reaches it's call number
|
||||
; limit, no more new connections are allowed until the previous ones close. This
|
||||
; option can be used in a peer definition as well, but only takes effect for
|
||||
; the IP of a dynamic peer after it completes registration.
|
||||
;
|
||||
;maxcallnumbers=512
|
||||
;
|
||||
; The 'maxcallnumbers_nonvalidated' is used to set the combined number of call
|
||||
; numbers that can be allocated for connections where call token validation
|
||||
; has been disabled. Unlike the 'maxcallnumbers' option, this limit is not
|
||||
; separate for each individual IP address. Any connection resulting in a
|
||||
; non-call token validated call number being allocated contributes to this
|
||||
; limit. For use cases, see the call token user guide. This option's
|
||||
; default value of 8192 should be sufficient in most cases.
|
||||
;
|
||||
;maxcallnumbers_nonvalidated=1024
|
||||
;
|
||||
; The [callnumberlimits] section allows custom call number limits to be set
|
||||
; for specific IP addresses and IP address ranges. These limits take precedence
|
||||
; over the global 'maxcallnumbers' option, but may still be overridden by a
|
||||
; peer defined 'maxcallnumbers' entry. Note that these limits take effect
|
||||
; for every individual address within the range, not the range as a whole.
|
||||
;
|
||||
;[callnumberlimits]
|
||||
;10.1.1.0/255.255.255.0 = 24
|
||||
;10.1.2.0/255.255.255.0 = 32
|
||||
;
|
||||
|
||||
; The shrinkcallerid function removes '(', ' ', ')', non-trailing '.', and '-' not
|
||||
; in square brackets. For example, the caller id value 555.5555 becomes 5555555
|
||||
; when this option is enabled. Disabling this option results in no modification
|
||||
; of the caller id value, which is necessary when the caller id represents something
|
||||
; that must be preserved. This option can only be used in the [general] section.
|
||||
; By default this option is on.
|
||||
;
|
||||
;shrinkcallerid=yes ; on by default
|
||||
|
||||
; Guest sections for unauthenticated connection attempts. Just specify an
|
||||
; empty secret, or provide no secret section.
|
||||
;
|
||||
[guest]
|
||||
type=user
|
||||
context=default
|
||||
callerid="Guest IAX User"
|
||||
|
||||
;
|
||||
; Trust Caller*ID Coming from iaxtel.com
|
||||
;
|
||||
[iaxtel]
|
||||
type=user
|
||||
context=default
|
||||
auth=rsa
|
||||
inkeys=iaxtel
|
||||
|
||||
;
|
||||
; Trust Caller*ID Coming from iax.fwdnet.net
|
||||
;
|
||||
[iaxfwd]
|
||||
type=user
|
||||
context=default
|
||||
auth=rsa
|
||||
inkeys=freeworlddialup
|
||||
|
||||
;
|
||||
; Trust callerid delivered over DUNDi/e164
|
||||
;
|
||||
;
|
||||
;[dundi]
|
||||
;type=user
|
||||
;dbsecret=dundi/secret
|
||||
;context=dundi-e164-local
|
||||
|
||||
;
|
||||
; Further user sections may be added, specifying a context and a secret used
|
||||
; for connections with that given authentication name. Limited IP based
|
||||
; access control is allowed by use of "permit" and "deny" keywords. Multiple
|
||||
; rules are permitted. Multiple permitted contexts may be specified, in
|
||||
; which case the first will be the default. You can also override caller*ID
|
||||
; so that when you receive a call you set the Caller*ID to be what you want
|
||||
; instead of trusting what the remote user provides
|
||||
;
|
||||
; There are three authentication methods that are supported: md5, plaintext,
|
||||
; and rsa. The least secure is "plaintext", which sends passwords cleartext
|
||||
; across the net. "md5" uses a challenge/response md5 sum arrangement, but
|
||||
; still requires both ends have plain text access to the secret. "rsa" allows
|
||||
; unidirectional secret knowledge through public/private keys. If "rsa"
|
||||
; authentication is used, "inkeys" is a list of acceptable public keys on the
|
||||
; local system that can be used to authenticate the remote peer, separated by
|
||||
; the ":" character. "outkey" is a single, private key to use to authenticate
|
||||
; to the other side. Public keys are named /var/lib/asterisk/keys/<name>.pub
|
||||
; while private keys are named /var/lib/asterisk/keys/<name>.key. Private
|
||||
; keys should always be 3DES encrypted.
|
||||
;
|
||||
;
|
||||
; NOTE: All hostnames and IP addresses in this file are for example purposes
|
||||
; only; you should not expect any of them to actually be available for
|
||||
; your use.
|
||||
;
|
||||
;
|
||||
;[markster]
|
||||
;type=user
|
||||
;context=default
|
||||
;context=local
|
||||
;auth=md5,plaintext,rsa
|
||||
;secret=markpasswd
|
||||
;setvar=ATTENDED_TRANSFER_COMPLETE_SOUND=beep ; This channel variable will
|
||||
; cause the given audio file to
|
||||
; be played upon completion of
|
||||
; an attended transfer.
|
||||
;dbsecret=mysecrets/place ; Secrets can be stored in astdb, too
|
||||
;transfer=no ; Disable IAX native transfer
|
||||
;transfer=mediaonly ; When doing IAX native transfers, transfer
|
||||
; only media stream
|
||||
;jitterbuffer=yes ; Override global setting an enable jitter buffer
|
||||
; ; for this user
|
||||
;maxauthreq=10 ; Set maximum number of outstanding AUTHREQs waiting for replies. Any further authentication attempts will be blocked
|
||||
; ; if this limit is reached until they expire or a reply is received.
|
||||
;callerid="Mark Spencer" <(256) 428-6275>
|
||||
;deny=0.0.0.0/0.0.0.0
|
||||
;accountcode=markster0101
|
||||
;permit=209.16.236.73/255.255.255.0
|
||||
;language=en ; Use english as default language
|
||||
;encryption=yes ; Enable IAX2 encryption. The default is no.
|
||||
;keyrotate=off ; This is a compatibility option for older versions of
|
||||
; ; IAX2 that do not support key rotation with encryption.
|
||||
; ; This option will disable the IAX_COMMAND_RTENC message.
|
||||
; ; default is on.
|
||||
; ;
|
||||
;
|
||||
; Peers may also be specified, with a secret and
|
||||
; a remote hostname.
|
||||
;
|
||||
[demo]
|
||||
type=peer
|
||||
username=asterisk
|
||||
secret=supersecret
|
||||
host=216.207.245.47
|
||||
;sendani=no
|
||||
;host=asterisk.linux-support.net
|
||||
;port=5036
|
||||
;mask=255.255.255.255
|
||||
;qualify=yes ; Make sure this peer is alive
|
||||
;qualifysmoothing = yes ; use an average of the last two PONG
|
||||
; results to reduce falsely detected LAGGED hosts
|
||||
; Default: Off
|
||||
;qualifyfreqok = 60000 ; how frequently to ping the peer when
|
||||
; everything seems to be ok, in milliseconds
|
||||
;qualifyfreqnotok = 10000 ; how frequently to ping the peer when it's
|
||||
; either LAGGED or UNAVAILABLE, in milliseconds
|
||||
;jitterbuffer=no ; Turn off jitter buffer for this peer
|
||||
;
|
||||
;encryption=yes ; Enable IAX2 encryption. The default is no.
|
||||
;keyrotate=off ; This is a compatibility option for older versions of
|
||||
; ; IAX2 that do not support key rotation with encryption.
|
||||
; ; This option will disable the IAX_COMMAND_RTENC message.
|
||||
; ; default is on.
|
||||
; ;
|
||||
; Peers can remotely register as well, so that they can be mobile. Default
|
||||
; IP's can also optionally be given but are not required. Caller*ID can be
|
||||
; suggested to the other side as well if it is for example a phone instead of
|
||||
; another PBX.
|
||||
;
|
||||
|
||||
;[dynamichost]
|
||||
;host=dynamic
|
||||
;secret=mysecret
|
||||
;mailbox=1234 ; Notify about mailbox 1234
|
||||
;inkeys=key1:key2
|
||||
;peercontext=local ; Default context to request for calls to peer
|
||||
;defaultip=216.207.245.34
|
||||
;callerid="Some Host" <(256) 428-6011>
|
||||
;
|
||||
|
||||
;
|
||||
;[biggateway]
|
||||
;type=peer
|
||||
;host=192.168.0.1
|
||||
;context=*
|
||||
;secret=myscret
|
||||
;trunk=yes ; Use IAX2 trunking with this host
|
||||
;timezone=America/New_York ; Set a timezone for the date/time IE
|
||||
;
|
||||
|
||||
;
|
||||
; Friends are a short cut for creating a user and
|
||||
; a peer with the same values.
|
||||
;
|
||||
;[marko]
|
||||
;type=friend
|
||||
;host=dynamic
|
||||
;regexten=1234
|
||||
;secret=moofoo ; Multiple secrets may be specified. For a "user", all
|
||||
;secret=foomoo ; specified entries will be accepted as valid. For a "peer",
|
||||
;secret=shazbot ; only the last specified secret will be used.
|
||||
;context=default
|
||||
;permit=0.0.0.0/0.0.0.0
|
||||
|
||||
;
|
||||
; With immediate=yes, an IAX phone or a phone on an IAXy acts as a hot-line
|
||||
; which goes immediately to the s extension when picked up. Useful for
|
||||
; elevator phones, manual service, or other similar applications.
|
||||
;
|
||||
;[manual]
|
||||
;type=friend
|
||||
;host=dynamic
|
||||
;immediate=yes ; go immediately to s extension when picked up
|
||||
;secret=moofoo ; when immediate=yes is specified, secret is required
|
||||
;context=number-please ; we start at the s extension in this context
|
||||
;
|
81
asterisk/iaxprov.conf
Normal file
81
asterisk/iaxprov.conf
Normal file
@ -0,0 +1,81 @@
|
||||
;
|
||||
; IAX2 Provisioning Information
|
||||
;
|
||||
; Contains provisioning information for templates and for specific service
|
||||
; entries.
|
||||
;
|
||||
; Templates provide a group of settings from which provisioning takes place.
|
||||
; A template may be based upon any template that has been specified before
|
||||
; it. If the template that an entry is based on is not specified then it is
|
||||
; presumed to be 'default' (unless it is the first of course).
|
||||
;
|
||||
; Templates which begin with 'si-' are used for provisioning units with
|
||||
; specific service identifiers. For example the entry "si-000364000126"
|
||||
; would be used when the device with the corresponding service identifier of
|
||||
; "000364000126" attempts to register or make a call.
|
||||
;
|
||||
[default]
|
||||
;
|
||||
; The port number the device should use to bind to. The default is 4569.
|
||||
;
|
||||
;port=4569
|
||||
;
|
||||
; server is our PRIMARY server for registration and placing calls
|
||||
;
|
||||
;server=192.168.69.3
|
||||
;
|
||||
; altserver is the BACKUP server for registration and placing calls in the
|
||||
; event the primary server is unavailable.
|
||||
;
|
||||
;altserver=192.168.69.4
|
||||
;
|
||||
; port is the port number to use for IAX2 outbound. The connections to the
|
||||
; server and altserver -- default is of course 4569.
|
||||
;serverport=4569
|
||||
;
|
||||
; language is the preferred language for the device
|
||||
;
|
||||
;language=en
|
||||
;
|
||||
; codec is the requested codec. The iaxy supports ulaw and adpcm
|
||||
;
|
||||
codec=ulaw
|
||||
;
|
||||
; flags is a comma separated list of flags which the device should
|
||||
; use and may contain any of the following keywords:
|
||||
;
|
||||
; "register" - Register with server
|
||||
; "secure" - Do not accept calls / provisioning not originated by the server
|
||||
; "heartbeat" - Generate status packets on port 9999 sent to 255.255.255.255
|
||||
; "debug" - Output extra debugging to port 9999
|
||||
;
|
||||
; Note that use can use += and -= to adjust parameters
|
||||
;
|
||||
flags=register,heartbeat
|
||||
;
|
||||
; See qos.tex or Quality of Service section of asterisk.pdf for a description of this parameter.
|
||||
;tos=ef
|
||||
;
|
||||
; Example iaxy provisioning
|
||||
;
|
||||
;[si-000364000126]
|
||||
;user=iaxy
|
||||
;pass=bitsy
|
||||
;flags += debug
|
||||
|
||||
;[si-000364000127]
|
||||
;user=iaxy2
|
||||
;pass=bitsy2
|
||||
;template=si-000364000126
|
||||
;flags += debug
|
||||
|
||||
;
|
||||
;[*]
|
||||
;
|
||||
; If specified, the '*' provisioning is used for all devices which do not
|
||||
; have another provisioning entry within the file. If unspecified, no
|
||||
; provisioning will take place for devices which have no entry. DO NOT
|
||||
; USE A '*' PROVISIONING ENTRY UNLESS YOU KNOW WHAT YOU'RE DOING.
|
||||
;
|
||||
;template=default
|
||||
|
731
asterisk/indications.conf
Normal file
731
asterisk/indications.conf
Normal file
@ -0,0 +1,731 @@
|
||||
;
|
||||
; indications.conf
|
||||
;
|
||||
; Configuration file for location specific tone indications
|
||||
;
|
||||
|
||||
;
|
||||
; NOTE:
|
||||
; When adding countries to this file, please keep them in alphabetical
|
||||
; order according to the 2-character country codes!
|
||||
;
|
||||
; The [general] category is for certain global variables.
|
||||
; All other categories are interpreted as location specific indications
|
||||
;
|
||||
|
||||
[general]
|
||||
country=us ; default location
|
||||
|
||||
|
||||
; [example]
|
||||
; description = string
|
||||
; The full name of your country, in English.
|
||||
; ringcadence = num[,num]*
|
||||
; List of durations the physical bell rings.
|
||||
; dial = tonelist
|
||||
; Set of tones to be played when one picks up the hook.
|
||||
; busy = tonelist
|
||||
; Set of tones played when the receiving end is busy.
|
||||
; congestion = tonelist
|
||||
; Set of tones played when there is some congestion (on the network?)
|
||||
; callwaiting = tonelist
|
||||
; Set of tones played when there is a call waiting in the background.
|
||||
; dialrecall = tonelist
|
||||
; Not well defined; many phone systems play a recall dial tone after hook
|
||||
; flash.
|
||||
; record = tonelist
|
||||
; Set of tones played when call recording is in progress.
|
||||
; info = tonelist
|
||||
; Set of tones played with special information messages (e.g., "number is
|
||||
; out of service")
|
||||
; 'name' = tonelist
|
||||
; Every other variable will be available as a shortcut for the "PlayList" command
|
||||
; but will not be used automatically by Asterisk.
|
||||
;
|
||||
;
|
||||
; The tonelist itself is defined by a comma-separated sequence of elements.
|
||||
; Each element consist of a frequency (f) with an optional duration (in ms)
|
||||
; attached to it (f/duration). The frequency component may be a mixture of two
|
||||
; frequencies (f1+f2) or a frequency modulated by another frequency (f1*f2).
|
||||
; The implicit modulation depth is fixed at 90%, though.
|
||||
; If the list element starts with a !, that element is NOT repeated,
|
||||
; therefore, only if all elements start with !, the tonelist is time-limited,
|
||||
; all others will repeat indefinitely.
|
||||
;
|
||||
; concisely:
|
||||
; element = [!]freq[+|*freq2][/duration]
|
||||
; tonelist = element[,element]*
|
||||
;
|
||||
|
||||
[at]
|
||||
description = Austria
|
||||
ringcadence = 1000,5000
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
dial = 420
|
||||
busy = 420/400,0/400
|
||||
ring = 420/1000,0/5000
|
||||
congestion = 420/200,0/200
|
||||
callwaiting = 420/40,0/1960
|
||||
dialrecall = 420
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/80,0/14920
|
||||
info = 950/330,1450/330,1850/330,0/1000
|
||||
stutter = 380+420
|
||||
|
||||
[au]
|
||||
description = Australia
|
||||
; Reference http://www.acif.org.au/__data/page/3303/S002_2001.pdf
|
||||
; Normal Ring
|
||||
ringcadence = 400,200,400,2000
|
||||
; Distinctive Ring 1 - Forwarded Calls
|
||||
; 400,400,200,200,400,1400
|
||||
; Distinctive Ring 2 - Selective Ring 2 + Operator + Recall
|
||||
; 400,400,200,2000
|
||||
; Distinctive Ring 3 - Multiple Subscriber Number 1
|
||||
; 200,200,400,2200
|
||||
; Distinctive Ring 4 - Selective Ring 1 + Centrex
|
||||
; 400,2600
|
||||
; Distinctive Ring 5 - Selective Ring 3
|
||||
; 400,400,200,400,200,1400
|
||||
; Distinctive Ring 6 - Multiple Subscriber Number 2
|
||||
; 200,400,200,200,400,1600
|
||||
; Distinctive Ring 7 - Multiple Subscriber Number 3 + Data Privacy
|
||||
; 200,400,200,400,200,1600
|
||||
; Tones
|
||||
dial = 413+438
|
||||
busy = 425/375,0/375
|
||||
ring = 413+438/400,0/200,413+438/400,0/2000
|
||||
; XXX Congestion: Should reduce by 10 db every other cadence XXX
|
||||
congestion = 425/375,0/375,420/375,0/375
|
||||
callwaiting = 425/200,0/200,425/200,0/4400
|
||||
dialrecall = 413+438
|
||||
; Record tone used for Call Intrusion/Recording or Conference
|
||||
record = !425/1000,!0/15000,425/360,0/15000
|
||||
info = 425/2500,0/500
|
||||
; Other Australian Tones
|
||||
; The STD "pips" indicate the call is not an untimed local call
|
||||
std = !525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100
|
||||
; Facility confirmation tone (eg. Call Forward Activated)
|
||||
facility = 425
|
||||
; Message Waiting "stutter" dialtone
|
||||
stutter = 413+438/100,0/40
|
||||
; Ringtone for calls to Telstra mobiles
|
||||
ringmobile = 400+450/400,0/200,400+450/400,0/2000
|
||||
|
||||
[bg]
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
description = Bulgaria
|
||||
ringcadence = 1000,4000
|
||||
;
|
||||
dial = 425
|
||||
busy = 425/500,0/500
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/250,0/250
|
||||
callwaiting = 425/150,0/150,425/150,0/4000
|
||||
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
|
||||
record = 1400/425,0/15000
|
||||
info = 950/330,1400/330,1800/330,0/1000
|
||||
stutter = 425/1500,0/100
|
||||
|
||||
[br]
|
||||
description = Brazil
|
||||
ringcadence = 1000,4000
|
||||
dial = 425
|
||||
busy = 425/250,0/250
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/250,0/250,425/750,0/250
|
||||
callwaiting = 425/50,0/1000
|
||||
; Dialrecall not used in Brazil standard (using UK standard)
|
||||
dialrecall = 350+440
|
||||
; Record tone is not used in Brazil, use busy tone
|
||||
record = 425/250,0/250
|
||||
; Info not used in Brazil standard (using UK standard)
|
||||
info = 950/330,1400/330,1800/330
|
||||
stutter = 350+440
|
||||
|
||||
[be]
|
||||
description = Belgium
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
ringcadence = 1000,3000
|
||||
dial = 425
|
||||
busy = 425/500,0/500
|
||||
ring = 425/1000,0/3000
|
||||
congestion = 425/167,0/167
|
||||
callwaiting = 1400/175,0/175,1400/175,0/3500
|
||||
; DIALRECALL - not specified
|
||||
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/500,0/15000
|
||||
info = 900/330,1400/330,1800/330,0/1000
|
||||
stutter = 425/1000,0/250
|
||||
|
||||
[ch]
|
||||
description = Switzerland
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
ringcadence = 1000,4000
|
||||
dial = 425
|
||||
busy = 425/500,0/500
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/200,0/200
|
||||
callwaiting = 425/200,0/200,425/200,0/4000
|
||||
; DIALRECALL - not specified
|
||||
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/80,0/15000
|
||||
info = 950/330,1400/330,1800/330,0/1000
|
||||
stutter = 425+340/1100,0/1100
|
||||
|
||||
[cl]
|
||||
description = Chile
|
||||
; According to specs from Telefonica CTC Chile
|
||||
ringcadence = 1000,3000
|
||||
dial = 400
|
||||
busy = 400/500,0/500
|
||||
ring = 400/1000,0/3000
|
||||
congestion = 400/200,0/200
|
||||
callwaiting = 400/250,0/8750
|
||||
dialrecall = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
|
||||
record = 1400/500,0/15000
|
||||
info = 950/333,1400/333,1800/333,0/1000
|
||||
stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
|
||||
|
||||
[cn]
|
||||
description = China
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
ringcadence = 1000,4000
|
||||
dial = 450
|
||||
busy = 450/350,0/350
|
||||
ring = 450/1000,0/4000
|
||||
congestion = 450/700,0/700
|
||||
callwaiting = 450/400,0/4000
|
||||
dialrecall = 450
|
||||
record = 950/400,0/10000
|
||||
info = 450/100,0/100,450/100,0/100,450/100,0/100,450/400,0/400
|
||||
; STUTTER - not specified
|
||||
stutter = 450+425
|
||||
|
||||
[cz]
|
||||
description = Czech Republic
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
ringcadence = 1000,4000
|
||||
dial = 425/330,0/330,425/660,0/660
|
||||
busy = 425/330,0/330
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/165,0/165
|
||||
callwaiting = 425/330,0/9000
|
||||
; DIALRECALL - not specified
|
||||
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425/330,0/330,425/660,0/660
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/500,0/14000
|
||||
info = 950/330,0/30,1400/330,0/30,1800/330,0/1000
|
||||
; STUTTER - not specified
|
||||
stutter = 425/450,0/50
|
||||
|
||||
[de]
|
||||
description = Germany
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
ringcadence = 1000,4000
|
||||
dial = 425
|
||||
busy = 425/480,0/480
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/240,0/240
|
||||
callwaiting = !425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,0
|
||||
; DIALRECALL - not specified
|
||||
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/80,0/15000
|
||||
info = 950/330,1400/330,1800/330,0/1000
|
||||
stutter = 425+400
|
||||
|
||||
[dk]
|
||||
description = Denmark
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
ringcadence = 1000,4000
|
||||
dial = 425
|
||||
busy = 425/500,0/500
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/200,0/200
|
||||
callwaiting = !425/200,!0/600,!425/200,!0/3000,!425/200,!0/200,!425/200,0
|
||||
; DIALRECALL - not specified
|
||||
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/80,0/15000
|
||||
info = 950/330,1400/330,1800/330,0/1000
|
||||
; STUTTER - not specified
|
||||
stutter = 425/450,0/50
|
||||
|
||||
[ee]
|
||||
description = Estonia
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
ringcadence = 1000,4000
|
||||
dial = 425
|
||||
busy = 425/300,0/300
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/200,0/200
|
||||
; CALLWAIT not in accordance to ITU
|
||||
callwaiting = 950/650,0/325,950/325,0/30,1400/1300,0/2600
|
||||
; DIALRECALL - not specified
|
||||
dialrecall = 425/650,0/25
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/500,0/15000
|
||||
; INFO not in accordance to ITU
|
||||
info = 950/650,0/325,950/325,0/30,1400/1300,0/2600
|
||||
; STUTTER not specified
|
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
|
||||
|
||||
[es]
|
||||
description = Spain
|
||||
ringcadence = 1500,3000
|
||||
dial = 425
|
||||
busy = 425/200,0/200
|
||||
ring = 425/1500,0/3000
|
||||
congestion = 425/200,0/200,425/200,0/200,425/200,0/600
|
||||
callwaiting = 425/175,0/175,425/175,0/3500
|
||||
dialrecall = !425/200,!0/200,!425/200,!0/200,!425/200,!0/200,425
|
||||
record = 1400/500,0/15000
|
||||
info = 950/330,0/1000
|
||||
dialout = 500
|
||||
|
||||
|
||||
[fi]
|
||||
description = Finland
|
||||
ringcadence = 1000,4000
|
||||
dial = 425
|
||||
busy = 425/300,0/300
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/200,0/200
|
||||
callwaiting = 425/150,0/150,425/150,0/8000
|
||||
dialrecall = 425/650,0/25
|
||||
record = 1400/500,0/15000
|
||||
info = 950/650,0/325,950/325,0/30,1400/1300,0/2600
|
||||
stutter = 425/650,0/25
|
||||
|
||||
[fr]
|
||||
description = France
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
ringcadence = 1500,3500
|
||||
; Dialtone can also be 440+330
|
||||
dial = 440
|
||||
busy = 440/500,0/500
|
||||
ring = 440/1500,0/3500
|
||||
; CONGESTION - not specified
|
||||
congestion = 440/250,0/250
|
||||
callwait = 440/300,0/10000
|
||||
; DIALRECALL - not specified
|
||||
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/500,0/15000
|
||||
info = !950/330,!1400/330,!1800/330
|
||||
stutter = !440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,440
|
||||
|
||||
[gr]
|
||||
description = Greece
|
||||
ringcadence = 1000,4000
|
||||
dial = 425/200,0/300,425/700,0/800
|
||||
busy = 425/300,0/300
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/200,0/200
|
||||
callwaiting = 425/150,0/150,425/150,0/8000
|
||||
dialrecall = 425/650,0/25
|
||||
record = 1400/400,0/15000
|
||||
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
|
||||
stutter = 425/650,0/25
|
||||
|
||||
[hu]
|
||||
description = Hungary
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
ringcadence = 1250,3750
|
||||
dial = 425
|
||||
busy = 425/300,0/300
|
||||
ring = 425/1250,0/3750
|
||||
congestion = 425/300,0/300
|
||||
callwaiting = 425/40,0/1960
|
||||
dialrecall = 425+450
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/400,0/15000
|
||||
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
|
||||
stutter = 350+375+400
|
||||
|
||||
[il]
|
||||
description = Israel
|
||||
ringcadence = 1000,3000
|
||||
dial = 414
|
||||
busy = 414/500,0/500
|
||||
ring = 414/1000,0/3000
|
||||
congestion = 414/250,0/250
|
||||
callwaiting = 414/100,0/100,414/100,0/100,414/600,0/3000
|
||||
dialrecall = !414/100,!0/100,!414/100,!0/100,!414/100,!0/100,414
|
||||
record = 1400/500,0/15000
|
||||
info = 1000/330,1400/330,1800/330,0/1000
|
||||
stutter = !414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,414
|
||||
|
||||
|
||||
[in]
|
||||
description = India
|
||||
ringcadence = 400,200,400,2000
|
||||
dial = 400*25
|
||||
busy = 400/750,0/750
|
||||
ring = 400*25/400,0/200,400*25/400,0/2000
|
||||
congestion = 400/250,0/250
|
||||
callwaiting = 400/200,0/100,400/200,0/7500
|
||||
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
|
||||
record = 1400/500,0/15000
|
||||
info = !950/330,!1400/330,!1800/330,0/1000
|
||||
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
|
||||
|
||||
[it]
|
||||
description = Italy
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
ringcadence = 1000,4000
|
||||
dial = 425/200,0/200,425/600,0/1000
|
||||
busy = 425/500,0/500
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/200,0/200
|
||||
callwaiting = 425/400,0/100,425/250,0/100,425/150,0/14000
|
||||
dialrecall = 470/400,425/400
|
||||
record = 1400/400,0/15000
|
||||
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
|
||||
stutter = 470/400,425/400
|
||||
|
||||
[lt]
|
||||
description = Lithuania
|
||||
ringcadence = 1000,4000
|
||||
dial = 425
|
||||
busy = 425/350,0/350
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/200,0/200
|
||||
callwaiting = 425/150,0/150,425/150,0/4000
|
||||
; DIALRECALL - not specified
|
||||
dialrecall = 425/500,0/50
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/500,0/15000
|
||||
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
|
||||
; STUTTER - not specified
|
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
|
||||
|
||||
[jp]
|
||||
description = Japan
|
||||
ringcadence = 1000,2000
|
||||
dial = 400
|
||||
busy = 400/500,0/500
|
||||
ring = 400+15/1000,0/2000
|
||||
congestion = 400/500,0/500
|
||||
callwaiting = 400+16/500,0/8000
|
||||
dialrecall = !400/200,!0/200,!400/200,!0/200,!400/200,!0/200,400
|
||||
record = 1400/500,0/15000
|
||||
info = !950/330,!1400/330,!1800/330,0
|
||||
stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
|
||||
|
||||
[mx]
|
||||
description = Mexico
|
||||
ringcadence = 2000,4000
|
||||
dial = 425
|
||||
busy = 425/250,0/250
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/250,0/250
|
||||
callwaiting = 425/200,0/600,425/200,0/10000
|
||||
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
|
||||
record = 1400/500,0/15000
|
||||
info = 950/330,0/30,1400/330,0/30,1800/330,0/1000
|
||||
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
|
||||
|
||||
[my]
|
||||
description = Malaysia
|
||||
ringcadence = 2000,4000
|
||||
dial = 425
|
||||
busy = 425/500,0/500
|
||||
ring = 425/400,0/200
|
||||
congestion = 425/500,0/500
|
||||
|
||||
[nl]
|
||||
description = Netherlands
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
ringcadence = 1000,4000
|
||||
; Most of these 425's can also be 450's
|
||||
dial = 425
|
||||
busy = 425/500,0/500
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/250,0/250
|
||||
callwaiting = 425/500,0/9500
|
||||
; DIALRECALL - not specified
|
||||
dialrecall = 425/500,0/50
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/500,0/15000
|
||||
info = 950/330,1400/330,1800/330,0/1000
|
||||
stutter = 425/500,0/50
|
||||
|
||||
[no]
|
||||
description = Norway
|
||||
ringcadence = 1000,4000
|
||||
dial = 425
|
||||
busy = 425/500,0/500
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/200,0/200
|
||||
callwaiting = 425/200,0/600,425/200,0/10000
|
||||
dialrecall = 470/400,425/400
|
||||
record = 1400/400,0/15000
|
||||
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
|
||||
stutter = 470/400,425/400
|
||||
|
||||
[nz]
|
||||
description = New Zealand
|
||||
;NOTE - the ITU has different tonesets for NZ, but according to some residents there,
|
||||
; this is, indeed, the correct way to do it.
|
||||
ringcadence = 400,200,400,2000
|
||||
dial = 400
|
||||
busy = 400/250,0/250
|
||||
ring = 400+450/400,0/200,400+450/400,0/2000
|
||||
congestion = 400/375,0/375
|
||||
callwaiting = !400/200,!0/3000,!400/200,!0/3000,!400/200,!0/3000,!400/200
|
||||
dialrecall = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
|
||||
record = 1400/425,0/15000
|
||||
info = 400/750,0/100,400/750,0/100,400/750,0/100,400/750,0/400
|
||||
stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
|
||||
unobtainable = 400/75,0/100,400/75,0/100,400/75,0/100,400/75,0/400
|
||||
|
||||
[ph]
|
||||
|
||||
; reference http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
|
||||
description = Philippines
|
||||
ringcadence = 1000,4000
|
||||
dial = 425
|
||||
busy = 480+620/500,0/500
|
||||
ring = 425+480/1000,0/4000
|
||||
congestion = 480+620/250,0/250
|
||||
callwaiting = 440/300,0/10000
|
||||
; DIALRECALL - not specified
|
||||
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/500,0/15000
|
||||
; INFO - not specified
|
||||
info = !950/330,!1400/330,!1800/330,0
|
||||
; STUTTER - not specified
|
||||
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
|
||||
|
||||
|
||||
[pl]
|
||||
description = Poland
|
||||
ringcadence = 1000,4000
|
||||
dial = 425
|
||||
busy = 425/500,0/500
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/500,0/500
|
||||
callwaiting = 425/150,0/150,425/150,0/4000
|
||||
; DIALRECALL - not specified
|
||||
dialrecall = 425/500,0/50
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/500,0/15000
|
||||
; 950/1400/1800 3x0.33 on 1.0 off repeated 3 times
|
||||
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000
|
||||
; STUTTER - not specified
|
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
|
||||
|
||||
[pt]
|
||||
description = Portugal
|
||||
ringcadence = 1000,5000
|
||||
dial = 425
|
||||
busy = 425/500,0/500
|
||||
ring = 425/1000,0/5000
|
||||
congestion = 425/200,0/200
|
||||
callwaiting = 440/300,0/10000
|
||||
dialrecall = 425/1000,0/200
|
||||
record = 1400/500,0/15000
|
||||
info = 950/330,1400/330,1800/330,0/1000
|
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
|
||||
|
||||
[ru]
|
||||
; References:
|
||||
; http://www.minsvyaz.ru/site.shtml?id=1806
|
||||
; http://www.aboutphone.info/lib/gost/45-223-2001.html
|
||||
description = Russian Federation / ex Soviet Union
|
||||
ringcadence = 1000,4000
|
||||
dial = 425
|
||||
busy = 425/350,0/350
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/175,0/175
|
||||
callwaiting = 425/200,0/5000
|
||||
record = 1400/400,0/15000
|
||||
info = 950/330,1400/330,1800/330,0/1000
|
||||
dialrecall = 425/400,0/40
|
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
|
||||
|
||||
[se]
|
||||
description = Sweden
|
||||
ringcadence = 1000,5000
|
||||
dial = 425
|
||||
busy = 425/250,0/250
|
||||
ring = 425/1000,0/5000
|
||||
congestion = 425/250,0/750
|
||||
callwaiting = 425/200,0/500,425/200,0/9100
|
||||
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
|
||||
record = 1400/500,0/15000
|
||||
info = !950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,0
|
||||
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
|
||||
; stutter = 425/320,0/20 ; Real swedish standard, not used for now
|
||||
|
||||
[sg]
|
||||
description = Singapore
|
||||
; Singapore
|
||||
; Reference: http://www.ida.gov.sg/idaweb/doc/download/I397/ida_ts_pstn1_i4r2.pdf
|
||||
; Frequency specs are: 425 Hz +/- 20Hz; 24 Hz +/- 2Hz; modulation depth 100%; SIT +/- 50Hz
|
||||
ringcadence = 400,200,400,2000
|
||||
dial = 425
|
||||
ring = 425*24/400,0/200,425*24/400,0/2000 ; modulation should be 100%, not 90%
|
||||
busy = 425/750,0/750
|
||||
congestion = 425/250,0/250
|
||||
callwaiting = 425*24/300,0/200,425*24/300,0/3200
|
||||
stutter = !425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,425
|
||||
info = 950/330,1400/330,1800/330,0/1000 ; not currently in use acc. to reference
|
||||
dialrecall = 425*24/500,0/500,425/500,0/2500 ; unspecified in IDA reference, use repeating Holding Tone A,B
|
||||
record = 1400/500,0/15000 ; unspecified in IDA reference, use 0.5s tone every 15s
|
||||
; additionally defined in reference
|
||||
nutone = 425/2500,0/500
|
||||
intrusion = 425/250,0/2000
|
||||
warning = 425/624,0/4376 ; end of period tone, warning
|
||||
acceptance = 425/125,0/125
|
||||
holdinga = !425*24/500,!0/500 ; followed by holdingb
|
||||
holdingb = !425/500,!0/2500
|
||||
|
||||
[th]
|
||||
description = Thailand
|
||||
ringcadence = 1000,4000
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
dial = 400*50
|
||||
busy = 400/500,0/500
|
||||
ring = 420/1000,0/5000
|
||||
congestion = 400/300,0/300
|
||||
callwaiting = 1000/400,10000/400,1000/400
|
||||
; DIALRECALL - not specified - use special dial tone instead.
|
||||
dialrecall = 400*50/400,0/100,400*50/400,0/100
|
||||
; RECORDTONE - not specified
|
||||
record = 1400/500,0/15000
|
||||
; INFO - specified as an announcement - use special information tones instead
|
||||
info = 950/330,1400/330,1800/330
|
||||
; STUTTER - not specified
|
||||
stutter = !400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,400
|
||||
|
||||
[uk]
|
||||
description = United Kingdom
|
||||
ringcadence = 400,200,400,2000
|
||||
; These are the official tones taken from BT SIN350. The actual tones
|
||||
; used by BT include some volume differences so sound slightly different
|
||||
; from Asterisk-generated ones.
|
||||
dial = 350+440
|
||||
; Special dial is the intermittent dial tone heard when, for example,
|
||||
; you have a divert active on the line
|
||||
specialdial = 350+440/750,440/750
|
||||
; Busy is also called "Engaged"
|
||||
busy = 400/375,0/375
|
||||
; "Congestion" is the Beep-bip engaged tone
|
||||
congestion = 400/400,0/350,400/225,0/525
|
||||
; "Special Congestion" is not used by BT very often if at all
|
||||
specialcongestion = 400/200,1004/300
|
||||
unobtainable = 400
|
||||
ring = 400+450/400,0/200,400+450/400,0/2000
|
||||
callwaiting = 400/100,0/4000
|
||||
; BT seem to use "Special Call Waiting" rather than just "Call Waiting" tones
|
||||
specialcallwaiting = 400/250,0/250,400/250,0/250,400/250,0/5000
|
||||
; "Pips" used by BT on payphones. (Sounds wrong, but this is what BT claim it
|
||||
; is and I've not used a payphone for years)
|
||||
creditexpired = 400/125,0/125
|
||||
; These two are used to confirm/reject service requests on exchanges that
|
||||
; don't do voice announcements.
|
||||
confirm = 1400
|
||||
switching = 400/200,0/400,400/2000,0/400
|
||||
; This is the three rising tones Doo-dah-dee "Special Information Tone",
|
||||
; usually followed by the BT woman saying an appropriate message.
|
||||
info = 950/330,0/15,1400/330,0/15,1800/330,0/1000
|
||||
; Not listed in SIN350
|
||||
record = 1400/500,0/60000
|
||||
stutter = 350+440/750,440/750
|
||||
|
||||
[us]
|
||||
description = United States / North America
|
||||
ringcadence = 2000,4000
|
||||
dial = 350+440
|
||||
busy = 480+620/500,0/500
|
||||
ring = 440+480/2000,0/4000
|
||||
congestion = 480+620/250,0/250
|
||||
callwaiting = 440/300,0/10000
|
||||
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
|
||||
record = 1400/500,0/15000
|
||||
info = !950/330,!1400/330,!1800/330,0
|
||||
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
|
||||
|
||||
[us-old]
|
||||
description = United States Circa 1950/ North America
|
||||
ringcadence = 2000,4000
|
||||
dial = 600*120
|
||||
busy = 500*100/500,0/500
|
||||
ring = 420*40/2000,0/4000
|
||||
congestion = 500*100/250,0/250
|
||||
callwaiting = 440/300,0/10000
|
||||
dialrecall = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120
|
||||
record = 1400/500,0/15000
|
||||
info = !950/330,!1400/330,!1800/330,0
|
||||
stutter = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120
|
||||
|
||||
[tw]
|
||||
description = Taiwan
|
||||
; http://nemesis.lonestar.org/reference/telecom/signaling/dialtone.html
|
||||
; http://nemesis.lonestar.org/reference/telecom/signaling/busy.html
|
||||
; http://www.iproducts.com.tw/ee/kylink/06ky-1000a.htm
|
||||
; http://www.pbx-manufacturer.com/ky120dx.htm
|
||||
; http://www.nettwerked.net/tones.txt
|
||||
; http://www.cisco.com/univercd/cc/td/doc/product/tel_pswt/vco_prod/taiw_sup/taiw2.htm
|
||||
;
|
||||
; busy tone 480+620Hz 0.5 sec. on ,0.5 sec. off
|
||||
; reorder tone 480+620Hz 0.25 sec. on,0.25 sec. off
|
||||
; ringing tone 440+480Hz 1 sec. on ,2 sec. off
|
||||
;
|
||||
ringcadence = 1000,4000
|
||||
dial = 350+440
|
||||
busy = 480+620/500,0/500
|
||||
ring = 440+480/1000,0/2000
|
||||
congestion = 480+620/250,0/250
|
||||
callwaiting = 350+440/250,0/250,350+440/250,0/3250
|
||||
dialrecall = 300/1500,0/500
|
||||
record = 1400/500,0/15000
|
||||
info = !950/330,!1400/330,!1800/330,0
|
||||
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
|
||||
|
||||
[ve]
|
||||
; Tone definition source for ve found on
|
||||
; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
|
||||
description = Venezuela / South America
|
||||
ringcadence = 1000,4000
|
||||
dial = 425
|
||||
busy = 425/500,0/500
|
||||
ring = 425/1000,0/4000
|
||||
congestion = 425/250,0/250
|
||||
callwaiting = 400+450/300,0/6000
|
||||
dialrecall = 425
|
||||
record = 1400/500,0/15000
|
||||
info = !950/330,!1440/330,!1800/330,0/1000
|
||||
|
||||
|
||||
[za]
|
||||
description = South Africa
|
||||
; http://www.cisco.com/univercd/cc/td/doc/product/tel_pswt/vco_prod/safr_sup/saf02.htm
|
||||
; (definitions for other countries can also be found there)
|
||||
; Note, though, that South Africa uses two switch types in their network --
|
||||
; Alcatel switches -- mainly in the Western Cape, and Siemens elsewhere.
|
||||
; The former use 383+417 in dial, ringback etc. The latter use 400*33
|
||||
; I've provided both, uncomment the ones you prefer
|
||||
ringcadence = 400,200,400,2000
|
||||
; dial/ring/callwaiting for the Siemens switches:
|
||||
dial = 400*33
|
||||
ring = 400*33/400,0/200,400*33/400,0/2000
|
||||
callwaiting = 400*33/250,0/250,400*33/250,0/250,400*33/250,0/250,400*33/250,0/250
|
||||
; dial/ring/callwaiting for the Alcatel switches:
|
||||
; dial = 383+417
|
||||
; ring = 383+417/400,0/200,383+417/400,0/2000
|
||||
; callwaiting = 383+417/250,0/250,383+417/250,0/250,383+417/250,0/250,383+417/250,0/250
|
||||
congestion = 400/250,0/250
|
||||
busy = 400/500,0/500
|
||||
dialrecall = 350+440
|
||||
; XXX Not sure about the RECORDTONE
|
||||
record = 1400/500,0/10000
|
||||
info = 950/330,1400/330,1800/330,0/330
|
||||
stutter = !400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,400*33
|
19
asterisk/jabber.conf
Normal file
19
asterisk/jabber.conf
Normal file
@ -0,0 +1,19 @@
|
||||
[general]
|
||||
;debug=yes ; Enable debugging (disabled by default).
|
||||
;autoprune=yes ; Auto remove users from buddy list. Depending on your
|
||||
; setup (ie, using your personal Gtalk account for a test)
|
||||
; you might lose your contacts list. Default is 'no'.
|
||||
;autoregister=yes ; Auto register users from buddy list.
|
||||
|
||||
;[asterisk]
|
||||
;type=client ; Client or Component connection
|
||||
;serverhost=astjab.org ; Route to server for example, talk.google.com
|
||||
;username=asterisk@astjab.org/asterisk ; Username with optional resource.
|
||||
;secret=blah ; Password
|
||||
;priority=1 ; Resource priority
|
||||
;port=5222 ; Port to use defaults to 5222
|
||||
;usetls=yes ; Use tls or not
|
||||
;usesasl=yes ; Use sasl or not
|
||||
;buddy=mogorman@astjab.org ; Manual addition of buddy to list.
|
||||
;statusmessage="I am available" ; Have custom status message for Asterisk
|
||||
;timeout=100 ; Timeout on the message stack.
|
20
asterisk/jingle.conf
Normal file
20
asterisk/jingle.conf
Normal file
@ -0,0 +1,20 @@
|
||||
;[general]
|
||||
;context=default ;;Context to dump call into
|
||||
;bindaddr=0.0.0.0 ;;Address to bind to
|
||||
;allowguest=yes ;;Allow calls from people not in
|
||||
;;list of peers
|
||||
;
|
||||
;[guest] ;;special account for options on guest account
|
||||
;disallow=all
|
||||
;allow=ulaw
|
||||
;context=guest
|
||||
;
|
||||
;[ogorman]
|
||||
;username=ogorman@gmail.com ;;username of the peer your
|
||||
;;calling or accepting calls from
|
||||
;disallow=all
|
||||
;allow=ulaw
|
||||
;context=default
|
||||
;connection=asterisk ;;client or component in jabber.conf
|
||||
;;for the call to leave on.
|
||||
;
|
100
asterisk/logger.conf
Normal file
100
asterisk/logger.conf
Normal file
@ -0,0 +1,100 @@
|
||||
;
|
||||
; Logging Configuration
|
||||
;
|
||||
; In this file, you configure logging to files or to
|
||||
; the syslog system.
|
||||
;
|
||||
; "logger reload" at the CLI will reload configuration
|
||||
; of the logging system.
|
||||
|
||||
[general]
|
||||
;
|
||||
; Customize the display of debug message time stamps
|
||||
; this example is the ISO 8601 date format (yyyy-mm-dd HH:MM:SS)
|
||||
;
|
||||
; see strftime(3) Linux manual for format specifiers. Note that there is also
|
||||
; a fractional second parameter which may be used in this field. Use %1q
|
||||
; for tenths, %2q for hundredths, etc.
|
||||
;
|
||||
;dateformat=%F %T ; ISO 8601 date format
|
||||
;dateformat=%F %T.%3q ; with milliseconds
|
||||
;
|
||||
; This appends the hostname to the name of the log files.
|
||||
;appendhostname = yes
|
||||
;
|
||||
; This determines whether or not we log queue events to a file
|
||||
; (defaults to yes).
|
||||
;queue_log = no
|
||||
;
|
||||
; Set the queue_log filename
|
||||
; (defaults to queue_log)
|
||||
;queue_log_name = queue_log
|
||||
;
|
||||
; Log rotation strategy:
|
||||
; sequential: Rename archived logs in order, such that the newest
|
||||
; has the highest sequence number [default].
|
||||
; rotate: Rotate all the old files, such that the oldest has the
|
||||
; highest sequence number [this is the expected behavior
|
||||
; for Unix administrators].
|
||||
; timestamp: Rename the logfiles using a timestamp instead of a
|
||||
; sequence number when "logger rotate" is executed.
|
||||
;rotatestrategy = rotate
|
||||
;
|
||||
; Run a system command after rotating the files. This is mainly
|
||||
; useful for rotatestrategy=rotate. The example allows the last
|
||||
; two archive files to remain uncompressed, but after that point,
|
||||
; they are compressed on disk.
|
||||
;
|
||||
; exec_after_rotate=gzip -9 ${filename}.2
|
||||
;
|
||||
; This determines whether or not we log generic events to a file
|
||||
; (defaults to yes).
|
||||
;event_log = no
|
||||
;
|
||||
;
|
||||
; For each file, specify what to log.
|
||||
;
|
||||
; For console logging, you set options at start of
|
||||
; Asterisk with -v for verbose and -d for debug
|
||||
; See 'asterisk -h' for more information.
|
||||
;
|
||||
; Directory for log files is configures in asterisk.conf
|
||||
; option astlogdir
|
||||
;
|
||||
[logfiles]
|
||||
;
|
||||
; Format is "filename" and then "levels" of debugging to be included:
|
||||
; debug
|
||||
; notice
|
||||
; warning
|
||||
; error
|
||||
; verbose
|
||||
; dtmf
|
||||
;
|
||||
; Special filename "console" represents the system console
|
||||
;
|
||||
; Filenames can either be relative to the standard Asterisk log directory
|
||||
; (see 'astlogdir' in asterisk.conf), or absolute paths that begin with
|
||||
; '/'.
|
||||
;
|
||||
; We highly recommend that you DO NOT turn on debug mode if you are simply
|
||||
; running a production system. Debug mode turns on a LOT of extra messages,
|
||||
; most of which you are unlikely to understand without an understanding of
|
||||
; the underlying code. Do NOT report debug messages as code issues, unless
|
||||
; you have a specific issue that you are attempting to debug. They are
|
||||
; messages for just that -- debugging -- and do not rise to the level of
|
||||
; something that merit your attention as an Asterisk administrator. Debug
|
||||
; messages are also very verbose and can and do fill up logfiles quickly;
|
||||
; this is another reason not to have debug mode on a production system unless
|
||||
; you are in the process of debugging a specific issue.
|
||||
;
|
||||
;debug => debug
|
||||
console => notice,warning,error
|
||||
;console => notice,warning,error,debug
|
||||
messages => notice,warning,error
|
||||
;full => notice,warning,error,debug,verbose
|
||||
|
||||
;syslog keyword : This special keyword logs to syslog facility
|
||||
;
|
||||
;syslog.local0 => notice,warning,error
|
||||
;
|
114
asterisk/manager.conf
Normal file
114
asterisk/manager.conf
Normal file
@ -0,0 +1,114 @@
|
||||
;
|
||||
; AMI - The Asterisk Manager Interface
|
||||
;
|
||||
; Third party application call management support and PBX event supervision
|
||||
;
|
||||
; This configuration file is read every time someone logs in
|
||||
;
|
||||
; Use the "manager show commands" at the CLI to list available manager commands
|
||||
; and their authorization levels.
|
||||
;
|
||||
; "manager show command <command>" will show a help text.
|
||||
;
|
||||
; ---------------------------- SECURITY NOTE -------------------------------
|
||||
; Note that you should not enable the AMI on a public IP address. If needed,
|
||||
; block this TCP port with iptables (or another FW software) and reach it
|
||||
; with IPsec, SSH, or SSL vpn tunnel. You can also make the manager
|
||||
; interface available over http/https if Asterisk's http server is enabled in
|
||||
; http.conf and if both "enabled" and "webenabled" are set to yes in
|
||||
; this file. Both default to no. httptimeout provides the maximum
|
||||
; timeout in seconds before a web based session is discarded. The
|
||||
; default is 60 seconds.
|
||||
;
|
||||
[general]
|
||||
enabled = no
|
||||
;webenabled = yes
|
||||
port = 5038
|
||||
|
||||
; authtimeout specifies the maximum number of seconds a client has to
|
||||
; authenticate. If the client does not authenticate beofre this timeout
|
||||
; expires, the client will be disconnected. (default: 30 seconds)
|
||||
|
||||
;authtimeout = 30
|
||||
|
||||
; authlimit specifies the maximum number of unauthenticated sessions that will
|
||||
; be allowed to connect at any given time.
|
||||
|
||||
;authlimit = 50
|
||||
|
||||
;httptimeout = 60
|
||||
; a) httptimeout sets the Max-Age of the http cookie
|
||||
; b) httptimeout is the amount of time the webserver waits
|
||||
; on a action=waitevent request (actually its httptimeout-10)
|
||||
; c) httptimeout is also the amount of time the webserver keeps
|
||||
; a http session alive after completing a successful action
|
||||
|
||||
bindaddr = 0.0.0.0
|
||||
|
||||
; Parameters that control AMI over TLS. ("enabled" must be set too).
|
||||
; You can open a connection to this socket with e.g.
|
||||
;
|
||||
; openssl s_client -connect my_host:5039
|
||||
;
|
||||
; sslenable=no ; set to YES to enable it
|
||||
; sslbindport=5039 ; the port to bind to
|
||||
; sslbindaddr=0.0.0.0 ; address to bind to, default to bindaddr
|
||||
; sslcert=/tmp/asterisk.pem ; path to the certificate.
|
||||
; sslcipher=<cipher string> ; string specifying which SSL ciphers to use or not use
|
||||
|
||||
|
||||
;
|
||||
;allowmultiplelogin = yes ; IF set to no, rejects manager logins that are already in use.
|
||||
; ; The default is yes.
|
||||
;
|
||||
;displayconnects = yes
|
||||
;
|
||||
; Add a Unix epoch timestamp to events (not action responses)
|
||||
;
|
||||
;timestampevents = yes
|
||||
|
||||
;brokeneventsaction = yes ; Restore previous behavior that caused the events
|
||||
; action to not return a response in certain
|
||||
; circumstances. Defaults to 'no'.
|
||||
|
||||
; debug = on ; enable some debugging info in AMI messages (default off).
|
||||
; Also accessible through the "manager debug" CLI command.
|
||||
;[mark]
|
||||
;secret = mysecret
|
||||
;deny=0.0.0.0/0.0.0.0
|
||||
;permit=209.16.236.73/255.255.255.0
|
||||
;
|
||||
; If the device connected via this user accepts input slowly,
|
||||
; the timeout for writes to it can be increased to keep it
|
||||
; from being disconnected (value is in milliseconds)
|
||||
;
|
||||
; writetimeout = 100
|
||||
;
|
||||
;displayconnects = yes ; Display on CLI user login/logoff
|
||||
;
|
||||
; Authorization for various classes
|
||||
;
|
||||
; Read authorization permits you to receive asynchronous events, in general.
|
||||
; Write authorization permits you to send commands and get back responses. The
|
||||
; following classes exist:
|
||||
;
|
||||
; system - General information about the system and ability to run system
|
||||
; management commands, such as Shutdown, Restart, and Reload.
|
||||
; call - Information about channels and ability to set information in a
|
||||
; running channel.
|
||||
; log - Logging information. Read-only. (Defined but not yet used.)
|
||||
; verbose - Verbose information. Read-only. (Defined but not yet used.)
|
||||
; agent - Information about queues and agents and ability to add queue
|
||||
; members to a queue.
|
||||
; user - Permission to send and receive UserEvent.
|
||||
; config - Ability to read and write configuration files.
|
||||
; command - Permission to run CLI commands. Write-only.
|
||||
; dtmf - Receive DTMF events. Read-only.
|
||||
; reporting - Ability to get information about the system.
|
||||
; cdr - Output of cdr_manager, if loaded. Read-only.
|
||||
; dialplan - Receive NewExten and VarSet events. Read-only.
|
||||
; originate - Permission to originate new calls. Write-only.
|
||||
;
|
||||
;read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
|
||||
;write = system,call,agent,user,config,command,reporting,originate
|
||||
|
45
asterisk/meetme.conf
Normal file
45
asterisk/meetme.conf
Normal file
@ -0,0 +1,45 @@
|
||||
;
|
||||
; Configuration file for MeetMe simple conference rooms for Asterisk of course.
|
||||
;
|
||||
; This configuration file is read every time you call app meetme()
|
||||
|
||||
[general]
|
||||
;audiobuffers=32 ; The number of 20ms audio buffers to be used
|
||||
; when feeding audio frames from non-DAHDI channels
|
||||
; into the conference; larger numbers will allow
|
||||
; for the conference to 'de-jitter' audio that arrives
|
||||
; at different timing than the conference's timing
|
||||
; source, but can also allow for latency in hearing
|
||||
; the audio from the speaker. Minimum value is 2,
|
||||
; maximum value is 32.
|
||||
;
|
||||
; Conferences may be scheduled from realtime?
|
||||
;schedule=yes
|
||||
;
|
||||
; Update realtime when members login/out of the conference
|
||||
;logmembercount=no
|
||||
;
|
||||
; How much earlier than the start time should we allow participants to
|
||||
; join the conference (in seconds)?
|
||||
;fuzzystart=300
|
||||
;
|
||||
; If the participants join too early, how much time should we allow
|
||||
; to tell them that they've joined too early, rather than telling them
|
||||
; the conference simply doesn't exist (in seconds)?
|
||||
;earlyalert=3600
|
||||
;
|
||||
; How many seconds before the scheduled end of the conference should
|
||||
; the participants be warned?
|
||||
;endalert=120
|
||||
;
|
||||
[rooms]
|
||||
;
|
||||
; Usage is conf => confno[,pin][,adminpin]
|
||||
;
|
||||
; Note that once a participant has called the conference, a change to the pin
|
||||
; number done in this file will not take effect until there are no more users
|
||||
; in the conference and it goes away. When it is created again, it will have
|
||||
; the new pin number.
|
||||
;
|
||||
;conf => 1234
|
||||
;conf => 2345,9938
|
117
asterisk/mgcp.conf
Normal file
117
asterisk/mgcp.conf
Normal file
@ -0,0 +1,117 @@
|
||||
;
|
||||
; MGCP Configuration for Asterisk
|
||||
;
|
||||
[general]
|
||||
;port = 2427
|
||||
;bindaddr = 0.0.0.0
|
||||
|
||||
; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters.
|
||||
;tos=cs3 ; Sets TOS for signaling packets.
|
||||
;tos_audio=ef ; Sets TOS for RTP audio packets.
|
||||
;cos=3 ; Sets 802.1p priority for signaling packets.
|
||||
;cos_audio=5 ; Sets 802.1p priority for RTP audio packets.
|
||||
|
||||
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
|
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a
|
||||
; MGCP channel. Defaults to "no". An enabled jitterbuffer will
|
||||
; be used only if the sending side can create and the receiving
|
||||
; side can not accept jitter. The MGCP channel can accept jitter,
|
||||
; thus an enabled jitterbuffer on the receive MGCP side will only
|
||||
; be used if the sending side can create jitter and jbforce is
|
||||
; also set to yes.
|
||||
|
||||
; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a MGCP
|
||||
; channel. Defaults to "no".
|
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||
; resynchronized. Useful to improve the quality of the voice, with
|
||||
; big jumps in/broken timestamps, usually sent from exotic devices
|
||||
; and programs. Defaults to 1000.
|
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a MGCP
|
||||
; channel. Two implementations are currently available - "fixed"
|
||||
; (with size always equals to jbmax-size) and "adaptive" (with
|
||||
; variable size, actually the new jb of IAX2). Defaults to fixed.
|
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set.
|
||||
; The option represents the number of milliseconds by which the new
|
||||
; jitter buffer will pad its size. the default is 40, so without
|
||||
; modification, the new jitter buffer will set its size to the jitter
|
||||
; value plus 40 milliseconds. increasing this value may help if your
|
||||
; network normally has low jitter, but occasionally has spikes.
|
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
|
||||
;-----------------------------------------------------------------------------------
|
||||
|
||||
;[dlinkgw]
|
||||
;host = 192.168.0.64
|
||||
;context = default
|
||||
;directmedia = no
|
||||
;line => aaln/2
|
||||
;line => aaln/1
|
||||
|
||||
;; The MGCP channel supports the following service codes:
|
||||
;; # - Transfer
|
||||
;; *67 - Calling Number Delivery Blocking
|
||||
;; *70 - Cancel Call Waiting
|
||||
;; *72 - Call Forwarding Activation
|
||||
;; *73 - Call Forwarding Deactivation
|
||||
;; *78 - Do Not Disturb Activation
|
||||
;; *79 - Do Not Disturb Deactivation
|
||||
;; *8 - Call pick-up
|
||||
;
|
||||
; known to work with Swissvoice IP10s
|
||||
;[192.168.1.20]
|
||||
;context=local
|
||||
;host=192.168.1.20
|
||||
;callerid = "John Doe" <123>
|
||||
;callgroup=0 ; in the range from 0 to 63
|
||||
;pickupgroup=0 ; in the range from 0 to 63
|
||||
;nat=no
|
||||
;threewaycalling=yes
|
||||
;transfer=yes ; transfer requires threewaycalling=yes. Use FLASH to transfer
|
||||
;callwaiting=yes ; this might be a cause of trouble for ip10s
|
||||
;cancallforward=yes
|
||||
;line => aaln/1
|
||||
;
|
||||
|
||||
;[dph100]
|
||||
;
|
||||
; Supporting the DPH100M requires defining DLINK_BUGGY_FIRMWARE in
|
||||
; chan_mgcp.c in addition to enabling the slowsequence mode due to
|
||||
; bugs in the D-Link firmware
|
||||
;
|
||||
;context=local
|
||||
;host=dynamic
|
||||
;dtmfmode=none ; DTMF Mode can be 'none', 'rfc2833', or 'inband' or
|
||||
; 'hybrid' which starts in none and moves to inband. Default is none.
|
||||
;slowsequence=yes ; The DPH100M does not follow MGCP standards for sequencing
|
||||
;line => aaln/1
|
||||
|
||||
; known to work with wave7optics FTTH LMGs
|
||||
;[192.168.1.20]
|
||||
;accountcode = 1000 ; record this in cdr as account identification for billing
|
||||
;amaflags = billing ; record this in cdr as flagged for 'billing',
|
||||
; 'documentation', or 'omit'
|
||||
;context = local
|
||||
;host = 192.168.1.20
|
||||
;wcardep = aaln/* ; enables wildcard endpoint and sets it to 'aaln/*'
|
||||
; another common format is '*'
|
||||
;callerid = "Duane Cox" <123> ; now lets setup line 1 using per endpoint configuration...
|
||||
;callwaiting = no
|
||||
;callreturn = yes
|
||||
;cancallforward = yes
|
||||
;directmedia = no
|
||||
;transfer = no
|
||||
;dtmfmode = inband
|
||||
;line => aaln/1 ; now lets save this config to line1 aka aaln/1
|
||||
;callerid = "Duane Cox" <456> ; now lets setup line 2
|
||||
;callwaiting = no
|
||||
;callreturn = yes
|
||||
;cancallforward = yes
|
||||
;directmedia = no
|
||||
;transfer = no
|
||||
;dtmfmode = inband
|
||||
;line => aaln/2 ; now lets save this config to line2 aka aaln/2
|
218
asterisk/minivm.conf
Normal file
218
asterisk/minivm.conf
Normal file
@ -0,0 +1,218 @@
|
||||
;
|
||||
; Mini-Voicemail Configuration
|
||||
; for the MiniVM set of applications
|
||||
;
|
||||
; MiniVM consists of the following dialplan applications
|
||||
; MinivmGreet Play personal prompts for busy/unavailable/temporary messages or default prompts
|
||||
; MinivmRecord Record voice prompts to account directory or default directory
|
||||
; MinivmNotify Notify via e-mail or pager - with or without attachment
|
||||
; MinivmDelete Delete voice prompt (filename as argument or channel variable set by MinivmRecord)
|
||||
;
|
||||
; MiniVM works without accounts (just give e-mail address as argument) or with accounts in
|
||||
; this configuration file or realtime. The idea is to build voicemail as building blocks so that
|
||||
; a complete and adaptive voicemail system can be built in the dialplan
|
||||
;
|
||||
;------------------------------ Variables to use in subject, from and message body ------------------
|
||||
; Change the from, body and/or subject, variables:
|
||||
; MVM_NAME, MVM_DUR, MVM_MSGNUM, VM_MAILBOX, MVM_CALLERID, MVM_CIDNUM,
|
||||
; MVM_CIDNAME, MVM_DATE
|
||||
;
|
||||
; In addition to these, you can set the MVM_COUNTER channel variable in the
|
||||
; dial plan and use that as a counter. It will also be used in the file name
|
||||
; of the media file attached to the message
|
||||
;
|
||||
; Note: The emailbody config row can only be up to 512 characters due to a
|
||||
; limitation in the Asterisk configuration subsystem.
|
||||
; To create longer mails, use the templatefile option when creating the template
|
||||
;----------------------------------------------------------------------------------------------------
|
||||
|
||||
[general]
|
||||
; Default format for storing and sending voicemail
|
||||
; (only one format. Can also be set on a per-mailbox level)
|
||||
format=wav49
|
||||
;format=gsm
|
||||
;
|
||||
;Turn on logfile with the following syntax. One line per voicemail received
|
||||
;with minivmRecord()
|
||||
; Mailbox:domain:macrocontext:exten:priority:callerchan:callerid:origdate:origtime:duration:durationstatus:accountcode
|
||||
;logfile=/var/log/asterisk/minivm.log
|
||||
; Who the e-mail notification should appear to come from
|
||||
serveremail=asterisk
|
||||
;serveremail=asterisk@asterisk.example.com
|
||||
; Minimum length of a voicemail message in seconds for the message to be kept
|
||||
; The default is no minimum.
|
||||
;minmessage=3
|
||||
; How many seconds of silence before we end the recording
|
||||
maxsilence=10
|
||||
; Silence threshold (what we consider silence: the lower, the more sensitive)
|
||||
silencethreshold=128
|
||||
; How long greeting messages (busy/unavailable/temp/name) are allowed to be, in seconds
|
||||
;maxgreet=120
|
||||
; If you need to have an external program, i.e. /usr/bin/myapp called when a
|
||||
; voicemail is received by the server. The arguments are
|
||||
;
|
||||
; <app> <username@domain> <callerid-number> <callerid-name>
|
||||
;
|
||||
;externnotify=/usr/bin/myapp
|
||||
; The character set for voicemail messages can be specified here
|
||||
;charset=ISO-8859-1
|
||||
; Skip the "[PBX]:" string from the message title
|
||||
;pbxskip=yes
|
||||
; Change the From: string
|
||||
|
||||
; You can override the default program to send e-mail if you wish, too
|
||||
; This is used both for e-mail and pager messages
|
||||
;mailcmd=/usr/sbin/sendmail -t
|
||||
;
|
||||
;--------------Default e-mail message template (used if no templates are used) ------
|
||||
;fromstring=The Asterisk PBX
|
||||
;
|
||||
|
||||
;emailsubject=[PBX]: New message ${MVM_COUNER} in mailbox ${VM_MAILBOX}
|
||||
; The following definition is very close to the default, but the default shows
|
||||
; just the CIDNAME, if it is not null, otherwise just the CIDNUM, or "an unknown
|
||||
; caller", if they are both null.
|
||||
;emailbody=Dear ${MVM_NAME}:\n\n\tjust wanted to let you know you were just left a ${MVM_DUR} long message (number ${MVM_COUNTER})\nin mailbox ${MVM_MAILBOX} from ${MVM_CALLERID}, on ${MVM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n
|
||||
;
|
||||
; Set the date format on outgoing mails. Valid arguments can be found on the
|
||||
; strftime(3) man page
|
||||
;
|
||||
; Default
|
||||
emaildateformat=%A, %B %d, %Y at %r
|
||||
; 24h date format
|
||||
;emaildateformat=%A, %d %B %Y at %H:%M:%S
|
||||
;
|
||||
;--------------Default pager message template (used if no templates are used) ------
|
||||
; You can also change the Pager From: string, the pager body and/or subject.
|
||||
; The above defined variables also can be used here
|
||||
;pagerfromstring=The Asterisk PBX
|
||||
;pagersubject=New VM ${MVM_COUNTER}
|
||||
;pagerbody=New ${MVM_DUR} long msg in box ${MVM_MAILBOX}\nfrom ${MVM_CALLERID}, on ${MVM_DATE}
|
||||
;
|
||||
;
|
||||
;--------------Timezone definitions (used in voicemail accounts) -------------------
|
||||
;
|
||||
; Users may be located in different timezones, or may have different
|
||||
; message announcements for their introductory message when they enter
|
||||
; the voicemail system. Set the message and the timezone each user
|
||||
; hears here. Set the user into one of these zones with the tz= attribute
|
||||
; in the options field of the mailbox. Of course, language substitution
|
||||
; still applies here so you may have several directory trees that have
|
||||
; alternate language choices.
|
||||
;
|
||||
; Look in /usr/share/zoneinfo/ for names of timezones.
|
||||
; Look at the manual page for strftime for a quick tutorial on how the
|
||||
; variable substitution is done on the values below.
|
||||
;
|
||||
; Supported values:
|
||||
; 'filename' filename of a soundfile (single ticks around the filename
|
||||
; required)
|
||||
; ${VAR} variable substitution
|
||||
; A or a Day of week (Saturday, Sunday, ...)
|
||||
; B or b or h Month name (January, February, ...)
|
||||
; d or e numeric day of month (first, second, ..., thirty-first)
|
||||
; Y Year
|
||||
; I or l Hour, 12 hour clock
|
||||
; H Hour, 24 hour clock (single digit hours preceded by "oh")
|
||||
; k Hour, 24 hour clock (single digit hours NOT preceded by "oh")
|
||||
; M Minute, with 00 pronounced as "o'clock"
|
||||
; N Minute, with 00 pronounced as "hundred" (US military time)
|
||||
; P or p AM or PM
|
||||
; Q "today", "yesterday" or ABdY
|
||||
; (*note: not standard strftime value)
|
||||
; q "" (for today), "yesterday", weekday, or ABdY
|
||||
; (*note: not standard strftime value)
|
||||
; R 24 hour time, including minute
|
||||
;
|
||||
; The message here is not used in mini-voicemail, but stays for
|
||||
; backwards compatibility
|
||||
|
||||
[zonemessages]
|
||||
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
|
||||
central=America/Chicago|'vm-received' Q 'digits/at' IMp
|
||||
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
|
||||
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
|
||||
|
||||
;----------------------- Message body templates---------------------
|
||||
; [template-name] ; "template-" is a verbatim marker
|
||||
; fromaddress = Your Friendly Asterisk Server
|
||||
; fromemail = asteriskvm@digium.com
|
||||
; subject = <string>
|
||||
; attachmedia = yes | no ; Add media file as attachment?
|
||||
; dateformat = <formatstring> ; See above
|
||||
; charset = <charset> ; Mime charset definition for e-mail messages
|
||||
; locale = <locale> ; Locale for LC_TIME - to get weekdays in local language
|
||||
; ; See your O/S documentation for proper settings for setlocale()
|
||||
; templatefile = <filename> ; File name (relative to Asterisk configuration directory,
|
||||
; or absolute
|
||||
; messagebody = Format ; Message body definition with variables
|
||||
;
|
||||
[template-sv_SE_email]
|
||||
messagebody=Hej ${MVM_NAME}:\n\n\tDu har fått ett röstbrevlåde-meddelande från ${MVM_CALLERID}.\nLängd: ${MVM_DUR}\nMailbox ${MVM_MAILBOX}\nDatum: ${MVM_DATE}. \nMeddelandet bifogas det här brevet. Om du inte kan läsa det, kontakta intern support. \nHälsningar\n\n\t\t\t\t--Asterisk\n
|
||||
subject = Du har fått röstmeddelande (se bilaga)
|
||||
fromemail = swedish-voicemail-service@stockholm.example.com
|
||||
fromaddress = Asterisk Röstbrevlåda
|
||||
charset=iso-8859-1
|
||||
attachmedia=yes
|
||||
dateformat=%A, %d %B %Y at %H:%M:%S
|
||||
locale=sv_SE
|
||||
|
||||
[template-en_US_email]
|
||||
messagebody=Dear ${MVM_NAME}:\n\n\tjust wanted to let you know you were just left a ${MVM_DUR} long message \nin mailbox ${MVM_MAILBOX} from ${MVM_CALLERID}, on ${MVM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n
|
||||
subject = New voicemail
|
||||
charset=ascii
|
||||
attachmedia=yes
|
||||
dateformat=%A, %B %d, %Y at %r
|
||||
|
||||
;[template-sv_SE_pager]
|
||||
;templatefile = templates/pager_sv_se.txt
|
||||
;subject = Du har fått voicemail
|
||||
;charset=iso-8859-1
|
||||
;attachmedia=no
|
||||
;locale=sv_SE
|
||||
|
||||
;[template-nb_NO_email]
|
||||
;templatefile = templates/email_nb_NO.txt
|
||||
;subject = Du har fått voicemail
|
||||
;charset=iso-8859-1
|
||||
;locale=nb_NO
|
||||
|
||||
;[template-en_US_email_southern]
|
||||
;templatefile = templates/email_en_US.txt
|
||||
;subject = Y'all got voicemail, honey!
|
||||
;charset=ascii
|
||||
|
||||
;[template-en_UK_email]
|
||||
;templatefile = templates/email_en_us.txt
|
||||
;subject = Dear old chap, you've got an electronic communique
|
||||
;charset=ascii
|
||||
|
||||
;----------------------- Mailbox accounts --------------------------
|
||||
;Template for mailbox definition - all options
|
||||
;
|
||||
; [username@domain] ; Has to be unique within domain (MWM_USERNAME, MWM_DOMAIN)
|
||||
; etemplate = sv_SE ; Email template from [templates]
|
||||
; ptemplate = en_US ; Pager template from [templates]
|
||||
; email = userpart@domain ; Extra e-mail address (overrides mailbox name)
|
||||
; pager = pageremail@domain ; E-mail address for pager messages
|
||||
; fullname = Mark Spencer ; Full name (MWM_NAME)
|
||||
; options = ; E-mail options, se below
|
||||
; accountcode = ; Account code (read in dialplan function MINIVMACCOUNT)
|
||||
; pincode = ; Numeric pin code (read in dialplan function MINIVMACCOUNT)
|
||||
; timezone=se ; Time zone
|
||||
; serveremail = asterisk@digium.com ; Who to send email from (overrides template if set)
|
||||
; externnotify = <application> ; External application for this account
|
||||
; volgain = ; Volume gain setting (requires "sox")
|
||||
; setvar=SERVICENAME=Voop.com Networks ; Extra variables to use in template
|
||||
|
||||
; Remember that you can use Asterisk Configuration Templates (ACT)
|
||||
|
||||
; [template@example.com](!) ; Declare template
|
||||
; setvar=customerdomain=example.com
|
||||
; setvar=customerclass=gold
|
||||
; etemplate = sv_se_email
|
||||
; serveremail = voicemail@example.com
|
||||
|
||||
; [user2@example.com](template@example.com) ; Declare user2 account using template
|
||||
; fullname = Olle E. Johansson
|
||||
; ; User inherits everything from template
|
472
asterisk/misdn.conf
Normal file
472
asterisk/misdn.conf
Normal file
@ -0,0 +1,472 @@
|
||||
;
|
||||
; chan_misdn sample config
|
||||
;
|
||||
|
||||
; general section:
|
||||
;
|
||||
; for debugging and general setup, things that are not bound to port groups
|
||||
;
|
||||
|
||||
[general]
|
||||
;
|
||||
; Sets the Path to the misdn-init.conf (for nt_ptp mode checking)
|
||||
;
|
||||
misdn_init=/etc/misdn-init.conf
|
||||
|
||||
; set debugging flag:
|
||||
; 0 - No Debug
|
||||
; 1 - mISDN Messages and * - Messages, and * - State changes
|
||||
; 2 - Messages + Message specific Informations (e.g. bearer capability)
|
||||
; 3 - very Verbose, the above + lots of Driver specific infos
|
||||
; 4 - even more Verbose than 3
|
||||
;
|
||||
; default value: 0
|
||||
;
|
||||
debug=0
|
||||
|
||||
|
||||
|
||||
; set debugging file and flags for mISDNuser (NT-Stack)
|
||||
;
|
||||
; flags can be or'ed with the following values:
|
||||
;
|
||||
; DBGM_NET 0x00000001
|
||||
; DBGM_MSG 0x00000002
|
||||
; DBGM_FSM 0x00000004
|
||||
; DBGM_TEI 0x00000010
|
||||
; DBGM_L2 0x00000020
|
||||
; DBGM_L3 0x00000040
|
||||
; DBGM_L3DATA 0x00000080
|
||||
; DBGM_BC 0x00000100
|
||||
; DBGM_TONE 0x00000200
|
||||
; DBGM_BCDATA 0x00000400
|
||||
; DBGM_MAN 0x00001000
|
||||
; DBGM_APPL 0x00002000
|
||||
; DBGM_ISDN 0x00004000
|
||||
; DBGM_SOCK 0x00010000
|
||||
; DBGM_CONN 0x00020000
|
||||
; DBGM_CDATA 0x00040000
|
||||
; DBGM_DDATA 0x00080000
|
||||
; DBGM_SOUND 0x00100000
|
||||
; DBGM_SDATA 0x00200000
|
||||
; DBGM_TOPLEVEL 0x40000000
|
||||
; DBGM_ALL 0xffffffff
|
||||
;
|
||||
|
||||
ntdebugflags=0
|
||||
ntdebugfile=/var/log/misdn-nt.log
|
||||
|
||||
|
||||
; some pbx systems do cut the L1 for some milliseconds, to avoid
|
||||
; dropping running calls, we can set this flag to yes and tell
|
||||
; mISDNuser not to drop the calls on L2_RELEASE
|
||||
ntkeepcalls=no
|
||||
|
||||
; the big trace
|
||||
;
|
||||
; default value: [not set]
|
||||
;
|
||||
;tracefile=/var/log/asterisk/misdn.log
|
||||
|
||||
|
||||
; set to yes if you want mISDN_dsp to bridge the calls in HW
|
||||
;
|
||||
; default value: yes
|
||||
;
|
||||
bridging=no
|
||||
|
||||
|
||||
;
|
||||
; watches the L1s of every port. If one l1 is down it tries to
|
||||
; get it up. The timeout is given in seconds. with 0 as value it
|
||||
; does not watch the l1 at all
|
||||
;
|
||||
; default value: 0
|
||||
;
|
||||
; this option is only read at loading time of chan_misdn,
|
||||
; which means you need to unload and load chan_misdn to change the
|
||||
; value, an asterisk restart should do the trick
|
||||
;
|
||||
l1watcher_timeout=0
|
||||
|
||||
; stops dialtone after getting first digit on nt Port
|
||||
;
|
||||
; default value: yes
|
||||
;
|
||||
stop_tone_after_first_digit=yes
|
||||
|
||||
; whether to append overlapdialed Digits to Extension or not
|
||||
;
|
||||
; default value: yes
|
||||
;
|
||||
append_digits2exten=yes
|
||||
|
||||
;;; CRYPTION STUFF
|
||||
|
||||
; Whether to look for dynamic crypting attempt
|
||||
;
|
||||
; default value: no
|
||||
;
|
||||
dynamic_crypt=no
|
||||
|
||||
; crypt_prefix, what is used for crypting Protocol
|
||||
;
|
||||
; default value: [not set]
|
||||
;
|
||||
crypt_prefix=**
|
||||
|
||||
; Keys for cryption, you reference them in the dialplan
|
||||
; later also in dynamic encr.
|
||||
;
|
||||
; default value: [not set]
|
||||
;
|
||||
crypt_keys=test,muh
|
||||
|
||||
; users sections:
|
||||
;
|
||||
; name your sections as you which but not "general" !
|
||||
; the sections are Groups, you can dial out in extensions.conf
|
||||
; with Dial(mISDN/g:extern/101) where extern is a section name,
|
||||
; chan_misdn tries every port in this section to find a
|
||||
; new free channel
|
||||
;
|
||||
|
||||
; The default section is not a group section, it just contains config elements
|
||||
; which are inherited by group sections.
|
||||
;
|
||||
|
||||
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
|
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a
|
||||
; SIP channel. Defaults to "no". An enabled jitterbuffer will
|
||||
; be used only if the sending side can create and the receiving
|
||||
; side can not accept jitter. The SIP channel can accept jitter,
|
||||
; thus a jitterbuffer on the receive SIP side will be used only
|
||||
; if it is forced and enabled.
|
||||
|
||||
; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a SIP
|
||||
; channel. Defaults to "no".
|
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||
; resynchronized. Useful to improve the quality of the voice, with
|
||||
; big jumps in/broken timestamps, usually sent from exotic devices
|
||||
; and programs. Defaults to 1000.
|
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP
|
||||
; channel. Two implementations are currently available - "fixed"
|
||||
; (with size always equals to jbmaxsize) and "adaptive" (with
|
||||
; variable size, actually the new jb of IAX2). Defaults to fixed.
|
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set.
|
||||
; The option represents the number of milliseconds by which the new
|
||||
; jitter buffer will pad its size. the default is 40, so without
|
||||
; modification, the new jitter buffer will set its size to the jitter
|
||||
; value plus 40 milliseconds. increasing this value may help if your
|
||||
; network normally has low jitter, but occasionally has spikes.
|
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
|
||||
;-----------------------------------------------------------------------------------
|
||||
|
||||
[default]
|
||||
|
||||
; define your default context here
|
||||
;
|
||||
; default value: default
|
||||
;
|
||||
context=misdn
|
||||
|
||||
; language
|
||||
;
|
||||
; default value: en
|
||||
;
|
||||
language=en
|
||||
|
||||
;
|
||||
; sets the musiconhold class
|
||||
;
|
||||
musicclass=default
|
||||
|
||||
;
|
||||
; Either if we should produce DTMF Tones ourselves
|
||||
;
|
||||
senddtmf=yes
|
||||
|
||||
;
|
||||
; If we should generate Ringing for chan_sip and others
|
||||
;
|
||||
far_alerting=no
|
||||
|
||||
|
||||
;
|
||||
; Here you can list which bearer capabilities should be allowed:
|
||||
; all - allow any bearer capability
|
||||
; speech - allow speech
|
||||
; 3_1khz - allow 3.1KHz audio
|
||||
; digital_unrestricted - allow unrestricted digital
|
||||
; digital_restricted - allow restricted digital
|
||||
; video - allow video
|
||||
;
|
||||
; Example:
|
||||
; allowed_bearers=speech,3_1khz
|
||||
;
|
||||
allowed_bearers=all
|
||||
|
||||
; Prefixes for national and international, those are put before the
|
||||
; oad if an according dialplan is set by the other end.
|
||||
;
|
||||
; default values: nationalprefix : 0
|
||||
; internationalprefix : 00
|
||||
;
|
||||
nationalprefix=0
|
||||
internationalprefix=00
|
||||
|
||||
; set rx/tx gains between -8 and 8 to change the RX/TX Gain
|
||||
;
|
||||
; default values: rxgain: 0
|
||||
; txgain: 0
|
||||
;
|
||||
rxgain=0
|
||||
txgain=0
|
||||
|
||||
; some telcos especially in NL seem to need this set to yes, also in
|
||||
; switzerland this seems to be important
|
||||
;
|
||||
; default value: no
|
||||
;
|
||||
te_choose_channel=no
|
||||
|
||||
|
||||
|
||||
;
|
||||
; This option defines, if chan_misdn should check the L1 on a PMP
|
||||
; before making a group call on it. The L1 may go down for PMP Ports
|
||||
; so we might need this.
|
||||
; But be aware! a broken or plugged off cable might be used for a group call
|
||||
; as well, since chan_misdn has no chance to distinguish if the L1 is down
|
||||
; because of a lost Link or because the Provider shut it down...
|
||||
;
|
||||
; default: no
|
||||
;
|
||||
pmp_l1_check=no
|
||||
|
||||
|
||||
;
|
||||
; in PMP this option defines which cause should be sent out to
|
||||
; the 3. caller. chan_misdn does not support callwaiting on TE
|
||||
; PMP side. This allows to modify the RELEASE_COMPLETE cause
|
||||
; at least.
|
||||
;
|
||||
reject_cause=16
|
||||
|
||||
|
||||
;
|
||||
; Send Setup_Acknowledge on incoming calls anyway (instead of PROCEEDING),
|
||||
; this requests additional Infos, so we can waitfordigits
|
||||
; without much issues. This works only for PTP Ports
|
||||
;
|
||||
; default value: no
|
||||
;
|
||||
need_more_infos=no
|
||||
|
||||
|
||||
;
|
||||
; set this to yes if you want to disconnect calls when a timeout occurs
|
||||
; for example during the overlapdial phase
|
||||
;
|
||||
nttimeout=no
|
||||
|
||||
; Set the method to use for channel selection:
|
||||
; standard - Use the first free channel starting from the lowest number.
|
||||
; standard_dec - Use the first free channel starting from the highest number.
|
||||
; round_robin - Use the round robin algorithm to select a channel. Use this
|
||||
; if you want to balance your load.
|
||||
;
|
||||
; default value: standard
|
||||
;
|
||||
method=standard
|
||||
|
||||
|
||||
; specify if chan_misdn should collect digits before going into the
|
||||
; dialplan, you can choose yes=4 Seconds, no, or specify the amount
|
||||
; of seconds you need;
|
||||
;
|
||||
overlapdial=yes
|
||||
|
||||
;
|
||||
; dialplan means Type Of Number in ISDN Terms (for outgoing calls)
|
||||
;
|
||||
; there are different types of the dialplan:
|
||||
;
|
||||
; dialplan -> outgoing Number
|
||||
; localdialplan -> callerid
|
||||
; cpndialplan -> connected party number
|
||||
;
|
||||
; dialplan options:
|
||||
;
|
||||
; 0 - unknown
|
||||
; 1 - International
|
||||
; 2 - National
|
||||
; 4 - Subscriber
|
||||
;
|
||||
; This setting is used for outgoing calls
|
||||
;
|
||||
; default value: 0
|
||||
;
|
||||
dialplan=0
|
||||
localdialplan=0
|
||||
cpndialplan=0
|
||||
|
||||
|
||||
|
||||
;
|
||||
; turn this to no if you don't mind correct handling of Progress Indicators
|
||||
;
|
||||
early_bconnect=yes
|
||||
|
||||
|
||||
;
|
||||
; turn this on if you like to send Tone Indications to a Incoming
|
||||
; isdn channel on a TE Port. Rarely used, only if the Telco allows
|
||||
; you to send indications by yourself, normally the Telco sends the
|
||||
; indications to the remote party.
|
||||
;
|
||||
; default: no
|
||||
;
|
||||
incoming_early_audio=no
|
||||
|
||||
; uncomment the following to get into s extension at extension conf
|
||||
; there you can use DigitTimeout if you can't or don't want to use
|
||||
; isdn overlap dial.
|
||||
; note: This will jump into the s exten for every exten!
|
||||
;
|
||||
; default value: no
|
||||
;
|
||||
;always_immediate=no
|
||||
|
||||
;
|
||||
; set this to yes if you want to generate your own dialtone
|
||||
; with always_immediate=yes, else chan_misdn generates the dialtone
|
||||
;
|
||||
; default value: no
|
||||
;
|
||||
nodialtone=no
|
||||
|
||||
|
||||
; uncomment the following if you want callers which called exactly the
|
||||
; base number (so no extension is set) jump to the s extension.
|
||||
; if the user dials something more it jumps to the correct extension
|
||||
; instead
|
||||
;
|
||||
; default value: no
|
||||
;
|
||||
;immediate=no
|
||||
|
||||
; uncomment the following to have hold and retrieve support
|
||||
;
|
||||
; default value: no
|
||||
;
|
||||
;hold_allowed=yes
|
||||
|
||||
; Pickup and Callgroup
|
||||
;
|
||||
; default values: not set = 0
|
||||
; range: 0-63
|
||||
;
|
||||
;callgroup=1
|
||||
;pickupgroup=1
|
||||
|
||||
|
||||
;
|
||||
; these are the exact isdn screening and presentation indicators
|
||||
; if -1 is given for either value the presentation indicators are used
|
||||
; from asterisks CALLERPRES function.
|
||||
; s=0, p=0 -> callerid presented
|
||||
; s=1, p=1 -> callerid restricted (the remote end does not see it!)
|
||||
;
|
||||
; default values s=-1, p=-1
|
||||
presentation=-1
|
||||
screen=-1
|
||||
|
||||
; This enables echo cancellation with the given number of taps.
|
||||
; Be aware: Move this setting only to outgoing portgroups!
|
||||
; A value of zero turns echo cancellation off.
|
||||
;
|
||||
; possible values are: 0,32,64,128,256,yes(=128),no(=0)
|
||||
;
|
||||
; default value: no
|
||||
;
|
||||
;echocancel=no
|
||||
|
||||
; Set this to no to disable echotraining. You can enter a number > 10
|
||||
; the value is a multiple of 0.125 ms.
|
||||
;
|
||||
; default value: no
|
||||
; yes = 2000
|
||||
; no = 0
|
||||
;
|
||||
echotraining=no
|
||||
|
||||
;
|
||||
; chan_misdns jitterbuffer, default 4000
|
||||
;
|
||||
jitterbuffer=4000
|
||||
|
||||
;
|
||||
; change this threshold to enable dejitter functionality
|
||||
;
|
||||
jitterbuffer_upper_threshold=0
|
||||
|
||||
|
||||
;
|
||||
; change this to yes, if you want to bridge a mISDN data channel to
|
||||
; another channel type or to an application.
|
||||
;
|
||||
hdlc=no
|
||||
|
||||
|
||||
;
|
||||
; defines the maximum amount of incoming calls per port for
|
||||
; this group. Calls which exceed the maximum will be marked with
|
||||
; the channel variable MAX_OVERFLOW. It will contain the amount of
|
||||
; overflowed calls
|
||||
;
|
||||
max_incoming=-1
|
||||
|
||||
;
|
||||
; defines the maximum amount of outgoing calls per port for this group
|
||||
; exceeding calls will be rejected
|
||||
;
|
||||
max_outgoing=-1
|
||||
|
||||
[intern]
|
||||
; define your ports, e.g. 1,2 (depends on mISDN-driver loading order)
|
||||
ports=1,2
|
||||
; context where to go to when incoming Call on one of the above ports
|
||||
context=Intern
|
||||
|
||||
[internPP]
|
||||
;
|
||||
; adding the postfix 'ptp' to a port number is obsolete now, chan_misdn
|
||||
; parses /etc/misdn-init.conf and sets the ptp mode to the corresponding
|
||||
; configs. For backwards compatibility you can still set ptp here.
|
||||
;
|
||||
ports=3
|
||||
|
||||
[first_extern]
|
||||
; again port defs
|
||||
ports=4
|
||||
; again a context for incoming calls
|
||||
context=Extern1
|
||||
; msns for te ports, listen on those numbers on the above ports, and
|
||||
; indicate the incoming calls to asterisk
|
||||
; here you can give a comma separated list or simply an '*' for
|
||||
; any msn.
|
||||
msns=*
|
||||
|
||||
; here an example with given msns
|
||||
[second_extern]
|
||||
ports=5
|
||||
context=Extern2
|
||||
callerid=15
|
||||
msns=102,144,101,104
|
68
asterisk/mobile.conf
Normal file
68
asterisk/mobile.conf
Normal file
@ -0,0 +1,68 @@
|
||||
;
|
||||
; mobile.conf
|
||||
; configuration file for chan_mobile
|
||||
;
|
||||
|
||||
[general]
|
||||
interval=30 ; Number of seconds between trying to connect to devices.
|
||||
|
||||
; The following is a list of adapters we use.
|
||||
; id must be unique and address is the bdaddr of the adapter from hciconfig.
|
||||
; Each adapter may only have one device (headset or phone) connected at a time.
|
||||
; Add an [adapter] entry for each adapter you have.
|
||||
|
||||
[adapter]
|
||||
id=blue
|
||||
address=00:09:DD:60:01:A3
|
||||
;forcemaster=yes ; attempt to force adapter into master mode. default is no.
|
||||
;alignmentdetection=yes ; enable this if you sometimes get 'white noise' on asterisk side of the call
|
||||
; its a bug in the bluetooth adapter firmware, enabling this will compensate for it.
|
||||
; default is no.
|
||||
|
||||
[adapter]
|
||||
id=dlink
|
||||
address=00:80:C8:35:52:78
|
||||
|
||||
; The following is a list of the devices we deal with.
|
||||
; Every device listed below will be available for calls in and out of Asterisk.
|
||||
; Each device needs an adapter=xxxx entry which determines which bluetooth adapter is used.
|
||||
; Use the CLI command 'mobile search' to discover devices.
|
||||
; Use the CLI command 'mobile show devices' to see device status.
|
||||
;
|
||||
; To place a call out through a mobile phone use Dial(Mobile/[device]/NNN.....) or Dial(Mobile/gn/NNN......) in your dialplan.
|
||||
; To call a headset use Dial(Mobile/[device]).
|
||||
|
||||
[LGTU550]
|
||||
address=00:E0:91:7F:46:44 ; the address of the phone
|
||||
port=4 ; the rfcomm port number (from mobile search)
|
||||
context=incoming-mobile ; dialplan context for incoming calls
|
||||
adapter=dlink ; adapter to use
|
||||
group=1 ; this phone is in channel group 1
|
||||
;nocallsetup=yes ; set this only if your phone reports that it supports call progress notification, but does not do it. Motorola L6 for example.
|
||||
|
||||
[blackberry]
|
||||
address=00:60:57:32:7E:B2
|
||||
port=2
|
||||
context=incoming-mobile
|
||||
adapter=dlink
|
||||
group=1
|
||||
;blackberry=yes ; set this if you are using a blackberry device
|
||||
|
||||
[6310i]
|
||||
address=00:60:57:32:7E:B1
|
||||
port=13
|
||||
context=incoming-mobile
|
||||
adapter=dlink
|
||||
group=1 ; this phone is in channel group 1 also.
|
||||
|
||||
[headset]
|
||||
address=00:0B:9E:11:AE:C6
|
||||
port=1
|
||||
type=headset ; This is a headset, not a Phone !
|
||||
adapter=blue
|
||||
|
||||
[headset1]
|
||||
address=00:0B:9E:11:74:A5
|
||||
port=1
|
||||
type=headset
|
||||
adapter=dlink
|
37
asterisk/modules.conf
Normal file
37
asterisk/modules.conf
Normal file
@ -0,0 +1,37 @@
|
||||
;
|
||||
; Asterisk configuration file
|
||||
;
|
||||
; Module Loader configuration file
|
||||
;
|
||||
|
||||
[modules]
|
||||
autoload=yes
|
||||
;
|
||||
; Any modules that need to be loaded before the Asterisk core has been
|
||||
; initialized (just after the logger has been initialized) can be loaded
|
||||
; using 'preload'. This will frequently be needed if you wish to map all
|
||||
; module configuration files into Realtime storage, since the Realtime
|
||||
; driver will need to be loaded before the modules using those configuration
|
||||
; files are initialized.
|
||||
;
|
||||
; An example of loading ODBC support would be:
|
||||
;preload => res_odbc.so
|
||||
;preload => res_config_odbc.so
|
||||
;
|
||||
; Uncomment the following if you wish to use the Speech Recognition API
|
||||
;preload => res_speech.so
|
||||
;
|
||||
; If you want, load the GTK console right away.
|
||||
;
|
||||
noload => pbx_gtkconsole.so
|
||||
;load => pbx_gtkconsole.so
|
||||
;
|
||||
load => res_musiconhold.so
|
||||
;
|
||||
; Load one of: chan_oss, alsa, or console (portaudio).
|
||||
; By default, load chan_oss only (automatically).
|
||||
;
|
||||
noload => chan_alsa.so
|
||||
;noload => chan_oss.so
|
||||
noload => chan_console.so
|
||||
;
|
84
asterisk/musiconhold.conf
Normal file
84
asterisk/musiconhold.conf
Normal file
@ -0,0 +1,84 @@
|
||||
;
|
||||
; Music on Hold -- Sample Configuration
|
||||
;
|
||||
[general]
|
||||
;cachertclasses=yes ; use 1 instance of moh class for all users who are using it,
|
||||
; decrease consumable cpu cycles and memory
|
||||
; disabled by default
|
||||
|
||||
|
||||
; valid mode options:
|
||||
; files -- read files from a directory in any Asterisk supported
|
||||
; media format
|
||||
; quietmp3 -- default
|
||||
; mp3 -- loud
|
||||
; mp3nb -- unbuffered
|
||||
; quietmp3nb -- quiet unbuffered
|
||||
; custom -- run a custom application (See examples below)
|
||||
|
||||
; =========
|
||||
; File-based (native) music on hold
|
||||
; =========
|
||||
;
|
||||
; This plays files directly from the specified directory, no external
|
||||
; processes are required. Files are played in normal sorting order
|
||||
; (same as a sorted directory listing), and no volume or other
|
||||
; sound adjustments are available. If the file is available in
|
||||
; the same format as the channel's codec, then it will be played
|
||||
; without transcoding (same as Playback would do in the dialplan).
|
||||
; Files can be present in as many formats as you wish, and the
|
||||
; 'best' format will be chosen at playback time.
|
||||
;
|
||||
; The path specified can be either an absolute path (starts with '/'),
|
||||
; or a relative path; relative paths are interpreted as being relative
|
||||
; to the 'astdatalibdir' in asterisk.conf, which defaults to
|
||||
; /var/lib/asterisk.
|
||||
;
|
||||
; NOTE:
|
||||
; If you are not using "autoload" in modules.conf, then you
|
||||
; must ensure that the format modules for any formats you wish
|
||||
; to use are loaded _before_ res_musiconhold. If you do not do
|
||||
; this, res_musiconhold will skip the files it is not able to
|
||||
; understand when it loads.
|
||||
;
|
||||
|
||||
[default]
|
||||
mode=files
|
||||
directory=moh
|
||||
;
|
||||
;[native-random]
|
||||
;mode=files
|
||||
;directory=moh
|
||||
;digit=# ; If this option is set for a class, then when callers are
|
||||
; ; listening to music on hold, they can press this digit, and
|
||||
; ; they will switch to listening to this music class.
|
||||
;sort=random ; Sort the files in random order
|
||||
|
||||
;[native-alphabetical]
|
||||
;mode=files
|
||||
;directory=moh
|
||||
;sort=alpha ; Sort the files in alphabetical order. If this option is
|
||||
; ; not specified, the sort order is undefined.
|
||||
|
||||
; =========
|
||||
; Other (non-native) playback methods
|
||||
; =========
|
||||
|
||||
;[manual]
|
||||
;mode=custom
|
||||
; Note that with mode=custom, a directory is not required, such as when reading
|
||||
; from a stream.
|
||||
;directory=/var/lib/asterisk/mohmp3
|
||||
;application=/usr/bin/mpg123 -q -r 8000 -f 8192 -b 2048 --mono -s
|
||||
|
||||
;[ulawstream]
|
||||
;mode=custom
|
||||
;application=/usr/bin/streamplayer 192.168.100.52 888
|
||||
;format=ulaw
|
||||
|
||||
; mpg123 on Solaris does not always exit properly; madplay may be a better
|
||||
; choice
|
||||
;[solaris]
|
||||
;mode=custom
|
||||
;directory=/var/lib/asterisk/mohmp3
|
||||
;application=/site/sw/bin/madplay -Q -o raw:- --mono -R 8000 -a -12
|
39
asterisk/muted.conf
Normal file
39
asterisk/muted.conf
Normal file
@ -0,0 +1,39 @@
|
||||
#
|
||||
# Sample muted configuration file
|
||||
#
|
||||
# Copyright (C) 2004 Digium, Inc.
|
||||
#
|
||||
# First you have the host, username, and password
|
||||
# we use to connect to the asterisk system
|
||||
#
|
||||
# What is this? Well, haven't you ever wished you could automatically
|
||||
# turn down the volume on your stereo, CDPlayer, etc, when a call comes in,
|
||||
# and then return it to normal when the call ends? Well, this is a possible
|
||||
# mechanism to make this happen!
|
||||
# You have to fire up the new utils/muted, which runs as a daemon in the
|
||||
# background. This daemon connects to asterisk via a manager interface, and
|
||||
# also reads this config file from /etc/muted.conf. when the channels mentioned
|
||||
# are activated, it tweaks the sound levels on the sound card(s).
|
||||
# So, depending on the sound card, you may be able to run all your sound
|
||||
# generating devices thru your sound card, and use this mechanism to quiet
|
||||
# them down while you are on the phone. If anyone figures out how to make
|
||||
# this work with kids, please inform!!
|
||||
#
|
||||
host localhost
|
||||
user user
|
||||
pass pass
|
||||
#
|
||||
# List each channel we're supposed to watch
|
||||
#
|
||||
channel DAHDI/1
|
||||
channel DAHDI/2
|
||||
channel SIP/mark
|
||||
#
|
||||
# Mute level is the percentage of the current volume we should
|
||||
# lower the music to.
|
||||
#
|
||||
mutelevel 20
|
||||
#
|
||||
# Smooth fade makes the fadein/fadeout nicer sounding
|
||||
#
|
||||
smoothfade
|
8
asterisk/mysql.conf
Normal file
8
asterisk/mysql.conf
Normal file
@ -0,0 +1,8 @@
|
||||
; Configuration file for app_addon_sql_mysql
|
||||
[general]
|
||||
; If set, autoclear will destroy allocated statement and connection resources
|
||||
; when the channel ends. For most usage of the MYSQL app, this is what you
|
||||
; want, but it's conceivable that somebody is sharing MYSQL connections across
|
||||
; multiple channels, in which case, this should be set to 'no'. Defaults to
|
||||
; 'no', as this was the original behavior.
|
||||
autoclear=yes
|
173
asterisk/ooh323.conf
Normal file
173
asterisk/ooh323.conf
Normal file
@ -0,0 +1,173 @@
|
||||
; ---------------------------------------------------------------------------------
|
||||
; --- ******* IMPORTANT NOTE ***********
|
||||
; ---
|
||||
; --- This module is currently unsupported. Use it at your own risk.
|
||||
; ---
|
||||
; ---------------------------------------------------------------------------------
|
||||
|
||||
; Objective System's H323 Configuration example for Asterisk
|
||||
; ooh323c driver configuration
|
||||
;
|
||||
; [general] section defines global parameters
|
||||
;
|
||||
; This is followed by profiles which can be of three types - user/peer/friend
|
||||
; Name of the user profile should match with the h323id of the user device.
|
||||
; For peer/friend profiles, host ip address must be provided as "dynamic" is
|
||||
; not supported as of now.
|
||||
;
|
||||
; Syntax for specifying a H323 device in extensions.conf is
|
||||
; For Registered peers/friends profiles:
|
||||
; OOH323/name where name is the name of the peer/friend profile.
|
||||
;
|
||||
; For unregistered H.323 phones:
|
||||
; OOH323/ip[:port] OR if gk is used OOH323/alias where alias can be any H323
|
||||
; alias
|
||||
;
|
||||
; For dialing into another asterisk peer at a specific exten
|
||||
; OOH323/exten/peer OR OOH323/exten@ip
|
||||
;
|
||||
; Domain name resolution is not yet supported.
|
||||
;
|
||||
; When a H.323 user calls into asterisk, his H323ID is matched with the profile
|
||||
; name and context is determined to route the call
|
||||
;
|
||||
; The channel driver will register all global aliases and aliases defined in
|
||||
; peer profiles with the gatekeeper, if one exists. So, that when someone
|
||||
; outside our pbx (non-user) calls an extension, gatekeeper will route that
|
||||
; call to our asterisk box, from where it will be routed as per dial plan.
|
||||
|
||||
|
||||
[general]
|
||||
;Define the asetrisk server h323 endpoint
|
||||
|
||||
;The port asterisk should listen for incoming H323 connections.
|
||||
;Default - 1720
|
||||
;port=1720
|
||||
|
||||
;The dotted IP address asterisk should listen on for incoming H323
|
||||
;connections
|
||||
;Default - tries to find out local ip address on it's own
|
||||
bindaddr=0.0.0.0
|
||||
|
||||
;This parameter indicates whether channel driver should register with
|
||||
;gatekeeper as a gateway or an endpoint.
|
||||
;Default - no
|
||||
;gateway=no
|
||||
|
||||
;Whether asterisk should use fast-start and tunneling for H323 connections.
|
||||
;Default - yes
|
||||
;faststart=no
|
||||
;h245tunneling=no
|
||||
|
||||
;Whether media wait for connect
|
||||
;Default - No
|
||||
;mediawaitforconnect=yes
|
||||
|
||||
;H323-ID to be used for asterisk server
|
||||
;Default - Asterisk PBX
|
||||
h323id=ObjSysAsterisk
|
||||
e164=100
|
||||
|
||||
;CallerID to use for calls
|
||||
;Default - Same as h323id
|
||||
callerid=asterisk
|
||||
|
||||
;Whether this asterisk server will use gatekeeper.
|
||||
;Default - DISABLE
|
||||
;gatekeeper = DISCOVER
|
||||
;gatekeeper = a.b.c.d
|
||||
gatekeeper = DISABLE
|
||||
|
||||
;Location for H323 log file
|
||||
;Default - /var/log/asterisk/h323_log
|
||||
;logfile=/var/log/asterisk/h323_log
|
||||
|
||||
|
||||
;Following values apply to all users/peers/friends defined below, unless
|
||||
;overridden within their client definition
|
||||
|
||||
;Sets default context all clients will be placed in.
|
||||
;Default - default
|
||||
context=default
|
||||
|
||||
;Sets rtptimeout for all clients, unless overridden
|
||||
;Default - 60 seconds
|
||||
;rtptimeout=60 ; Terminate call if 60 seconds of no RTP activity
|
||||
; when we're not on hold
|
||||
|
||||
;Type of Service
|
||||
;Default - none (lowdelay, thoughput, reliability, mincost, none)
|
||||
;tos=lowdelay
|
||||
|
||||
;amaflags = default
|
||||
|
||||
;The account code used by default for all clients.
|
||||
;accountcode=h3230101
|
||||
|
||||
;The codecs to be used for all clients.Only ulaw and gsm supported as of now.
|
||||
;Default - ulaw
|
||||
; ONLY ulaw, gsm, g729 and g7231 supported as of now
|
||||
disallow=all ;Note order of disallow/allow is important.
|
||||
allow=gsm
|
||||
allow=ulaw
|
||||
|
||||
|
||||
; dtmf mode to be used by default for all clients. Supports rfc2833, q931keypad
|
||||
; h245alphanumeric, h245signal.
|
||||
;Default - rfc 2833
|
||||
dtmfmode=rfc2833
|
||||
|
||||
; User/peer/friend definitions:
|
||||
; User config options Peer config options
|
||||
; ------------------ -------------------
|
||||
; context
|
||||
; disallow disallow
|
||||
; allow allow
|
||||
; accountcode accountcode
|
||||
; amaflags amaflags
|
||||
; dtmfmode dtmfmode
|
||||
; rtptimeout ip
|
||||
; port
|
||||
; h323id
|
||||
; email
|
||||
; url
|
||||
; e164
|
||||
; rtptimeout
|
||||
|
||||
;
|
||||
|
||||
;Define users here
|
||||
;Section header is extension
|
||||
[myuser1]
|
||||
type=user
|
||||
context=context1
|
||||
disallow=all
|
||||
allow=gsm
|
||||
allow=ulaw
|
||||
|
||||
|
||||
|
||||
[mypeer1]
|
||||
type=peer
|
||||
context=context2
|
||||
ip=a.b.c.d ; UPDATE with appropriate ip address
|
||||
port=1720 ; UPDATE with appropriate port
|
||||
e164=101
|
||||
|
||||
|
||||
|
||||
[myfriend1]
|
||||
type=friend
|
||||
context=default
|
||||
ip=10.0.0.82 ; UPDATE with appropriate ip address
|
||||
port=1820 ; UPDATE with appropriate port
|
||||
disallow=all
|
||||
allow=ulaw
|
||||
e164=12345
|
||||
rtptimeout=60
|
||||
dtmfmode=rfc2833
|
||||
|
||||
|
||||
|
||||
|
||||
|
90
asterisk/osp.conf
Normal file
90
asterisk/osp.conf
Normal file
@ -0,0 +1,90 @@
|
||||
;
|
||||
; Open Settlement Protocol Sample Configuration File
|
||||
;
|
||||
; This file contains configuration of OSP server providers that are used by the
|
||||
; Asterisk OSP module. The section "general" is reserved for global options.
|
||||
; All other sections describe specific OSP Providers. The provider "default"
|
||||
; is used when no provider is otherwise specified.
|
||||
;
|
||||
; The "servicepoint" and "source" parameters must be configured. For most
|
||||
; implementations the other parameters in this file can be left unchanged.
|
||||
;
|
||||
[general]
|
||||
;
|
||||
; Enable cryptographic acceleration hardware.
|
||||
;
|
||||
;accelerate=no
|
||||
;
|
||||
; Defines the status of tokens that Asterisk will validate.
|
||||
; 0 - signed tokens only
|
||||
; 1 - unsigned tokens only
|
||||
; 2 - both signed and unsigned
|
||||
; The default value is 0, i.e. the Asterisk will only validate signed tokens.
|
||||
;
|
||||
;tokenformat=0
|
||||
;
|
||||
;[default]
|
||||
;
|
||||
; List all service points (OSP servers) for this provider.
|
||||
; Use either domain name or IP address. Most OSP servers use port 1080.
|
||||
;
|
||||
;servicepoint=http://osptestserver.transnexus.com:1080/osp
|
||||
;
|
||||
; Define the "source" device for requesting OSP authorization.
|
||||
; This value is usually the domain name or IP address of the the Asterisk server.
|
||||
;
|
||||
;source=domain name or [IP address in brackets]
|
||||
;
|
||||
; Define path and file name of crypto files.
|
||||
; The default path for crypto file is /var/lib/asterisk/keys. If no path is
|
||||
; defined, crypto files will in /var/lib/asterisk/keys directory.
|
||||
;
|
||||
; Specify the private key file name.
|
||||
; If this parameter is unspecified or not present, the default name will be the
|
||||
; osp.conf section name followed by "-privatekey.pem" (for example:
|
||||
; default-privatekey.pem)
|
||||
;
|
||||
;privatekey=pkey.pem
|
||||
;
|
||||
; Specify the local certificate file.
|
||||
; If this parameter is unspecified or not present, the default name will be the
|
||||
; osp.conf section name followed by "- localcert.pem " (for example:
|
||||
; default-localcert.pem)
|
||||
;
|
||||
;localcert=localcert.pem
|
||||
;
|
||||
; Specify one or more Certificate Authority key file names. If none are listed,
|
||||
; a single Certificate Authority key file name is added with the default name of
|
||||
; the osp.conf section name followed by "-cacert_0.pem " (for example:
|
||||
; default-cacert_0.pem)
|
||||
;
|
||||
;cacert=cacert_0.pem
|
||||
;
|
||||
; Configure parameters for OSP communication between Asterisk OSP client and OSP
|
||||
; servers.
|
||||
;
|
||||
; maxconnections: Max number of simultaneous connections to the provider OSP
|
||||
; server (default=20)
|
||||
; retrydelay: Extra delay between retries (default=0)
|
||||
; retrylimit: Max number of retries before giving up (default=2)
|
||||
; timeout: Timeout for response in milliseconds (default=500)
|
||||
;
|
||||
;maxconnections=20
|
||||
;retrydelay=0
|
||||
;retrylimit=2
|
||||
;timeout=500
|
||||
;
|
||||
; Set the authentication policy.
|
||||
; 0 - NO - Accept all calls.
|
||||
; 1 - YES - Accept calls with valid token or no token. Block calls with
|
||||
; invalid token.
|
||||
; 2 - EXCLUSIVE - Accept calls with valid token. Block calls with invalid token
|
||||
; or no token.
|
||||
; Default is 1,
|
||||
;
|
||||
;authpolicy=1
|
||||
;
|
||||
; Set the default destination protocol. The OSP module supports SIP, H323, and
|
||||
; IAX protocols. The default protocol is set to SIP.
|
||||
;
|
||||
;defaultprotocol=SIP
|
153
asterisk/oss.conf
Normal file
153
asterisk/oss.conf
Normal file
@ -0,0 +1,153 @@
|
||||
;
|
||||
; Automatically generated from ../channels/chan_oss.c
|
||||
;
|
||||
|
||||
[general]
|
||||
; General config options, with default values shown.
|
||||
; You should use one section per device, with [general] being used
|
||||
; for the first device and also as a template for other devices.
|
||||
;
|
||||
; All but 'debug' can go also in the device-specific sections.
|
||||
;
|
||||
; debug = 0x0 ; misc debug flags, default is 0
|
||||
|
||||
; Set the device to use for I/O
|
||||
; device = /dev/dsp
|
||||
|
||||
; Optional mixer command to run upon startup (e.g. to set
|
||||
; volume levels, mutes, etc.
|
||||
; mixer =
|
||||
|
||||
; Software mic volume booster (or attenuator), useful for sound
|
||||
; cards or microphones with poor sensitivity. The volume level
|
||||
; is in dB, ranging from -20.0 to +20.0
|
||||
; boost = n ; mic volume boost in dB
|
||||
|
||||
; Set the callerid for outgoing calls
|
||||
; callerid = John Doe <555-1234>
|
||||
|
||||
; autoanswer = no ; no autoanswer on call
|
||||
; autohangup = yes ; hangup when other party closes
|
||||
; extension = s ; default extension to call
|
||||
; context = default ; default context for outgoing calls
|
||||
; language = "" ; default language
|
||||
|
||||
; If you set overridecontext to 'yes', then the whole dial string
|
||||
; will be interpreted as an extension, which is extremely useful
|
||||
; to dial SIP, IAX and other extensions which use the '@' character.
|
||||
; The default is 'no' just for backward compatibility, but the
|
||||
; suggestion is to change it.
|
||||
; overridecontext = no ; if 'no', the last @ will start the context
|
||||
; if 'yes' the whole string is an extension.
|
||||
|
||||
; low level device parameters in case you have problems with the
|
||||
; device driver on your operating system. You should not touch these
|
||||
; unless you know what you are doing.
|
||||
; queuesize = 10 ; frames in device driver
|
||||
; frags = 8 ; argument to SETFRAGMENT
|
||||
|
||||
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
|
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an
|
||||
; OSS channel. Defaults to "no". An enabled jitterbuffer will
|
||||
; be used only if the sending side can create and the receiving
|
||||
; side can not accept jitter. The OSS channel can't accept jitter,
|
||||
; thus an enabled jitterbuffer on the receive OSS side will always
|
||||
; be used if the sending side can create jitter.
|
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||
; resynchronized. Useful to improve the quality of the voice, with
|
||||
; big jumps in/broken timestamps, usually sent from exotic devices
|
||||
; and programs. Defaults to 1000.
|
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of an OSS
|
||||
; channel. Two implementations are currently available - "fixed"
|
||||
; (with size always equals to jbmax-size) and "adaptive" (with
|
||||
; variable size, actually the new jb of IAX2). Defaults to fixed.
|
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set.
|
||||
; The option represents the number of milliseconds by which the new
|
||||
; jitter buffer will pad its size. the default is 40, so without
|
||||
; modification, the new jitter buffer will set its size to the jitter
|
||||
; value plus 40 milliseconds. increasing this value may help if your
|
||||
; network normally has low jitter, but occasionally has spikes.
|
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
|
||||
;-----------------------------------------------------------------------------------
|
||||
|
||||
; below is an entry for a second console channel
|
||||
; [card1]
|
||||
; device = /dev/dsp1 ; alternate device
|
||||
|
||||
; Below are the settings to support video. You can include them
|
||||
; in your general configuration as [general](+,video)
|
||||
; The parameters are all available through the CLI as "console name value"
|
||||
; Section names used here are only examples.
|
||||
|
||||
[my_video](!) ; you can just include in your config
|
||||
videodevice = /dev/video0 ; uses your V4L webcam as video source
|
||||
videodevice = X11 ; X11 grabber. Dragging on the local display moves the origin.
|
||||
videocodec = h263 ; also h261, h263p, h264, mpeg4, ...
|
||||
|
||||
; video_size is the geometry used by the encoder.
|
||||
; Depending on the codec your choice is restricted.
|
||||
video_size = 352x288 ; the format WIDTHxHEIGHT is also ok
|
||||
video_size = cif ; sqcif, qcif, cif, qvga, vga, ...
|
||||
|
||||
; You can also set the geometry used for the camera, local display and remote display.
|
||||
; The local window is on the right, the remote window is on the left.
|
||||
; Right clicking with the mouse on a video window increases the size,
|
||||
; center-clicking reduces the size.
|
||||
camera_size = cif
|
||||
remote_size = cif
|
||||
local_size = qcif
|
||||
|
||||
bitrate = 60000 ; rate told to ffmpeg.
|
||||
fps = 5 ; frames per second from the source.
|
||||
; qmin = 3 ; quantizer value passed to the encoder.
|
||||
|
||||
; The keypad is made of an image (in any format supported by SDL_image)
|
||||
; and some configuration entries indicating the location and function of buttons.
|
||||
; These entries can also be contained in the comment field of the image,
|
||||
; which is a lot more convenient to manage.
|
||||
; E.g. for jpeg you can write them with wrjpgcom (part of libjpeg).
|
||||
; The format to define keys is
|
||||
; region = <event> <shape> x0 y0 x1 y1 h
|
||||
; where <event> is the event to be generated (a digit, pickup, hangup,...)
|
||||
; <shape> is the shape of the region (currently 'rect' and 'circle' are
|
||||
; supported, the latter is really an ellipse), x0 y0 x1 y1 are the
|
||||
; coordinates of the base of the rectangle or main diameter of the ellipse,
|
||||
; (they can be rotated) while h is the height of the rectangle or the other
|
||||
; diameter of the ellipse.
|
||||
;
|
||||
[my_skin](!)
|
||||
keypad = /tmp/keypad.jpg
|
||||
region = 1 rect 19 18 67 18 28
|
||||
region = 2 rect 84 18 133 18 28
|
||||
region = 3 rect 152 18 201 18 28
|
||||
region = 4 rect 19 60 67 60 28
|
||||
region = 5 rect 84 60 133 60 28
|
||||
region = 6 rect 152 60 201 60 28
|
||||
region = 7 rect 19 103 67 103 28
|
||||
region = 8 rect 84 103 133 103 28
|
||||
region = 9 rect 152 103 201 103 28
|
||||
region = * rect 19 146 67 146 28
|
||||
region = 0 rect 84 146 133 146 28
|
||||
region = # rect 152 146 201 146 28
|
||||
region = pickup rect 229 15 267 15 40
|
||||
region = hangup rect 230 66 270 64 40
|
||||
region = mute circle 232 141 264 141 33
|
||||
region = sendvideo circle 235 185 266 185 33
|
||||
region = autoanswer rect 228 212 275 212 50
|
||||
|
||||
; another skin with entries for the keypad and a small font
|
||||
; to write to the message boards in the skin.
|
||||
[skin2](!)
|
||||
keypad = /tmp/kpad2.jpg
|
||||
keypad_font = /tmp/font.png
|
||||
|
||||
; to add video support, uncomment this and remember to install
|
||||
; the keypad and keypad_font files to the right place
|
||||
; [general](+,my_video,skin2)
|
||||
|
51
asterisk/phone.conf
Normal file
51
asterisk/phone.conf
Normal file
@ -0,0 +1,51 @@
|
||||
;
|
||||
; Linux Telephony Interface
|
||||
;
|
||||
; Configuration file
|
||||
;
|
||||
[interfaces]
|
||||
;
|
||||
; Select a mode, either the phone jack provides dialtone, reads digits,
|
||||
; then starts PBX with the given extension (dialtone mode), or
|
||||
; immediately provides the PBX without reading any digits or providing
|
||||
; any dialtone (this is the immediate mode, the default). Also, you
|
||||
; can set the mode to "fxo" if you have a linejack to make it operate
|
||||
; properly. If you are using a Sigma Designs board you may set this to
|
||||
; "sig".
|
||||
;
|
||||
mode=immediate
|
||||
;mode=dialtone
|
||||
;mode=fxo
|
||||
;mode=sig
|
||||
;
|
||||
; You can decide which format to use by default, "g723.1", "g729", or "slinear".
|
||||
; Note that g729 is only supported for Sigma Designs boards.
|
||||
; XXX Be careful, sometimes the card causes kernel panics when running
|
||||
; in signed linear mode for some reason... XXX
|
||||
;
|
||||
format=slinear
|
||||
;format=g723.1
|
||||
;format=g729
|
||||
;
|
||||
; And set the echo cancellation to "off", "low", "medium", and "high".
|
||||
; This is not supported on all phones.
|
||||
;
|
||||
echocancel=medium
|
||||
;
|
||||
; You can optionally use VAD/CNG silence suppression
|
||||
;
|
||||
;silencesupression=yes
|
||||
;
|
||||
; List all devices we can use. Contexts may also be specified
|
||||
;
|
||||
;context=local
|
||||
;
|
||||
; You can set txgain and rxgain for each device in the same way as context.
|
||||
; If you want to change default gain value (1.0 =~ 100%) for device, simple
|
||||
; add txgain or rxgain line before device line. But remember, if you change
|
||||
; volume all cards listed below will be affected by these values. You can
|
||||
; use float values (1.0, 0.5, 2.0) or percentage values (100%, 150%, 50%).
|
||||
;
|
||||
;txgain=100%
|
||||
;rxgain=1.0
|
||||
;device => /dev/phone0
|
136
asterisk/phoneprov.conf
Normal file
136
asterisk/phoneprov.conf
Normal file
@ -0,0 +1,136 @@
|
||||
[general]
|
||||
; The default behavior of res_phoneprov will be to set the SERVER template variable to
|
||||
; the IP address that the phone uses to contact the provisioning server and the
|
||||
; SERVER_PORT variable to the bindport setting in sip.conf. Unless you have a very
|
||||
; unusual setup, you should not need to set serveraddr, serveriface, or serverport.
|
||||
|
||||
;serveraddr=192.168.1.1 ; Override address to send to the phone to use as server address.
|
||||
;serveriface=eth0 ; Same as above, except an ethernet interface.
|
||||
; Useful for when the interface uses DHCP and the asterisk http
|
||||
; server listens on a different IP than chan_sip.
|
||||
;serverport=5060 ; Override port to send to the phone to use as server port.
|
||||
default_profile=polycom ; The default profile to use if none specified in users.conf
|
||||
|
||||
; You can define profiles for different phones specifying what files to register
|
||||
; with the provisioning server. You can define either static files, or dynamically
|
||||
; generated files that can have dynamic names and point to templates that variables
|
||||
; can be substituted into. You can also set arbitrary variables for the profiles
|
||||
; templates to have access to. Example:
|
||||
|
||||
;[example]
|
||||
;mime_type => application/octet-stream
|
||||
;static_file => example/firmware
|
||||
;static_file => example/default.cfg,text/xml
|
||||
;${TOUPPER(${MAC})}.cfg => templates/example-mac.cfg
|
||||
;setvar => DB_CIDNAME=${ODBC_CID_NAME_LOOKUP(${USERNAME})}
|
||||
|
||||
; Dynamically generated files have a filename registered with variable substitution
|
||||
; with variables obtained while reading users.conf.
|
||||
|
||||
; Built in variables and the options in users.conf that they come from
|
||||
; MAC (macaddress)
|
||||
; USERNAME (username)
|
||||
; DISPLAY_NAME (fullname)
|
||||
; SECRET (secret)
|
||||
; LABEL (label)
|
||||
; CALLERID (cid_number)
|
||||
; VOCIEMAIL_EXTEN (vmexten)
|
||||
; EXTENSION_LENGTH (localextenlength)
|
||||
; LINE
|
||||
; LINEKEYS
|
||||
|
||||
; Built-in variables and the options in phoneprov.conf that they come from
|
||||
; SERVER (server)
|
||||
; SERVER_PORT (serverport)
|
||||
|
||||
|
||||
; Built-in variables for managing timezones and daylight savings time.
|
||||
; TZOFFSET
|
||||
; DST_ENABLE
|
||||
; DST_START_MONTH
|
||||
; DST_START_MDAY
|
||||
; DST_START_HOUR
|
||||
; DST_END_MONTH
|
||||
; DST_END_MDAY
|
||||
; DST_END_HOUR
|
||||
; TIMEZONE
|
||||
|
||||
[polycom]
|
||||
staticdir => configs/ ; Sub directory of AST_DATA_DIR/phoneprov that static files reside
|
||||
; in. This allows a request to /phoneprov/sip.cfg to pull the file
|
||||
; from /phoneprov/configs/sip.cfg
|
||||
mime_type => text/xml ; Default mime type to use if one isn't specified or the
|
||||
; extension isn't recognized
|
||||
static_file => bootrom.ld,application/octet-stream ; Static files the phone will download
|
||||
static_file => bootrom.ver,plain/text ; static_file => filename,mime-type
|
||||
static_file => sip.ld,application/octet-stream
|
||||
static_file => sip.ver,plain/text
|
||||
static_file => sip.cfg
|
||||
static_file => custom.cfg
|
||||
static_file => 2201-06642-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2201-06642-001.sip.ld,application/octet-stream
|
||||
static_file => 2345-11000-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-11300-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-11300-010.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-11300-010.sip.ld,application/octet-stream
|
||||
static_file => 2345-11402-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-11402-001.sip.ld,application/octet-stream
|
||||
static_file => 2345-11500-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-11500-010.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-11500-020.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-11500-030.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-11500-030.sip.ld,application/octet-stream
|
||||
static_file => 2345-11500-040.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-11500-040.sip.ld,application/octet-stream
|
||||
static_file => 2345-11600-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-11600-001.sip.ld,application/octet-stream
|
||||
static_file => 2345-11605-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-11605-001.sip.ld,application/octet-stream
|
||||
static_file => 2345-12200-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-12200-001.sip.ld,application/octet-stream
|
||||
static_file => 2345-12200-002.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-12200-002.sip.ld,application/octet-stream
|
||||
static_file => 2345-12200-004.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-12200-004.sip.ld,application/octet-stream
|
||||
static_file => 2345-12200-005.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-12200-005.sip.ld,application/octet-stream
|
||||
static_file => 2345-12365-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-12365-001.sip.ld,application/octet-stream
|
||||
static_file => 2345-12500-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-12500-001.sip.ld,application/octet-stream
|
||||
static_file => 2345-12560-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-12560-001.sip.ld,application/octet-stream
|
||||
static_file => 2345-12600-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-12600-001.sip.ld,application/octet-stream
|
||||
static_file => 2345-12670-001.bootrom.ld,application/octet-stream
|
||||
static_file => 2345-12670-001.sip.ld,application/octet-stream
|
||||
static_file => 3111-15600-001.bootrom.ld,application/octet-stream
|
||||
static_file => 3111-15600-001.sip.ld,application/octet-stream
|
||||
static_file => 3111-40000-001.bootrom.ld,application/octet-stream
|
||||
static_file => 3111-40000-001.sip.ld,application/octet-stream
|
||||
static_file => SoundPointIPWelcome.wav,application/octet-stream
|
||||
static_file => SoundPointIPLocalization/Japanese_Japan/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/Norwegian_Norway/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/Spanish_Spain/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/Portuguese_Portugal/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/English_United_Kingdom/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/English_United_States/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/Russian_Russia/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/Italian_Italy/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/Chinese_China/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/Swedish_Sweden/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/English_Canada/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/German_Germany/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/French_France/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/Danish_Denmark/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/Dutch_Netherlands/SoundPointIP-dictionary.xml
|
||||
static_file => SoundPointIPLocalization/Korean_Korea/SoundPointIP-dictionary.xml
|
||||
|
||||
${MAC}.cfg => 000000000000.cfg ; Dynamically generated files.
|
||||
${MAC}-phone.cfg => 000000000000-phone.cfg ; (relative to AST_DATA_DIR/phoneprov)
|
||||
config/${MAC} => polycom.xml ; Dynamic Filename => template file
|
||||
${MAC}-directory.xml => 000000000000-directory.xml
|
||||
setvar => CUSTOM_CONFIG=/var/lib/asterisk/phoneprov/configs/custom.cfg ; Custom variable
|
||||
|
||||
;snom 300, 320, 360, 370, 820, 821, 870 support
|
||||
snom-${MAC}.xml => snom-mac.xml
|
20
asterisk/queuerules.conf
Normal file
20
asterisk/queuerules.conf
Normal file
@ -0,0 +1,20 @@
|
||||
; It is possible to change the value of the QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY
|
||||
; channel variables in mid-call by defining rules in the queue for when to do so. This can allow for
|
||||
; a call to be opened to more members or potentially a different set of members.
|
||||
; The advantage to changing members this way as opposed to inserting the caller into a
|
||||
; different queue with more members or reinserting the caller into the same queue with a different
|
||||
; QUEUE_MAX_PENALTY or QUEUE_MIN_PENALTY set is that the caller does not lose his place in the queue.
|
||||
;
|
||||
; Note: There is a limitation to these rules; a caller will follow the penaltychange rules for
|
||||
; the queue that were defined at the time the caller entered the queue. If an update to the rules is
|
||||
; made during the the caller's stay in the queue, these will not be reflected for that caller.
|
||||
;
|
||||
; The syntax for these rules is
|
||||
; penaltychange => <number of seconds into the call>,<absolute or relative change to QUEUE_MAX_PENALTY>[,absolute or relative change to QUEUE_MIN_PENALTY]
|
||||
;
|
||||
; Example:
|
||||
; [myrule]
|
||||
; penaltychange => 30,+3 ; 30 seconds into the call increase the QUEUE_MAX_PENALTY by 3, no change to QUEUE_MIN_PENALTY
|
||||
; penaltychange => 60,10,5 ; 60 seconds into the call increase the QUEUE_MAX_PENALTY to 10 and increase the QUEUE_MIN_PENALTY to 5
|
||||
; penaltychange => 75,,7 ; 75 seconds into the call keep the QUEUE_MAX_PENALTY the same and increase the QUEUE_MIN_PENALTY to 7
|
||||
|
502
asterisk/queues.conf
Normal file
502
asterisk/queues.conf
Normal file
@ -0,0 +1,502 @@
|
||||
[general]
|
||||
;
|
||||
; Global settings for call queues
|
||||
;
|
||||
; Persistent Members
|
||||
; Store each dynamic member in each queue in the astdb so that
|
||||
; when asterisk is restarted, each member will be automatically
|
||||
; read into their recorded queues. Default is 'yes'.
|
||||
;
|
||||
persistentmembers = yes
|
||||
;
|
||||
; AutoFill Behavior
|
||||
; The old/current behavior of the queue has a serial type behavior
|
||||
; in that the queue will make all waiting callers wait in the queue
|
||||
; even if there is more than one available member ready to take
|
||||
; calls until the head caller is connected with the member they
|
||||
; were trying to get to. The next waiting caller in line then
|
||||
; becomes the head caller, and they are then connected with the
|
||||
; next available member and all available members and waiting callers
|
||||
; waits while this happens. The new behavior, enabled by setting
|
||||
; autofill=yes makes sure that when the waiting callers are connecting
|
||||
; with available members in a parallel fashion until there are
|
||||
; no more available members or no more waiting callers. This is
|
||||
; probably more along the lines of how a queue should work and
|
||||
; in most cases, you will want to enable this behavior. If you
|
||||
; do not specify or comment out this option, it will default to no
|
||||
; to keep backward compatibility with the old behavior.
|
||||
;
|
||||
autofill = yes
|
||||
;
|
||||
; Monitor Type
|
||||
; By setting monitor-type = MixMonitor, when specifying monitor-format
|
||||
; to enable recording of queue member conversations, app_queue will
|
||||
; now use the new MixMonitor application instead of Monitor so
|
||||
; the concept of "joining/mixing" the in/out files now goes away
|
||||
; when this is enabled. You can set the default type for all queues
|
||||
; here, and then also change monitor-type for individual queues within
|
||||
; queue by using the same configuration parameter within a queue
|
||||
; configuration block. If you do not specify or comment out this option,
|
||||
; it will default to the old 'Monitor' behavior to keep backward
|
||||
; compatibility.
|
||||
;
|
||||
monitor-type = MixMonitor
|
||||
;
|
||||
; UpdateCDR behavior.
|
||||
; This option is implemented to mimic chan_agents behavior of populating
|
||||
; CDR dstchannel field of a call with an agent name, which you can set
|
||||
; at the login time with AddQueueMember membername parameter.
|
||||
;
|
||||
; updatecdr = no
|
||||
|
||||
;
|
||||
; Note that a timeout to fail out of a queue may be passed as part of
|
||||
; an application call from extensions.conf:
|
||||
; Queue(queuename,[options],[optionalurl],[announceoverride],[timeout])
|
||||
; example: Queue(dave,t,,,45)
|
||||
|
||||
; shared_lastcall will make the lastcall and calls received be the same in
|
||||
; members logged in more than one queue.
|
||||
; This is useful to make the queue respect the wrapuptime of another queue
|
||||
; for a shared member
|
||||
;
|
||||
shared_lastcall=no
|
||||
;
|
||||
;[markq]
|
||||
;
|
||||
; A sample call queue
|
||||
;
|
||||
; Musicclass sets which music applies for this particular call queue.
|
||||
; The only class which can override this one is if the MOH class is set
|
||||
; directly on the channel using Set(CHANNEL(musicclass)=whatever) in the
|
||||
; dialplan.
|
||||
;
|
||||
;musicclass = default
|
||||
;
|
||||
; An announcement may be specified which is played for the member as
|
||||
; soon as they answer a call, typically to indicate to them which queue
|
||||
; this call should be answered as, so that agents or members who are
|
||||
; listening to more than one queue can differentiated how they should
|
||||
; engage the customer
|
||||
;
|
||||
;announce = queue-markq
|
||||
;
|
||||
; A strategy may be specified. Valid strategies include:
|
||||
;
|
||||
; ringall - ring all available channels until one answers (default)
|
||||
; leastrecent - ring interface which was least recently called by this queue
|
||||
; fewestcalls - ring the one with fewest completed calls from this queue
|
||||
; random - ring random interface
|
||||
; rrmemory - round robin with memory, remember where we left off last ring pass
|
||||
; rrordered - same as rrmemory, except the queue member order from config file
|
||||
; is preserved
|
||||
; linear - rings interfaces in the order specified in this configuration file.
|
||||
; If you use dynamic members, the members will be rung in the order in
|
||||
; which they were added
|
||||
; wrandom - rings random interface, but uses the member's penalty as a weight
|
||||
; when calculating their metric. So a member with penalty 0 will have
|
||||
; a metric somewhere between 0 and 1000, and a member with penalty 1 will
|
||||
; have a metric between 0 and 2000, and a member with penalty 2 will have
|
||||
; a metric between 0 and 3000. Please note, if using this strategy, the member
|
||||
; penalty is not the same as when using other queue strategies. It is ONLY used
|
||||
; as a weight for calculating metric.
|
||||
;
|
||||
;strategy = ringall
|
||||
;
|
||||
; Second settings for service level (default 0)
|
||||
; Used for service level statistics (calls answered within service level time
|
||||
; frame)
|
||||
;servicelevel = 60
|
||||
;
|
||||
; A context may be specified, in which if the user types a SINGLE
|
||||
; digit extension while they are in the queue, they will be taken out
|
||||
; of the queue and sent to that extension in this context.
|
||||
;
|
||||
;context = qoutcon
|
||||
;
|
||||
;----------------------QUEUE TIMING OPTIONS------------------------------------
|
||||
; A Queue has two different "timeout" values associated with it. One is the
|
||||
; timeout parameter configured in queues.conf. This timeout specifies the
|
||||
; amount of time to try ringing a member's phone before considering the
|
||||
; member to be unavailable. The other timeout value is the second argument
|
||||
; to the Queue() application. This timeout represents the absolute amount
|
||||
; of time to allow a caller to stay in the queue before the caller is
|
||||
; removed from the queue. In certain situations, these two timeout values
|
||||
; may clash. For instance, if the timeout in queues.conf is set to 5 seconds,
|
||||
; the retry value in queues.conf is set to 4, and the second argument to Queue()
|
||||
; is 10, then the following may occur:
|
||||
;
|
||||
; A caller places a call to a queue.
|
||||
; The queue selects a member and attempts to ring that member.
|
||||
; The member's phone is rung for 5 seconds and he does not answer.
|
||||
; The retry time of 4 seconds occurs.
|
||||
; The queue selects a second member to call.
|
||||
;
|
||||
; How long does that second member's phone ring? Does it ring for 5 seconds
|
||||
; since the timeout set in app_queue is 5 seconds? Does it ring for 1 second since
|
||||
; the caller has been in the queue for 9 seconds and is supposed to be removed after
|
||||
; being in the queue for 10 seconds? This is configurable with the timeoutpriority
|
||||
; option. By setting the timeoutpriority to "conf" then you are saying that you would
|
||||
; rather use the time specified in the configuration file even if it means having the
|
||||
; caller stay in the queue longer than the time specified in the application argument.
|
||||
; For the scenario described above, timeoutpriority=conf would result in the second
|
||||
; member's phone ringing for 5 seconds. By specifying "app" as the value for
|
||||
; timeoutpriority, you are saying that the timeout specified as the argument to the
|
||||
; Queue application is more important. In the scenario above, timeoutpriority=app
|
||||
; would result in the second member's phone ringing for 1 second.
|
||||
;
|
||||
; There are a few exceptions to the priority rules. For instance, if timeoutpriority=appp
|
||||
; and the configuration file timeout is set to 0, but the application argument timeout is
|
||||
; non-zero, then the timeoutpriority is ignored and the application argument is used as
|
||||
; the timeout. Furthermore, if no application argument timeout is specified, then the
|
||||
; timeoutpriority option is ignored and the configuration file timeout is always used
|
||||
; when calling queue members.
|
||||
;
|
||||
; In timeoutpriority=conf mode however timeout specified in config file will take higher
|
||||
; priority than timeout in application arguments, so if config file has timeout 0, each
|
||||
; queue member will be called indefineately and application timeout will be checked only
|
||||
; after this call attempt. This is useful for having queue members with custom timeouts
|
||||
; specified within Dial application of Local channel, and allows handling NO ANSWER which
|
||||
; would otherwise be interrupted by queue destroying child channel on timeout.
|
||||
;
|
||||
; The default value for timeoutpriority is "app" since this was how previous versions of
|
||||
; Asterisk behaved.
|
||||
;
|
||||
;timeout = 15
|
||||
;retry = 5
|
||||
;timeoutpriority = app|conf
|
||||
;
|
||||
;-----------------------END QUEUE TIMING OPTIONS---------------------------------
|
||||
; Weight of queue - when compared to other queues, higher weights get
|
||||
; first shot at available channels when the same channel is included in
|
||||
; more than one queue.
|
||||
;
|
||||
;weight=0
|
||||
;
|
||||
; After a successful call, how long to wait before sending a potentially
|
||||
; free member another call (default is 0, or no delay)
|
||||
;
|
||||
;wrapuptime=15
|
||||
;
|
||||
; Autofill will follow queue strategy but push multiple calls through
|
||||
; at same time until there are no more waiting callers or no more
|
||||
; available members. The per-queue setting of autofill allows you
|
||||
; to override the default setting on an individual queue level.
|
||||
;
|
||||
;autofill=yes
|
||||
;
|
||||
; Autopause will pause a queue member if they fail to answer a call
|
||||
;
|
||||
;autopause=yes
|
||||
;
|
||||
; Maximum number of people waiting in the queue (0 for unlimited)
|
||||
;
|
||||
;maxlen = 0
|
||||
;
|
||||
; If set to yes, just prior to the caller being bridged with a queue member
|
||||
; the following variables will be set
|
||||
; MEMBERINTERFACE is the interface name (eg. Agent/1234)
|
||||
; MEMBERNAME is the member name (eg. Joe Soap)
|
||||
; MEMBERCALLS is the number of calls that interface has taken,
|
||||
; MEMBERLASTCALL is the last time the member took a call.
|
||||
; MEMBERPENALTY is the penalty of the member
|
||||
; MEMBERDYNAMIC indicates if a member is dynamic or not
|
||||
; MEMBERREALTIME indicates if a member is realtime or not
|
||||
;
|
||||
;setinterfacevar=no
|
||||
;
|
||||
; If set to yes, just prior to the caller being bridged with a queue member
|
||||
; the following variables will be set:
|
||||
; QEHOLDTIME callers hold time
|
||||
; QEORIGINALPOS original position of the caller in the queue
|
||||
;
|
||||
;setqueueentryvar=no
|
||||
;
|
||||
; If set to yes, the following variables will be set
|
||||
; just prior to the caller being bridged with a queue member
|
||||
; and just prior to the caller leaving the queue
|
||||
; QUEUENAME name of the queue
|
||||
; QUEUEMAX maxmimum number of calls allowed
|
||||
; QUEUESTRATEGY the strategy of the queue;
|
||||
; QUEUECALLS number of calls currently in the queue
|
||||
; QUEUEHOLDTIME current average hold time
|
||||
; QUEUECOMPLETED number of completed calls for the queue
|
||||
; QUEUEABANDONED number of abandoned calls
|
||||
; QUEUESRVLEVEL queue service level
|
||||
; QUEUESRVLEVELPERF current service level performance
|
||||
;
|
||||
;setqueuevar=no
|
||||
;
|
||||
; if set, run this macro when connected to the queue member
|
||||
; you can override this macro by setting the macro option on
|
||||
; the queue application
|
||||
;
|
||||
; membermacro=somemacro
|
||||
|
||||
; How often to announce queue position and/or estimated
|
||||
; holdtime to caller (0=off)
|
||||
; Note that this value is ignored if the caller's queue
|
||||
; position has changed (see min-announce-frequency)
|
||||
;
|
||||
;announce-frequency = 90
|
||||
;
|
||||
; The absolute minimum time between the start of each
|
||||
; queue position and/or estimated holdtime announcement
|
||||
; This is useful for avoiding constant announcements
|
||||
; when the caller's queue position is changing frequently
|
||||
; (see announce-frequency)
|
||||
;
|
||||
;min-announce-frequency = 15
|
||||
;
|
||||
; How often to make any periodic announcement (see periodic-announce)
|
||||
;
|
||||
;periodic-announce-frequency=60
|
||||
;
|
||||
; Should the periodic announcements be played in a random order? Default is no.
|
||||
;
|
||||
;random-periodic-announce=no
|
||||
;
|
||||
; Should we include estimated hold time in position announcements?
|
||||
; Either yes, no, or only once.
|
||||
; Hold time will be announced as the estimated time.
|
||||
;
|
||||
;announce-holdtime = yes|no|once
|
||||
;
|
||||
; Queue position announce?
|
||||
; Valid values are "yes," "no," "limit," or "more." If set to "no," then the caller's position will
|
||||
; never be announced. If "yes," then the caller's position in the queue will be announced
|
||||
; to the caller. If set to "more," then if the number of callers is more than the number
|
||||
; specified by the announce-position-limit option, then the caller will hear that there
|
||||
; are more than that many callers waiting (i.e. if a caller number 6 is in a queue with the
|
||||
; announce-position-limit set to 5, then that caller will hear that there are more than 5
|
||||
; callers waiting). If set to "limit," then only callers within the limit specified by announce-position-limit
|
||||
; will have their position announced.
|
||||
;
|
||||
;announce-position = yes
|
||||
;
|
||||
; If you have specified "limit" or "more" for the announce-position option, then the following
|
||||
; value is what is used to determine what announcement to play to waiting callers. If you have
|
||||
; set the announce-position option to anything else, then this will have no bearing on queue operation
|
||||
;
|
||||
;announce-position-limit = 5
|
||||
;
|
||||
; What's the rounding time for the seconds?
|
||||
; If this is non-zero, then we announce the seconds as well as the minutes
|
||||
; rounded to this value.
|
||||
; Valid values are 0, 5, 10, 15, 20, and 30.
|
||||
;
|
||||
; announce-round-seconds = 10
|
||||
;
|
||||
; Use these sound files in making position/holdtime announcements. The
|
||||
; defaults are as listed below -- change only if you need to.
|
||||
;
|
||||
; Keep in mind that you may also prevent a sound from being played if you
|
||||
; explicitly set a sound to be an empty string. For example, if you want to
|
||||
; prevent the queue from playing queue-thankyou, you may set the sound using
|
||||
; the following line:
|
||||
;
|
||||
; queue-thankyou=
|
||||
;
|
||||
; ("You are now first in line.")
|
||||
;queue-youarenext = queue-youarenext
|
||||
; ("There are")
|
||||
;queue-thereare = queue-thereare
|
||||
; ("calls waiting.")
|
||||
;queue-callswaiting = queue-callswaiting
|
||||
; ("The current est. holdtime is")
|
||||
;queue-holdtime = queue-holdtime
|
||||
; ("minutes.")
|
||||
;queue-minutes = queue-minutes
|
||||
; ("seconds.")
|
||||
;queue-seconds = queue-seconds
|
||||
; ("Thank you for your patience.")
|
||||
;queue-thankyou = queue-thankyou
|
||||
; ("Hold time")
|
||||
;queue-reporthold = queue-reporthold
|
||||
; ("All reps busy / wait for next")
|
||||
;periodic-announce = queue-periodic-announce
|
||||
;
|
||||
; A set of periodic announcements can be defined by separating
|
||||
; periodic announcements to reproduce by commas. For example:
|
||||
;periodic-announce = queue-periodic-announce,your-call-is-important,please-wait
|
||||
;
|
||||
; The announcements will be played in the order in which they are defined. After
|
||||
; playing the last announcement, the announcements begin again from the beginning.
|
||||
;
|
||||
; Calls may be recorded using Asterisk's monitor/MixMonitor resource
|
||||
; This can be enabled from within the Queue application, starting recording
|
||||
; when the call is actually picked up; thus, only successful calls are
|
||||
; recorded, and you are not recording while people are listening to MOH.
|
||||
; To enable monitoring, simply specify "monitor-format"; it will be disabled
|
||||
; otherwise.
|
||||
;
|
||||
; You can specify the monitor filename with by calling
|
||||
; Set(MONITOR_FILENAME=foo)
|
||||
; Otherwise it will use MONITOR_FILENAME=${UNIQUEID}
|
||||
;
|
||||
; Pick any one valid extension for monitor format recording. If you leave
|
||||
; monitor-format commented out, it will not record calls.
|
||||
;
|
||||
; monitor-format = gsm|wav|wav49
|
||||
;
|
||||
; Monitor Type
|
||||
; By setting monitor-type = MixMonitor, when specifying monitor-format
|
||||
; to enable recording of queue member conversations, app_queue will
|
||||
; now use the new MixMonitor application instead of Monitor so
|
||||
; the concept of "joining/mixing" the in/out files now goes away
|
||||
; when this is enabled. If you do not specify or comment out this option,
|
||||
; it will default to the old 'Monitor' behavior to keep backward
|
||||
; compatibility.
|
||||
;
|
||||
; monitor-type = MixMonitor
|
||||
;
|
||||
; ----------------------- TYPE MIXMONITOR OPTIONS -----------------------------
|
||||
;
|
||||
;
|
||||
; You can specify the options supplied to MixMonitor by calling (from the dialplan)
|
||||
; Set(MONITOR_OPTIONS=av(<x>)V(<x>)W(<x>))
|
||||
; The 'b' option for MixMonitor (only save audio to the file while bridged) is
|
||||
; implied.
|
||||
;
|
||||
; You can specify a post recording command to be executed after the end of
|
||||
; recording by calling (from the dialplan)
|
||||
; Set(MONITOR_EXEC=mv /var/spool/asterisk/monitor/^{MONITOR_FILENAME} /tmp/^{MONITOR_FILENAME})
|
||||
;
|
||||
; The command specified within the contents of MONITOR_EXEC will be executed when
|
||||
; the recording is over. Any strings matching ^{X} will be unescaped to ${X} and
|
||||
; all variables will be evaluated just prior to recording being started.
|
||||
;
|
||||
; The contents of MONITOR_FILENAME will also be unescaped from ^{X} to ${X} and
|
||||
; all variables will be evaluated just prior to recording being started.
|
||||
;
|
||||
; ---------------------- Queue Empty Options ----------------------------------
|
||||
;
|
||||
; Asterisk has provided the "joinempty" and "leavewhenempty" options for a while
|
||||
; with tenuous definitions of what they actually mean. The "joinempty" option controls
|
||||
; whether a caller may join a queue depending on several factors of member availability.
|
||||
; Similarly, then leavewhenempty option controls whether a caller may remain in a queue
|
||||
; he has already joined. Both options take a comma-separated list of factors which
|
||||
; contribute towards whether a caller may join/remain in the queue. The list of
|
||||
; factors which contribute to these option is as follows:
|
||||
;
|
||||
; paused: a member is not considered available if he is paused
|
||||
; penalty: a member is not considered available if his penalty is less than QUEUE_MAX_PENALTY
|
||||
; inuse: a member is not considered available if he is currently on a call
|
||||
; ringing: a member is not considered available if his phone is currently ringing
|
||||
; unavailable: This applies mainly to Agent channels. If the agent is a member of the queue
|
||||
; but has not logged in, then do not consider the member to be available
|
||||
; invalid: Do not consider a member to be available if he has an "invalid" device state.
|
||||
; This generally is caused by an error condition in the member's channel driver.
|
||||
; unknown: Do not consider a member to be available if we are unable to determine the member's
|
||||
; current device state.
|
||||
; wrapup: A member is not considered available if he is currently in his wrapuptime after
|
||||
; taking a call.
|
||||
;
|
||||
; For the "joinempty" option, when a caller attempts to enter a queue, the members of that
|
||||
; queue are examined. If all members are deemed to be unavailable due to any of the conditions
|
||||
; listed for the "joinempty" option, then the caller will be unable to enter the queue. For the
|
||||
; "leavewhenempty" option, the state of the members of the queue are checked periodically during
|
||||
; the caller's stay in the queue. If all of the members are unavailable due to any of the above
|
||||
; conditions, then the caller will be removed from the queue.
|
||||
;
|
||||
; Some examples:
|
||||
;
|
||||
;joinempty = paused,inuse,invalid
|
||||
;
|
||||
; A caller will not be able to enter a queue if at least one member cannot be found
|
||||
; who is not paused, on the phone, or who has an invalid device state.
|
||||
;
|
||||
;leavewhenempty = inuse,ringing
|
||||
;
|
||||
; A caller will be removed from the queue if at least one member cannot be found
|
||||
; who is not on the phone, or whose phone is not ringing.
|
||||
;
|
||||
; For the sake of backwards-compatibility, the joinempty and leavewhenempty
|
||||
; options also accept the strings "yes" "no" "strict" and "loose". The following
|
||||
; serves as a translation for these values:
|
||||
;
|
||||
; yes - (empty) for joinempty; penalty,paused,invalid for leavewhenempty
|
||||
; no - penalty,paused,invalid for joinempty; (empty) for leavewhenempty
|
||||
; strict - penalty,paused,invalid,unavailable
|
||||
; loose - penalty,invalid
|
||||
;
|
||||
|
||||
; If this is set to yes, the following manager events will be generated:
|
||||
; AgentCalled, AgentDump, AgentConnect, AgentComplete; setting this to
|
||||
; vars also sends all channel variables with the event.
|
||||
; (may generate some extra manager events, but probably ones you want)
|
||||
;
|
||||
; eventwhencalled = yes|no|vars
|
||||
;
|
||||
; If this is set to yes, the following manager events will be generated:
|
||||
; QueueMemberStatus
|
||||
; (may generate a WHOLE LOT of extra manager events)
|
||||
;
|
||||
; eventmemberstatus = no
|
||||
;
|
||||
; If you wish to report the caller's hold time to the member before they are
|
||||
; connected to the caller, set this to yes.
|
||||
;
|
||||
; reportholdtime = no
|
||||
;
|
||||
; If you want the queue to avoid sending calls to members whose devices are
|
||||
; known to be 'in use' (via the channel driver supporting that device state)
|
||||
; uncomment this option. (Note: only the SIP channel driver currently is able
|
||||
; to report 'in use'.)
|
||||
;
|
||||
; ringinuse = no
|
||||
;
|
||||
; If you wish to have a delay before the member is connected to the caller (or
|
||||
; before the member hears any announcement messages), set this to the number of
|
||||
; seconds to delay.
|
||||
;
|
||||
; memberdelay = 0
|
||||
;
|
||||
; If timeoutrestart is set to yes, then the timeout for an agent to answer is
|
||||
; reset if a BUSY or CONGESTION is received. This can be useful if agents
|
||||
; are able to cancel a call with reject or similar.
|
||||
;
|
||||
; timeoutrestart = no
|
||||
;
|
||||
; If you wish to implement a rule defined in queuerules.conf (see
|
||||
; configs/queuerules.conf.sample from the asterisk source directory for
|
||||
; more information about penalty rules) by default, you may specify this
|
||||
; by setting defaultrule to the rule's name
|
||||
;
|
||||
; defaultrule = myrule
|
||||
;
|
||||
; Each member of this call queue is listed on a separate line in
|
||||
; the form technology/dialstring. "member" means a normal member of a
|
||||
; queue. An optional penalty may be specified after a comma, such that
|
||||
; entries with higher penalties are considered last. An optional member
|
||||
; name may also be specified after a second comma, which is used in log
|
||||
; messages as a "friendly name". Multiple interfaces may share a single
|
||||
; member name. An optional state interface may be specified after a third
|
||||
; comma. This interface will be the one for which app_queue receives device
|
||||
; state notifications, even though the first interface specified is the one
|
||||
; that is actually called.
|
||||
;
|
||||
; It is important to ensure that channel drivers used for members are loaded
|
||||
; before app_queue.so itself or they may be marked invalid until reload. This
|
||||
; can be accomplished by explicitly listing them in modules.conf before
|
||||
; app_queue.so. Additionally, if you use Local channels as queue members, you
|
||||
; must also preload pbx_config.so and chan_local.so (or pbx_ael.so, pbx_lua.so,
|
||||
; or pbx_realtime.so, depending on how your dialplan is configured).
|
||||
;
|
||||
;member => DAHDI/1
|
||||
;member => DAHDI/2,10
|
||||
;member => DAHDI/3,10,Bob Johnson
|
||||
;member => Agent/1001
|
||||
;member => Agent/1002
|
||||
;member => Local/1000@default,0,John Smith,SIP/1000
|
||||
|
||||
;
|
||||
; Note that using agent groups is probably not what you want. Strategies do
|
||||
; not propagate down to the Agent system so if you want round robin, least
|
||||
; recent, etc, you should list all the agents in this file individually and not
|
||||
; use agent groups.
|
||||
;
|
||||
;member => Agent/@1 ; Any agent in group 1
|
||||
;member => Agent/:1,1 ; Any agent in group 1, wait for first
|
||||
; available, but consider with penalty
|
||||
|
11
asterisk/res_config_sqlite.conf
Normal file
11
asterisk/res_config_sqlite.conf
Normal file
@ -0,0 +1,11 @@
|
||||
[general]
|
||||
|
||||
; The database file.
|
||||
dbfile => /var/lib/asterisk/sqlite.db
|
||||
|
||||
; Both config_table and cdr_table are optional. If config_table is omitted,
|
||||
; you must specify it in extconfig.conf. If it is both provided here and in
|
||||
; extconfig.conf, the value given here is used. If cdr_table is omitted, CDR
|
||||
; support is simply disabled.
|
||||
config_table => ast_config
|
||||
cdr_table => ast_cdr
|
184
asterisk/res_ldap.conf
Normal file
184
asterisk/res_ldap.conf
Normal file
@ -0,0 +1,184 @@
|
||||
;
|
||||
; Configuration file for res_config_ldap
|
||||
;
|
||||
|
||||
; Sample Asterisk config file for res_config_ldap
|
||||
; in extconfig.conf; you can use it like this:
|
||||
; sipusers = ldap,"dc=myDomain,dc=myDomainExt",sip
|
||||
; sippeers = ldap,"dc=myDomain,dc=myDomainExt",sip
|
||||
; extensions = ldap,"dc=myDomain,dc=myDomainExt",extensions
|
||||
; sip.conf = ldap,"dc=myDomain,dc=myDomainExt",config
|
||||
|
||||
; *********************************************************************************
|
||||
; NOTE: res_ldap.conf should be chmod 600 because it contains the plain-text LDAP
|
||||
; password to an account with WRITE access to the asterisk configuration.
|
||||
; *********************************************************************************
|
||||
|
||||
[_general]
|
||||
;
|
||||
; Specify one of either host and port OR url. URL is preferred, as you can
|
||||
; use more options.
|
||||
;host=192.168.1.1 ; LDAP host
|
||||
;port=389
|
||||
;url=ldap://ldap3.mydomain.com:3890
|
||||
;protocol=3 ; Version of the LDAP protocol to use; default is 3.
|
||||
;basedn=dc=example,dc=tld ; Base DN
|
||||
;user=cn=asterisk,dc=example,dc=tld ; Bind DN
|
||||
;pass=MyPassword ; Bind password
|
||||
|
||||
; Configuration Table
|
||||
[config]
|
||||
;
|
||||
; additionalFilter - This specifies an additional set of criteria to be used
|
||||
; when querying the LDAP server.
|
||||
;
|
||||
additionalFilter=(objectClass=AstConfig)
|
||||
;
|
||||
; Attributes mapping (asterisk variable name = ldap attribute name)
|
||||
; When Asterisk requests the variable by the name of the value on the left,
|
||||
; this module will look up the attribute listed on the right.
|
||||
;
|
||||
filename = AstConfigFilename
|
||||
category = AstConfigCategory
|
||||
variable_name = AstConfigVariableName
|
||||
variable_value = AstConfigVariableValue
|
||||
cat_metric = AstConfigCategoryMetric
|
||||
commented = AstConfigCommented
|
||||
|
||||
;
|
||||
; Extensions Table
|
||||
;
|
||||
[extensions]
|
||||
context = AstExtensionContext
|
||||
exten = AstExtensionExten
|
||||
priority = AstExtensionPriority
|
||||
app = AstExtensionApplication
|
||||
appdata = AstExtensionApplicationData
|
||||
additionalFilter=(objectClass=AstExtension)
|
||||
|
||||
;
|
||||
; Sip Users Table
|
||||
;
|
||||
[sip]
|
||||
name = cn ; We use the "cn" as the default value for name on the line above
|
||||
; because objectClass=AsteriskSIPUser does not include a uid as an allowed field
|
||||
; If your entry combines other objectClasses and uid is available, you may
|
||||
; prefer to change the line to be name = uid, especially if your LDAP entries
|
||||
; contain spaces in the cn field.
|
||||
; You may also find it appropriate to use something completely different.
|
||||
; This is possible by changing the line above to name = AstAccountName (or whatever you
|
||||
; prefer).
|
||||
;
|
||||
amaflags = AstAccountAMAFlags
|
||||
callgroup = AstAccountCallGroup
|
||||
callerid = AstAccountCallerID
|
||||
directmedia = AstAccountDirectMedia
|
||||
context = AstAccountContext
|
||||
dtmfmode = AstAccountDTMFMode
|
||||
fromuser = AstAccountFromUser
|
||||
fromdomain = AstAccountFromDomain
|
||||
fullcontact = AstAccountFullContact
|
||||
fullcontact = gecos
|
||||
host = AstAccountHost
|
||||
insecure = AstAccountInsecure
|
||||
mailbox = AstAccountMailbox
|
||||
md5secret = AstAccountRealmedPassword ; Must be an MD5 hash. Field value can start with
|
||||
; {md5} but it is not required.
|
||||
; Generate the password via the md5sum command, e.g.
|
||||
; echo "my_password" | md5sum
|
||||
nat = AstAccountNAT
|
||||
deny = AstAccountDeny
|
||||
permit = AstAccountPermit
|
||||
pickupgroup = AstAccountPickupGroup
|
||||
port = AstAccountPort
|
||||
qualify = AstAccountQualify
|
||||
restrictcid = AstAccountRestrictCID
|
||||
rtptimeout = AstAccountRTPTimeout
|
||||
rtpholdtimeout = AstAccountRTPHoldTimeout
|
||||
type = AstAccountType
|
||||
disallow = AstAccountDisallowedCodec
|
||||
allow = AstAccountAllowedCodec
|
||||
MusicOnHold = AstAccountMusicOnHold
|
||||
regseconds = AstAccountExpirationTimestamp
|
||||
regcontext = AstAccountRegistrationContext
|
||||
regexten = AstAccountRegistrationExten
|
||||
CanCallForward = AstAccountCanCallForward
|
||||
ipaddr = AstAccountIPAddress
|
||||
defaultuser = AstAccountDefaultUser
|
||||
regserver = AstAccountRegistrationServer
|
||||
lastms = AstAccountLastQualifyMilliseconds
|
||||
additionalFilter=(objectClass=AsteriskSIPUser)
|
||||
|
||||
;
|
||||
; IAX Users Table
|
||||
;
|
||||
[iax]
|
||||
amaflags = AstAccountAMAFlags
|
||||
callerid = AstAccountCallerID
|
||||
context = AstAccountContext
|
||||
fullcontact = AstAccountFullContact
|
||||
fullcontact = gecos
|
||||
host = AstAccountHost
|
||||
mailbox = AstAccountMailbox
|
||||
md5secret = AstAccountRealmedPassword ; Must be an MD5 hash. Field value can start with
|
||||
; {md5} but it is not required.
|
||||
; Generate the password via the md5sum command, e.g.
|
||||
; echo "my_password" | md5sum
|
||||
deny = AstAccountDeny
|
||||
permit = AstAccountPermit
|
||||
port = AstAccountPort
|
||||
qualify = AstAccountQualify
|
||||
type = AstAccountType
|
||||
disallow = AstAccountDisallowedCodec
|
||||
allow = AstAccountAllowedCodec
|
||||
regseconds = AstAccountExpirationTimestamp
|
||||
regcontext = AstAccountRegistrationContext
|
||||
regexten = AstAccountRegistrationExten
|
||||
notransfer = AstAccountNoTransfer
|
||||
lastms = AstAccountLastQualifyMilliseconds
|
||||
additionalFilter=(objectClass=AstAccountIAX)
|
||||
|
||||
;
|
||||
; A Test Family
|
||||
;
|
||||
[testfamily]
|
||||
MyUSERID = uid
|
||||
additionalFilter=(objectClass=*)
|
||||
|
||||
[accounts]
|
||||
amaflags = AstAccountAMAFlags
|
||||
callgroup = AstAccountCallGroup
|
||||
callerid = AstAccountCallerID
|
||||
directmedia = AstAccountDirectMedia
|
||||
context = AstAccountContext
|
||||
dtmfmode = AstAccountDTMFMode
|
||||
fromuser = AstAccountFromUser
|
||||
fromdomain = AstAccountFromDomain
|
||||
fullcontact = AstAccountFullContact
|
||||
fullcontact = gecos
|
||||
host = AstAccountHost
|
||||
insecure = AstAccountInsecure
|
||||
mailbox = AstAccountMailbox
|
||||
md5secret = AstAccountRealmedPassword ; Must be an MD5 hash. Field value can start with
|
||||
; {md5} but it is not required.
|
||||
; Generate the password via the md5sum command, e.g.
|
||||
; echo "my_password" | md5sum
|
||||
nat = AstAccountNAT
|
||||
deny = AstAccountDeny
|
||||
permit = AstAccountPermit
|
||||
pickupgroup = AstAccountPickupGroup
|
||||
port = AstAccountPort
|
||||
qualify = AstAccountQualify
|
||||
restrictcid = AstAccountRestrictCID
|
||||
rtptimeout = AstAccountRTPTimeout
|
||||
rtpholdtimeout = AstAccountRTPHoldTimeout
|
||||
type = AstAccountType
|
||||
disallow = AstAccountDisallowedCodec
|
||||
allow = AstAccountAllowedCodec
|
||||
MusicOnHold = AstAccountMusicOnHold
|
||||
regseconds = AstAccountExpirationTimestamp
|
||||
regcontext = AstAccountRegistrationContext
|
||||
regexten = AstAccountRegistrationExten
|
||||
CanCallForward = AstAccountCanCallForward
|
||||
additionalFilter=(objectClass=AstAccount)
|
||||
|
43
asterisk/res_mysql.conf
Normal file
43
asterisk/res_mysql.conf
Normal file
@ -0,0 +1,43 @@
|
||||
;
|
||||
; Sample configuration for res_config_mysql.c
|
||||
;
|
||||
; The value of dbhost may be either a hostname or an IP address.
|
||||
; If dbhost is commented out or the string "localhost", a connection
|
||||
; to the local host is assumed and dbsock is used instead of TCP/IP
|
||||
; to connect to the server. If no dbcharset is specified, the connection
|
||||
; is made with no extra charset configurations sent to MySQL, leaving all
|
||||
; configured MySQL charset options and defaults untouched.
|
||||
;
|
||||
; Multiple database contexts may be configured, with the caveat that
|
||||
; all context names should be unique and must not contain the slash ('/')
|
||||
; character. If you wish to separate reads from writes in your database
|
||||
; configuration, you specify the database (NOT HERE, in other files)
|
||||
; separated by a slash, read database first. If your database
|
||||
; specification does not contain a slash, the implication is that reads
|
||||
; and writes should be performed to the same database.
|
||||
;
|
||||
; For example, in extconfig.conf, you could specify a line like:
|
||||
; sippeers => mysql,readhost.asterisk/writehost.asterisk,sipfriends
|
||||
; and then define the contexts [readhost.asterisk] and [writehost.asterisk]
|
||||
; below.
|
||||
;
|
||||
; The requirements parameter is available only in Asterisk 1.6.1 and
|
||||
; later and must be present in all contexts. It specifies the behavior
|
||||
; when a column name is required by the system. The default behavior is
|
||||
; "warn" and simply sends a warning to the logger that the column does
|
||||
; not exist (or is of the wrong type or precision). The other two
|
||||
; possibilities are "createclose", which adds the column with the right
|
||||
; type and length, and "createchar", which adds the column as a char
|
||||
; type, with the appropriate length to accept the data. Note that with
|
||||
; the MySQL driver, both "createclose" and "createchar" will, on occasion,
|
||||
; widen a table column width to meet the requirements specified.
|
||||
;
|
||||
[general]
|
||||
;dbhost = 127.0.0.1
|
||||
;dbname = asterisk
|
||||
;dbuser = myuser
|
||||
;dbpass = mypass
|
||||
;dbport = 3306
|
||||
;dbsock = /tmp/mysql.sock
|
||||
;dbcharset = latin1
|
||||
;requirements=warn ; or createclose or createchar
|
68
asterisk/res_odbc.conf
Normal file
68
asterisk/res_odbc.conf
Normal file
@ -0,0 +1,68 @@
|
||||
;;; odbc setup file
|
||||
|
||||
; ENV is a global set of environmental variables that will get set.
|
||||
; Note that all environmental variables can be seen by all connections,
|
||||
; so you can't have different values for different connections.
|
||||
[ENV]
|
||||
;INFORMIXSERVER => my_special_database
|
||||
;INFORMIXDIR => /opt/informix
|
||||
;ORACLE_HOME => /home/oracle
|
||||
|
||||
; All other sections are arbitrary names for database connections.
|
||||
|
||||
[asterisk]
|
||||
enabled => no
|
||||
dsn => asterisk
|
||||
;username => myuser
|
||||
;password => mypass
|
||||
pre-connect => yes
|
||||
;
|
||||
; What should we execute to ensure that our connection is still alive? The
|
||||
; statement should return a non-zero value in the first field of its first
|
||||
; record. The default is "select 1".
|
||||
;sanitysql => select 1
|
||||
|
||||
|
||||
[mysql2]
|
||||
enabled => no
|
||||
dsn => MySQL-asterisk
|
||||
username => myuser
|
||||
password => mypass
|
||||
pre-connect => yes
|
||||
;
|
||||
; On some databases, the connection times out and a reconnection will be
|
||||
; necessary. This setting configures the amount of time a connection
|
||||
; may sit idle (in seconds) before a reconnection will be attempted.
|
||||
;idlecheck => 3600
|
||||
|
||||
; Certain servers, such as MS SQL Server and Sybase use the TDS protocol, which
|
||||
; limits the number of active queries per connection to 1. By telling res_odbc
|
||||
; not to share connections, Asterisk can be made to work with these servers.
|
||||
[sqlserver]
|
||||
enabled => no
|
||||
dsn => mickeysoft
|
||||
share_connections => no
|
||||
limit => 5
|
||||
username => oscar
|
||||
password => thegrouch
|
||||
pre-connect => yes
|
||||
sanitysql => select count(*) from systables
|
||||
; forcecommit => no ; Default to committing uncommitted transactions?
|
||||
; Note: this is NOT the autocommit flag; this
|
||||
; determines the end result of transactions which
|
||||
; are not explicitly committed or rolled back. By
|
||||
; default, such transactions are rolled back if the
|
||||
; call ends without an explicit commit.
|
||||
; isolation => read_committed ; Isolation level; supported levels are:
|
||||
; read_uncommitted, read_committed, repeatable_read,
|
||||
; serializable. Note that not all databases support
|
||||
; all isolation levels (e.g. Postgres only supports
|
||||
; repeatable_read and serializable). See database
|
||||
; documentation for further information.
|
||||
;
|
||||
; Many databases have a default of '\' to escape special characters. MS SQL
|
||||
; Server does not.
|
||||
backslash_is_escape => no
|
||||
|
||||
|
||||
|
29
asterisk/res_pgsql.conf
Normal file
29
asterisk/res_pgsql.conf
Normal file
@ -0,0 +1,29 @@
|
||||
;
|
||||
; Sample configuration for res_config_pgsql
|
||||
;
|
||||
; The value of dbhost may be either a hostname or an IP address.
|
||||
; If dbhost is commented out or the string "localhost", a connection
|
||||
; to the local host is assumed and dbsock is used instead of TCP/IP
|
||||
; to connect to the server.
|
||||
;
|
||||
[general]
|
||||
dbhost=127.0.0.1
|
||||
dbport=5432
|
||||
dbname=asterisk
|
||||
dbuser=asterisk
|
||||
dbpass=password
|
||||
;
|
||||
; dbsock is specified as the directory where the socket file may be found. The
|
||||
; actual socket is constructed as a combination of dbsock and dbport. For
|
||||
; example, the values of '/tmp' and '5432', respectively, will specify a socket
|
||||
; file of '/tmp/.s.PGSQL.5432'.
|
||||
;
|
||||
;dbsock=/tmp
|
||||
;
|
||||
; requirements - At startup, each realtime family will make requirements
|
||||
; on the backend. There are several strategies for handling requirements:
|
||||
; warn - Warn if the required column does not exist.
|
||||
; createclose - Create columns as close to the requirements as possible.
|
||||
; createchar - Create char columns only
|
||||
;
|
||||
requirements=warn
|
21
asterisk/res_snmp.conf
Normal file
21
asterisk/res_snmp.conf
Normal file
@ -0,0 +1,21 @@
|
||||
;
|
||||
; Configuration file for res_snmp
|
||||
;---------------------------------
|
||||
;
|
||||
; Res_snmp can run as a subagent or standalone SNMP agent. The standalone snmp
|
||||
; agent is based on net-snmp and will read a configuration file called
|
||||
; asterisk.conf in the net-snmp configuration file path, starting with
|
||||
; /etc/snmp on many systems.
|
||||
;
|
||||
; If you use the subagent model, you need to enable agentx in snmpd.conf
|
||||
; Note that you can only run one Asterisk on the system in this case.
|
||||
;
|
||||
; Please read documentat in doc/snmp.txt to get more information about
|
||||
; snmp support in Asterisk
|
||||
|
||||
[general]
|
||||
; We run as a subagent per default -- to run as a full agent
|
||||
; we must run as root (to be able to bind to port 161)
|
||||
;subagent = yes
|
||||
; SNMP must be explicitly enabled to be active
|
||||
;enabled = yes
|
193
asterisk/rpt.conf
Normal file
193
asterisk/rpt.conf
Normal file
@ -0,0 +1,193 @@
|
||||
; Radio Repeater / Remote Base configuration file (for use with app_rpt)
|
||||
; As of app_rpt version 0.39, 12/20/2005
|
||||
;
|
||||
|
||||
;[000] ; Node ID of first repeater
|
||||
|
||||
;rxchannel = DAHDI/1 ; Rx audio/signalling channel
|
||||
; Note: if you use a unified interface (tx/rx on one channel), only
|
||||
; specify the rxchannel and the txchannel will be assumed from the rxchannel
|
||||
;txchannel = DAHDI/2 ; Tx audio/signalling channel
|
||||
;duplex = 2 ; (Optional) set duplex operating mode
|
||||
;; 0 = half duplex (telemetry and courtesy tones do not transmit)
|
||||
;; 1 = semi-half duplex (telemetry and courtesy tones transmit, but not
|
||||
;; repeated audio
|
||||
;; 2 = normal full-duplex mode (Default)
|
||||
;; 3 = full-duplex mode, without repeated audio from main input source
|
||||
;functions = functions-repeater ; DTMF function list
|
||||
;; specify this for a different function list then local when on link
|
||||
;;link_functions = functions-different ; DTMF function list for link
|
||||
;;phone_functions = functions-phone ; (optional) different functions for 'P' mode
|
||||
;;dphone_functions = functions-dphone ; (optional) different functions for 'D' mode
|
||||
;;nodes = nodes-different ; (optional) different node list
|
||||
;tonezone = us ; use US tones (default)
|
||||
;context = default ; dialing context for phone
|
||||
;callerid = "WB6NIL Repeater" <(213) 555-0123> ; Callerid for phone calls
|
||||
;idrecording = wb6nil ; id recording
|
||||
;accountcode=RADIO ; account code (optional)
|
||||
;funcchar = * ; function lead-in character (defaults to '*')
|
||||
;endchar = # ; command mode end character (defaults to '#')
|
||||
;;nobusyout=yes ; (optional) Do not busy-out reverse-patch when
|
||||
; normal patch in use
|
||||
;hangtime=1000 ; squelch tail hang time (in ms) (optional)
|
||||
;totime=100000 ; transmit time-out time (in ms) (optional)
|
||||
;idtime=30000 ; id interval time (in ms) (optional)
|
||||
;politeid=30000 ; time in milliseconds before ID timer
|
||||
; expires to try and ID in the tail.
|
||||
; (optional, default is 30000).
|
||||
;idtalkover=|iwb6nil/rpt ; Talkover ID (optional) default is none
|
||||
;unlinkedct=ct2 ; unlinked courtesy tone (optional) default is none
|
||||
|
||||
;; The tailmessagetime,tailsquashedtime, and tailmessages need to be set
|
||||
;; to support tail messages. They can be omitted otherwise.
|
||||
;tailmessagetime=300000 ; Play a tail message every 5 mins
|
||||
;tailsquashedtime=30000 ; If squashed by another user,
|
||||
;; try again after 30 seconds
|
||||
;tailmessages=msg1,msg2,msg3 ;list of messages to be played for tail message
|
||||
|
||||
; The default values for hangtime, time-out time, and id interval time are
|
||||
; 5 seconds (5000 ms), 3 minutes (180000 ms), and 5 minutes (300000 ms)
|
||||
; respectively
|
||||
|
||||
;[001] ; Node ID of first repeater
|
||||
|
||||
;rxchannel = DAHDI/3 ; Rx audio/signalling channel
|
||||
; Note: if you use a unified interface (tx/rx on one channel), only
|
||||
; specify the rxchannel and the txchannel will be assumed from the rxchannel
|
||||
;txchannel = DAHDI/4 ; Tx audio/signalling channel
|
||||
;functions = functions-repeater ; DTMF function list
|
||||
;; specify this for a different function list then local when on link
|
||||
;;link_functions = functions-different ; DTMF function list for link
|
||||
;;phone_functions = functions-phone ; (optional) different functions for 'P' mode
|
||||
;;dphone_functions = functions-dphone ; (optional) different functions for 'D' mode
|
||||
;;nodes = nodes-different ; (optional) different node list
|
||||
;tonezone = us ; use US tones (default)
|
||||
;context = default ; dialing context for phone
|
||||
;callerid = "WB6NIL Repeater" <(213) 555-0123> ; Callerid for phone calls
|
||||
;idrecording = wb6nil ; id recording
|
||||
;accountcode=RADIO ; account code (optional)
|
||||
;funcchar = * ; function lead-in character (defaults to '*')
|
||||
;endchar = # ; command mode end character (defaults to '#')
|
||||
;;nobusyout=yes ; (optional) Do not busy-out reverse-patch when
|
||||
; normal patch in use
|
||||
;hangtime=1000 ; squelch tail hang time (in ms) (optional)
|
||||
;totime=100000 ; transmit time-out time (in ms) (optional)
|
||||
;idtime=30000 ; id interval time (in ms) (optional)
|
||||
;politeid=30000 ; time in milliseconds before ID timer
|
||||
; expires to try and ID in the tail.
|
||||
; (optional, default is 30000).
|
||||
;idtalkover=|iwb6nil/rpt ; Talkover ID (optional) default is none
|
||||
;unlinkedct=ct2 ; unlinked courtesy tone (optional) default is none
|
||||
|
||||
;[002] ; Node ID of remote base
|
||||
|
||||
;rxchannel = DAHDI/5 ; Rx audio/signalling channel
|
||||
; Note: if you use a unified interface (tx/rx on one channel), only
|
||||
; specify the rxchannel and the txchannel will be assumed from the rxchannel
|
||||
;txchannel = DAHDI/6 ; Tx audio/signalling channel
|
||||
;functions = functions-remote
|
||||
;remote = ft897 ; Set remote=y for dumb remote or
|
||||
; remote=ft897 for Yaesu FT-897 or
|
||||
; remote=rbi for Doug Hall RBI1
|
||||
;iobase = 0x378 ; Specify IO port for parallel port (optional)
|
||||
|
||||
;[functions-repeater]
|
||||
;1=ilink,1 ; Specific link disconnect
|
||||
;2=ilink,2 ; Specific Link connect - monitor only
|
||||
;3=ilink,3 ; Specific Link connect - transceive
|
||||
;4=ilink,4 ; Enter command mode on a specific link
|
||||
;7=ilink,5 ; Link status
|
||||
;;XX=ilink,6 ; Disconnect all links (not used here)
|
||||
|
||||
;80=status,1 ; System info
|
||||
;81=status,2 ; Time
|
||||
;82=status,3 ; app_rpt.c Version
|
||||
|
||||
;6=autopatchup ; Autopatch up
|
||||
;0=autopatchdn ; Autopatch down
|
||||
|
||||
;90=cop,1 ; System warm boot
|
||||
;91=cop,2 ; System enable
|
||||
;92=cop,3 ; System disable
|
||||
|
||||
;[functions-remote]
|
||||
|
||||
;0=remote,1 ; Retrieve Memory
|
||||
;1=remote,2 ; Set freq.
|
||||
;2=remote,3 ; Set Rx PL tone.
|
||||
;40=remote,100 ; Rx PL off
|
||||
;41=remote,101 ; Rx PL on
|
||||
;42=remote,102 ; Tx PL off
|
||||
;43=remote,103 ; Tx PL on
|
||||
;44=remote,104 ; Low Pwr
|
||||
;45=remote,105 ; Med Pwr
|
||||
;46=remote,106 ; Hi Pwr
|
||||
;5=remote,5 ; Status
|
||||
|
||||
;[telemetry]
|
||||
|
||||
; Telemetry entries are shared across all repeaters
|
||||
; Can be a tone sequence, morse string, or a file
|
||||
;
|
||||
; |t - Tone escape sequence
|
||||
;
|
||||
; Tone sequences consist of 1 or more 4-tuple entries (freq1, freq2, duration, amplitude)
|
||||
; Single frequencies are created by setting freq1 or freq2 to zero.
|
||||
;
|
||||
; |m - Morse escape sequence
|
||||
;
|
||||
; Sends Morse code at the telemetry amplitude and telemetry frequency as defined in the
|
||||
; [morse] section.
|
||||
;
|
||||
; Follow with an alphanumeric string
|
||||
;
|
||||
; |i - Morse ID escape sequence
|
||||
;
|
||||
; Sends Morse code at the ID amplitude and ID frequency as defined in the
|
||||
; [morse] section.
|
||||
;
|
||||
; Follow with an alphanumeric string
|
||||
|
||||
|
||||
;ct1=|t(350,0,100,2048)(500,0,100,2048)(660,0,100,2048)
|
||||
;ct2=|t(660,880,150,2048)
|
||||
;ct3=|t(440,0,150,2048)
|
||||
;ct4=|t(550,0,150,2048)
|
||||
;ct5=|t(660,0,150,2048)
|
||||
;ct6=|t(880,0,150,2048)
|
||||
;ct7=|t(660,440,150,2048)
|
||||
;ct8=|t(700,1100,150,2048)
|
||||
;remotetx=|t(2000,0,75,2048)(0,0,75,0)(1600,0,75,2048);
|
||||
;remotemon=|t(1600,0,75,2048)
|
||||
;cmdmode=|t(900,903,200,2048)
|
||||
;functcomplete=|t(1000,0,100,2048)(0,0,100,0)(1000,0,100,2048)
|
||||
|
||||
|
||||
;[morse]
|
||||
|
||||
;speed=20 ; Approximate speed in WPM
|
||||
;frequency=800 ; Morse Telemetry Frequency
|
||||
;amplitude=4096 ; Morse Telemetry Amplitude
|
||||
;idfrequency=330 ; Morse ID Frequency
|
||||
;idamplitude=2048 ; Morse ID Amplitude
|
||||
|
||||
;[nodes]
|
||||
|
||||
;000 = context_A@foo.bar.com/1234,foo.bar.com
|
||||
;001 = context_B@baz.waldo.com/4321,baz.waldo.com
|
||||
;002 = context_C@pepper.salt.com/5678,pepper.salt.com,y ; this is a remote
|
||||
|
||||
;of course, you can also specify these with domain names, but why rely
|
||||
;on DNS working unnecessarily?
|
||||
|
||||
;[memory]
|
||||
|
||||
;; this example gives you 146.460, simplex, 100.0 HZ PL, hi-power, transmit PL
|
||||
;00 = 146.460,100.0,sht
|
||||
;; this example gives you 146.940, minus offset, 100.0 HZ PL, low-power, no PL
|
||||
;01 = 146.940,100.0,-l
|
||||
|
||||
; The format for these entries is: Receive-Freq,Receive-PL,Attrbutes
|
||||
; Attributes: l=low power, m=medium power, h=high power, -=minus offset,
|
||||
; s=simplex, +=plus offset, t=tx PL enable, r=rx PL enable
|
||||
|
27
asterisk/rtp.conf
Normal file
27
asterisk/rtp.conf
Normal file
@ -0,0 +1,27 @@
|
||||
;
|
||||
; RTP Configuration
|
||||
;
|
||||
[general]
|
||||
;
|
||||
; RTP start and RTP end configure start and end addresses
|
||||
;
|
||||
; Defaults are rtpstart=5000 and rtpend=31000
|
||||
;
|
||||
rtpstart=10000
|
||||
rtpend=20000
|
||||
;
|
||||
; Whether to enable or disable UDP checksums on RTP traffic
|
||||
;
|
||||
;rtpchecksums=no
|
||||
;
|
||||
; The amount of time a DTMF digit with no 'end' marker should be
|
||||
; allowed to continue (in 'samples', 1/8000 of a second)
|
||||
;
|
||||
;dtmftimeout=3000
|
||||
; rtcpinterval = 5000 ; Milliseconds between rtcp reports
|
||||
;(min 500, max 60000, default 5000)
|
||||
;
|
||||
; Enable strict RTP protection. This will drop RTP packets that
|
||||
; do not come from the source of the RTP stream. This option is
|
||||
; disabled by default.
|
||||
; strictrtp=yes
|
347
asterisk/say.conf
Normal file
347
asterisk/say.conf
Normal file
@ -0,0 +1,347 @@
|
||||
;
|
||||
; language configuration
|
||||
;
|
||||
|
||||
[general]
|
||||
mode=old ; method for playing numbers and dates
|
||||
; old - using asterisk core function
|
||||
; new - using this configuration file
|
||||
|
||||
; The new language routines produce strings of the form
|
||||
; prefix:[format:]data
|
||||
; that are matched against the rules in this file to produce
|
||||
; an output.
|
||||
;
|
||||
; The data is generally the string to be spelled (either a number,
|
||||
; an ascii string or a date/time in the format specified below).
|
||||
; It is available, in the right hand side of a rule, as variable ${SAY}.
|
||||
;
|
||||
; The format is optional and normally used only for date/time.
|
||||
; The prefix is used to select the pronunciation - standard
|
||||
; prefixes are
|
||||
; num used for numbers
|
||||
; enum used for enumerations
|
||||
; date for dates
|
||||
; time for times
|
||||
; datetime for dates and times
|
||||
; char for character strings
|
||||
; phonetic for phonetic strings
|
||||
; digit for digit strings
|
||||
;
|
||||
; but others can be used at will.
|
||||
;
|
||||
; Processing occurs as follows:
|
||||
; If the format is empty, or there is no format, the entire
|
||||
; string is matched against one of the pattern on the left hand side.
|
||||
; On the first match, the various comma-separated components on the right
|
||||
; hand side are pronounced, as follows:
|
||||
; + a component starting with a prefix: (i.e. with a ':' in it)
|
||||
; is re-processed according to these rules;
|
||||
; + a component without a ':' in it is considered a filename and
|
||||
; the corresponding file is played.
|
||||
;
|
||||
; If the format is non-empty, the format is split into its components
|
||||
; (individual characters, or filenames in single quotes), and then
|
||||
; filenames are played, whereas single characters are used to
|
||||
; generate a new string format:pat:data to be processed.
|
||||
;
|
||||
; DATES/AND TIMES assume that the date info is available in
|
||||
; the form YYYYMMDDHHmm.ss-dow-doy
|
||||
; with 4 digits for the year, 2 for month, day, hour, minutes, seconds,
|
||||
; one digit for the day-of-week, and 3 digits for the day-of-year.
|
||||
;
|
||||
; Example:
|
||||
; datetime::200604172030.00-4-102
|
||||
; (typical format for a date) is first matched against the line
|
||||
; datetime::. => date:AdBY 'digits/at' IMp:${SAY}
|
||||
; which is normally present with the default format for dates.
|
||||
; In turn, the format string "AdBY 'digits/at' IMp" results in
|
||||
; the sequence
|
||||
; date:A:200604172030.00-4-102
|
||||
; date:d:200604172030.00-4-102
|
||||
; date:B:200604172030.00-4-102
|
||||
; date:Y:200604172030.00-4-102
|
||||
; digits/at
|
||||
; date:I:200604172030.00-4-102
|
||||
; date:M:200604172030.00-4-102
|
||||
; date:p:200604172030.00-4-102
|
||||
;
|
||||
;
|
||||
; Remember, normally X Z N are special, and the search is
|
||||
; case insensitive, so you must use [X] [N] [Z] .. if you
|
||||
; want exact match.
|
||||
|
||||
; We start with the basic rules that might be more-or-less
|
||||
; language-independent
|
||||
|
||||
[digit-base](!) ; base rule for digit strings
|
||||
; XXX incomplete yet
|
||||
_digit:[0-9] => digits/${SAY}
|
||||
_digit:[-] => letters/dash
|
||||
_digit:[*] => letters/star
|
||||
_digit:[@] => letters/at
|
||||
_digit:[0-9]. => digit:${SAY:0:1}, digit:${SAY:1}
|
||||
|
||||
[date-base](!) ; base rules for dates and times
|
||||
; the 'SAY' variable contains YYYYMMDDHHmm.ss-dow-doy
|
||||
; these rule map the strftime attributes.
|
||||
_date:Y:. => num:${SAY:0:4} ; year, 19xx
|
||||
_date:[Bbh]:. => digits/mon-$[${SAY:4:2}-1] ; month name, 0..11
|
||||
_date:[Aa]:. => digits/day-${SAY:16:1} ; day of week
|
||||
_date:[de]:. => num:${SAY:6:2} ; day of month
|
||||
_date:[H]:. => digits/oh, num:${SAY:8:2} ; hour (oh one, oh two, ..., oh nine, ten, eleven, ..., twenty-three)
|
||||
_date:[I]:. => num:$[${SAY:8:2} % 12] ; hour 0-12
|
||||
_date:[M]:. => num:${SAY:10:2} ; minute
|
||||
; XXX too bad the '?' function does not remove the quotes
|
||||
; _date:[pP]:. => digits/$[ ${SAY:10:2} > 12 ? "p-m" :: "a-m"] ; am pm
|
||||
_date:[pP]:. => digits/p-m ; am pm
|
||||
_date:[S]:. => num:${SAY:13:2} ; seconds
|
||||
_date:[Ii]:. => num:$[${SAY:8:2} % 12] ; hour 0-12
|
||||
_date:[k]:. => num:${SAY:8:2} ; hour (one, two. three, ...,twenty three
|
||||
_date:[m]:. => num:${SAY:4:2} ; month number
|
||||
_date:[Q]:. => date:dby ;incompleat ; "today", "yesterday" or ABdY
|
||||
_date:[q]:. => date:dby ;incompleat ; "" (for today), "yesterday", weekday, or ABdY
|
||||
_date:[R]:. => date:HM${SAY} ; 24 hour time, including minute
|
||||
_date:[T]:. => date:HMS${SAY} ; 24 hour, minure, seconds
|
||||
|
||||
[en-base](!)
|
||||
_[n]um:0. => num:${SAY:1}
|
||||
_[n]um:X => digits/${SAY}
|
||||
_[n]um:1X => digits/${SAY}
|
||||
_[n]um:[2-9]0 => digits/${SAY}
|
||||
_[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1}
|
||||
_[n]um:X00 => num:${SAY:0:1}, digits/hundred
|
||||
_[n]um:XXX => num:${SAY:0:1}, digits/hundred, num:${SAY:1}
|
||||
|
||||
_[n]um:X000 => num:${SAY:0:1}, digits/thousand
|
||||
_[n]um:XXXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1}
|
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousand
|
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2}
|
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousand
|
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3}
|
||||
|
||||
_[n]um:X000000 => num:${SAY:0:1}, digits/million
|
||||
_[n]um:XXXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1}
|
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/million
|
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2}
|
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/million
|
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3}
|
||||
|
||||
_[n]um:X000000000 => num:${SAY:0:1}, digits/billion
|
||||
_[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1}
|
||||
_[n]um:XX000000000 => num:${SAY:0:2}, digits/billion
|
||||
_[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2}
|
||||
_[n]um:XXX000000000 => num:${SAY:0:3}, digits/billion
|
||||
_[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3}
|
||||
|
||||
; enumeration
|
||||
_e[n]um:X => digits/h-${SAY}
|
||||
_e[n]um:1X => digits/h-${SAY}
|
||||
_e[n]um:[2-9]0 => digits/h-${SAY}
|
||||
_e[n]um:[2-9][1-9] => num:${SAY:0:1}0, digits/h-${SAY:1}
|
||||
_e[n]um:[1-9]00 => num:${SAY:0:1}, digits/h-hundred
|
||||
_e[n]um:[1-9]XX => num:${SAY:0:1}, digits/h-hundred, enum:${SAY:1}
|
||||
|
||||
[en_GB](date-base,digit-base,en-base)
|
||||
_[n]um:XXX => num:${SAY:0:1}, digits/hundred, vm-and, num:${SAY:1}
|
||||
|
||||
[it](digit-base,date-base)
|
||||
_[n]um:0. => num:${SAY:1}
|
||||
_[n]um:X => digits/${SAY}
|
||||
_[n]um:1X => digits/${SAY}
|
||||
_[n]um:[2-9]0 => digits/${SAY}
|
||||
_[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1}
|
||||
_[n]um:100 => digits/hundred
|
||||
_[n]um:1XX => digits/hundred, num:${SAY:1}
|
||||
_[n]um:[2-9]00 => num:${SAY:0:1}, digits/hundred
|
||||
_[n]um:[2-9]XX => num:${SAY:0:1}, digits/hundred, num:${SAY:1}
|
||||
|
||||
_[n]um:1000 => digits/thousand
|
||||
_[n]um:1XXX => digits/thousand, num:${SAY:1}
|
||||
_[n]um:[2-9]000 => num:${SAY:0:1}, digits/thousands
|
||||
_[n]um:[2-9]XXX => num:${SAY:0:1}, digits/thousands, num:${SAY:1}
|
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousands
|
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousands, num:${SAY:2}
|
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousands
|
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousands, num:${SAY:3}
|
||||
|
||||
_[n]um:1000000 => num:${SAY:0:1}, digits/million
|
||||
_[n]um:1XXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1}
|
||||
_[n]um:[2-9]000000 => num:${SAY:0:1}, digits/millions
|
||||
_[n]um:[2-9]XXXXXX => num:${SAY:0:1}, digits/millions, num:${SAY:1}
|
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/millions
|
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2}
|
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/millions
|
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3}
|
||||
|
||||
_[n]um:X000000000 => num:${SAY:0:1}, digits/billion
|
||||
_[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1}
|
||||
_[n]um:XX000000000 => num:${SAY:0:2}, digits/billion
|
||||
_[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2}
|
||||
_[n]um:XXX000000000 => num:${SAY:0:3}, digits/billion
|
||||
_[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3}
|
||||
|
||||
_datetime::. => date:AdBY 'digits/at' IMp:${SAY}
|
||||
_date::. => date:AdBY:${SAY}
|
||||
_time::. => date:IMp:${SAY}
|
||||
|
||||
[en](en-base,date-base,digit-base)
|
||||
_datetime::. => date:AdBY 'digits/at' IMp:${SAY}
|
||||
_date::. => date:AdBY:${SAY}
|
||||
_time::. => date:IMp:${SAY}
|
||||
|
||||
[de](date-base,digit-base)
|
||||
_[n]um:0. => num:${SAY:1}
|
||||
_[n]um:X => digits/${SAY}
|
||||
_[n]um:1X => digits/${SAY}
|
||||
_[n]um:[2-9]0 => digits/${SAY}
|
||||
_[n]um:[2-9][1-9] => digits/${SAY:1}-and, digits/${SAY:0:1}0
|
||||
_[n]um:100 => digits/ein, digits/hundred
|
||||
_[n]um:1XX => digits/ein, digits/hundred, num:${SAY:1}
|
||||
_[n]um:[2-9]00 => digits/${SAY:0:1}, digits/hundred
|
||||
_[n]um:[2-9]XX => digits/${SAY:0:1}, digits/hundred, num:${SAY:1}
|
||||
|
||||
_[n]um:1000 => digits/ein, digits/thousand
|
||||
_[n]um:1XXX => digits/ein, digits/thousand, num:${SAY:1}
|
||||
_[n]um:[2-9]000 => digits/${SAY:0:1}, digits/thousand
|
||||
_[n]um:[2-9]XXX => digits/${SAY:0:1}, digits/thousand, num:${SAY:1}
|
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousand
|
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2}
|
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousand
|
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:1}
|
||||
|
||||
_[n]um:1000000 => digits/eine, digits/million
|
||||
_[n]um:1XXXXXX => digits/eine, digits/million, num:${SAY:1}
|
||||
_[n]um:[2-9]000000 => digits/${SAY:0:1}, digits/millions
|
||||
_[n]um:[2-9]XXXXXX => digits/${SAY:0:1}, digits/millions, num:${SAY:1}
|
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/millions
|
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2}
|
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/millions
|
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3}
|
||||
|
||||
_datetime::. => date:AdBY 'digits/at' IMp:${SAY}
|
||||
_date::. => date:AdBY:${SAY}
|
||||
_time::. => date:IMp:${SAY}
|
||||
|
||||
[hu](digit-base,date-base)
|
||||
_[n]um:0. => num:${SAY:1}
|
||||
_[n]um:X => digits/${SAY}
|
||||
_[n]um:1[1-9] => digits/10en, digits/${SAY:1}
|
||||
_[n]um:2[1-9] => digits/20on, digits/${SAY:1}
|
||||
_[n]um:[1-9]0 => digits/${SAY}
|
||||
_[n]um:[3-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1}
|
||||
_[n]um:XXX => num:${SAY:0:1}, digits/hundred, num:${SAY:1}
|
||||
|
||||
_[n]um:X000 => num:${SAY:0:1}, digits/thousand
|
||||
_[n]um:XXXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1}
|
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousand
|
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2}
|
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousand
|
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3}
|
||||
|
||||
_[n]um:X000000 => num:${SAY:0:1}, digits/million
|
||||
_[n]um:XXXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1}
|
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/million
|
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2}
|
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/million
|
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3}
|
||||
|
||||
_[n]um:X000000000 => num:${SAY:0:1}, digits/billion
|
||||
_[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1}
|
||||
_[n]um:XX000000000 => num:${SAY:0:2}, digits/billion
|
||||
_[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2}
|
||||
_[n]um:XXX000000000 => num:${SAY:0:3}, digits/billion
|
||||
_[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3}
|
||||
|
||||
_datetime::. => date:YBdA k 'ora' M 'perc':${SAY}
|
||||
_date::. => date:YBdA:${SAY}
|
||||
_time::. => date:k 'ora' M 'perc':${SAY}
|
||||
|
||||
[fr](date-base,digit-base)
|
||||
_[n]um:0. => num:${SAY:1}
|
||||
_[n]um:X => digits/${SAY}
|
||||
_[n]um:1X => digits/${SAY}
|
||||
_[n]um:[2-9]0 => digits/${SAY}
|
||||
_[n]um:[2-6]1 => digits/${SAY:0:1}0, vm-and, digits/${SAY:1}
|
||||
_[n]um:71 => digits/60, vm-and, num:1${SAY:1}
|
||||
_[n]um:7X => digits/60, num:1${SAY:1}
|
||||
_[n]um:9X => digits/80, num:1${SAY:1}
|
||||
_[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1}
|
||||
_[n]um:100 => digits/hundred
|
||||
_[n]um:1XX => digits/hundred, num:${SAY:1}
|
||||
_[n]um:[2-9]00 => num:${SAY:0:1}, digits/hundred
|
||||
_[n]um:[2-9]XX => num:${SAY:0:1}, digits/hundred, num:${SAY:1}
|
||||
|
||||
_[n]um:1000 => digits/thousand
|
||||
_[n]um:1XXX => digits/thousand, num:${SAY:1}
|
||||
_[n]um:[2-9]000 => num:${SAY:0:1}, digits/thousand
|
||||
_[n]um:[2-9]XXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1}
|
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousand
|
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2}
|
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousand
|
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3}
|
||||
|
||||
_[n]um:1000000 => num:${SAY:0:1}, digits/million
|
||||
_[n]um:1XXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1}
|
||||
_[n]um:[2-9]000000 => num:${SAY:0:1}, digits/million
|
||||
_[n]um:[2-9]XXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1}
|
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/million
|
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2}
|
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/million
|
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3}
|
||||
|
||||
_datetime::. => date:AdBY 'digits/at' H 'hours' M 'perc':${SAY}
|
||||
_date::. => date:AdBY:${SAY}
|
||||
_time::. => date:H 'hours' M 'perc':${SAY}
|
||||
|
||||
_pho[n]e:XXXX => num:${SAY:0:2}, num:${SAY:2:2}
|
||||
_pho[n]e:0[1-9]XXXXXXXX => num:${SAY:0:1}, num:${SAY:1:1}, num:${SAY:2:2}, num:${SAY:4:2}, num:${SAY:6:2}, num:${SAY:8:2}
|
||||
_pho[n]e:. => digit:${SAY}
|
||||
|
||||
[da](date-base,digit-base)
|
||||
_[n]um:0. => num:${SAY:1}
|
||||
_[n]um:X => digits/${SAY}
|
||||
_[n]um:1X => digits/${SAY}
|
||||
_[n]um:[2-9]0 => digits/${SAY}
|
||||
_[n]um:[2-9][1-9] => digits/${SAY:1}-and, digits/${SAY:0:1}0
|
||||
_[n]um:100 => digits/1N, digits/hundred
|
||||
_[n]um:1XX => digits/1N, digits/hundred, num:${SAY:1}
|
||||
_[n]um:[2-9]00 => digits/${SAY:0:1}, digits/hundred
|
||||
_[n]um:[2-9]XX => digits/${SAY:0:1}, digits/hundred, num:${SAY:1}
|
||||
|
||||
_[n]um:1000 => digits/1N, digits/thousand
|
||||
_[n]um:1XXX => digits/1N, digits/thousand, num:${SAY:1}
|
||||
_[n]um:[2-9]000 => digits/${SAY:0:1}, digits/thousand
|
||||
_[n]um:[2-9]XXX => digits/${SAY:0:1}, digits/thousand, num:${SAY:1}
|
||||
_[n]um:XX000 => num:${SAY:0:2}, digits/thousand
|
||||
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2}
|
||||
_[n]um:XXX000 => num:${SAY:0:3}, digits/thousand
|
||||
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3}
|
||||
|
||||
_[n]um:X000000 => digits/${SAY:0:1}, digits/million
|
||||
_[n]um:XXXXXXX => digits/${SAY:0:1}, digits/million, num:${SAY:1}
|
||||
_[n]um:XX000000 => num:${SAY:0:2}, digits/millions
|
||||
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2}
|
||||
_[n]um:XXX000000 => num:${SAY:0:3}, digits/millions
|
||||
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3}
|
||||
|
||||
_[n]um:X000000000 => num:${SAY:0:1}, digits/billion
|
||||
_[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1}
|
||||
_[n]um:XX000000000 => num:${SAY:0:2}, digits/billion
|
||||
_[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2}
|
||||
_[n]um:XXX000000000 => num:${SAY:0:3}, digits/billion
|
||||
_[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3}
|
||||
|
||||
_datetime::. => date:AdBY 'digits/at' kM:${SAY}
|
||||
_date::. => date:AdBY:${SAY}
|
||||
_time::. => date:HM:${SAY}
|
||||
|
||||
; enumeration
|
||||
_e[n]um:X => digits/h-${SAY}
|
||||
_e[n]um:1X => digits/h-${SAY}
|
||||
_e[n]um:[2-9]0 => digits/h-${SAY}
|
||||
_e[n]um:[2-9][1-9] => digits/${SAY:1}-and, digits/h-${SAY:0:1}0
|
||||
_e[n]um:100 => digits/1N, digits/h-hundred
|
||||
_e[n]um:1XX => digits/1N, digits/h-hundred, enum:${SAY:1}
|
||||
_e[n]um:[2-9]00 => num:${SAY:0:1}, digits/h-hundred
|
||||
_e[n]um:[2-9]XX => num:${SAY:0:1}, digits/h-hundred, enum:${SAY:1}
|
1162
asterisk/sip.conf
Normal file
1162
asterisk/sip.conf
Normal file
File diff suppressed because it is too large
Load Diff
43
asterisk/sip_notify.conf
Normal file
43
asterisk/sip_notify.conf
Normal file
@ -0,0 +1,43 @@
|
||||
; Aastra
|
||||
|
||||
[aastra-check-cfg]
|
||||
Event=>check-sync
|
||||
|
||||
[aastra-xml]
|
||||
Event=>aastra-xml
|
||||
|
||||
; Linksys
|
||||
|
||||
[linksys-cold-restart]
|
||||
Event=>reboot_now
|
||||
|
||||
[linksys-warm-restart]
|
||||
Event=>restart_now
|
||||
|
||||
; Polycom
|
||||
|
||||
[polycom-check-cfg]
|
||||
Event=>check-sync
|
||||
|
||||
; Sipura
|
||||
|
||||
[sipura-check-cfg]
|
||||
Event=>resync
|
||||
|
||||
[sipura-get-report]
|
||||
Event=>report
|
||||
|
||||
; snom
|
||||
|
||||
[snom-check-cfg]
|
||||
Event=>check-sync\;reboot=false
|
||||
|
||||
[snom-reboot]
|
||||
Event=>reboot
|
||||
|
||||
;;
|
||||
;; The following NOTIFY messages are not confirmed to work.
|
||||
;;
|
||||
|
||||
[cisco-check-cfg]
|
||||
Event=>check-sync
|
190
asterisk/skinny.conf
Normal file
190
asterisk/skinny.conf
Normal file
@ -0,0 +1,190 @@
|
||||
;
|
||||
; Skinny Configuration for Asterisk
|
||||
;
|
||||
[general]
|
||||
bindaddr=0.0.0.0 ; Address to bind to
|
||||
bindport=2000 ; Port to bind to, default tcp/2000
|
||||
dateformat=M-D-Y ; M,D,Y in any order (6 chars max)
|
||||
; "A" may also be used, but it must be at the end.
|
||||
; Use M for month, D for day, Y for year, A for 12-hour time.
|
||||
keepalive=120
|
||||
|
||||
;authtimeout = 30 ; authtimeout specifies the maximum number of seconds a
|
||||
; client has to authenticate. If the client does not
|
||||
; authenticate beofre this timeout expires, the client
|
||||
; will be disconnected. (default: 30 seconds)
|
||||
|
||||
;authlimit = 50 ; authlimit specifies the maximum number of
|
||||
; unauthenticated sessions that will be allowed to
|
||||
; connect at any given time. (default: 50)
|
||||
|
||||
;vmexten=8500 ; Systemwide voicemailmain pilot number
|
||||
; It must be in the same context as the calling
|
||||
; device/line
|
||||
|
||||
; If regcontext is specified, Asterisk will dynamically create and destroy a
|
||||
; NoOp priority 1 extension for a given line which registers or unregisters with
|
||||
; us and have a "regexten=" configuration item.
|
||||
; Multiple contexts may be specified by separating them with '&'. The
|
||||
; actual extension is the 'regexten' parameter of the registering line or its
|
||||
; name if 'regexten' is not provided. If more than one context is provided,
|
||||
; the context must be specified within regexten by appending the desired
|
||||
; context after '@'. More than one regexten may be supplied if they are
|
||||
; separated by '&'. Patterns may be used in regexten.
|
||||
;
|
||||
;regcontext=skinnyregistrations
|
||||
|
||||
;allow=all ; see doc/rtp-packetization for framing options
|
||||
;disallow=
|
||||
|
||||
; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters.
|
||||
;tos=cs3 ; Sets TOS for signaling packets.
|
||||
;tos_audio=ef ; Sets TOS for RTP audio packets.
|
||||
;tos_video=af41 ; Sets TOS for RTP video packets.
|
||||
;cos=3 ; Sets 802.1p priority for signaling packets.
|
||||
;cos_audio=5 ; Sets 802.1p priority for RTP audio packets.
|
||||
;cos_video=4 ; Sets 802.1p priority for RTP video packets.
|
||||
|
||||
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
|
||||
;jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a
|
||||
; skinny channel. Defaults to "no". An enabled jitterbuffer will
|
||||
; be used only if the sending side can create and the receiving
|
||||
; side can not accept jitter. The skinny channel can accept
|
||||
; jitter, thus a jitterbuffer on the receive skinny side will be
|
||||
; used only if it is forced and enabled.
|
||||
|
||||
;jbforce = no ; Forces the use of a jitterbuffer on the receive side of a skinny
|
||||
; channel. Defaults to "no".
|
||||
|
||||
;jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||
|
||||
;jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||
; resynchronized. Useful to improve the quality of the voice, with
|
||||
; big jumps in/broken timestamps, usually sent from exotic devices
|
||||
; and programs. Defaults to 1000.
|
||||
|
||||
;jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a
|
||||
; skinny channel. Two implementations are currently available
|
||||
; - "fixed" (with size always equals to jbmaxsize)
|
||||
; - "adaptive" (with variable size, actually the new jb of IAX2).
|
||||
; Defaults to fixed.
|
||||
|
||||
;jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
|
||||
;-----------------------------------------------------------------------------------
|
||||
|
||||
[lines]
|
||||
;----------------------------------- LINES SECTION --------------------------------
|
||||
; Options set under [lines] apply to all lines unless explicitly set for a particular
|
||||
; device. The options that can be set under lines are specified in GENERAL LINE OPTIONS.
|
||||
; These options can also be set for each individual device as well as those under SPECIFIC
|
||||
; LINE OPTIONS.
|
||||
;
|
||||
; Each label below [lines] in [] is a new line with the specific options specified below
|
||||
; it. Config stops reading new lines when one of the following is found: [general], [devices]
|
||||
; or the end of skinny.conf.
|
||||
;
|
||||
; Where options are common to both lines and devices, the results typically take that of
|
||||
; the least permission. ie if a no is set for either line or device, the call will not be
|
||||
; able to use that permission
|
||||
;-------------------------------- GENERAL LINE OPTIONS -----------------------------
|
||||
;earlyrtp=1 ; whether audio signalling should be provided by asterisk
|
||||
; ; (earlyrtp=1) or device generated (earlyrtp=0). default=yes
|
||||
;transfer=1 ; whether the device is allowed to transfer. default=yes
|
||||
;context=default ; context to use for this line.
|
||||
;------------------------------- SPECIFIC LINE OPTIONS -----------------------------
|
||||
;setvar= ; allows for the setting of chanvars.
|
||||
;-----------------------------------------------------------------------------------
|
||||
|
||||
;[100]
|
||||
;nat=yes
|
||||
;callerid="Customer Support" <810-234-1212>
|
||||
;mailbox=100
|
||||
;vmexten=8500 ; Device level voicemailmain pilot number
|
||||
;regexten=100
|
||||
;context=inbound
|
||||
;linelabel="Support Line" ; Displays next to the line
|
||||
; button on 7940's and 7960s
|
||||
;[110]
|
||||
;callerid="John Chambers" <408-526-4000>
|
||||
;context=did
|
||||
;regexten=110
|
||||
;linelabel="John"
|
||||
;mailbox=110
|
||||
|
||||
;[120]
|
||||
;Nothing set, so all the defaults are used
|
||||
|
||||
;[500]
|
||||
;nat=yes
|
||||
;callerid="George W. Bush" <202-456-1414>
|
||||
;setvar=CUSTID=5678 ; Channel variable to be set for all calls from this device
|
||||
;setvar=ATTENDED_TRANSFER_COMPLETE_SOUND=beep ; This channel variable will
|
||||
; cause the given audio file to
|
||||
; be played upon completion of
|
||||
; an attended transfer.
|
||||
;mailbox=500
|
||||
;callwaiting=yes
|
||||
;transfer=yes
|
||||
;threewaycalling=yes
|
||||
;context=default
|
||||
;mohinterpret=default ; This option specifies a default music on hold class to
|
||||
; use when put on hold if the channel's moh class was not
|
||||
; explicitly set with Set(CHANNEL(musicclass)=whatever) and
|
||||
; the peer channel did not suggest a class to use.
|
||||
;mohsuggest=default ; This option specifies which music on hold class to suggest to the peer channel
|
||||
; when this channel places the peer on hold. It may be specified globally or on
|
||||
; a per-user or per-peer basis.
|
||||
|
||||
|
||||
[devices]
|
||||
;---------------------------------- DEVICES SECTION -------------------------------
|
||||
; Options set under [devices] apply to all devices unless explicitly set for a particular
|
||||
; device. The options that can be set under devices are specified in GENERAL DEVICE OPTIONS.
|
||||
; These options can also be set for each individual device as well as those under SPECIFIC
|
||||
; DEVICE OPTIONS.
|
||||
;
|
||||
; Each label below [devices] in [] is a new device with the specific options specified below
|
||||
; it. Config stop reading new devices when one of the following is found: [general], [lines]
|
||||
; or the end of skinny.conf.
|
||||
;
|
||||
; Where options are common to both lines and devices, the results typically take that of
|
||||
; the least permission. ie if a no is set for either line or device, the call will not be
|
||||
; able to use that permission
|
||||
;------------------------------- GENERAL DEVICE OPTIONS ----------------------------
|
||||
;earlyrtp=1 ; whether audio signalling should be provided by asterisk
|
||||
; ; (earlyrtp=1) or device generated (earlyrtp=0). default=yes
|
||||
;transfer=1 ; whether the device is allowed to transfer. default=yes
|
||||
;------------------------------ SPECIFIC DEVICE OPTIONS ----------------------------
|
||||
;device="SEPxxxxxxxxxxxx ; id of the device. Must be set.
|
||||
;version=P002G204 ; firmware version to be loaded. If this version is different
|
||||
; ; to the one on the device, the device will try to load this
|
||||
; ; version from the tftp server. Set to device firmware version.
|
||||
;-----------------------------------------------------------------------------------
|
||||
|
||||
; Typical config for 12SP+
|
||||
;[florian]
|
||||
;device=SEP00D0BA847E6B
|
||||
;version=P002G204 ; Thanks critch
|
||||
;context=did
|
||||
;directmedia=yes ; Allow media to go directly between two RTP endpoints.
|
||||
;line=120 ; Dial(Skinny/120@florian)
|
||||
|
||||
; Typical config for a 7910
|
||||
;[duba] ; Device name
|
||||
;device=SEP0007EB463101 ; Official identifier
|
||||
;version=P002F202 ; Firmware version identifier
|
||||
;host=192.168.1.144
|
||||
;permit=192.168.0/24 ; Optional, used for authentication
|
||||
;line=500
|
||||
|
||||
|
||||
; Typical config for a 7940 with dual 7914s
|
||||
;[support]
|
||||
;device=SEP0007EB463121
|
||||
;line=100
|
||||
;line=110
|
||||
;speeddial => 111,Jack Smith ; Adds a speeddial button to a device.
|
||||
;speeddial => 112@hints,Bob Peterson ; When a context is specified, the speeddial watches a dialplan hint.
|
||||
;addon => 7914
|
||||
;addon => 7914
|
||||
|
140
asterisk/sla.conf
Normal file
140
asterisk/sla.conf
Normal file
@ -0,0 +1,140 @@
|
||||
;
|
||||
; Configuration for Shared Line Appearances (SLA).
|
||||
;
|
||||
; See doc/asterisk.pdf for more information.
|
||||
;
|
||||
|
||||
; ---- General Options ----------------
|
||||
[general]
|
||||
|
||||
;attemptcallerid=no ; Attempt CallerID handling. The default value for this
|
||||
; is "no" because CallerID handling with an SLA setup is
|
||||
; known to not work properly in some situations. However,
|
||||
; feel free to enable it if you would like. If you do, and
|
||||
; you find problems, please do not report them.
|
||||
; -------------------------------------
|
||||
|
||||
|
||||
; ---- Trunk Declarations -------------
|
||||
;
|
||||
;[line1] ; Provide a name for this trunk.
|
||||
|
||||
;type=trunk ; This line is what marks this entry as a trunk.
|
||||
|
||||
;device=DAHDI/3 ; Map this trunk declaration to a specific device.
|
||||
; NOTE: You can not just put any type of channel here.
|
||||
; DAHDI channels can be directly used. IP trunks
|
||||
; require some indirect configuration which is
|
||||
; described in doc/asterisk.pdf.
|
||||
|
||||
;autocontext=line1 ; This supports automatic generation of the dialplan entries
|
||||
; if the autocontext option is used. Each trunk should have
|
||||
; a unique context name. Then, in chan_dahdi.conf, this device
|
||||
; should be configured to have incoming calls go to this context.
|
||||
|
||||
;ringtimeout=30 ; Set how long to allow this trunk to ring on an inbound call before hanging
|
||||
; it up as an unanswered call. The value is in seconds.
|
||||
|
||||
;barge=no ; If this option is set to "no", then no station will be
|
||||
; allowed to join a call that is in progress. The default
|
||||
; value is "yes".
|
||||
|
||||
;hold=private ; This option configure hold permissions for this trunk.
|
||||
; "open" - This means that any station can put this trunk
|
||||
; on hold, and any station can retrieve it from
|
||||
; hold. This is the default.
|
||||
; "private" - This means that once a station puts the
|
||||
; trunk on hold, no other station will be
|
||||
; allowed to retrieve the call from hold.
|
||||
|
||||
;[line2]
|
||||
;type=trunk
|
||||
;device=DAHDI/4
|
||||
;autocontext=line2
|
||||
|
||||
;[line3]
|
||||
;type=trunk
|
||||
;device=DAHDI/3
|
||||
;autocontext=line3
|
||||
|
||||
;[line4]
|
||||
;type=trunk
|
||||
;device=Local/disa@line4_outbound ; A Local channel in combination with the Disa
|
||||
; application can be used to support IP trunks.
|
||||
; See doc/asterisk.pdf on more information on how
|
||||
; IP trunks work.
|
||||
;autocontext=line4
|
||||
; --------------------------------------
|
||||
|
||||
|
||||
; ---- Station Declarations ------------
|
||||
|
||||
;[station1] ; Define a name for this station.
|
||||
|
||||
;type=station ; This line indicates that this entry is a station.
|
||||
|
||||
;device=SIP/station1 ; Each station must be mapped to a device.
|
||||
|
||||
;autocontext=sla_stations ; This supports automatic generation of the dialplan entries if
|
||||
; the autocontext option is used. All stations can use the same
|
||||
; context without conflict. The device for this station should
|
||||
; have its context configured to the same one listed here.
|
||||
|
||||
;ringtimeout=10 ; Set a timeout for how long to allow the station to ring for an
|
||||
; incoming call, in seconds.
|
||||
|
||||
;ringdelay=10 ; Set a time for how long to wait before beginning to ring this station
|
||||
; once there is an incoming call, in seconds.
|
||||
|
||||
;hold=private ; This option configure hold permissions for this station. Note
|
||||
; that if private hold is set in the trunk entry, that will override
|
||||
; anything here. However, if a trunk has open hold access, but this
|
||||
; station is set to private hold, then the private hold will be in
|
||||
; effect.
|
||||
; "open" - This means that once this station puts a call
|
||||
; on hold, any other station is allowed to retrieve
|
||||
; it. This is the default.
|
||||
; "private" - This means that once this station puts a
|
||||
; call on hold, no other station will be
|
||||
; allowed to retrieve the call from hold.
|
||||
|
||||
|
||||
;trunk=line1 ; Individually list all of the trunks that will appear on this station. This
|
||||
; order is significant. It should be the same order as they appear on the
|
||||
; phone. The order here defines the order of preference that the trunks will
|
||||
; be used.
|
||||
;trunk=line2
|
||||
;trunk=line3,ringdelay=5 ; A ring delay for the station can also be specified for a specific trunk.
|
||||
; If a ring delay is specified both for the whole station and for a specific
|
||||
; trunk on a station, the setting for the specific trunk will take priority.
|
||||
; This value is in seconds.
|
||||
|
||||
;trunk=line4,ringtimeout=5 ; A ring timeout for the station can also be specified for a specific trunk.
|
||||
; If a ring timeout is specified both for the whole station and for a specific
|
||||
; trunk on a station, the setting for the specific trunk will take priority.
|
||||
; This value is in seconds.
|
||||
|
||||
|
||||
;[station](!) ; When there are a lot of stations that are configured the same way,
|
||||
; it is convenient to use a configuration template like this so that
|
||||
; the common settings stay in one place.
|
||||
;type=station
|
||||
;autocontext=sla_stations
|
||||
;trunk=line1
|
||||
;trunk=line2
|
||||
;trunk=line3
|
||||
;trunk=line4
|
||||
|
||||
;[station2](station) ; Define a station that uses the configuration from the template "station".
|
||||
;device=SIP/station2
|
||||
;
|
||||
;[station3](station)
|
||||
;device=SIP/station3
|
||||
;
|
||||
;[station4](station)
|
||||
;device=SIP/station4
|
||||
;
|
||||
;[station5](station)
|
||||
;device=SIP/station5
|
||||
; --------------------------------------
|
||||
|
75
asterisk/smdi.conf
Normal file
75
asterisk/smdi.conf
Normal file
@ -0,0 +1,75 @@
|
||||
; Asterisk SMDI configuration
|
||||
|
||||
[interfaces]
|
||||
; Specify serial ports to listen for SMDI messages on below. These will be
|
||||
; referenced later in chan_dahdi.conf. If you do not specify any interfaces
|
||||
; then SMDI will be disabled. Interfaces can have several different attributes
|
||||
; associated with them.
|
||||
|
||||
; Set the number of stop bits to use per character here. The default is no,
|
||||
; in which case one stop bit will be used.
|
||||
|
||||
;twostopbits = no
|
||||
|
||||
; Character size or bit length is the size of each character sent across the
|
||||
; link. Character size can be 7 or 8. The default is 7.
|
||||
|
||||
;charsize = 7
|
||||
|
||||
; If you need parity checking enabled you can turn it on here. Acceptable
|
||||
; values are even, odd, and none. The default is even.
|
||||
|
||||
;paritybit = even
|
||||
|
||||
; The baudrate to use for this port. Acceptable values are 1200, 2400, 4800,
|
||||
; and 9600. The default is 9600.
|
||||
|
||||
;baudrate = 1200
|
||||
|
||||
; Often the numbering scheme for a set of mailboxes or extensions will not be 7
|
||||
; or 10 digits (as SMDI requires). Use the msdstrip option to strip unused
|
||||
; digits from the start of numbers.
|
||||
|
||||
;msdstrip = 0
|
||||
|
||||
; Occasionally Asterisk and the SMDI switch may become out of sync. If this
|
||||
; happens, Asterisk will appear one or several calls behind as it processes
|
||||
; voicemail requests. To prevent this from happening, adjust the msgexpirytime.
|
||||
; This will make Asterisk discard old SMDI messages that have not yet been
|
||||
; processed. The default expiry time is 30000 milliseconds.
|
||||
|
||||
;msgexpirytime = 30000
|
||||
|
||||
;smdiport => /dev/ttyS0
|
||||
|
||||
|
||||
[mailboxes]
|
||||
; This section configures parameters related to MWI handling for the SMDI link.
|
||||
|
||||
; This option configures the polling interval used to check to see if the
|
||||
; mailboxes have any new messages. This option is specified in seconds.
|
||||
; The default value is 10 seconds.
|
||||
;
|
||||
;pollinginterval=10
|
||||
|
||||
; Every other entry in this section of the configuration file is interpreted as
|
||||
; a mapping between the mailbox ID on the SMDI link, and the local Asterisk
|
||||
; mailbox name. In many cases, they are the same thing, but they still must be
|
||||
; listed here so that this module knows which mailboxes it needs to pay
|
||||
; attention to.
|
||||
;
|
||||
; Syntax:
|
||||
; <SMDI mailbox ID>=<Asterisk Mailbox Name>[@Asterisk Voicemail Context]
|
||||
;
|
||||
; If no Asterisk voicemail context is specified, "default" will be assumed.
|
||||
;
|
||||
; Before specifying mailboxes, you must specify an SMDI interface. All mailbox
|
||||
; definitions that follow will correspond to that SMDI interface. If you specify
|
||||
; another interface, then all definitions following that will correspond to the
|
||||
; new interface.
|
||||
;
|
||||
;smdiport=/dev/ttyS0
|
||||
;2565551234=1234@vmcontext1
|
||||
;2565555678=5678@vmcontext2
|
||||
;smdiport=/dev/ttyS1
|
||||
;2565559999=9999
|
83
asterisk/telcordia-1.adsi
Normal file
83
asterisk/telcordia-1.adsi
Normal file
@ -0,0 +1,83 @@
|
||||
;
|
||||
; Asterisk default ADSI script
|
||||
;
|
||||
;
|
||||
; Begin with the preamble requirements
|
||||
;
|
||||
DESCRIPTION "Telcordia Demo" ; Name of vendor
|
||||
VERSION 0x02 ; Version of stuff
|
||||
;SECURITY "_AST" ; Security code
|
||||
SECURITY 0x0000 ; Security code
|
||||
FDN 0x0000000f ; Descriptor number
|
||||
|
||||
;
|
||||
; Predefined strings
|
||||
;
|
||||
DISPLAY "talkingto" IS "Talking To" "$Call1p" WRAP
|
||||
DISPLAY "titles" IS "20th Century IQ Svc"
|
||||
DISPLAY "newcall" IS "New Call From" "$Call1p" WRAP
|
||||
DISPLAY "ringing" IS "Ringing"
|
||||
|
||||
;
|
||||
; Begin state definitions
|
||||
;
|
||||
STATE "callup" ; Call is currently up
|
||||
STATE "inactive" ; No active call
|
||||
|
||||
;
|
||||
; Begin soft key definitions
|
||||
;
|
||||
KEY "CB_OH" IS "Block" OR "Call Block"
|
||||
OFFHOOK
|
||||
VOICEMODE
|
||||
WAITDIALTONE
|
||||
SENDDTMF "*60"
|
||||
SUBSCRIPT "offHook"
|
||||
ENDKEY
|
||||
|
||||
KEY "CB" IS "Block" OR "Call Block"
|
||||
SENDDTMF "*60"
|
||||
ENDKEY
|
||||
|
||||
;
|
||||
; Begin main subroutine
|
||||
;
|
||||
|
||||
SUB "main" IS
|
||||
IFEVENT NEARANSWER THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "talkingto" AT 1
|
||||
GOTO "stableCall"
|
||||
ENDIF
|
||||
IFEVENT OFFHOOK THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "titles" AT 1
|
||||
SHOWKEYS "CB"
|
||||
GOTO "offHook"
|
||||
ENDIF
|
||||
IFEVENT IDLE THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "titles" AT 1
|
||||
SHOWKEYS "CB_OH"
|
||||
ENDIF
|
||||
IFEVENT CALLERID THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "newcall" AT 1
|
||||
ENDIF
|
||||
ENDSUB
|
||||
|
||||
SUB "offHook" IS
|
||||
IFEVENT FARRING THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "ringing" AT 1
|
||||
ENDIF
|
||||
IFEVENT FARANSWER THEN
|
||||
CLEAR
|
||||
SHOWDISPLAY "talkingto" AT 1
|
||||
GOTO "stableCall"
|
||||
ENDIF
|
||||
ENDSUB
|
||||
|
||||
SUB "stableCall" IS
|
||||
|
||||
ENDSUB
|
26
asterisk/udptl.conf
Normal file
26
asterisk/udptl.conf
Normal file
@ -0,0 +1,26 @@
|
||||
;
|
||||
; UDPTL Configuration (UDPTL is one of the transports for T.38)
|
||||
;
|
||||
[general]
|
||||
;
|
||||
; UDPTL start and UDPTL end configure start and end addresses
|
||||
;
|
||||
udptlstart=4000
|
||||
udptlend=4999
|
||||
;
|
||||
; Whether to enable or disable UDP checksums on UDPTL traffic
|
||||
;
|
||||
;udptlchecksums=no
|
||||
;
|
||||
; The number of error correction entries in a UDPTL packet
|
||||
;
|
||||
udptlfecentries = 3
|
||||
;
|
||||
; The span over which parity is calculated for FEC in a UDPTL packet
|
||||
;
|
||||
udptlfecspan = 3
|
||||
;
|
||||
; Some VoIP providers will only accept an offer with an even-numbered
|
||||
; UDPTL port. Set this option so that Asterisk will only attempt to use
|
||||
; even-numbered ports when negotiating T.38. Default is no.
|
||||
use_even_ports = no
|
76
asterisk/unistim.conf
Normal file
76
asterisk/unistim.conf
Normal file
@ -0,0 +1,76 @@
|
||||
;
|
||||
; chan_unistim configuration file.
|
||||
;
|
||||
|
||||
[general]
|
||||
port=5000 ; UDP port
|
||||
;
|
||||
; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters.
|
||||
;tos=cs3 ; Sets TOS for signaling packets.
|
||||
;tos_audio=ef ; Sets TOS for RTP audio packets.
|
||||
;cos=3 ; Sets 802.1p priority for signaling packets.
|
||||
;cos_audio=5 ; Sets 802.1p priority for RTP audio packets.
|
||||
;
|
||||
;keepalive=120 ; in seconds, default = 120
|
||||
;public_ip= ; if asterisk is behind a nat, specify your public IP
|
||||
;autoprovisioning=no ; Allow undeclared phones to register an extension. See README for important
|
||||
; informations. no (default), yes, tn.
|
||||
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
|
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a
|
||||
; SIP channel. Defaults to "no". An enabled jitterbuffer will
|
||||
; be used only if the sending side can create and the receiving
|
||||
; side can not accept jitter. The SIP channel can accept jitter,
|
||||
; thus a jitterbuffer on the receive SIP side will be used only
|
||||
; if it is forced and enabled.
|
||||
|
||||
; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a SIP
|
||||
; channel. Defaults to "no".
|
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||
; resynchronized. Useful to improve the quality of the voice, with
|
||||
; big jumps in/broken timestamps, usually sent from exotic devices
|
||||
; and programs. Defaults to 1000.
|
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP
|
||||
; channel. Two implementations are currently available - "fixed"
|
||||
; (with size always equals to jbmaxsize) and "adaptive" (with
|
||||
; variable size, actually the new jb of IAX2). Defaults to fixed.
|
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
|
||||
;-----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
;[black] ; name of the device
|
||||
;device=000ae4012345 ; mac address of the phone
|
||||
;rtp_port=10000 ; RTP port used by the phone, default = 10000. RTCP = rtp_port+1
|
||||
;rtp_method=0 ; If you don't have sound, you can try 1, 2 or 3, default = 0
|
||||
;status_method=0 ; If you don't see status text, try 1, default = 0
|
||||
;titledefault=Asterisk ; default = "TimeZone (your time zone)". 12 characters max
|
||||
;maintext0="you can insert" ; default = "Welcome", 24 characters max
|
||||
;maintext1="a custom text" ; default = the name of the device, 24 characters max
|
||||
;maintext2="(main page)" ; default = the public IP of the phone, 24 characters max
|
||||
;dateformat=1 ; 0 = month/day, 1 (default) = day/month
|
||||
;timeformat=1 ; 0 = 0:00am ; 1 (default) = 0h00, 2 = 0:00
|
||||
;contrast=8 ; define the contrast of the LCD. From 0 to 15. Default = 8
|
||||
;country=us ; country (ccTLD) for dial tone frequency. See README, default = us
|
||||
;ringvolume=2 ; ring volume : 0,1,2,3, can be overrided by Dial(), default = 2
|
||||
;ringstyle=3 ; ring style : 0 to 7, can be overrided by Dial(), default = 3
|
||||
;callhistory=1 ; 0 = disable, 1 = enable call history, default = 1
|
||||
;callerid="Customer Support" <555-234-5678>
|
||||
;context=default ; context, default="default"
|
||||
;mailbox=1234 ; Specify the mailbox number. Used by Message Waiting Indication
|
||||
;linelabel="Support" ; Softkey label for the next line=> entry, 9 char max.
|
||||
;extension=none ; Add an extension into the dialplan. Only valid in context specified previously.
|
||||
; none=don't add (default), ask=prompt user, line=use the line number
|
||||
;line => 100 ; Only one line by device is currently supported.
|
||||
; Beware ! only bookmark and softkey entries are allowed after line=>
|
||||
;bookmark=Hans C.@123 ; Use a softkey to dial 123. Name : 9 char max
|
||||
;bookmark=Mailbox@011@54 ; 54 shows a mailbox icon. See #define FAV_ICON_ for other values (32 to 63)
|
||||
;bookmark=Test@*@USTM/violet ; Display an icon if violet is connected (dynamic), only for unistim device
|
||||
;bookmark=4@Pager@54321@51 ; Display a pager icon and dial 54321 when softkey 4 is pressed
|
||||
|
||||
;[violet]
|
||||
;device=006038abcdef
|
||||
;line => 102
|
61
asterisk/usbradio.conf
Normal file
61
asterisk/usbradio.conf
Normal file
@ -0,0 +1,61 @@
|
||||
[general]
|
||||
|
||||
; General config options, with default values shown.
|
||||
; You should use one section per device, with [general] being used
|
||||
; for the device.
|
||||
|
||||
; debug = 0x0 ; misc debug flags, default is 0
|
||||
|
||||
; Set the device to use for I/O
|
||||
; devicenum = 0
|
||||
; Set hardware type here
|
||||
; hdwtype=0 ; 0=limey, 1=sph
|
||||
|
||||
; rxboost=0 ; no rx gain boost
|
||||
; rxctcssrelax=1 ; reduce talkoff from radios w/o CTCSS Tx HPF
|
||||
; rxctcssfreq=100.0 ; rx ctcss freq in floating point. must be in table
|
||||
; txctcssfreq=100.0 ; tx ctcss freq, any frequency permitted
|
||||
|
||||
; carrierfrom=dsp ;no,usb,usbinvert,dsp,vox
|
||||
; ctcssfrom=dsp ;no,usb,dsp
|
||||
|
||||
; rxdemod=flat ; input type from radio: no,speaker,flat
|
||||
; txprelim=yes ; output is pre-emphasised and limited
|
||||
; txtoctype=no ; no,phase,notone
|
||||
|
||||
; txmixa=composite ;no,voice,tone,composite,auxvoice
|
||||
; txmixb=no ;no,voice,tone,composite,auxvoice
|
||||
|
||||
; invertptt=0
|
||||
|
||||
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
|
||||
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an
|
||||
; USBRADIO channel. Defaults to "no". An enabled jitterbuffer will
|
||||
; be used only if the sending side can create and the receiving
|
||||
; side can not accept jitter. The USBRADIO channel can't accept jitter,
|
||||
; thus an enabled jitterbuffer on the receive USBRADIO side will always
|
||||
; be used if the sending side can create jitter.
|
||||
|
||||
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||
|
||||
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||
; resynchronized. Useful to improve the quality of the voice, with
|
||||
; big jumps in/broken timestamps, usualy sent from exotic devices
|
||||
; and programs. Defaults to 1000.
|
||||
|
||||
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of an USBRADIO
|
||||
; channel. Two implementations are currenlty available - "fixed"
|
||||
; (with size always equals to jbmax-size) and "adaptive" (with
|
||||
; variable size, actually the new jb of IAX2). Defaults to fixed.
|
||||
|
||||
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set.
|
||||
; The option represents the number of milliseconds by which the new
|
||||
; jitter buffer will pad its size. the default is 40, so without
|
||||
; modification, the new jitter buffer will set its size to the jitter
|
||||
; value plus 40 milliseconds. increasing this value may help if your
|
||||
; network normally has low jitter, but occasionally has spikes.
|
||||
|
||||
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
|
||||
;-----------------------------------------------------------------------------------
|
||||
|
||||
|
112
asterisk/users.conf
Normal file
112
asterisk/users.conf
Normal file
@ -0,0 +1,112 @@
|
||||
;
|
||||
; User configuration
|
||||
;
|
||||
; Creating entries in users.conf is a "shorthand" for creating individual
|
||||
; entries in each configuration file. Using users.conf is not intended to
|
||||
; provide you with as much flexibility as using the separate configuration
|
||||
; files (e.g. sip.conf, iax.conf, etc) but is intended to accelerate the
|
||||
; simple task of adding users. Note that creating individual items (e.g.
|
||||
; custom SIP peers, IAX friends, etc.) will allow you to override specific
|
||||
; parameters within this file. Parameter names here are the same as they
|
||||
; appear in the other configuration files. There is no way to change the
|
||||
; value of a parameter here for just one subsystem.
|
||||
;
|
||||
|
||||
[general]
|
||||
;
|
||||
; Full name of a user
|
||||
;
|
||||
fullname = New User
|
||||
;
|
||||
; Starting point of allocation of extensions
|
||||
;
|
||||
userbase = 6000
|
||||
;
|
||||
; Create voicemail mailbox and use use macro-stdexten
|
||||
;
|
||||
hasvoicemail = yes
|
||||
;
|
||||
; Set voicemail mailbox 6000 password to 1234
|
||||
;
|
||||
vmsecret = 1234
|
||||
;
|
||||
; Create SIP Peer
|
||||
;
|
||||
hassip = yes
|
||||
;
|
||||
; Create IAX friend
|
||||
;
|
||||
hasiax = yes
|
||||
;
|
||||
; Create H.323 friend
|
||||
;
|
||||
;hash323 = yes
|
||||
;
|
||||
; Create manager entry
|
||||
;
|
||||
hasmanager = no
|
||||
;
|
||||
; Set permissions for manager entry (see manager.conf.sample for documentation)
|
||||
; (defaults to *all* permissions)
|
||||
;managerread = system,call,log,verbose,command,agent,user,config
|
||||
;managerwrite = system,call,log,verbose,command,agent,user,config
|
||||
;
|
||||
;
|
||||
; MAC Address for res_phoneprov
|
||||
;
|
||||
;macaddress = 112233445566
|
||||
;
|
||||
; Auto provision the phone with res_phoneprov
|
||||
;
|
||||
;autoprov = yes
|
||||
;
|
||||
; Line Keys for hardphone
|
||||
;
|
||||
;LINEKEYS = 1
|
||||
;
|
||||
; Line number for hardphone
|
||||
;
|
||||
;linenumber = 1
|
||||
;
|
||||
; Local Caller ID number used with res_phoneprov and Asterisk GUI
|
||||
;
|
||||
;cid_number = 6000
|
||||
;
|
||||
; Remaining options are not specific to users.conf entries but are general.
|
||||
;
|
||||
callwaiting = yes
|
||||
threewaycalling = yes
|
||||
callwaitingcallerid = yes
|
||||
transfer = yes
|
||||
canpark = yes
|
||||
cancallforward = yes
|
||||
callreturn = yes
|
||||
callgroup = 1
|
||||
pickupgroup = 1
|
||||
;nat = no
|
||||
|
||||
;[6000]
|
||||
;fullname = Joe User
|
||||
;email = joe@foo.bar
|
||||
;secret = 1234
|
||||
;dahdichan = 1
|
||||
;hasvoicemail = yes
|
||||
;vmsecret = 1234
|
||||
;hassip = yes
|
||||
;hasiax = no
|
||||
;hash323 = no
|
||||
;hasmanager = no
|
||||
;callwaiting = no
|
||||
;context = international
|
||||
;
|
||||
; Some administrators choose alphanumeric extensions, but still want their
|
||||
; users to be reachable by traditional numeric extensions, specified by the
|
||||
; alternateexts entry.
|
||||
;
|
||||
;alternateexts = 7057,3249
|
||||
;macaddress = 112233445566
|
||||
;autoprov = yes
|
||||
;LINEKEYS = 1
|
||||
;linenumber = 1
|
||||
;cid_number = 6000
|
||||
|
367
asterisk/voicemail.conf
Normal file
367
asterisk/voicemail.conf
Normal file
@ -0,0 +1,367 @@
|
||||
;
|
||||
; Voicemail Configuration
|
||||
;
|
||||
|
||||
;
|
||||
; NOTE: Asterisk has to edit this file to change a user's password. This does
|
||||
; not currently work with the "#include <file>" directive for Asterisk
|
||||
; configuration files, nor when using realtime static configuration.
|
||||
; Do not use them with this configuration file.
|
||||
;
|
||||
|
||||
[general]
|
||||
; Formats for writing Voicemail. Note that when using IMAP storage for
|
||||
; voicemail, only the first format specified will be used.
|
||||
;format=g723sf|wav49|wav
|
||||
format=wav49|gsm|wav
|
||||
;
|
||||
; WARNING:
|
||||
; If you change the list of formats that you record voicemail in
|
||||
; when you have mailboxes that contain messages, you _MUST_ absolutely
|
||||
; manually go through those mailboxes and convert/delete/add the
|
||||
; the message files so that they appear to have been stored using
|
||||
; your new format list. If you don't do this, very unpleasant
|
||||
; things may happen to your users while they are retrieving and
|
||||
; manipulating their voicemail.
|
||||
;
|
||||
; In other words: don't change the format list on a production system
|
||||
; unless you are _VERY_ sure that you know what you are doing and are
|
||||
; prepared for the consequences.
|
||||
;
|
||||
; Who the e-mail notification should appear to come from
|
||||
serveremail=asterisk
|
||||
;serveremail=asterisk@linux-support.net
|
||||
; Should the email contain the voicemail as an attachment
|
||||
attach=yes
|
||||
; Maximum number of messages per folder. If not specified, a default value
|
||||
; (100) is used. Maximum value for this option is 9999.
|
||||
;maxmsg=100
|
||||
; Maximum length of a voicemail message in seconds
|
||||
;maxsecs=180
|
||||
; Minimum length of a voicemail message in seconds for the message to be kept
|
||||
; The default is no minimum.
|
||||
;minsecs=3
|
||||
; Maximum length of greetings in seconds
|
||||
;maxgreet=60
|
||||
; How many milliseconds to skip forward/back when rew/ff in message playback
|
||||
skipms=3000
|
||||
; How many seconds of silence before we end the recording
|
||||
maxsilence=10
|
||||
; Silence threshold (what we consider silence: the lower, the more sensitive)
|
||||
silencethreshold=128
|
||||
; Max number of failed login attempts
|
||||
maxlogins=3
|
||||
;
|
||||
; Move heard messages to the 'Old' folder automagically. Defaults to on.
|
||||
;moveheard=yes
|
||||
;
|
||||
; Forward an urgent message as an urgent message. Defaults to no so
|
||||
; sender can set the urgency on the envelope of the forwarded message.
|
||||
;forward_urgent_auto=no
|
||||
;
|
||||
; User context is where entries from users.conf are registered. The
|
||||
; default value is 'default'
|
||||
;
|
||||
;userscontext=default
|
||||
;
|
||||
; If you need to have an external program, i.e. /usr/bin/myapp
|
||||
; called when a voicemail is left, delivered, or your voicemailbox
|
||||
; is checked, uncomment this.
|
||||
;externnotify=/usr/bin/myapp
|
||||
|
||||
; If you would also like to enable SMDI notification then set smdienable to yes.
|
||||
; You will also need to make sure smdiport is set to a valid port as specified in
|
||||
; smdi.conf.
|
||||
;smdienable=yes
|
||||
;smdiport=/dev/ttyS0
|
||||
|
||||
; If you need to have an external program, i.e. /usr/bin/myapp
|
||||
; called when a voicemail password is changed, uncomment this. The
|
||||
; arguments passed to the application are: <context> <mailbox> <newpassword>
|
||||
; Note: If this is set, the password will NOT be changed in voicemail.conf
|
||||
; If you would like to also change the password in voicemail.conf, use
|
||||
; the externpassnotify option below instead.
|
||||
;externpass=/usr/bin/myapp
|
||||
;externpassnotify=/usr/bin/myapp
|
||||
|
||||
; If you need to have an external program, i.e. /usr/bin/myapp
|
||||
; called when a user changes her voicemail password, uncomment this:
|
||||
;externpasscheck=/usr/bin/myapp
|
||||
; Arguments for this script are:
|
||||
; mailbox context oldpass newpass
|
||||
|
||||
; For the directory, you can override the intro file if you want
|
||||
;directoryintro=dir-intro
|
||||
; The character set for voicemail messages can be specified here
|
||||
;charset=ISO-8859-1
|
||||
; The ADSI feature descriptor number to download to
|
||||
;adsifdn=0000000F
|
||||
; The ADSI security lock code
|
||||
;adsisec=9BDBF7AC
|
||||
; The ADSI voicemail application version number.
|
||||
;adsiver=1
|
||||
; Skip the "[PBX]:" string from the message title
|
||||
;pbxskip=yes
|
||||
; Change the From: string
|
||||
;fromstring=The Asterisk PBX
|
||||
; Permit finding entries for forward/compose from the directory
|
||||
;usedirectory=yes
|
||||
; Voicemail can be stored in a database using the ODBC driver.
|
||||
; The value of odbcstorage is the database connection configured
|
||||
; in res_odbc.conf.
|
||||
;odbcstorage=asterisk
|
||||
; The default table for ODBC voicemail storage is voicemessages.
|
||||
;odbctable=voicemessages
|
||||
;
|
||||
; Change the from, body and/or subject, variables:
|
||||
; VM_NAME, VM_DUR, VM_MSGNUM, VM_MAILBOX, VM_CALLERID, VM_CIDNUM,
|
||||
; VM_CIDNAME, VM_DATE
|
||||
; Additionally, on forwarded messages, you have the variables:
|
||||
; ORIG_VM_CALLERID, ORIG_VM_CIDNUM, ORIG_VM_CIDNAME, ORIG_VM_DATE
|
||||
; You can select between two variables by using dialplan functions, e.g.
|
||||
; ${IF(${ISNULL(${ORIG_VM_DATE})}?${VM_DATE}:${ORIG_VM_DATE})}
|
||||
;
|
||||
; Note: The emailbody config row can only be up to 512 characters due to a
|
||||
; limitation in the Asterisk configuration subsystem.
|
||||
;emailsubject=[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX}
|
||||
; The following definition is very close to the default, but the default shows
|
||||
; just the CIDNAME, if it is not null, otherwise just the CIDNUM, or "an unknown
|
||||
; caller", if they are both null.
|
||||
;emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just left a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n
|
||||
;
|
||||
; Note: ${IF()} strips spacing at the beginning and end of its true and false
|
||||
; values, so a newline cannot be placed at either location. The word 'so' is
|
||||
; therefore duplicated, in order for the newline to be interpreted correctly.
|
||||
;emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just ${IF($["${VM_CIDNUM}" = "${ORIG_VM_CIDNUM}"]?left:forwarded)} a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE},\n${IF($["${VM_CIDNUM}" = "${ORIG_VM_CIDNUM}"]?so:(originally sent by ${ORIG_VM_CALLERID} on ${ORIG_VM_DATE})\nso)} you might want to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n
|
||||
;
|
||||
; You can also change the Pager From: string, the pager body and/or subject.
|
||||
; The above defined variables also can be used here
|
||||
;pagerfromstring=The Asterisk PBX
|
||||
;pagersubject=New VM
|
||||
;pagerbody=New ${VM_DUR} long msg in box ${VM_MAILBOX}\nfrom ${VM_CALLERID}, on ${VM_DATE}
|
||||
;
|
||||
; Set the date format on outgoing mails. Valid arguments can be found on the
|
||||
; strftime(3) man page
|
||||
;
|
||||
; Default
|
||||
emaildateformat=%A, %B %d, %Y at %r
|
||||
; 24h date format
|
||||
;emaildateformat=%A, %d %B %Y at %H:%M:%S
|
||||
;
|
||||
; You can override the default program to send e-mail if you wish, too
|
||||
;
|
||||
;mailcmd=/usr/sbin/sendmail -t
|
||||
;
|
||||
;pollmailboxes=no ; If mailboxes are changed anywhere outside of app_voicemail,
|
||||
; ; then this option must be enabled for MWI to work. This
|
||||
; ; enables polling mailboxes for changes. Normally, it will
|
||||
; ; expect that changes are only made when someone called in
|
||||
; ; to one of the voicemail applications.
|
||||
; ; Examples of situations that would require this option are
|
||||
; ; web interfaces to voicemail or an email client in the case
|
||||
; ; of using IMAP storage.
|
||||
;
|
||||
;pollfreq=30 ; If the "pollmailboxes" option is enabled, this option
|
||||
; ; sets the polling frequency. The default is once every
|
||||
; ; 30 seconds.
|
||||
; If using IMAP storage, specify whether voicemail greetings should be stored
|
||||
; via IMAP. If no, then greetings are stored as if IMAP storage were not enabled
|
||||
;imapgreetings=no
|
||||
; If imapgreetings=yes, then specify which folder to store your greetings in. If
|
||||
; you do not specify a folder, then INBOX will be used
|
||||
;greetingsfolder=INBOX
|
||||
; Some IMAP server implementations store folders under INBOX instead of
|
||||
; using a top level folder (ex. INBOX/Friends). In this case, user
|
||||
; imapparentfolder to set the parent folder. For example, Cyrus IMAP does
|
||||
; NOT use INBOX as the parent. Default is to have no parent folder set.
|
||||
;imapparentfolder=INBOX
|
||||
;
|
||||
;
|
||||
;
|
||||
; Each mailbox is listed in the form <mailbox>=<password>,<name>,<email>,<pager_email>,<options>
|
||||
; if the e-mail is specified, a message will be sent when a message is
|
||||
; received, to the given mailbox. If pager is specified, a message will be
|
||||
; sent there as well. If the password is prefixed by '-', then it is
|
||||
; considered to be unchangeable.
|
||||
;
|
||||
; Advanced options example is extension 4069
|
||||
; NOTE: All options can be expressed globally in the general section, and
|
||||
; overridden in the per-mailbox settings, unless listed otherwise.
|
||||
;
|
||||
; tz=central ; Timezone from zonemessages below. Irrelevant if envelope=no.
|
||||
; attach=yes ; Attach the voicemail to the notification email *NOT* the pager email
|
||||
; attachfmt=wav49 ; Which format to attach to the email. Normally this is the
|
||||
; first format specified in the format parameter above, but this
|
||||
; option lets you customize the format sent to particular mailboxes.
|
||||
; Useful if Windows users want wav49, but Linux users want gsm.
|
||||
; [per-mailbox only]
|
||||
; saycid=yes ; Say the caller id information before the message. If not described,
|
||||
; or set to no, it will be in the envelope
|
||||
; cidinternalcontexts=intern ; Internal Context for Name Playback instead of
|
||||
; extension digits when saying caller id.
|
||||
; sayduration=no ; Turn on/off the duration information before the message. [ON by default]
|
||||
; saydurationm=2 ; Specify the minimum duration to say. Default is 2 minutes
|
||||
; dialout=fromvm ; Context to dial out from [option 4 from mailbox's advanced menu].
|
||||
; If not specified, option 4 will not be listed and dialing out
|
||||
; from within VoiceMailMain() will not be permitted.
|
||||
sendvoicemail=yes ; Allow the user to compose and send a voicemail while inside
|
||||
; VoiceMailMain() [option 5 from mailbox's advanced menu].
|
||||
; If set to 'no', option 5 will not be listed.
|
||||
; searchcontexts=yes ; Current default behavior is to search only the default context
|
||||
; if one is not specified. The older behavior was to search all contexts.
|
||||
; This option restores the old behavior [DEFAULT=no]
|
||||
; Note: If you have this option enabled, then you will be required to have
|
||||
; unique mailbox names across all contexts. Otherwise, an ambiguity is created
|
||||
; since it is impossible to know which mailbox to retrieve when one is requested.
|
||||
; callback=fromvm ; Context to call back from
|
||||
; if not listed, calling the sender back will not be permitted
|
||||
; exitcontext=fromvm ; Context to go to on user exit such as * or 0
|
||||
; The default is the current context.
|
||||
; review=yes ; Allow sender to review/rerecord their message before saving it [OFF by default
|
||||
; operator=yes ; Allow sender to hit 0 before/after/during leaving a voicemail to
|
||||
; reach an operator. This option REQUIRES an 'o' extension in the
|
||||
; same context (or in exitcontext, if set), as that is where the
|
||||
; 0 key will send you. [OFF by default]
|
||||
; envelope=no ; Turn on/off envelope playback before message playback. [ON by default]
|
||||
; This does NOT affect option 3,3 from the advanced options menu
|
||||
; delete=yes ; After notification, the voicemail is deleted from the server. [per-mailbox only]
|
||||
; This is intended for use with users who wish to receive their
|
||||
; voicemail ONLY by email. Note: "deletevoicemail" is provided as an
|
||||
; equivalent option for Realtime configuration.
|
||||
; volgain=0.0 ; Emails bearing the voicemail may arrive in a volume too
|
||||
; quiet to be heard. This parameter allows you to specify how
|
||||
; much gain to add to the message when sending a voicemail.
|
||||
; NOTE: sox must be installed for this option to work.
|
||||
; nextaftercmd=yes ; Skips to the next message after hitting 7 or 9 to delete/save current message.
|
||||
; [global option only at this time]
|
||||
; forcename=yes ; Forces a new user to record their name. A new user is
|
||||
; determined by the password being the same as
|
||||
; the mailbox number. The default is "no".
|
||||
; forcegreetings=no ; This is the same as forcename, except for recording
|
||||
; greetings. The default is "no".
|
||||
; hidefromdir=yes ; Hide this mailbox from the directory produced by app_directory
|
||||
; The default is "no".
|
||||
; tempgreetwarn=yes ; Remind the user that their temporary greeting is set
|
||||
|
||||
;messagewrap=no ; Enable next/last message to wrap around to
|
||||
; first (from last) and last (from first) message
|
||||
; The default is "no".
|
||||
; minpassword=0 ; Enforce minimum password length
|
||||
|
||||
; vm-password=custom_sound
|
||||
; Customize which sound file is used instead of the default
|
||||
; prompt that says: "password"
|
||||
; vm-newpassword=custom_sound
|
||||
; Customize which sound file is used instead of the default
|
||||
; prompt that says: "Please enter your new password followed by
|
||||
; the pound key."
|
||||
; vm-passchanged=custom_sound
|
||||
; Customize which sound file is used instead of the default
|
||||
; prompt that says: "Your password has been changed."
|
||||
; vm-reenterpassword=custom_sound
|
||||
; Customize which sound file is used instead of the default
|
||||
; prompt that says: "Please re-enter your password followed by
|
||||
; the pound key"
|
||||
; vm-mismatch=custom_sound
|
||||
; Customize which sound file is used instead of the default
|
||||
; prompt that says: "The passwords you entered and re-entered
|
||||
; did not match."
|
||||
; vm-invalid-password=custom_sound
|
||||
; Customize which sound file is used instead of the default
|
||||
; prompt that says: ...
|
||||
; vm-pls-try-again=custom_sound
|
||||
; Customize which sound file is used instead of the
|
||||
; default prompt that says "Please try again."
|
||||
; listen-control-forward-key=# ; Customize the key that fast-forwards message playback
|
||||
; listen-control-reverse-key=* ; Customize the key that rewinds message playback
|
||||
; listen-control-pause-key=0 ; Customize the key that pauses/unpauses message playback
|
||||
; listen-control-restart-key=2 ; Customize the key that restarts message playback
|
||||
; listen-control-stop-key=13456789 ; Customize the keys that interrupt message playback, probably all keys not set above
|
||||
|
||||
; Maximum number of messages allowed in the 'Deleted' folder. If set to 0
|
||||
; or no then no deleted messages will be moved. If non-zero (max 9999) then up
|
||||
; to this number of messages will be automagically saved when they are
|
||||
; 'deleted' on a FIFO basis.
|
||||
; defaults to being off
|
||||
; backupdeleted=100
|
||||
|
||||
|
||||
[zonemessages]
|
||||
; Users may be located in different timezones, or may have different
|
||||
; message announcements for their introductory message when they enter
|
||||
; the voicemail system. Set the message and the timezone each user
|
||||
; hears here. Set the user into one of these zones with the tz= attribute
|
||||
; in the options field of the mailbox. Of course, language substitution
|
||||
; still applies here so you may have several directory trees that have
|
||||
; alternate language choices.
|
||||
;
|
||||
; Look in /usr/share/zoneinfo/ for names of timezones.
|
||||
; Look at the manual page for strftime for a quick tutorial on how the
|
||||
; variable substitution is done on the values below.
|
||||
;
|
||||
; Supported values:
|
||||
; 'filename' filename of a soundfile (single ticks around the filename
|
||||
; required)
|
||||
; ${VAR} variable substitution
|
||||
; A or a Day of week (Saturday, Sunday, ...)
|
||||
; B or b or h Month name (January, February, ...)
|
||||
; d or e numeric day of month (first, second, ..., thirty-first)
|
||||
; Y Year
|
||||
; I or l Hour, 12 hour clock
|
||||
; H Hour, 24 hour clock (single digit hours preceded by "oh")
|
||||
; k Hour, 24 hour clock (single digit hours NOT preceded by "oh")
|
||||
; M Minute, with 00 pronounced as "o'clock"
|
||||
; N Minute, with 00 pronounced as "hundred" (US military time)
|
||||
; P or p AM or PM
|
||||
; Q "today", "yesterday" or ABdY
|
||||
; (*note: not standard strftime value)
|
||||
; q "" (for today), "yesterday", weekday, or ABdY
|
||||
; (*note: not standard strftime value)
|
||||
; R 24 hour time, including minute
|
||||
;
|
||||
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
|
||||
central=America/Chicago|'vm-received' Q 'digits/at' IMp
|
||||
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
|
||||
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
|
||||
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM
|
||||
|
||||
|
||||
|
||||
[default]
|
||||
|
||||
1234 => 4242,Example Mailbox,root@localhost
|
||||
;4200 => 9855,Mark Spencer,markster@linux-support.net,mypager@digium.com,attach=no|serveremail=myaddy@digium.com|tz=central|maxmsg=10
|
||||
;4300 => 3456,Ben Rigas,ben@american-computer.net
|
||||
;4310 => -5432,Sales,sales@marko.net
|
||||
;4069 => 6522,Matt Brooks,matt@marko.net,,|tz=central|attach=yes|saycid=yes|dialout=fromvm|callback=fromvm|review=yes|operator=yes|envelope=yes|moveheard=yes|sayduration=yes|saydurationm=1
|
||||
;4073 => 1099,Bianca Paige,bianca@biancapaige.com,,delete=1|emailsubject=You have a new voicemail.|emailbody=Click on the attachment to listen.|rip=2010-06-04
|
||||
;4110 => 3443,Rob Flynn,rflynn@blueridge.net
|
||||
;4235 => 1234,Jim Holmes,jim@astricon.ips,,Tz=european
|
||||
|
||||
|
||||
;
|
||||
; Mailboxes may be organized into multiple contexts for
|
||||
; voicemail virtualhosting
|
||||
;
|
||||
|
||||
[other]
|
||||
;The intro can be customized on a per-context basis
|
||||
;directoryintro=dir-company2
|
||||
1234 => 5678,Company2 User,root@localhost
|
||||
|
||||
; example for our acme compartmentalized company
|
||||
;
|
||||
; Pete telecommutes from Chicago, so we'll customize timestamps for him.
|
||||
;
|
||||
;[acme]
|
||||
;111 => 7383,Pete,pete@acme-widgets.com,,tz=central
|
||||
;112 => 6262,Nancy,nancy@acme-widgets.com
|
||||
;
|
||||
|
||||
;
|
||||
; When using IMAP storage, imapuser and imappassword can be used to specify the
|
||||
; user's credentials.
|
||||
;
|
||||
;[imapvm]
|
||||
;4324 => 7764,Ellis Redding,red@buxton.us,,imapuser=eredding|imappassword=g3tbusy
|
||||
;4325 => 2392,Andrew Dufresne,andy@dufresne.info,,imapuser=adufresne|imappassword=rockh@mmer
|
248
asterisk/vpb.conf
Normal file
248
asterisk/vpb.conf
Normal file
@ -0,0 +1,248 @@
|
||||
;
|
||||
; Voicetronix Voice Processing Board (VPB) telephony interface
|
||||
;
|
||||
; Configuration file
|
||||
;
|
||||
|
||||
[general]
|
||||
;
|
||||
; Total number of Voicetronix cards in this machine
|
||||
;
|
||||
cards=0
|
||||
|
||||
;
|
||||
; Which indication functions to use
|
||||
; 1 = use Asterisk functions
|
||||
; 0 = use VPB functions
|
||||
;
|
||||
indication=1
|
||||
|
||||
;
|
||||
; Echo Canceller suppression threshold
|
||||
; 0 = no suppression threshold
|
||||
; 2048 = -18dB
|
||||
; 4096 = -24dB
|
||||
;
|
||||
;ecsuppthres=0
|
||||
|
||||
;
|
||||
; Inter-digit delay timeout, used when collecting DTMF tones for dialling
|
||||
; from a station port. Measured in milliseconds.
|
||||
;
|
||||
dtmfidd=3000
|
||||
|
||||
;
|
||||
; How to play DTMF tones
|
||||
; any value = use Asterisk functions
|
||||
; commented out = use VPB functions
|
||||
;
|
||||
;ast-dtmf=1
|
||||
|
||||
;
|
||||
; How to detect DTMF tones
|
||||
; any value = use Asterisk functions
|
||||
; commented out = use VPB functions
|
||||
;
|
||||
; NOTE: this setting is currently broken, and uncommenting it will
|
||||
; stop dialling from working. Any volunteers to fix it?
|
||||
;ast-dtmf-det=1
|
||||
|
||||
;
|
||||
; Use relaxed DTMF detection (ignored unless ast-dtmf-det is set)
|
||||
;
|
||||
relaxdtmf=1
|
||||
|
||||
;
|
||||
; When we do a native bridge between two VPB channels:
|
||||
; yes = only break the connection for '#' and '*'
|
||||
; no = break the connection for any DTMF
|
||||
;
|
||||
; NOTE: this is currently broken, and setting to no will segfault
|
||||
; Asterisk while dialling. Any volunteers to fix it?
|
||||
;
|
||||
break-for-dtmf=yes
|
||||
|
||||
;
|
||||
; The maximum period between received rings. Measures in milliseconds.
|
||||
;
|
||||
timer_period_ring=4000
|
||||
|
||||
|
||||
[interfaces]
|
||||
;
|
||||
; Default language
|
||||
;
|
||||
language=en
|
||||
|
||||
;
|
||||
; Default context
|
||||
;
|
||||
context=default
|
||||
|
||||
;
|
||||
; Echo cancellation
|
||||
; off = no not use echo cancellation
|
||||
; on = use echo cancellation
|
||||
;
|
||||
echocancel=off
|
||||
|
||||
;
|
||||
; Caller ID routines/signalling
|
||||
; For FXO ports, select one of:
|
||||
; on = collect caller ID between 1st/2nd rings using VPB routines
|
||||
; off = do not use caller ID
|
||||
; bell = bell202 as used in US, using Asterisk's caller ID routines
|
||||
; v23 = v23 as used in the UK, using Asterisk's caller ID routines
|
||||
; For FXS ports, set the channel's CID in '"name" <number>' format
|
||||
;
|
||||
; NOTE that other caller ID standards are supported in Asterisk, but are
|
||||
; not yet active in chan_vpb. It should be reasonably trivial to add
|
||||
; support for the other standards (see the default chan_dahdi.conf for a
|
||||
; list of them) that Asterisk already handles.
|
||||
;
|
||||
callerid=bell
|
||||
|
||||
;
|
||||
; Use a polarity reversal as the trigger for the start of caller ID,
|
||||
; rather than triggering after the first ring.
|
||||
;
|
||||
usepolaritycid=0
|
||||
|
||||
;
|
||||
; Use loop drop to detect the end of a call. On by default, but if you
|
||||
; experience unexpected hangups, try turning it off.
|
||||
;
|
||||
useloopdrop=1
|
||||
|
||||
;
|
||||
; Use in-kernel bridging. This will generally give lower delay audio if
|
||||
; bridging between two VPB channels. It will not affect bridging
|
||||
; between VPB channels and other technologies.
|
||||
;
|
||||
usenativebridge=1
|
||||
|
||||
;
|
||||
; Software transmit and receive gain. Adjusting these will change the
|
||||
; volume of audio files that are played (tx) and recorded (rx). It will
|
||||
; _not_ affect audio between channels in a native bridge. It will,
|
||||
; however, affect the volume of audio between VPB channels and channels
|
||||
; using other technologies (such as VoIP channels). Usually it's best to
|
||||
; leave these as they are. If you're looking to get rid of echo, the
|
||||
; first thing to do is match your line impedance with the bal1/bal2/bal3
|
||||
; settings.
|
||||
;
|
||||
;txgain=0.0
|
||||
;rxgain=0.0
|
||||
|
||||
;
|
||||
; Hardware transmit and receive gain. Adjusting these will change the
|
||||
; volume of all audio on a channel. The allowed range of settings is
|
||||
; -12.0 to 12.0 (measured in dB).
|
||||
;
|
||||
;txhwgain=0.0
|
||||
;rxhwgain=0.0
|
||||
|
||||
;
|
||||
; Balance register settings, for matching the impedance of the card to
|
||||
; that of the connected equipment. Only relevant for OpenLine and
|
||||
; OpenSwitch series cards. Values should be in the range 0 - 255.
|
||||
;
|
||||
; We (Voicetronix) have determined the best codec balance values for
|
||||
; standard interfaces based on their US, Australian and European
|
||||
; specifications, shown below.
|
||||
;
|
||||
; US (600 ohm)
|
||||
;bal1=0xf8
|
||||
;bal2=0x1a
|
||||
;bal3=0x0c
|
||||
;
|
||||
; Australia (complex impedance)
|
||||
;bal1=0xf0
|
||||
;bal2=0x5d
|
||||
;bal3=0x79
|
||||
;
|
||||
; Europe (CTR-21)
|
||||
;bal1=0xf0
|
||||
;bal2=0x6e
|
||||
;bal3=0x75
|
||||
|
||||
;
|
||||
; Logical groups can be assigned to allow outgoing rollover. Groups range
|
||||
; from 0 to 63, and multiple groups can be specified.
|
||||
;
|
||||
group=1
|
||||
|
||||
;
|
||||
; Ring groups (a.k.a. call groups) and pickup groups. If a phone is
|
||||
; ringing and it is a member of a group which is one of your pickup
|
||||
; groups, then you can answer it by picking up and dialling *8#. For
|
||||
; simple offices, just make these both the same. Groups range from 0 to
|
||||
; 63.
|
||||
;
|
||||
callgroup=1
|
||||
pickupgroup=1
|
||||
|
||||
;
|
||||
; If we haven't had a "grunt" (voice activity detection) for this many
|
||||
; seconds, then we hang up the line due to inactivity. Default is one
|
||||
; hour.
|
||||
;
|
||||
grunttimeout=3600
|
||||
|
||||
;
|
||||
; Type of line and line handling. This setting will usually be overridden
|
||||
; on a per channel basis. Valid settings are:
|
||||
; fxo = this is an FXO port
|
||||
; immediate = this is an FXS port, with no dialtone or dialling
|
||||
; required (ie it is a "hotline")
|
||||
; dialtone = this is an FXS port, providing dialtone and dialling
|
||||
;
|
||||
mode=immediate
|
||||
|
||||
;-------------------------------------------------------------------------
|
||||
; Channel definitions
|
||||
;
|
||||
; Each channel inherits the settings specified above, unless the are
|
||||
; overridden. As a minimum, the board number and channel number must be
|
||||
; set, starting from 0 for the first board, and for the channels on each
|
||||
; board. For example, board 0, channels 0 to 11, then board 1, channels
|
||||
; 0 to 11 for two OpenSwitch12 cards.
|
||||
;
|
||||
|
||||
;
|
||||
; First board is an OpenSwitch12 card (jumpers at factory defaults)
|
||||
;
|
||||
;board=0
|
||||
;
|
||||
;mode=dialtone
|
||||
;context=from-handset
|
||||
;group=1
|
||||
;channel=0
|
||||
;channel=1
|
||||
;channel=2
|
||||
;channel=3
|
||||
;channel=4
|
||||
;channel=5
|
||||
;channel=6
|
||||
;channel=7
|
||||
;
|
||||
;mode=fxo
|
||||
;context=from-pstn
|
||||
;group=2
|
||||
;channel=8
|
||||
;channel=9
|
||||
;channel=10
|
||||
;channel=11
|
||||
|
||||
;
|
||||
; Second board is an OpenLine4
|
||||
;
|
||||
;board=1
|
||||
;
|
||||
;mode=fxo
|
||||
;group=2
|
||||
;context=from-pstn
|
||||
;channel=0
|
||||
;channel=1
|
||||
;channel=2
|
||||
;channel=3
|
15
docker-compose.yml
Normal file
15
docker-compose.yml
Normal file
@ -0,0 +1,15 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
asterisk:
|
||||
image: onenetcom/asterisk
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
ASTERISK_USER: asterisk
|
||||
volumes:
|
||||
- ./asterisk:/etc/asterisk
|
||||
- ./logs:/var/log/asterisk
|
||||
network_mode: host
|
||||
|
||||
|
||||
|
0
logs/event_log
Normal file
0
logs/event_log
Normal file
30
logs/h323_log
Normal file
30
logs/h323_log
Normal file
@ -0,0 +1,30 @@
|
||||
---------Date 01/18/2023---------
|
||||
14:50:54:617 Signalling IP address is set to 0.0.0.0
|
||||
14:50:54:617 Listen port number is set to 1720
|
||||
14:50:54:617 Added alias: DialedDigits - 100
|
||||
14:50:54:617 Added alias: H323ID - ObjSysAsterisk
|
||||
14:50:54:617 Added alias: DialedDigits - 12345
|
||||
14:50:54:617 Added alias: DialedDigits - 101
|
||||
14:50:54:617 Adding endpoint capability OO_G711ULAW64K.
|
||||
14:50:54:617 Enabled RFC2833 DTMF capability for end-point
|
||||
14:50:54:617 H323 listener creation - successful
|
||||
14:50:54:617 H.323 Endpoint Configuration is as follows:
|
||||
14:50:54:617 Trace File: /var/log/asterisk/h323_log
|
||||
14:50:54:617 FastStart - enabled
|
||||
14:50:54:617 H245 Tunneling - enabled
|
||||
14:50:54:617 MediaWaitForConnect - disabled
|
||||
14:50:54:617 AutoAnswer - disabled
|
||||
14:50:54:617 Terminal Type - 50
|
||||
14:50:54:617 T35 CountryCode - 1
|
||||
14:50:54:617 T35 Extension - 0
|
||||
14:50:54:617 Manufacturer Code - 71
|
||||
14:50:54:617 ProductID - objsys
|
||||
14:50:54:617 VersionID - v0.8.3
|
||||
14:50:54:617 Local signalling IP address - 0.0.0.0
|
||||
14:50:54:617 H225 ListenPort - 1720
|
||||
14:50:54:617 CallerID - asterisk
|
||||
14:50:54:617 Call Establishment Timeout - 60 seconds
|
||||
14:50:54:617 MasterSlaveDetermination Timeout - 30 seconds
|
||||
14:50:54:617 TerminalCapabilityExchange Timeout - 30 seconds
|
||||
14:50:54:617 LogicalChannel Timeout - 30 seconds
|
||||
14:50:54:617 Session Timeout - 15 seconds
|
BIN
logs/master.db
Normal file
BIN
logs/master.db
Normal file
Binary file not shown.
170
logs/messages
Normal file
170
logs/messages
Normal file
@ -0,0 +1,170 @@
|
||||
[Jan 18 12:38:01] NOTICE[1] cdr.c: CDR simple logging enabled.
|
||||
[Jan 18 12:38:01] NOTICE[1] loader.c: 167 modules will be loaded.
|
||||
[Jan 18 12:38:01] NOTICE[1] res_smdi.c: No SMDI interfaces are available to listen on, not starting SMDI listener.
|
||||
[Jan 18 12:38:01] WARNING[1] utils.c: trying to reset empty pool
|
||||
[Jan 18 12:38:01] WARNING[1] utils.c: trying to reset empty pool
|
||||
[Jan 18 12:38:01] WARNING[1] utils.c: trying to reset empty pool
|
||||
[Jan 18 12:38:01] NOTICE[1] pbx_ael.c: Starting AEL load process.
|
||||
[Jan 18 12:38:01] NOTICE[1] pbx_ael.c: AEL load process: parsed config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:38:01] NOTICE[1] pbx_ael.c: AEL load process: checked config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:38:01] NOTICE[1] pbx_ael.c: AEL load process: compiled config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:38:01] NOTICE[1] pbx_ael.c: AEL load process: merged config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:38:01] NOTICE[1] pbx_ael.c: AEL load process: verified config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:38:01] NOTICE[1] chan_ooh323.c: ---------------------------------------------------------------------------------
|
||||
--- ******* IMPORTANT NOTE ***********
|
||||
---
|
||||
--- This module is currently unsupported. Use it at your own risk.
|
||||
---
|
||||
---------------------------------------------------------------------------------
|
||||
[Jan 18 12:38:01] WARNING[1] res_musiconhold.c: No music on hold classes configured, disabling music on hold.
|
||||
[Jan 18 12:38:01] NOTICE[1] chan_skinny.c: Configuring skinny from skinny.conf
|
||||
[Jan 18 12:38:09] NOTICE[1] cdr.c: CDR simple logging enabled.
|
||||
[Jan 18 12:38:09] NOTICE[1] loader.c: 167 modules will be loaded.
|
||||
[Jan 18 12:38:09] NOTICE[1] res_smdi.c: No SMDI interfaces are available to listen on, not starting SMDI listener.
|
||||
[Jan 18 12:38:09] WARNING[1] utils.c: trying to reset empty pool
|
||||
[Jan 18 12:38:09] WARNING[1] utils.c: trying to reset empty pool
|
||||
[Jan 18 12:38:09] WARNING[1] utils.c: trying to reset empty pool
|
||||
[Jan 18 12:38:09] NOTICE[1] pbx_ael.c: Starting AEL load process.
|
||||
[Jan 18 12:38:09] NOTICE[1] pbx_ael.c: AEL load process: parsed config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:38:09] NOTICE[1] pbx_ael.c: AEL load process: checked config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:38:09] NOTICE[1] pbx_ael.c: AEL load process: compiled config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:38:09] NOTICE[1] pbx_ael.c: AEL load process: merged config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:38:09] NOTICE[1] pbx_ael.c: AEL load process: verified config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:38:09] NOTICE[1] chan_ooh323.c: ---------------------------------------------------------------------------------
|
||||
--- ******* IMPORTANT NOTE ***********
|
||||
---
|
||||
--- This module is currently unsupported. Use it at your own risk.
|
||||
---
|
||||
---------------------------------------------------------------------------------
|
||||
[Jan 18 12:38:09] WARNING[1] res_musiconhold.c: No music on hold classes configured, disabling music on hold.
|
||||
[Jan 18 12:38:09] NOTICE[1] chan_skinny.c: Configuring skinny from skinny.conf
|
||||
[Jan 18 12:43:31] NOTICE[1] cdr.c: CDR simple logging enabled.
|
||||
[Jan 18 12:43:31] NOTICE[1] loader.c: 167 modules will be loaded.
|
||||
[Jan 18 12:43:31] NOTICE[1] res_smdi.c: No SMDI interfaces are available to listen on, not starting SMDI listener.
|
||||
[Jan 18 12:43:31] WARNING[1] utils.c: trying to reset empty pool
|
||||
[Jan 18 12:43:31] WARNING[1] utils.c: trying to reset empty pool
|
||||
[Jan 18 12:43:31] WARNING[1] utils.c: trying to reset empty pool
|
||||
[Jan 18 12:43:31] NOTICE[1] pbx_ael.c: Starting AEL load process.
|
||||
[Jan 18 12:43:31] NOTICE[1] pbx_ael.c: AEL load process: parsed config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:43:31] NOTICE[1] pbx_ael.c: AEL load process: checked config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:43:31] NOTICE[1] pbx_ael.c: AEL load process: compiled config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:43:31] NOTICE[1] pbx_ael.c: AEL load process: merged config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:43:31] NOTICE[1] pbx_ael.c: AEL load process: verified config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 12:43:31] NOTICE[1] chan_ooh323.c: ---------------------------------------------------------------------------------
|
||||
--- ******* IMPORTANT NOTE ***********
|
||||
---
|
||||
--- This module is currently unsupported. Use it at your own risk.
|
||||
---
|
||||
---------------------------------------------------------------------------------
|
||||
[Jan 18 12:43:31] WARNING[1] res_musiconhold.c: No music on hold classes configured, disabling music on hold.
|
||||
[Jan 18 12:43:31] NOTICE[1] chan_skinny.c: Configuring skinny from skinny.conf
|
||||
[Jan 18 14:28:20] Asterisk 18.11.2 built by buildozer @ build-3-16-x86_64 on a x86_64 running Linux on 2022-04-28 07:42:40 UTC
|
||||
[Jan 18 14:28:20] NOTICE[1] loader.c: 313 modules will be loaded.
|
||||
[Jan 18 14:28:20] NOTICE[1] cdr.c: CDR simple logging enabled.
|
||||
[Jan 18 14:28:20] ERROR[36] res_pjsip/config_system.c: There are no local system nameservers configured, resorting to system resolution
|
||||
[Jan 18 14:28:20] ERROR[36] res_pjsip/config_system.c: There are no local system nameservers configured, resorting to system resolution
|
||||
[Jan 18 14:28:20] ERROR[1] file.c: Error opening directory - /var/lib/asterisk/moh: No such file or directory
|
||||
[Jan 18 14:28:20] WARNING[1] res_musiconhold.c: No music on hold classes configured, disabling music on hold.
|
||||
[Jan 18 14:28:20] WARNING[1] res_phoneprov.c: Unable to find a valid server address or name.
|
||||
[Jan 18 14:28:20] NOTICE[1] res_smdi.c: No SMDI interfaces are available to listen on, not starting SMDI listener.
|
||||
[Jan 18 14:28:20] NOTICE[1] chan_skinny.c: Configuring skinny from skinny.conf
|
||||
[Jan 18 14:28:20] ERROR[1] ari/config.c: No configured users for ARI
|
||||
[Jan 18 14:28:20] NOTICE[1] confbridge/conf_config_parser.c: Adding default_menu menu to app_confbridge
|
||||
[Jan 18 14:28:20] NOTICE[1] cel_custom.c: No mappings found in cel_custom.conf. Not logging CEL to custom CSVs.
|
||||
[Jan 18 14:28:20] WARNING[1] pbx.c: Context 'local' tries to include nonexistent context 'iaxtel700'
|
||||
[Jan 18 14:28:20] WARNING[1] loader.c: Some non-required modules failed to load.
|
||||
[Jan 18 14:28:20] WARNING[1] loader.c: The deprecated module 'res_monitor.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:20] WARNING[1] loader.c: The deprecated module 'res_adsi.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:20] WARNING[1] loader.c: The deprecated module 'app_nbscat.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:20] WARNING[1] loader.c: The deprecated module 'app_getcpeid.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:20] WARNING[1] loader.c: The deprecated module 'app_adsiprog.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:20] WARNING[1] loader.c: The deprecated module 'chan_oss.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:20] WARNING[1] loader.c: The deprecated module 'app_url.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:20] WARNING[1] loader.c: The deprecated module 'app_image.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:20] WARNING[1] loader.c: The deprecated module 'app_ices.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:20] ERROR[1] loader.c: Failed to resolve dependencies for res_stir_shaken
|
||||
[Jan 18 14:28:20] ERROR[1] loader.c: res_stir_shaken declined to load.
|
||||
[Jan 18 14:28:20] ERROR[1] loader.c: cel_sqlite3_custom declined to load.
|
||||
[Jan 18 14:28:20] ERROR[1] loader.c: cdr_sqlite3_custom declined to load.
|
||||
[Jan 18 14:28:20] ERROR[1] loader.c: Failed to resolve dependencies for res_http_media_cache
|
||||
[Jan 18 14:28:20] ERROR[1] loader.c: res_http_media_cache declined to load.
|
||||
[Jan 18 14:28:20] ERROR[1] loader.c: Failed to resolve dependencies for res_pjsip_stir_shaken
|
||||
[Jan 18 14:28:20] ERROR[1] loader.c: res_pjsip_stir_shaken declined to load.
|
||||
[Jan 18 14:28:31] Asterisk 18.11.2 built by buildozer @ build-3-16-x86_64 on a x86_64 running Linux on 2022-04-28 07:42:40 UTC
|
||||
[Jan 18 14:28:31] NOTICE[1] loader.c: 313 modules will be loaded.
|
||||
[Jan 18 14:28:31] NOTICE[1] cdr.c: CDR simple logging enabled.
|
||||
[Jan 18 14:28:31] ERROR[36] res_pjsip/config_system.c: There are no local system nameservers configured, resorting to system resolution
|
||||
[Jan 18 14:28:31] ERROR[36] res_pjsip/config_system.c: There are no local system nameservers configured, resorting to system resolution
|
||||
[Jan 18 14:28:31] ERROR[1] file.c: Error opening directory - /var/lib/asterisk/moh: No such file or directory
|
||||
[Jan 18 14:28:31] WARNING[1] res_musiconhold.c: No music on hold classes configured, disabling music on hold.
|
||||
[Jan 18 14:28:31] WARNING[1] res_phoneprov.c: Unable to find a valid server address or name.
|
||||
[Jan 18 14:28:31] NOTICE[1] res_smdi.c: No SMDI interfaces are available to listen on, not starting SMDI listener.
|
||||
[Jan 18 14:28:31] NOTICE[1] chan_skinny.c: Configuring skinny from skinny.conf
|
||||
[Jan 18 14:28:31] ERROR[1] ari/config.c: No configured users for ARI
|
||||
[Jan 18 14:28:31] NOTICE[1] confbridge/conf_config_parser.c: Adding default_menu menu to app_confbridge
|
||||
[Jan 18 14:28:31] NOTICE[1] cel_custom.c: No mappings found in cel_custom.conf. Not logging CEL to custom CSVs.
|
||||
[Jan 18 14:28:31] WARNING[1] pbx.c: Context 'local' tries to include nonexistent context 'iaxtel700'
|
||||
[Jan 18 14:28:31] WARNING[1] loader.c: Some non-required modules failed to load.
|
||||
[Jan 18 14:28:31] WARNING[1] loader.c: The deprecated module 'res_monitor.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:31] WARNING[1] loader.c: The deprecated module 'res_adsi.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:31] WARNING[1] loader.c: The deprecated module 'app_nbscat.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:31] WARNING[1] loader.c: The deprecated module 'app_getcpeid.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:31] WARNING[1] loader.c: The deprecated module 'app_adsiprog.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:31] WARNING[1] loader.c: The deprecated module 'chan_oss.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:31] WARNING[1] loader.c: The deprecated module 'app_url.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:31] WARNING[1] loader.c: The deprecated module 'app_image.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:31] WARNING[1] loader.c: The deprecated module 'app_ices.so' has been loaded and is running, it may be removed in a future version
|
||||
[Jan 18 14:28:31] ERROR[1] loader.c: Failed to resolve dependencies for res_stir_shaken
|
||||
[Jan 18 14:28:31] ERROR[1] loader.c: res_stir_shaken declined to load.
|
||||
[Jan 18 14:28:31] ERROR[1] loader.c: cel_sqlite3_custom declined to load.
|
||||
[Jan 18 14:28:31] ERROR[1] loader.c: cdr_sqlite3_custom declined to load.
|
||||
[Jan 18 14:28:31] ERROR[1] loader.c: Failed to resolve dependencies for res_http_media_cache
|
||||
[Jan 18 14:28:31] ERROR[1] loader.c: res_http_media_cache declined to load.
|
||||
[Jan 18 14:28:31] ERROR[1] loader.c: Failed to resolve dependencies for res_pjsip_stir_shaken
|
||||
[Jan 18 14:28:31] ERROR[1] loader.c: res_pjsip_stir_shaken declined to load.
|
||||
[Jan 18 14:33:10] NOTICE[1] cdr.c: CDR simple logging enabled.
|
||||
[Jan 18 14:33:10] NOTICE[1] loader.c: 198 modules will be loaded.
|
||||
[Jan 18 14:33:10] NOTICE[1] res_odbc.c: res_odbc loaded.
|
||||
[Jan 18 14:33:10] NOTICE[1] res_smdi.c: No SMDI interfaces are available to listen on, not starting SMDI listener.
|
||||
[Jan 18 14:33:10] NOTICE[1] config.c: Registered Config Engine curl
|
||||
[Jan 18 14:33:10] NOTICE[1] config.c: Registered Config Engine odbc
|
||||
[Jan 18 14:33:10] NOTICE[1] chan_skinny.c: Configuring skinny from skinny.conf
|
||||
[Jan 18 14:33:10] NOTICE[1] pbx_ael.c: Starting AEL load process.
|
||||
[Jan 18 14:33:10] NOTICE[1] pbx_ael.c: AEL load process: parsed config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:33:10] NOTICE[1] pbx_ael.c: AEL load process: checked config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:33:10] NOTICE[1] pbx_ael.c: AEL load process: compiled config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:33:10] NOTICE[1] pbx_ael.c: AEL load process: merged config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:33:10] NOTICE[1] pbx_ael.c: AEL load process: verified config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:33:47] NOTICE[1] cdr.c: CDR simple logging enabled.
|
||||
[Jan 18 14:33:47] NOTICE[1] loader.c: 198 modules will be loaded.
|
||||
[Jan 18 14:33:47] NOTICE[1] res_odbc.c: res_odbc loaded.
|
||||
[Jan 18 14:33:47] NOTICE[1] res_smdi.c: No SMDI interfaces are available to listen on, not starting SMDI listener.
|
||||
[Jan 18 14:33:47] NOTICE[1] config.c: Registered Config Engine curl
|
||||
[Jan 18 14:33:47] NOTICE[1] config.c: Registered Config Engine odbc
|
||||
[Jan 18 14:33:47] NOTICE[1] chan_skinny.c: Configuring skinny from skinny.conf
|
||||
[Jan 18 14:33:47] NOTICE[1] pbx_ael.c: Starting AEL load process.
|
||||
[Jan 18 14:33:47] NOTICE[1] pbx_ael.c: AEL load process: parsed config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:33:47] NOTICE[1] pbx_ael.c: AEL load process: checked config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:33:47] NOTICE[1] pbx_ael.c: AEL load process: compiled config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:33:47] NOTICE[1] pbx_ael.c: AEL load process: merged config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:33:47] NOTICE[1] pbx_ael.c: AEL load process: verified config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:50:54] NOTICE[1] cdr.c: CDR simple logging enabled.
|
||||
[Jan 18 14:50:54] NOTICE[1] loader.c: 167 modules will be loaded.
|
||||
[Jan 18 14:50:54] NOTICE[1] res_smdi.c: No SMDI interfaces are available to listen on, not starting SMDI listener.
|
||||
[Jan 18 14:50:54] WARNING[1] utils.c: trying to reset empty pool
|
||||
[Jan 18 14:50:54] WARNING[1] utils.c: trying to reset empty pool
|
||||
[Jan 18 14:50:54] WARNING[1] utils.c: trying to reset empty pool
|
||||
[Jan 18 14:50:54] NOTICE[1] pbx_ael.c: Starting AEL load process.
|
||||
[Jan 18 14:50:54] NOTICE[1] pbx_ael.c: AEL load process: parsed config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:50:54] NOTICE[1] pbx_ael.c: AEL load process: checked config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:50:54] NOTICE[1] pbx_ael.c: AEL load process: compiled config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:50:54] NOTICE[1] pbx_ael.c: AEL load process: merged config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:50:54] NOTICE[1] pbx_ael.c: AEL load process: verified config file name '/etc/asterisk/extensions.ael'.
|
||||
[Jan 18 14:50:54] NOTICE[1] chan_ooh323.c: ---------------------------------------------------------------------------------
|
||||
--- ******* IMPORTANT NOTE ***********
|
||||
---
|
||||
--- This module is currently unsupported. Use it at your own risk.
|
||||
---
|
||||
---------------------------------------------------------------------------------
|
||||
[Jan 18 14:50:54] WARNING[1] res_musiconhold.c: No music on hold classes configured, disabling music on hold.
|
||||
[Jan 18 14:50:54] NOTICE[1] chan_skinny.c: Configuring skinny from skinny.conf
|
8
logs/queue_log
Normal file
8
logs/queue_log
Normal file
@ -0,0 +1,8 @@
|
||||
1674045443|NONE|NONE|NONE|QUEUESTART|
|
||||
1674045481|NONE|NONE|NONE|QUEUESTART|
|
||||
1674045489|NONE|NONE|NONE|QUEUESTART|
|
||||
1674045811|NONE|NONE|NONE|QUEUESTART|
|
||||
1674052100|NONE|NONE|NONE|QUEUESTART|
|
||||
1674052111|NONE|NONE|NONE|QUEUESTART|
|
||||
1674053281|NONE|NONE|NONE|QUEUESTART|
|
||||
1674053454|NONE|NONE|NONE|QUEUESTART|
|
Loading…
Reference in New Issue
Block a user