first commit

This commit is contained in:
zhongjin 2023-01-18 23:39:46 +08:00
commit e227262c43
91 changed files with 12946 additions and 0 deletions

8
asterisk/adsi.conf Normal file
View 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
View 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
View 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
View 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
;

View 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
View 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
View 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
View 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
View 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
View 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

View 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
View 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
View 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
View 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
View 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
View 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

View 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
View 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

File diff suppressed because it is too large Load Diff

12
asterisk/cli.conf Normal file
View 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
View 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.

View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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;
};
}

View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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

View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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

File diff suppressed because it is too large Load Diff

43
asterisk/sip_notify.conf Normal file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View File

30
logs/h323_log Normal file
View 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

Binary file not shown.

170
logs/messages Normal file
View 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
View 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|