committing changes in /etc after emerge run
Package changes: +net-misc/asterisk-11.17.1
This commit is contained in:
parent
06946fa9d5
commit
ed9a74dd0e
0
asterisk/.keep_net-misc_asterisk-0
Normal file
0
asterisk/.keep_net-misc_asterisk-0
Normal file
80
asterisk/acl.conf
Normal file
80
asterisk/acl.conf
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
;
|
||||||
|
; Named Access Control Lists (ACLs)
|
||||||
|
;
|
||||||
|
; A convenient way to share acl definitions
|
||||||
|
;
|
||||||
|
; This configuration file is read on startup
|
||||||
|
;
|
||||||
|
; CLI Commands
|
||||||
|
; -----------------------------------------------------------
|
||||||
|
; acl show Show all named ACLs configured
|
||||||
|
; acl show <name> Show contents of a particular named ACL
|
||||||
|
; reload acl Reload configuration file
|
||||||
|
;
|
||||||
|
; Any configuration that uses ACLs which has been made to be able to use named
|
||||||
|
; ACLs will specify a named ACL with the 'acl' option in its configuration in
|
||||||
|
; a similar fashion to the usual 'permit' and 'deny' options. Example:
|
||||||
|
; acl=my_named_acl
|
||||||
|
;
|
||||||
|
; Multiple named ACLs can be applied by either comma separating the arguments or
|
||||||
|
; just by adding additional ACL lines. Example:
|
||||||
|
; acl=my_named_acl
|
||||||
|
; acl=my_named_acl2
|
||||||
|
;
|
||||||
|
; or
|
||||||
|
;
|
||||||
|
; acl=my_named_acl,my_named_acl2
|
||||||
|
;
|
||||||
|
; ACLs specified by name are evaluated independently from the ACL specified via
|
||||||
|
; permit/deny. In order for an address to pass a given ACL, it must pass both
|
||||||
|
; the ACL specified by permit/deny for a given item as well as any named ACLs
|
||||||
|
; that were specified.
|
||||||
|
;
|
||||||
|
;[example_named_acl1]
|
||||||
|
;deny=0.0.0.0/0.0.0.0
|
||||||
|
;permit=209.16.236.0
|
||||||
|
;permit=209.16.236.1
|
||||||
|
;
|
||||||
|
;[example_named_acl2]
|
||||||
|
;permit=0.0.0.0/0.0.0.0
|
||||||
|
;deny=10.24.20.171
|
||||||
|
;deny=10.24.20.103
|
||||||
|
;deny=209.16.236.1
|
||||||
|
;
|
||||||
|
; example_named_acl1 above shows an example of whitelisting. When whitelisting, the
|
||||||
|
; named ACLs should follow a deny that blocks everything (like deny=0.0.0.0/0.0.0.0)
|
||||||
|
; The following example explains how combining the ACLs works:
|
||||||
|
; <in another configuration>
|
||||||
|
; [example_item_with_acl]
|
||||||
|
; acl=example_named_acl1
|
||||||
|
; acl=example_named_acl2
|
||||||
|
;
|
||||||
|
; Suppose 209.16.236.0 tries to communicate and the ACL for that example is applied to it...
|
||||||
|
; First, example_named_acl1 is evaluated. The address is allowed by that ACL.
|
||||||
|
; Next, example_named_acl2 is evaluated. The address isn't blocked by example_named_acl2
|
||||||
|
; either, so it passes.
|
||||||
|
;
|
||||||
|
; Suppose instead 209.16.236.1 tries to communicate and the same ACL is applied.
|
||||||
|
; First, example_named_acl1 is evaluated and the address is allowed.
|
||||||
|
; However, it is blocked by example_named_acl2, so the address is blocked from the combined
|
||||||
|
; ACL.
|
||||||
|
;
|
||||||
|
; Similarly, the permits/denies in specific configurations that make up an ACL definition
|
||||||
|
; are also treated as a separate ACL for evaluation. So if we change the example above to:
|
||||||
|
; <in another configuration>
|
||||||
|
; [example_item_with_acl]
|
||||||
|
; acl=example_named_acl1
|
||||||
|
; acl=example_named_acl2
|
||||||
|
; deny=209.16.236.0
|
||||||
|
;
|
||||||
|
; Then 209.16.236.0 will be rejected by the non-named component of the combined ACL even
|
||||||
|
; though it passes the two named components.
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; Named ACLs can use ipv6 addresses just like normal ACLs.
|
||||||
|
;[ipv6_example_1]
|
||||||
|
;deny = ::
|
||||||
|
;permit = ::1/128
|
||||||
|
;
|
||||||
|
;[ipv6_example_2]
|
||||||
|
;permit = fe80::21d:bad:fad:2323
|
8
asterisk/adsi.conf
Normal file
8
asterisk/adsi.conf
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
;
|
||||||
|
; Sample ADSI Configuration file
|
||||||
|
;
|
||||||
|
[intro]
|
||||||
|
alignment = center
|
||||||
|
greeting => Welcome to the
|
||||||
|
greeting => Asterisk
|
||||||
|
greeting => Open Source PBX
|
97
asterisk/agents.conf
Normal file
97
asterisk/agents.conf
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
;
|
||||||
|
; Agent configuration
|
||||||
|
;
|
||||||
|
|
||||||
|
[general]
|
||||||
|
|
||||||
|
[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
|
||||||
|
; a logged-in agent receives a call. Default is "no".
|
||||||
|
; 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 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
|
80
asterisk/alarmreceiver.conf
Normal file
80
asterisk/alarmreceiver.conf
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
;
|
||||||
|
; alarmreceiver.conf
|
||||||
|
;
|
||||||
|
; Sample configuration file for the Asterisk alarm receiver application.
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
[general]
|
||||||
|
|
||||||
|
;
|
||||||
|
; Specify a timestamp format for the metadata section of the event files
|
||||||
|
; Default is %a %b %d, %Y @ %H:%M:%S %Z
|
||||||
|
|
||||||
|
timestampformat = %a %b %d, %Y @ %H:%M:%S %Z
|
||||||
|
|
||||||
|
;
|
||||||
|
; Specify a command to execute when the caller hangs up
|
||||||
|
;
|
||||||
|
; Default is none
|
||||||
|
;
|
||||||
|
|
||||||
|
;eventcmd = yourprogram -yourargs ...
|
||||||
|
|
||||||
|
;
|
||||||
|
; Specify a spool directory for the event files. This setting is required
|
||||||
|
; if you want the app to be useful. Event files written to the spool
|
||||||
|
; directory will be of the template event-XXXXXX, where XXXXXX is a random
|
||||||
|
; and unique alphanumeric string.
|
||||||
|
;
|
||||||
|
; Default is none, and the events will be dropped on the floor.
|
||||||
|
;
|
||||||
|
|
||||||
|
eventspooldir = /tmp
|
||||||
|
|
||||||
|
;
|
||||||
|
; The alarmreceiver app can either log the events one-at-a-time to individual
|
||||||
|
; files in the spool directory, or it can store them until the caller
|
||||||
|
; disconnects and write them all to one file.
|
||||||
|
;
|
||||||
|
; The default setting for logindividualevents is no.
|
||||||
|
;
|
||||||
|
|
||||||
|
logindividualevents = no
|
||||||
|
|
||||||
|
;
|
||||||
|
; The timeout for receiving the first DTMF digit is adjustable from 1000 msec.
|
||||||
|
; to 10000 msec. The default is 2000 msec. Note: if you wish to test the
|
||||||
|
; receiver by entering digits manually, set this to a reasonable time out
|
||||||
|
; like 10000 milliseconds.
|
||||||
|
|
||||||
|
fdtimeout = 2000
|
||||||
|
|
||||||
|
;
|
||||||
|
; The timeout for receiving subsequent DTMF digits is adjustable from
|
||||||
|
; 110 msec. to 4000 msec. The default is 200 msec. Note: if you wish to test
|
||||||
|
; the receiver by entering digits manually, set this to a reasonable time out
|
||||||
|
; like 4000 milliseconds.
|
||||||
|
;
|
||||||
|
|
||||||
|
sdtimeout = 200
|
||||||
|
|
||||||
|
;
|
||||||
|
; The loudness of the ACK and Kissoff tones is adjustable from 100 to 8192.
|
||||||
|
; The default is 8192. This shouldn't need to be messed with, but is included
|
||||||
|
; just in case there are problems with signal levels.
|
||||||
|
;
|
||||||
|
|
||||||
|
loudness = 8192
|
||||||
|
|
||||||
|
;
|
||||||
|
; The db-family setting allows the user to capture statistics on the number of
|
||||||
|
; calls, and the errors the alarm receiver sees. The default is for no
|
||||||
|
; db-family name to be defined and the database logging to be turned off.
|
||||||
|
;
|
||||||
|
|
||||||
|
;db-family = yourfamily:
|
||||||
|
|
||||||
|
;
|
||||||
|
; End of alarmreceiver.conf
|
||||||
|
;
|
78
asterisk/alsa.conf
Normal file
78
asterisk/alsa.conf
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
;
|
||||||
|
; 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
|
||||||
|
|
||||||
|
;
|
||||||
|
; Default mute state (can also be toggled via CLI)
|
||||||
|
;mute=true
|
||||||
|
|
||||||
|
;
|
||||||
|
; If enabled, no audio capture device will be opened. This is useful on
|
||||||
|
; systems where there will be no return audio path, such as overhead pagers.
|
||||||
|
;noaudiocapture=true
|
||||||
|
|
||||||
|
;------------------------------ 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".
|
||||||
|
;-----------------------------------------------------------------------------------
|
||||||
|
|
19
asterisk/amd.conf
Normal file
19
asterisk/amd.conf
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
;
|
||||||
|
; 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
|
||||||
|
maximum_word_length = 5000 ; Maximum duration of a single Voice utterance allowed.
|
||||||
|
silence_threshold = 256
|
24
asterisk/app_mysql.conf
Normal file
24
asterisk/app_mysql.conf
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
; Configuration file for the MYSQL app addon
|
||||||
|
|
||||||
|
[general]
|
||||||
|
;
|
||||||
|
; Nullvalue governs how NULL values are returned from the database. In
|
||||||
|
; previous versions, the special NULL value was returned as the "NULL"
|
||||||
|
; string. We now provide an option for the behavior, configured globally.
|
||||||
|
; nullstring - the string "NULL"
|
||||||
|
; emptystring - the string ""
|
||||||
|
; null - unset the variable
|
||||||
|
;
|
||||||
|
; WARNING: setting nullvalue=null may have undesireable consequences, in
|
||||||
|
; particular if you use subroutines in AEL or the LOCAL() variable construct.
|
||||||
|
; You have been warned. Don't complain if you use that setting in combination
|
||||||
|
; with Gosub or AEL and get buggy behavior.
|
||||||
|
;
|
||||||
|
nullvalue = nullstring
|
||||||
|
|
||||||
|
; 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
|
27
asterisk/app_skel.conf
Normal file
27
asterisk/app_skel.conf
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
[general]
|
||||||
|
games=3
|
||||||
|
cheat=no
|
||||||
|
|
||||||
|
[sounds]
|
||||||
|
prompt=please-enter-your,number,queue-less-than
|
||||||
|
wrong_guess=vm-pls-try-again
|
||||||
|
right_guess=auth-thankyou
|
||||||
|
too_high=high
|
||||||
|
too_low=low
|
||||||
|
lose=vm-goodbye
|
||||||
|
|
||||||
|
[easy]
|
||||||
|
max_number=10
|
||||||
|
max_guesses=4
|
||||||
|
|
||||||
|
[medium]
|
||||||
|
max_number=100
|
||||||
|
max_guesses=6
|
||||||
|
|
||||||
|
[hard]
|
||||||
|
max_number=1000
|
||||||
|
max_guesses=7
|
||||||
|
|
||||||
|
[nightmare]
|
||||||
|
max_number=1000
|
||||||
|
max_guesses=1
|
159
asterisk/asterisk.adsi
Normal file
159
asterisk/asterisk.adsi
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
;
|
||||||
|
; Asterisk default ADSI script
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; Begin with the preamble requirements
|
||||||
|
;
|
||||||
|
DESCRIPTION "Asterisk PBX" ; Name of vendor
|
||||||
|
VERSION 0x00 ; Version of stuff
|
||||||
|
;SECURITY "_AST" ; Security code
|
||||||
|
SECURITY 0X9BDBF7AC ; Security code
|
||||||
|
FDN 0x0000000F ; Descriptor number
|
||||||
|
|
||||||
|
;
|
||||||
|
; Flags
|
||||||
|
;
|
||||||
|
FLAG "nocallwaiting"
|
||||||
|
|
||||||
|
;
|
||||||
|
; Predefined strings
|
||||||
|
;
|
||||||
|
DISPLAY "titles" IS "** Asterisk PBX **"
|
||||||
|
DISPLAY "talkingto" IS "Call active." JUSTIFY LEFT
|
||||||
|
DISPLAY "callname" IS "$Call1p" JUSTIFY LEFT
|
||||||
|
DISPLAY "callnum" IS "$Call1s" JUSTIFY LEFT
|
||||||
|
DISPLAY "incoming" IS "Incoming call!" JUSTIFY LEFT
|
||||||
|
DISPLAY "ringing" IS "Calling... " JUSTIFY LEFT
|
||||||
|
DISPLAY "callended" IS "Call ended." JUSTIFY LEFT
|
||||||
|
DISPLAY "missedcall" IS "Missed call." JUSTIFY LEFT
|
||||||
|
DISPLAY "busy" IS "Busy." JUSTIFY LEFT
|
||||||
|
DISPLAY "reorder" IS "Reorder." JUSTIFY LEFT
|
||||||
|
DISPLAY "cwdisabled" IS "Callwait disabled"
|
||||||
|
DISPLAY "empty" IS "asdf"
|
||||||
|
|
||||||
|
;
|
||||||
|
; Begin soft key definitions
|
||||||
|
;
|
||||||
|
KEY "callfwd" IS "CallFwd" OR "Call Forward"
|
||||||
|
OFFHOOK
|
||||||
|
VOICEMODE
|
||||||
|
WAITDIALTONE
|
||||||
|
SENDDTMF "*60"
|
||||||
|
GOTO "offHook"
|
||||||
|
ENDKEY
|
||||||
|
|
||||||
|
KEY "vmail_OH" IS "VMail" OR "Voicemail"
|
||||||
|
OFFHOOK
|
||||||
|
VOICEMODE
|
||||||
|
WAITDIALTONE
|
||||||
|
SENDDTMF "8500"
|
||||||
|
ENDKEY
|
||||||
|
|
||||||
|
KEY "vmail" IS "VMail" OR "Voicemail"
|
||||||
|
SENDDTMF "8500"
|
||||||
|
ENDKEY
|
||||||
|
|
||||||
|
KEY "backspace" IS "BackSpc" OR "Backspace"
|
||||||
|
BACKSPACE
|
||||||
|
ENDKEY
|
||||||
|
|
||||||
|
KEY "cwdisable" IS "CWDsble" OR "Disable Call Wait"
|
||||||
|
SENDDTMF "*70"
|
||||||
|
SETFLAG "nocallwaiting"
|
||||||
|
SHOWDISPLAY "cwdisabled" AT 4
|
||||||
|
TIMERCLEAR
|
||||||
|
TIMERSTART 1
|
||||||
|
ENDKEY
|
||||||
|
|
||||||
|
KEY "cidblock" IS "CIDBlk" OR "Block Callerid"
|
||||||
|
SENDDTMF "*67"
|
||||||
|
SETFLAG "nocallwaiting"
|
||||||
|
ENDKEY
|
||||||
|
|
||||||
|
;
|
||||||
|
; Begin main subroutine
|
||||||
|
;
|
||||||
|
|
||||||
|
SUB "main" IS
|
||||||
|
IFEVENT NEARANSWER THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "titles" AT 1 NOUPDATE
|
||||||
|
SHOWDISPLAY "talkingto" AT 2 NOUPDATE
|
||||||
|
SHOWDISPLAY "callname" AT 3
|
||||||
|
SHOWDISPLAY "callnum" AT 4
|
||||||
|
GOTO "stableCall"
|
||||||
|
ENDIF
|
||||||
|
IFEVENT OFFHOOK THEN
|
||||||
|
CLEAR
|
||||||
|
CLEARFLAG "nocallwaiting"
|
||||||
|
CLEARDISPLAY
|
||||||
|
SHOWDISPLAY "titles" AT 1
|
||||||
|
SHOWKEYS "vmail"
|
||||||
|
SHOWKEYS "cidblock"
|
||||||
|
SHOWKEYS "cwdisable" UNLESS "nocallwaiting"
|
||||||
|
GOTO "offHook"
|
||||||
|
ENDIF
|
||||||
|
IFEVENT IDLE THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "titles" AT 1
|
||||||
|
SHOWKEYS "vmail_OH"
|
||||||
|
ENDIF
|
||||||
|
IFEVENT CALLERID THEN
|
||||||
|
CLEAR
|
||||||
|
; SHOWDISPLAY "titles" AT 1 NOUPDATE
|
||||||
|
; SHOWDISPLAY "incoming" AT 2 NOUPDATE
|
||||||
|
SHOWDISPLAY "callname" AT 3 NOUPDATE
|
||||||
|
SHOWDISPLAY "callnum" AT 4
|
||||||
|
ENDIF
|
||||||
|
IFEVENT RING THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "titles" AT 1 NOUPDATE
|
||||||
|
SHOWDISPLAY "incoming" AT 2
|
||||||
|
ENDIF
|
||||||
|
IFEVENT ENDOFRING THEN
|
||||||
|
SHOWDISPLAY "missedcall" AT 2
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "titles" AT 1
|
||||||
|
SHOWKEYS "vmail_OH"
|
||||||
|
ENDIF
|
||||||
|
IFEVENT TIMER THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "empty" AT 4
|
||||||
|
ENDIF
|
||||||
|
ENDSUB
|
||||||
|
|
||||||
|
SUB "offHook" IS
|
||||||
|
IFEVENT FARRING THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "titles" AT 1 NOUPDATE
|
||||||
|
SHOWDISPLAY "ringing" AT 2 NOUPDATE
|
||||||
|
SHOWDISPLAY "callname" at 3 NOUPDATE
|
||||||
|
SHOWDISPLAY "callnum" at 4
|
||||||
|
ENDIF
|
||||||
|
IFEVENT FARANSWER THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "talkingto" AT 2
|
||||||
|
GOTO "stableCall"
|
||||||
|
ENDIF
|
||||||
|
IFEVENT BUSY THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "titles" AT 1 NOUPDATE
|
||||||
|
SHOWDISPLAY "busy" AT 2 NOUPDATE
|
||||||
|
SHOWDISPLAY "callname" at 3 NOUPDATE
|
||||||
|
SHOWDISPLAY "callnum" at 4
|
||||||
|
ENDIF
|
||||||
|
IFEVENT REORDER THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "titles" AT 1 NOUPDATE
|
||||||
|
SHOWDISPLAY "reorder" AT 2 NOUPDATE
|
||||||
|
SHOWDISPLAY "callname" at 3 NOUPDATE
|
||||||
|
SHOWDISPLAY "callnum" at 4
|
||||||
|
ENDIF
|
||||||
|
ENDSUB
|
||||||
|
|
||||||
|
SUB "stableCall" IS
|
||||||
|
IFEVENT REORDER THEN
|
||||||
|
SHOWDISPLAY "callended" AT 2
|
||||||
|
ENDIF
|
||||||
|
ENDSUB
|
||||||
|
|
102
asterisk/asterisk.conf
Normal file
102
asterisk/asterisk.conf
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
[directories](!)
|
||||||
|
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
|
||||||
|
astsbindir => /usr/sbin
|
||||||
|
|
||||||
|
[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.
|
||||||
|
;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.
|
||||||
|
;mindtmfduration = 80 ; Set minimum DTMF duration in ms (default 80 ms)
|
||||||
|
; If we get shorter DTMF messages, these will be
|
||||||
|
; changed to the minimum duration
|
||||||
|
;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 = 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.
|
||||||
|
;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.
|
||||||
|
;forceblackbackground = yes ; Force the background of the terminal to be
|
||||||
|
; black, in order for terminal colors to show
|
||||||
|
; up properly.
|
||||||
|
;defaultlanguage = en ; Default language
|
||||||
|
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.
|
||||||
|
;lockconfdir = no ; Protect the directory containing the
|
||||||
|
; configuration files (/etc/asterisk) with a
|
||||||
|
; lock.
|
||||||
|
;stdexten = gosub ; How to invoke the extensions.conf stdexten.
|
||||||
|
; macro - Invoke the stdexten using a macro as
|
||||||
|
; done by legacy Asterisk versions.
|
||||||
|
; gosub - Invoke the stdexten using a gosub as
|
||||||
|
; documented in extensions.conf.sample.
|
||||||
|
; Default gosub.
|
||||||
|
;live_dangerously = no ; Enable the execution of 'dangerous' dialplan
|
||||||
|
; functions from external sources (AMI,
|
||||||
|
; etc.) These functions (such as SHELL) are
|
||||||
|
; considered dangerous because they can allow
|
||||||
|
; privilege escalation.
|
||||||
|
; Default yes, for backward compatability.
|
||||||
|
|
||||||
|
; 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
|
109
asterisk/calendar.conf
Normal file
109
asterisk/calendar.conf
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
;[calendar1]
|
||||||
|
;type = ical ; type of calendar--currently supported: ical, caldav, exchange, or ews
|
||||||
|
;url = https://example.com/home/jdoe/Calendar/ ; URL to shared calendar (Zimbra example)
|
||||||
|
;user = jdoe ; web username
|
||||||
|
;secret = supersecret ; web password
|
||||||
|
;refresh = 15 ; refresh calendar every n minutes
|
||||||
|
;timeframe = 60 ; number of minutes of calendar data to pull for each refresh period
|
||||||
|
; ; should always be >= refresh
|
||||||
|
;
|
||||||
|
; You can set up res_calendar to execute a call upon an upcoming busy status
|
||||||
|
; The following fields are available from the ${CALENDAR_EVENT(<field>)} dialplan function:
|
||||||
|
;
|
||||||
|
; summary : The VEVENT Summary property or Exchange subject
|
||||||
|
; description : The text description of the vent
|
||||||
|
; organizer : The organizer of the event
|
||||||
|
; location : The location field of the event
|
||||||
|
; calendar : The name of the calendar tied to the event
|
||||||
|
; uid : The unique ID for this event
|
||||||
|
; start : Start time of the event
|
||||||
|
; end : The end time of the event
|
||||||
|
; busystate : 0=FREE, 1=TENTATIVE, 2=BUSY
|
||||||
|
;
|
||||||
|
;autoreminder = 10 ; Override event-defined reminder before each busy status (in mins)
|
||||||
|
;
|
||||||
|
;channel = SIP/60001 ; Channel to dial
|
||||||
|
;context = default ; Context to connect to on answer
|
||||||
|
;extension = 123 ; Extension to connect to on answer
|
||||||
|
;
|
||||||
|
; or
|
||||||
|
;
|
||||||
|
;app = Playback ; Application to execute on answer (instead of context/extension)
|
||||||
|
;appdata = tt-weasels ; Data part of application to execute on answer
|
||||||
|
;
|
||||||
|
;waittime = 30 ; How long to wait for an answer, defaults to 30 seconds
|
||||||
|
;
|
||||||
|
; Channel variables can be set on the notification channel. The format is
|
||||||
|
; setvar=name=value. Variable subsitution is done on the value to allow the use of dialplan
|
||||||
|
; functions like CALENDAR_EVENT. The variables are set in order, so one can use the value
|
||||||
|
; of earlier variables in the definition of later ones.
|
||||||
|
;
|
||||||
|
;setvar = CALLERID(name)=${CALENDAR_EVENT(summary)}
|
||||||
|
|
||||||
|
;[calendar2]
|
||||||
|
; Note: Support for Exchange Server 2003
|
||||||
|
;
|
||||||
|
;type = exchange ; type of calendar--currently supported: ical, caldav, exchange, or ews
|
||||||
|
;url = https://example.com/exchange/jdoe ; URL to MS Exchange OWA for user (usually includes exchange/user)
|
||||||
|
;user = jdoe ; Exchange username
|
||||||
|
;secret = mysecret ; Exchange password
|
||||||
|
;refresh = 15 ; refresh calendar every n minutes
|
||||||
|
;timeframe = 60 ; number of minutes of calendar data to pull for each refresh period
|
||||||
|
; ; should always be >= refresh
|
||||||
|
;
|
||||||
|
; You can set up res_calendar to execute a call upon an upcoming busy status
|
||||||
|
;autoreminder = 10 ; Override event-defined reminder before each busy status (in mins)
|
||||||
|
;
|
||||||
|
;channel = SIP/1234 ; Channel to dial
|
||||||
|
;context = default ; Context to connect to on answer
|
||||||
|
;extension = 1234 ; Extension to connect to on answer
|
||||||
|
;
|
||||||
|
; or
|
||||||
|
;
|
||||||
|
;[calendar3]
|
||||||
|
; Note: Support for Exchange Server 2007+
|
||||||
|
;
|
||||||
|
;type = ews ; type of calendar--currently supported: ical, caldav, exchange, or ews
|
||||||
|
;url = https://example.com/ews/Exchange.asmx ; URL to MS Exchange EWS
|
||||||
|
;user = jdoe ; Exchange username
|
||||||
|
;secret = mysecret ; Exchange password
|
||||||
|
;refresh = 15 ; refresh calendar every n minutes
|
||||||
|
;timeframe = 60 ; number of minutes of calendar data to pull for each refresh period
|
||||||
|
; ; should always be >= refresh
|
||||||
|
;
|
||||||
|
; You can set up res_calendar to execute a call upon an upcoming busy status
|
||||||
|
;autoreminder = 10 ; Override event-defined reminder before each busy status (in mins)
|
||||||
|
;
|
||||||
|
;channel = SIP/1234 ; Channel to dial
|
||||||
|
;context = default ; Context to connect to on answer
|
||||||
|
;extension = 1234 ; Extension to connect to on answer
|
||||||
|
;
|
||||||
|
; or
|
||||||
|
;
|
||||||
|
;app = Playback ; Application to execute on answer (instead of context/extension)
|
||||||
|
;appdata = tt-weasels ; Data part of application to execute on answer
|
||||||
|
;
|
||||||
|
;waittime = 30 ; How long to wait for an answer, defaults to 30 seconds
|
||||||
|
|
||||||
|
;[calendar4]
|
||||||
|
;type = caldav ; type of calendar--currently supported: ical, caldav, exchange, or ews
|
||||||
|
;url = https://www.google.com/calendar/dav/username@gmail.com/events/ ; Main GMail calendar (the trailing slash is significant!)
|
||||||
|
;user = jdoe@gmail.com ; username
|
||||||
|
;secret = mysecret ; password
|
||||||
|
;refresh = 15 ; refresh calendar every n minutes
|
||||||
|
;timeframe = 60 ; number of minutes of calendar data to pull for each refresh period
|
||||||
|
; ; should always be >= refresh
|
||||||
|
;
|
||||||
|
; You can set up res_calendar to execute a call upon an upcoming busy status
|
||||||
|
;autoreminder = 10 ; Override event-defined reminder before each busy status (in mins)
|
||||||
|
;
|
||||||
|
;channel = SIP/1234 ; Channel to dial
|
||||||
|
;context = default ; Context to connect to on answer
|
||||||
|
;extension = 1234 ; Extension to connect to on answer
|
||||||
|
;
|
||||||
|
; or
|
||||||
|
;
|
||||||
|
;app = Playback ; Application to execute on answer (instead of context/extension)
|
||||||
|
;appdata = tt-weasels ; Data part of application to execute on answer
|
||||||
|
;
|
||||||
|
;waittime = 30 ; How long to wait for an answer, defaults to 30 seconds
|
205
asterisk/ccss.conf
Normal file
205
asterisk/ccss.conf
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
;
|
||||||
|
; --- Call Completion Supplementary Services ---
|
||||||
|
;
|
||||||
|
; For more information about CCSS, see the CCSS user documentation
|
||||||
|
; https://wiki.asterisk.org/wiki/display/AST/Call+Completion+Supplementary+Services+(CCSS)
|
||||||
|
;
|
||||||
|
|
||||||
|
[general]
|
||||||
|
; The cc_max_requests option is a global limit on the number of
|
||||||
|
; CC requests that may be in the Asterisk system at any time.
|
||||||
|
;
|
||||||
|
;cc_max_requests = 20
|
||||||
|
;
|
||||||
|
; The cc_STATE_devstate variables listed below can be used to change the
|
||||||
|
; default mapping of the internal state machine tracking the state of
|
||||||
|
; call completion to an Asterisk Device State value. The acceptable values
|
||||||
|
; that can be provided are as follows, with a description of what the
|
||||||
|
; equivalent device BLF that this maps to:
|
||||||
|
;
|
||||||
|
; UNKNOWN ; Device is valid but channel didn't know state
|
||||||
|
; NOT_INUSE ; Device is not used
|
||||||
|
; INUSE ; Device is in use
|
||||||
|
; BUSY ; Device is busy
|
||||||
|
; INVALID ; Device is invalid
|
||||||
|
; UNAVAILABLE ; Device is unavailable
|
||||||
|
; RINGING ; Device is ringing
|
||||||
|
; RINGINUSE ; Device is ringing *and* in use
|
||||||
|
; ONHOLD ; Device is on hold
|
||||||
|
;
|
||||||
|
; These states are used to generate DEVICE_STATE information that can be
|
||||||
|
; included with Asterisk hints for phones to subscribe to the state information
|
||||||
|
; or dialplan to check the state using the EXTENSION_STATE() function or
|
||||||
|
; the DEVICE_STATE() function.
|
||||||
|
;
|
||||||
|
; The states are in the format of: "ccss:TECH/ID" so an example of device
|
||||||
|
; SIP/3000 making a CallCompletionRequest() could be checked by looking at
|
||||||
|
; DEVICE_STATE(ccss:SIP/3000) or an Asterisk Hint could be generated such as
|
||||||
|
;
|
||||||
|
; [hint-context]
|
||||||
|
; exten => *843000,hint,ccss:SIP/3000
|
||||||
|
;
|
||||||
|
; and then accessed with EXTENSION_STATE(*843000@hint-context)
|
||||||
|
; or subscribed to with a BLF button on a phone.
|
||||||
|
;
|
||||||
|
; The available state mapping and default values are:
|
||||||
|
;
|
||||||
|
; cc_available_devstate = NOT_INUSE
|
||||||
|
; cc_offered_devstate = NOT_INUSE
|
||||||
|
; cc_caller_requested_devstate = NOT_INUSE
|
||||||
|
; cc_active_devstate = INUSE
|
||||||
|
; cc_callee_ready_devstate = INUSE
|
||||||
|
; cc_caller_busy_devstate = ONHOLD
|
||||||
|
; cc_recalling_devstate = RINGING
|
||||||
|
; cc_complete_devstate = NOT_INUSE
|
||||||
|
; cc_failed_devstate = NOT_INUSE
|
||||||
|
|
||||||
|
;
|
||||||
|
;============================================
|
||||||
|
; PLEASE READ THIS!!!
|
||||||
|
; The options described below should NOT be
|
||||||
|
; set in this file. Rather, they should be
|
||||||
|
; set per-device in a channel driver
|
||||||
|
; configuration file.
|
||||||
|
; PLEASE READ THIS!!!
|
||||||
|
;===========================================
|
||||||
|
;
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
; Timers
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
;There are three configurable timers for all types of CC: the
|
||||||
|
;cc_offer_timer, the ccbs_available_timer, and the ccnr_available_timer.
|
||||||
|
;In addition, when using a generic agent, there is a fourth timer,
|
||||||
|
;the cc_recall_timer. All timers are configured in seconds, and the
|
||||||
|
;values shown below are the defaults.
|
||||||
|
;
|
||||||
|
;When a caller is offered CCBS or CCNR, the cc_offer_timer will
|
||||||
|
;be started. If the caller does not request CC before the
|
||||||
|
;cc_offer_timer expires, then the caller will be unable to request
|
||||||
|
;CC for this call.
|
||||||
|
;
|
||||||
|
;cc_offer_timer = 20
|
||||||
|
;
|
||||||
|
;Once a caller has requested CC, then either the ccbs_available_timer
|
||||||
|
;or the ccnr_available_timer will run, depending on the service
|
||||||
|
;requested. The reason why there are two separate timers for CCBS
|
||||||
|
;and CCNR is that it is reasonable to want to have a shorter timeout
|
||||||
|
;configured for CCBS than for CCNR. If the available timer expires
|
||||||
|
;before the called party becomes available, then the CC attempt
|
||||||
|
;will have failed and monitoring of the called party will stop.
|
||||||
|
;
|
||||||
|
;ccbs_available_timer = 4800
|
||||||
|
;ccnr_available_timer = 7200
|
||||||
|
;
|
||||||
|
; When using a generic agent, the original caller is called back
|
||||||
|
; when one of the original called parties becomes available. The
|
||||||
|
; cc_recall_timer tells Asterisk how long it should let the original
|
||||||
|
; caller's phone ring before giving up. Please note that this parameter
|
||||||
|
; only affects operation when using a generic agent.
|
||||||
|
;
|
||||||
|
;cc_recall_timer = 20
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
; Policies
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
; Policy settings tell Asterisk how to behave and what sort of
|
||||||
|
; resources to allocate in order to facilitate CC. There are two
|
||||||
|
; settings to control the actions Asterisk will take.
|
||||||
|
;
|
||||||
|
; The cc_agent_policy describes the behavior that Asterisk will
|
||||||
|
; take when communicating with the caller during CC. There are
|
||||||
|
; three possible options.
|
||||||
|
;
|
||||||
|
;never: Never offer CC to the caller. Setting the cc_agent_policy
|
||||||
|
; to this value is the way to disable CC for a call.
|
||||||
|
;
|
||||||
|
;generic: A generic CC agent is one which uses no protocol-specific
|
||||||
|
; mechanisms to offer CC to the caller. Instead, the caller
|
||||||
|
; requests CC using a dialplan function. Due to internal
|
||||||
|
; restrictions, you should only use a generic CC agent on
|
||||||
|
; phones (i.e. not "trunks"). If you are using phones which
|
||||||
|
; do not support a protocol-specific method of using CC, then
|
||||||
|
; generic CC agents are what you should use.
|
||||||
|
;
|
||||||
|
;native: A native CC agent is one which uses protocol-specific
|
||||||
|
; signaling to offer CC to the caller and accept CC requests
|
||||||
|
; from the caller. The supported protocols for native CC
|
||||||
|
; agents are SIP, ISDN ETSI PTP, ISDN ETSI PTMP, and Q.SIG
|
||||||
|
;cc_agent_policy=never
|
||||||
|
;
|
||||||
|
; The cc_monitor_policy describes the behavior that Asterisk will
|
||||||
|
; take when communicating with the called party during CC. There
|
||||||
|
; are four possible options.
|
||||||
|
;
|
||||||
|
;never: Analogous to the cc_agent_policy setting. We will never
|
||||||
|
; attempt to request CC services on this interface.
|
||||||
|
;
|
||||||
|
;generic: Analogous to the cc_agent_policy setting. We will monitor
|
||||||
|
; the called party's progress using protocol-agnostic
|
||||||
|
; capabilities. Like with generic CC agents, generic CC
|
||||||
|
; monitors should only be used for phones.
|
||||||
|
;
|
||||||
|
;native: Analogous to the cc_agent_policy setting. We will use
|
||||||
|
; protocol-specific methods to request CC from this interface
|
||||||
|
; and to monitor the interface for availability.
|
||||||
|
;
|
||||||
|
;always: If an interface is set to "always," then we will accept
|
||||||
|
; protocol-specific CC offers from the caller and use
|
||||||
|
; a native CC monitor for the remainder of the CC transaction.
|
||||||
|
; However, if the interface does not offer protocol-specific
|
||||||
|
; CC, then we will fall back to using a generic CC monitor
|
||||||
|
; instead. This is a good setting to use for phones for which
|
||||||
|
; you do not know if they support protocol-specific CC
|
||||||
|
; methodologies.
|
||||||
|
;cc_monitor_policy=never
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
; Limits
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
;
|
||||||
|
; The use of CC requires Asterisk to potentially use more memory than
|
||||||
|
; some administrators would like. As such, it is a good idea to limit
|
||||||
|
; the number of CC requests that can be in the system at a given time.
|
||||||
|
; The values shown below are the defaults.
|
||||||
|
;
|
||||||
|
; The cc_max_agents setting limits the number of outstanding CC
|
||||||
|
; requests a caller may have at any given time. Please note that due
|
||||||
|
; to implementation restrictions, this setting is ignored when using
|
||||||
|
; generic CC agents. Generic CC agents may only have one outstanding
|
||||||
|
; CC request.
|
||||||
|
;
|
||||||
|
;cc_max_agents = 5
|
||||||
|
;
|
||||||
|
; The cc_max_monitors setting limits the number of outstanding CC
|
||||||
|
; requests can be made to a specific interface at a given time.
|
||||||
|
;
|
||||||
|
;cc_max_monitors = 5
|
||||||
|
;
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
; Other
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
;
|
||||||
|
; When using a generic CC agent, the caller who requested CC will be
|
||||||
|
; called back when a called party becomes available. When the caller
|
||||||
|
; answers his phone, the administrator may opt to have a macro run.
|
||||||
|
; What this macro does is up to the administrator. By default there
|
||||||
|
; is no callback macro configured.
|
||||||
|
;
|
||||||
|
;cc_callback_macro=
|
||||||
|
;
|
||||||
|
; Alternatively, the administrator may run a subroutine. By default
|
||||||
|
; there is no callback subroutine configured. The subroutine should
|
||||||
|
; be specified in the format: [[context,]exten,]priority
|
||||||
|
;
|
||||||
|
;cc_callback_sub=
|
||||||
|
;
|
||||||
|
; When using an ISDN phone and a generic CC agent, Asterisk is unable
|
||||||
|
; to determine the dialstring that should be used when calling back
|
||||||
|
; the original caller. Furthermore, if you desire to use any dialstring-
|
||||||
|
; specific options, such as distinctive ring, you must set this
|
||||||
|
; configuration option. For non-ISDN phones, it is not necessary to
|
||||||
|
; set this, since Asterisk can determine the dialstring to use since
|
||||||
|
; it is identical to the name of the calling device. By default, there
|
||||||
|
; is no cc_agent_dialstring set.
|
||||||
|
;
|
||||||
|
;cc_agent_dialstring=
|
171
asterisk/cdr.conf
Normal file
171
asterisk/cdr.conf
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
;
|
||||||
|
; 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 whether or not to log congested calls. Setting this to "yes" will
|
||||||
|
; report each call that fails to complete due to congestion conditions. Default
|
||||||
|
; is "no".
|
||||||
|
;congestion = no
|
||||||
|
|
||||||
|
; 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 and hangup handlers so that CDR values such as "end" and
|
||||||
|
; "billsec" may be retrieved inside of of this extension.
|
||||||
|
; The default value is "no".
|
||||||
|
;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.
|
||||||
|
; The default value is "no".
|
||||||
|
;initiatedseconds=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
|
||||||
|
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; 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"
|
||||||
|
accountlogs=yes ; create separate log file for each account code. Default is "yes"
|
||||||
|
|
||||||
|
;[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
|
60
asterisk/cdr_adaptive_odbc.conf
Normal file
60
asterisk/cdr_adaptive_odbc.conf
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
; 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.
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
;schema=public ; for databases which support schemas
|
||||||
|
;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
|
||||||
|
; Negative filters are also now available
|
||||||
|
;filter src != 456
|
||||||
|
;
|
||||||
|
; Additionally, we now support setting static values per column. The 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
|
||||||
|
|
14
asterisk/cdr_custom.conf
Normal file
14
asterisk/cdr_custom.conf
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
;
|
||||||
|
; Mappings for custom config file
|
||||||
|
;
|
||||||
|
; To get your CSV output in a format tailored to your liking, uncomment the
|
||||||
|
; following lines and look for the output in the cdr-custom directory (usually
|
||||||
|
; in /var/log/asterisk). Depending on which mapping you uncomment, you may see
|
||||||
|
; Master.csv, Simple.csv, or both.
|
||||||
|
;
|
||||||
|
;[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)})},${CDR(sequence)}
|
||||||
|
;
|
||||||
|
; High Resolution Time for billsec and duration fields
|
||||||
|
;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,f)})},${CSV_QUOTE(${CDR(billsec,f)})},${CSV_QUOTE(${CDR(disposition)})},${CSV_QUOTE(${CDR(amaflags)})},${CSV_QUOTE(${CDR(accountcode)})},${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR(userfield)})},${CDR(sequence)}
|
||||||
|
;Simple.csv => ${CSV_QUOTE(${EPOCH})},${CSV_QUOTE(${CDR(src)})},${CSV_QUOTE(${CDR(dst)})}
|
15
asterisk/cdr_manager.conf
Normal file
15
asterisk/cdr_manager.conf
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
;
|
||||||
|
; Asterisk Call Management CDR
|
||||||
|
;
|
||||||
|
[general]
|
||||||
|
enabled = no
|
||||||
|
|
||||||
|
; The "mappings" category can be used to define additional "key: value" pairs
|
||||||
|
; that will be included in the manager event. (after AccountCode, Source, etc).
|
||||||
|
;
|
||||||
|
; Each line like "varname => label" will include a "label: ${CDR(varname)}"
|
||||||
|
; in the generated event where ${CDR(varname)} its replaced with its value
|
||||||
|
;
|
||||||
|
;[mappings]
|
||||||
|
;rate => Rate
|
||||||
|
;carrier => Carrier
|
60
asterisk/cdr_mysql.conf
Normal file
60
asterisk/cdr_mysql.conf
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
;
|
||||||
|
; 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
|
||||||
|
;timezone=UTC ; Previously called usegmtime
|
||||||
|
;
|
||||||
|
; 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 clid => <a_field_not_named_clid>
|
||||||
|
;alias src => <a_field_not_named_src>
|
||||||
|
;alias dst => <a_field_not_named_dst>
|
||||||
|
;alias dcontext => <a_field_not_named_dcontext>
|
||||||
|
;alias channel => <a_field_not_named_channel>
|
||||||
|
;alias dstchannel => <a_field_not_named_dstchannel>
|
||||||
|
;alias lastapp => <a_field_not_named_lastapp>
|
||||||
|
;alias lastdata => <a_field_not_named_lastdata>
|
||||||
|
;alias duration => <a_field_not_named_duration>
|
||||||
|
;alias billsec => <a_field_not_named_billsec>
|
||||||
|
;alias disposition => <a_field_not_named_disposition>
|
||||||
|
;alias amaflags => <a_field_not_named_amaflags>
|
||||||
|
;alias accountcode => <a_field_not_named_accountcode>
|
||||||
|
;alias userfield => <a_field_not_named_userfield>
|
||||||
|
;alias uniqueid => <a_field_not_named_uniqueid>
|
||||||
|
|
11
asterisk/cdr_odbc.conf
Normal file
11
asterisk/cdr_odbc.conf
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
;
|
||||||
|
; 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
|
||||||
|
;hrtime=yes ;Enables microsecond accuracy with the billsec and duration fields
|
15
asterisk/cdr_pgsql.conf
Normal file
15
asterisk/cdr_pgsql.conf
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
; Sample Asterisk config file for CDR logging to PostgresSQL
|
||||||
|
;
|
||||||
|
; Note that you can use TLS connections to your database server.
|
||||||
|
; This is configured for your PostgreSQL client installation
|
||||||
|
; on this system (check for pgsessions.conf)
|
||||||
|
|
||||||
|
[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
|
||||||
|
;timezone=UTC ; Uncomment if you want datetime fields in UTC/GMT
|
10
asterisk/cdr_sqlite3_custom.conf
Normal file
10
asterisk/cdr_sqlite3_custom.conf
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
;
|
||||||
|
; 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)}'
|
||||||
|
|
||||||
|
;Enable High Resolution Times for billsec and duration fields
|
||||||
|
;values => '${CDR(start)}','${CDR(clid)}','${CDR(dcontext)}','${CDR(channel)}','${CDR(dstchannel)}','${CDR(lastapp)}','${CDR(lastdata)}','${CDR(duration,f)}','${CDR(billsec,f)}','${CDR(disposition)}','${CDR(amaflags)}','${CDR(accountcode)}','${CDR(uniqueid)}','${CDR(userfield)}','${CDR(test)}'
|
83
asterisk/cdr_syslog.conf
Normal file
83
asterisk/cdr_syslog.conf
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
;
|
||||||
|
; Asterisk Call Detail Records (CDR) - Syslog Backend
|
||||||
|
;
|
||||||
|
|
||||||
|
; The cdr_syslog module writes CDRs using the facilities provided by syslog.
|
||||||
|
;
|
||||||
|
; Not only must you configure cdr_syslog from this file (cdr_syslog.conf) but
|
||||||
|
; you will also need to make changes to your /etc/syslog.conf before CDRs will
|
||||||
|
; be written to syslog.
|
||||||
|
;
|
||||||
|
; As an example, you can add the following to /etc/syslog.conf:
|
||||||
|
;
|
||||||
|
; local4.info /var/log/asterisk-cdr.log
|
||||||
|
;
|
||||||
|
; And then instruct syslogd to re-read the configuration file by sending it a
|
||||||
|
; HUP signal. On Linux this can be done like this:
|
||||||
|
;
|
||||||
|
; kill -HUP `cat /var/run/syslogd.pid`
|
||||||
|
;
|
||||||
|
; Finally, you will need to uncomment the [cdr-simple] section below, and restart
|
||||||
|
; Asterisk. When calls are placed, you should start seeing records appear in
|
||||||
|
; /var/log/asterisk-cdr.log.
|
||||||
|
|
||||||
|
[general]
|
||||||
|
; Facility
|
||||||
|
;
|
||||||
|
; The 'facility' keyword specifies the syslog facility to use when writing out
|
||||||
|
; CDRs.
|
||||||
|
;
|
||||||
|
; Accepted values: One of the following:
|
||||||
|
; user, local0, local1, local2, local3, local4, local5, local6
|
||||||
|
; and local7.
|
||||||
|
;
|
||||||
|
; Note: Depending on your platform, the following may also be
|
||||||
|
; available:
|
||||||
|
; auth, authpriv, cron, daemon, ftp, kern, lpr, mail,
|
||||||
|
; news, syslog, and uucp.
|
||||||
|
;
|
||||||
|
; Default value: local4
|
||||||
|
|
||||||
|
;facility=local0
|
||||||
|
|
||||||
|
; Priority
|
||||||
|
;
|
||||||
|
; Use the 'priority' keyword to select which of the syslog priority levels to
|
||||||
|
; use when logging CDRs.
|
||||||
|
;
|
||||||
|
; Accepted values: One of the following:
|
||||||
|
; alert, crit, debug, emerg, err, info, notice, warning
|
||||||
|
; Default value: info
|
||||||
|
|
||||||
|
;priority=warn
|
||||||
|
|
||||||
|
; Note: The settings for 'facility' and 'priority' in the [general] section
|
||||||
|
; define the default values for all of the logging locations created
|
||||||
|
; below in separate sections.
|
||||||
|
|
||||||
|
;[cdr-master]
|
||||||
|
;facility = local5
|
||||||
|
;priority = debug
|
||||||
|
|
||||||
|
; Template
|
||||||
|
;
|
||||||
|
; The 'template' value allows you to specify a custom format for messages
|
||||||
|
; written to syslog. This is similar to how cdr_custom is configured.
|
||||||
|
;
|
||||||
|
; Allowed values: A diaplan style string.
|
||||||
|
; Default value: None, this is required field.
|
||||||
|
;
|
||||||
|
; Note: Because of the way substitution is done, the only meaningful values
|
||||||
|
; available when the record is logged are those available via the CDR()
|
||||||
|
; dialplan function. All other channel variables will be unavailable.
|
||||||
|
|
||||||
|
;template = "${CDR(clid)}","${CDR(src)}","${CDR(dst)}","${CDR(dcontext)}","${CDR(channel)}","${CDR(dstchannel)}","${CDR(lastapp)}","${CDR(lastdata)}","${CDR(start)}","${CDR(answer)}","${CDR(end)}","${CDR(duration)}","${CDR(billsec)}","${CDR(disposition)}","${CDR(amaflags)}","${CDR(accountcode)}","${CDR(uniqueid)}","${CDR(userfield)}"
|
||||||
|
|
||||||
|
; High Resolution Time for billsec and duration fields
|
||||||
|
;template = "${CDR(clid)}","${CDR(src)}","${CDR(dst)}","${CDR(dcontext)}","${CDR(channel)}","${CDR(dstchannel)}","${CDR(lastapp)}","${CDR(lastdata)}","${CDR(start)}","${CDR(answer)}","${CDR(end)}","${CDR(duration,f)}","${CDR(billsec,f)}","${CDR(disposition)}","${CDR(amaflags)}","${CDR(accountcode)}","${CDR(uniqueid)}","${CDR(userfield)}"
|
||||||
|
;[cdr-simple]
|
||||||
|
|
||||||
|
; Since we don't specify a facility or priority for this logging location, the
|
||||||
|
; records will use the defaults specified in the [general] section.
|
||||||
|
|
||||||
|
;template = "We received a call from ${CDR(src)}"
|
78
asterisk/cdr_tds.conf
Normal file
78
asterisk/cdr_tds.conf
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
;
|
||||||
|
; Asterisk Call Detail Records (CDR) - FreeTDS Backend
|
||||||
|
;
|
||||||
|
|
||||||
|
;[global]
|
||||||
|
|
||||||
|
; Connection
|
||||||
|
;
|
||||||
|
; Use the 'connection' keyword to specify one of the instance names from your
|
||||||
|
; 'freetds.conf' file. Note that 'freetds.conf' is not an Asterisk
|
||||||
|
; configuration file, but one specific to the FreeTDS library. See the FreeTDS
|
||||||
|
; documentation on 'freetds.conf' for more information:
|
||||||
|
;
|
||||||
|
; http://www.freetds.org/userguide/freetdsconf.htm
|
||||||
|
;
|
||||||
|
; Accepted values: One of the connections specified in freetds.conf
|
||||||
|
|
||||||
|
;connection=ConnectionFromFreeTDSConf
|
||||||
|
|
||||||
|
; Database Name
|
||||||
|
;
|
||||||
|
; The 'dbname' keyword specifies the database name to use when logging CDRs.
|
||||||
|
;
|
||||||
|
; Accepted values: Any valid database name
|
||||||
|
|
||||||
|
;dbname=AsteriskCDRs
|
||||||
|
|
||||||
|
; Database Table Name
|
||||||
|
;
|
||||||
|
; The 'table' keyword identifies which database table is used to log CDRs.
|
||||||
|
;
|
||||||
|
; Accepted value: Any valid table name
|
||||||
|
; Default value: If not specified, a table named 'cdr' is assumed
|
||||||
|
|
||||||
|
;table=cdr
|
||||||
|
|
||||||
|
; Credentials
|
||||||
|
;
|
||||||
|
; The 'username' and 'password' keywords specify the user credentials that
|
||||||
|
; Asterisk should use when connecting to the database.
|
||||||
|
;
|
||||||
|
; Accepted value: Any valid username and password
|
||||||
|
|
||||||
|
;username=mangUsr
|
||||||
|
;password=
|
||||||
|
|
||||||
|
; Language
|
||||||
|
;
|
||||||
|
; The 'language' keyword changes the language which are used for error and
|
||||||
|
; information messages returned by SQL Server. Each database and user has their
|
||||||
|
; own default value, and this default can be overriden here.
|
||||||
|
;
|
||||||
|
; Accepted value: Any language installed on the target SQL Server.
|
||||||
|
; Default value: us_english
|
||||||
|
|
||||||
|
;language=us_english
|
||||||
|
|
||||||
|
; Character Set
|
||||||
|
;
|
||||||
|
; The 'charset' setting is used to change the character set used when connecting
|
||||||
|
; to the database server. Each database and database user has their own
|
||||||
|
; character set setting, and this default can be overriden here.
|
||||||
|
;
|
||||||
|
; Accepted value: Any valid character set available on the target SQL server.
|
||||||
|
; Default value: iso_1
|
||||||
|
|
||||||
|
;charset=BIG5
|
||||||
|
|
||||||
|
; High Resolution Times
|
||||||
|
;
|
||||||
|
; The 'hrtime' setting is used to store high resolution (sub second) times for
|
||||||
|
; billsec and duration fields.
|
||||||
|
;
|
||||||
|
; Accepted value: true or false
|
||||||
|
; Default value: false
|
||||||
|
|
||||||
|
;hrtime=false
|
||||||
|
|
126
asterisk/cel.conf
Normal file
126
asterisk/cel.conf
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
;
|
||||||
|
; Asterisk Channel Event Logging (CEL)
|
||||||
|
;
|
||||||
|
|
||||||
|
; Channel Event Logging is a mechanism to provide fine-grained event information
|
||||||
|
; that can be used to generate billing information. Such event information can
|
||||||
|
; be recorded to various backend modules.
|
||||||
|
;
|
||||||
|
|
||||||
|
[general]
|
||||||
|
|
||||||
|
; CEL Activation
|
||||||
|
;
|
||||||
|
; Use the 'enable' keyword to turn CEL on or off.
|
||||||
|
;
|
||||||
|
; Accepted values: yes and no
|
||||||
|
; Default value: no
|
||||||
|
|
||||||
|
;enable=yes
|
||||||
|
|
||||||
|
; Application Tracking
|
||||||
|
;
|
||||||
|
; Use the 'apps' keyword to specify the list of applications for which you want
|
||||||
|
; to receive CEL events. This is a comma separated list of Asterisk dialplan
|
||||||
|
; applications, such as Dial, Queue, and Park.
|
||||||
|
;
|
||||||
|
; Accepted values: A comma separated list of Asterisk dialplan applications
|
||||||
|
; Default value: none
|
||||||
|
;
|
||||||
|
; Note: You may also use 'all' which will result in CEL events being reported
|
||||||
|
; for all Asterisk applications. This may affect Asterisk's performance
|
||||||
|
; significantly.
|
||||||
|
|
||||||
|
apps=dial,park
|
||||||
|
|
||||||
|
; Event Tracking
|
||||||
|
;
|
||||||
|
; Use the 'events' keyword to specify the list of events which you want to be
|
||||||
|
; raised when they occur. This is a comma separated list of the values in the
|
||||||
|
; table below.
|
||||||
|
;
|
||||||
|
; Accepted values: A comma separated list of one or more of the following:
|
||||||
|
; ALL -- Generate entries on all events
|
||||||
|
; CHAN_START -- The time a channel was created
|
||||||
|
; CHAN_END -- The time a channel was terminated
|
||||||
|
; ANSWER -- The time a channel was answered (ie, phone taken off-hook)
|
||||||
|
; HANGUP -- The time at which a hangup occurred
|
||||||
|
; CONF_ENTER -- The time a channel was connected into a conference room
|
||||||
|
; CONF_EXIT -- The time a channel was removed from a conference room
|
||||||
|
; CONF_START -- The time the first person enters a conference room
|
||||||
|
; CONF_END -- The time the last person left a conference room (and
|
||||||
|
; turned out the lights?)
|
||||||
|
; APP_START -- The time a tracked application was started
|
||||||
|
; APP_END -- the time a tracked application ended
|
||||||
|
; PARK_START -- The time a call was parked
|
||||||
|
; PARK_END -- Unpark event
|
||||||
|
; BRIDGE_START -- The time a bridge is started
|
||||||
|
; BRIDGE_END -- The time a bridge is ended
|
||||||
|
; BRIDGE_UPDATE -- This is a replacement channel (Masquerade)
|
||||||
|
; 3WAY_START -- When a 3-way conference starts (usually via attended transfer)
|
||||||
|
; 3WAY_END -- When one or all exit a 3-way conference
|
||||||
|
; BLINDTRANSFER -- When a blind transfer is initiated
|
||||||
|
; ATTENDEDTRANSFER -- When an attended transfer is initiated
|
||||||
|
; TRANSFER -- Generic transfer initiated; not used yet...?
|
||||||
|
; PICKUP -- This channel picked up the peer channel
|
||||||
|
; FORWARD -- This channel is being forwarded somewhere else
|
||||||
|
; HOOKFLASH -- So far, when a hookflash event occurs on a DAHDI
|
||||||
|
; interface
|
||||||
|
; LINKEDID_END -- The last channel with the given linkedid is retired
|
||||||
|
; USER_DEFINED -- Triggered from the dialplan, and has a name given by the
|
||||||
|
; user
|
||||||
|
;
|
||||||
|
; Default value: none
|
||||||
|
; (Track no events)
|
||||||
|
|
||||||
|
events=APP_START,CHAN_START,CHAN_END,ANSWER,HANGUP,BRIDGE_START,BRIDGE_END
|
||||||
|
|
||||||
|
; Date Format
|
||||||
|
;
|
||||||
|
; Use the 'dateformat' keyword to specify the date format used when CEL events
|
||||||
|
; are raised.
|
||||||
|
;
|
||||||
|
; Accepted values: A strftime format string (see man strftime)
|
||||||
|
;
|
||||||
|
; Example: "%F %T"
|
||||||
|
; -> This gives the date and time in the format "2009-06-23 17:02:35"
|
||||||
|
;
|
||||||
|
; If this option is not specified, the default format is "<seconds>.<microseconds>"
|
||||||
|
; since epoch. The microseconds field will always be 6 digits in length, meaning it
|
||||||
|
; may have leading zeros.
|
||||||
|
;
|
||||||
|
;dateformat = %F %T
|
||||||
|
|
||||||
|
;
|
||||||
|
; Asterisk Manager Interface (AMI) CEL Backend
|
||||||
|
;
|
||||||
|
[manager]
|
||||||
|
|
||||||
|
; AMI Backend Activation
|
||||||
|
;
|
||||||
|
; Use the 'enable' keyword to turn CEL logging to the Asterisk Manager Interface
|
||||||
|
; on or off.
|
||||||
|
;
|
||||||
|
; Accepted values: yes and no
|
||||||
|
; Default value: no
|
||||||
|
;enabled=yes
|
||||||
|
|
||||||
|
; Use 'show_user_defined' to put "USER_DEFINED" in the EventName header,
|
||||||
|
; instead of (by default) just putting the user defined event name there.
|
||||||
|
; When enabled the UserDefType header is added for user defined events to
|
||||||
|
; provide the user defined event name.
|
||||||
|
;
|
||||||
|
;show_user_defined=yes
|
||||||
|
|
||||||
|
;
|
||||||
|
; RADIUS CEL Backend
|
||||||
|
;
|
||||||
|
[radius]
|
||||||
|
;
|
||||||
|
; Log date/time in GMT
|
||||||
|
;usegmtime=yes
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
;
|
35
asterisk/cel_custom.conf
Normal file
35
asterisk/cel_custom.conf
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
;
|
||||||
|
; Asterisk Channel Event Logging (CEL) - Custom CSV Backend
|
||||||
|
;
|
||||||
|
|
||||||
|
; This is the configuration file for the customizable CSV backend for CEL
|
||||||
|
; logging.
|
||||||
|
;
|
||||||
|
; In order to create custom CSV logs for CEL, uncomment the template below
|
||||||
|
; (Master.csv) and start Asterisk. Once CEL events are generated, a file will
|
||||||
|
; appear in the following location:
|
||||||
|
;
|
||||||
|
; /var/log/asterisk/cel-custom/Master.csv
|
||||||
|
;
|
||||||
|
; (Note that /var/log/asterisk is the default and may differ on your system)
|
||||||
|
;
|
||||||
|
; You can also create more than one template if desired. All logs will appear
|
||||||
|
; in the cel-custom directory under your Asterisk logs directory.
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; Within a mapping, use the CALLERID() and CHANNEL() functions to retrieve
|
||||||
|
; details from the CEL event. There are also a few variables created by this
|
||||||
|
; module that can be used in a mapping:
|
||||||
|
;
|
||||||
|
; eventtype - The name of the CEL event.
|
||||||
|
; eventtime - The timestamp of the CEL event.
|
||||||
|
; eventenum - Like eventtype but is "USER_DEFINED" for a user defined event.
|
||||||
|
; userdeftype - User defined event type name from CELGenUserEvent().
|
||||||
|
; eventextra - Extra data included with this CEL event, typically along with
|
||||||
|
; an event of type USER_DEFINED from CELGenUserEvent().
|
||||||
|
; BRIDGEPEER - Bridged peer channel name at the time of the CEL event.
|
||||||
|
; CHANNEL(peer) could also be used.
|
||||||
|
;
|
||||||
|
[mappings]
|
||||||
|
;Master.csv => ${CSV_QUOTE(${eventtype})},${CSV_QUOTE(${eventtime})},${CSV_QUOTE(${CALLERID(name)})},${CSV_QUOTE(${CALLERID(num)})},${CSV_QUOTE(${CALLERID(ANI)})},${CSV_QUOTE(${CALLERID(RDNIS)})},${CSV_QUOTE(${CALLERID(DNID)})},${CSV_QUOTE(${CHANNEL(exten)})},${CSV_QUOTE(${CHANNEL(context)})},${CSV_QUOTE(${CHANNEL(channame)})},${CSV_QUOTE(${CHANNEL(appname)})},${CSV_QUOTE(${CHANNEL(appdata)})},${CSV_QUOTE(${CHANNEL(amaflags)})},${CSV_QUOTE(${CHANNEL(accountcode)})},${CSV_QUOTE(${CHANNEL(uniqueid)})},${CSV_QUOTE(${CHANNEL(linkedid)})},${CSV_QUOTE(${BRIDGEPEER})},${CSV_QUOTE(${CHANNEL(userfield)})},${CSV_QUOTE(${userdeftype})},${CSV_QUOTE(${eventextra})}
|
108
asterisk/cel_odbc.conf
Normal file
108
asterisk/cel_odbc.conf
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
;
|
||||||
|
; Asterisk Channel Event Logging (CEL) - Adaptive ODBC Backend
|
||||||
|
;
|
||||||
|
|
||||||
|
; General module options category.
|
||||||
|
[general]
|
||||||
|
; Use 'show_user_defined' to put "USER_DEFINED" in the eventtype field,
|
||||||
|
; instead of (by default) just putting the user defined event name there.
|
||||||
|
;
|
||||||
|
;show_user_defined=yes
|
||||||
|
|
||||||
|
; This configuration defines the connections and tables for which CEL records
|
||||||
|
; may be populated. Each context specifies a different CEL table to be used.
|
||||||
|
;
|
||||||
|
; The columns in the tables should match up word-for-word (case-insensitive) to
|
||||||
|
; the CEL 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 CEL variables in the
|
||||||
|
; dialplan.
|
||||||
|
;
|
||||||
|
; 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.
|
||||||
|
;
|
||||||
|
; CEL FIELDS:
|
||||||
|
; eventtype
|
||||||
|
; CHANNEL_START = 1
|
||||||
|
; CHANNEL_END = 2
|
||||||
|
; HANGUP = 3
|
||||||
|
; ANSWER = 4
|
||||||
|
; APP_START = 5
|
||||||
|
; APP_END = 6
|
||||||
|
; BRIDGE_START = 7
|
||||||
|
; BRIDGE_END = 8
|
||||||
|
; CONF_START = 9
|
||||||
|
; CONF_END = 10
|
||||||
|
; PARK_START = 11
|
||||||
|
; PARK_END = 12
|
||||||
|
; BLINDTRANSFER = 13
|
||||||
|
; ATTENDEDTRANSFER = 14
|
||||||
|
; TRANSFER = 15
|
||||||
|
; HOOKFLASH = 16
|
||||||
|
; 3WAY_START = 17
|
||||||
|
; 3WAY_END = 18
|
||||||
|
; CONF_ENTER = 19
|
||||||
|
; CONF_EXIT = 20
|
||||||
|
; USER_DEFINED = 21
|
||||||
|
; LINKEDID_END = 22
|
||||||
|
; BRIDGE_UPDATE = 23
|
||||||
|
; PICKUP = 24
|
||||||
|
; FORWARD = 25
|
||||||
|
; eventtime (timeval, includes microseconds)
|
||||||
|
; userdeftype (set only if eventtype == USER_DEFINED)
|
||||||
|
; cid_name
|
||||||
|
; cid_num
|
||||||
|
; cid_ani
|
||||||
|
; cid_rdnis
|
||||||
|
; cid_dnid
|
||||||
|
; exten
|
||||||
|
; context
|
||||||
|
; channame
|
||||||
|
; appname
|
||||||
|
; appdata
|
||||||
|
; accountcode
|
||||||
|
; peeraccount
|
||||||
|
; uniqueid
|
||||||
|
; linkedid
|
||||||
|
; amaflags (an int)
|
||||||
|
; userfield
|
||||||
|
; peer
|
||||||
|
; extra
|
||||||
|
|
||||||
|
; The point of this module is to allow you log whatever you like in terms of the
|
||||||
|
; CEL 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 this file that maps the standard CEL
|
||||||
|
; field name (uniqueid) to whatever column name you like.
|
||||||
|
|
||||||
|
;[first]
|
||||||
|
;connection=mysql1
|
||||||
|
;table=cel
|
||||||
|
|
||||||
|
;[second]
|
||||||
|
;connection=mysql1
|
||||||
|
;table=extracel
|
||||||
|
|
||||||
|
;[third]
|
||||||
|
;connection=sqlserver
|
||||||
|
;table=AsteriskCEL
|
||||||
|
;usegmtime=yes ; defaults to no
|
||||||
|
;allowleapsecond=no ; allow leap second in SQL column for eventtime, default yes.
|
||||||
|
;alias src => source
|
||||||
|
;alias channel => source_channel
|
||||||
|
;alias dst => dest
|
||||||
|
;alias dstchannel => dest_channel
|
||||||
|
|
||||||
|
; Any filter specified MUST match exactly or the event 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
|
67
asterisk/cel_pgsql.conf
Normal file
67
asterisk/cel_pgsql.conf
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
;
|
||||||
|
; Asterisk Channel Event Logging (CEL) - PostgreSQL Backend
|
||||||
|
;
|
||||||
|
|
||||||
|
; Sample Asterisk config file for CEL logging to PostgreSQL
|
||||||
|
;
|
||||||
|
; CEL field names:
|
||||||
|
;
|
||||||
|
; eventtype
|
||||||
|
; CHANNEL_START = 1
|
||||||
|
; CHANNEL_END = 2
|
||||||
|
; HANGUP = 3
|
||||||
|
; ANSWER = 4
|
||||||
|
; APP_START = 5
|
||||||
|
; APP_END = 6
|
||||||
|
; BRIDGE_START = 7
|
||||||
|
; BRIDGE_END = 8
|
||||||
|
; CONF_START = 9
|
||||||
|
; CONF_END = 10
|
||||||
|
; PARK_START = 11
|
||||||
|
; PARK_END = 12
|
||||||
|
; BLINDTRANSFER = 13
|
||||||
|
; ATTENDEDTRANSFER = 14
|
||||||
|
; TRANSFER = 15
|
||||||
|
; HOOKFLASH = 16
|
||||||
|
; 3WAY_START = 17
|
||||||
|
; 3WAY_END = 18
|
||||||
|
; CONF_ENTER = 19
|
||||||
|
; CONF_EXIT = 20
|
||||||
|
; USER_DEFINED = 21
|
||||||
|
; LINKEDID_END = 22
|
||||||
|
; BRIDGE_UPDATE = 23
|
||||||
|
; PICKUP = 24
|
||||||
|
; FORWARD = 25
|
||||||
|
; eventtime (timeval, includes microseconds)
|
||||||
|
; userdeftype (set only if eventtype == USER_DEFINED)
|
||||||
|
; cid_name
|
||||||
|
; cid_num
|
||||||
|
; cid_ani
|
||||||
|
; cid_rdnis
|
||||||
|
; cid_dnid
|
||||||
|
; exten
|
||||||
|
; context
|
||||||
|
; channame
|
||||||
|
; appname
|
||||||
|
; appdata
|
||||||
|
; accountcode
|
||||||
|
; peeraccount
|
||||||
|
; uniqueid
|
||||||
|
; linkedid
|
||||||
|
; amaflags (an int)
|
||||||
|
; userfield
|
||||||
|
; peer
|
||||||
|
; extra
|
||||||
|
|
||||||
|
[global]
|
||||||
|
; Use 'show_user_defined' to put "USER_DEFINED" in the eventtype field,
|
||||||
|
; instead of (by default) just putting the user defined event name there.
|
||||||
|
;
|
||||||
|
;show_user_defined=yes
|
||||||
|
|
||||||
|
;hostname=localhost
|
||||||
|
;port=5432
|
||||||
|
;dbname=asterisk
|
||||||
|
;password=password
|
||||||
|
;user=postgres
|
||||||
|
;table=cel ;SQL table where CEL's will be inserted
|
24
asterisk/cel_sqlite3_custom.conf
Normal file
24
asterisk/cel_sqlite3_custom.conf
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
;
|
||||||
|
; Asterisk Channel Event Logging (CEL) - SQLite 3 Backend
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; Mappings for sqlite3 config file
|
||||||
|
;
|
||||||
|
; Within a mapping, use the CALLERID() and CHANNEL() functions to retrieve
|
||||||
|
; details from the CEL event. There are also a few variables created by this
|
||||||
|
; module that can be used in a mapping:
|
||||||
|
;
|
||||||
|
; eventtype - The name of the CEL event.
|
||||||
|
; eventtime - The timestamp of the CEL event.
|
||||||
|
; eventenum - Like eventtype but is "USER_DEFINED" for a user defined event.
|
||||||
|
; userdeftype - User defined event type name from CELGenUserEvent().
|
||||||
|
; eventextra - Extra data included with this CEL event, typically along with
|
||||||
|
; an event of type USER_DEFINED from CELGenUserEvent().
|
||||||
|
; BRIDGEPEER - Bridged peer channel name at the time of the CEL event.
|
||||||
|
; CHANNEL(peer) could also be used.
|
||||||
|
;
|
||||||
|
;[master] ; currently, only file "master.db" is supported, with only one table at a time.
|
||||||
|
;table => cel
|
||||||
|
;columns => eventtype, eventtime, cidname, cidnum, cidani, cidrdnis, ciddnid, context, exten, channame, appname, appdata, amaflags, accountcode, uniqueid, userfield, peer, userdeftype, eventextra
|
||||||
|
;values => '${eventtype}','${eventtime}','${CALLERID(name)}','${CALLERID(num)}','${CALLERID(ANI)}','${CALLERID(RDNIS)}','${CALLERID(DNID)}','${CHANNEL(context)}','${CHANNEL(exten)}','${CHANNEL(channame)}','${CHANNEL(appname)}','${CHANNEL(appdata)}','${CHANNEL(amaflags)}','${CHANNEL(accountcode)}','${CHANNEL(uniqueid)}','${CHANNEL(userfield)}','${BRIDGEPEER}','${userdeftype}','${eventextra}'
|
69
asterisk/cel_tds.conf
Normal file
69
asterisk/cel_tds.conf
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
;
|
||||||
|
; Asterisk Channel Event Logging (CEL) - FreeTDS Backend
|
||||||
|
;
|
||||||
|
|
||||||
|
;[global]
|
||||||
|
|
||||||
|
; Connection
|
||||||
|
;
|
||||||
|
; Use the 'connection' keyword to specify one of the instance names from your
|
||||||
|
; 'freetds.conf' file. Note that 'freetds.conf' is not an Asterisk
|
||||||
|
; configuration file, but one specific to the FreeTDS library. See the FreeTDS
|
||||||
|
; documentation on 'freetds.conf' for more information:
|
||||||
|
;
|
||||||
|
; http://www.freetds.org/userguide/freetdsconf.htm
|
||||||
|
;
|
||||||
|
; Accepted values: One of the connections specified in freetds.conf
|
||||||
|
|
||||||
|
;connection=ConnectionFromFreeTDSConf
|
||||||
|
|
||||||
|
; Database Name
|
||||||
|
;
|
||||||
|
; The 'dbname' keyword specifies the database name to use when logging CEL
|
||||||
|
; records.
|
||||||
|
;
|
||||||
|
; Accepted values: Any valid database name
|
||||||
|
|
||||||
|
;dbname=MalicoHN
|
||||||
|
|
||||||
|
; Database Table Name
|
||||||
|
;
|
||||||
|
; The 'table' keyword identifies which database table is used to log CEL
|
||||||
|
; records.
|
||||||
|
;
|
||||||
|
; Accepted value: Any valid table name
|
||||||
|
; Default value: If not specified, a table named 'cel' is assumed
|
||||||
|
|
||||||
|
;table=cel
|
||||||
|
|
||||||
|
; Credentials
|
||||||
|
;
|
||||||
|
; The 'username' and 'password' keywords specify the user credentials that
|
||||||
|
; Asterisk should use when connecting to the database.
|
||||||
|
;
|
||||||
|
; Accepted value: Any valid username and password
|
||||||
|
|
||||||
|
;username=mangUsr
|
||||||
|
;password=
|
||||||
|
|
||||||
|
; Language
|
||||||
|
;
|
||||||
|
; The 'language' keyword changes the language which are used for error and
|
||||||
|
; information messages returned by SQL Server. Each database and user has their
|
||||||
|
; own default value, and this default can be overriden here.
|
||||||
|
;
|
||||||
|
; Accepted value: Any language installed on the target SQL Server.
|
||||||
|
; Default value: Server default
|
||||||
|
|
||||||
|
;language=us_english
|
||||||
|
|
||||||
|
; Character Set
|
||||||
|
;
|
||||||
|
; The 'charset' setting is used to change the character set used when connecting
|
||||||
|
; to the database server. Each database and database user has their own
|
||||||
|
; character set setting, and this default can be overriden here.
|
||||||
|
;
|
||||||
|
; Accepted value: Any valid character set available on the target server.
|
||||||
|
; Default value: Server setting
|
||||||
|
|
||||||
|
;charset=BIG5
|
1618
asterisk/chan_dahdi.conf
Normal file
1618
asterisk/chan_dahdi.conf
Normal file
File diff suppressed because it is too large
Load Diff
69
asterisk/chan_mobile.conf
Normal file
69
asterisk/chan_mobile.conf
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
;
|
||||||
|
; chan_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
|
||||||
|
;sms=no ; support SMS, defaults to yes
|
||||||
|
;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
|
12
asterisk/cli.conf
Normal file
12
asterisk/cli.conf
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
;
|
||||||
|
; Asterisk CLI configuration
|
||||||
|
;
|
||||||
|
|
||||||
|
[startup_commands]
|
||||||
|
;
|
||||||
|
; Any commands listed in this section will get automatically executed
|
||||||
|
; when Asterisk starts as a daemon or foreground process (-c).
|
||||||
|
;
|
||||||
|
;sip set debug on = yes
|
||||||
|
;core set verbose 3 = yes
|
||||||
|
;core set debug 1 = yes
|
201
asterisk/cli_aliases.conf
Normal file
201
asterisk/cli_aliases.conf
Normal file
@ -0,0 +1,201 @@
|
|||||||
|
;
|
||||||
|
; 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 intense 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.
|
||||||
|
|
||||||
|
[asterisk11_tpl](!)
|
||||||
|
jabber list nodes=xmpp list nodes
|
||||||
|
jabber purge nodes=xmpp purge nodes
|
||||||
|
jabber delete node=xmpp delete node
|
||||||
|
jabber create collection=xmpp create collection
|
||||||
|
jabber create leaf=xmpp create leaf
|
||||||
|
jabber set debug=xmpp set debug
|
||||||
|
jabber show connections=xmpp show connections
|
||||||
|
jabber show buddies=xmpp show buddies
|
||||||
|
|
||||||
|
[asterisk11](asterisk11_tpl)
|
||||||
|
; add any additional custom commands you want below here.
|
82
asterisk/cli_permissions.conf
Normal file
82
asterisk/cli_permissions.conf
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
;
|
||||||
|
; CLI permissions configuration example for Asterisk
|
||||||
|
;
|
||||||
|
; All the users that you want to connect with asterisk using
|
||||||
|
; rasterisk, should have write/read access to the
|
||||||
|
; asterisk socket (asterisk.ctl). You could change the permissions
|
||||||
|
; of this file in 'asterisk.conf' config parameter: 'astctlpermissions' (0666)
|
||||||
|
; found on the [files] section.
|
||||||
|
;
|
||||||
|
; general options:
|
||||||
|
;
|
||||||
|
; default_perm = permit | deny
|
||||||
|
; This is the default permissions to apply for a user that
|
||||||
|
; does not has a permissions definided.
|
||||||
|
;
|
||||||
|
; user options:
|
||||||
|
; permit = <command name> | all ; allow the user to run 'command' |
|
||||||
|
; ; allow the user to run 'all' the commands
|
||||||
|
; deny = <command name> | all ; disallow the user to run 'command' |
|
||||||
|
; ; disallow the user to run 'all' commands.
|
||||||
|
;
|
||||||
|
|
||||||
|
[general]
|
||||||
|
|
||||||
|
default_perm=permit ; To leave asterisk working as normal
|
||||||
|
; we should set this parameter to 'permit'
|
||||||
|
;
|
||||||
|
; Follows the per-users permissions configs.
|
||||||
|
;
|
||||||
|
; This list is read in the sequence that is being written, so
|
||||||
|
; In this example the user 'eliel' is allow to run only the following
|
||||||
|
; commands:
|
||||||
|
; sip show peer
|
||||||
|
; core set debug
|
||||||
|
; core set verbose
|
||||||
|
; If the user is not specified, the default_perm option will be apply to
|
||||||
|
; every command.
|
||||||
|
;
|
||||||
|
; Notice that you can also use regular expressions to allow or deny access to a
|
||||||
|
; certain command like: 'core show application D*'. In this example the user will be
|
||||||
|
; allowed to view the documentation for all the applications starting with 'D'.
|
||||||
|
; Another regular expression could be: 'channel originate SIP/[0-9]* extension *'
|
||||||
|
; allowing the user to use 'channel originate' on a sip channel and with the 'extension'
|
||||||
|
; parameter and avoiding the use of the 'application' parameter.
|
||||||
|
;
|
||||||
|
; We can also use the templates syntax:
|
||||||
|
; [supportTemplate](!)
|
||||||
|
; deny=all
|
||||||
|
; permit=sip show ; all commands starting with 'sip show' will be allowed
|
||||||
|
; permit=core show
|
||||||
|
;
|
||||||
|
; You can specify permissions for a local group instead of a user,
|
||||||
|
; just put a '@' and we will know that is a group.
|
||||||
|
; IMPORTANT NOTE: Users permissions overwrite group permissions.
|
||||||
|
;
|
||||||
|
;[@adm]
|
||||||
|
;deny=all
|
||||||
|
;permit=sip
|
||||||
|
;permit=core
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;[eliel]
|
||||||
|
;deny=all
|
||||||
|
;permit=sip show peer
|
||||||
|
;deny=sip show peers
|
||||||
|
;permit=core set
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;User 'tommy' inherits from template 'supportTemplate':
|
||||||
|
; deny=all
|
||||||
|
; permit=sip show
|
||||||
|
; permit=core show
|
||||||
|
;[tommy](supportTemplate)
|
||||||
|
;permit=core set debug
|
||||||
|
;permit=dialplan show
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;[mark]
|
||||||
|
;deny=all
|
||||||
|
;permit=all
|
||||||
|
;
|
||||||
|
;
|
153
asterisk/codecs.conf
Normal file
153
asterisk/codecs.conf
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
[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
|
||||||
|
|
||||||
|
; Generate custom formats for formats requiring attributes.
|
||||||
|
; After defining the custom format, the name used in defining
|
||||||
|
; the format can be used throughout Asterisk in the format 'allow'
|
||||||
|
; and 'disallow' options.
|
||||||
|
;
|
||||||
|
; Example: silk8 is a predefined custom format in this config file.
|
||||||
|
; Once this config file is loaded, silk8 can be used anywhere a
|
||||||
|
; peer's codec capabilities are defined.
|
||||||
|
;
|
||||||
|
; In sip.conf 'silk8' can be defined as a capability for a peer.
|
||||||
|
; [peer1]
|
||||||
|
; type=peer
|
||||||
|
; host=dynamic
|
||||||
|
; disallow=all
|
||||||
|
; allow=silk8 ;custom codec defined in codecs.conf
|
||||||
|
;
|
||||||
|
; LIMITATIONS
|
||||||
|
; Custom formats can only be defined at startup. Any changes to this
|
||||||
|
; file made after startup will not take into effect until after Asterisk
|
||||||
|
; is restarted.
|
||||||
|
;
|
||||||
|
|
||||||
|
; Default Custom SILK format definitions, only one custom SILK format per
|
||||||
|
; sample rate is allowed.
|
||||||
|
[silk8]
|
||||||
|
type=silk
|
||||||
|
samprate=8000
|
||||||
|
fec=true ; turn on or off encoding with forward error correction.
|
||||||
|
; On recommended, off by default.
|
||||||
|
packetloss_percentage=10 ; Estimated packet loss percentage in uplink direction. This
|
||||||
|
; affects how much redundancy is built in when using fec.
|
||||||
|
; The higher the percentage, the larger amount of bandwidth is
|
||||||
|
; used. Default is 0%, 10% is recommended when fec is in use.
|
||||||
|
|
||||||
|
maxbitrate=10000 ; Use the table below to make sure a useful bitrate is choosen
|
||||||
|
; for maxbitrate. If not set or value is not within the bounds
|
||||||
|
; of the encoder, a default value is chosen.
|
||||||
|
;
|
||||||
|
; sample rate | bitrate range
|
||||||
|
; 8khz | 5000 - 20000 bps
|
||||||
|
; 12khz | 7000 - 25000 bps
|
||||||
|
; 16khz | 8000 - 30000 bps
|
||||||
|
; 24khz | 20000- 40000 bps
|
||||||
|
;
|
||||||
|
;dtx=true ; Encode using discontinuous transmission mode or not. Turning this
|
||||||
|
; on will save bandwidth during periods of silence at the cost of
|
||||||
|
; increased computational complexity. Off by default.
|
||||||
|
|
||||||
|
[silk12]
|
||||||
|
type=silk
|
||||||
|
samprate=12000
|
||||||
|
maxbitrate=12000
|
||||||
|
fec=true
|
||||||
|
packetloss_percentage=10;
|
||||||
|
|
||||||
|
[silk16]
|
||||||
|
type=silk
|
||||||
|
samprate=16000
|
||||||
|
maxbitrate=20000
|
||||||
|
fec=true
|
||||||
|
packetloss_percentage=10;
|
||||||
|
|
||||||
|
[silk24]
|
||||||
|
type=silk
|
||||||
|
samprate=24000
|
||||||
|
maxbitrate=30000
|
||||||
|
fec=true
|
||||||
|
packetloss_percentage=10;
|
||||||
|
|
||||||
|
|
||||||
|
; Default custom CELT codec definitions. Only one custom CELT definition is allowed
|
||||||
|
; per a sample rate.
|
||||||
|
;[celt44]
|
||||||
|
;type=celt
|
||||||
|
;samprate=44100 ; The samplerate in hz. This option is required.
|
||||||
|
;framesize=480 ; The framesize option represents the duration of each frame in samples.
|
||||||
|
; This must be a factor of 2. This option is only advertised in an SDP
|
||||||
|
; when it is set. Otherwise a default of framesize of 480 is assumed
|
||||||
|
; internally
|
||||||
|
|
||||||
|
;[celt48]
|
||||||
|
;type=celt
|
||||||
|
;samprate=48000
|
||||||
|
|
||||||
|
;[celt32]
|
||||||
|
;type=celt
|
||||||
|
;samprate=32000
|
368
asterisk/confbridge.conf
Normal file
368
asterisk/confbridge.conf
Normal file
@ -0,0 +1,368 @@
|
|||||||
|
[general]
|
||||||
|
; The general section of this config
|
||||||
|
; is not currently used, but reserved
|
||||||
|
; for future use.
|
||||||
|
|
||||||
|
;
|
||||||
|
; --- Default Information ---
|
||||||
|
; The default_user and default_bridge sections are applied
|
||||||
|
; automatically to all ConfBridge instances invoked without
|
||||||
|
; a user, or bridge argument. No menu is applied by default.
|
||||||
|
;
|
||||||
|
; Note that while properties of the default_user or default_bridge
|
||||||
|
; profile can be overridden, if removed, they will be automatically
|
||||||
|
; added and made available to the dialplan upon module load.
|
||||||
|
;
|
||||||
|
|
||||||
|
; --- ConfBridge User Profile Options ---
|
||||||
|
[default_user]
|
||||||
|
type=user
|
||||||
|
;admin=yes ; Sets if the user is an admin or not. Off by default.
|
||||||
|
;marked=yes ; Sets if this is a marked user or not. Off by default.
|
||||||
|
;startmuted=yes; Sets if all users should start out muted. Off by default
|
||||||
|
;music_on_hold_when_empty=yes ; Sets whether MOH should be played when only
|
||||||
|
; one person is in the conference or when the
|
||||||
|
; the user is waiting on a marked user to enter
|
||||||
|
; the conference. Off by default.
|
||||||
|
;music_on_hold_class=default ; The MOH class to use for this user.
|
||||||
|
;quiet=yes ; When enabled enter/leave prompts and user intros are not played.
|
||||||
|
; There are some prompts, such as the prompt to enter a PIN number,
|
||||||
|
; that must be played regardless of what this option is set to.
|
||||||
|
; Off by default
|
||||||
|
;announce_user_count=yes ; Sets if the number of users should be announced to the
|
||||||
|
; caller. Off by default.
|
||||||
|
;announce_user_count_all=yes ; Sets if the number of users should be announced to
|
||||||
|
; all the other users in the conference when someone joins.
|
||||||
|
; This option can be either set to 'yes' or a number.
|
||||||
|
; When set to a number, the announcement will only occur
|
||||||
|
; once the user count is above the specified number.
|
||||||
|
;announce_only_user=yes ; Sets if the only user announcement should be played
|
||||||
|
; when a channel enters a empty conference. On by default.
|
||||||
|
;wait_marked=yes ; Sets if the user must wait for a marked user to enter before
|
||||||
|
; joining the conference. Off by default.
|
||||||
|
;end_marked=yes ; This option will kick every user with this option set in their
|
||||||
|
; user profile after the last Marked user exists the conference.
|
||||||
|
|
||||||
|
;dsp_drop_silence=yes ; This option drops what Asterisk detects as silence from
|
||||||
|
; entering into the bridge. Enabling this option will drastically
|
||||||
|
; improve performance and help remove the buildup of background
|
||||||
|
; noise from the conference. Highly recommended for large conferences
|
||||||
|
; due to its performance enhancements.
|
||||||
|
|
||||||
|
;dsp_talking_threshold=128 ; The time in milliseconds of sound above what the dsp has
|
||||||
|
; established as base line silence for a user before a user
|
||||||
|
; is considered to be talking. This value affects several
|
||||||
|
; operations and should not be changed unless the impact on
|
||||||
|
; call quality is fully understood.
|
||||||
|
;
|
||||||
|
; What this value affects internally:
|
||||||
|
;
|
||||||
|
; 1. Audio is only mixed out of a user's incoming audio stream
|
||||||
|
; if talking is detected. If this value is set too
|
||||||
|
; loose the user will hear themselves briefly each
|
||||||
|
; time they begin talking until the dsp has time to
|
||||||
|
; establish that they are in fact talking.
|
||||||
|
; 2. When talk detection AMI events are enabled, this value
|
||||||
|
; determines when talking has begun which results in
|
||||||
|
; an AMI event to fire. If this value is set too tight
|
||||||
|
; AMI events may be falsely triggered by variants in
|
||||||
|
; room noise.
|
||||||
|
; 3. The drop_silence option depends on this value to determine
|
||||||
|
; when the user's audio should be mixed into the bridge
|
||||||
|
; after periods of silence. If this value is too loose
|
||||||
|
; the beginning of a user's speech will get cut off as they
|
||||||
|
; transition from silence to talking.
|
||||||
|
;
|
||||||
|
; By default this value is 160 ms. Valid values are 1 through 2^31
|
||||||
|
|
||||||
|
;dsp_silence_threshold=2000 ; The time in milliseconds of sound falling within the what
|
||||||
|
; the dsp has established as baseline silence before a user
|
||||||
|
; is considered be silent. This value affects several
|
||||||
|
; operations and should not be changed unless the impact
|
||||||
|
; on call quality is fully understood.
|
||||||
|
;
|
||||||
|
; What this value affects internally:
|
||||||
|
;
|
||||||
|
; 1. When talk detection AMI events are enabled, this value
|
||||||
|
; determines when the user has stopped talking after a
|
||||||
|
; period of talking. If this value is set too low
|
||||||
|
; AMI events indicating the user has stopped talking
|
||||||
|
; may get falsely sent out when the user briefly pauses
|
||||||
|
; during mid sentence.
|
||||||
|
; 2. The drop_silence option depends on this value to
|
||||||
|
; determine when the user's audio should begin to be
|
||||||
|
; dropped from the conference bridge after the user
|
||||||
|
; stops talking. If this value is set too low the user's
|
||||||
|
; audio stream may sound choppy to the other participants.
|
||||||
|
; This is caused by the user transitioning constantly from
|
||||||
|
; silence to talking during mid sentence.
|
||||||
|
;
|
||||||
|
; The best way to approach this option is to set it slightly above
|
||||||
|
; the maximum amount of ms of silence a user may generate during
|
||||||
|
; natural speech.
|
||||||
|
;
|
||||||
|
; By default this value is 2500ms. Valid values are 1 through 2^31
|
||||||
|
|
||||||
|
;talk_detection_events=yes ; This option sets whether or not notifications of when a user
|
||||||
|
; begins and ends talking should be sent out as events over AMI.
|
||||||
|
; By default this option is off.
|
||||||
|
|
||||||
|
;denoise=yes ; Sets whether or not a denoise filter should be applied
|
||||||
|
; to the audio before mixing or not. Off by default. Requires
|
||||||
|
; func_speex to be built and installed. Do not confuse this option
|
||||||
|
; with drop_silence. Denoise is useful if there is a lot of background
|
||||||
|
; noise for a user as it attempts to remove the noise while preserving
|
||||||
|
; the speech. This option does NOT remove silence from being mixed into
|
||||||
|
; the conference and does come at the cost of a slight performance hit.
|
||||||
|
|
||||||
|
;jitterbuffer=yes ; Enabling this option places a jitterbuffer on the user's audio stream
|
||||||
|
; before audio mixing is performed. This is highly recommended but will
|
||||||
|
; add a slight delay to the audio. This option is using the JITTERBUFFER
|
||||||
|
; dialplan function's default adaptive jitterbuffer. For a more fine tuned
|
||||||
|
; jitterbuffer, disable this option and use the JITTERBUFFER dialplan function
|
||||||
|
; on the user before entering the ConfBridge application.
|
||||||
|
|
||||||
|
;pin=1234 ; Sets if this user must enter a PIN number before entering
|
||||||
|
; the conference. The PIN will be prompted for.
|
||||||
|
;announce_join_leave=yes ; When enabled, this option will prompt the user for a
|
||||||
|
; name when entering the conference. After the name is
|
||||||
|
; recorded, it will be played as the user enters and exists
|
||||||
|
; the conference. This option is off by default.
|
||||||
|
;dtmf_passthrough=yes ; Sets whether or not DTMF should pass through the conference.
|
||||||
|
; This option is off by default.
|
||||||
|
;announcement=</path/to/file> ; Play a sound file to the user when they join the conference.
|
||||||
|
|
||||||
|
; --- ConfBridge Bridge Profile Options ---
|
||||||
|
[default_bridge]
|
||||||
|
type=bridge
|
||||||
|
;max_members=50 ; This option limits the number of participants for a single
|
||||||
|
; conference to a specific number. By default conferences
|
||||||
|
; have no participant limit. After the limit is reached, the
|
||||||
|
; conference will be locked until someone leaves. Note however
|
||||||
|
; that an Admin user will always be alowed to join the conference
|
||||||
|
; regardless if this limit is reached or not.
|
||||||
|
|
||||||
|
;record_conference=yes ; Records the conference call starting when the first user
|
||||||
|
; enters the room, and ending when the last user exits the room.
|
||||||
|
; The default recorded filename is
|
||||||
|
; 'confbridge-<name of conference bridge>-<start time>.wav
|
||||||
|
; and the default format is 8khz slinear. This file will be
|
||||||
|
; located in the configured monitoring directory in asterisk.conf.
|
||||||
|
|
||||||
|
;record_file=</path/to/file> ; When record_conference is set to yes, the specific name of the
|
||||||
|
; record file can be set using this option. Note that since multiple
|
||||||
|
; conferences may use the same bridge profile, this may cause issues
|
||||||
|
; depending on the configuration. It is recommended to only use this
|
||||||
|
; option dynamically with the CONFBRIDGE() dialplan function. This
|
||||||
|
; allows the record name to be specified and a unique name to be chosen.
|
||||||
|
; By default, the record_file is stored in Asterisk's spool/monitor directory
|
||||||
|
; with a unique filename starting with the 'confbridge' prefix.
|
||||||
|
|
||||||
|
;internal_sample_rate=auto ; Sets the internal native sample rate the
|
||||||
|
; conference is mixed at. This is set to automatically
|
||||||
|
; adjust the sample rate to the best quality by default.
|
||||||
|
; Other values can be anything from 8000-192000. If a
|
||||||
|
; sample rate is set that Asterisk does not support, the
|
||||||
|
; closest sample rate Asterisk does support to the one requested
|
||||||
|
; will be used.
|
||||||
|
|
||||||
|
;mixing_interval=40 ; Sets the internal mixing interval in milliseconds for the bridge. This
|
||||||
|
; number reflects how tight or loose the mixing will be for the conference.
|
||||||
|
; In order to improve performance a larger mixing interval such as 40ms may
|
||||||
|
; be chosen. Using a larger mixing interval comes at the cost of introducing
|
||||||
|
; larger amounts of delay into the bridge. Valid values here are 10, 20, 40,
|
||||||
|
; or 80. By default 20ms is used.
|
||||||
|
|
||||||
|
;video_mode = follow_talker; Sets how confbridge handles video distribution to the conference participants.
|
||||||
|
; Note that participants wanting to view and be the source of a video feed
|
||||||
|
; _MUST_ be sharing the same video codec. Also, using video in conjunction with
|
||||||
|
; with the jitterbuffer currently results in the audio being slightly out of sync
|
||||||
|
; with the video. This is a result of the jitterbuffer only working on the audio
|
||||||
|
; stream. It is recommended to disable the jitterbuffer when video is used.
|
||||||
|
;
|
||||||
|
; --- MODES ---
|
||||||
|
; none: No video sources are set by default in the conference. It is still
|
||||||
|
; possible for a user to be set as a video source via AMI or DTMF action
|
||||||
|
; at any time.
|
||||||
|
;
|
||||||
|
; follow_talker: The video feed will follow whoever is talking and providing video.
|
||||||
|
;
|
||||||
|
; last_marked: The last marked user to join the conference with video capabilities
|
||||||
|
; will be the single source of video distributed to all participants.
|
||||||
|
; If multiple marked users are capable of video, the last one to join
|
||||||
|
; is always the source, when that user leaves it goes to the one who
|
||||||
|
; joined before them.
|
||||||
|
;
|
||||||
|
; first_marked: The first marked user to join the conference with video capabilities
|
||||||
|
; is the single source of video distribution among all participants. If
|
||||||
|
; that user leaves, the marked user to join after them becomes the source.
|
||||||
|
|
||||||
|
;language=en ; Set the language used for announcements to the conference.
|
||||||
|
; Default is en (English).
|
||||||
|
|
||||||
|
; All sounds in the conference are customizable using the bridge profile options below.
|
||||||
|
; Simply state the option followed by the filename or full path of the filename after
|
||||||
|
; the option. Example: sound_had_joined=conf-hasjoin This will play the conf-hasjoin
|
||||||
|
; sound file found in the sounds directory when announcing someone's name is joining the
|
||||||
|
; conference.
|
||||||
|
|
||||||
|
;sound_join ; The sound played to everyone when someone enters the conference.
|
||||||
|
;sound_leave ; The sound played to everyone when someone leaves the conference.
|
||||||
|
;sound_has_joined ; The sound played before announcing someone's name has
|
||||||
|
; joined the conference. This is used for user intros.
|
||||||
|
; Example "_____ has joined the conference"
|
||||||
|
;sound_has_left ; The sound played when announcing someone's name has
|
||||||
|
; left the conference. This is used for user intros.
|
||||||
|
; Example "_____ has left the conference"
|
||||||
|
;sound_kicked ; The sound played to a user who has been kicked from the conference.
|
||||||
|
;sound_muted ; The sound played when the mute option it toggled on.
|
||||||
|
;sound_unmuted ; The sound played when the mute option it toggled off.
|
||||||
|
;sound_only_person ; The sound played when the user is the only person in the conference.
|
||||||
|
;sound_only_one ; The sound played to a user when there is only one other
|
||||||
|
; person is in the conference.
|
||||||
|
;sound_there_are ; The sound played when announcing how many users there
|
||||||
|
; are in a conference.
|
||||||
|
;sound_other_in_party; ; This file is used in conjunction with 'sound_there_are"
|
||||||
|
; when announcing how many users there are in the conference.
|
||||||
|
; The sounds are stringed together like this.
|
||||||
|
; "sound_there_are" <number of participants> "sound_other_in_party"
|
||||||
|
;sound_place_into_conference ; The sound played when someone is placed into the conference
|
||||||
|
; after waiting for a marked user. This sound is now deprecated
|
||||||
|
; since it was only ever used improperly and correcting that bug
|
||||||
|
; made it completely unused.
|
||||||
|
;sound_wait_for_leader ; The sound played when a user is placed into a conference that
|
||||||
|
; can not start until a marked user enters.
|
||||||
|
;sound_leader_has_left ; The sound played when the last marked user leaves the conference.
|
||||||
|
;sound_get_pin ; The sound played when prompting for a conference pin number.
|
||||||
|
;sound_invalid_pin ; The sound played when an invalid pin is entered too many times.
|
||||||
|
;sound_locked ; The sound played to a user trying to join a locked conference.
|
||||||
|
;sound_locked_now ; The sound played to an admin after toggling the conference to locked mode.
|
||||||
|
;sound_unlocked_now; The sound played to an admin after toggling the conference to unlocked mode.
|
||||||
|
;sound_error_menu ; The sound played when an invalid menu option is entered.
|
||||||
|
;sound_begin ; The sound played to the conference when the first marked user enters the conference.
|
||||||
|
|
||||||
|
; --- ConfBridge Menu Options ---
|
||||||
|
; The ConfBridge application also has the ability to
|
||||||
|
; apply custom DTMF menus to each channel using the
|
||||||
|
; application. Like the User and Bridge profiles
|
||||||
|
; a menu is passed in to ConfBridge as an argument in
|
||||||
|
; the dialplan.
|
||||||
|
;
|
||||||
|
; Below is a list of menu actions that can be assigned
|
||||||
|
; to a DTMF sequence.
|
||||||
|
;
|
||||||
|
; To have the first DTMF digit in a sequence be the '#' character, you need to
|
||||||
|
; escape it. If it is not escaped then normal config file processing will
|
||||||
|
; think it is a directive like #include. For example:
|
||||||
|
; \#1=toggle_mute ; Pressing #1 will toggle the mute setting.
|
||||||
|
;
|
||||||
|
; A single DTMF sequence can have multiple actions associated with it. This is
|
||||||
|
; accomplished by stringing the actions together and using a ',' as the delimiter.
|
||||||
|
; Example: Both listening and talking volume is reset when '5' is pressed.
|
||||||
|
; 5=reset_talking_volume, reset_listening_volume
|
||||||
|
;
|
||||||
|
; playback(<name of audio file>&<name of audio file>)
|
||||||
|
; Playback will play back an audio file to a channel
|
||||||
|
; and then immediately return to the conference.
|
||||||
|
; This file can not be interupted by DTMF.
|
||||||
|
; Mutliple files can be chained together using the
|
||||||
|
; '&' character.
|
||||||
|
; playback_and_continue(<name of playback prompt>&<name of playback prompt>)
|
||||||
|
; playback_and_continue will
|
||||||
|
; play back a prompt while continuing to
|
||||||
|
; collect the dtmf sequence. This is useful
|
||||||
|
; when using a menu prompt that describes all
|
||||||
|
; the menu options. Note however that any DTMF
|
||||||
|
; during this action will terminate the prompts
|
||||||
|
; playback. Prompt files can be chained together
|
||||||
|
; using the '&' character as a delimiter.
|
||||||
|
; toggle_mute ; Toggle turning on and off mute. Mute will make the user silent
|
||||||
|
; to everyone else, but the user will still be able to listen in.
|
||||||
|
|
||||||
|
; no_op ; This action does nothing (No Operation). Its only real purpose exists for
|
||||||
|
; being able to reserve a sequence in the config as a menu exit sequence.
|
||||||
|
; decrease_listening_volume ; Decreases the channel's listening volume.
|
||||||
|
; increase_listening_volume ; Increases the channel's listening volume.
|
||||||
|
; reset_listening_volume ; Reset channel's listening volume to default level.
|
||||||
|
|
||||||
|
; decrease_talking_volume ; Decreases the channel's talking volume.
|
||||||
|
; increase_talking_volume ; Icreases the channel's talking volume.
|
||||||
|
; reset_talking_volume ; Reset channel's talking volume to default level.
|
||||||
|
;
|
||||||
|
; dialplan_exec(context,exten,priority) ; The dialplan_exec action allows a user
|
||||||
|
; to escape from the conference and execute
|
||||||
|
; commands in the dialplan. Once the dialplan
|
||||||
|
; exits the user will be put back into the
|
||||||
|
; conference. The possibilities are endless!
|
||||||
|
; leave_conference ; This action allows a user to exit the conference and continue
|
||||||
|
; execution in the dialplan.
|
||||||
|
;
|
||||||
|
; admin_kick_last ; This action allows an Admin to kick the last participant from the
|
||||||
|
; conference. This action will only work for admins which allows
|
||||||
|
; a single menu to be used for both users and admins.
|
||||||
|
;
|
||||||
|
; admin_toggle_conference_lock ; This action allows an Admin to toggle locking and
|
||||||
|
; unlocking the conference. Non admins can not use
|
||||||
|
; this action even if it is in their menu.
|
||||||
|
|
||||||
|
; set_as_single_video_src ; This action allows any user to set themselves as the
|
||||||
|
; single video source distributed to all participants.
|
||||||
|
; This will make the video feed stick to them regardless
|
||||||
|
; of what the video_mode is set to.
|
||||||
|
|
||||||
|
; release_as_single_video_src ; This action allows a user to release themselves as
|
||||||
|
; the video source. If video_mode is not set to "none"
|
||||||
|
; this action will result in the conference returning to
|
||||||
|
; whatever video mode the bridge profile is using.
|
||||||
|
;
|
||||||
|
; Note that this action will have no effect if the user
|
||||||
|
; is not currently the video source. Also, the user is
|
||||||
|
; not guaranteed by using this action that they will not
|
||||||
|
; become the video source again. The bridge will return
|
||||||
|
; to whatever operation the video_mode option is set to
|
||||||
|
; upon release of the video src.
|
||||||
|
|
||||||
|
; admin_toggle_mute_participants ; This action allows an administrator to toggle the mute
|
||||||
|
; state for all non-admins within a conference. All
|
||||||
|
; admin users are unaffected by this option. Note that all
|
||||||
|
; users, regardless of their admin status, are notified
|
||||||
|
; that the conference is muted.
|
||||||
|
|
||||||
|
; participant_count ; This action plays back the number of participants currently
|
||||||
|
; in a conference
|
||||||
|
|
||||||
|
[sample_user_menu]
|
||||||
|
type=menu
|
||||||
|
*=playback_and_continue(conf-usermenu)
|
||||||
|
*1=toggle_mute
|
||||||
|
1=toggle_mute
|
||||||
|
*4=decrease_listening_volume
|
||||||
|
4=decrease_listening_volume
|
||||||
|
*6=increase_listening_volume
|
||||||
|
6=increase_listening_volume
|
||||||
|
*7=decrease_talking_volume
|
||||||
|
7=decrease_talking_volume
|
||||||
|
*8=leave_conference
|
||||||
|
8=leave_conference
|
||||||
|
*9=increase_talking_volume
|
||||||
|
9=increase_talking_volume
|
||||||
|
|
||||||
|
[sample_admin_menu]
|
||||||
|
type=menu
|
||||||
|
*=playback_and_continue(conf-adminmenu)
|
||||||
|
*1=toggle_mute
|
||||||
|
1=toggle_mute
|
||||||
|
*2=admin_toggle_conference_lock ; only applied to admin users
|
||||||
|
2=admin_toggle_conference_lock ; only applied to admin users
|
||||||
|
*3=admin_kick_last ; only applied to admin users
|
||||||
|
3=admin_kick_last ; only applied to admin users
|
||||||
|
*4=decrease_listening_volume
|
||||||
|
4=decrease_listening_volume
|
||||||
|
*6=increase_listening_volume
|
||||||
|
6=increase_listening_volume
|
||||||
|
*7=decrease_talking_volume
|
||||||
|
7=decrease_talking_volume
|
||||||
|
*8=no_op
|
||||||
|
8=no_op
|
||||||
|
*9=increase_talking_volume
|
||||||
|
9=increase_talking_volume
|
38
asterisk/config_test.conf
Normal file
38
asterisk/config_test.conf
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
; Config to test config parsing
|
||||||
|
; global and item have values that differ from defaults
|
||||||
|
; global_defaults and item_defualts are to show all defaults are set
|
||||||
|
; there should be an option for every default type, and a custom type
|
||||||
|
|
||||||
|
[global]
|
||||||
|
intopt=-1
|
||||||
|
uintopt=1
|
||||||
|
doubleopt=0.1
|
||||||
|
sockaddropt=1.2.3.4:1234
|
||||||
|
boolopt=true
|
||||||
|
boolflag1=true
|
||||||
|
boolflag2=false
|
||||||
|
boolflag3=true
|
||||||
|
deny=0.0.0.0/0
|
||||||
|
permit=1.2.3.4/32
|
||||||
|
codecopt=!all,ulaw,g729
|
||||||
|
stropt=test
|
||||||
|
customopt=yes
|
||||||
|
|
||||||
|
[global_defaults]
|
||||||
|
|
||||||
|
[item]
|
||||||
|
intopt=-1
|
||||||
|
uintopt=1
|
||||||
|
doubleopt=0.1
|
||||||
|
sockaddropt=1.2.3.4:1234
|
||||||
|
boolopt=true
|
||||||
|
boolflag1=true
|
||||||
|
boolflag2=false
|
||||||
|
boolflag3=true
|
||||||
|
acldenyopt=0.0.0.0/0
|
||||||
|
aclpermitopt=1.2.3.4/32
|
||||||
|
codecopt=!all,ulaw,g729
|
||||||
|
stropt=test
|
||||||
|
customopt=yes
|
||||||
|
|
||||||
|
[item_defaults]
|
97
asterisk/console.conf
Normal file
97
asterisk/console.conf
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
;
|
||||||
|
; Configuration for chan_console, a cross-platform console channel driver.
|
||||||
|
;
|
||||||
|
|
||||||
|
[general]
|
||||||
|
|
||||||
|
; Set this option to "yes" to enable automatically answering calls on the
|
||||||
|
; console. This is very useful if the console is used as an intercom.
|
||||||
|
; The default value is "no".
|
||||||
|
;
|
||||||
|
;autoanswer = no
|
||||||
|
|
||||||
|
; Set the default context to use for outgoing calls. This can be overridden by
|
||||||
|
; dialing some extension@context, unless the overridecontext option is enabled.
|
||||||
|
; The default is "default".
|
||||||
|
;
|
||||||
|
;context = default
|
||||||
|
|
||||||
|
; Set the default extension to use for outgoing calls. The default is "s".
|
||||||
|
;
|
||||||
|
;extension = s
|
||||||
|
|
||||||
|
; Set the default CallerID for created channels.
|
||||||
|
;
|
||||||
|
;callerid = MyName Here <(256) 428-6000>
|
||||||
|
|
||||||
|
; Set the default language for created channels.
|
||||||
|
;
|
||||||
|
;language = en
|
||||||
|
|
||||||
|
; If you set overridecontext to 'yes', then the whole dial string
|
||||||
|
; will be interpreted as an extension, which is extremely useful
|
||||||
|
; to dial SIP, IAX and other extensions which use the '@' character.
|
||||||
|
; The default is "no".
|
||||||
|
;
|
||||||
|
;overridecontext = no ; if 'no', the last @ will start the context
|
||||||
|
; if 'yes' the whole string is an extension.
|
||||||
|
|
||||||
|
|
||||||
|
; Default Music on Hold class to use when this channel is placed on hold in
|
||||||
|
; the case that the music class is not set on the channel with
|
||||||
|
; Set(CHANNEL(musicclass)=whatever) in the dialplan and the peer channel
|
||||||
|
; putting this one on hold did not suggest a class to use.
|
||||||
|
;
|
||||||
|
;mohinterpret=default
|
||||||
|
|
||||||
|
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
|
||||||
|
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an
|
||||||
|
; Console channel. Defaults to "no". An enabled jitterbuffer will
|
||||||
|
; be used only if the sending side can create and the receiving
|
||||||
|
; side can not accept jitter. The Console channel can't accept jitter,
|
||||||
|
; thus an enabled jitterbuffer on the receive Console side will always
|
||||||
|
; be used if the sending side can create jitter.
|
||||||
|
|
||||||
|
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||||
|
|
||||||
|
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||||
|
; resynchronized. Useful to improve the quality of the voice, with
|
||||||
|
; big jumps in/broken timestamps, usually sent from exotic devices
|
||||||
|
; and programs. Defaults to 1000.
|
||||||
|
|
||||||
|
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a Console
|
||||||
|
; channel. Two implementations are currently available - "fixed"
|
||||||
|
; (with size always equals to jbmax-size) and "adaptive" (with
|
||||||
|
; variable size, actually the new jb of IAX2). Defaults to fixed.
|
||||||
|
|
||||||
|
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set.
|
||||||
|
; The option represents the number of milliseconds by which the new
|
||||||
|
; jitter buffer will pad its size. the default is 40, so without
|
||||||
|
; modification, the new jitter buffer will set its size to the jitter
|
||||||
|
; value plus 40 milliseconds. increasing this value may help if your
|
||||||
|
; network normally has low jitter, but occasionally has spikes.
|
||||||
|
|
||||||
|
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
|
||||||
|
;-----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; Any configuration context defined beyond the [general] section configures
|
||||||
|
; specific devices for use.
|
||||||
|
;
|
||||||
|
|
||||||
|
[default]
|
||||||
|
input_device = default ; When configuring an input device and output device,
|
||||||
|
output_device = default ; use the name that you see when you run the "console
|
||||||
|
; list available" CLI command. If you say "default", the
|
||||||
|
; system default input and output devices will be used.
|
||||||
|
autoanswer = no
|
||||||
|
context = default
|
||||||
|
extension = s
|
||||||
|
callerid = MyName Here <(256) 428-6000>
|
||||||
|
language = en
|
||||||
|
overridecontext = no
|
||||||
|
mohinterpret = default
|
||||||
|
active = yes ; This option should only be set for one console.
|
||||||
|
; It means that it is the active console to be
|
||||||
|
; used from the Asterisk CLI.
|
35
asterisk/dbsep.conf
Normal file
35
asterisk/dbsep.conf
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#
|
||||||
|
# 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/sippeers
|
||||||
|
#
|
||||||
|
|
||||||
|
# The Data Source Name, as specified by the Perl DBI module.
|
||||||
|
# Typically, this will be along the lines of 'DBI:mysql:astdbname[:dbhostname]' or 'DBI:Pg:dbname=astdbname;hostname=dbhostname'
|
||||||
|
dsn=somedsn
|
||||||
|
|
||||||
|
# Connected database user
|
||||||
|
dbuser=someuser
|
||||||
|
|
||||||
|
# And its password
|
||||||
|
dbpass=password
|
||||||
|
|
||||||
|
# For most databases, this is fine. Set to 'no' for Sybase or MS SQL Server.
|
||||||
|
backslash_is_escape=yes
|
||||||
|
|
5
asterisk/dnsmgr.conf
Normal file
5
asterisk/dnsmgr.conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[general]
|
||||||
|
;enable=yes ; enable creation of managed DNS lookups
|
||||||
|
; default is 'no'
|
||||||
|
;refreshinterval=1200 ; refresh managed DNS lookups every <n> seconds
|
||||||
|
; default is 300 (5 minutes)
|
43
asterisk/dsp.conf
Normal file
43
asterisk/dsp.conf
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
[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
|
||||||
|
|
||||||
|
; DTMF Reverse Twist and Normal Twist is the difference in power between the row and column energies.
|
||||||
|
;
|
||||||
|
; Normal Twist is where the Column energy is greater than the Row energy
|
||||||
|
; Reverse Twist is where the Row energy is greater.
|
||||||
|
;
|
||||||
|
; Power level difference between frequencies for different Administrations/RPOAs
|
||||||
|
; Power Gain equiv
|
||||||
|
; normal reverse dB's
|
||||||
|
; AT&T(default) 6.31 2.51 8dB(normal), 4dB(reverse)
|
||||||
|
; NTT 3.16 3.16 Max. 5dB
|
||||||
|
; Danish 3.98 3.98 Max. 6dB
|
||||||
|
; Australian 10.0 10.0 Max. 10dB
|
||||||
|
; Brazilian 7.94 7.94 Max. 9dB
|
||||||
|
; ETSI 3.98 3.98 Max. 6dB
|
||||||
|
|
||||||
|
;previous version compatible AT&T values
|
||||||
|
; RADIO_RELAX disabled, and relaxdtmf=no
|
||||||
|
; 6.30 2.50 7.99dB(normal), 3.98dB(reverse)
|
||||||
|
; RADIO_RELAX disabled, and relaxdtmf=yes
|
||||||
|
; 6.30 4.00 7.99dB(normal), 6.02dB(reverse)
|
||||||
|
; RADIO_RELAX enabled, and relaxdtmf=no
|
||||||
|
; 6.30 2.50 7.99dB(normal), 3.984dB(reverse)
|
||||||
|
; RADIO_RELAX enabled, and relaxdtmf=yes
|
||||||
|
; 6.30 6.50 7.99dB(normal), 8.13dB(reverse)
|
||||||
|
|
||||||
|
;If you don't know what these mean, don't change them.
|
||||||
|
;dtmf_normal_twist=6.31
|
||||||
|
;dtmf_reverse_twist=2.51
|
||||||
|
;relax_dtmf_normal_twist=6.31
|
||||||
|
;relax_dtmf_reverse_twist=3.98
|
||||||
|
|
||||||
|
;successive number hits/misses of 12.75ms before a digit/nodigit is considered valid
|
||||||
|
;dtmf_hits_to_begin=2
|
||||||
|
;dtmf_misses_to_end=3
|
||||||
|
|
268
asterisk/dundi.conf
Normal file
268
asterisk/dundi.conf
Normal file
@ -0,0 +1,268 @@
|
|||||||
|
;
|
||||||
|
; 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 https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service 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}
|
||||||
|
;
|
||||||
|
; The built in variables ${SECRET}, ${IPADDR} and ${NUMBER} can also be
|
||||||
|
; passed to the weight. For example, you could pass the ${NUMBER} value
|
||||||
|
; to your SHELL() script and use that to dynamically return a weight.
|
||||||
|
;
|
||||||
|
; Note than when using a global variable or dialplan function to set the
|
||||||
|
; weight for a mapping, that response caching should be disabled if you
|
||||||
|
; plan for these values to change frequently at all. If the results are
|
||||||
|
; cached, then any change in value will not take effect until the cache
|
||||||
|
; has expired.
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; The remaining sections represent the peers
|
||||||
|
; that we fundamentally trust. The section name
|
||||||
|
; represents the name and optionally at a specific
|
||||||
|
; DUNDi context if you want the trust to be established
|
||||||
|
; for only a specific DUNDi context.
|
||||||
|
;
|
||||||
|
; inkey - What key they will be authenticating to us with
|
||||||
|
;
|
||||||
|
; outkey - What key we use to authenticate to them
|
||||||
|
;
|
||||||
|
; host - What their host is
|
||||||
|
;
|
||||||
|
; port - The port where their host is listening (default: 4520)
|
||||||
|
;
|
||||||
|
; order - What search order to use. May be 'primary', 'secondary',
|
||||||
|
; 'tertiary' or 'quartiary'. In large systems, it is beneficial
|
||||||
|
; to only query one up-stream host in order to maximize caching
|
||||||
|
; value. Adding one with primary and one with secondary gives you
|
||||||
|
; redundancy without sacrificing performance.
|
||||||
|
;
|
||||||
|
; include - Includes this peer when searching a particular context
|
||||||
|
; for lookup (set "all" to perform all lookups with that
|
||||||
|
; host. This is also the context in which peers are permitted
|
||||||
|
; to precache.
|
||||||
|
;
|
||||||
|
; noinclude - Disincludes this peer when searching a particular context
|
||||||
|
; for lookup (set "all" to perform no lookups with that
|
||||||
|
; host.
|
||||||
|
;
|
||||||
|
; permit - Permits this peer to search a given DUNDi context on
|
||||||
|
; the local system. Set "all" to permit this host to
|
||||||
|
; lookup all contexts. This is also a context for which
|
||||||
|
; we will create/forward PRECACHE commands.
|
||||||
|
;
|
||||||
|
; deny - Denies this peer to search a given DUNDi context on
|
||||||
|
; the local system. Set "all" to deny this host to
|
||||||
|
; lookup all contexts.
|
||||||
|
;
|
||||||
|
; model - inbound, outbound, or symmetric for whether we receive
|
||||||
|
; requests only, transmit requests only, or do both.
|
||||||
|
;
|
||||||
|
; precache - Utilize/Permit precaching with this peer (to pre
|
||||||
|
; cache means to provide an answer when no request
|
||||||
|
; was made and is used so that machines with few
|
||||||
|
; routes can push those routes up a to a higher level).
|
||||||
|
; outgoing means we send precache routes to this peer,
|
||||||
|
; incoming means we permit this peer to send us
|
||||||
|
; precache routes. symmetric means we do both.
|
||||||
|
;
|
||||||
|
; Note: You cannot mix symmetric/outbound model with symmetric/inbound
|
||||||
|
; precache, nor can you mix symmetric/inbound model with symmetric/outbound
|
||||||
|
; precache.
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; The '*' peer is special and matches an unspecified entity
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; Sample Primary e164 DUNDi peer
|
||||||
|
;
|
||||||
|
;[00:50:8B:F3:75:BB]
|
||||||
|
;model = symmetric
|
||||||
|
;host = 64.215.96.114
|
||||||
|
;inkey = digium
|
||||||
|
;outkey = misery
|
||||||
|
;include = e164
|
||||||
|
;permit = e164
|
||||||
|
;qualify = yes
|
||||||
|
|
||||||
|
;
|
||||||
|
; Sample Secondary e164 DUNDi peer
|
||||||
|
;
|
||||||
|
;[00:A0:C9:96:92:84]
|
||||||
|
;model = symmetric
|
||||||
|
;host = misery.digium.com
|
||||||
|
;inkey = misery
|
||||||
|
;outkey = ourkey
|
||||||
|
;include = e164
|
||||||
|
;permit = e164
|
||||||
|
;qualify = yes
|
||||||
|
;order = secondary
|
||||||
|
|
||||||
|
;
|
||||||
|
; Sample "push mode" downstream host
|
||||||
|
;
|
||||||
|
;[00:0C:76:96:75:28]
|
||||||
|
;model = inbound
|
||||||
|
;host = dynamic
|
||||||
|
;precache = inbound
|
||||||
|
;inkey = littleguy
|
||||||
|
;outkey = ourkey
|
||||||
|
;include = e164 ; In this case used only for precaching
|
||||||
|
;permit = e164
|
||||||
|
;qualify = yes
|
||||||
|
|
||||||
|
;
|
||||||
|
; Sample "push mode" upstream host
|
||||||
|
;
|
||||||
|
;[00:07:E9:3B:76:60]
|
||||||
|
;model = outbound
|
||||||
|
;precache = outbound
|
||||||
|
;host = 216.207.245.34
|
||||||
|
;register = yes
|
||||||
|
;inkey = dhcp34
|
||||||
|
;permit = all ; In this case used only for precaching
|
||||||
|
;include = all
|
||||||
|
;qualify = yes
|
||||||
|
;outkey=foo
|
||||||
|
|
||||||
|
;[*]
|
||||||
|
;
|
22
asterisk/enum.conf
Normal file
22
asterisk/enum.conf
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
;
|
||||||
|
; ENUM Configuration for resolving phone numbers over DNS
|
||||||
|
;
|
||||||
|
; Sample config for Asterisk
|
||||||
|
; This file is reloaded at "module reload enum" in the CLI
|
||||||
|
;
|
||||||
|
[general]
|
||||||
|
;
|
||||||
|
; The search list for domains may be customized. Domains are searched
|
||||||
|
; in the order they are listed here.
|
||||||
|
;
|
||||||
|
search => e164.arpa
|
||||||
|
;
|
||||||
|
; If you'd like to use the E.164.org public ENUM registry in addition
|
||||||
|
; to the official e164.arpa one, uncomment the following line
|
||||||
|
;
|
||||||
|
;search => e164.org
|
||||||
|
;
|
||||||
|
; As there are more H323 drivers available you have to select to which
|
||||||
|
; drive a H323 URI will map. Default is "H323".
|
||||||
|
;
|
||||||
|
h323driver => H323
|
102
asterisk/extconfig.conf
Normal file
102
asterisk/extconfig.conf
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
;
|
||||||
|
; Static and realtime external configuration
|
||||||
|
; engine configuration
|
||||||
|
;
|
||||||
|
; See https://wiki.asterisk.org/wiki/display/AST/Realtime+Database+Configuration
|
||||||
|
; for basic table formatting information.
|
||||||
|
;
|
||||||
|
[settings]
|
||||||
|
;
|
||||||
|
; Static configuration files:
|
||||||
|
;
|
||||||
|
; file.conf => driver,database[,table[,priority]]
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
;
|
||||||
|
; Named ACLs specified in realtime also can not be used
|
||||||
|
; from manager.conf unless the storage driver is preloaded.
|
||||||
|
; Attempting to use a realtime stored named ACL before the
|
||||||
|
; driver is loaded will result in an invalid ACL which
|
||||||
|
; rejects all addresses.
|
||||||
|
;
|
||||||
|
; 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,1
|
||||||
|
;example => mysql,asterisk,alttable,2
|
||||||
|
;example2 => ldap,"dc=oxymium,dc=net",example2
|
||||||
|
;
|
||||||
|
; Additionally, priorities are now supported for use as failover methods
|
||||||
|
; for retrieving realtime data. If one connection fails to retrieve any
|
||||||
|
; information, the next sequential priority will be tried next. This
|
||||||
|
; especially works well with ODBC connections, since res_odbc now caches
|
||||||
|
; when connection failures occur and prevents immediately retrying those
|
||||||
|
; connections until after a specified timeout. Note: priorities must
|
||||||
|
; start at 1 and be sequential (i.e. if you have only priorities 1, 2,
|
||||||
|
; and 4, then 4 will be ignored, because there is no 3).
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; Possible driver backends:
|
||||||
|
;
|
||||||
|
; "odbc" is shown in the examples below, but is not the only valid realtime
|
||||||
|
; engine. Here are several of the possible options:
|
||||||
|
; odbc ... res_config_odbc
|
||||||
|
; sqlite ... res_config_sqlite
|
||||||
|
; pgsql ... res_config_pgsql
|
||||||
|
; curl ... res_config_curl
|
||||||
|
; ldap ... res_config_ldap
|
||||||
|
; mysql ... res_config_mysql (available via add-ons in menuselect)
|
||||||
|
;
|
||||||
|
; Note: The res_config_pgsql and res_config_sqlite backends configure the
|
||||||
|
; database used in their respective configuration files and ignore the
|
||||||
|
; database name configured in this file.
|
||||||
|
;
|
||||||
|
;iaxusers => odbc,asterisk
|
||||||
|
;iaxpeers => odbc,asterisk
|
||||||
|
;sippeers => odbc,asterisk
|
||||||
|
;sipregs => odbc,asterisk ; (avoid sipregs if possible, e.g. by using a view)
|
||||||
|
;voicemail => odbc,asterisk
|
||||||
|
;extensions => odbc,asterisk
|
||||||
|
;meetme => mysql,general
|
||||||
|
;queues => odbc,asterisk
|
||||||
|
;queue_members => odbc,asterisk
|
||||||
|
;acls => odbc,asterisk
|
||||||
|
;musiconhold => mysql,general
|
||||||
|
;queue_log => mysql,general
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; While most dynamic realtime engines are automatically used when defined in
|
||||||
|
; this file, 'extensions', distinctively, is not. To activate dynamic realtime
|
||||||
|
; extensions, you must turn them on in each respective context within
|
||||||
|
; extensions.conf with a switch statement. The syntax is:
|
||||||
|
; switch => Realtime/[[db_context@]tablename]/<opts>
|
||||||
|
; The only option available currently is the 'p' option, which disallows
|
||||||
|
; extension pattern queries to the database. If you have no patterns defined
|
||||||
|
; in a particular context, this will save quite a bit of CPU time. However,
|
||||||
|
; note that using dynamic realtime extensions is not recommended anymore as a
|
||||||
|
; best practice; instead, you should consider writing a static dialplan with
|
||||||
|
; proper data abstraction via a tool like func_odbc.
|
||||||
|
|
456
asterisk/extensions.ael
Normal file
456
asterisk/extensions.ael
Normal file
@ -0,0 +1,456 @@
|
|||||||
|
//
|
||||||
|
// Example AEL config file
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Static extension configuration file, used by
|
||||||
|
// the pbx_ael module. This is where you configure all your
|
||||||
|
// inbound and outbound calls in Asterisk.
|
||||||
|
//
|
||||||
|
// This configuration file is reloaded
|
||||||
|
// - With the "ael reload" command in the CLI
|
||||||
|
// - With the "reload" command (that reloads everything) in the CLI
|
||||||
|
|
||||||
|
// The "Globals" category contains global variables that can be referenced
|
||||||
|
// in the dialplan by using the GLOBAL dialplan function:
|
||||||
|
// ${GLOBAL(VARIABLE)}
|
||||||
|
// ${${GLOBAL(VARIABLE)}} or ${text${GLOBAL(VARIABLE)}} or any hybrid
|
||||||
|
// Unix/Linux environmental variables are reached with the ENV dialplan
|
||||||
|
// function: ${ENV(VARIABLE)}
|
||||||
|
//
|
||||||
|
|
||||||
|
// NOTE! NOTE! NOTE!
|
||||||
|
// Asterisk by default will load both extensions.conf and extensions.ael files.
|
||||||
|
// Upon loading these files the dialplans generated from both with be merged,
|
||||||
|
// so you must make sure that you don't have any overlapping contexts or global
|
||||||
|
// variables. If you do, then unexpected behavior may result when the data is
|
||||||
|
// merged.
|
||||||
|
// NOTE! NOTE! NOTE!
|
||||||
|
|
||||||
|
globals {
|
||||||
|
CONSOLE-AEL="Console/dsp"; // Console interface for demo
|
||||||
|
//CONSOLE-AEL=Zap/1;
|
||||||
|
//CONSOLE-AEL=Phone/phone0;
|
||||||
|
IAXINFO-AEL=guest; // IAXtel username/password
|
||||||
|
//IAXINFO-AEL="myuser:mypass";
|
||||||
|
OUTBOUND-TRUNK="Zap/g2"; // Trunk interface
|
||||||
|
//
|
||||||
|
// Note the 'g2' in the OUTBOUND-TRUNK variable above. It specifies which group (defined
|
||||||
|
// in chan_dahdi.conf) to dial, i.e. group 2, and how to choose a channel to use in
|
||||||
|
// the specified group. The four possible options are:
|
||||||
|
//
|
||||||
|
// g: select the lowest-numbered non-busy DAHDI channel
|
||||||
|
// (aka. ascending sequential hunt group).
|
||||||
|
// G: select the highest-numbered non-busy DAHDI channel
|
||||||
|
// (aka. descending sequential hunt group).
|
||||||
|
// r: use a round-robin search, starting at the next highest channel than last
|
||||||
|
// time (aka. ascending rotary hunt group).
|
||||||
|
// R: use a round-robin search, starting at the next lowest channel than last
|
||||||
|
// time (aka. descending rotary hunt group).
|
||||||
|
//
|
||||||
|
OUTBOUND-TRUNKMSD=1; // MSD digits to strip (usually 1 or 0)
|
||||||
|
//OUTBOUND-TRUNK2=IAX2/user:pass@provider;
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Any category other than "General" and "Globals" represent
|
||||||
|
// extension contexts, which are collections of extensions.
|
||||||
|
//
|
||||||
|
// Extension names may be numbers, letters, or combinations
|
||||||
|
// thereof. If an extension name is prefixed by a '_'
|
||||||
|
// character, it is interpreted as a pattern rather than a
|
||||||
|
// literal. In patterns, some characters have special meanings:
|
||||||
|
//
|
||||||
|
// X - any digit from 0-9
|
||||||
|
// Z - any digit from 1-9
|
||||||
|
// N - any digit from 2-9
|
||||||
|
// [1235-9] - any digit in the brackets (in this example, 1,2,3,5,6,7,8,9)
|
||||||
|
// . - wildcard, matches anything remaining (e.g. _9011. matches
|
||||||
|
// anything starting with 9011 excluding 9011 itself)
|
||||||
|
// ! - wildcard, causes the matching process to complete as soon as
|
||||||
|
// it can unambiguously determine that no other matches are possible
|
||||||
|
//
|
||||||
|
// For example the extension _NXXXXXX would match normal 7 digit dialings,
|
||||||
|
// while _1NXXNXXXXXX would represent an area code plus phone number
|
||||||
|
// preceded by a one.
|
||||||
|
//
|
||||||
|
// Each step of an extension is ordered by priority, which must
|
||||||
|
// always start with 1 to be considered a valid extension. The priority
|
||||||
|
// "next" or "n" means the previous priority plus one, regardless of whether
|
||||||
|
// the previous priority was associated with the current extension or not.
|
||||||
|
// The priority "same" or "s" means the same as the previously specified
|
||||||
|
// priority, again regardless of whether the previous entry was for the
|
||||||
|
// same extension. Priorities may be immediately followed by a plus sign
|
||||||
|
// and another integer to add that amount (most useful with 's' or 'n').
|
||||||
|
// Priorities may then also have an alias, or label, in
|
||||||
|
// parenthesis after their name which can be used in goto situations
|
||||||
|
//
|
||||||
|
// Contexts contain several lines, one for each step of each
|
||||||
|
// extension, which can take one of two forms as listed below,
|
||||||
|
// with the first form being preferred. One may include another
|
||||||
|
// context in the current one as well, optionally with a
|
||||||
|
// date and time. Included contexts are included in the order
|
||||||
|
// they are listed.
|
||||||
|
//
|
||||||
|
//context name {
|
||||||
|
// exten-name => {
|
||||||
|
// application(arg1,arg2,...);
|
||||||
|
//
|
||||||
|
// Timing list for includes is
|
||||||
|
//
|
||||||
|
// <time range>|<days of week>|<days of month>|<months>
|
||||||
|
//
|
||||||
|
// includes {
|
||||||
|
// daytime|9:00-17:00|mon-fri|*|*;
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// ignorepat can be used to instruct drivers to not cancel dialtone upon
|
||||||
|
// receipt of a particular pattern. The most commonly used example is
|
||||||
|
// of course '9' like this:
|
||||||
|
//
|
||||||
|
// ignorepat => 9;
|
||||||
|
//
|
||||||
|
// so that dialtone remains even after dialing a 9.
|
||||||
|
//};
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Sample entries for extensions.conf
|
||||||
|
//
|
||||||
|
//
|
||||||
|
context ael-dundi-e164-canonical {
|
||||||
|
//
|
||||||
|
// List canonical entries here
|
||||||
|
//
|
||||||
|
// 12564286000 => &ael-std-exten(6000,IAX2/foo);
|
||||||
|
// _125642860XX => Dial(IAX2/otherbox/${EXTEN:7});
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-dundi-e164-customers {
|
||||||
|
//
|
||||||
|
// If you are an ITSP or Reseller, list your customers here.
|
||||||
|
//
|
||||||
|
//_12564286000 => Dial(SIP/customer1);
|
||||||
|
//_12564286001 => Dial(IAX2/customer2);
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-dundi-e164-via-pstn {
|
||||||
|
//
|
||||||
|
// If you are freely delivering calls to the PSTN, list them here
|
||||||
|
//
|
||||||
|
//_1256428XXXX => Dial(DAHDI/G2/${EXTEN:7}); // Expose all of 256-428
|
||||||
|
//_1256325XXXX => Dial(DAHDI/G2/${EXTEN:7}); // Ditto for 256-325
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-dundi-e164-local {
|
||||||
|
//
|
||||||
|
// Context to put your dundi IAX2 or SIP user in for
|
||||||
|
// full access
|
||||||
|
//
|
||||||
|
includes {
|
||||||
|
ael-dundi-e164-canonical;
|
||||||
|
ael-dundi-e164-customers;
|
||||||
|
ael-dundi-e164-via-pstn;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-dundi-e164-switch {
|
||||||
|
//
|
||||||
|
// Just a wrapper for the switch
|
||||||
|
//
|
||||||
|
|
||||||
|
switches {
|
||||||
|
DUNDi/e164;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-dundi-e164-lookup {
|
||||||
|
//
|
||||||
|
// Locally to lookup, try looking for a local E.164 solution
|
||||||
|
// then try DUNDi if we don't have one.
|
||||||
|
//
|
||||||
|
includes {
|
||||||
|
ael-dundi-e164-local;
|
||||||
|
ael-dundi-e164-switch;
|
||||||
|
};
|
||||||
|
//
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// DUNDi can also be implemented as a Macro instead of using
|
||||||
|
// the Local channel driver.
|
||||||
|
//
|
||||||
|
macro ael-dundi-e164(exten) {
|
||||||
|
//
|
||||||
|
// ARG1 is the extension to Dial
|
||||||
|
//
|
||||||
|
goto ${exten}|1;
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Here are the entries you need to participate in the IAXTEL
|
||||||
|
// call routing system. Most IAXTEL numbers begin with 1-700, but
|
||||||
|
// there are exceptions. For more information, and to sign
|
||||||
|
// up, please go to www.gnophone.com or www.iaxtel.com
|
||||||
|
//
|
||||||
|
context ael-iaxtel700 {
|
||||||
|
_91700XXXXXXX => Dial(IAX2/${IAXINFO-AEL}@iaxtel.com/${EXTEN:1}@iaxtel);
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// The SWITCH statement permits a server to share the dialplan with
|
||||||
|
// another server. Use with care: Reciprocal switch statements are not
|
||||||
|
// allowed (e.g. both A -> B and B -> A), and the switched server needs
|
||||||
|
// to be on-line or else dialing can be severly delayed.
|
||||||
|
//
|
||||||
|
context ael-iaxprovider {
|
||||||
|
switches {
|
||||||
|
// IAX2/user:[key]@myserver/mycontext;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-trunkint {
|
||||||
|
//
|
||||||
|
// International long distance through trunk
|
||||||
|
//
|
||||||
|
includes {
|
||||||
|
ael-dundi-e164-lookup;
|
||||||
|
};
|
||||||
|
_9011. => {
|
||||||
|
&ael-dundi-e164(${EXTEN:4});
|
||||||
|
Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-trunkld {
|
||||||
|
//
|
||||||
|
// Long distance context accessed through trunk
|
||||||
|
//
|
||||||
|
includes {
|
||||||
|
ael-dundi-e164-lookup;
|
||||||
|
};
|
||||||
|
_91NXXNXXXXXX => {
|
||||||
|
&ael-dundi-e164(${EXTEN:1});
|
||||||
|
Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-trunklocal {
|
||||||
|
//
|
||||||
|
// Local seven-digit dialing accessed through trunk interface
|
||||||
|
//
|
||||||
|
_9NXXXXXX => {
|
||||||
|
Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-trunktollfree {
|
||||||
|
//
|
||||||
|
// Long distance context accessed through trunk interface
|
||||||
|
//
|
||||||
|
|
||||||
|
_91800NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||||
|
_91888NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||||
|
_91877NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||||
|
_91866NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-international {
|
||||||
|
//
|
||||||
|
// Master context for international long distance
|
||||||
|
//
|
||||||
|
ignorepat => 9;
|
||||||
|
includes {
|
||||||
|
ael-longdistance;
|
||||||
|
ael-trunkint;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-longdistance {
|
||||||
|
//
|
||||||
|
// Master context for long distance
|
||||||
|
//
|
||||||
|
ignorepat => 9;
|
||||||
|
includes {
|
||||||
|
ael-local;
|
||||||
|
ael-trunkld;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-local {
|
||||||
|
//
|
||||||
|
// Master context for local, toll-free, and iaxtel calls only
|
||||||
|
//
|
||||||
|
ignorepat => 9;
|
||||||
|
includes {
|
||||||
|
ael-default;
|
||||||
|
ael-trunklocal;
|
||||||
|
ael-iaxtel700;
|
||||||
|
ael-trunktollfree;
|
||||||
|
ael-iaxprovider;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// You can use an alternative switch type as well, to resolve
|
||||||
|
// extensions that are not known here, for example with remote
|
||||||
|
// IAX switching you transparently get access to the remote
|
||||||
|
// Asterisk PBX
|
||||||
|
//
|
||||||
|
// switch => IAX2/user:password@bigserver/local
|
||||||
|
//
|
||||||
|
// An "lswitch" is like a switch but is literal, in that
|
||||||
|
// variable substitution is not performed at load time
|
||||||
|
// but is passed to the switch directly (presumably to
|
||||||
|
// be substituted in the switch routine itself)
|
||||||
|
//
|
||||||
|
// lswitch => Loopback/12${EXTEN}@othercontext
|
||||||
|
//
|
||||||
|
// An "eswitch" is like a switch but the evaluation of
|
||||||
|
// variable substitution is performed at runtime before
|
||||||
|
// being passed to the switch routine.
|
||||||
|
//
|
||||||
|
// eswitch => IAX2/context@${CURSERVER}
|
||||||
|
|
||||||
|
|
||||||
|
macro ael-std-exten-ael( ext , dev ) {
|
||||||
|
Dial(${dev}/${ext},20);
|
||||||
|
switch(${DIALSTATUS}) {
|
||||||
|
case BUSY:
|
||||||
|
Voicemail(${ext},b);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Voicemail(${ext},u);
|
||||||
|
};
|
||||||
|
catch a {
|
||||||
|
VoiceMailMain(${ext});
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
|
context ael-demo {
|
||||||
|
s => {
|
||||||
|
Wait(1);
|
||||||
|
Answer();
|
||||||
|
Set(TIMEOUT(digit)=5);
|
||||||
|
Set(TIMEOUT(response)=10);
|
||||||
|
restart:
|
||||||
|
Background(demo-congrats);
|
||||||
|
instructions:
|
||||||
|
for (x=0; ${x} < 3; x=${x} + 1) {
|
||||||
|
Background(demo-instruct);
|
||||||
|
WaitExten();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
2 => {
|
||||||
|
Background(demo-moreinfo);
|
||||||
|
goto s|instructions;
|
||||||
|
};
|
||||||
|
3 => {
|
||||||
|
Set(LANGUAGE()=fr);
|
||||||
|
goto s|restart;
|
||||||
|
};
|
||||||
|
1000 => {
|
||||||
|
goto ael-default|s|1;
|
||||||
|
};
|
||||||
|
500 => {
|
||||||
|
Playback(demo-abouttotry);
|
||||||
|
Dial(IAX2/guest@misery.digium.com/s@default);
|
||||||
|
Playback(demo-nogo);
|
||||||
|
goto s|instructions;
|
||||||
|
};
|
||||||
|
600 => {
|
||||||
|
Playback(demo-echotest);
|
||||||
|
Echo();
|
||||||
|
Playback(demo-echodone);
|
||||||
|
goto s|instructions;
|
||||||
|
};
|
||||||
|
_1234 => &ael-std-exten-ael(${EXTEN}, "IAX2");
|
||||||
|
8500 => {
|
||||||
|
VoicemailMain();
|
||||||
|
goto s|instructions;
|
||||||
|
};
|
||||||
|
# => {
|
||||||
|
Playback(demo-thanks);
|
||||||
|
Hangup();
|
||||||
|
};
|
||||||
|
t => goto #|1;
|
||||||
|
i => Playback(invalid);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// If you wish to use AEL for your default context, remove it
|
||||||
|
// from extensions.conf (or change its name or comment it out)
|
||||||
|
// and then uncomment the one here.
|
||||||
|
//
|
||||||
|
|
||||||
|
context ael-default {
|
||||||
|
|
||||||
|
// By default we include the demo. In a production system, you
|
||||||
|
// probably don't want to have the demo there.
|
||||||
|
|
||||||
|
includes {
|
||||||
|
ael-demo;
|
||||||
|
};
|
||||||
|
//
|
||||||
|
// Extensions like the two below can be used for FWD, Nikotel, sipgate etc.
|
||||||
|
// Note that you must have a [sipprovider] section in sip.conf whereas
|
||||||
|
// the otherprovider.net example does not require such a peer definition
|
||||||
|
//
|
||||||
|
//_41X. => Dial(SIP/${EXTEN:2}@sipprovider,,r);
|
||||||
|
//_42X. => Dial(SIP/user:passwd@${EXTEN:2}@otherprovider.net,30,rT);
|
||||||
|
|
||||||
|
// Real extensions would go here. Generally you want real extensions to be
|
||||||
|
// 4 or 5 digits long (although there is no such requirement) and start with a
|
||||||
|
// single digit that is fairly large (like 6 or 7) so that you have plenty of
|
||||||
|
// room to overlap extensions and menu options without conflict. You can alias
|
||||||
|
// them with names, too, and use global variables
|
||||||
|
|
||||||
|
// 6245 => {
|
||||||
|
// hint(SIP/Grandstream1&SIP/Xlite1,Joe Schmoe); // Channel hints for presence
|
||||||
|
// Dial(SIP/Grandstream1,20,rt); // permit transfer
|
||||||
|
// Dial(${HINT}/5245},20,rtT); // Use hint as listed
|
||||||
|
// switch(${DIALSTATUS}) {
|
||||||
|
// case BUSY:
|
||||||
|
// Voicemail(6245,b);
|
||||||
|
// return;
|
||||||
|
// default:
|
||||||
|
// Voicemail(6245,u);
|
||||||
|
// return;
|
||||||
|
// };
|
||||||
|
// };
|
||||||
|
|
||||||
|
// 6361 => Dial(IAX2/JaneDoe,,rm); // ring without time limit
|
||||||
|
// 6389 => Dial(MGCP/aaln/1@192.168.0.14);
|
||||||
|
// 6394 => Dial(Local/6275/n); // this will dial ${MARK}
|
||||||
|
|
||||||
|
// 6275 => &ael-stdexten(6275,${MARK}); // assuming ${MARK} is something like DAHDI/2
|
||||||
|
// mark => goto 6275|1; // alias mark to 6275
|
||||||
|
// 6536 => &ael-stdexten(6236,${WIL}); // Ditto for wil
|
||||||
|
// wil => goto 6236|1;
|
||||||
|
//
|
||||||
|
// Some other handy things are an extension for checking voicemail via
|
||||||
|
// voicemailmain
|
||||||
|
//
|
||||||
|
// 8500 => {
|
||||||
|
// VoicemailMain();
|
||||||
|
// Hangup();
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// Or a conference room (you'll need to edit meetme.conf to enable this room)
|
||||||
|
//
|
||||||
|
// 8600 => Meetme(1234);
|
||||||
|
//
|
||||||
|
// Or playing an announcement to the called party, as soon it answers
|
||||||
|
//
|
||||||
|
// 8700 => Dial(${MARK},30,A(/path/to/my/announcemsg))
|
||||||
|
//
|
||||||
|
// For more information on applications, just type "show applications" at your
|
||||||
|
// friendly Asterisk CLI prompt.
|
||||||
|
//
|
||||||
|
// 'show application <command>' will show details of how you
|
||||||
|
// use that particular application in this file, the dial plan.
|
||||||
|
//
|
||||||
|
}
|
858
asterisk/extensions.conf
Normal file
858
asterisk/extensions.conf
Normal file
@ -0,0 +1,858 @@
|
|||||||
|
; 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 https://issues.asterisk.org. 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.
|
||||||
|
;
|
||||||
|
; Note: In old versions of Asterisk the PBX in some cases defaulted to
|
||||||
|
; extension "s" when a given extension was wrong (like in AMI originate).
|
||||||
|
; This is no longer the case.
|
||||||
|
;
|
||||||
|
; 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($[${AVAILSTATUS} = "1"]?autoanswer:fail)
|
||||||
|
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(CHANNEL(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)
|
||||||
|
|
||||||
|
[public]
|
||||||
|
;
|
||||||
|
; ATTENTION: If your Asterisk is connected to the internet and you do
|
||||||
|
; not have allowguest=no in sip.conf, everybody out there may use your
|
||||||
|
; public context without authentication. In that case you want to
|
||||||
|
; double check which services you offer to the world.
|
||||||
|
;
|
||||||
|
include => demo
|
||||||
|
|
||||||
|
[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
|
||||||
|
;
|
||||||
|
; You can also monitor the status of a queue by providing a hint for a
|
||||||
|
; particular queue name.
|
||||||
|
;exten => 8502,hint,Queue:markq
|
||||||
|
;exten => 8502,1,Queue(markq)
|
||||||
|
;
|
||||||
|
|
||||||
|
;To subscribe to the availability of a free member in the 'markq' queue.
|
||||||
|
;Note: '_avail' is added to the QueueName
|
||||||
|
;exten => 8501,hint,Queue:markq_avail
|
||||||
|
;exten => 8501,1,Queue(markq)
|
||||||
|
|
||||||
|
; 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.
|
241
asterisk/extensions.lua
Normal file
241
asterisk/extensions.lua
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
|
||||||
|
|
||||||
|
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")
|
||||||
|
-- app["dial"]("DAHDI/1")
|
||||||
|
--
|
||||||
|
-- More examples can be found below.
|
||||||
|
--
|
||||||
|
-- An autoservice is automatically run while lua code is executing. The
|
||||||
|
-- autoservice can be stopped and restarted using the autoservice_stop() and
|
||||||
|
-- autoservice_start() functions. The autservice should be running before
|
||||||
|
-- starting long running operations. The autoservice will automatically be
|
||||||
|
-- stopped before executing applications and dialplan functions and will be
|
||||||
|
-- restarted afterwards. The autoservice_status() function can be used to
|
||||||
|
-- check the current status of the autoservice and will return true if an
|
||||||
|
-- autoservice is currently running.
|
||||||
|
--
|
||||||
|
-- Note about naming conflicts:
|
||||||
|
-- Lua allows you to refer to table entries using the '.' notation,
|
||||||
|
-- I.E. app.goto(something), only if the entry doesn't conflict with an Lua
|
||||||
|
-- reserved word. In the 'goto' example, with Lua 5.1 or earlier, 'goto' is
|
||||||
|
-- not a reserved word so you'd be calling the Asterisk dialplan application
|
||||||
|
-- 'goto'. Lua 5.2 however, introduced the 'goto' control statement which
|
||||||
|
-- makes 'goto' a reserved word. This casues the interpreter to fail parsing
|
||||||
|
-- the file and pbx_lua.so will fail to load. The same applies to any use of
|
||||||
|
-- Lua tables including extensions, channels and any tables you create.
|
||||||
|
--
|
||||||
|
-- There are two ways around this: Since Lua is case-sensitive, you can use
|
||||||
|
-- capitalized names, I.E. app.Goto(something) to refer to the Asterisk apps,
|
||||||
|
-- functions, etc. Or you can use the full syntax, I.E. app["goto"](something).
|
||||||
|
-- Both syntaxes are backwards compatible with earlier Lua versions. To make
|
||||||
|
-- your Lua dialplans easier to maintain and to reduce the chance of future
|
||||||
|
-- conflicts you may want to use the app["goto"](something) syntax for all
|
||||||
|
-- table accesses.
|
||||||
|
--
|
||||||
|
|
||||||
|
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()
|
||||||
|
-- See the naming conflict note above.
|
||||||
|
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"};
|
||||||
|
};
|
||||||
|
|
||||||
|
public = {
|
||||||
|
-- ATTENTION: If your Asterisk is connected to the internet and you do
|
||||||
|
-- not have allowguest=no in sip.conf, everybody out there may use your
|
||||||
|
-- public context without authentication. In that case you want to
|
||||||
|
-- double check which services you offer to the world.
|
||||||
|
--
|
||||||
|
include = {"demo"};
|
||||||
|
};
|
||||||
|
|
||||||
|
["local"] = {
|
||||||
|
["_NXXXXXX"] = outgoing_local;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
hints = {
|
||||||
|
demo = {
|
||||||
|
[1000] = "SIP/1000";
|
||||||
|
[1001] = "SIP/1001";
|
||||||
|
};
|
||||||
|
|
||||||
|
default = {
|
||||||
|
["1234"] = "SIP/1234";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
159
asterisk/extensions_minivm.conf
Normal file
159
asterisk/extensions_minivm.conf
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
; MINI-VOICEMAIL dialplan example
|
||||||
|
; ---------------------------------------------------------------------------------------
|
||||||
|
; ASTERISK_FILE_VERSION(__FILE__, "$Revision: 197535 $")
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; 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))
|
||||||
|
|
238
asterisk/features.conf
Normal file
238
asterisk/features.conf
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
;
|
||||||
|
; Sample Call Features (parking, transfer, etc) configuration
|
||||||
|
;
|
||||||
|
|
||||||
|
[general]
|
||||||
|
|
||||||
|
; OPTIONS THAT CAN ONLY BE SET IN THE GENERAL CONTEXT
|
||||||
|
|
||||||
|
;featuredigittimeout = 1000 ; Max time (ms) between digits for
|
||||||
|
; feature activation (default is 1000 ms)
|
||||||
|
|
||||||
|
; Pickup Options
|
||||||
|
;
|
||||||
|
;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)
|
||||||
|
|
||||||
|
; Transfer Options
|
||||||
|
;
|
||||||
|
;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
|
||||||
|
;atxfernoanswertimeout = 15 ; Timeout for answer on attended transfer default is 15 seconds.
|
||||||
|
;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.
|
||||||
|
;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.
|
||||||
|
; For atxferdropcall=no to work properly, you also need to
|
||||||
|
; define ATXFER_NULL_TECH in main/features.c. The reason the
|
||||||
|
; code is not enabled by default is spelled out in the comment
|
||||||
|
; block near the top of main/features.c describing ATXFER_NULL_TECH.
|
||||||
|
|
||||||
|
; Parking Options
|
||||||
|
;
|
||||||
|
; These options apply to all parking lots, including the default lot defined in
|
||||||
|
; the general context.
|
||||||
|
;
|
||||||
|
;courtesytone = beep ; Sound file to play to when someone picks up a parked call
|
||||||
|
; and also when the Touch Monitor is activated/deactivated.
|
||||||
|
; Default is no tone.
|
||||||
|
;parkedplay = caller ; Who to play courtesytone to when picking up a parked call.
|
||||||
|
; One of: parked, caller, both (default is caller)
|
||||||
|
;parkeddynamic = yes ; Enables dynamically created parkinglots. (default is no)
|
||||||
|
;adsipark = yes ; if you want ADSI parking announcements
|
||||||
|
|
||||||
|
|
||||||
|
; OPTIONS THAT CAN BE SET PER PARKING LOT
|
||||||
|
;
|
||||||
|
; If these options are set in the general context, they will *only* apply to the default
|
||||||
|
; parking lot. If set in any other lot, they will *only* apply to that lot.
|
||||||
|
|
||||||
|
parkext => 700 ; What extension to dial to park. This option can take any alphanumeric string.
|
||||||
|
; (default is 700 for all lots)
|
||||||
|
;parkext_exclusive=yes ; Specify that the parkext created for this parking lot
|
||||||
|
; will only access this parking lot. (default is no for all lots)
|
||||||
|
parkpos => 701-750 ; What extensions to park calls on.
|
||||||
|
; (default is 701-750 for the default lot and blank for custom lots)
|
||||||
|
; These need to be numeric, as Asterisk starts from the start position
|
||||||
|
; and increments with one for the next parked call. Hence, leading zeros
|
||||||
|
; and non-numerical characters will be ignored.
|
||||||
|
context => parkedcalls ; Which context parked calls are in (default is parkedcalls for the default lot and blank for custom lots)
|
||||||
|
;parkinghints = no ; Add hints priorities automatically for parking slots (default is no for all lots).
|
||||||
|
;parkingtime => 45 ; Number of seconds a call can be parked before returning.
|
||||||
|
; (default is 45 for all lots)
|
||||||
|
;parkedcalltransfers = caller ; Enables or disables DTMF based transfers when picking up a parked call.
|
||||||
|
; one of: callee, caller, both, no (default is no for all lots)
|
||||||
|
;parkedcallreparking = caller ; Enables or disables DTMF based parking when picking up a parked call.
|
||||||
|
; one of: callee, caller, both, no (default is no for all lots)
|
||||||
|
;parkedcallhangup = caller ; Enables or disables DTMF based hangups when picking up a parked call.
|
||||||
|
; one of: callee, caller, both, no (default is no for all lots)
|
||||||
|
;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 for all lots)
|
||||||
|
;findslot => next ; Continue to the 'next' free parking space.
|
||||||
|
; (Default is 'first' for all lots)
|
||||||
|
;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.
|
||||||
|
; (Default is 'default' for the default parking lot. Non-default parkinglots
|
||||||
|
; don't specify a class so the class is picked by the channel put on hold
|
||||||
|
; which has the 'default' class by default.)
|
||||||
|
;comebacktoorigin = yes ; Setting this option configures the behavior of call parking when the
|
||||||
|
; parked call times out (See the parkingtime option). The default value is 'yes'.
|
||||||
|
;
|
||||||
|
; 'yes' - When the parked call times out, attempt to send the call back to the peer
|
||||||
|
; that parked this call. This is done by saving off the name of the channel
|
||||||
|
; that parked the call. The call will return to the context 'park-dial' and
|
||||||
|
; an extension created based on the name of the channel that originally parked
|
||||||
|
; the call. This extension will be created automatically to do a Dial() to the
|
||||||
|
; device that originally parked the call for comebacktodialtime seconds. If the
|
||||||
|
; call is not answered, the call will proceed to 'park-dial,t,1'.
|
||||||
|
;
|
||||||
|
; 'no' - This option is useful for performing custom dialplan functionality prior to
|
||||||
|
; sending the call back to the extension that initially parked the call, or to
|
||||||
|
; an entirely different destination.
|
||||||
|
;
|
||||||
|
; When the parked call times out, send it back to the dialplan. The location
|
||||||
|
; will be defined by the comebackcontext option. The extension will be built from
|
||||||
|
; the saved channel name that parked the call. For example, if a SIP peer named
|
||||||
|
; '0004F2040001' parked this call, the extension will be 'SIP_0004F2040001'.
|
||||||
|
; (Note that an underscore is used here because the '/' character has a special
|
||||||
|
; meaning in extension names for CallerID matching.) If this extension does not
|
||||||
|
; exist, the call will be sent to the 's' extension, instead. Finally, if the 's'
|
||||||
|
; extension of 'parkedcallstimeout' does not exist, the call will fall back to the
|
||||||
|
; 's' extension of the 'default' context.
|
||||||
|
;
|
||||||
|
; Additionally, in this example an extension of 'SIP_0004F2040001' will be
|
||||||
|
; created in the 'park-dial' context. This extension will be set up to do a
|
||||||
|
; Dial() to 'SIP/0004F2040001'.
|
||||||
|
;
|
||||||
|
; During the timeout procedure, the following variables are set
|
||||||
|
; PARKINGSLOT - extension that the call was parked in prior to timing out
|
||||||
|
; PARKEDLOT - name of the lot that the call was parked in prior to timing out
|
||||||
|
; PARKER - name of the device that parked the call
|
||||||
|
|
||||||
|
;comebackdialtime = 30 ; When a parked call times out, this is the number of seconds to dial the device that
|
||||||
|
; originally parked the call. It is also available as a channel variable COMEBACKDIALTIME
|
||||||
|
; after a parked call has timed out.
|
||||||
|
; The default value is 30 seconds.
|
||||||
|
;comebackcontext = parkedcallstimeout
|
||||||
|
; The context a timed out call will return to if comebcktoorigin=no.
|
||||||
|
; The default value is 'parkedcallstimeout'.
|
||||||
|
|
||||||
|
|
||||||
|
; EXAMPLE NON-DEFAULT PARKING LOT DEFINITION
|
||||||
|
;
|
||||||
|
; You can set parkinglot with the CHANNEL dialplan function
|
||||||
|
; or by setting 'parkinglot' directly in the channel configuration file.
|
||||||
|
;
|
||||||
|
; (Note: Leading '0's and any non-numerical characters on parkpos extensions
|
||||||
|
; will be ignored. Parkext on the other hand can be any string.)
|
||||||
|
;
|
||||||
|
;[parkinglot_edvina]
|
||||||
|
;context => edvinapark
|
||||||
|
;parkext => 799
|
||||||
|
;parkpos => 800-850
|
||||||
|
;findslot => next
|
||||||
|
;comebacktoorigin = no
|
||||||
|
;comebackdialtime = 90
|
||||||
|
;comebackcontext = edvinapark-timeout ; Make sure you create the context!
|
||||||
|
;parkedmusicclass = edvina
|
||||||
|
|
||||||
|
; EXAMPLE DTMF FEATURE MAP
|
||||||
|
;
|
||||||
|
; 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!
|
||||||
|
; Note that Agents via chan_agent use * to disconnect a call by default. If you are wanting to use *
|
||||||
|
; to abort a transfer you will either need to change the disconnect code here or set endcall to no in agents.conf
|
||||||
|
;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!
|
||||||
|
|
||||||
|
; EXAMPLE DYNAMIC FEATURES APPLICATION MAP
|
||||||
|
;
|
||||||
|
|
||||||
|
[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 when setting the
|
||||||
|
; DYNAMIC_FEATURES variable to enable usage of this feature.
|
||||||
|
; DTMF_sequence -> This is the key sequence used to activate this feature.
|
||||||
|
; ActivateOn -> This is the channel of the call that the application will be executed
|
||||||
|
; on. Valid values are "self" and "peer". "self" means run the
|
||||||
|
; application on the same channel that activated the feature. "peer"
|
||||||
|
; means run the application on the opposite channel from the one that
|
||||||
|
; has activated the feature.
|
||||||
|
; ActivatedBy -> This is which channel is allowed to activate this feature. Valid
|
||||||
|
; values are "caller", "callee", and "both". "both" is the default.
|
||||||
|
; The "caller" is the channel that executed the Dial application, while
|
||||||
|
; the "callee" is the channel called by the Dial application.
|
||||||
|
; Application -> This is the application to execute.
|
||||||
|
; AppArguments -> These are the arguments to be passed into the application. If you need
|
||||||
|
; commas in your arguments, you should use either the second or third
|
||||||
|
; syntax, above.
|
||||||
|
; MOH_Class -> This is the music on hold class to play while the idle
|
||||||
|
; channel waits for the feature to complete. If left blank,
|
||||||
|
; no music will be played.
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; IMPORTANT NOTE: The applicationmap is not intended to be used for all Asterisk
|
||||||
|
; applications. When applications are used in extensions.conf, they are executed
|
||||||
|
; by the PBX core. In this case, these applications are executed outside of the
|
||||||
|
; PBX core, so it does *not* make sense to use any application which has any
|
||||||
|
; concept of dialplan flow. Examples of this would be things like Macro, Goto,
|
||||||
|
; Background, WaitExten, and many more.
|
||||||
|
;
|
||||||
|
; Enabling these features means that the PBX needs to stay in the media flow and
|
||||||
|
; media will not be re-directed if DTMF is sent in the media stream.
|
||||||
|
;
|
||||||
|
; Example Usage:
|
||||||
|
;
|
||||||
|
;testfeature => #9,peer,Playback,tt-monkeys ;Allow both the caller and callee to play
|
||||||
|
; ;tt-monkeys to the opposite channel
|
||||||
|
;
|
||||||
|
; Set arbitrary channel variables, based upon CALLERID number (Note that the application
|
||||||
|
; argument contains commas)
|
||||||
|
;retrieveinfo => #8,peer,Set(ARRAY(CDR(mark),CDR(name))=${ODBC_FOO(${CALLERID(num)})})
|
||||||
|
;
|
||||||
|
;pauseMonitor => #1,self/callee,Pausemonitor ;Allow the callee to pause monitoring
|
||||||
|
; ;on their channel
|
||||||
|
;unpauseMonitor => #3,self/callee,UnPauseMonitor ;Allow the callee to unpause monitoring
|
||||||
|
; ;on their channel
|
||||||
|
|
||||||
|
; Dynamic Feature Groups:
|
||||||
|
; Dynamic feature groups are groupings of features defined in [applicationmap]
|
||||||
|
; that can have their own custom key mappings. To give a channel access to a dynamic
|
||||||
|
; feature group, add the group name to the value of the DYNAMIC_FEATURES variable.
|
||||||
|
;
|
||||||
|
; example:
|
||||||
|
; [myGroupName] ; defines the group named myGroupName
|
||||||
|
; testfeature => #9 ; associates testfeature with the group and the keycode '#9'.
|
||||||
|
; pauseMonitor => ; associates pauseMonitor with the group and uses the keycode specified
|
||||||
|
; ; in the [applicationmap].
|
35
asterisk/festival.conf
Normal file
35
asterisk/festival.conf
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
;
|
||||||
|
; Festival Configuration
|
||||||
|
;
|
||||||
|
[general]
|
||||||
|
;
|
||||||
|
; Host which runs the festival server (default : localhost);
|
||||||
|
;
|
||||||
|
;host=localhost
|
||||||
|
;
|
||||||
|
; Port on host where the festival server runs (default : 1314)
|
||||||
|
;
|
||||||
|
;port=1314
|
||||||
|
;
|
||||||
|
; Use cache (yes, no - defaults to no)
|
||||||
|
;
|
||||||
|
;usecache=yes
|
||||||
|
;
|
||||||
|
; If usecache=yes, a directory to store waveform cache files.
|
||||||
|
; The cache is never cleared (yet), so you must take care of cleaning it
|
||||||
|
; yourself (just delete any or all files from the cache).
|
||||||
|
; THIS DIRECTORY *MUST* EXIST and must be writable from the asterisk process.
|
||||||
|
; Defaults to /tmp/
|
||||||
|
;
|
||||||
|
;cachedir=/var/lib/asterisk/festivalcache/
|
||||||
|
;
|
||||||
|
; Festival command to send to the server.
|
||||||
|
; Defaults to: (tts_textasterisk "%s" 'file)(quit)\n
|
||||||
|
; %s is replaced by the desired text to say. The command MUST end with a
|
||||||
|
; (quit) directive, or the cache handling mechanism will hang. Do not
|
||||||
|
; forget the \n at the end.
|
||||||
|
;
|
||||||
|
;festivalcommand=(tts_textasterisk "%s" 'file)(quit)\n
|
||||||
|
;
|
||||||
|
;
|
||||||
|
|
91
asterisk/followme.conf
Normal file
91
asterisk/followme.conf
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
; 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".
|
||||||
|
; Note this string must not be a substring of declinecall.
|
||||||
|
;
|
||||||
|
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".
|
||||||
|
; Note this string must not be a substring of takecall.
|
||||||
|
;
|
||||||
|
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 #[&...]]>[,<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.
|
||||||
|
;
|
||||||
|
; The timeout value is the amount of time allowed between the time the dialing step
|
||||||
|
; starts and the callee answers. The callee then has until the timeout of the last
|
||||||
|
; step to make a choice on whether to take the call or not. That being the case,
|
||||||
|
; you may want to make the timeout on the last step longer to give enough time to
|
||||||
|
; make the choice to accept or not.
|
||||||
|
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.
|
||||||
|
; Note this string must not be a substring of declinecall.
|
||||||
|
;
|
||||||
|
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.
|
||||||
|
; Note this string must not be a substring of takecall.
|
||||||
|
;
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
96
asterisk/func_odbc.conf
Normal file
96
asterisk/func_odbc.conf
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
;
|
||||||
|
; 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 Rowlimit limits the total number of rows which can be stored for
|
||||||
|
; that query. For mode=multirow, otherwise, func_odbc will
|
||||||
|
; attempt to store all rows in the resultset, up to the maximum
|
||||||
|
; amount of memory. In normal mode, rowlimit can be set to allow
|
||||||
|
; additional rows to be fetched, rather than just the first one.
|
||||||
|
; These additional rows can be returned by using the name of the
|
||||||
|
; function which was called to retrieve the first row as an
|
||||||
|
; argument to ODBC_FETCH().
|
||||||
|
|
||||||
|
|
||||||
|
; 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})}'
|
||||||
|
|
27
asterisk/gtalk.conf
Normal file
27
asterisk/gtalk.conf
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
[general]
|
||||||
|
;context=default ; Context to dump call into
|
||||||
|
;bindaddr=0.0.0.0 ; Address to bind to
|
||||||
|
;externip=127.0.0.1 ; Set your external ip if you are behind a NAT.
|
||||||
|
;stunaddr=mystunserver.com ; Get your external ip from a STUN server.
|
||||||
|
; Note, if the STUN query is successful, this will
|
||||||
|
; replace any value placed in externip;
|
||||||
|
;allowguest=yes ; Allow calls from people not in list of peers
|
||||||
|
;disallow=all
|
||||||
|
;allow=gsm
|
||||||
|
;allow=ulaw
|
||||||
|
;parkinglot=soccer ; Sets the default parking lot for call parking
|
||||||
|
; Parkinglots are configured in features.conf
|
||||||
|
|
||||||
|
;[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.
|
210
asterisk/h323.conf
Normal file
210
asterisk/h323.conf
Normal file
@ -0,0 +1,210 @@
|
|||||||
|
; 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 https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service 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 https://wiki.asterisk.org/wiki/display/AST/RTP+Packetization
|
||||||
|
; for framing options
|
||||||
|
;autoframing=yes ; Set packetization based on the remote endpoint's (ptime)
|
||||||
|
; preferences. Defaults to no.
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
|
||||||
|
|
||||||
|
|
86
asterisk/http.conf
Normal file
86
asterisk/http.conf
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
;
|
||||||
|
; 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. You MUST specify
|
||||||
|
; a bindaddr in order for the HTTP server to run. There is no
|
||||||
|
; default value.
|
||||||
|
;
|
||||||
|
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
|
||||||
|
;
|
||||||
|
; session_inactivity specifies the number of milliseconds to wait for
|
||||||
|
; more data over the HTTP connection before closing it.
|
||||||
|
;
|
||||||
|
; Default: 30000
|
||||||
|
;session_inactivity=30000
|
||||||
|
;
|
||||||
|
; 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/index.html
|
||||||
|
;
|
||||||
|
; HTTPS support. In addition to enabled=yes, you need to
|
||||||
|
; explicitly enable tls, define the port to use,
|
||||||
|
; and have a certificate somewhere.
|
||||||
|
;tlsenable=yes ; enable tls - default no.
|
||||||
|
;tlsbindaddr=0.0.0.0:8089 ; address and port to bind to - default is bindaddr and port 8089.
|
||||||
|
;
|
||||||
|
;tlscertfile=</path/to/certificate.pem> ; path to the certificate file (*.pem) only.
|
||||||
|
;tlsprivatekey=</path/to/private.pem> ; path to private key file (*.pem) only.
|
||||||
|
; If no path is given for tlscertfile or tlsprivatekey, default is to look in current
|
||||||
|
; directory. If no tlsprivatekey is given, default is to search tlscertfile for private key.
|
||||||
|
;
|
||||||
|
; To produce a certificate you can e.g. use openssl. This places both the cert and
|
||||||
|
; private in same .pem file.
|
||||||
|
; 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/
|
||||||
|
;
|
668
asterisk/iax.conf
Normal file
668
asterisk/iax.conf
Normal file
@ -0,0 +1,668 @@
|
|||||||
|
;
|
||||||
|
; Inter-Asterisk eXchange v2 (IAX2) Channel Driver configuration
|
||||||
|
;
|
||||||
|
; This configuration is read when the chan_iax2.so module is loaded, and is
|
||||||
|
; re-read when the module is reloaded, such as when invoking the CLI command:
|
||||||
|
;
|
||||||
|
; *CLI> iax2 reload
|
||||||
|
;
|
||||||
|
|
||||||
|
; General settings, like port number to bind to, and an option address (the
|
||||||
|
; default is to bind to all local addresses).
|
||||||
|
|
||||||
|
[general]
|
||||||
|
|
||||||
|
; Listener Addresses
|
||||||
|
;
|
||||||
|
; Use the 'bindaddr' and 'bindport' options to specify on which address and port
|
||||||
|
; the IAX2 channel driver will listen for incoming requests.
|
||||||
|
;
|
||||||
|
;
|
||||||
|
|
||||||
|
;bindport=4569 ; The default port to listen on
|
||||||
|
; 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 ; You can specify 'bindaddr' 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 IAX2 DPREQ (Dialplan Request)
|
||||||
|
; instead of blocking while it waits for a response.
|
||||||
|
;
|
||||||
|
; Accepted values: yes, no
|
||||||
|
; Default value: no
|
||||||
|
;
|
||||||
|
;iaxcompat=yes
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; Disable UDP checksums (if nochecksums is set, then no checkums will
|
||||||
|
; be calculated/checked on systems supporting this feature)
|
||||||
|
;
|
||||||
|
; Accepted values: yes, no
|
||||||
|
; Default value: no
|
||||||
|
;
|
||||||
|
;nochecksums=yes
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; 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.
|
||||||
|
;
|
||||||
|
; Accepted values: yes, no
|
||||||
|
; Default value: no
|
||||||
|
;
|
||||||
|
;delayreject=yes
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; You may specify a global default AMA flag for iaxtel calls. These flags are
|
||||||
|
; used in the generation of call detail records.
|
||||||
|
;
|
||||||
|
; Accepted values: default, omit, billing, documentation
|
||||||
|
; Default value: default
|
||||||
|
;
|
||||||
|
;amaflags=billing
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; ADSI (Analog Display Services Interface) can be enabled if you have (or may
|
||||||
|
; have) ADSI compatible CPE equipment.
|
||||||
|
;
|
||||||
|
; Accepted values: yes, no
|
||||||
|
; Default value: no
|
||||||
|
;
|
||||||
|
;adsi=yes
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; Whether or not to perform an SRV lookup on outbound calls.
|
||||||
|
;
|
||||||
|
; Accepted values: yes, no
|
||||||
|
; Default value: no
|
||||||
|
;
|
||||||
|
;srvlookup=yes
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; You may specify a default account for Call Detail Records (CDRs) in addition to
|
||||||
|
; specifying on a per-user basis.
|
||||||
|
;
|
||||||
|
; Accepted values: Any string value up to 19 characters in length
|
||||||
|
; Default value: <empty>
|
||||||
|
;
|
||||||
|
;accountcode=lss0101
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; You may specify a global default language for users. This can be specified
|
||||||
|
; also on a per-user basis. If omitted, will fallback to English (en).
|
||||||
|
;
|
||||||
|
; Accepted values: A language tag such as 'en' or 'es'
|
||||||
|
; Default value: en
|
||||||
|
;
|
||||||
|
;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.
|
||||||
|
;
|
||||||
|
; Accepted values: passthrough, or any music-on-hold class name
|
||||||
|
; Default value: <empty>
|
||||||
|
;
|
||||||
|
;mohinterpret=default
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; The 'mohsuggest' 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
|
||||||
|
;disallow=g723.1
|
||||||
|
disallow=lpc10
|
||||||
|
;allow=gsm
|
||||||
|
;
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; Jitter Buffer
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
;
|
||||||
|
; You can adjust several parameters relating to the jitter buffer. The jitter
|
||||||
|
; buffer's function is to compensate for varying network delay.
|
||||||
|
;
|
||||||
|
; All of the jitter buffer settings are in milliseconds. The jitter buffer
|
||||||
|
; works for INCOMING audio only - 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
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; IAX2 Encryption
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
;
|
||||||
|
; 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. The default is no.
|
||||||
|
;
|
||||||
|
;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
|
||||||
|
;
|
||||||
|
; 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 OS 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 OS 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 data 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. Acceptable values are between 10ms and
|
||||||
|
; 1000ms.
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
|
||||||
|
; Minimum and maximum amounts of time that IAX2 peers can request as a
|
||||||
|
; registration expiration interval (in seconds).
|
||||||
|
; minregexpire = 60
|
||||||
|
; maxregexpire = 60
|
||||||
|
|
||||||
|
; IAX2 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 IAX2 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 IAX2 + FWD
|
||||||
|
;
|
||||||
|
; To register using IAX2 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
|
||||||
|
;
|
||||||
|
; Through the use of the res_stun_monitor module, Asterisk has the ability to detect when the
|
||||||
|
; perceived external network address has changed. When the stun_monitor is installed and
|
||||||
|
; configured, chan_iax will renew all outbound registrations when the monitor detects any sort
|
||||||
|
; of network change has occurred. By default this option is enabled, but only takes effect once
|
||||||
|
; res_stun_monitor is configured. If res_stun_monitor is enabled and you wish to not
|
||||||
|
; generate all outbound registrations on a network change, use the option below to disable
|
||||||
|
; this feature.
|
||||||
|
;
|
||||||
|
; subscribe_network_change_event = yes ; on by default
|
||||||
|
;
|
||||||
|
; You can enable authentication debugging to increase the amount of
|
||||||
|
; debugging traffic.
|
||||||
|
;
|
||||||
|
;authdebug = yes
|
||||||
|
;
|
||||||
|
; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service 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 IAX2 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
|
||||||
|
; IAX2 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)
|
||||||
|
|
||||||
|
;rtsavesysname=yes ; Save systemname in realtime database at registration
|
||||||
|
; Default = 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 IAX2 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=public
|
||||||
|
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 Caller*ID 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", "deny", and "acl" 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 IAX2 native transfer
|
||||||
|
;transfer=mediaonly ; When doing IAX2 native transfers, transfer only
|
||||||
|
; the media stream
|
||||||
|
;jitterbuffer=yes ; Override the global setting and enable the jitter
|
||||||
|
; buffer for this user
|
||||||
|
;maxauthreq=10 ; Set the maximum number of outstanding AUTHREQs
|
||||||
|
; waiting for replies. If this limit is reached,
|
||||||
|
; any further authentication will be blocked, until
|
||||||
|
; the pending requests 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. The 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
|
||||||
|
description=Demo System At Digium ; Description of this peer, as listed by
|
||||||
|
; 'iax2 show peers'
|
||||||
|
;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. The default
|
||||||
|
; is 'no.'
|
||||||
|
;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. The default is 'on.'
|
||||||
|
|
||||||
|
; Peers can remotely register as well, so that they can be mobile. Default
|
||||||
|
; IPs 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.
|
||||||
|
;connectedline=yes ; Set if connected line and redirecting information updates
|
||||||
|
; ; are passed between Asterisk servers for this peer.
|
||||||
|
; ; yes - Sending and receiving updates are enabled.
|
||||||
|
; ; send - Only send updates.
|
||||||
|
; ; receive - Only process received updates.
|
||||||
|
; ; no - Sending and receiving updates are disabled.
|
||||||
|
; ; Default is "no".
|
||||||
|
; ;
|
||||||
|
; ; Note: Because of an incompatibility between Asterisk v1.4
|
||||||
|
; ; and Asterisk v1.8 or later, this option must be set
|
||||||
|
; ; to "no" toward the Asterisk v1.4 peer. A symptom of the
|
||||||
|
; ; incompatibility is the call gets disconnected unexpectedly.
|
||||||
|
|
||||||
|
|
||||||
|
;[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
|
||||||
|
;description=Gateway to PSTN
|
||||||
|
;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 shortcut 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
|
||||||
|
;acl=example_named_acl
|
||||||
|
|
||||||
|
;
|
||||||
|
; With immediate=yes, an IAX2 phone or a phone on an IAXy acts as a hot-line
|
||||||
|
; which goes immediately to the s extension when picked up. Useful for
|
||||||
|
; elevator phones, manual service, or other similar applications.
|
||||||
|
;
|
||||||
|
;[manual]
|
||||||
|
;type=friend
|
||||||
|
;host=dynamic
|
||||||
|
;immediate=yes ; go immediately to s extension when picked up
|
||||||
|
;secret=moofoo ; when immediate=yes is specified, secret is required
|
||||||
|
;context=number-please ; we start at the s extension in this context
|
||||||
|
;
|
81
asterisk/iaxprov.conf
Normal file
81
asterisk/iaxprov.conf
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
;
|
||||||
|
; IAX2 Provisioning Information
|
||||||
|
;
|
||||||
|
; Contains provisioning information for templates and for specific service
|
||||||
|
; entries.
|
||||||
|
;
|
||||||
|
; Templates provide a group of settings from which provisioning takes place.
|
||||||
|
; A template may be based upon any template that has been specified before
|
||||||
|
; it. If the template that an entry is based on is not specified then it is
|
||||||
|
; presumed to be 'default' (unless it is the first of course).
|
||||||
|
;
|
||||||
|
; Templates which begin with 'si-' are used for provisioning units with
|
||||||
|
; specific service identifiers. For example the entry "si-000364000126"
|
||||||
|
; would be used when the device with the corresponding service identifier of
|
||||||
|
; "000364000126" attempts to register or make a call.
|
||||||
|
;
|
||||||
|
[default]
|
||||||
|
;
|
||||||
|
; The port number the device should use to bind to. The default is 4569.
|
||||||
|
;
|
||||||
|
;port=4569
|
||||||
|
;
|
||||||
|
; server is our PRIMARY server for registration and placing calls
|
||||||
|
;
|
||||||
|
;server=192.168.69.3
|
||||||
|
;
|
||||||
|
; altserver is the BACKUP server for registration and placing calls in the
|
||||||
|
; event the primary server is unavailable.
|
||||||
|
;
|
||||||
|
;altserver=192.168.69.4
|
||||||
|
;
|
||||||
|
; port is the port number to use for IAX2 outbound. The connections to the
|
||||||
|
; server and altserver -- default is of course 4569.
|
||||||
|
;serverport=4569
|
||||||
|
;
|
||||||
|
; language is the preferred language for the device
|
||||||
|
;
|
||||||
|
;language=en
|
||||||
|
;
|
||||||
|
; codec is the requested codec. The iaxy supports ulaw and adpcm
|
||||||
|
;
|
||||||
|
codec=ulaw
|
||||||
|
;
|
||||||
|
; flags is a comma separated list of flags which the device should
|
||||||
|
; use and may contain any of the following keywords:
|
||||||
|
;
|
||||||
|
; "register" - Register with server
|
||||||
|
; "secure" - Do not accept calls / provisioning not originated by the server
|
||||||
|
; "heartbeat" - Generate status packets on port 9999 sent to 255.255.255.255
|
||||||
|
; "debug" - Output extra debugging to port 9999
|
||||||
|
;
|
||||||
|
; Note that use can use += and -= to adjust parameters
|
||||||
|
;
|
||||||
|
flags=register,heartbeat
|
||||||
|
;
|
||||||
|
; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service 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
|
||||||
|
|
736
asterisk/indications.conf
Normal file
736
asterisk/indications.conf
Normal file
@ -0,0 +1,736 @@
|
|||||||
|
;
|
||||||
|
; 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
|
||||||
|
; 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
|
||||||
|
|
||||||
|
|
||||||
|
[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,400*25
|
||||||
|
|
||||||
|
[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,425
|
||||||
|
|
||||||
|
[my]
|
||||||
|
description = Malaysia
|
||||||
|
ringcadence = 2000,4000
|
||||||
|
dial = 425
|
||||||
|
busy = 425/500,0/500
|
||||||
|
ring = 425/400,0/200,425/400,0/2000
|
||||||
|
congestion = 425/500,0/500
|
||||||
|
; 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
|
||||||
|
|
||||||
|
[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
|
||||||
|
; Reference = http://www.telepermit.co.nz/TNA102.pdf
|
||||||
|
ringcadence = 400,200,400,2000
|
||||||
|
dial = 400
|
||||||
|
busy = 400/500,0/500
|
||||||
|
ring = 400+450/400,0/200,400+450/400,0/2000
|
||||||
|
congestion = 400/250,0/250
|
||||||
|
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,425
|
||||||
|
|
||||||
|
|
||||||
|
[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
|
||||||
|
; 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
|
||||||
|
|
||||||
|
|
||||||
|
[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
|
39
asterisk/jabber.conf
Normal file
39
asterisk/jabber.conf
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
[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.
|
||||||
|
;collection_nodes=yes ; Enable support for XEP-0248 for use with
|
||||||
|
; distributed device state. Default is 'no'.
|
||||||
|
;pubsub_autocreate=yes ; Whether or not the PubSub server supports/is using
|
||||||
|
; auto-create for nodes. If it is, we have to
|
||||||
|
; explicitly pre-create nodes before publishing them.
|
||||||
|
; Default is 'no'.
|
||||||
|
;auth_policy=accept ; Auto accept users' subscription requests (default).
|
||||||
|
; Set to deny for auto denial.
|
||||||
|
;[asterisk]
|
||||||
|
;type=client ; Client or Component connection
|
||||||
|
;serverhost=astjab.org ; Route to server for example, talk.google.com
|
||||||
|
;pubsub_node=pubsub.astjab.org ; Node to use for publishing events via PubSub
|
||||||
|
;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.
|
||||||
|
; For distributed events, these buddies are
|
||||||
|
; automatically added in the whitelist as
|
||||||
|
; 'owners' of the node(s).
|
||||||
|
;distribute_events=yes ; Whether or not to distribute events using
|
||||||
|
; this connection. Default is 'no'.
|
||||||
|
;status=available ; One of: chat, available, away, xaway, or dnd
|
||||||
|
;statusmessage="I am available" ; Have custom status message for Asterisk
|
||||||
|
;timeout=5 ; Timeout (in seconds) on the message stack, defaults to 5.
|
||||||
|
; Messages stored longer than this value will be deleted by Asterisk.
|
||||||
|
; This option applies to incoming messages only, which are intended to
|
||||||
|
; be processed by the JABBER_RECEIVE dialplan function.
|
||||||
|
;sendtodialplan=yes ; Send incoming messages into the dialplan. Off by default.
|
||||||
|
;context=messages ; Dialplan context to send incoming messages to. If not set,
|
||||||
|
; "default" will be used.
|
20
asterisk/jingle.conf
Normal file
20
asterisk/jingle.conf
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
;[general]
|
||||||
|
;context=default ;;Context to dump call into
|
||||||
|
;bindaddr=0.0.0.0 ;;Address to bind to
|
||||||
|
;allowguest=yes ;;Allow calls from people not in
|
||||||
|
;;list of peers
|
||||||
|
;
|
||||||
|
;[guest] ;;special account for options on guest account
|
||||||
|
;disallow=all
|
||||||
|
;allow=ulaw
|
||||||
|
;context=guest
|
||||||
|
;
|
||||||
|
;[ogorman]
|
||||||
|
;username=ogorman@gmail.com ;;username of the peer your
|
||||||
|
;;calling or accepting calls from
|
||||||
|
;disallow=all
|
||||||
|
;allow=ulaw
|
||||||
|
;context=default
|
||||||
|
;connection=asterisk ;;client or component in jabber.conf
|
||||||
|
;;for the call to leave on.
|
||||||
|
;
|
127
asterisk/logger.conf
Normal file
127
asterisk/logger.conf
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
;
|
||||||
|
; 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 makes Asterisk write callids to log messages
|
||||||
|
; (defaults to yes)
|
||||||
|
;use_callids = no
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
;
|
||||||
|
; Determines whether the queue_log always goes to a file, even
|
||||||
|
; when a realtime backend is present (defaults to no).
|
||||||
|
;queue_log_to_file = yes
|
||||||
|
;
|
||||||
|
; 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]. When
|
||||||
|
; exec_after_rotate is set, ${filename} will specify
|
||||||
|
; the new archived logfile.
|
||||||
|
; rotate: Rotate all the old files, such that the oldest has the
|
||||||
|
; highest sequence number [this is the expected behavior
|
||||||
|
; for Unix administrators]. When exec_after_rotate is
|
||||||
|
; set, ${filename} will specify the original root filename.
|
||||||
|
; timestamp: Rename the logfiles using a timestamp instead of a
|
||||||
|
; sequence number when "logger rotate" is executed.
|
||||||
|
; When exec_after_rotate is set, ${filename} will
|
||||||
|
; specify the new archived logfile.
|
||||||
|
;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
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; 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(<level>)
|
||||||
|
; dtmf
|
||||||
|
; fax
|
||||||
|
; security
|
||||||
|
;
|
||||||
|
; Special filename "console" represents the root console
|
||||||
|
;
|
||||||
|
; Filenames can either be relative to the standard Asterisk log directory
|
||||||
|
; (see 'astlogdir' in asterisk.conf), or absolute paths that begin with
|
||||||
|
; '/'.
|
||||||
|
;
|
||||||
|
; Verbose takes an optional argument, in the form of an integer level.
|
||||||
|
; Verbose messages with higher levels will not be logged to the file. If
|
||||||
|
; the verbose level is not specified, it will log verbose messages following
|
||||||
|
; the current level of the root console.
|
||||||
|
;
|
||||||
|
; Special level name "*" means all levels, even dynamic levels registered
|
||||||
|
; by modules after the logger has been initialized (this means that loading
|
||||||
|
; and unloading modules that create/remove dynamic logger levels will result
|
||||||
|
; in these levels being included on filenames that have a level name of "*",
|
||||||
|
; without any need to perform a 'logger reload' or similar operation).
|
||||||
|
; Note that there is no value in specifying both "*" and specific level names
|
||||||
|
; for a filename; the "*" level means all levels. The only exception is if
|
||||||
|
; you need to specify a specific verbose level. e.g, "verbose(3),*".
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
;security => security
|
||||||
|
console => notice,warning,error
|
||||||
|
;console => notice,warning,error,debug
|
||||||
|
messages => notice,warning,error
|
||||||
|
;full => notice,warning,error,debug,verbose,dtmf,fax
|
||||||
|
|
||||||
|
;syslog keyword : This special keyword logs to syslog facility
|
||||||
|
;
|
||||||
|
;syslog.local0 => notice,warning,error
|
||||||
|
;
|
153
asterisk/manager.conf
Normal file
153
asterisk/manager.conf
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
;
|
||||||
|
; AMI - The Asterisk Manager Interface
|
||||||
|
;
|
||||||
|
; Third party application call management support and PBX event supervision
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
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
|
||||||
|
;
|
||||||
|
;tlsenable=no ; set to YES to enable it
|
||||||
|
;tlsbindaddr=0.0.0.0:5039 ; address and port to bind to, default to bindaddr and port 5039
|
||||||
|
;tlscertfile=/tmp/asterisk.pem ; path to the certificate.
|
||||||
|
;tlsprivatekey=/tmp/private.pem ; path to the private key, if no private given,
|
||||||
|
; if no tlsprivatekey is given, default is to search
|
||||||
|
; tlscertfile for private key.
|
||||||
|
;tlscipher=<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'.
|
||||||
|
|
||||||
|
;
|
||||||
|
; Display certain channel variables every time a channel-oriented
|
||||||
|
; event is emitted:
|
||||||
|
;
|
||||||
|
;channelvars = var1,var2,var3
|
||||||
|
|
||||||
|
; debug = on ; enable some debugging info in AMI messages (default off).
|
||||||
|
; Also accessible through the "manager debug" CLI command.
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
|
|
||||||
|
;[mark]
|
||||||
|
;secret = mysecret
|
||||||
|
;deny=0.0.0.0/0.0.0.0
|
||||||
|
;permit=209.16.236.73/255.255.255.0
|
||||||
|
;acl=named_acl_example ; use a named ACL from acl.conf
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;setvar=PBXACCOUNT=edvina
|
||||||
|
; The setvar option defines channel variables that will be set when this account
|
||||||
|
; originates a call. You can define multiple setvar= commands for one manager
|
||||||
|
; user.
|
||||||
|
;
|
||||||
|
;eventfilter=Event: Newchannel
|
||||||
|
;eventfilter=!Channel: DAHDI.*
|
||||||
|
; The eventfilter option is used to whitelist or blacklist events per user.
|
||||||
|
; A filter consists of a (basic/old-style and unanchored) regular expression
|
||||||
|
; that is run on the entire event data. If the first character of the filter
|
||||||
|
; is an exclamation mark (!), the filter is appended to the blacklist instead
|
||||||
|
; of the whitelist. After first checking the read access below, the regular
|
||||||
|
; expression filters are processed as follows:
|
||||||
|
; - If no filters are configured all events are reported as normal.
|
||||||
|
; - If there are white filters only: implied black all filter processed first,
|
||||||
|
; then white filters.
|
||||||
|
; - If there are black filters only: implied white all filter processed first,
|
||||||
|
; then black filters.
|
||||||
|
; - If there are both white and black filters: implied black all filter processed
|
||||||
|
; first, then white filters, and lastly black filters.
|
||||||
|
|
||||||
|
;
|
||||||
|
; 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:
|
||||||
|
;
|
||||||
|
; all - All event classes below (including any we may have missed).
|
||||||
|
; 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.
|
||||||
|
; agi - Output AGI commands executed. Input AGI command to execute.
|
||||||
|
; cc - Call Completion events. Read-only.
|
||||||
|
; aoc - Permission to send Advice Of Charge messages and receive Advice
|
||||||
|
; - Of Charge events.
|
||||||
|
; test - Ability to read TestEvent notifications sent to the Asterisk Test
|
||||||
|
; Suite. Note that this is only enabled when the TEST_FRAMEWORK
|
||||||
|
; compiler flag is defined.
|
||||||
|
; message - Permissions to send out of call messages. Write-only
|
||||||
|
;
|
||||||
|
;read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
|
||||||
|
;write = system,call,agent,user,config,command,reporting,originate,message
|
||||||
|
|
45
asterisk/meetme.conf
Normal file
45
asterisk/meetme.conf
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
;
|
||||||
|
; Configuration file for MeetMe simple conference rooms for Asterisk of course.
|
||||||
|
;
|
||||||
|
; This configuration file is read every time you call app meetme()
|
||||||
|
|
||||||
|
[general]
|
||||||
|
;audiobuffers=32 ; The number of 20ms audio buffers to be used
|
||||||
|
; when feeding audio frames from non-DAHDI channels
|
||||||
|
; into the conference; larger numbers will allow
|
||||||
|
; for the conference to 'de-jitter' audio that arrives
|
||||||
|
; at different timing than the conference's timing
|
||||||
|
; source, but can also allow for latency in hearing
|
||||||
|
; the audio from the speaker. Minimum value is 2,
|
||||||
|
; maximum value is 32.
|
||||||
|
;
|
||||||
|
; Conferences may be scheduled from realtime?
|
||||||
|
;schedule=yes
|
||||||
|
;
|
||||||
|
; Update realtime when members login/out of the conference
|
||||||
|
;logmembercount=no
|
||||||
|
;
|
||||||
|
; How much earlier than the start time should we allow participants to
|
||||||
|
; join the conference (in seconds)?
|
||||||
|
;fuzzystart=300
|
||||||
|
;
|
||||||
|
; If the participants join too early, how much time should we allow
|
||||||
|
; to tell them that they've joined too early, rather than telling them
|
||||||
|
; the conference simply doesn't exist (in seconds)?
|
||||||
|
;earlyalert=3600
|
||||||
|
;
|
||||||
|
; How many seconds before the scheduled end of the conference should
|
||||||
|
; the participants be warned?
|
||||||
|
;endalert=120
|
||||||
|
;
|
||||||
|
[rooms]
|
||||||
|
;
|
||||||
|
; Usage is conf => confno[,pin][,adminpin]
|
||||||
|
;
|
||||||
|
; Note that once a participant has called the conference, a change to the pin
|
||||||
|
; number done in this file will not take effect until there are no more users
|
||||||
|
; in the conference and it goes away. When it is created again, it will have
|
||||||
|
; the new pin number.
|
||||||
|
;
|
||||||
|
;conf => 1234
|
||||||
|
;conf => 2345,9938
|
142
asterisk/mgcp.conf
Normal file
142
asterisk/mgcp.conf
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
;
|
||||||
|
; MGCP Configuration for Asterisk
|
||||||
|
;
|
||||||
|
[general]
|
||||||
|
;port = 2427
|
||||||
|
;bindaddr = 0.0.0.0
|
||||||
|
|
||||||
|
; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service 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.
|
||||||
|
|
||||||
|
;---------------------- DIGIT TIMEOUTS ----------------------------
|
||||||
|
firstdigittimeout = 30000 ; default 16000 = 16s
|
||||||
|
gendigittimeout = 10000 ; default 8000 = 8s
|
||||||
|
matchdigittimeout = 5000 ; defaults 3000 = 3s
|
||||||
|
|
||||||
|
;------------------------------ 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
|
||||||
|
;setvar=one=1 ; Set channel variables associated with this incoming line
|
||||||
|
;setvar=two=2
|
||||||
|
;line => aaln/1 ; now lets save this config to line1 aka aaln/1
|
||||||
|
;clearvars=all ; Reset list of variables back to none
|
||||||
|
;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
|
||||||
|
|
||||||
|
; PacketCable
|
||||||
|
;[sbv5121e-mta.test.local]
|
||||||
|
;host = 10.0.1.3
|
||||||
|
;callwaiting = 1
|
||||||
|
;canreinvite = 1
|
||||||
|
;dtmfmode = rfc2833
|
||||||
|
;amaflags = BILLING
|
||||||
|
;ncs = yes ; Use NCS 1.0 signalling
|
||||||
|
;pktcgatealloc = yes ; Allocate DQOS gate on CMTS
|
||||||
|
;hangupongateremove = yes ; Hangup the channel if the CMTS close the gate
|
||||||
|
;callerid = 3622622225
|
||||||
|
;accountcode = test-3622622225
|
||||||
|
;line = aaln/1
|
||||||
|
;callerid = 3622622226
|
||||||
|
;accountcode = test-3622622226
|
||||||
|
;line = aaln/2
|
218
asterisk/minivm.conf
Normal file
218
asterisk/minivm.conf
Normal file
@ -0,0 +1,218 @@
|
|||||||
|
;
|
||||||
|
; Mini-Voicemail Configuration
|
||||||
|
; for the MiniVM set of applications
|
||||||
|
;
|
||||||
|
; MiniVM consists of the following dialplan applications
|
||||||
|
; MinivmGreet Play personal prompts for busy/unavailable/temporary messages or default prompts
|
||||||
|
; MinivmRecord Record voice prompts to account directory or default directory
|
||||||
|
; MinivmNotify Notify via e-mail or pager - with or without attachment
|
||||||
|
; MinivmDelete Delete voice prompt (filename as argument or channel variable set by MinivmRecord)
|
||||||
|
;
|
||||||
|
; MiniVM works without accounts (just give e-mail address as argument) or with accounts in
|
||||||
|
; this configuration file or realtime. The idea is to build voicemail as building blocks so that
|
||||||
|
; a complete and adaptive voicemail system can be built in the dialplan
|
||||||
|
;
|
||||||
|
;------------------------------ Variables to use in subject, from and message body ------------------
|
||||||
|
; Change the from, body and/or subject, variables:
|
||||||
|
; MVM_NAME, MVM_DUR, MVM_MSGNUM, VM_MAILBOX, MVM_CALLERID, MVM_CIDNUM,
|
||||||
|
; MVM_CIDNAME, MVM_DATE
|
||||||
|
;
|
||||||
|
; In addition to these, you can set the MVM_COUNTER channel variable in the
|
||||||
|
; dial plan and use that as a counter. It will also be used in the file name
|
||||||
|
; of the media file attached to the message
|
||||||
|
;
|
||||||
|
; Note: The emailbody config row can only be up to 512 characters due to a
|
||||||
|
; limitation in the Asterisk configuration subsystem.
|
||||||
|
; To create longer mails, use the templatefile option when creating the template
|
||||||
|
;----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
[general]
|
||||||
|
; Default format for storing and sending voicemail
|
||||||
|
; (only one format. Can also be set on a per-mailbox level)
|
||||||
|
format=wav49
|
||||||
|
;format=gsm
|
||||||
|
;
|
||||||
|
;Turn on logfile with the following syntax. One line per voicemail received
|
||||||
|
;with minivmRecord()
|
||||||
|
; Mailbox:domain:macrocontext:exten:priority:callerchan:callerid:origdate:origtime:duration:durationstatus:accountcode
|
||||||
|
;logfile=/var/log/asterisk/minivm.log
|
||||||
|
; Who the e-mail notification should appear to come from
|
||||||
|
serveremail=asterisk
|
||||||
|
;serveremail=asterisk@asterisk.example.com
|
||||||
|
; Minimum length of a voicemail message in seconds for the message to be kept
|
||||||
|
; The default is no minimum.
|
||||||
|
;minmessage=3
|
||||||
|
; How many seconds of silence before we end the recording
|
||||||
|
maxsilence=10
|
||||||
|
; Silence threshold (what we consider silence: the lower, the more sensitive)
|
||||||
|
silencethreshold=128
|
||||||
|
; How long greeting messages (busy/unavailable/temp/name) are allowed to be, in seconds
|
||||||
|
;maxgreet=120
|
||||||
|
; If you need to have an external program, i.e. /usr/bin/myapp called when a
|
||||||
|
; voicemail is received by the server. The arguments are
|
||||||
|
;
|
||||||
|
; <app> <username@domain> <callerid-number> <callerid-name>
|
||||||
|
;
|
||||||
|
;externnotify=/usr/bin/myapp
|
||||||
|
; The character set for voicemail messages can be specified here
|
||||||
|
;charset=ISO-8859-1
|
||||||
|
; Skip the "[PBX]:" string from the message title
|
||||||
|
;pbxskip=yes
|
||||||
|
; Change the From: string
|
||||||
|
|
||||||
|
; You can override the default program to send e-mail if you wish, too
|
||||||
|
; This is used both for e-mail and pager messages
|
||||||
|
;mailcmd=/usr/sbin/sendmail -t
|
||||||
|
;
|
||||||
|
;--------------Default e-mail message template (used if no templates are used) ------
|
||||||
|
;fromstring=The Asterisk PBX
|
||||||
|
;
|
||||||
|
|
||||||
|
;emailsubject=[PBX]: New message ${MVM_COUNER} in mailbox ${VM_MAILBOX}
|
||||||
|
; The following definition is very close to the default, but the default shows
|
||||||
|
; just the CIDNAME, if it is not null, otherwise just the CIDNUM, or "an unknown
|
||||||
|
; caller", if they are both null.
|
||||||
|
;emailbody=Dear ${MVM_NAME}:\n\n\tjust wanted to let you know you were just left a ${MVM_DUR} long message (number ${MVM_COUNTER})\nin mailbox ${MVM_MAILBOX} from ${MVM_CALLERID}, on ${MVM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n
|
||||||
|
;
|
||||||
|
; Set the date format on outgoing mails. Valid arguments can be found on the
|
||||||
|
; strftime(3) man page
|
||||||
|
;
|
||||||
|
; Default
|
||||||
|
emaildateformat=%A, %B %d, %Y at %r
|
||||||
|
; 24h date format
|
||||||
|
;emaildateformat=%A, %d %B %Y at %H:%M:%S
|
||||||
|
;
|
||||||
|
;--------------Default pager message template (used if no templates are used) ------
|
||||||
|
; You can also change the Pager From: string, the pager body and/or subject.
|
||||||
|
; The above defined variables also can be used here
|
||||||
|
;pagerfromstring=The Asterisk PBX
|
||||||
|
;pagersubject=New VM ${MVM_COUNTER}
|
||||||
|
;pagerbody=New ${MVM_DUR} long msg in box ${MVM_MAILBOX}\nfrom ${MVM_CALLERID}, on ${MVM_DATE}
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;--------------Timezone definitions (used in voicemail accounts) -------------------
|
||||||
|
;
|
||||||
|
; Users may be located in different timezones, or may have different
|
||||||
|
; message announcements for their introductory message when they enter
|
||||||
|
; the voicemail system. Set the message and the timezone each user
|
||||||
|
; hears here. Set the user into one of these zones with the tz= attribute
|
||||||
|
; in the options field of the mailbox. Of course, language substitution
|
||||||
|
; still applies here so you may have several directory trees that have
|
||||||
|
; alternate language choices.
|
||||||
|
;
|
||||||
|
; Look in /usr/share/zoneinfo/ for names of timezones.
|
||||||
|
; Look at the manual page for strftime for a quick tutorial on how the
|
||||||
|
; variable substitution is done on the values below.
|
||||||
|
;
|
||||||
|
; Supported values:
|
||||||
|
; 'filename' filename of a soundfile (single ticks around the filename
|
||||||
|
; required)
|
||||||
|
; ${VAR} variable substitution
|
||||||
|
; A or a Day of week (Saturday, Sunday, ...)
|
||||||
|
; B or b or h Month name (January, February, ...)
|
||||||
|
; d or e numeric day of month (first, second, ..., thirty-first)
|
||||||
|
; Y Year
|
||||||
|
; I or l Hour, 12 hour clock
|
||||||
|
; H Hour, 24 hour clock (single digit hours preceded by "oh")
|
||||||
|
; k Hour, 24 hour clock (single digit hours NOT preceded by "oh")
|
||||||
|
; M Minute, with 00 pronounced as "o'clock"
|
||||||
|
; N Minute, with 00 pronounced as "hundred" (US military time)
|
||||||
|
; P or p AM or PM
|
||||||
|
; Q "today", "yesterday" or ABdY
|
||||||
|
; (*note: not standard strftime value)
|
||||||
|
; q "" (for today), "yesterday", weekday, or ABdY
|
||||||
|
; (*note: not standard strftime value)
|
||||||
|
; R 24 hour time, including minute
|
||||||
|
;
|
||||||
|
; The message here is not used in mini-voicemail, but stays for
|
||||||
|
; backwards compatibility
|
||||||
|
|
||||||
|
[zonemessages]
|
||||||
|
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
|
||||||
|
central=America/Chicago|'vm-received' Q 'digits/at' IMp
|
||||||
|
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
|
||||||
|
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
|
||||||
|
|
||||||
|
;----------------------- Message body templates---------------------
|
||||||
|
; [template-name] ; "template-" is a verbatim marker
|
||||||
|
; fromaddress = Your Friendly Asterisk Server
|
||||||
|
; fromemail = asteriskvm@digium.com
|
||||||
|
; subject = <string>
|
||||||
|
; attachmedia = yes | no ; Add media file as attachment?
|
||||||
|
; dateformat = <formatstring> ; See above
|
||||||
|
; charset = <charset> ; Mime charset definition for e-mail messages
|
||||||
|
; locale = <locale> ; Locale for LC_TIME - to get weekdays in local language
|
||||||
|
; ; See your O/S documentation for proper settings for setlocale()
|
||||||
|
; templatefile = <filename> ; File name (relative to Asterisk configuration directory,
|
||||||
|
; or absolute
|
||||||
|
; messagebody = Format ; Message body definition with variables
|
||||||
|
;
|
||||||
|
[template-sv_SE_email]
|
||||||
|
messagebody=Hej ${MVM_NAME}:\n\n\tDu har fått ett röstbrevlåde-meddelande från ${MVM_CALLERID}.\nLängd: ${MVM_DUR}\nMailbox ${MVM_MAILBOX}\nDatum: ${MVM_DATE}. \nMeddelandet bifogas det här brevet. Om du inte kan läsa det, kontakta intern support. \nHälsningar\n\n\t\t\t\t--Asterisk\n
|
||||||
|
subject = Du har fått röstmeddelande (se bilaga)
|
||||||
|
fromemail = swedish-voicemail-service@stockholm.example.com
|
||||||
|
fromaddress = Asterisk Röstbrevlåda
|
||||||
|
charset=iso-8859-1
|
||||||
|
attachmedia=yes
|
||||||
|
dateformat=%A, %d %B %Y at %H:%M:%S
|
||||||
|
locale=sv_SE
|
||||||
|
|
||||||
|
[template-en_US_email]
|
||||||
|
messagebody=Dear ${MVM_NAME}:\n\n\tjust wanted to let you know you were just left a ${MVM_DUR} long message \nin mailbox ${MVM_MAILBOX} from ${MVM_CALLERID}, on ${MVM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n
|
||||||
|
subject = New voicemail
|
||||||
|
charset=ascii
|
||||||
|
attachmedia=yes
|
||||||
|
dateformat=%A, %B %d, %Y at %r
|
||||||
|
|
||||||
|
;[template-sv_SE_pager]
|
||||||
|
;templatefile = templates/pager_sv_se.txt
|
||||||
|
;subject = Du har fått voicemail
|
||||||
|
;charset=iso-8859-1
|
||||||
|
;attachmedia=no
|
||||||
|
;locale=sv_SE
|
||||||
|
|
||||||
|
;[template-nb_NO_email]
|
||||||
|
;templatefile = templates/email_nb_NO.txt
|
||||||
|
;subject = Du har fått voicemail
|
||||||
|
;charset=iso-8859-1
|
||||||
|
;locale=nb_NO
|
||||||
|
|
||||||
|
;[template-en_US_email_southern]
|
||||||
|
;templatefile = templates/email_en_US.txt
|
||||||
|
;subject = Y'all got voicemail, honey!
|
||||||
|
;charset=ascii
|
||||||
|
|
||||||
|
;[template-en_UK_email]
|
||||||
|
;templatefile = templates/email_en_us.txt
|
||||||
|
;subject = Dear old chap, you've got an electronic communique
|
||||||
|
;charset=ascii
|
||||||
|
|
||||||
|
;----------------------- Mailbox accounts --------------------------
|
||||||
|
;Template for mailbox definition - all options
|
||||||
|
;
|
||||||
|
; [username@domain] ; Has to be unique within domain (MWM_USERNAME, MWM_DOMAIN)
|
||||||
|
; etemplate = sv_SE ; Email template from [templates]
|
||||||
|
; ptemplate = en_US ; Pager template from [templates]
|
||||||
|
; email = userpart@domain ; Extra e-mail address (overrides mailbox name)
|
||||||
|
; pager = pageremail@domain ; E-mail address for pager messages
|
||||||
|
; fullname = Mark Spencer ; Full name (MWM_NAME)
|
||||||
|
; options = ; E-mail options, se below
|
||||||
|
; accountcode = ; Account code (read in dialplan function MINIVMACCOUNT)
|
||||||
|
; pincode = ; Numeric pin code (read in dialplan function MINIVMACCOUNT)
|
||||||
|
; timezone=se ; Time zone
|
||||||
|
; serveremail = asterisk@digium.com ; Who to send email from (overrides template if set)
|
||||||
|
; externnotify = <application> ; External application for this account
|
||||||
|
; volgain = ; Volume gain setting (requires "sox")
|
||||||
|
; setvar=SERVICENAME=Voop.com Networks ; Extra variables to use in template
|
||||||
|
|
||||||
|
; Remember that you can use Asterisk Configuration Templates (ACT)
|
||||||
|
|
||||||
|
; [template@example.com](!) ; Declare template
|
||||||
|
; setvar=customerdomain=example.com
|
||||||
|
; setvar=customerclass=gold
|
||||||
|
; etemplate = sv_se_email
|
||||||
|
; serveremail = voicemail@example.com
|
||||||
|
|
||||||
|
; [user2@example.com](template@example.com) ; Declare user2 account using template
|
||||||
|
; fullname = Olle E. Johansson
|
||||||
|
; ; User inherits everything from template
|
537
asterisk/misdn.conf
Normal file
537
asterisk/misdn.conf
Normal file
@ -0,0 +1,537 @@
|
|||||||
|
;
|
||||||
|
; 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
|
||||||
|
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
|
;------------------------------ 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".
|
||||||
|
;-----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
; users sections:
|
||||||
|
;
|
||||||
|
; name your sections as you wish but not "general" or "default" !
|
||||||
|
; 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.
|
||||||
|
;
|
||||||
|
[default]
|
||||||
|
|
||||||
|
; define your default context here
|
||||||
|
;
|
||||||
|
; default value: default
|
||||||
|
;
|
||||||
|
context=misdn
|
||||||
|
|
||||||
|
; language
|
||||||
|
;
|
||||||
|
; default value: en
|
||||||
|
;
|
||||||
|
language=en
|
||||||
|
|
||||||
|
;
|
||||||
|
; 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.
|
||||||
|
;
|
||||||
|
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
|
||||||
|
|
||||||
|
; Incoming number prefixes for the indicated Type-Of-Number. These are
|
||||||
|
; inserted before any number (caller, dialed, connected, redirecting,
|
||||||
|
; redirection) received from the ISDN link if that number has the
|
||||||
|
; corresponding Type-Of-Number.
|
||||||
|
; See the dialplan options.
|
||||||
|
;
|
||||||
|
; default values:
|
||||||
|
; unknownprefix=
|
||||||
|
; internationalprefix=00
|
||||||
|
; nationalprefix=0
|
||||||
|
; netspecificprefix=
|
||||||
|
; subscriberprefix=
|
||||||
|
; abbreviatedprefix=
|
||||||
|
;
|
||||||
|
;unknownprefix=
|
||||||
|
internationalprefix=00
|
||||||
|
nationalprefix=0
|
||||||
|
;netspecificprefix=
|
||||||
|
;subscriberprefix=
|
||||||
|
;abbreviatedprefix=
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; Monitors L1 of the port. If L1 is down it tries
|
||||||
|
; to bring it up. The polling timeout is given in seconds.
|
||||||
|
; Setting the value to 0 disables monitoring L1 of the port.
|
||||||
|
;
|
||||||
|
; default value: 0
|
||||||
|
;
|
||||||
|
; This option is only read at chan_misdn loading time.
|
||||||
|
; You need to unload and load chan_misdn to change the
|
||||||
|
; value. An asterisk restart will also do the trick.
|
||||||
|
;
|
||||||
|
l1watcher_timeout=0
|
||||||
|
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
; There are different types of the dialplan:
|
||||||
|
;
|
||||||
|
; dialplan -> for outgoing call's dialed number
|
||||||
|
; localdialplan -> for outgoing call's callerid
|
||||||
|
; (if -1 is set use the value from the asterisk channel)
|
||||||
|
; cpndialplan -> for incoming call's connected party number sent to caller
|
||||||
|
; (if -1 is set use the value from the asterisk channel)
|
||||||
|
;
|
||||||
|
; dialplan options:
|
||||||
|
;
|
||||||
|
; 0 - unknown
|
||||||
|
; 1 - International
|
||||||
|
; 2 - National
|
||||||
|
; 3 - Network-Specific
|
||||||
|
; 4 - Subscriber
|
||||||
|
; 5 - Abbreviated
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
|
||||||
|
; Named pickup groups and named call groups
|
||||||
|
;
|
||||||
|
; give a name to groups and configure any number of groups
|
||||||
|
;
|
||||||
|
;namedcallgroup=engineering,sales,netgroup,protgroup
|
||||||
|
;namedpickupgroup=sales
|
||||||
|
|
||||||
|
; Set the outgoing caller id to the value.
|
||||||
|
;callerid="name" <number>
|
||||||
|
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
|
||||||
|
; Incoming calls will have a caller ID tag set to this value
|
||||||
|
;
|
||||||
|
;incoming_cid_tag = "asterisk"
|
||||||
|
|
||||||
|
; With this set, you can automatically append the MSN of a party
|
||||||
|
; to the cid_tag. Incoming calls have the dialed number appended
|
||||||
|
; to the tag, and outgoing calls have the caller number appended
|
||||||
|
; to the tag. An '_' is used to separate the tag from the
|
||||||
|
; MSN.
|
||||||
|
; Default is no.
|
||||||
|
;
|
||||||
|
;append_msn_to_cid_tag = no
|
||||||
|
|
||||||
|
; Select what to do with outgoing COLP information on this port.
|
||||||
|
;
|
||||||
|
; 0 - Send out COLP information unaltered. (default)
|
||||||
|
; 1 - Force COLP to restricted on all outgoing COLP information.
|
||||||
|
; 2 - Do not send COLP information.
|
||||||
|
outgoing_colp=0
|
||||||
|
|
||||||
|
; Put a display ie in the CONNECT message containing the following
|
||||||
|
; information if it is available (nt port only):
|
||||||
|
;
|
||||||
|
; 0 - Do not put the connected line information in the display ie.
|
||||||
|
; 1 - Put the available connected line name in the display ie.
|
||||||
|
; 2 - Put the available connected line number in the display ie.
|
||||||
|
; 3 - Put the available connected line name and number in the display ie.
|
||||||
|
;
|
||||||
|
display_connected=0
|
||||||
|
|
||||||
|
; Put a display ie in the SETUP message containing the following
|
||||||
|
; information if it is available (nt port only):
|
||||||
|
;
|
||||||
|
; 0 - Do not put the caller information in the display ie.
|
||||||
|
; 1 - Put the available caller name in the display ie.
|
||||||
|
; 2 - Put the available caller number in the display ie.
|
||||||
|
; 3 - Put the available caller name and number in the display ie.
|
||||||
|
;
|
||||||
|
display_setup=0
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
|
||||||
|
;
|
||||||
|
; Enable/disable the call-completion retention option support (ptp only).
|
||||||
|
;
|
||||||
|
; Note: To use the CCBS/CCNR supplementary service feature and other
|
||||||
|
; supplementary services using FACILITY messages requires a
|
||||||
|
; modified version of mISDN from:
|
||||||
|
; http://svn.digium.com/svn/thirdparty/mISDN/trunk
|
||||||
|
; http://svn.digium.com/svn/thirdparty/mISDNuser/trunk
|
||||||
|
;
|
||||||
|
cc_request_retention=yes
|
||||||
|
|
||||||
|
[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="Asterisk" <1234>
|
||||||
|
msns=102,144,101,104
|
45
asterisk/modules.conf
Normal file
45
asterisk/modules.conf
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
;
|
||||||
|
; 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 Asterisk to fail if a module does not load, then use
|
||||||
|
; the "require" keyword. Asterisk will exit with a status code of 2
|
||||||
|
; if a required module does not load.
|
||||||
|
;
|
||||||
|
; require = chan_sip.so
|
||||||
|
; If you want you can combine with preload
|
||||||
|
; preload-require = res_odbc.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
|
||||||
|
;
|
92
asterisk/motif.conf
Normal file
92
asterisk/motif.conf
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
; Sample configuration file for chan_motif
|
||||||
|
|
||||||
|
; Transports
|
||||||
|
;
|
||||||
|
; There are three different transports and protocol derivatives supported by chan_motif. They are in order of preference:
|
||||||
|
; Jingle using ICE-UDP, Google Jingle, and Google-V1.
|
||||||
|
;
|
||||||
|
; Jingle as defined in XEP-0166 supports the widest range of features. It is referred to as "ice-udp" in this file. This is
|
||||||
|
; the specification that Jingle clients implement.
|
||||||
|
;
|
||||||
|
; Google Jingle follows the Jingle specification for signaling but uses a custom transport for media. It is supported
|
||||||
|
; by the Google Talk Plug-in in Gmail and by some other Jingle clients. It is referred to as "google" in this file.
|
||||||
|
;
|
||||||
|
; Google-V1 is the original Google Talk signaling protocol which uses an initial preliminary version of Jingle.
|
||||||
|
; It also uses the same custom transport as Google Jingle for media. It is supported by Google Voice, some other Jingle
|
||||||
|
; clients, and the Windows Google Talk client. It is referred to as "google-v1" in this file.
|
||||||
|
;
|
||||||
|
; Incoming sessions will automatically switch to the correct transport once it has been determined.
|
||||||
|
;
|
||||||
|
; Outgoing sessions are capable of determining if the target is capable of Jingle or a Google transport if the target is
|
||||||
|
; in the roster. Unfortunately it is not possible to differentiate between a Google Jingle or Google-V1 capable resource
|
||||||
|
; until a session initiate attempt occurs. If a resource is determined to use a Google transport it will initially use
|
||||||
|
; Google Jingle but will fall back to Google-V1 if required.
|
||||||
|
;
|
||||||
|
; If an outgoing session attempt fails due to failure to support the given transport chan_motif will fall back in preference
|
||||||
|
; order listed at the beginning of this document until all transports have been exhausted.
|
||||||
|
;
|
||||||
|
|
||||||
|
; Dialing and Resource Selection Strategy
|
||||||
|
;
|
||||||
|
; Placing a call through an endpoint can be accomplished using the following dial string:
|
||||||
|
;
|
||||||
|
; Motif/<endpoint name>/<target>
|
||||||
|
;
|
||||||
|
; When placing an outgoing call through an endpoint the requested target is searched for in the roster list. If present
|
||||||
|
; the first Jingle or Google Jingle capable resource is specifically targetted. Since the capabilities of the resource are
|
||||||
|
; known the outgoing session initation will disregard the configured transport and use the determined one.
|
||||||
|
;
|
||||||
|
; If the target is not found in the roster the target will be used as-is and a session will be initiated using the
|
||||||
|
; transport specified in this configuration file. If no transport has been specified the endpoint defaults to ice-udp.
|
||||||
|
;
|
||||||
|
|
||||||
|
; Video Support
|
||||||
|
;
|
||||||
|
; Support for video does not need to be explicitly enabled. Configuring any video codec on your endpoint will
|
||||||
|
; automatically enable it.
|
||||||
|
|
||||||
|
; DTMF
|
||||||
|
;
|
||||||
|
; The only supported method for DTMF is RFC2833. This is always enabled on audio streams and negotiated if possible.
|
||||||
|
|
||||||
|
; Incoming Calls
|
||||||
|
;
|
||||||
|
; Incoming calls will first look for the extension matching the name of the endpoint in the configured context. If
|
||||||
|
; no such extension exists the call will automatically fall back to the "s" extension.
|
||||||
|
|
||||||
|
; CallerID
|
||||||
|
;
|
||||||
|
; The incoming caller id number is populated with the username of the caller and the name is populated with the full
|
||||||
|
; identity of the caller. If you would like to perform authentication or filtering of incoming calls it is recommended
|
||||||
|
; that you use these fields to do so.
|
||||||
|
;
|
||||||
|
; Outgoing caller id can *not* be set.
|
||||||
|
;
|
||||||
|
; IMPORTANT: Multiple endpoints using the same connection is *NOT* supported. Doing so may result in broken calls.
|
||||||
|
|
||||||
|
; Default template for endpoints, to be included in their definition
|
||||||
|
[default](!)
|
||||||
|
disallow=all
|
||||||
|
allow=ulaw
|
||||||
|
allow=h264
|
||||||
|
context=incoming-motif ; Default context that incoming sessions will land in
|
||||||
|
|
||||||
|
;maxicecandidates = 10 ; Maximum number of ICE candidates we will offer
|
||||||
|
;maxpayloads = 30 ; Maximum number of payloads we will offer
|
||||||
|
|
||||||
|
; Sample configuration entry for Jingle
|
||||||
|
[jingle-endpoint](default)
|
||||||
|
transport=ice-udp ; Change the default protocol of outgoing sessions to Jingle ICE-UDP
|
||||||
|
allow=g722 ; Add G.722 as an allowed format since the other side may support it
|
||||||
|
connection=local-jabber-account ; Connection to accept traffic on and send traffic out
|
||||||
|
accountcode=jingle ; Account code for CDR purposes
|
||||||
|
|
||||||
|
; Sample configuration entry for Google Talk
|
||||||
|
[gtalk-endpoint](default)
|
||||||
|
transport=google ; Since this is a Google Talk endpoint we want to offer Google Jingle for outgoing sessions
|
||||||
|
connection=gtalk-account
|
||||||
|
|
||||||
|
; Sample configuration entry for Google Voice
|
||||||
|
[gvoice](default)
|
||||||
|
transport=google-v1 ; Google Voice uses the original Google Talk protocol
|
||||||
|
connection=gvoice-account
|
89
asterisk/musiconhold.conf
Normal file
89
asterisk/musiconhold.conf
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
;
|
||||||
|
; 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.
|
||||||
|
;announcement=queue-thankyou ;If this option is set for a class, then
|
||||||
|
; ; when callers get put on hold, the specified sound will be
|
||||||
|
; ; be played to them. Also, if using modes that Asterisk
|
||||||
|
; ; controls the playlist for (files, mp3, etc), the same
|
||||||
|
; ; sound will also be played between MOH songs.
|
||||||
|
;sort=random ; Sort the files in random order
|
||||||
|
|
||||||
|
;[native-alphabetical]
|
||||||
|
;mode=files
|
||||||
|
;directory=moh
|
||||||
|
;sort=alpha ; Sort the files in alphabetical order. If this option is
|
||||||
|
; ; not specified, the sort order is undefined.
|
||||||
|
|
||||||
|
; =========
|
||||||
|
; Other (non-native) playback methods
|
||||||
|
; =========
|
||||||
|
|
||||||
|
;[manual]
|
||||||
|
;mode=custom
|
||||||
|
; Note that with mode=custom, a directory is not required, such as when reading
|
||||||
|
; from a stream.
|
||||||
|
;directory=/var/lib/asterisk/mohmp3
|
||||||
|
;application=/usr/bin/mpg123 -q -r 8000 -f 8192 -b 2048 --mono -s
|
||||||
|
|
||||||
|
;[ulawstream]
|
||||||
|
;mode=custom
|
||||||
|
;application=/usr/bin/streamplayer 192.168.100.52 888
|
||||||
|
;format=ulaw
|
||||||
|
|
||||||
|
; mpg123 on Solaris does not always exit properly; madplay may be a better
|
||||||
|
; choice
|
||||||
|
;[solaris]
|
||||||
|
;mode=custom
|
||||||
|
;directory=/var/lib/asterisk/mohmp3
|
||||||
|
;application=/site/sw/bin/madplay -Q -o raw:- --mono -R 8000 -a -12
|
39
asterisk/muted.conf
Normal file
39
asterisk/muted.conf
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#
|
||||||
|
# Sample muted configuration file
|
||||||
|
#
|
||||||
|
# Copyright (C) 2004 Digium, Inc.
|
||||||
|
#
|
||||||
|
# First you have the host, username, and password
|
||||||
|
# we use to connect to the asterisk system
|
||||||
|
#
|
||||||
|
# What is this? Well, haven't you ever wished you could automatically
|
||||||
|
# turn down the volume on your stereo, CDPlayer, etc, when a call comes in,
|
||||||
|
# and then return it to normal when the call ends? Well, this is a possible
|
||||||
|
# mechanism to make this happen!
|
||||||
|
# You have to fire up the new utils/muted, which runs as a daemon in the
|
||||||
|
# background. This daemon connects to asterisk via a manager interface, and
|
||||||
|
# also reads this config file from /etc/muted.conf. when the channels mentioned
|
||||||
|
# are activated, it tweaks the sound levels on the sound card(s).
|
||||||
|
# So, depending on the sound card, you may be able to run all your sound
|
||||||
|
# generating devices thru your sound card, and use this mechanism to quiet
|
||||||
|
# them down while you are on the phone. If anyone figures out how to make
|
||||||
|
# this work with kids, please inform!!
|
||||||
|
#
|
||||||
|
host localhost
|
||||||
|
user user
|
||||||
|
pass pass
|
||||||
|
#
|
||||||
|
# List each channel we're supposed to watch
|
||||||
|
#
|
||||||
|
channel DAHDI/1
|
||||||
|
channel DAHDI/2
|
||||||
|
channel SIP/mark
|
||||||
|
#
|
||||||
|
# Mute level is the percentage of the current volume we should
|
||||||
|
# lower the music to.
|
||||||
|
#
|
||||||
|
mutelevel 20
|
||||||
|
#
|
||||||
|
# Smooth fade makes the fadein/fadeout nicer sounding
|
||||||
|
#
|
||||||
|
smoothfade
|
204
asterisk/ooh323.conf
Normal file
204
asterisk/ooh323.conf
Normal file
@ -0,0 +1,204 @@
|
|||||||
|
; ---------------------------------------------------------------------------------
|
||||||
|
; --- ******* 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
|
||||||
|
;
|
||||||
|
; round trip delay request, default = 0,0 (not send)
|
||||||
|
; x - count of unreplied requests before hangup, y - interval in sec between requests
|
||||||
|
;
|
||||||
|
;roundtrip=x,y
|
||||||
|
|
||||||
|
;
|
||||||
|
; FAX detection will cause the OOH323 channel to jump to the 'fax' extension (if it exists)
|
||||||
|
; based one or more events being detected. The events that can be detected are an incoming
|
||||||
|
; CNG tone or an incoming T.38 RequestMode packet
|
||||||
|
;
|
||||||
|
; yes - enable both detection (CNG & T.38)
|
||||||
|
; no - disable both
|
||||||
|
; cng - enable CNG detection (default)
|
||||||
|
; t38 - enable T.38 request detection
|
||||||
|
;
|
||||||
|
faxdetect = cng
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; direct rtp between two remote peers, disabled by default
|
||||||
|
; can be specified globally or per peer/user section
|
||||||
|
;
|
||||||
|
directmedia=no
|
||||||
|
;
|
||||||
|
; early direct rtp (try to establish direct rtp before asnwer)
|
||||||
|
; disabled by default, auto enabled by directmedia is enabled
|
||||||
|
; can be disabled escpecially if directmedia is enabled.
|
||||||
|
; can be specified globally or per peer/user section
|
||||||
|
;
|
||||||
|
;
|
||||||
|
directrtpsetup=no
|
||||||
|
|
||||||
|
;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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
117
asterisk/osp.conf
Normal file
117
asterisk/osp.conf
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
;
|
||||||
|
; 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.
|
||||||
|
; The default value is no.
|
||||||
|
;
|
||||||
|
;accelerate=no
|
||||||
|
;
|
||||||
|
; Enable security features.
|
||||||
|
; If security features are disabled, Asterisk cannot validate signed tokens and
|
||||||
|
; all certificate file name parameters are ignored.
|
||||||
|
; The default value is no.
|
||||||
|
;
|
||||||
|
;securityfeatures=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.
|
||||||
|
; If securityfeatures are disabled, Asterisk cannot 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 5045.
|
||||||
|
;
|
||||||
|
;servicepoint=http://osptestserver.transnexus.com:5045/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)
|
||||||
|
; If securityfeatures are disabled, this parameter is ignored.
|
||||||
|
;
|
||||||
|
;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)
|
||||||
|
; If securityfeatures are disabled, this parameter is ignored.
|
||||||
|
;
|
||||||
|
;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)
|
||||||
|
; If securityfeatures are disabled, this parameter is ignored.
|
||||||
|
;
|
||||||
|
;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,
|
||||||
|
; If securityfeatures are disabled, Asterisk cannot validate signed tokens.
|
||||||
|
;
|
||||||
|
;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
|
||||||
|
;
|
||||||
|
; Set the work mode.
|
||||||
|
; 0 - Direct
|
||||||
|
; 1 - Indirect
|
||||||
|
; Default is 0,
|
||||||
|
;
|
||||||
|
;workmode=0
|
||||||
|
;
|
||||||
|
; Set the service type.
|
||||||
|
; 0 - Normal voice service
|
||||||
|
; 1 - Ported number query service
|
||||||
|
; Default is 0,
|
||||||
|
;
|
||||||
|
;servicetype=0
|
153
asterisk/oss.conf
Normal file
153
asterisk/oss.conf
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
;
|
||||||
|
; Automatically generated from ../channels/chan_oss.c
|
||||||
|
;
|
||||||
|
|
||||||
|
[general]
|
||||||
|
; General config options, with default values shown.
|
||||||
|
; You should use one section per device, with [general] being used
|
||||||
|
; for the first device and also as a template for other devices.
|
||||||
|
;
|
||||||
|
; All but 'debug' can go also in the device-specific sections.
|
||||||
|
;
|
||||||
|
; debug = 0x0 ; misc debug flags, default is 0
|
||||||
|
|
||||||
|
; Set the device to use for I/O
|
||||||
|
; device = /dev/dsp
|
||||||
|
|
||||||
|
; Optional mixer command to run upon startup (e.g. to set
|
||||||
|
; volume levels, mutes, etc.
|
||||||
|
; mixer =
|
||||||
|
|
||||||
|
; Software mic volume booster (or attenuator), useful for sound
|
||||||
|
; cards or microphones with poor sensitivity. The volume level
|
||||||
|
; is in dB, ranging from -20.0 to +20.0
|
||||||
|
; boost = n ; mic volume boost in dB
|
||||||
|
|
||||||
|
; Set the callerid for outgoing calls
|
||||||
|
; callerid = John Doe <555-1234>
|
||||||
|
|
||||||
|
; autoanswer = no ; no autoanswer on call
|
||||||
|
; autohangup = yes ; hangup when other party closes
|
||||||
|
; extension = s ; default extension to call
|
||||||
|
; context = default ; default context for outgoing calls
|
||||||
|
; language = "" ; default language
|
||||||
|
|
||||||
|
; If you set overridecontext to 'yes', then the whole dial string
|
||||||
|
; will be interpreted as an extension, which is extremely useful
|
||||||
|
; to dial SIP, IAX and other extensions which use the '@' character.
|
||||||
|
; The default is 'no' just for backward compatibility, but the
|
||||||
|
; suggestion is to change it.
|
||||||
|
; overridecontext = no ; if 'no', the last @ will start the context
|
||||||
|
; if 'yes' the whole string is an extension.
|
||||||
|
|
||||||
|
; low level device parameters in case you have problems with the
|
||||||
|
; device driver on your operating system. You should not touch these
|
||||||
|
; unless you know what you are doing.
|
||||||
|
; queuesize = 10 ; frames in device driver
|
||||||
|
; frags = 8 ; argument to SETFRAGMENT
|
||||||
|
|
||||||
|
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
|
||||||
|
; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an
|
||||||
|
; OSS channel. Defaults to "no". An enabled jitterbuffer will
|
||||||
|
; be used only if the sending side can create and the receiving
|
||||||
|
; side can not accept jitter. The OSS channel can't accept jitter,
|
||||||
|
; thus an enabled jitterbuffer on the receive OSS side will always
|
||||||
|
; be used if the sending side can create jitter.
|
||||||
|
|
||||||
|
; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
|
||||||
|
|
||||||
|
; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
|
||||||
|
; resynchronized. Useful to improve the quality of the voice, with
|
||||||
|
; big jumps in/broken timestamps, usually sent from exotic devices
|
||||||
|
; and programs. Defaults to 1000.
|
||||||
|
|
||||||
|
; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of an OSS
|
||||||
|
; channel. Two implementations are currently available - "fixed"
|
||||||
|
; (with size always equals to jbmax-size) and "adaptive" (with
|
||||||
|
; variable size, actually the new jb of IAX2). Defaults to fixed.
|
||||||
|
|
||||||
|
; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set.
|
||||||
|
; The option represents the number of milliseconds by which the new
|
||||||
|
; jitter buffer will pad its size. the default is 40, so without
|
||||||
|
; modification, the new jitter buffer will set its size to the jitter
|
||||||
|
; value plus 40 milliseconds. increasing this value may help if your
|
||||||
|
; network normally has low jitter, but occasionally has spikes.
|
||||||
|
|
||||||
|
; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
|
||||||
|
;-----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
; below is an entry for a second console channel
|
||||||
|
; [card1]
|
||||||
|
; device = /dev/dsp1 ; alternate device
|
||||||
|
|
||||||
|
; Below are the settings to support video. You can include them
|
||||||
|
; in your general configuration as [general](+,video)
|
||||||
|
; The parameters are all available through the CLI as "console name value"
|
||||||
|
; Section names used here are only examples.
|
||||||
|
|
||||||
|
[my_video](!) ; you can just include in your config
|
||||||
|
videodevice = /dev/video0 ; uses your V4L webcam as video source
|
||||||
|
videodevice = X11 ; X11 grabber. Dragging on the local display moves the origin.
|
||||||
|
videocodec = h263 ; also h261, h263p, h264, mpeg4, ...
|
||||||
|
|
||||||
|
; video_size is the geometry used by the encoder.
|
||||||
|
; Depending on the codec your choice is restricted.
|
||||||
|
video_size = 352x288 ; the format WIDTHxHEIGHT is also ok
|
||||||
|
video_size = cif ; sqcif, qcif, cif, qvga, vga, ...
|
||||||
|
|
||||||
|
; You can also set the geometry used for the camera, local display and remote display.
|
||||||
|
; The local window is on the right, the remote window is on the left.
|
||||||
|
; Right clicking with the mouse on a video window increases the size,
|
||||||
|
; center-clicking reduces the size.
|
||||||
|
camera_size = cif
|
||||||
|
remote_size = cif
|
||||||
|
local_size = qcif
|
||||||
|
|
||||||
|
bitrate = 60000 ; rate told to ffmpeg.
|
||||||
|
fps = 5 ; frames per second from the source.
|
||||||
|
; qmin = 3 ; quantizer value passed to the encoder.
|
||||||
|
|
||||||
|
; The keypad is made of an image (in any format supported by SDL_image)
|
||||||
|
; and some configuration entries indicating the location and function of buttons.
|
||||||
|
; These entries can also be contained in the comment field of the image,
|
||||||
|
; which is a lot more convenient to manage.
|
||||||
|
; E.g. for jpeg you can write them with wrjpgcom (part of libjpeg).
|
||||||
|
; The format to define keys is
|
||||||
|
; region = <event> <shape> x0 y0 x1 y1 h
|
||||||
|
; where <event> is the event to be generated (a digit, pickup, hangup,...)
|
||||||
|
; <shape> is the shape of the region (currently 'rect' and 'circle' are
|
||||||
|
; supported, the latter is really an ellipse), x0 y0 x1 y1 are the
|
||||||
|
; coordinates of the base of the rectangle or main diameter of the ellipse,
|
||||||
|
; (they can be rotated) while h is the height of the rectangle or the other
|
||||||
|
; diameter of the ellipse.
|
||||||
|
;
|
||||||
|
[my_skin](!)
|
||||||
|
keypad = /tmp/keypad.jpg
|
||||||
|
region = 1 rect 19 18 67 18 28
|
||||||
|
region = 2 rect 84 18 133 18 28
|
||||||
|
region = 3 rect 152 18 201 18 28
|
||||||
|
region = 4 rect 19 60 67 60 28
|
||||||
|
region = 5 rect 84 60 133 60 28
|
||||||
|
region = 6 rect 152 60 201 60 28
|
||||||
|
region = 7 rect 19 103 67 103 28
|
||||||
|
region = 8 rect 84 103 133 103 28
|
||||||
|
region = 9 rect 152 103 201 103 28
|
||||||
|
region = * rect 19 146 67 146 28
|
||||||
|
region = 0 rect 84 146 133 146 28
|
||||||
|
region = # rect 152 146 201 146 28
|
||||||
|
region = pickup rect 229 15 267 15 40
|
||||||
|
region = hangup rect 230 66 270 64 40
|
||||||
|
region = mute circle 232 141 264 141 33
|
||||||
|
region = sendvideo circle 235 185 266 185 33
|
||||||
|
region = autoanswer rect 228 212 275 212 50
|
||||||
|
|
||||||
|
; another skin with entries for the keypad and a small font
|
||||||
|
; to write to the message boards in the skin.
|
||||||
|
[skin2](!)
|
||||||
|
keypad = /tmp/kpad2.jpg
|
||||||
|
keypad_font = /tmp/font.png
|
||||||
|
|
||||||
|
; to add video support, uncomment this and remember to install
|
||||||
|
; the keypad and keypad_font files to the right place
|
||||||
|
; [general](+,my_video,skin2)
|
||||||
|
|
51
asterisk/phone.conf
Normal file
51
asterisk/phone.conf
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
;
|
||||||
|
; Linux Telephony Interface
|
||||||
|
;
|
||||||
|
; Configuration file
|
||||||
|
;
|
||||||
|
[interfaces]
|
||||||
|
;
|
||||||
|
; Select a mode, either the phone jack provides dialtone, reads digits,
|
||||||
|
; then starts PBX with the given extension (dialtone mode), or
|
||||||
|
; immediately provides the PBX without reading any digits or providing
|
||||||
|
; any dialtone (this is the immediate mode, the default). Also, you
|
||||||
|
; can set the mode to "fxo" if you have a linejack to make it operate
|
||||||
|
; properly. If you are using a Sigma Designs board you may set this to
|
||||||
|
; "sig".
|
||||||
|
;
|
||||||
|
mode=immediate
|
||||||
|
;mode=dialtone
|
||||||
|
;mode=fxo
|
||||||
|
;mode=sig
|
||||||
|
;
|
||||||
|
; You can decide which format to use by default, "g723.1", "g729", or "slinear".
|
||||||
|
; Note that g729 is only supported for Sigma Designs boards.
|
||||||
|
; XXX Be careful, sometimes the card causes kernel panics when running
|
||||||
|
; in signed linear mode for some reason... XXX
|
||||||
|
;
|
||||||
|
format=slinear
|
||||||
|
;format=g723.1
|
||||||
|
;format=g729
|
||||||
|
;
|
||||||
|
; And set the echo cancellation to "off", "low", "medium", and "high".
|
||||||
|
; This is not supported on all phones.
|
||||||
|
;
|
||||||
|
echocancel=medium
|
||||||
|
;
|
||||||
|
; You can optionally use VAD/CNG silence suppression
|
||||||
|
;
|
||||||
|
;silencesupression=yes
|
||||||
|
;
|
||||||
|
; List all devices we can use. Contexts may also be specified
|
||||||
|
;
|
||||||
|
;context=local
|
||||||
|
;
|
||||||
|
; You can set txgain and rxgain for each device in the same way as context.
|
||||||
|
; If you want to change default gain value (1.0 =~ 100%) for device, simple
|
||||||
|
; add txgain or rxgain line before device line. But remember, if you change
|
||||||
|
; volume all cards listed below will be affected by these values. You can
|
||||||
|
; use float values (1.0, 0.5, 2.0) or percentage values (100%, 150%, 50%).
|
||||||
|
;
|
||||||
|
;txgain=100%
|
||||||
|
;rxgain=1.0
|
||||||
|
;device => /dev/phone0
|
137
asterisk/phoneprov.conf
Normal file
137
asterisk/phoneprov.conf
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
[general]
|
||||||
|
; The default behavior of res_phoneprov will be to set the SERVER template variable to
|
||||||
|
; the IP address that the phone uses to contact the provisioning server and the
|
||||||
|
; SERVER_PORT variable to the bindport setting in sip.conf. Unless you have a very
|
||||||
|
; unusual setup, you should not need to set serveraddr, serveriface, or serverport.
|
||||||
|
|
||||||
|
;serveraddr=192.168.1.1 ; Override address to send to the phone to use as server address.
|
||||||
|
;serveriface=eth0 ; Same as above, except an ethernet interface.
|
||||||
|
; Useful for when the interface uses DHCP and the asterisk http
|
||||||
|
; server listens on a different IP than chan_sip.
|
||||||
|
;serverport=5060 ; Override port to send to the phone to use as server port.
|
||||||
|
default_profile=polycom ; The default profile to use if none specified in users.conf
|
||||||
|
|
||||||
|
; You can define profiles for different phones specifying what files to register
|
||||||
|
; with the provisioning server. You can define either static files, or dynamically
|
||||||
|
; generated files that can have dynamic names and point to templates that variables
|
||||||
|
; can be substituted into. You can also set arbitrary variables for the profiles
|
||||||
|
; templates to have access to. Example:
|
||||||
|
|
||||||
|
;[example]
|
||||||
|
;mime_type => application/octet-stream
|
||||||
|
;static_file => example/firmware
|
||||||
|
;static_file => example/default.cfg,text/xml
|
||||||
|
;${TOUPPER(${MAC})}.cfg => templates/example-mac.cfg
|
||||||
|
;setvar => DB_CIDNAME=${ODBC_CID_NAME_LOOKUP(${USERNAME})}
|
||||||
|
|
||||||
|
; Dynamically generated files have a filename registered with variable substitution
|
||||||
|
; with variables obtained while reading users.conf.
|
||||||
|
|
||||||
|
; Built in variables and the options in users.conf that they come from
|
||||||
|
; MAC (macaddress)
|
||||||
|
; USERNAME (username)
|
||||||
|
; DISPLAY_NAME (fullname)
|
||||||
|
; SECRET (secret)
|
||||||
|
; LABEL (label)
|
||||||
|
; CALLERID (cid_number)
|
||||||
|
; VOCIEMAIL_EXTEN (vmexten)
|
||||||
|
; EXTENSION_LENGTH (localextenlength)
|
||||||
|
; LINE
|
||||||
|
; LINEKEYS
|
||||||
|
|
||||||
|
; Built-in variables and the options in phoneprov.conf that they come from
|
||||||
|
; SERVER (server)
|
||||||
|
; SERVER_PORT (serverport)
|
||||||
|
|
||||||
|
|
||||||
|
; Built-in variables for managing timezones and daylight savings time.
|
||||||
|
; TZOFFSET
|
||||||
|
; DST_ENABLE
|
||||||
|
; DST_START_MONTH
|
||||||
|
; DST_START_MDAY
|
||||||
|
; DST_START_HOUR
|
||||||
|
; DST_END_MONTH
|
||||||
|
; DST_END_MDAY
|
||||||
|
; DST_END_HOUR
|
||||||
|
; TIMEZONE
|
||||||
|
|
||||||
|
[polycom]
|
||||||
|
staticdir => configs/ ; Sub directory of AST_DATA_DIR/phoneprov that static files reside
|
||||||
|
; in. This allows a request to /phoneprov/sip.cfg to pull the file
|
||||||
|
; from /phoneprov/configs/sip.cfg
|
||||||
|
mime_type => text/xml ; Default mime type to use if one isn't specified or the
|
||||||
|
; extension isn't recognized
|
||||||
|
static_file => bootrom.ld,application/octet-stream ; Static files the phone will download
|
||||||
|
static_file => bootrom.ver,plain/text ; static_file => filename,mime-type
|
||||||
|
static_file => sip.ld,application/octet-stream
|
||||||
|
static_file => sip.ver,plain/text
|
||||||
|
static_file => sip.cfg
|
||||||
|
static_file => custom.cfg
|
||||||
|
static_file => 2201-06642-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2201-06642-001.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-11000-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-11300-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-11300-010.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-11300-010.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-11402-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-11402-001.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-11500-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-11500-010.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-11500-020.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-11500-030.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-11500-030.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-11500-040.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-11500-040.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-11600-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-11600-001.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-11605-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-11605-001.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-12200-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-12200-001.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-12200-002.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-12200-002.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-12200-004.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-12200-004.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-12200-005.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-12200-005.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-12365-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-12365-001.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-12500-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-12500-001.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-12560-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-12560-001.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-12600-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-12600-001.sip.ld,application/octet-stream
|
||||||
|
static_file => 2345-12670-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 2345-12670-001.sip.ld,application/octet-stream
|
||||||
|
static_file => 3111-15600-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 3111-15600-001.sip.ld,application/octet-stream
|
||||||
|
static_file => 3111-40000-001.bootrom.ld,application/octet-stream
|
||||||
|
static_file => 3111-40000-001.sip.ld,application/octet-stream
|
||||||
|
static_file => SoundPointIPWelcome.wav,application/octet-stream
|
||||||
|
static_file => SoundPointIPLocalization/Japanese_Japan/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/Norwegian_Norway/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/Spanish_Spain/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/Portuguese_Portugal/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/English_United_Kingdom/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/English_United_States/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/Russian_Russia/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/Italian_Italy/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/Chinese_China/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/Swedish_Sweden/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/English_Canada/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/German_Germany/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/French_France/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/Danish_Denmark/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/Dutch_Netherlands/SoundPointIP-dictionary.xml
|
||||||
|
static_file => SoundPointIPLocalization/Korean_Korea/SoundPointIP-dictionary.xml
|
||||||
|
|
||||||
|
${MAC}.cfg => 000000000000.cfg ; Dynamically generated files.
|
||||||
|
${MAC}-phone.cfg => 000000000000-phone.cfg ; (relative to AST_DATA_DIR/phoneprov)
|
||||||
|
config/${MAC} => polycom.xml ; Dynamic Filename => template file
|
||||||
|
${MAC}-directory.xml => 000000000000-directory.xml
|
||||||
|
setvar => CUSTOM_CONFIG=/var/lib/asterisk/phoneprov/configs/custom.cfg ; Custom variable
|
||||||
|
|
||||||
|
;snom 300, 320, 360, 370, 820, 821, 870 support
|
||||||
|
snom-${MAC}.xml => snom-mac.xml
|
||||||
|
|
20
asterisk/queuerules.conf
Normal file
20
asterisk/queuerules.conf
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
; It is possible to change the value of the QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY
|
||||||
|
; channel variables in mid-call by defining rules in the queue for when to do so. This can allow for
|
||||||
|
; a call to be opened to more members or potentially a different set of members.
|
||||||
|
; The advantage to changing members this way as opposed to inserting the caller into a
|
||||||
|
; different queue with more members or reinserting the caller into the same queue with a different
|
||||||
|
; QUEUE_MAX_PENALTY or QUEUE_MIN_PENALTY set is that the caller does not lose his place in the queue.
|
||||||
|
;
|
||||||
|
; Note: There is a limitation to these rules; a caller will follow the penaltychange rules for
|
||||||
|
; the queue that were defined at the time the caller entered the queue. If an update to the rules is
|
||||||
|
; made during the 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
|
||||||
|
|
580
asterisk/queues.conf
Normal file
580
asterisk/queues.conf
Normal file
@ -0,0 +1,580 @@
|
|||||||
|
[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 'no'.
|
||||||
|
;
|
||||||
|
persistentmembers = yes
|
||||||
|
;
|
||||||
|
; AutoFill Behavior
|
||||||
|
; The old behavior of the queue (autofill=no) is to have 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 yes.
|
||||||
|
;
|
||||||
|
;autofill = no
|
||||||
|
;
|
||||||
|
; 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.
|
||||||
|
; The default value is no.
|
||||||
|
;
|
||||||
|
;shared_lastcall=no
|
||||||
|
;
|
||||||
|
; Negative_penalty_invalid will treat members with a negative penalty as logged off
|
||||||
|
;
|
||||||
|
;negative_penalty_invalid = no
|
||||||
|
;
|
||||||
|
; log_membername_as_agent will cause app_queue to log the membername rather than
|
||||||
|
; the interface for the ADDMEMBER and REMOVEMEMBER events when a state_interface
|
||||||
|
; is set. The default value (no) maintains backward compatibility.
|
||||||
|
;
|
||||||
|
;log_membername_as_agent = 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 hung up 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
|
||||||
|
;
|
||||||
|
; A limit can be set to disregard penalty settings when the queue has
|
||||||
|
; too few members. No penalty will be weighed in if there are only X
|
||||||
|
; or fewer queue members. (default 0)
|
||||||
|
;
|
||||||
|
;penaltymemberslimit = 5
|
||||||
|
;
|
||||||
|
;----------------------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
|
||||||
|
; no: Member will not be paused
|
||||||
|
; yes: Member will be paused only in the queue where the timeout took place
|
||||||
|
; all: Memeber will be paused in all queues he/she is a member
|
||||||
|
;autopause=yes
|
||||||
|
;
|
||||||
|
; Autopausedelay delay autopause for autopausedelay seconds from the
|
||||||
|
; last call if a member has not taken a call the delay has no effect.
|
||||||
|
;autopausedelay=60
|
||||||
|
;
|
||||||
|
; Autopausebusy controls whether or not a queue member is set as paused
|
||||||
|
; automatically upon the member device reporting busy. The autopausedelay
|
||||||
|
; option applies. Defaults to 'no'.
|
||||||
|
;autopausebusy=no
|
||||||
|
;
|
||||||
|
; Autopauseunavail controls whether or not a queue member is set as paused
|
||||||
|
; automatically upon the member device reporting congestion. The autopausedely
|
||||||
|
; option applies. Defaults to 'no'.
|
||||||
|
;autopauseunavail=no
|
||||||
|
;
|
||||||
|
; Maximum number of people waiting in the queue (0 for unlimited)
|
||||||
|
;
|
||||||
|
;maxlen = 0
|
||||||
|
;
|
||||||
|
; Note: for below queue channel options (setinterfacevar, setqueueentryvar,
|
||||||
|
; setqueuevar) if the caller channel is a local channel and optimizations
|
||||||
|
; is enabled then after optimization has occurred only the queue member
|
||||||
|
; channel will contain the variables.
|
||||||
|
;
|
||||||
|
; If set to yes, just prior to the caller being bridged with a queue member
|
||||||
|
; the following variables will be set on the caller and queue member channels:
|
||||||
|
; 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 on the caller and queue member channels:
|
||||||
|
; 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 (set on the
|
||||||
|
; caller and queue member channels) 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=macro_name[,arg1[,...][,argN]]
|
||||||
|
|
||||||
|
; if set, run this gosub when connected to the queue member
|
||||||
|
; you can override this gosub by setting the gosub option on
|
||||||
|
; the queue application
|
||||||
|
;
|
||||||
|
;membergosub=gosub_context_name[,arg1[,...][,argN]]
|
||||||
|
|
||||||
|
; 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
|
||||||
|
;
|
||||||
|
; If set to yes, the periodic announcment frequency will be timed from the end
|
||||||
|
; of each announcment rather than from the start of each announcment. This
|
||||||
|
; defaults to off.
|
||||||
|
;
|
||||||
|
;relative-periodic-announce=yes
|
||||||
|
;
|
||||||
|
; 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 enabled, play announcements to the first user waiting in the Queue. This may mean
|
||||||
|
; that announcements are played when an agent attempts to connect to the waiting user,
|
||||||
|
; which may delay the time before the agent and the user can communicate. Disabled by
|
||||||
|
; default.
|
||||||
|
;
|
||||||
|
; announce-to-first-user = no
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
; ("minute.")
|
||||||
|
;queue-minute = queue-minute
|
||||||
|
; ("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})
|
||||||
|
;
|
||||||
|
; or
|
||||||
|
;
|
||||||
|
; Set(MONITOR_EXEC=mv /var/spool/asterisk/monitor/^{MIXMONITOR_FILENAME} /tmp/^{MIXMONITOR_FILENAME})
|
||||||
|
;
|
||||||
|
; If you choose to use the latter, you will not be able to switch the monitor-type back to Monitor
|
||||||
|
; without changing this in the dialplan.
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; 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)
|
||||||
|
; The default value is yes and this can not be set globally.
|
||||||
|
;
|
||||||
|
; 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. This can be controlled on a per member basis by
|
||||||
|
; setting 'ringinuse' on that member. This can be done in the member definition,
|
||||||
|
; in the 'ringinuse' field on a realtime member, via the QUEUE_MEMBER dialplan
|
||||||
|
; function, or with CLI/AMI. By default, the per member value will be the same
|
||||||
|
; as the queue's ringinuse value if it isn't set on the member deliberately.
|
||||||
|
; (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.
|
||||||
|
;
|
||||||
|
; A hint can also be used in place of the state interface using the format
|
||||||
|
; hint:<extension>@<context>. If no context is specified then 'default' will
|
||||||
|
; be used.
|
||||||
|
;
|
||||||
|
; 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).
|
||||||
|
;
|
||||||
|
; syntax: member => interface,[,penalty][,membername][,state_interface][,ringinuse]
|
||||||
|
;
|
||||||
|
;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
|
||||||
|
;member => Local/2000@default,0,Lorem Ipsum,SIP/2000,no
|
||||||
|
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
|
43
asterisk/res_config_mysql.conf
Normal file
43
asterisk/res_config_mysql.conf
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
;
|
||||||
|
; Sample configuration for res_config_mysql.c
|
||||||
|
;
|
||||||
|
; The value of dbhost may be either a hostname or an IP address.
|
||||||
|
; If dbhost is commented out or the string "localhost", a connection
|
||||||
|
; to the local host is assumed and dbsock is used instead of TCP/IP
|
||||||
|
; to connect to the server. If no dbcharset is specified, the connection
|
||||||
|
; is made with no extra charset configurations sent to MySQL, leaving all
|
||||||
|
; configured MySQL charset options and defaults untouched.
|
||||||
|
;
|
||||||
|
; Multiple database contexts may be configured, with the caveat that
|
||||||
|
; all context names should be unique and must not contain the slash ('/')
|
||||||
|
; character. If you wish to separate reads from writes in your database
|
||||||
|
; configuration, you specify the database (NOT HERE, in other files)
|
||||||
|
; separated by a slash, read database first. If your database
|
||||||
|
; specification does not contain a slash, the implication is that reads
|
||||||
|
; and writes should be performed to the same database.
|
||||||
|
;
|
||||||
|
; For example, in extconfig.conf, you could specify a line like:
|
||||||
|
; sippeers => mysql,readhost.asterisk/writehost.asterisk,sippeers
|
||||||
|
; 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
|
11
asterisk/res_config_sqlite.conf
Normal file
11
asterisk/res_config_sqlite.conf
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[general]
|
||||||
|
|
||||||
|
; The database file.
|
||||||
|
dbfile => /var/lib/asterisk/sqlite.db
|
||||||
|
|
||||||
|
; Both config_table and cdr_table are optional. If config_table is omitted,
|
||||||
|
; you must specify it in extconfig.conf. If it is both provided here and in
|
||||||
|
; extconfig.conf, the value given here is used. If cdr_table is omitted, CDR
|
||||||
|
; support is simply disabled.
|
||||||
|
config_table => ast_config
|
||||||
|
cdr_table => ast_cdr
|
31
asterisk/res_config_sqlite3.conf
Normal file
31
asterisk/res_config_sqlite3.conf
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
; Define a realtime database name to use in extconfig.conf
|
||||||
|
;
|
||||||
|
;[asterisk]
|
||||||
|
;dbfile => /var/lib/asterisk/realtime.sqlite3
|
||||||
|
;
|
||||||
|
; debug - Turn on debugging information
|
||||||
|
;debug=yes
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
;
|
||||||
|
; batch - SQLite 3 write performance can be greatly improved by wrapping
|
||||||
|
; multiple writes in transactions. This option specifies the duration in
|
||||||
|
; milliseconds of auto-generated transactions. Any changes made during an
|
||||||
|
; unfinished transaction will be immediately available to the same database
|
||||||
|
; connection, but any external connections could see a delay up to the value
|
||||||
|
; of this setting. It is also possible that if asterisk crashes, any changes
|
||||||
|
; made during this time could be lost. Due to the nearly 100x performance
|
||||||
|
; benefit, the default is 100 ms. Set to 0 to disable batching.
|
||||||
|
;
|
||||||
|
; PLEASE NOTE: If you need to write to the database from another connection
|
||||||
|
; you will need to set batch=0 as the transactions will cause the database
|
||||||
|
; to lock for writing.
|
||||||
|
;
|
||||||
|
;batch=1000
|
||||||
|
|
31
asterisk/res_corosync.conf
Normal file
31
asterisk/res_corosync.conf
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
;
|
||||||
|
; Sample configuration file for res_corosync.
|
||||||
|
;
|
||||||
|
; This module allows events to be shared amongst a local cluster of
|
||||||
|
; Asterisk servers. Specifically, the types of events that may be
|
||||||
|
; shared include:
|
||||||
|
;
|
||||||
|
; - Device State (for shared presence information)
|
||||||
|
;
|
||||||
|
; - Message Waiting Indication, or MWI (to allow Voicemail to live on
|
||||||
|
; a server that is different from where the phones are registered)
|
||||||
|
;
|
||||||
|
; For more information about Corosync, see: http://www.corosync.org/
|
||||||
|
;
|
||||||
|
|
||||||
|
[general]
|
||||||
|
|
||||||
|
;
|
||||||
|
; Publish Message Waiting Indication (MWI) events from this server to the
|
||||||
|
; cluster.
|
||||||
|
;publish_event = mwi
|
||||||
|
;
|
||||||
|
; Subscribe to MWI events from the cluster.
|
||||||
|
;subscribe_event = mwi
|
||||||
|
;
|
||||||
|
; Publish Device State (presence) events from this server to the cluster.
|
||||||
|
;publish_event = device_state
|
||||||
|
;
|
||||||
|
; Subscribe to Device State (presence) events from the cluster.
|
||||||
|
;subscribe_event = device_state
|
||||||
|
;
|
8
asterisk/res_curl.conf
Normal file
8
asterisk/res_curl.conf
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
;
|
||||||
|
; CURLOPT global settings (mostly set for realtime)
|
||||||
|
;
|
||||||
|
[globals]
|
||||||
|
;proxy=myproxy.example.com
|
||||||
|
proxytype=http
|
||||||
|
proxyport=8001
|
||||||
|
;proxyuserpwd=asterisk:asteriskrocks
|
32
asterisk/res_fax.conf
Normal file
32
asterisk/res_fax.conf
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
; Generic Fax Application configuration
|
||||||
|
|
||||||
|
[general]
|
||||||
|
; Maximum Transmission Rate
|
||||||
|
; Possible values are { 2400 | 4800 | 7200 | 9600 | 12000 | 14400 }
|
||||||
|
; Set this value to the maximum desired transfer rate. Default: 14400
|
||||||
|
;maxrate=14400
|
||||||
|
|
||||||
|
; Minimum Transmission Rate
|
||||||
|
; Possible values are { 2400 | 4800 | 7200 | 9600 | 12000 | 14400 }
|
||||||
|
; Set this value to the minimum desired transfer rate. Default: 4800
|
||||||
|
;minrate=4800
|
||||||
|
|
||||||
|
; Send Progress/Status events to manager session
|
||||||
|
; Manager events with 'call' class permissions will receive events indicating the
|
||||||
|
; steps to initiate a fax session. Fax completion events are always sent to manager
|
||||||
|
; sessions with 'call' class permissions, regardless of the value of this option.
|
||||||
|
; Default: no
|
||||||
|
statusevents=yes
|
||||||
|
|
||||||
|
; modem capabilities
|
||||||
|
; Possible values are { v17 | v27 | v29 }
|
||||||
|
; Set this value to modify the default modem options. Default: v17,v27,v29
|
||||||
|
;modems=v17,v27,v29
|
||||||
|
|
||||||
|
; Enable/disable T.30 ECM (error correction mode) by default.
|
||||||
|
; Default: Enabled
|
||||||
|
;ecm=yes
|
||||||
|
|
||||||
|
; T.38 Negotiation Timeout in milliseconds
|
||||||
|
; Default: 5000
|
||||||
|
t38timeout=5000
|
198
asterisk/res_ldap.conf
Normal file
198
asterisk/res_ldap.conf
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
;
|
||||||
|
; Configuration file for res_config_ldap
|
||||||
|
;
|
||||||
|
|
||||||
|
; Realtime configuration
|
||||||
|
; ----------------------
|
||||||
|
; In order to use this module, you start
|
||||||
|
; in extconfig.conf with a configuration like this:
|
||||||
|
;
|
||||||
|
; sippeers = ldap,"dc=myDomain,dc=myDomainExt",sip
|
||||||
|
; extensions = ldap,"dc=myDomain,dc=myDomainExt",extensions
|
||||||
|
; sip.conf = ldap,"dc=myDomain,dc=myDomainExt",config
|
||||||
|
;
|
||||||
|
; In the case of LDAP the last keyword in each line above specifies
|
||||||
|
; a section in this file.
|
||||||
|
;
|
||||||
|
; LDAP schema and ldif files can be located in contrib/scripts.
|
||||||
|
|
||||||
|
; TLS support
|
||||||
|
; -----------
|
||||||
|
; Note that you can configure an ldaps: url here to get TLS support.
|
||||||
|
; Detailed configuration of certificates and supported CAs is done in your
|
||||||
|
; ldap.conf file for OpenLDAP clients on your system.
|
||||||
|
; This requires that you have OpenLDAP libraries compiled with TLS support
|
||||||
|
|
||||||
|
; *********************************************************************************
|
||||||
|
; 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)
|
||||||
|
|
131
asterisk/res_odbc.conf
Normal file
131
asterisk/res_odbc.conf
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
;;; 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.
|
||||||
|
|
||||||
|
;
|
||||||
|
; The context name is what will be used in other configuration files, such
|
||||||
|
; as extconfig.conf and func_odbc.conf, to reference this connection.
|
||||||
|
[asterisk]
|
||||||
|
;
|
||||||
|
; Permit disabling sections without needing to comment them out.
|
||||||
|
; If not specified, it is assumed the section is enabled.
|
||||||
|
enabled => no
|
||||||
|
;
|
||||||
|
; This value should match an entry in /etc/odbc.ini
|
||||||
|
; (or /usr/local/etc/odbc.ini, on FreeBSD and similar systems).
|
||||||
|
dsn => asterisk
|
||||||
|
;
|
||||||
|
; Username for connecting to the database. The user defaults to the context
|
||||||
|
; name if unspecified.
|
||||||
|
;username => myuser
|
||||||
|
;
|
||||||
|
; Password for authenticating the user to the database. The default
|
||||||
|
; password is blank.
|
||||||
|
;password => mypass
|
||||||
|
;
|
||||||
|
; Build a connection at startup?
|
||||||
|
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
|
||||||
|
;
|
||||||
|
; 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
|
||||||
|
;
|
||||||
|
; Should we use a single connection for all queries? Most databases will
|
||||||
|
; allow sharing the connection, though Sybase and MS SQL Server will not.
|
||||||
|
;share_connections => yes
|
||||||
|
;
|
||||||
|
; If we aren't sharing connections, what is the maximum number of connections
|
||||||
|
; that we should attempt?
|
||||||
|
;limit => 5
|
||||||
|
;
|
||||||
|
; When the channel is destroyed, should any uncommitted open transactions
|
||||||
|
; automatically be committed?
|
||||||
|
;forcecommit => no
|
||||||
|
;
|
||||||
|
; How should we perceive data in other transactions within the database?
|
||||||
|
; Possible values are read_uncommitted, read_committed, repeatable_read,
|
||||||
|
; and serializable. The default is read_committed.
|
||||||
|
;isolation => repeatable_read
|
||||||
|
;
|
||||||
|
; Is the backslash a native escape character? The default is yes, but for
|
||||||
|
; MS SQL Server, the answer is no.
|
||||||
|
;backslash_is_escape => yes
|
||||||
|
;
|
||||||
|
; When enabled (default behavior), empty column values are stored as empty strings
|
||||||
|
; during realtime updates. Disabling this option causes empty column values to be
|
||||||
|
; stored as NULLs for non-text columns.
|
||||||
|
; Disable it for PostgreSQL backend in order to avoid errors caused by updating
|
||||||
|
; integer columns with an empty string instead of NULL (sippeers, sipregs, ..).
|
||||||
|
; NOTE: This option will be removed in asterisk 13. At that point, it will always
|
||||||
|
; behave as if it was set to 'no'.
|
||||||
|
;allow_empty_string_in_nontext => yes
|
||||||
|
;
|
||||||
|
; How long (in seconds) should we attempt to connect before considering the
|
||||||
|
; connection dead? The default is 10 seconds, but you may wish to reduce it,
|
||||||
|
; to increase responsiveness.
|
||||||
|
;connect_timeout => 10
|
||||||
|
;
|
||||||
|
; When a connection fails, how long (in seconds) should we cache that
|
||||||
|
; information before we attempt another connection? This increases
|
||||||
|
; responsiveness, when a database resource is not working.
|
||||||
|
;negative_connection_cache => 300
|
||||||
|
|
||||||
|
[mysql2]
|
||||||
|
enabled => no
|
||||||
|
dsn => MySQL-asterisk
|
||||||
|
username => myuser
|
||||||
|
password => mypass
|
||||||
|
pre-connect => yes
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
|
;
|
||||||
|
; If you are having problems with concurrency, please read this note from the
|
||||||
|
; mailing lists, regarding UnixODBC:
|
||||||
|
;
|
||||||
|
; http://lists.digium.com/pipermail/asterisk-dev/2009-February/036539.html
|
||||||
|
;
|
||||||
|
; In summary, try setting "Threading=2" in the relevant section within your
|
||||||
|
; odbcinst.ini.
|
||||||
|
;
|
29
asterisk/res_pgsql.conf
Normal file
29
asterisk/res_pgsql.conf
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
;
|
||||||
|
; Sample configuration for res_config_pgsql
|
||||||
|
;
|
||||||
|
; The value of dbhost may be either a hostname or an IP address.
|
||||||
|
; If dbhost is commented out or the string "localhost", a connection
|
||||||
|
; to the local host is assumed and dbsock is used instead of TCP/IP
|
||||||
|
; to connect to the server.
|
||||||
|
;
|
||||||
|
[general]
|
||||||
|
dbhost=127.0.0.1
|
||||||
|
dbport=5432
|
||||||
|
dbname=asterisk
|
||||||
|
dbuser=asterisk
|
||||||
|
dbpass=password
|
||||||
|
;
|
||||||
|
; dbsock is specified as the directory where the socket file may be found. The
|
||||||
|
; actual socket is constructed as a combination of dbsock and dbport. For
|
||||||
|
; example, the values of '/tmp' and '5432', respectively, will specify a socket
|
||||||
|
; file of '/tmp/.s.PGSQL.5432'.
|
||||||
|
;
|
||||||
|
;dbsock=/tmp
|
||||||
|
;
|
||||||
|
; requirements - At startup, each realtime family will make requirements
|
||||||
|
; on the backend. There are several strategies for handling requirements:
|
||||||
|
; warn - Warn if the required column does not exist.
|
||||||
|
; createclose - Create columns as close to the requirements as possible.
|
||||||
|
; createchar - Create char columns only
|
||||||
|
;
|
||||||
|
requirements=warn
|
32
asterisk/res_pktccops.conf
Normal file
32
asterisk/res_pktccops.conf
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
;; Sample res_pktccops.conf
|
||||||
|
;
|
||||||
|
;[general]
|
||||||
|
;gateinfoperiod => 60 ; default 60s
|
||||||
|
;gatetimeout = 150 ; default 150
|
||||||
|
;t1 => 250 ; default 250s
|
||||||
|
;t7 => 200 ; default 200s
|
||||||
|
;t8 => 300 ; default 300s
|
||||||
|
;keepalive => 60 ; default 60s
|
||||||
|
;
|
||||||
|
;[teszt]
|
||||||
|
;host => 192.168.0.24
|
||||||
|
;pool => 10.0.1.0 10.0.1.255
|
||||||
|
;pool => 10.0.3.0 10.0.3.255
|
||||||
|
;pool => 10.0.7.0 10.0.8.255
|
||||||
|
;pool => 10.0.10.0 10.0.11.255
|
||||||
|
;
|
||||||
|
;[general]
|
||||||
|
;gateinfoperiod => 60 ; default 60s
|
||||||
|
;gatetimeout = 150 ; default 150
|
||||||
|
;t1 => 250 ; default 250s
|
||||||
|
;t7 => 200 ; default 200s
|
||||||
|
;t8 => 300 ; default 300s
|
||||||
|
;keepalive => 60 ; default 60s
|
||||||
|
;
|
||||||
|
;[test]
|
||||||
|
;host => 192.168.0.24
|
||||||
|
;pool => 10.0.1.0 10.0.1.255
|
||||||
|
;pool => 10.0.3.0 10.0.3.255
|
||||||
|
;pool => 10.0.7.0 10.0.8.255
|
||||||
|
;pool => 10.0.10.0 10.0.11.255
|
||||||
|
;
|
22
asterisk/res_snmp.conf
Normal file
22
asterisk/res_snmp.conf
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
;
|
||||||
|
; 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.
|
||||||
|
;
|
||||||
|
; See https://wiki.asterisk.org/wiki/display/AST/Simple+Network+Management+Protocol+(SNMP)+Support
|
||||||
|
; 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
|
27
asterisk/res_stun_monitor.conf
Normal file
27
asterisk/res_stun_monitor.conf
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
;
|
||||||
|
; Configuration file for the res_stun_monitor module
|
||||||
|
;
|
||||||
|
; The res_stun_monitor module sends STUN requests to a configured STUN server
|
||||||
|
; periodically. If the monitor detects a change in the external IP address or port
|
||||||
|
; provided by the STUN server an event is sent out internally within Asterisk
|
||||||
|
; to alert all listeners to that event of the change.
|
||||||
|
|
||||||
|
; The current default listeners for the network change event include chan_sip
|
||||||
|
; and chan_iax. Both of these channel drivers by default react to this event
|
||||||
|
; by renewing all outbound registrations. This allows the endpoints Asterisk
|
||||||
|
; is registering with to become aware of the address change and know the new
|
||||||
|
; location.
|
||||||
|
;
|
||||||
|
[general]
|
||||||
|
;
|
||||||
|
; ---- STUN Server configuration ---
|
||||||
|
; Setting the 'stunaddr' option to a valid address enables the STUN monitor.
|
||||||
|
;
|
||||||
|
;stunaddr = mystunserver.com ; Address of the STUN server to query.
|
||||||
|
; Valid form:
|
||||||
|
; [(hostname | IP-address) [':' port]]
|
||||||
|
; The port defaults to the standard STUN port (3478).
|
||||||
|
; Set to an empty value to disable STUN monitoring.
|
||||||
|
; Default is disabled.
|
||||||
|
;stunrefresh = 30 ; Number of seconds between STUN refreshes.
|
||||||
|
; Default is 30.
|
60
asterisk/rtp.conf
Normal file
60
asterisk/rtp.conf
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
;
|
||||||
|
; 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
|
||||||
|
; enabled by default.
|
||||||
|
; strictrtp=yes
|
||||||
|
;
|
||||||
|
; Number of packets containing consecutive sequence values needed
|
||||||
|
; to change the RTP source socket address. This option only comes
|
||||||
|
; into play while using strictrtp=yes. Consider changing this value
|
||||||
|
; if rtp packets are dropped from one or both ends after a call is
|
||||||
|
; connected. This option is set to 4 by default.
|
||||||
|
; probation=8
|
||||||
|
;
|
||||||
|
; Whether to enable or disable ICE support. This option is disabled by default.
|
||||||
|
; icesupport=true
|
||||||
|
;
|
||||||
|
; Hostname or address for the STUN server used when determining the external
|
||||||
|
; IP address and port an RTP session can be reached at. The port number is
|
||||||
|
; optional. If omitted the default value of 3478 will be used. This option is
|
||||||
|
; disabled by default.
|
||||||
|
;
|
||||||
|
; e.g. stundaddr=mystun.server.com:3478
|
||||||
|
;
|
||||||
|
; stunaddr=
|
||||||
|
;
|
||||||
|
; Hostname or address for the TURN server to be used as a relay. The port
|
||||||
|
; number is optional. If omitted the default value of 3478 will be used.
|
||||||
|
; This option is disabled by default.
|
||||||
|
;
|
||||||
|
; e.g. turnaddr=myturn.server.com:34780
|
||||||
|
;
|
||||||
|
; turnaddr=
|
||||||
|
;
|
||||||
|
; Username used to authenticate with TURN relay server.
|
||||||
|
; turnusername=
|
||||||
|
;
|
||||||
|
; Password used to authenticate with TURN relay server.
|
||||||
|
; turnpassword=
|
383
asterisk/say.conf
Normal file
383
asterisk/say.conf
Normal file
@ -0,0 +1,383 @@
|
|||||||
|
;
|
||||||
|
; 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}
|
||||||
|
|
||||||
|
[es](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[1-9] => digits/20-and, digits/${SAY:1}
|
||||||
|
_[n]um:[3-9][1-9] => digits/${SAY:0:1}0, vm-and, digits/${SAY:1}
|
||||||
|
_[n]um:100 => digits/hundred
|
||||||
|
_[n]um:1XX => digits/100-and, num:${SAY:1}
|
||||||
|
_[n]um:[2-9]00 => digits/${SAY}
|
||||||
|
_[n]um:[2-9]XX => digits/${SAY:0:1}00, 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 => digits/1M, digits/million
|
||||||
|
_[n]um:1XXXXXX => digits/1M, 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:XXXX000000 => num:${SAY:0:4}, digits/millions
|
||||||
|
_[n]um:XXXXXXXXXX => num:${SAY:0:4}, digits/millions, num:${SAY:4}
|
||||||
|
|
||||||
|
_datetime::. => date:Ad 'letters/d' B 'letters/d' Y 'digits/at' HMp:${SAY}
|
||||||
|
_date::. => date:Ad 'letters/d' B 'letters/d' Y:${SAY}
|
||||||
|
_time::. => date:HMp:${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}
|
1555
asterisk/sip.conf
Normal file
1555
asterisk/sip.conf
Normal file
File diff suppressed because it is too large
Load Diff
57
asterisk/sip_notify.conf
Normal file
57
asterisk/sip_notify.conf
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
; rfc3842
|
||||||
|
; put empty "Content=>" at the end to have CRLF after last body line
|
||||||
|
|
||||||
|
[clear-mwi]
|
||||||
|
Event=>message-summary
|
||||||
|
Content-type=>application/simple-message-summary
|
||||||
|
Content=>Messages-Waiting: no
|
||||||
|
Content=>Message-Account: sip:asterisk@127.0.0.1
|
||||||
|
Content=>Voice-Message: 0/0 (0/0)
|
||||||
|
Content=>
|
||||||
|
|
||||||
|
; Aastra
|
||||||
|
|
||||||
|
[aastra-check-cfg]
|
||||||
|
Event=>check-sync
|
||||||
|
|
||||||
|
[aastra-xml]
|
||||||
|
Event=>aastra-xml
|
||||||
|
|
||||||
|
; Digium
|
||||||
|
|
||||||
|
[digium-check-cfg]
|
||||||
|
Event=>check-sync
|
||||||
|
|
||||||
|
; 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=>check-sync\;reboot=true
|
||||||
|
|
||||||
|
; Cisco
|
||||||
|
|
||||||
|
[cisco-check-cfg]
|
||||||
|
Event=>check-sync
|
191
asterisk/skinny.conf
Normal file
191
asterisk/skinny.conf
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
;
|
||||||
|
; 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 https://wiki.asterisk.org/wiki/display/AST/RTP+Packetization
|
||||||
|
; for framing options
|
||||||
|
;disallow=
|
||||||
|
|
||||||
|
; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service 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
|
||||||
|
|
151
asterisk/sla.conf
Normal file
151
asterisk/sla.conf
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
;
|
||||||
|
; Configuration for Shared Line Appearances (SLA).
|
||||||
|
;
|
||||||
|
; See http://wiki.asterisk.org or doc/AST.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.
|
||||||
|
; -------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
; ********************************
|
||||||
|
; **** Configuration Ordering ****
|
||||||
|
; ********************************
|
||||||
|
|
||||||
|
; Note that SLA configuration processing assumes that *all* trunk declarations are
|
||||||
|
; listed in the configuration file before any stations.
|
||||||
|
|
||||||
|
; ********************************
|
||||||
|
; ********************************
|
||||||
|
|
||||||
|
|
||||||
|
; ---- 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
|
||||||
|
; https://wiki.asterisk.org/wiki/display/AST/SLA+Trunk+Configuration
|
||||||
|
|
||||||
|
;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 https://wiki.asterisk.org/wiki/display/AST/SLA+Trunk+Configuration
|
||||||
|
;autocontext=line4
|
||||||
|
; --------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
; ---- Station Declarations ------------
|
||||||
|
|
||||||
|
;[station1] ; Define a name for this station.
|
||||||
|
|
||||||
|
;type=station ; This line indicates that this entry is a station.
|
||||||
|
|
||||||
|
;device=SIP/station1 ; Each station must be mapped to a device.
|
||||||
|
|
||||||
|
;autocontext=sla_stations ; This supports automatic generation of the dialplan entries if
|
||||||
|
; the autocontext option is used. All stations can use the same
|
||||||
|
; context without conflict. The device for this station should
|
||||||
|
; have its context configured to the same one listed here.
|
||||||
|
|
||||||
|
;ringtimeout=10 ; Set a timeout for how long to allow the station to ring for an
|
||||||
|
; incoming call, in seconds.
|
||||||
|
|
||||||
|
;ringdelay=10 ; Set a time for how long to wait before beginning to ring this station
|
||||||
|
; once there is an incoming call, in seconds.
|
||||||
|
|
||||||
|
;hold=private ; This option configure hold permissions for this station. Note
|
||||||
|
; that if private hold is set in the trunk entry, that will override
|
||||||
|
; anything here. However, if a trunk has open hold access, but this
|
||||||
|
; station is set to private hold, then the private hold will be in
|
||||||
|
; effect.
|
||||||
|
; "open" - This means that once this station puts a call
|
||||||
|
; on hold, any other station is allowed to retrieve
|
||||||
|
; it. This is the default.
|
||||||
|
; "private" - This means that once this station puts a
|
||||||
|
; call on hold, no other station will be
|
||||||
|
; allowed to retrieve the call from hold.
|
||||||
|
|
||||||
|
|
||||||
|
;trunk=line1 ; Individually list all of the trunks that will appear on this station. This
|
||||||
|
; order is significant. It should be the same order as they appear on the
|
||||||
|
; phone. The order here defines the order of preference that the trunks will
|
||||||
|
; be used.
|
||||||
|
;trunk=line2
|
||||||
|
;trunk=line3,ringdelay=5 ; A ring delay for the station can also be specified for a specific trunk.
|
||||||
|
; If a ring delay is specified both for the whole station and for a specific
|
||||||
|
; trunk on a station, the setting for the specific trunk will take priority.
|
||||||
|
; This value is in seconds.
|
||||||
|
|
||||||
|
;trunk=line4,ringtimeout=5 ; A ring timeout for the station can also be specified for a specific trunk.
|
||||||
|
; If a ring timeout is specified both for the whole station and for a specific
|
||||||
|
; trunk on a station, the setting for the specific trunk will take priority.
|
||||||
|
; This value is in seconds.
|
||||||
|
|
||||||
|
|
||||||
|
;[station](!) ; When there are a lot of stations that are configured the same way,
|
||||||
|
; it is convenient to use a configuration template like this so that
|
||||||
|
; the common settings stay in one place.
|
||||||
|
;type=station
|
||||||
|
;autocontext=sla_stations
|
||||||
|
;trunk=line1
|
||||||
|
;trunk=line2
|
||||||
|
;trunk=line3
|
||||||
|
;trunk=line4
|
||||||
|
|
||||||
|
;[station2](station) ; Define a station that uses the configuration from the template "station".
|
||||||
|
;device=SIP/station2
|
||||||
|
;
|
||||||
|
;[station3](station)
|
||||||
|
;device=SIP/station3
|
||||||
|
;
|
||||||
|
;[station4](station)
|
||||||
|
;device=SIP/station4
|
||||||
|
;
|
||||||
|
;[station5](station)
|
||||||
|
;device=SIP/station5
|
||||||
|
; --------------------------------------
|
||||||
|
|
75
asterisk/smdi.conf
Normal file
75
asterisk/smdi.conf
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
; Asterisk SMDI configuration
|
||||||
|
|
||||||
|
[interfaces]
|
||||||
|
; Specify serial ports to listen for SMDI messages on below. These will be
|
||||||
|
; referenced later in chan_dahdi.conf. If you do not specify any interfaces
|
||||||
|
; then SMDI will be disabled. Interfaces can have several different attributes
|
||||||
|
; associated with them.
|
||||||
|
|
||||||
|
; Set the number of stop bits to use per character here. The default is no,
|
||||||
|
; in which case one stop bit will be used.
|
||||||
|
|
||||||
|
;twostopbits = no
|
||||||
|
|
||||||
|
; Character size or bit length is the size of each character sent across the
|
||||||
|
; link. Character size can be 7 or 8. The default is 7.
|
||||||
|
|
||||||
|
;charsize = 7
|
||||||
|
|
||||||
|
; If you need parity checking enabled you can turn it on here. Acceptable
|
||||||
|
; values are even, odd, and none. The default is even.
|
||||||
|
|
||||||
|
;paritybit = even
|
||||||
|
|
||||||
|
; The baudrate to use for this port. Acceptable values are 1200, 2400, 4800,
|
||||||
|
; and 9600. The default is 9600.
|
||||||
|
|
||||||
|
;baudrate = 1200
|
||||||
|
|
||||||
|
; Often the numbering scheme for a set of mailboxes or extensions will not be 7
|
||||||
|
; or 10 digits (as SMDI requires). Use the msdstrip option to strip unused
|
||||||
|
; digits from the start of numbers.
|
||||||
|
|
||||||
|
;msdstrip = 0
|
||||||
|
|
||||||
|
; Occasionally Asterisk and the SMDI switch may become out of sync. If this
|
||||||
|
; happens, Asterisk will appear one or several calls behind as it processes
|
||||||
|
; voicemail requests. To prevent this from happening, adjust the msgexpirytime.
|
||||||
|
; This will make Asterisk discard old SMDI messages that have not yet been
|
||||||
|
; processed. The default expiry time is 30000 milliseconds.
|
||||||
|
|
||||||
|
;msgexpirytime = 30000
|
||||||
|
|
||||||
|
;smdiport => /dev/ttyS0
|
||||||
|
|
||||||
|
|
||||||
|
[mailboxes]
|
||||||
|
; This section configures parameters related to MWI handling for the SMDI link.
|
||||||
|
|
||||||
|
; This option configures the polling interval used to check to see if the
|
||||||
|
; mailboxes have any new messages. This option is specified in seconds.
|
||||||
|
; The default value is 10 seconds.
|
||||||
|
;
|
||||||
|
;pollinginterval=10
|
||||||
|
|
||||||
|
; Every other entry in this section of the configuration file is interpreted as
|
||||||
|
; a mapping between the mailbox ID on the SMDI link, and the local Asterisk
|
||||||
|
; mailbox name. In many cases, they are the same thing, but they still must be
|
||||||
|
; listed here so that this module knows which mailboxes it needs to pay
|
||||||
|
; attention to.
|
||||||
|
;
|
||||||
|
; Syntax:
|
||||||
|
; <SMDI mailbox ID>=<Asterisk Mailbox Name>[@Asterisk Voicemail Context]
|
||||||
|
;
|
||||||
|
; If no Asterisk voicemail context is specified, "default" will be assumed.
|
||||||
|
;
|
||||||
|
; Before specifying mailboxes, you must specify an SMDI interface. All mailbox
|
||||||
|
; definitions that follow will correspond to that SMDI interface. If you specify
|
||||||
|
; another interface, then all definitions following that will correspond to the
|
||||||
|
; new interface.
|
||||||
|
;
|
||||||
|
;smdiport=/dev/ttyS0
|
||||||
|
;2565551234=1234@vmcontext1
|
||||||
|
;2565555678=5678@vmcontext2
|
||||||
|
;smdiport=/dev/ttyS1
|
||||||
|
;2565559999=9999
|
83
asterisk/telcordia-1.adsi
Normal file
83
asterisk/telcordia-1.adsi
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
;
|
||||||
|
; Asterisk default ADSI script
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; Begin with the preamble requirements
|
||||||
|
;
|
||||||
|
DESCRIPTION "Telcordia Demo" ; Name of vendor
|
||||||
|
VERSION 0x02 ; Version of stuff
|
||||||
|
;SECURITY "_AST" ; Security code
|
||||||
|
SECURITY 0x0000 ; Security code
|
||||||
|
FDN 0x0000000f ; Descriptor number
|
||||||
|
|
||||||
|
;
|
||||||
|
; Predefined strings
|
||||||
|
;
|
||||||
|
DISPLAY "talkingto" IS "Talking To" "$Call1p" WRAP
|
||||||
|
DISPLAY "titles" IS "20th Century IQ Svc"
|
||||||
|
DISPLAY "newcall" IS "New Call From" "$Call1p" WRAP
|
||||||
|
DISPLAY "ringing" IS "Ringing"
|
||||||
|
|
||||||
|
;
|
||||||
|
; Begin state definitions
|
||||||
|
;
|
||||||
|
STATE "callup" ; Call is currently up
|
||||||
|
STATE "inactive" ; No active call
|
||||||
|
|
||||||
|
;
|
||||||
|
; Begin soft key definitions
|
||||||
|
;
|
||||||
|
KEY "CB_OH" IS "Block" OR "Call Block"
|
||||||
|
OFFHOOK
|
||||||
|
VOICEMODE
|
||||||
|
WAITDIALTONE
|
||||||
|
SENDDTMF "*60"
|
||||||
|
SUBSCRIPT "offHook"
|
||||||
|
ENDKEY
|
||||||
|
|
||||||
|
KEY "CB" IS "Block" OR "Call Block"
|
||||||
|
SENDDTMF "*60"
|
||||||
|
ENDKEY
|
||||||
|
|
||||||
|
;
|
||||||
|
; Begin main subroutine
|
||||||
|
;
|
||||||
|
|
||||||
|
SUB "main" IS
|
||||||
|
IFEVENT NEARANSWER THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "talkingto" AT 1
|
||||||
|
GOTO "stableCall"
|
||||||
|
ENDIF
|
||||||
|
IFEVENT OFFHOOK THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "titles" AT 1
|
||||||
|
SHOWKEYS "CB"
|
||||||
|
GOTO "offHook"
|
||||||
|
ENDIF
|
||||||
|
IFEVENT IDLE THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "titles" AT 1
|
||||||
|
SHOWKEYS "CB_OH"
|
||||||
|
ENDIF
|
||||||
|
IFEVENT CALLERID THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "newcall" AT 1
|
||||||
|
ENDIF
|
||||||
|
ENDSUB
|
||||||
|
|
||||||
|
SUB "offHook" IS
|
||||||
|
IFEVENT FARRING THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "ringing" AT 1
|
||||||
|
ENDIF
|
||||||
|
IFEVENT FARANSWER THEN
|
||||||
|
CLEAR
|
||||||
|
SHOWDISPLAY "talkingto" AT 1
|
||||||
|
GOTO "stableCall"
|
||||||
|
ENDIF
|
||||||
|
ENDSUB
|
||||||
|
|
||||||
|
SUB "stableCall" IS
|
||||||
|
|
||||||
|
ENDSUB
|
26
asterisk/udptl.conf
Normal file
26
asterisk/udptl.conf
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
;
|
||||||
|
; UDPTL Configuration (UDPTL is one of the transports for T.38)
|
||||||
|
;
|
||||||
|
[general]
|
||||||
|
;
|
||||||
|
; UDPTL start and UDPTL end configure start and end addresses
|
||||||
|
;
|
||||||
|
udptlstart=4000
|
||||||
|
udptlend=4999
|
||||||
|
;
|
||||||
|
; Whether to enable or disable UDP checksums on UDPTL traffic
|
||||||
|
;
|
||||||
|
;udptlchecksums=no
|
||||||
|
;
|
||||||
|
; The number of error correction entries in a UDPTL packet
|
||||||
|
;
|
||||||
|
udptlfecentries = 3
|
||||||
|
;
|
||||||
|
; The span over which parity is calculated for FEC in a UDPTL packet
|
||||||
|
;
|
||||||
|
udptlfecspan = 3
|
||||||
|
;
|
||||||
|
; Some VoIP providers will only accept an offer with an even-numbered
|
||||||
|
; UDPTL port. Set this option so that Asterisk will only attempt to use
|
||||||
|
; even-numbered ports when negotiating T.38. Default is no.
|
||||||
|
use_even_ports = no
|
86
asterisk/unistim.conf
Normal file
86
asterisk/unistim.conf
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
;
|
||||||
|
; chan_unistim configuration file.
|
||||||
|
;
|
||||||
|
|
||||||
|
[general]
|
||||||
|
port=5000 ; UDP port
|
||||||
|
;
|
||||||
|
; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service 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.
|
||||||
|
;
|
||||||
|
;debug=yes ; Enable debug (default no)
|
||||||
|
;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.
|
||||||
|
;mohsuggest=default
|
||||||
|
;------------------------------ 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
|
||||||
|
; value 3 works on newer i2004, 1120E and 1140E
|
||||||
|
;status_method=0 ; If you don't see status text, try 1, default = 0
|
||||||
|
; value 1 works on 1120E and 1140E
|
||||||
|
;titledefault=Asterisk ; default = "TimeZone (your time zone)". 12 characters max
|
||||||
|
;height=3 ; default = 3, the number of display lines the device can show
|
||||||
|
; For example on a Nortel I2001 or I2002, set this to 1
|
||||||
|
;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
|
||||||
|
;cwvolume=2 ; ring volume : 0,1,2,3, default = 0
|
||||||
|
;cwstyle=3 ; ring style : 0 to 7, default = 2
|
||||||
|
;sharpdial=1 ; dial number by pressing #, default = 0
|
||||||
|
;interdigit_timer=4000 ; timer for automatic dial after several digits of number entered (in ms, 0 is off)
|
||||||
|
;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 ; Any number of lines can be defined in any order with bookmarks
|
||||||
|
;line => 200 ; After line defined it placed in next available slot
|
||||||
|
;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
|
114
asterisk/users.conf
Normal file
114
asterisk/users.conf
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
;
|
||||||
|
; 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
|
||||||
|
;description = Courtesy Phone In Lobby ; Used to provide a description of the
|
||||||
|
; peer in console output
|
||||||
|
;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
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user