diff options
Diffstat (limited to 'trunk/configs')
72 files changed, 9848 insertions, 0 deletions
diff --git a/trunk/configs/adsi.conf.sample b/trunk/configs/adsi.conf.sample new file mode 100644 index 000000000..0f36f80da --- /dev/null +++ b/trunk/configs/adsi.conf.sample @@ -0,0 +1,8 @@ +; +; Sample ADSI Configuration file +; +[intro] +alignment = center +greeting => Welcome to the +greeting => Asterisk +greeting => Open Source PBX diff --git a/trunk/configs/adtranvofr.conf.sample b/trunk/configs/adtranvofr.conf.sample new file mode 100644 index 000000000..dc7bcfc7c --- /dev/null +++ b/trunk/configs/adtranvofr.conf.sample @@ -0,0 +1,39 @@ +; +; Voice over Frame Relay (Adtran style) +; +; Configuration file + +[interfaces] +; +; Default language +; +;language=en +; +; Lines for which we are the user termination. They accept incoming +; and outgoing calls. We use the default context on the first 8 lines +; used by internal phones. +; +context=default +;user => voice00 +;user => voice01 +;user => voice02 +;user => voice03 +;user => voice04 +;user => voice05 +;user => voice06 +;user => voice07 +; Calls on 16 and 17 come from the outside world, so they get +; a little bit special treatment +context=remote +;user => voice16 +;user => voice17 +; +; Next we have lines which we only accept calls on, and typically +; do not send outgoing calls on (i.e. these are where we are the +; network termination) +; +;network => voice08 +;network => voice09 +;network => voice10 +;network => voice11 +;network => voice12 diff --git a/trunk/configs/agents.conf.sample b/trunk/configs/agents.conf.sample new file mode 100644 index 000000000..eb0383f3c --- /dev/null +++ b/trunk/configs/agents.conf.sample @@ -0,0 +1,105 @@ +; +; Agent configuration +; + +[general] +; +; Define whether callbacklogins should be stored in astdb for +; persistence. Persistent logins will be reloaded after +; Asterisk restarts. +; +persistentagents=yes + +; Enable or disable a single extension from logging in as multiple agents. +; The default value is "yes". +;multiplelogin=yes + +[agents] +; +; Define maxlogintries to allow agent to try max logins before +; failed. +; default to 3 +; +;maxlogintries=5 +; +; +; Define autologoff times if appropriate. This is how long +; the phone has to ring with no answer before the agent is +; automatically logged off (in seconds) +; +;autologoff=15 +; +; Define autologoffunavail to have agents automatically logged +; out when the extension that they are at returns a CHANUNAVAIL +; status when a call is attempted to be sent there. +; Default is "no". +; +;autologoffunavail=yes +; +; Define ackcall to require an acknowledgement by '#' when +; an agent logs in using agentcallbacklogin. Default is "no". +; +;ackcall=no +; +; Define endcall to allow an agent to hangup a call by '*'. +; Default is "yes". Set this to "no" to ignore '*'. +; +;endcall=yes +; +; Define wrapuptime. This is the minimum amount of time when +; after disconnecting before the caller can receive a new call +; note this is in milliseconds. +; +;wrapuptime=5000 +; +; Define the default musiconhold for agents +; musiconhold => music_class +; +;musiconhold => default +; +; Define the default good bye sound file for agents +; default to vm-goodbye +; +;agentgoodbye => goodbye_file +; +; Define updatecdr. This is whether or not to change the source +; channel in the CDR record for this call to agent/agent_id so +; that we know which agent generates the call +; +;updatecdr=no +; +; Group memberships for agents (may change in mid-file) +; +;group=3 +;group=1,2 +;group= +; +; -------------------------------------------------- +; This section is devoted to recording agent's calls +; The keywords are global to the chan_agent channel driver +; +; Enable recording calls addressed to agents. It's turned off by default. +;recordagentcalls=yes +; +; The format to be used to record the calls: wav, gsm, wav49. +; By default its "wav". +;recordformat=gsm +; +; The text to be added to the name of the recording. Allows forming a url link. +;urlprefix=http://localhost/calls/ +; +; The optional directory to save the conversations in. The default is +; /var/spool/asterisk/monitor +;savecallsin=/var/calls +; +; An optional custom beep sound file to play to always-connected agents. +;custom_beep=beep +; +; -------------------------------------------------- +; +; This section contains the agent definitions, in the form: +; +; agent => agentid,agentpassword,name +; +;agent => 1001,4321,Mark Spencer +;agent => 1002,4321,Will Meadows diff --git a/trunk/configs/alarmreceiver.conf.sample b/trunk/configs/alarmreceiver.conf.sample new file mode 100644 index 000000000..bf767dea3 --- /dev/null +++ b/trunk/configs/alarmreceiver.conf.sample @@ -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 +; diff --git a/trunk/configs/alsa.conf.sample b/trunk/configs/alsa.conf.sample new file mode 100644 index 000000000..f55030618 --- /dev/null +++ b/trunk/configs/alsa.conf.sample @@ -0,0 +1,62 @@ +; +; Open Sound System Console Driver Configuration File +; +[general] +; +; Automatically answer incoming calls on the console? Choose yes if +; for example you want to use this as an intercom. +; +autoanswer=yes +; +; Default context (is overridden with @context syntax) +; +context=local +; +; Default extension to call +; +extension=s +; +; Default language +; +;language=en +; +; Default Music on Hold class to use when this channel is placed on hold in +; the case that the music class is not set on the channel with +; Set(CHANNEL(musicclass)=whatever) in the dialplan and the peer channel +; putting this one on hold did not suggest a class to use. +; +;mohinterpret=default +; +; Silence suppression can be enabled when sound is over a certain threshold. +; The value for the threshold should probably be between 500 and 2000 or so, +; but your mileage may vary. Use the echo test to evaluate the best setting. +;silencesuppression = yes +;silencethreshold = 1000 +; +; To set which ALSA device to use, change this parameter +;input_device=hw:0,0 +;output_device=hw:0,0 + +;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- +; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an + ; ALSA channel. Defaults to "no". An enabled jitterbuffer will + ; be used only if the sending side can create and the receiving + ; side can not accept jitter. The ALSA channel can't accept jitter, + ; thus an enabled jitterbuffer on the receive ALSA side will always + ; be used if the sending side can create jitter. + +; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. + +; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is + ; resynchronized. Useful to improve the quality of the voice, with + ; big jumps in/broken timestamps, usually sent from exotic devices + ; and programs. Defaults to 1000. + +; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP + ; channel. Two implementations are currently available - "fixed" + ; (with size always equals to jbmax-size) and "adaptive" (with + ; variable size, actually the new jb of IAX2). Defaults to fixed. + +; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". +;----------------------------------------------------------------------------------- + diff --git a/trunk/configs/amd.conf.sample b/trunk/configs/amd.conf.sample new file mode 100644 index 000000000..ce4808a0c --- /dev/null +++ b/trunk/configs/amd.conf.sample @@ -0,0 +1,18 @@ +; +; Answering Machine Detection Configuration +; + +[general] +initial_silence = 2500 ; Maximum silence duration before the greeting. + ; If exceeded then MACHINE. +greeting = 1500 ; Maximum length of a greeting. If exceeded then MACHINE. +after_greeting_silence = 800 ; Silence after detecting a greeting. + ; If exceeded then HUMAN +total_analysis_time = 5000 ; Maximum time allowed for the algorithm to decide + ; on a HUMAN or MACHINE +min_word_length = 100 ; Minimum duration of Voice to considered as a word +between_words_silence = 50 ; Minimum duration of silence after a word to consider + ; the audio what follows as a new word +maximum_number_of_words = 3 ; Maximum number of words in the greeting. + ; If exceeded then MACHINE +silence_threshold = 256 diff --git a/trunk/configs/asterisk.adsi b/trunk/configs/asterisk.adsi new file mode 100644 index 000000000..a275502ac --- /dev/null +++ b/trunk/configs/asterisk.adsi @@ -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 + diff --git a/trunk/configs/cdr.conf.sample b/trunk/configs/cdr.conf.sample new file mode 100644 index 000000000..c2882c1f0 --- /dev/null +++ b/trunk/configs/cdr.conf.sample @@ -0,0 +1,148 @@ +; +; 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. +;unanswered = no + +; Define the CDR batch mode, where instead of posting the CDR at the end of +; every call, the data will be stored in a buffer to help alleviate load on the +; asterisk server. Default is "no". +; +; WARNING WARNING WARNING +; Use of batch mode may result in data loss after unsafe asterisk termination +; ie. software crash, power failure, kill -9, etc. +; WARNING WARNING WARNING +; +;batch=no + +; Define the maximum number of CDRs to accumulate in the buffer before posting +; them to the backend engines. 'batch' must be set to 'yes'. Default is 100. +;size=100 + +; Define the maximum time to accumulate CDRs in the buffer before posting them +; to the backend engines. If this time limit is reached, then it will post the +; records, regardless of the value defined for 'size'. 'batch' must be set to +; 'yes'. Note that time is in seconds. Default is 300 (5 minutes). +;time=300 + +; The CDR engine uses the internal asterisk scheduler to determine when to post +; records. Posting can either occur inside the scheduler thread, or a new +; thread can be spawned for the submission of every batch. For small batches, +; it might be acceptable to just use the scheduler thread, so set this to "yes". +; For large batches, say anything over size=10, a new thread is recommended, so +; set this to "no". Default is "no". +;scheduleronly=no + +; When shutting down asterisk, you can block until the CDRs are submitted. If +; you don't, then data will likely be lost. You can always check the size of +; the CDR batch buffer with the CLI "cdr status" command. To enable blocking on +; submission of CDR data during asterisk shutdown, set this to "yes". Default +; is "yes". +;safeshutdown=yes + +; Normally, CDR's are not closed out until after all extensions are finished +; executing. By enabling this option, the CDR will be ended before executing +; the "h" extension so that CDR values such as "end" and "billsec" may be +; retrieved inside of of this extension. +;endbeforehexten=no + +; +; +; CHOOSING A CDR "BACKEND" (what kind of output to generate) +; +; To choose a backend, you have to make sure either the right category is +; defined in this file, or that the appropriate config file exists, and has the +; proper definitions in it. If there are any problems, usually, the entry will +; silently ignored, and you get no output. +; +; Also, please note that you can generate CDR records in as many formats as you +; wish. If you configure 5 different CDR formats, then each event will be logged +; in 5 different places! In the example config files, all formats are commented +; out except for the cdr-csv format. +; +; Here are all the possible back ends: +; +; csv, custom, manager, odbc, pgsql, radius, sqlite, tds +; (also, mysql is available via the asterisk-addons, due to licensing +; requirements) +; (please note, also, that other backends can be created, by creating +; a new backend module in the source cdr/ directory!) +; +; Some of the modules required to provide these backends will not build or install +; unless some dependency requirements are met. Examples of this are pgsql, odbc, +; etc. If you are not getting output as you would expect, the first thing to do +; is to run the command "make menuselect", and check what modules are available, +; by looking in the "2. Call Detail Recording" option in the main menu. If your +; backend is marked with XXX, you know that the "configure" command could not find +; the required libraries for that option. +; +; To get CDRs to be logged to the plain-jane /var/log/asterisk/cdr-csv/Master.csv +; file, define the [csv] category in this file. No database necessary. The example +; config files are set up to provide this kind of output by default. +; +; To get custom csv CDR records, make sure the cdr_custom.conf file +; is present, and contains the proper [mappings] section. The advantage to +; using this backend, is that you can define which fields to output, and in +; what order. By default, the example configs are set up to mimic the cdr-csv +; output. If you don't make any changes to the mappings, you are basically generating +; the same thing as cdr-csv, but expending more CPU cycles to do so! +; +; To get manager events generated, make sure the cdr_manager.conf file exists, +; and the [general] section is defined, with the single variable 'enabled = yes'. +; +; For odbc, make sure all the proper libs are installed, that "make menuselect" +; shows that the modules are available, and the cdr_odbc.conf file exists, and +; has a [global] section with the proper variables defined. +; +; For pgsql, make sure all the proper libs are installed, that "make menuselect" +; shows that the modules are available, and the cdr_pgsql.conf file exists, and +; has a [global] section with the proper variables defined. +; +; For logging to radius databases, make sure all the proper libs are installed, that +; "make menuselect" shows that the modules are available, and the [radius] +; category is defined in this file, and in that section, make sure the 'radiuscfg' +; variable is properly pointing to an existing radiusclient.conf file. +; +; For logging to sqlite databases, make sure the 'cdr.db' file exists in the log directory, +; which is usually /var/log/asterisk. Of course, the proper libraries should be available +; during the 'configure' operation. +; +; For tds logging, make sure the proper libraries are available during the 'configure' +; phase, and that cdr_tds.conf exists and is properly set up with a [global] category. +; +; Also, remember, that if you wish to log CDR info to a database, you will have to define +; a specific table in that databse to make things work! See the doc directory for more details +; on how to create this table in each database. +; + +[csv] +usegmtime=yes ; log date/time in GMT. Default is "no" +loguniqueid=yes ; log uniqueid. Default is "no +loguserfield=yes ; log user field. Default is "no + +;[radius] +;usegmtime=yes ; log date/time in GMT +;loguniqueid=yes ; log uniqueid +;loguserfield=yes ; log user field +; Set this to the location of the radiusclient-ng configuration file +; The default is /etc/radiusclient-ng/radiusclient.conf +;radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf diff --git a/trunk/configs/cdr_adaptive_odbc.conf.sample b/trunk/configs/cdr_adaptive_odbc.conf.sample new file mode 100644 index 000000000..a16626e58 --- /dev/null +++ b/trunk/configs/cdr_adaptive_odbc.conf.sample @@ -0,0 +1,40 @@ +; +; 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 +;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 + + diff --git a/trunk/configs/cdr_custom.conf.sample b/trunk/configs/cdr_custom.conf.sample new file mode 100644 index 000000000..8bc2cb34e --- /dev/null +++ b/trunk/configs/cdr_custom.conf.sample @@ -0,0 +1,10 @@ +; +; Mappings for custom config file +; +; to get your csv output in a format tailored to your liking, uncomment the following +; and look for the output in the cdr-custom/Master.csv file (usually in /var/log/asterisk). +; +; +;[mappings] +;Master.csv => "${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)}" + diff --git a/trunk/configs/cdr_manager.conf.sample b/trunk/configs/cdr_manager.conf.sample new file mode 100644 index 000000000..aa596b718 --- /dev/null +++ b/trunk/configs/cdr_manager.conf.sample @@ -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 diff --git a/trunk/configs/cdr_odbc.conf.sample b/trunk/configs/cdr_odbc.conf.sample new file mode 100644 index 000000000..6245e37eb --- /dev/null +++ b/trunk/configs/cdr_odbc.conf.sample @@ -0,0 +1,12 @@ +; +; cdr_odbc.conf +; + +;[global] +;dsn=MySQL-test +;username=username +;password=password +;loguniqueid=yes +;dispositionstring=yes +;table=cdr ;"cdr" is default table name +;usegmtime=no ; set to "yes" to log in GMT diff --git a/trunk/configs/cdr_pgsql.conf.sample b/trunk/configs/cdr_pgsql.conf.sample new file mode 100644 index 000000000..0784c7b08 --- /dev/null +++ b/trunk/configs/cdr_pgsql.conf.sample @@ -0,0 +1,9 @@ +; Sample Asterisk config file for CDR logging to PostgresSQL + +[global] +;hostname=localhost +;port=5432 +;dbname=asterisk +;password=password +;user=postgres +;table=cdr ;SQL table where CDRs will be inserted diff --git a/trunk/configs/cdr_sqlite3_custom.conf.sample b/trunk/configs/cdr_sqlite3_custom.conf.sample new file mode 100644 index 000000000..55872b383 --- /dev/null +++ b/trunk/configs/cdr_sqlite3_custom.conf.sample @@ -0,0 +1,7 @@ +; +; Mappings for custom config file +; +[master] ; currently, only file "master.db" is supported, with only one table at a time. +table => cdr +columns => calldate, clid, dcontext, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield, test +values => '${CDR(start)}','${CDR(clid)}','${CDR(dcontext)}','${CDR(channel)}','${CDR(dstchannel)}','${CDR(lastapp)}','${CDR(lastdata)}','${CDR(duration)}','${CDR(billsec)}','${CDR(disposition)}','${CDR(amaflags)}','${CDR(accountcode)}','${CDR(uniqueid)}','${CDR(userfield)}','${CDR(test)}' diff --git a/trunk/configs/cdr_tds.conf.sample b/trunk/configs/cdr_tds.conf.sample new file mode 100644 index 000000000..d8c7d075c --- /dev/null +++ b/trunk/configs/cdr_tds.conf.sample @@ -0,0 +1,11 @@ +; Sample Asterisk config file for CDR logging to FreeTDS + +;[global] +;hostname=fs.malico.loc +;port=1433 +;dbname=MalicoHN +;user=mangUsr +;password= +;charset=BIG5 +;table=cdr + diff --git a/trunk/configs/codecs.conf.sample b/trunk/configs/codecs.conf.sample new file mode 100644 index 000000000..c8caeab60 --- /dev/null +++ b/trunk/configs/codecs.conf.sample @@ -0,0 +1,65 @@ +[speex] +; CBR encoding quality [0..10] +; used only when vbr = false +quality => 3 + +; codec complexity [0..10] +; tradeoff between cpu/quality +complexity => 2 + +; perceptual enhancement [true / false] +; improves clarity of decoded speech +enhancement => true + +; voice activity detection [true / false] +; reduces bitrate when no voice detected, used only for CBR +; (implicit in VBR/ABR) +vad => true + +; variable bit rate [true / false] +; uses bit rate proportionate to voice complexity +vbr => true + +; available bit rate [bps, 0 = off] +; encoding quality modulated to match this target bit rate +; not recommended with dtx or pp_vad - may cause bandwidth spikes +abr => 0 + +; VBR encoding quality [0-10] +; floating-point values allowed +vbr_quality => 4 + +; discontinuous transmission [true / false] +; stops transmitting completely when silence is detected +; pp_vad is far more effective but more CPU intensive +dtx => false + +; preprocessor configuration +; these options only affect Speex v1.1.8 or newer + +; enable preprocessor [true / false] +; allows dsp functionality below but incurs CPU overhead +preprocess => false + +; preproc voice activity detection [true / false] +; more advanced equivalent of DTX, based on voice frequencies +pp_vad => false + +; preproc automatic gain control [true / false] +pp_agc => false +pp_agc_level => 8000 + +; preproc denoiser [true / false] +pp_denoise => false + +; preproc dereverb [true / false] +pp_dereverb => false +pp_dereverb_decay => 0.4 +pp_dereverb_level => 0.3 + + +[plc] +; for all codecs which do not support native PLC +; this determines whether to perform generic PLC +; there is a minor performance penalty for this +genericplc => true diff --git a/trunk/configs/console.conf.sample b/trunk/configs/console.conf.sample new file mode 100644 index 000000000..820a04dd9 --- /dev/null +++ b/trunk/configs/console.conf.sample @@ -0,0 +1,68 @@ +; +; 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. + +; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". +;----------------------------------------------------------------------------------- diff --git a/trunk/configs/dnsmgr.conf.sample b/trunk/configs/dnsmgr.conf.sample new file mode 100644 index 000000000..e34dbcf0a --- /dev/null +++ b/trunk/configs/dnsmgr.conf.sample @@ -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)
\ No newline at end of file diff --git a/trunk/configs/dundi.conf.sample b/trunk/configs/dundi.conf.sample new file mode 100644 index 000000000..f62210659 --- /dev/null +++ b/trunk/configs/dundi.conf.sample @@ -0,0 +1,261 @@ +; +; DUNDi configuration file +; +; For more information about DUNDi, see http://www.dundi.com +; +; +[general] +; +; The "general" section contains general parameters relating +; to the operation of the dundi client and server. +; +; The first part should be your complete contact information +; should someone else in your peer group need to contact you. +; +;department=Your Department +;organization=Your Company, Inc. +;locality=Your City +;stateprov=ST +;country=US +;email=your@email.com +;phone=+12565551212 +; +; +; Specify bind address and port number. Default is +; 4520 +; +;bindaddr=0.0.0.0 +;port=4520 +; +; See qos.tex or Quality of Service section of asterisk.pdf for a description of the tos parameter. +;tos=ef +; +; Our entity identifier (Should generally be the MAC address of the +; machine it's running on. Defaults to the first eth address, but you +; can override it here, as long as you set it to the MAC of *something* +; you own!) +; +;entityid=00:07:E9:3B:76:60 +; +; Peers shall cache our query responses for the specified time, +; given in seconds. Default is 3600. +; +;cachetime=3600 +; +; This defines the max depth in which to search the DUNDi system. +; Note that the maximum time that we will wait for a response is +; (2000 + 200 * ttl) ms. +; +ttl=32 +; +; If we don't get ACK to our DPDISCOVER within 2000ms, and autokill is set +; to yes, then we cancel the whole thing (that's enough time for one +; retransmission only). This is used to keep things from stalling for a long +; time for a host that is not available, but would be ill advised for bad +; connections. In addition to 'yes' or 'no' you can also specify a number +; of milliseconds. See 'qualify' for individual peers to turn on for just +; a specific peer. +; +autokill=yes +; +; pbx_dundi creates a rotating key called "secret", under the family +; 'secretpath'. The default family is dundi (resulting in +; the key being held at dundi/secret). +; +;secretpath=dundi +; +; The 'storehistory' option (also changeable at runtime with +; 'dundi store history' and 'dundi no store history') will +; cause the DUNDi engine to keep track of the last several +; queries and the amount of time each query took to execute +; for the purpose of tracking slow nodes. This option is +; off by default due to performance impacts. +; +;storehistory=yes + +[mappings] +; +; The "mappings" section maps DUNDi contexts +; to contexts on the local asterisk system. Remember +; that numbers that are made available under the e164 +; DUNDi context are regulated by the DUNDi General Peering +; Agreement (GPA) if you are a member of the DUNDi E.164 +; Peering System. +; +; dundi_context => local_context,weight,tech,dest[,options]] +; +; 'dundi_context' is the name of the context being requested +; within the DUNDi request +; +; 'local_context' is the name of the context on the local system +; in which numbers can be looked up for which responses shall be given. +; +; 'weight' is the weight to use for the responses provided from this +; mapping. The number must be >= 0 and < 60000. Since it is totally +; valid to receive multiple responses to a query, responses received +; with a lower weight are tried first. Note that the weight has a +; special meaning in the e164 context - see the GPA for more details. +; +; 'tech' is the technology to use (IAX, SIP, H323) +; +; 'dest' is the destination to supply for reaching that number. The +; following variables can be used in the destination string and will +; be automatically substituted: +; ${NUMBER}: The number being requested +; ${IPADDR}: The IP address to connect to +; ${SECRET}: The current rotating secret key to be used +; +; Further options may include: +; +; nounsolicited: No unsolicited calls of any type permitted via this +; route +; nocomunsolicit: No commercial unsolicited calls permitted via +; this route +; residential: This number is known to be a residence +; commercial: This number is known to be a business +; mobile: This number is known to be a mobile phone +; nocomunsolicit: No commercial unsolicited calls permitted via +; this route +; nopartial: Do not search for partial matches +; +; There *must* exist an entry in mappings for DUNDi to respond +; to any request, although it may be empty. +; +;e164 => dundi-e164-canonical,0,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial +;e164 => dundi-e164-customers,100,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial +;e164 => dundi-e164-via-pstn,400,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial + +;digexten => default,0,IAX2,guest@lappy/${NUMBER} +;asdf => + +; +; Weights for mappings can be set a few different ways: +; +; 1) It can be set as a static number. +;testmap1 => context1,222,IAX2,guest@peer1/${NUMBER} +; +; 2) It can be an Asterisk global variable. +;testmap2 => context2,${DUNDITESTVAR},IAX2,guest@peer2${NUMBER} +; +; 3) It can be retrieved using a dialplan function. This can be extremely +; useful if you want to let an external script decide what the weight +; in a response shouuld be. +;testmap3 => context3,${SHELL(echo 123)},IAX2,guest@peer3/${NUMBER} +; +; Note than when using a global variable or dialplan function to set the +; weight for a mapping, that response caching should be disabled if you +; plan for these values to change frequently at all. If the results are +; cached, then any change in value will not take effect until the cache +; has expired. +; + +; +; The remaining sections represent the peers +; that we fundamentally trust. The section name +; represents the name and optionally at a specific +; DUNDi context if you want the trust to be established +; for only a specific DUNDi context. +; +; inkey - What key they will be authenticating to us with +; +; outkey - What key we use to authenticate to them +; +; host - What their host is +; +; 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 + +;[*] +; diff --git a/trunk/configs/enum.conf.sample b/trunk/configs/enum.conf.sample new file mode 100644 index 000000000..39c723175 --- /dev/null +++ b/trunk/configs/enum.conf.sample @@ -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 diff --git a/trunk/configs/extconfig.conf.sample b/trunk/configs/extconfig.conf.sample new file mode 100644 index 000000000..4c3899fcd --- /dev/null +++ b/trunk/configs/extconfig.conf.sample @@ -0,0 +1,63 @@ +; +; Static and realtime external configuration +; engine configuration +; +; Please read doc/extconfig.txt for basic table +; formatting information. +; +[settings] +; +; Static configuration files: +; +; file.conf => driver,database[,table] +; +; maps a particular configuration file to the given +; database driver, database and table (or uses the +; name of the file as the table if not specified) +; +;uncomment to load queues.conf via the odbc engine. +; +;queues.conf => odbc,asterisk,ast_config +;extensions.conf => sqlite,asterisk,ast_config +; +; The following files CANNOT be loaded from Realtime storage: +; asterisk.conf +; extconfig.conf (this file) +; logger.conf +; +; Additionally, the following files cannot be loaded from +; Realtime storage unless the storage driver is loaded +; early using 'preload' statements in modules.conf: +; manager.conf +; cdr.conf +; rtp.conf +; +; +; Realtime configuration engine +; +; maps a particular family of realtime +; configuration to a given database driver, +; database and table (or uses the name of +; the family if the table is not specified +; +;example => odbc,asterisk,alttable +;example2 => ldap,"dc=oxymium,dc=net",example2 +; +; "odbc" is shown in the examples below, but is not the only valid realtime +; engine. There is: +; odbc ... res_config_odbc +; sqlite ... res_config_sqlite +; pgsql ... res_config_pgsql +; +;iaxusers => odbc,asterisk +;iaxpeers => odbc,asterisk +;sipusers => odbc,asterisk +;sippeers => odbc,asterisk +;sipregs => odbc,asterisk +;voicemail => odbc,asterisk +;extensions => odbc,asterisk +;queues => odbc,asterisk +;queue_members => odbc,asterisk +;musiconhold => mysql,asterisk +;queue_log => mysql,aasterisk + diff --git a/trunk/configs/extensions.ael.sample b/trunk/configs/extensions.ael.sample new file mode 100644 index 000000000..89436dc21 --- /dev/null +++ b/trunk/configs/extensions.ael.sample @@ -0,0 +1,448 @@ +// +// 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)} +// + +globals { + CONSOLE="Console/dsp"; // Console interface for demo + //CONSOLE=Zap/1 + //CONSOLE=Phone/phone0 + IAXINFO=guest; // IAXtel username/password + //IAXINFO="myuser:mypass"; + TRUNK="Zap/g2"; // Trunk interface + // + // Note the 'g2' in the TRUNK variable above. It specifies which group (defined + // in zapata.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 Zap channel + // (aka. ascending sequential hunt group). + // G: select the highest-numbered non-busy Zap 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 +}; + +// +// 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(Zap/g2/${EXTEN:7}); // Expose all of 256-428 + //_1256325XXXX => Dial(Zap/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}@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(${TRUNK}/${EXTEN:${TRUNKMSD}}); + }; +}; + +context ael-trunkld { + // + // Long distance context accessed through trunk + // + includes { + ael-dundi-e164-lookup; + }; + _91NXXNXXXXXX => { + &ael-dundi-e164(${EXTEN:1}); + Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}); + }; +}; + +context ael-trunklocal { + // + // Local seven-digit dialing accessed through trunk interface + // + _9NXXXXXX => { + Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}); + }; +}; + +context ael-trunktollfree { + // + // Long distance context accessed through trunk interface + // + + _91800NXXXXXX => Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}); + _91888NXXXXXX => Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}); + _91877NXXXXXX => Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}); + _91866NXXXXXX => Dial(${TRUNK}/${EXTEN:${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 Zap/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. +// +} diff --git a/trunk/configs/extensions.conf.sample b/trunk/configs/extensions.conf.sample new file mode 100644 index 000000000..c6f9ad046 --- /dev/null +++ b/trunk/configs/extensions.conf.sample @@ -0,0 +1,614 @@ +; extensions.conf - the Asterisk dial plan +; +; Static extension configuration file, used by +; the pbx_config module. This is where you configure all your +; inbound and outbound calls in Asterisk. +; +; This configuration file is reloaded +; - With the "dialplan reload" command in the CLI +; - With the "reload" command (that reloads everything) in the CLI + +; +; The "General" category is for certain variables. +; +[general] +; +; If static is set to no, or omitted, then the pbx_config will rewrite +; this file when extensions are modified. Remember that all comments +; made in the file will be lost when that happens. +; +; XXX Not yet implemented XXX +; +static=yes +; +; if static=yes and writeprotect=no, you can save dialplan by +; CLI command "dialplan save" too +; +writeprotect=no +; +; If autofallthrough is set, then if an extension runs out of +; things to do, it will terminate the call with BUSY, CONGESTION +; or HANGUP depending on Asterisk's best guess. This is the default. +; +; If autofallthrough is not set, then if an extension runs out of +; things to do, Asterisk will wait for a new extension to be dialed +; (this is the original behavior of Asterisk 1.0 and earlier). +; +;autofallthrough=no +; +; +; +; If extenpatternmatchnew is set (true, yes, etc), then a new algorithm that uses +; a Trie to find the best matching pattern is used. In dialplans +; with more than about 20-40 extensions in a single context, this +; new algorithm can provide a noticeable speedup. +; With 50 extensions, the speedup is 1.32x +; with 88 extensions, the speedup is 2.23x +; with 138 extensions, the speedup is 3.44x +; with 238 extensions, the speedup is 5.8x +; with 438 extensions, the speedup is 10.4x +; With 1000 extensions, the speedup is ~25x +; with 10,000 extensions, the speedup is 374x +; Basically, the new algorithm provides a flat response +; time, no matter the number of extensions. +; +; By default, the old pattern matcher is used. +; +; ****This is a new feature! ********************* +; The new pattern matcher is for the brave, the bold, and +; the desperate. If you have large dialplans (more than about 50 extensions +; in a context), and/or high call volume, you might consider setting +; this value to "yes" !! +; Please, if you try this out, and are forced to return to the +; old pattern matcher, please report your reasons in a bug report +; on bugs.digium.com. We have made good progress in providing something +; compatible with the old matcher; help us finish the job! +; +; This value can be switched at runtime using the cli command "dialplan set extenpatternmatchnew true" +; or "dialplan set extenpatternmatchnew false", so you can experiment to your hearts content. +; +;extenpatternmatchnew=no +; +; If clearglobalvars is set, global variables will be cleared +; and reparsed on an extensions 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 +; +; If priorityjumping is set to 'yes', then applications that support +; 'jumping' to a different priority based on the result of their operations +; will do so (this is backwards compatible behavior with pre-1.2 releases +; of Asterisk). Individual applications can also be requested to do this +; by passing a 'j' option in their arguments. +; +;priorityjumping=yes +; +; 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" + +; 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=Zap/1 +;CONSOLE=Phone/phone0 +IAXINFO=guest ; IAXtel username/password +;IAXINFO=myuser:mypass +TRUNK=Zap/g2 ; Trunk interface +; +; Note the 'g2' in the TRUNK variable above. It specifies which group (defined +; in zapata.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 Zap channel +; (aka. ascending sequential hunt group). +; G: select the highest-numbered non-busy Zap 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 + +; +; 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] +;exten => someexten,{priority|label{+|-}offset}[(alias)],application(arg1,arg2,...) +;exten => someexten,{priority|label{+|-}offset}[(alias)],application,arg1|arg2... +; +; Timing list for includes is +; +; <time range>|<days of week>|<days of month>|<months> +; +; 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. +; + +; +; Sample entries for extensions.conf +; +; +[dundi-e164-canonical] +; +; List canonical entries here +; +;exten => 12564286000,1,Macro(stdexten,6000,IAX2/foo) +;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(Zap/g2/${EXTEN:7}) ; Expose all of 256-428 +;exten => _1256325XXXX,1,Dial(Zap/g2/${EXTEN:7}) ; Ditto for 256-325 + +[dundi-e164-local] +; +; Context to put your dundi IAX2 or SIP user in for +; full access +; +include => dundi-e164-canonical +include => dundi-e164-customers +include => dundi-e164-via-pstn + +[dundi-e164-switch] +; +; Just a wrapper for the switch +; +switch => DUNDi/e164 + +[dundi-e164-lookup] +; +; Locally to lookup, try looking for a local E.164 solution +; then try DUNDi if we don't have one. +; +include => dundi-e164-local +include => dundi-e164-switch +; +; DUNDi can also be implemented as a Macro instead of using +; the Local channel driver. +; +[macro-dundi-e164] +; +; ARG1 is the extension to Dial +; +; Extension "s" is not a wildcard extension that matches "anything". +; In macros, it is the start extension. In most other cases, +; you have to goto "s" to execute that extension. +; +; For wildcard matches, see above - all pattern matches start with +; an underscore. +exten => s,1,Goto(${ARG1},1) +include => dundi-e164-lookup + +; +; Here are the entries you need to participate in the IAXTEL +; call routing system. Most IAXTEL numbers begin with 1-700, but +; there are exceptions. For more information, and to sign +; up, please go to www.gnophone.com or www.iaxtel.com +; +[iaxtel700] +exten => _91700XXXXXXX,1,Dial(IAX2/${GLOBAL(IAXINFO)}@iaxtel.com/${EXTEN:1}@iaxtel) + +; +; The SWITCH statement permits a server to share the dialplan with +; another server. Use with care: Reciprocal switch statements are not +; allowed (e.g. both A -> B and B -> A), and the switched server needs +; to be on-line or else dialing can be severly delayed. +; +[iaxprovider] +;switch => IAX2/user:[key]@myserver/mycontext + +[trunkint] +; +; International long distance through trunk +; +exten => _9011.,1,Macro(dundi-e164,${EXTEN:4}) +exten => _9011.,n,Dial(${GLOBAL(TRUNK)}/${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} + +[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 + +[macro-stdexten]; +; +; Standard extension macro: +; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well +; ${ARG2} - Device(s) to ring +; +exten => s,1,Dial(${ARG2},20) ; Ring the interface, 20 seconds maximum +exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) + +exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to voicemail w/ unavail announce +exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start + +exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ busy announce +exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start + +exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer + +exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into VoicemailMain + +[macro-stdPrivacyexten]; +; +; Standard extension macro: +; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well +; ${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)` +; +exten => s,1,Dial(${ARG2},20|p) ; Ring the interface, 20 seconds maximum, call screening + ; option (or use P for databased call screening) +exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) + +exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to voicemail w/ unavail announce +exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start + +exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ busy announce +exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start + +exten => s-DONTCALL,1,Goto(${ARG3},s,1) ; Callee chose to send this call to a polite "Don't call again" script. + +exten => s-TORTURE,1,Goto(${ARG4},s,1) ; Callee chose to send this call to a telemarketer torture script. + +exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer + +exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into VoicemailMain + +[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}|js) ; j is for Jump and 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] +; +; We start with what to do when a call first comes in. +; +exten => s,1,Wait(1) ; Wait a second, just for fun +exten => s,n,Answer ; Answer the line +exten => s,n,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds +exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds +exten => s,n(restart),BackGround(demo-congrats) ; Play a congratulatory message +exten => s,n(instruct),BackGround(demo-instruct) ; Play some instructions +exten => s,n,WaitExten ; Wait for an extension to be dialed. + +exten => 2,1,BackGround(demo-moreinfo) ; Give some more information. +exten => 2,n,Goto(s,instruct) + +exten => 3,1,Set(LANGUAGE()=fr) ; Set language to french +exten => 3,n,Goto(s,restart) ; Start with the congratulations + +exten => 1000,1,Goto(default,s,1) +; +; We also create an example user, 1234, who is on the console and has +; voicemail, etc. +; +exten => 1234,1,Playback(transfer,skip) ; "Please hold while..." + ; (but skip if channel is not up) +exten => 1234,n,Macro(stdexten,1234,${GLOBAL(CONSOLE)}) + +exten => 1235,1,Voicemail(1234,u) ; Right to voicemail + +exten => 1236,1,Dial(Console/dsp) ; Ring forever +exten => 1236,n,Voicemail(1234,b) ; Unless busy + +; +; # for when they're done with the demo +; +exten => #,1,Playback(demo-thanks) ; "Thanks for trying the demo" +exten => #,n,Hangup ; Hang them up. + +; +; A timeout and "invalid extension rule" +; +exten => t,1,Goto(#,1) ; If they take too long, give up +exten => i,1,Playback(invalid) ; "That's not valid, try again" + +; +; Create an extension, 500, for dialing the +; Asterisk demo. +; +exten => 500,1,Playback(demo-abouttotry); Let them know what's going on +exten => 500,n,Dial(IAX2/guest@pbx.digium.com/s@default) ; Call the Asterisk demo +exten => 500,n,Playback(demo-nogo) ; Couldn't connect to the demo site +exten => 500,n,Goto(s,6) ; Return to the start over message. + +; +; Create an extension, 600, for evaluating echo latency. +; +exten => 600,1,Playback(demo-echotest) ; Let them know what's going on +exten => 600,n,Echo ; Do the echo test +exten => 600,n,Playback(demo-echodone) ; Let them know it's over +exten => 600,n,Goto(s,6) ; Start over + +; +; You can use the Macro Page to intercom a individual user +exten => 76245,1,Macro(page,SIP/Grandstream1) +; or if your peernames are the same as extensions +exten => _7XXX,1,Macro(page,SIP/${EXTEN}) +; +; +; System Wide Page at extension 7999 +; +exten => 7999,1,Set(TIMEOUT(absolute)=60) +exten => 7999,2,Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n|d) + +; Give voicemail at extension 8500 +; +exten => 8500,1,VoicemailMain +exten => 8500,n,Goto(s,6) +; +; Here's what a phone entry would look like (IXJ for example) +; +;exten => 1265,1,Dial(Phone/phone0,15) +;exten => 1265,n,Goto(s,5) + +; +; The page context calls up the page macro that sets variables needed for auto-answer +; It is in is own context to make calling it from the Page() application as simple as +; Local/{peername}@page +; +[page] +exten => _X.,1,Macro(page,SIP/${EXTEN}) + +;[mainmenu] +; +; Example "main menu" context with submenu +; +;exten => s,1,Answer +;exten => s,n,Background(thanks) ; "Thanks for calling press 1 for sales, 2 for support, ..." +;exten => s,n,WaitExten +;exten => 1,1,Goto(submenu,s,1) +;exten => 2,1,Hangup +;include => default +; +;[submenu] +;exten => s,1,Ringing ; Make them comfortable with 2 seconds of ringback +;exten => s,n,Wait,2 +;exten => s,n,Background(submenuopts) ; "Thanks for calling the sales department. Press 1 for steve, 2 for..." +;exten => s,n,WaitExten +;exten => 1,1,Goto(default,steve,1) +;exten => 2,1,Goto(default,mark,2) + +[default] +; +; By default we include the demo. In a production system, you +; probably don't want to have the demo there. +; +include => demo + +; +; An extension like the one below can be used for FWD, Nikotel, sipgate etc. +; Note that you must have a [sipprovider] section in sip.conf +; +;exten => _41X.,1,Dial(SIP/${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,Macro(stdexten,6275,${MARK}) ; assuming ${MARK} is something like Zap/2 +;exten => mark,1,Goto(6275|1) ; alias mark to 6275 +;exten => 6536,1,Macro(stdexten,6236,${WIL}) ; Ditto for wil +;exten => wil,1,Goto(6236|1) + +;If you want to subscribe to the status of a parking space, this is +;how you do it. Subscribe to extension 6600 in sip, and you will see +;the status of the first parking lot with this extensions' help +;exten => 6600,hint,park:701@parkedcalls +;exten => 6600,1,noop +; +; Some other handy things are an extension for checking voicemail via +; voicemailmain +; +;exten => 8500,1,VoicemailMain +;exten => 8500,n,Hangup +; +; Or a conference room (you'll need to edit meetme.conf to enable this room) +; +;exten => 8600,1,Meetme(1234) +; +; Or playing an announcement to the called party, as soon it answers +; +;exten = 8700,1,Dial(${MARK},30,A(/path/to/my/announcemsg)) +; +; 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. diff --git a/trunk/configs/extensions.lua.sample b/trunk/configs/extensions.lua.sample new file mode 100644 index 000000000..691e461fb --- /dev/null +++ b/trunk/configs/extensions.lua.sample @@ -0,0 +1,208 @@ + + +CONSOLE = "Console/dsp" -- Console interface for demo +--CONSOLE = "Zap/1" +--CONSOLE = "Phone/phone0" + +IAXINFO = "guest" -- IAXtel username/password +--IAXINFO = "myuser:mypass" + +TRUNK = "Zap/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. +-- +-- This file can be automatically included in the extensions.conf file using +-- the 'utils/build-extensions-conf.lua' script and a #exec statement in +-- extensions.conf. +-- +-- #exec /usr/bin/utils/build-extensions.conf.lua -c +-- +-- The 'execincludes' option must be set to 'yes' in the [options] section of +-- asterisk.conf for this to work properly. +-- +-- 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("Zap/1") +-- app.dial("Zap/1") +-- +-- More examples can be found below. +-- +-- Before starting long running operations, an autoservice should be started +-- using the autoservice_start() function. This autoservice will automatically +-- be stopped before executing applications and dialplan functions and will be +-- restarted afterwards. The autoservice can be stopped using +-- autoservice_stop() and the autoservice_status() function will return true if +-- an autoservice is currently running. +-- + +function outgoing_local(c, e) + app.dial("zap/1/" .. e, "", "") +end + +function demo_instruct() + app.background("demo-instruct") + app.waitexten() +end + +function demo_congrats() + app.background("demo-congrats") + demo_instruct() +end + +-- Answer the chanel and play the demo sound files +function demo_start(context, exten) + app.wait(1) + app.answer() + + channel.TIMEOUT("digit"):set(5) + channel.TIMEOUT("response"):set(10) + -- app.set("TIMEOUT(digit)=5") + -- app.set("TIMEOUT(response)=10") + + demo_congrats(context, exten) +end + +function demo_hangup() + app.playback("demo-thanks") + app.hangup() +end + +extensions = { + demo = { + s = demo_start; + + ["2"] = function() + app.background("demo-moreinfo") + demo_instruct() + end; + ["3"] = function () + channel.LANGUAGE():set("fr") -- set the language to french + demo_congrats() + end; + + ["1000"] = function() + app.goto("default", "s", 1) + end; + + ["1234"] = function() + app.playback("transfer", "skip") + -- do a dial here + end; + + ["1235"] = function() + app.voicemail("1234", "u") + end; + + ["1236"] = function() + app.dial("Console/dsp") + app.voicemail(1234, "b") + end; + + ["#"] = demo_hangup; + t = demo_hangup; + i = function() + app.playback("invalid") + demo_instruct() + end; + + ["500"] = function() + app.playback("demo-abouttotry") + app.dial("IAX2/guest@misery.digium.com/s@default") + app.playback("demo-nogo") + demo_instruct() + end; + + ["600"] = function() + app.playback("demo-echotest") + app.echo() + app.playback("demo-echodone") + demo_instruct() + end; + + ["8500"] = function() + app.voicemailmain() + demo_instruct() + end; + + }; + + default = { + -- by default, do the demo + include = {"demo"}; + }; + + ["local"] = { + ["_NXXXXXX"] = outgoing_local; + }; +} + diff --git a/trunk/configs/extensions_minivm.conf.sample b/trunk/configs/extensions_minivm.conf.sample new file mode 100644 index 000000000..75f87c165 --- /dev/null +++ b/trunk/configs/extensions_minivm.conf.sample @@ -0,0 +1,159 @@ +; MINI-VOICEMAIL dialplan example +; --------------------------------------------------------------------------------------- +; ASTERISK_FILE_VERSION(__FILE__, "$Revision$") +; +; +; 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)) + diff --git a/trunk/configs/features.conf.sample b/trunk/configs/features.conf.sample new file mode 100644 index 000000000..c3026adda --- /dev/null +++ b/trunk/configs/features.conf.sample @@ -0,0 +1,124 @@ +; +; Sample Call Features (parking, transfer, etc) configuration +; + +[general] +parkext => 700 ; What extension to dial to park +parkpos => 701-720 ; What extensions to park calls on. These needs to be + ; numeric, as Asterisk starts from the start position + ; and increments with one for the next parked call. +context => parkedcalls ; Which context parked calls are in +;parkingtime => 45 ; Number of seconds a call can be parked for + ; (default is 45 seconds) +;courtesytone = beep ; Sound file to play to the parked caller + ; when someone dials a parked call + ; or the Touch Monitor is activated/deactivated. +;parkedplay = caller ; Who to play the courtesy tone to when picking up a parked call + ; one of: parked, caller, both (default is caller) +;parkedcalltransfers = caller ; Enables or disables DTMF based transfers when picking up a parked call. + ; one of: callee, caller, both, no (default is no) +;parkedcallreparking = caller ; Enables or disables DTMF based parking when picking up a parked call. + ; one of: callee, caller, both, no (default is no) +;adsipark = yes ; if you want ADSI parking announcements +;findslot => next ; Continue to the 'next' free parking space. + ; Defaults to 'first' available +;parkedmusicclass=default ; This is the MOH class to use for the parked channel + ; as long as the class is not set on the channel directly + ; using Set(CHANNEL(musicclass)=whatever) in the dialplan + +;transferdigittimeout => 3 ; Number of seconds to wait between digits when transferring a call + ; (default is 3 seconds) +;xfersound = beep ; to indicate an attended transfer is complete +;xferfailsound = beeperr ; to indicate a failed transfer +;pickupexten = *8 ; Configure the pickup extension. (default is *8) +;featuredigittimeout = 500 ; Max time (ms) between digits for + ; feature activation (default is 500 ms) +;atxfernoanswertimeout = 15 ; Timeout for answer on attended transfer default is 15 seconds. +;atxferdropcall = no ; If someone does an attended transfer, then hangs up before the transferred + ; caller is connected, then by default, the system will try to call back the + ; person that did the transfer. If this is set to "yes", the callback will + ; not be attempted and the transfer will just fail. +;atxferloopdelay = 10 ; Number of seconds to sleep between retries (if atxferdropcall = no) +;atxfercallbackretries = 2 ; Number of times to attempt to send the call back to the transferer. + ; By default, this is 2. + +; 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 #) +;disconnect => *0 ; Disconnect (default is *) +;automon => *1 ; One Touch Record a.k.a. Touch Monitor +;atxfer => *2 ; Attended transfer +;parkcall => #72 ; Park call (one step parking) +;automixmon => *3 ; One Touch Record a.k.a. Touch MixMonitor + +[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) +; +; +; The syntax for declaring a dynamic feature is the following: +; +;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>[,<AppArguments>[,MOH_Class]] +; +; FeatureName -> This is the name of the feature used in when setting the +; DYNAMIC_FEATURES variable to enable usage of this feature. +; DTMF_sequence -> This is the key sequence used to activate this feature. +; ActivateOn -> This is the channel of the call that the application will be executed +; on. Valid values are "self" and "peer". "self" means run the +; application on the same channel that activated the feature. "peer" +; means run the application on the opposite channel from the one that +; has activated the feature. +; ActivatedBy -> This is which channel is allowed to activate this feature. Valid +; values are "caller", "callee", and "both". "both" is the default. +; The "caller" is the channel that executed the Dial application, while +; the "callee" is the channel called by the Dial application. +; Application -> This is the application to execute. +; AppArguments -> These are the arguments to be passed into the application. +; 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 +; +;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 +; +; GROUPS +; Groups are groupings of features defined in [applicationmap] +; that can have their own key mappings. +; +; Groups are defined as a configuration section, +; and can be set as part of DYNAMIC_FEATURES in +; the same way that a normal feature can... +; etc: +; +; Set(DYNAMIC_FEATURES=myGroupName); +; +; 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 the keycode +; ; defined in [applicationmap] + diff --git a/trunk/configs/festival.conf.sample b/trunk/configs/festival.conf.sample new file mode 100644 index 000000000..774f1a16c --- /dev/null +++ b/trunk/configs/festival.conf.sample @@ -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 +; +; + diff --git a/trunk/configs/followme.conf.sample b/trunk/configs/followme.conf.sample new file mode 100644 index 000000000..697e5a69c --- /dev/null +++ b/trunk/configs/followme.conf.sample @@ -0,0 +1,86 @@ +; Find-Me / Follow-Me Configuration File +[general] +; +featuredigittimeout=>5000 +; The number of ms to wait for a digit input for the callee on whether to take the call or +; not before we consider them "done" entering digits. +; +takecall=>1 +; The global default keypress for the callee to take taking the current call. This can be +; a single digit or multiple digits. Default is "1". +; +declinecall=>2 +; The global default keypress for the callee to decline taking the current call. This can +; be a single digit or multiple digits. Default is "2". +; +call-from-prompt=>followme/call-from +; The global default for the 'Incoming call from' message. +; +norecording-prompt=>followme/no-recording +; The global default for the 'You have an incoming call' message when the caller elects +; not to leave their name or the option isn't set for them to do so. +; +options-prompt=>followme/options +; The global default for the 'Press 1 to accept this call or press 2 to decline it' message. +; +pls-hold-prompt=>followme/pls-hold-while-try +; The global default for 'Please hold while we try and connect your call' message. +; +status-prompt=>followme/status +; The global default for 'The party you're calling isn't at their desk' message. +; +sorry-prompt=>followme/sorry +; The global default for 'I'm sorry, but we were unable to locate your party' message. +; +; +[default] +musicclass=>default +; The moh class that should be used for the caller while they are waiting to be connected. +context=>default +; The context to dial the numbers from +number=>01233456,25 +; The a follow-me number to call. The format is: +; number=> <number to call[&2nd #[&3rd #]]> [, <timeout value in seconds> [, <order in follow-me>] ] +; You can specify as many of these numbers as you like. They will be dialed in the +; order that you specify them in the config file OR as specified with the order field +; on the number prompt. As you can see from the example, forked dialing of multiple +; numbers in the same step is supported with this application if you'd like to dial +; multiple numbers in the same followme step. +; It's also important to note that the timeout value is not the same +; as the timeout value you would use in app_dial. This timeout value is the amount of +; time allowed between the time the dialing step starts and the callee makes a choice +; on whether to take the call or not. That being the case, you may want to account for +; this time, and make this timeout longer than a timeout you might specify in app_dial. +takecall=>1 +; The keypress for the callee to take taking the current call. This can be +; a single digit or multiple digits. Default is the global default. +; +declinecall=>2 +; The keypress for the callee to decline taking the current call. This can +; be a single digit or multiple digits. Default is the global default. +; +call-from-prompt=>followme/call-from +; The 'Incoming call from' message prompt. Default is the global default. +; +followme-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. +; +followme-options-prompt=>followme/options +; The 'Press 1 to accept this call or press 2 to decline it' message prompt. +; Default is the global default. +; +followme-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. +; +followme-status-prompt=>followme/status +; The 'The party you're calling isn't at their desk' message prompt. +; Default is the global default. +; +followme-sorry-prompt=>followme/sorry +; The 'I'm sorry, but we were unable to locate your party' message prompt. Default +; is the global default. + + diff --git a/trunk/configs/func_odbc.conf.sample b/trunk/configs/func_odbc.conf.sample new file mode 100644 index 000000000..ff9e1c17b --- /dev/null +++ b/trunk/configs/func_odbc.conf.sample @@ -0,0 +1,77 @@ +; +; 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 variables 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. +; 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(). + + +; 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})}' + +; 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})}' +;prefix=OFFICE ; Changes this function from ODBC_PRESENCE to OFFICE_PRESENCE +;escapecommas=no ; Normally, commas within a field are escaped such that each + ; field may be separated into individual variables with ARRAY. + ; This option turns that behavior off [default=yes]. +;mode=multirow ; Enable multirow fetching. Instead of returning results directly, + ; mode=multirow queries will return a result-id, which can be passed + ; multiple times to ODBC_FETCH, and that function will return each + ; row, in order. You can add to this the following parameter: +;rowlimit=5 ; rowlimit will limit the number of rows retrieved and stored from + ; the database. If not specified, all rows, up to available memory, + ; will be retrieved and stored. + diff --git a/trunk/configs/gtalk.conf.sample b/trunk/configs/gtalk.conf.sample new file mode 100644 index 000000000..da629b626 --- /dev/null +++ b/trunk/configs/gtalk.conf.sample @@ -0,0 +1,19 @@ +;[general] +;context=default ;;Context to dump call into +;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. +; diff --git a/trunk/configs/h323.conf.sample b/trunk/configs/h323.conf.sample new file mode 100644 index 000000000..5be321f33 --- /dev/null +++ b/trunk/configs/h323.conf.sample @@ -0,0 +1,207 @@ +; The NuFone Network's +; Open H.323 driver configuration +; +[general] +port = 1720 +;bindaddr = 1.2.3.4 ; this SHALL contain a single, valid IP address for this machine +; +; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters. +;tos_audio=ef ; Sets TOS for RTP audio packets. +;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. +; +; You may specify a global default AMA flag for iaxtel calls. It must be +; one of 'default', 'omit', 'billing', or 'documentation'. These flags +; are used in the generation of call detail records. +; +;amaflags = default +; +; You may specify a default account for Call Detail Records in addition +; to specifying on a per-user basis +; +;accountcode=lss0101 +; +; You can fine tune codecs here using "allow" and "disallow" clauses +; with specific codecs. Use "all" to represent all formats. +; +;disallow=all +;allow=all ; turns on all installed codecs +;disallow=g723.1 ; Hm... Proprietary, don't use it... +;allow=gsm ; Always allow GSM, it's cool :) +;allow=ulaw ; see doc/rtp-packetization for framing options +; +; User-Input Mode (DTMF) +; +; valid entries are: rfc2833, inband, cisco, h245-signal +; default is rfc2833 +;dtmfmode=rfc2833 +; +; Default RTP Payload to send RFC2833 DTMF on. This is used to +; interoperate with broken gateways which cannot successfully +; negotiate a RFC2833 payload type in the TerminalCapabilitySet. +; To specify required payload type, put it after colon in dtmfmode +; option like +;dtmfmode=rfc2833:101 +; or +;dtmfmode=cisco:121 +; +; Set the gatekeeper +; DISCOVER - Find the Gk address using multicast +; DISABLE - Disable the use of a GK +; <IP address> or <Host name> - The acutal IP address or hostname of your GK +;gatekeeper = DISABLE +; +; +; Tell Asterisk whether or not to accept Gatekeeper +; routed calls or not. Normally this should always +; be set to yes, unless you want to have finer control +; over which users are allowed access to Asterisk. +; Default: YES +; +;AllowGKRouted = yes +; +; When the channel works without gatekeeper, there is possible to +; reject calls from anonymous (not listed in users) callers. +; Default is to allow anonymous calls. +; +;AcceptAnonymous = yes +; +; Optionally you can determine a user by Source IP versus its H.323 alias. +; Default behavour is to determine user by H.323 alias. +; +;UserByAlias=no +; +; Default context gets used in siutations where you are using +; the GK routed model or no type=user was found. This gives you +; the ability to either play an invalid message or to simply not +; use user authentication at all. +; +;context=default +; +; Use this option to help Cisco (or other) gateways to setup backward voice +; path to pass inband tones to calling user (see, for example, +; http://www.cisco.com/warp/public/788/voip/ringback.html) +; +; Add PROGRESS information element to SETUP message sent on outbound calls +; to notify about required backward voice path. Valid values are: +; 0 - don't add PROGRESS information element (default); +; 1 - call is not end-end ISDN, further call progress information can +; possibly be available in-band; +; 3 - origination address is non-ISDN (Cisco accepts this value only); +; 8 - in-band information or an appropriate pattern is now available; +;progress_setup = 3 +; +; Add PROGRESS information element (IE) to ALERT message sent on incoming +; calls to notify about required backwared voice path. Valid values are: +; 0 - don't add PROGRESS IE (default); +; 8 - in-band information or an appropriate pattern is now available; +;progress_alert = 8 +; +; Generate PROGRESS message when H.323 audio path has established to create +; backward audio path at other end of a call. +;progress_audio = yes +; +; Specify how to inject non-standard information into H.323 messages. When +; the channel receives messages with tunneled information, it automatically +; enables the same option for all further outgoing messages independedly on +; options has been set by the configuration. This behavior is required, for +; example, for Cisco CallManager when Q.SIG tunneling is enabled for a +; gateway where Asterisk lives. +; The option can be used multiple times, one option per line. +;tunneling=none ; Totally disable tunneling (default) +;tunneling=cisco ; Enable Cisco-specific tunneling +;tunneling=qsig ; Enable tunneling via Q.SIG messages +; +; Specify how to pass hold notification to remote party. Default is to +; use H.450.4 supplementary service message. +;hold=none ; Do not pass hold/retrieve notifications +;hold=notify ; Use H.225 NOTIFY message +;hold=q931only ; Use stripped H.225 NOTIFY message (Q.931 part +; ; only, usable for Cisco CallManager) +;hold=h450 ; Pass notification as H.450.4 supplementary +; ; service +; +;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- +; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a + ; H323 channel. Defaults to "no". An enabled jitterbuffer will + ; be used only if the sending side can create and the receiving + ; side can not accept jitter. The H323 channel can accept jitter, + ; thus an enabled jitterbuffer on the receive H323 side will only + ; be used if the sending side can create jitter and jbforce is + ; also set to yes. + +; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a H323 + ; channel. Defaults to "no". + +; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. + +; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is + ; resynchronized. Useful to improve the quality of the voice, with + ; big jumps in/broken timestamps, usualy sent from exotic devices + ; and programs. Defaults to 1000. + +; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a H323 + ; channel. Two implementations are currenlty available - "fixed" + ; (with size always equals to jbmax-size) and "adaptive" (with + ; variable size, actually the new jb of IAX2). Defaults to fixed. + +; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". +;----------------------------------------------------------------------------------- +; +; H.323 Alias definitions +; +; Type 'h323' will register aliases to the endpoint +; and Gatekeeper, if there is one. +; +; Example: if someone calls time@your.asterisk.box.com +; Asterisk will send the call to the extension 'time' +; in the context default +; +; [default] +; exten => time,1,Answer +; exten => time,2,Playback,current-time +; +; Keyword's 'prefix' and 'e164' are only make sense when +; used with a gatekeeper. You can specify either a prefix +; or E.164 this endpoint is responsible for terminating. +; +; Example: The H.323 alias 'det-gw' will tell the gatekeeper +; to route any call with the prefix 1248 to this alias. Keyword +; e164 is used when you want to specifiy a full telephone +; number. So a call to the number 18102341212 would be +; routed to the H.323 alias 'time'. +; +;[time] +;type=h323 +;e164=18102341212 +;context=default +; +;[det-gw] +;type=h323 +;prefix=1248,1313 +;context=detroit +; +; +; Inbound H.323 calls from BillyBob would land in the incoming +; context with a maximum of 4 concurrent incoming calls +; +; +; Note: If keyword 'incominglimit' are omitted Asterisk will not +; enforce any maximum number of concurrent calls. +; +;[BillyBob] +;type=user +;host=192.168.1.1 +;context=incoming +;incominglimit=4 +;h245Tunneling=no +; +; +; Outbound H.323 call to Larry using SlowStart +; +;[Larry] +;type=peer +;host=192.168.2.1 +;fastStart=no + + + diff --git a/trunk/configs/http.conf.sample b/trunk/configs/http.conf.sample new file mode 100644 index 000000000..b0c0047aa --- /dev/null +++ b/trunk/configs/http.conf.sample @@ -0,0 +1,71 @@ +; +; 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/asterisk/static/docs/index.html +; +[general] +; +; Whether HTTP/HTTPS interface is enabled or not. Default is no. +; This also affects manager/rawman/mxml access (see manager.conf) +; +;enabled=yes +; +; Address to bind to, both for HTTP and HTTPS. Default is 0.0.0.0 +; +bindaddr=127.0.0.1 +; +; Port to bind to for HTTP sessions (default is 8088) +; +;bindport=8088 +; +; Prefix allows you to specify a prefix for all requests +; to the server. The default is "asterisk" so that all +; requests must begin with /asterisk +; +;prefix=asterisk +; +; 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 = / /asterisk/static/config/cfgbasic.html +; +; HTTPS support. In addition to enabled=yes, you need to +; explicitly enable ssl, define the port to use, +; and have a certificate somewhere. +; sslenable=yes ; enable ssl - default no. +; sslbindport=4433 ; port to use - default is 8089 +; sslbindaddr=0.0.0.0 ; address to bind to - default is bindaddr. +; +; sslcert=/tmp/foo.pem ; path to the certificate +; +; To produce a certificate you can e.g. use openssl +; openssl req -new -x509 -days 365 -nodes -out /tmp/foo.pem -keyout /tmp/foo.pem +; + +; The post_mappings section maps URLs to real paths on the filesystem. If a +; POST is done from within an authenticated manager session to one of the +; configured POST mappings, then any files in the POST will be placed in the +; configured directory. +; +;[post_mappings] +; +; In this example, if the prefix option is set to "asterisk", then using the +; POST URL: /asterisk/uploads will put files in /var/lib/asterisk/uploads/. +;uploads = /var/lib/asterisk/uploads/ +; diff --git a/trunk/configs/iax.conf.sample b/trunk/configs/iax.conf.sample new file mode 100644 index 000000000..2441f2cf4 --- /dev/null +++ b/trunk/configs/iax.conf.sample @@ -0,0 +1,434 @@ + +; Inter-Asterisk eXchange driver definition +; +; This configuration is re-read at reload +; or with the CLI command +; reload chan_iax2.so +; +; General settings, like port number to bind to, and +; an option address (the default is to bind to all +; local addresses). +; +[general] +;bindport=4569 ; bindport and bindaddr may be specified +; ; NOTE: bindport must be specified BEFORE + ; bindaddr or may be specified on a specific + ; bindaddr if followed by colon and port + ; (e.g. bindaddr=192.168.0.1:4569) +;bindaddr=192.168.0.1 ; more than once to bind to multiple +; ; addresses, but the first will be the +; ; default +; +; Set iaxcompat to yes if you plan to use layered switches or +; some other scenario which may cause some delay when doing a +; lookup in the dialplan. It incurs a small performance hit to +; enable it. This option causes Asterisk to spawn a separate thread +; when it receives an IAX DPREQ (Dialplan Request) instead of +; blocking while it waits for a response. +; +;iaxcompat=yes +; +; Disable UDP checksums (if nochecksums is set, then no checkums will +; be calculated/checked on systems supporting this feature) +; +;nochecksums=no +; +; +; For increased security against brute force password attacks +; enable "delayreject" which will delay the sending of authentication +; reject for REGREQ or AUTHREP if there is a password. +; +;delayreject=yes +; +; You may specify a global default AMA flag for iaxtel calls. It must be +; one of 'default', 'omit', 'billing', or 'documentation'. These flags +; are used in the generation of call detail records. +; +;amaflags=default +; +; ADSI (Analog Display Services Interface) can be enabled if you have +; (or may have) ADSI compatible CPE equipment +; +;adsi=no +; +; Perform an SRV lookup on outbound calls +; +;srvlookup=yes +; +; You may specify a default account for Call Detail Records in addition +; to specifying on a per-user basis +; +;accountcode=lss0101 +; +; You may specify a global default language for users. +; Can be specified also on a per-user basis +; If omitted, will fallback to english +; +;language=en +; +; This option specifies a preference for which music on hold class this channel +; should listen to when put on hold if the music class has not been set on the +; channel with Set(CHANNEL(musicclass)=whatever) in the dialplan, and the peer +; channel putting this one on hold did not suggest a music class. +; +; If this option is set to "passthrough", then the hold message will always be +; passed through as signalling instead of generating hold music locally. +; +; This option may be specified globally, or on a per-user or per-peer basis. +; +;mohinterpret=default +; +; This option specifies which music on hold class to suggest to the peer channel +; when this channel places the peer on hold. It may be specified globally or on +; a per-user or per-peer basis. +; +;mohsuggest=default +; +; Specify bandwidth of low, medium, or high to control which codecs are used +; in general. +; +bandwidth=low +; +; You can also fine tune codecs here using "allow" and "disallow" clauses +; with specific codecs. Use "all" to represent all formats. +; +;allow=all ; same as bandwidth=high +;disallow=g723.1 ; Hm... Proprietary, don't use it... +disallow=lpc10 ; Icky sound quality... Mr. Roboto. +;allow=gsm ; Always allow GSM, it's cool :) +; + +; You can adjust several parameters relating to the jitter buffer. +; The jitter buffer's function is to compensate for varying +; network delay. +; +; All the jitter buffer settings are in milliseconds. +; The jitter buffer works for INCOMING audio - the outbound audio +; will be dejittered by the jitter buffer at the other end. +; +; jitterbuffer=yes|no: global default as to whether you want +; the jitter buffer at all. +; +; forcejitterbuffer=yes|no: in the ideal world, when we bridge VoIP channels +; we don't want to do jitterbuffering on the switch, since the endpoints +; can each handle this. However, some endpoints may have poor jitterbuffers +; themselves, so this option will force * to always jitterbuffer, even in this +; case. +; +; maxjitterbuffer: a maximum size for the jitter buffer. +; Setting a reasonable maximum here will prevent the call delay +; from rising to silly values in extreme situations; you'll hear +; SOMETHING, even though it will be jittery. +; +; resyncthreshold: when the jitterbuffer notices a significant change in delay +; that continues over a few frames, it will resync, assuming that the change in +; delay was caused by a timestamping mix-up. The threshold for noticing a +; change in delay is measured as twice the measured jitter plus this resync +; threshold. +; Resyncing can be disabled by setting this parameter to -1. +; +; maxjitterinterps: the maximum number of interpolation frames the jitterbuffer +; should return in a row. Since some clients do not send CNG/DTX frames to +; indicate silence, the jitterbuffer will assume silence has begun after +; returning this many interpolations. This prevents interpolating throughout +; a long silence. +; +; +; jittertargetextra: number of milliseconds by which the new jitter buffer +; will pad its size. the default is 40, so without modification, the new +; jitter buffer will set its size to the jitter value plus 40 milliseconds. +; increasing this value may help if your network normally has low jitter, +; but occasionally has spikes. +; + +jitterbuffer=no +forcejitterbuffer=no +;maxjitterbuffer=1000 +;maxjitterinterps=10 +;resyncthreshold=1000 +;jittertargetextra=40 + +;trunkfreq=20 ; How frequently to send trunk msgs (in ms) + +; 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 IAX peers can request as +; a registration expiration interval (in seconds). +; minregexpire = 60 +; maxregexpire = 60 +; +; With a large amount of traffic on IAX2 trunks, there is a risk of bad voice quality due to +; the fact that the IAX2 trunking scheme depends on the Linux system to handle fragmentation of +; UDP packets. This may not be very efficient. +; This setting sets the maximum transmission unit for IAX2 UDP trunking. +; default is 1240 bytes. Zero disables this functionality and let's the O/S handle fragmentation. +; +; trunkmtu = 0 +; + +; This option defines the maximum size an IAX2 trunk can grow to. The default value is 128000 bytes which +; represents 40ms uncompressed linear with 200 channels. Depending on different things though +; (codec in use and channels) you may need to make this value larger. +; trunkmaxsize = 128000 + +; IAX helper threads + +; Establishes the number of iax helper threads to handle I/O. +; iaxthreadcount = 10 +; Establishes the number of extra dynamic threads that may be spawned to handle I/O +; iaxmaxthreadcount = 100 +; +; We can register with another IAX server to let him know where we are +; in case we have a dynamic IP address for example +; +; Register with tormenta using username marko and password secretpass +; +;register => marko:secretpass@tormenta.linux-support.net +; +; Register joe at remote host with no password +; +;register => joe@remotehost:5656 +; +; Register marko at tormenta.linux-support.net using RSA key "torkey" +; +;register => marko:[torkey]@tormenta.linux-support.net +; +; Sample Registration for iaxtel +; +; Visit http://www.iaxtel.com to register with iaxtel. Replace "user" +; and "pass" with your username and password for iaxtel. Incoming +; calls arrive at the "s" extension of "default" context. +; +;register => user:pass@iaxtel.com +; +; Sample Registration for IAX + FWD +; +; To register using IAX with FWD, it must be enabled by visiting the URL +; http://www.fwdnet.net/index.php?section_id=112 +; +; Note that you need an extension in you default context which matches +; your free world dialup number. Please replace "FWDNumber" with your +; FWD number and "passwd" with your password. +; +;register => FWDNumber:passwd@iax.fwdnet.net +; +; +; You can disable authentication debugging to reduce the amount of +; debugging traffic. +; +;authdebug=no +; +; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters. +;tos=ef +;cos=5 +; +; If regcontext is specified, Asterisk will dynamically create and destroy +; a NoOp priority 1 extension for a given peer who registers or unregisters +; with us. The actual extension is the 'regexten' parameter of the registering +; peer or its name if 'regexten' is not provided. More than one regexten +; may be supplied if they are separated by '&'. Patterns may be used in +; regexten. +; +;regcontext=iaxregistrations +; +; If we don't get ACK to our NEW within 2000ms, and autokill is set to yes, +; then we cancel the whole thing (that's enough time for one retransmission +; only). This is used to keep things from stalling for a long time for a host +; that is not available, but would be ill advised for bad connections. In +; addition to 'yes' or 'no' you can also specify a number of milliseconds. +; See 'qualify' for individual peers to turn on for just a specific peer. +; +autokill=yes +; +; codecpriority controls the codec negotiation of an inbound IAX call. +; This option is inherited to all user entities. It can also be defined +; in each user entity separately which will override the setting in general. +; +; The valid values are: +; +; caller - Consider the callers preferred order ahead of the host's. +; host - Consider the host's preferred order ahead of the caller's. +; disabled - Disable the consideration of codec preference altogether. +; (this is the original behaviour before preferences were added) +; reqonly - Same as disabled, only do not consider capabilities if +; the requested format is not available the call will only +; be accepted if the requested format is available. +; +; The default value is 'host' +; +;codecpriority=host + +;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list + ; just like friends added from the config file only on a + ; as-needed basis? (yes|no) + +;rtupdate=yes ; Send registry updates to database using realtime? (yes|no) + ; If set to yes, when a IAX2 peer registers successfully, + ; the ip address, the origination port, the registration period, + ; and the username of the peer will be set to database via realtime. + ; If not present, defaults to 'yes'. + +;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule + ; as if it had just registered? (yes|no|<seconds>) + ; If set to yes, when the registration expires, the friend will + ; vanish from the configuration until requested again. + ; If set to an integer, friends expire within this number of + ; seconds instead of the registration interval. + +;rtignoreregexpire=yes ; When reading a peer from Realtime, if the peer's registration + ; has expired based on its registration interval, used the stored + ; address information regardless. (yes|no) + +; Guest sections for unauthenticated connection attempts. Just specify an +; empty secret, or provide no secret section. +; +[guest] +type=user +context=default +callerid="Guest IAX User" + +; +; Trust Caller*ID Coming from iaxtel.com +; +[iaxtel] +type=user +context=default +auth=rsa +inkeys=iaxtel + +; +; Trust Caller*ID Coming from iax.fwdnet.net +; +[iaxfwd] +type=user +context=default +auth=rsa +inkeys=freeworlddialup + +; +; Trust callerid delivered over DUNDi/e164 +; +; +;[dundi] +;type=user +;dbsecret=dundi/secret +;context=dundi-e164-local + +; +; Further user sections may be added, specifying a context and a secret used +; for connections with that given authentication name. Limited IP based +; access control is allowed by use of "allow" and "deny" keywords. Multiple +; rules are permitted. Multiple permitted contexts may be specified, in +; which case the first will be the default. You can also override caller*ID +; so that when you receive a call you set the Caller*ID to be what you want +; instead of trusting what the remote user provides +; +; There are three authentication methods that are supported: md5, plaintext, +; and rsa. The least secure is "plaintext", which sends passwords cleartext +; across the net. "md5" uses a challenge/response md5 sum arrangement, but +; still requires both ends have plain text access to the secret. "rsa" allows +; unidirectional secret knowledge through public/private keys. If "rsa" +; authentication is used, "inkeys" is a list of acceptable public keys on the +; local system that can be used to authenticate the remote peer, separated by +; the ":" character. "outkey" is a single, private key to use to authenticate +; to the other side. Public keys are named /var/lib/asterisk/keys/<name>.pub +; while private keys are named /var/lib/asterisk/keys/<name>.key. Private +; keys should always be 3DES encrypted. +; +; +; NOTE: All hostnames and IP addresses in this file are for example purposes +; only; you should not expect any of them to actually be available for +; your use. +; +; +;[markster] +;type=user +;context=default +;context=local +;auth=md5,plaintext,rsa +;secret=markpasswd +;setvar=foo=bar +;dbsecret=mysecrets/place ; Secrets can be stored in astdb, too +;transfer=no ; Disable IAX native transfer +;transfer=mediaonly ; When doing IAX native transfers, transfer + ; only media stream +;jitterbuffer=yes ; Override global setting an enable jitter buffer +; ; for this user +;maxauthreq=10 ; Set maximum number of outstanding AUTHREQs waiting for replies. Any further authentication attempts will be blocked +; ; if this limit is reached until they expire or a reply is received. +;callerid="Mark Spencer" <(256) 428-6275> +;deny=0.0.0.0/0.0.0.0 +;accountcode=markster0101 +;permit=209.16.236.73/255.255.255.0 +;language=en ; Use english as default language +; +; Peers may also be specified, with a secret and +; a remote hostname. +; +[demo] +type=peer +username=asterisk +secret=supersecret +host=216.207.245.47 +;sendani=no +;host=asterisk.linux-support.net +;port=5036 +;mask=255.255.255.255 +;qualify=yes ; Make sure this peer is alive +;qualifysmoothing = yes ; use an average of the last two PONG + ; results to reduce falsely detected LAGGED hosts + ; Default: Off +;qualifyfreqok = 60000 ; how frequently to ping the peer when + ; everything seems to be ok, in milliseconds +;qualifyfreqnotok = 10000 ; how frequently to ping the peer when it's + ; either LAGGED or UNAVAILABLE, in milliseconds +;jitterbuffer=no ; Turn off jitter buffer for this peer + +; +; Peers can remotely register as well, so that they can be mobile. Default +; IP's can also optionally be given but are not required. Caller*ID can be +; suggested to the other side as well if it is for example a phone instead of +; another PBX. +; + +;[dynamichost] +;host=dynamic +;secret=mysecret +;mailbox=1234 ; Notify about mailbox 1234 +;inkeys=key1:key2 +;peercontext=local ; Default context to request for calls to peer +;defaultip=216.207.245.34 +;callerid="Some Host" <(256) 428-6011> +; + +; +;[biggateway] +;type=peer +;host=192.168.0.1 +;context=* +;secret=myscret +;trunk=yes ; Use IAX2 trunking with this host +;timezone=America/New_York ; Set a timezone for the date/time IE +; + +; +; Friends are a short cut for creating a user and +; a peer with the same values. +; +;[marko] +;type=friend +;host=dynamic +;regexten=1234 +;secret=moofoo ; Multiple secrets may be specified. For a "user", all +;secret=foomoo ; specified entries will be accepted as valid. For a "peer", +;secret=shazbot ; only the last specified secret will be used. +;context=default +;permit=0.0.0.0/0.0.0.0 + diff --git a/trunk/configs/iaxprov.conf.sample b/trunk/configs/iaxprov.conf.sample new file mode 100644 index 000000000..06891d785 --- /dev/null +++ b/trunk/configs/iaxprov.conf.sample @@ -0,0 +1,81 @@ +; +; IAX2 Provisioning Information +; +; Contains provisioning information for templates and for specific service +; entries. +; +; Templates provide a group of settings from which provisioning takes place. +; A template may be based upon any template that has been specified before +; it. If the template that an entry is based on is not specified then it is +; presumed to be 'default' (unless it is the first of course). +; +; Templates which begin with 'si-' are used for provisioning units with +; specific service identifiers. For example the entry "si-000364000126" +; would be used when the device with the corresponding service identifier of +; "000364000126" attempts to register or make a call. +; +[default] +; +; The port number the device should use to bind to. The default is 4569. +; +;port=4569 +; +; server is our PRIMARY server for registration and placing calls +; +;server=192.168.69.3 +; +; altserver is the BACKUP server for registration and placing calls in the +; event the primary server is unavailable. +; +;altserver=192.168.69.4 +; +; port is the port number to use for IAX2 outbound. The connections to the +; server and altserver -- default is of course 4569. +;serverport=4569 +; +; language is the preferred language for the device +; +;language=en +; +; codec is the requested codec. The iaxy supports ulaw and adpcm +; +codec=ulaw +; +; flags is a comma separated list of flags which the device should +; use and may contain any of the following keywords: +; +; "register" - Register with server +; "secure" - Do not accept calls / provisioning not originated by the server +; "heartbeat" - Generate status packets on port 9999 sent to 255.255.255.255 +; "debug" - Output extra debugging to port 9999 +; +; Note that use can use += and -= to adjust parameters +; +flags=register,heartbeat +; +; See qos.tex or Quality of Service section of asterisk.pdf for a description of this parameter. +;tos=ef +; +; Example iaxy provisioning +; +;[si-000364000126] +;user=iaxy +;pass=bitsy +;flags += debug + +;[si-000364000127] +;user=iaxy2 +;pass=bitsy2 +;template=si-000364000126 +;flags += debug + +; +;[*] +; +; If specified, the '*' provisioning is used for all devices which do not +; have another provisioning entry within the file. If unspecified, no +; provisioning will take place for devices which have no entry. DO NOT +; USE A '*' PROVISIONING ENTRY UNLESS YOU KNOW WHAT YOU'RE DOING. +; +;template=default + diff --git a/trunk/configs/indications.conf.sample b/trunk/configs/indications.conf.sample new file mode 100644 index 000000000..03a3fadb5 --- /dev/null +++ b/trunk/configs/indications.conf.sample @@ -0,0 +1,733 @@ +; indications.conf +; Configuration file for location specific tone indications +; used by the pbx_indications module. +; +; 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. +; alias = iso[,iso]* +; List of other countries 2-letter iso codes, which have the same +; tone indications. +; 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]* +; +; Please note that SPACES ARE NOT ALLOWED in tone lists! +; + +[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 +ringdance = 1000,4000 +; +dial = 425 +busy = 425/500,0/500 +ring = 425/1000,0/4000 +congestion = 425/250,0/250 +callwaiting = 425/150,0/150,425/150,0/4000 +dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 +record = 1400/425,0/15000 +info = 950/330,1400/330,1800/330,0/1000 +stutter = 425/1500,0/100 + +[br] +description = Brazil +ringcadence = 1000,4000 +dial = 425 +busy = 425/250,0/250 +ring = 425/1000,0/4000 +congestion = 425/250,0/250,425/750,0/250 +callwaiting = 425/50,0/1000 +; Dialrecall not used in Brazil standard (using UK standard) +dialrecall = 350+440 +; Record tone is not used in Brazil, use busy tone +record = 425/250,0/250 +; Info not used in Brazil standard (using UK standard) +info = 950/330,1400/330,1800/330 +stutter = 350+440 + +[be] +description = Belgium +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +ringcadence = 1000,3000 +dial = 425 +busy = 425/500,0/500 +ring = 425/1000,0/3000 +congestion = 425/167,0/167 +callwaiting = 1400/175,0/175,1400/175,0/3500 +; DIALRECALL - not specified +dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440" +; RECORDTONE - not specified +record = 1400/500,0/15000 +info = 900/330,1400/330,1800/330,0/1000 +stutter = 425/1000,0/250 + +[ch] +description = Switzerland +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +ringcadence = 1000,4000 +dial = 425 +busy = 425/500,0/500 +ring = 425/1000,0/4000 +congestion = 425/200,0/200 +callwaiting = 425/200,0/200,425/200,0/4000 +; DIALRECALL - not specified +dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 +; RECORDTONE - not specified +record = 1400/80,0/15000 +info = 950/330,1400/330,1800/330,0/1000 +stutter = 425+340/1100,0/1100 + +[cl] +description = Chile +; According to specs from Telefonica CTC Chile +ringcadence = 1000,3000 +dial = 400 +busy = 400/500,0/500 +ring = 400/1000,0/3000 +congestion = 400/200,0/200 +callwaiting = 400/250,0/8750 +dialrecall = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400 +record = 1400/500,0/15000 +info = 950/333,1400/333,1800/333,0/1000 +stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400 + +[cn] +description = China +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +ringcadence = 1000,4000 +dial = 450 +busy = 450/350,0/350 +ring = 450/1000,0/4000 +congestion = 450/700,0/700 +callwaiting = 450/400,0/4000 +dialrecall = 450 +record = 950/400,0/10000 +info = 450/100,0/100,450/100,0/100,450/100,0/100,450/400,0/400 +; STUTTER - not specified +stutter = 450+425 + +[cz] +description = Czech Republic +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +ringcadence = 1000,4000 +dial = 425/330,0/330,425/660,0/660 +busy = 425/330,0/330 +ring = 425/1000,0/4000 +congestion = 425/165,0/165 +callwaiting = 425/330,0/9000 +; DIALRECALL - not specified +dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425/330,0/330,425/660,0/660 +; RECORDTONE - not specified +record = 1400/500,0/14000 +info = 950/330,0/30,1400/330,0/30,1800/330,0/1000 +; STUTTER - not specified +stutter = 425/450,0/50 + +[de] +description = Germany +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +ringcadence = 1000,4000 +dial = 425 +busy = 425/480,0/480 +ring = 425/1000,0/4000 +congestion = 425/240,0/240 +callwaiting = !425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,0 +; DIALRECALL - not specified +dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 +; RECORDTONE - not specified +record = 1400/80,0/15000 +info = 950/330,1400/330,1800/330,0/1000 +stutter = 425+400 + +[dk] +description = Denmark +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +ringcadence = 1000,4000 +dial = 425 +busy = 425/500,0/500 +ring = 425/1000,0/4000 +congestion = 425/200,0/200 +callwaiting = !425/200,!0/600,!425/200,!0/3000,!425/200,!0/200,!425/200,0 +; DIALRECALL - not specified +dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 +; RECORDTONE - not specified +record = 1400/80,0/15000 +info = 950/330,1400/330,1800/330,0/1000 +; STUTTER - not specified +stutter = 425/450,0/50 + +[ee] +description = Estonia +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +ringcadence = 1000,4000 +dial = 425 +busy = 425/300,0/300 +ring = 425/1000,0/4000 +congestion = 425/200,0/200 +; CALLWAIT not in accordance to ITU +callwaiting = 950/650,0/325,950/325,0/30,1400/1300,0/2600 +; DIALRECALL - not specified +dialrecall = 425/650,0/25 +; RECORDTONE - not specified +record = 1400/500,0/15000 +; INFO not in accordance to ITU +info = 950/650,0/325,950/325,0/30,1400/1300,0/2600 +; STUTTER not specified +stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 + +[es] +description = Spain +ringcadence = 1500,3000 +dial = 425 +busy = 425/200,0/200 +ring = 425/1500,0/3000 +congestion = 425/200,0/200,425/200,0/200,425/200,0/600 +callwaiting = 425/175,0/175,425/175,0/3500 +dialrecall = !425/200,!0/200,!425/200,!0/200,!425/200,!0/200,425 +record = 1400/500,0/15000 +info = 950/330,0/1000 +dialout = 500 + + +[fi] +description = Finland +ringcadence = 1000,4000 +dial = 425 +busy = 425/300,0/300 +ring = 425/1000,0/4000 +congestion = 425/200,0/200 +callwaiting = 425/150,0/150,425/150,0/8000 +dialrecall = 425/650,0/25 +record = 1400/500,0/15000 +info = 950/650,0/325,950/325,0/30,1400/1300,0/2600 +stutter = 425/650,0/25 + +[fr] +description = France +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +ringcadence = 1500,3500 +; Dialtone can also be 440+330 +dial = 440 +busy = 440/500,0/500 +ring = 440/1500,0/3500 +; CONGESTION - not specified +congestion = 440/250,0/250 +callwait = 440/300,0/10000 +; DIALRECALL - not specified +dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 +; RECORDTONE - not specified +record = 1400/500,0/15000 +info = !950/330,!1400/330,!1800/330 +stutter = !440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,440 + +[gr] +description = Greece +ringcadence = 1000,4000 +dial = 425/200,0/300,425/700,0/800 +busy = 425/300,0/300 +ring = 425/1000,0/4000 +congestion = 425/200,0/200 +callwaiting = 425/150,0/150,425/150,0/8000 +dialrecall = 425/650,0/25 +record = 1400/400,0/15000 +info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 +stutter = 425/650,0/25 + +[hu] +description = Hungary +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +ringcadence = 1250,3750 +dial = 425 +busy = 425/300,0/300 +ring = 425/1250,0/3750 +congestion = 425/300,0/300 +callwaiting = 425/40,0/1960 +dialrecall = 425+450 +; RECORDTONE - not specified +record = 1400/400,0/15000 +info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 +stutter = 350+375+400 + +[il] +description = Israel +ringcadence = 1000,3000 +dial = 414 +busy = 414/500,0/500 +ring = 414/1000,0/3000 +congestion = 414/250,0/250 +callwaiting = 414/100,0/100,414/100,0/100,414/600,0/3000 +dialrecall = !414/100,!0/100,!414/100,!0/100,!414/100,!0/100,414 +record = 1400/500,0/15000 +info = 1000/330,1400/330,1800/330,0/1000 +stutter = !414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,414 + + +[in] +description = India +ringcadence = 400,200,400,2000 +dial = 400*25 +busy = 400/750,0/750 +ring = 400*25/400,0/200,400*25/400,0/2000 +congestion = 400/250,0/250 +callwaiting = 400/200,0/100,400/200,0/7500 +dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 +record = 1400/500,0/15000 +info = !950/330,!1400/330,!1800/330,0/1000 +stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 + +[it] +description = Italy +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +ringcadence = 1000,4000 +dial = 425/200,0/200,425/600,0/1000 +busy = 425/500,0/500 +ring = 425/1000,0/4000 +congestion = 425/200,0/200 +callwaiting = 425/400,0/100,425/250,0/100,425/150,0/14000 +dialrecall = 470/400,425/400 +record = 1400/400,0/15000 +info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 +stutter = 470/400,425/400 + +[lt] +description = Lithuania +ringcadence = 1000,4000 +dial = 425 +busy = 425/350,0/350 +ring = 425/1000,0/4000 +congestion = 425/200,0/200 +callwaiting = 425/150,0/150,425/150,0/4000 +; DIALRECALL - not specified +dialrecall = 425/500,0/50 +; RECORDTONE - not specified +record = 1400/500,0/15000 +info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 +; STUTTER - not specified +stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 + +[jp] +description = Japan +ringcadence = 1000,2000 +dial = 400 +busy = 400/500,0/500 +ring = 400+15/1000,0/2000 +congestion = 400/500,0/500 +callwaiting = 400+16/500,0/8000 +dialrecall = !400/200,!0/200,!400/200,!0/200,!400/200,!0/200,400 +record = 1400/500,0/15000 +info = !950/330,!1400/330,!1800/330,0 +stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400 + +[mx] +description = Mexico +ringcadence = 2000,4000 +dial = 425 +busy = 425/250,0/250 +ring = 425/1000,0/4000 +congestion = 425/250,0/250 +callwaiting = 425/200,0/600,425/200,0/10000 +dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 +record = 1400/500,0/15000 +info = 950/330,0/30,1400/330,0/30,1800/330,0/1000 +stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 + +[my] +description = Malaysia +ringcadence = 2000,4000 +dial = 425 +busy = 425/500,0/500 +ring = 425/400,0/200 +congestion = 425/500,0/500 + +[nl] +description = Netherlands +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +ringcadence = 1000,4000 +; Most of these 425's can also be 450's +dial = 425 +busy = 425/500,0/500 +ring = 425/1000,0/4000 +congestion = 425/250,0/250 +callwaiting = 425/500,0/9500 +; DIALRECALL - not specified +dialrecall = 425/500,0/50 +; RECORDTONE - not specified +record = 1400/500,0/15000 +info = 950/330,1400/330,1800/330,0/1000 +stutter = 425/500,0/50 + +[no] +description = Norway +ringcadence = 1000,4000 +dial = 425 +busy = 425/500,0/500 +ring = 425/1000,0/4000 +congestion = 425/200,0/200 +callwaiting = 425/200,0/600,425/200,0/10000 +dialrecall = 470/400,425/400 +record = 1400/400,0/15000 +info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0 +stutter = 470/400,425/400 + +[nz] +description = New Zealand +;NOTE - the ITU has different tonesets for NZ, but according to some residents there, +; this is, indeed, the correct way to do it. +ringcadence = 400,200,400,2000 +dial = 400 +busy = 400/250,0/250 +ring = 400+450/400,0/200,400+450/400,0/2000 +congestion = 400/375,0/375 +callwaiting = !400/200,!0/3000,!400/200,!0/3000,!400/200,!0/3000,!400/200 +dialrecall = !400/100!0/100,!400/100,!0/100,!400/100,!0/100,400 +record = 1400/425,0/15000 +info = 400/750,0/100,400/750,0/100,400/750,0/100,400/750,0/400 +stutter = !400/100!0/100,!400/100,!0/100,!400/100,!0/100,!400/100!0/100,!400/100,!0/100,!400/100,!0/100,400 +unobtainable = 400/75,0/100,400/75,0/100,400/75,0/100,400/75,0/400 + +[ph] + +; reference http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf + +description = Philippines +ringcadence = 1000,4000 +dial = 425 +busy = 480+620/500,0/500 +ring = 425+480/1000,0/4000 +congestion = 480+620/250,0/250 +callwaiting = 440/300,0/10000 +; DIALRECALL - not specified +dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 +; RECORDTONE - not specified +record = 1400/500,0/15000 +; INFO - not specified +info = !950/330,!1400/330,!1800/330,0 +; STUTTER - not specified +stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 + + +[pl] +description = Poland +ringcadence = 1000,4000 +dial = 425 +busy = 425/500,0/500 +ring = 425/1000,0/4000 +congestion = 425/500,0/500 +callwaiting = 425/150,0/150,425/150,0/4000 +; DIALRECALL - not specified +dialrecall = 425/500,0/50 +; RECORDTONE - not specified +record = 1400/500,0/15000 +; 950/1400/1800 3x0.33 on 1.0 off repeated 3 times +info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000 +; STUTTER - not specified +stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 + +[pt] +description = Portugal +ringcadence = 1000,5000 +dial = 425 +busy = 425/500,0/500 +ring = 425/1000,0/5000 +congestion = 425/200,0/200 +callwaiting = 440/300,0/10000 +dialrecall = 425/1000,0/200 +record = 1400/500,0/15000 +info = 950/330,1400/330,1800/330,0/1000 +stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 + +[ru] +; References: +; http://www.minsvyaz.ru/site.shtml?id=1806 +; http://www.aboutphone.info/lib/gost/45-223-2001.html +description = Russian Federation / ex Soviet Union +ringcadence = 1000,4000 +dial = 425 +busy = 425/350,0/350 +ring = 425/1000,0/4000 +congestion = 425/175,0/175 +callwaiting = 425/200,0/5000 +record = 1400/400,0/15000 +info = 950/330,1400/330,1800/330,0/1000 +dialrecall = 425/400,0/40 +stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 + +[se] +description = Sweden +ringcadence = 1000,5000 +dial = 425 +busy = 425/250,0/250 +ring = 425/1000,0/5000 +congestion = 425/250,0/750 +callwaiting = 425/200,0/500,425/200,0/9100 +dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 +record = 1400/500,0/15000 +info = !950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,0 +stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 +; stutter = 425/320,0/20 ; Real swedish standard, not used for now + +[sg] +description = Singapore +; Singapore +; Reference: http://www.ida.gov.sg/idaweb/doc/download/I397/ida_ts_pstn1_i4r2.pdf +; Frequency specs are: 425 Hz +/- 20Hz; 24 Hz +/- 2Hz; modulation depth 100%; SIT +/- 50Hz +ringcadence = 400,200,400,2000 +dial = 425 +ring = 425*24/400,0/200,425*24/400,0/2000 ; modulation should be 100%, not 90% +busy = 425/750,0/750 +congestion = 425/250,0/250 +callwaiting = 425*24/300,0/200,425*24/300,0/3200 +stutter = !425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,425 +info = 950/330,1400/330,1800/330,0/1000 ; not currently in use acc. to reference +dialrecall = 425*24/500,0/500,425/500,0/2500 ; unspecified in IDA reference, use repeating Holding Tone A,B +record = 1400/500,0/15000 ; unspecified in IDA reference, use 0.5s tone every 15s +; additionally defined in reference +nutone = 425/2500,0/500 +intrusion = 425/250,0/2000 +warning = 425/624,0/4376 ; end of period tone, warning +acceptance = 425/125,0/125 +holdinga = !425*24/500,!0/500 ; followed by holdingb +holdingb = !425/500,!0/2500 + +[th] +description = Thailand +ringcadence = 1000,4000 +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +dial = 400*50 +busy = 400/500,0/500 +ring = 420/1000,0/5000 +congestion = 400/300,0/300 +callwaiting = 1000/400,10000/400,1000/400 +; DIALRECALL - not specified - use special dial tone instead. +dialrecall = 400*50/400,0/100,400*50/400,0/100 +; RECORDTONE - not specified +record = 1400/500,0/15000 +; INFO - specified as an announcement - use special information tones instead +info = 950/330,1400/330,1800/330 +; STUTTER - not specified +stutter = !400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,400 + +[uk] +description = United Kingdom +ringcadence = 400,200,400,2000 +; These are the official tones taken from BT SIN350. The actual tones +; used by BT include some volume differences so sound slightly different +; from Asterisk-generated ones. +dial = 350+440 +; Special dial is the intermittent dial tone heard when, for example, +; you have a divert active on the line +specialdial = 350+440/750,440/750 +; Busy is also called "Engaged" +busy = 400/375,0/375 +; "Congestion" is the Beep-bip engaged tone +congestion = 400/400,0/350,400/225,0/525 +; "Special Congestion" is not used by BT very often if at all +specialcongestion = 400/200,1004/300 +unobtainable = 400 +ring = 400+450/400,0/200,400+450/400,0/2000 +callwaiting = 400/100,0/4000 +; BT seem to use "Special Call Waiting" rather than just "Call Waiting" tones +specialcallwaiting = 400/250,0/250,400/250,0/250,400/250,0/5000 +; "Pips" used by BT on payphones. (Sounds wrong, but this is what BT claim it +; is and I've not used a payphone for years) +creditexpired = 400/125,0/125 +; These two are used to confirm/reject service requests on exchanges that +; don't do voice announcements. +confirm = 1400 +switching = 400/200,0/400,400/2000,0/400 +; This is the three rising tones Doo-dah-dee "Special Information Tone", +; usually followed by the BT woman saying an appropriate message. +info = 950/330,0/15,1400/330,0/15,1800/330,0/1000 +; Not listed in SIN350 +record = 1400/500,0/60000 +stutter = 350+440/750,440/750 + +[us] +description = United States / North America +ringcadence = 2000,4000 +dial = 350+440 +busy = 480+620/500,0/500 +ring = 440+480/2000,0/4000 +congestion = 480+620/250,0/250 +callwaiting = 440/300,0/10000 +dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 +record = 1400/500,0/15000 +info = !950/330,!1400/330,!1800/330,0 +stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 + +[us-old] +description = United States Circa 1950/ North America +ringcadence = 2000,4000 +dial = 600*120 +busy = 500*100/500,0/500 +ring = 420*40/2000,0/4000 +congestion = 500*100/250,0/250 +callwaiting = 440/300,0/10000 +dialrecall = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120 +record = 1400/500,0/15000 +info = !950/330,!1400/330,!1800/330,0 +stutter = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120 + +[tw] +description = Taiwan +; http://nemesis.lonestar.org/reference/telecom/signaling/dialtone.html +; http://nemesis.lonestar.org/reference/telecom/signaling/busy.html +; http://www.iproducts.com.tw/ee/kylink/06ky-1000a.htm +; http://www.pbx-manufacturer.com/ky120dx.htm +; http://www.nettwerked.net/tones.txt +; http://www.cisco.com/univercd/cc/td/doc/product/tel_pswt/vco_prod/taiw_sup/taiw2.htm +; +; busy tone 480+620Hz 0.5 sec. on ,0.5 sec. off +; reorder tone 480+620Hz 0.25 sec. on,0.25 sec. off +; ringing tone 440+480Hz 1 sec. on ,2 sec. off +; +ringcadence = 1000,4000 +dial = 350+440 +busy = 480+620/500,0/500 +ring = 440+480/1000,0/2000 +congestion = 480+620/250,0/250 +callwaiting = 350+440/250,0/250,350+440/250,0/3250 +dialrecall = 300/1500,0/500 +record = 1400/500,0/15000 +info = !950/330,!1400/330,!1800/330,0 +stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 + +[ve] +; Tone definition source for ve found on +; Reference: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf +description = Venezuela / South America +ringcadence = 1000,4000 +dial = 425 +busy = 425/500,0/500 +ring = 425/1000,0/4000 +congestion = 425/250,0/250 +callwaiting = 400+450/300,0/6000 +dialrecall = 425 +record = 1400/500,0/15000 +info = !950/330,!1440/330,!1800/330,0/1000 + + +[za] +description = South Africa +; http://www.cisco.com/univercd/cc/td/doc/product/tel_pswt/vco_prod/safr_sup/saf02.htm +; (definitions for other countries can also be found there) +; Note, though, that South Africa uses two switch types in their network -- +; Alcatel switches -- mainly in the Western Cape, and Siemens elsewhere. +; The former use 383+417 in dial, ringback etc. The latter use 400*33 +; I've provided both, uncomment the ones you prefer +ringcadence = 400,200,400,2000 +; dial/ring/callwaiting for the Siemens switches: +dial = 400*33 +ring = 400*33/400,0/200,400*33/400,0/2000 +callwaiting = 400*33/250,0/250,400*33/250,0/250,400*33/250,0/250,400*33/250,0/250 +; dial/ring/callwaiting for the Alcatel switches: +; dial = 383+417 +; ring = 383+417/400,0/200,383+417/400,0/2000 +; callwaiting = 383+417/250,0/250,383+417/250,0/250,383+417/250,0/250,383+417/250,0/250 +congestion = 400/250,0/250 +busy = 400/500,0/500 +dialrecall = 350+440 +; XXX Not sure about the RECORDTONE +record = 1400/500,0/10000 +info = 950/330,1400/330,1800/330,0/330 +stutter = !400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,400*33 diff --git a/trunk/configs/jabber.conf.sample b/trunk/configs/jabber.conf.sample new file mode 100644 index 000000000..7d45083f9 --- /dev/null +++ b/trunk/configs/jabber.conf.sample @@ -0,0 +1,21 @@ +[general] +;debug=yes ;;Turn on debugging by default. +;autoprune=yes ;;Auto remove users from buddy list. +;autoregister=yes ;;Auto register users from buddy list. + +;[asterisk] ;;label +;type=client ;;Client or Component connection +;serverhost=astjab.org ;;Route to server for example, + ;; talk.google.com +;username=asterisk@astjab.org/asterisk ;;Username with optional roster. +;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. +;status=available ;;One of: chat, available, away, + ;; xaway, or dnd +;statusmessage="I am available" ;;Have custom status message for + ;;Asterisk. +;timeout=100 ;;Timeout on the message stack. diff --git a/trunk/configs/jingle.conf.sample b/trunk/configs/jingle.conf.sample new file mode 100644 index 000000000..da629b626 --- /dev/null +++ b/trunk/configs/jingle.conf.sample @@ -0,0 +1,19 @@ +;[general] +;context=default ;;Context to dump call into +;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. +; diff --git a/trunk/configs/logger.conf.sample b/trunk/configs/logger.conf.sample new file mode 100644 index 000000000..a441ebd8f --- /dev/null +++ b/trunk/configs/logger.conf.sample @@ -0,0 +1,96 @@ +; +; Logging Configuration +; +; In this file, you configure logging to files or to +; the syslog system. +; +; "logger reload" at the CLI will reload configuration +; of the logging system. + +[general] +; +; Customize the display of debug message time stamps +; this example is the ISO 8601 date format (yyyy-mm-dd HH:MM:SS) +; +; see strftime(3) Linux manual for format specifiers. Note that there is also +; a fractional second parameter which may be used in this field. Use %1q +; for tenths, %2q for hundredths, etc. +; +;dateformat=%F %T ; ISO 8601 date format +;dateformat=%F %T.%3q ; with milliseconds +; +; This appends the hostname to the name of the log files. +;appendhostname = yes +; +; This determines whether or not we log queue events to a file +; (defaults to yes). +;queue_log = no +; +; Set the queue_log filename +; (defaults to queue_log) +;queue_log_name = queue_log +; +; Log rotation strategy: +; sequential: Rename archived logs in order, such that the newest +; has the highest sequence number [default]. +; rotate: Rotate all the old files, such that the oldest has the +; highest sequence number [this is the expected behavior +; for Unix administrators]. +; timestamp: Rename the logfiles using a timestamp instead of a +; sequence number when "logger rotate" is executed. +;rotatestrategy = rotate +; +; Run a system command after rotating the files. This is mainly +; useful for rotatestrategy=rotate. The example allows the last +; two archive files to remain uncompressed, but after that point, +; they are compressed on disk. +; +; exec_after_rotate=gzip -9 ${filename}.2 +; +; This determines whether or not we log generic events to a file +; (defaults to yes). +;event_log = no +; +; +; For each file, specify what to log. +; +; For console logging, you set options at start of +; Asterisk with -v for verbose and -d for debug +; See 'asterisk -h' for more information. +; +; Directory for log files is configures in asterisk.conf +; option astlogdir +; +[logfiles] +; +; Format is "filename" and then "levels" of debugging to be included: +; debug +; notice +; warning +; error +; verbose +; dtmf +; +; Special filename "console" represents the system console +; +; We highly recommend that you DO NOT turn on debug mode if you are simply +; running a production system. Debug mode turns on a LOT of extra messages, +; most of which you are unlikely to understand without an understanding of +; the underlying code. Do NOT report debug messages as code issues, unless +; you have a specific issue that you are attempting to debug. They are +; messages for just that -- debugging -- and do not rise to the level of +; something that merit your attention as an Asterisk administrator. Debug +; messages are also very verbose and can and do fill up logfiles quickly; +; this is another reason not to have debug mode on a production system unless +; you are in the process of debugging a specific issue. +; +;debug => debug +console => notice,warning,error +;console => notice,warning,error,debug +messages => notice,warning,error +;full => notice,warning,error,debug,verbose + +;syslog keyword : This special keyword logs to syslog facility +; +;syslog.local0 => notice,warning,error +; diff --git a/trunk/configs/manager.conf.sample b/trunk/configs/manager.conf.sample new file mode 100644 index 000000000..80bea5a70 --- /dev/null +++ b/trunk/configs/manager.conf.sample @@ -0,0 +1,97 @@ +; +; AMI - The Asterisk Manager Interface +; +; Third party application call management support and PBX event supervision +; +; This configuration file is read every time someone logs in +; +; Use the "manager show commands" at the CLI to list available manager commands +; and their authorization levels. +; +; "manager show command <command>" will show a help text. +; +; ---------------------------- SECURITY NOTE ------------------------------- +; Note that you should not enable the AMI on a public IP address. If needed, +; block this TCP port with iptables (or another FW software) and reach it +; with IPsec, SSH, or SSL vpn tunnel. You can also make the manager +; interface available over http/https if Asterisk's http server is enabled in +; http.conf and if both "enabled" and "webenabled" are set to yes in +; this file. Both default to no. httptimeout provides the maximum +; timeout in seconds before a web based session is discarded. The +; default is 60 seconds. +; +[general] +enabled = no +;webenabled = yes +port = 5038 + +;httptimeout = 60 +; a) httptimeout sets the Max-Age of the http cookie +; b) httptimeout is the amount of time the webserver waits +; on a action=waitevent request (actually its httptimeout-10) +; c) httptimeout is also the amount of time the webserver keeps +; a http session alive after completing a successful action + +bindaddr = 0.0.0.0 + +; Parameters that control AMI over TLS. ("enabled" must be set too). +; You can open a connection to this socket with e.g. +; +; openssl s_client -connect my_host:5039 +; +; sslenable=no ; set to YES to enable it +; sslbindport=5039 ; the port to bind to +; sslbindaddr=0.0.0.0 ; address to bind to, default to bindaddr +; sslcert=/tmp/asterisk.pem ; path to the certificate. + + +; +;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 + +; debug = on ; enable some debugging info in AMI messages (default off). + ; Also accessible through the "manager debug" CLI command. +;[mark] +;secret = mysecret +;deny=0.0.0.0/0.0.0.0 +;permit=209.16.236.73/255.255.255.0 +; +; If the device connected via this user accepts input slowly, +; the timeout for writes to it can be increased to keep it +; from being disconnected (value is in milliseconds) +; +; writetimeout = 100 +; +;displayconnects = yes ; Display on CLI user login/logoff +; +; Authorization for various classes +; +; Read authorization permits you to receive asynchronous events, in general. +; Write authorization permits you to send commands and get back responses. The +; following classes exist: +; +; system - General information about the system and ability to run system +; management commands, such as Shutdown, Restart, and Reload. +; call - Information about channels and ability to set information in a +; running channel. +; log - Logging information. Read-only. +; verbose - Verbose information. Read-only. +; 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. +; +;read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan +;write = system,call,agent,user,config,command,reporting + diff --git a/trunk/configs/meetme.conf.sample b/trunk/configs/meetme.conf.sample new file mode 100644 index 000000000..a28c5d3c9 --- /dev/null +++ b/trunk/configs/meetme.conf.sample @@ -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-Zap 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 diff --git a/trunk/configs/mgcp.conf.sample b/trunk/configs/mgcp.conf.sample new file mode 100644 index 000000000..104891e8a --- /dev/null +++ b/trunk/configs/mgcp.conf.sample @@ -0,0 +1,110 @@ +; +; MGCP Configuration for Asterisk +; +[general] +;port = 2427 +;bindaddr = 0.0.0.0 + +; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters. +;tos=cs3 ; Sets TOS for signaling packets. +;tos_audio=ef ; Sets TOS for RTP audio packets. +;cos=3 ; Sets 802.1p priority for signaling packets. +;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. + +;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- +; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a + ; MGCP channel. Defaults to "no". An enabled jitterbuffer will + ; be used only if the sending side can create and the receiving + ; side can not accept jitter. The MGCP channel can accept jitter, + ; thus an enabled jitterbuffer on the receive MGCP side will only + ; be used if the sending side can create jitter and jbforce is + ; also set to yes. + +; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a MGCP + ; channel. Defaults to "no". + +; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. + +; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is + ; resynchronized. Useful to improve the quality of the voice, with + ; big jumps in/broken timestamps, usually sent from exotic devices + ; and programs. Defaults to 1000. + +; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a MGCP + ; channel. Two implementations are currently available - "fixed" + ; (with size always equals to jbmax-size) and "adaptive" (with + ; variable size, actually the new jb of IAX2). Defaults to fixed. + +; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". +;----------------------------------------------------------------------------------- + +;[dlinkgw] +;host = 192.168.0.64 +;context = default +;canreinvite = 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 +;canreinvite = no +;transfer = no +;dtmfmode = inband +;line => aaln/1 ; now lets save this config to line1 aka aaln/1 +;callerid = "Duane Cox" <456> ; now lets setup line 2 +;callwaiting = no +;callreturn = yes +;cancallforward = yes +;canreinvite = no +;transfer = no +;dtmfmode = inband +;line => aaln/2 ; now lets save this config to line2 aka aaln/2 diff --git a/trunk/configs/minivm.conf.sample b/trunk/configs/minivm.conf.sample new file mode 100644 index 000000000..21d18e0c6 --- /dev/null +++ b/trunk/configs/minivm.conf.sample @@ -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 diff --git a/trunk/configs/misdn.conf.sample b/trunk/configs/misdn.conf.sample new file mode 100644 index 000000000..65bdda3ea --- /dev/null +++ b/trunk/configs/misdn.conf.sample @@ -0,0 +1,455 @@ +; +; chan_misdn sample config +; + +; general section: +; +; for debugging and general setup, things that are not bound to port groups +; + +[general] +; +; Sets the Path to the misdn-init.conf (for nt_ptp mode checking) +; +misdn_init=/etc/misdn-init.conf + +; set debugging flag: +; 0 - No Debug +; 1 - mISDN Messages and * - Messages, and * - State changes +; 2 - Messages + Message specific Informations (e.g. bearer capability) +; 3 - very Verbose, the above + lots of Driver specific infos +; 4 - even more Verbose than 3 +; +; default value: 0 +; +debug=0 + + + +; set debugging file and flags for mISDNuser (NT-Stack) +; +; flags can be or'ed with the following values: +; +; DBGM_NET 0x00000001 +; DBGM_MSG 0x00000002 +; DBGM_FSM 0x00000004 +; DBGM_TEI 0x00000010 +; DBGM_L2 0x00000020 +; DBGM_L3 0x00000040 +; DBGM_L3DATA 0x00000080 +; DBGM_BC 0x00000100 +; DBGM_TONE 0x00000200 +; DBGM_BCDATA 0x00000400 +; DBGM_MAN 0x00001000 +; DBGM_APPL 0x00002000 +; DBGM_ISDN 0x00004000 +; DBGM_SOCK 0x00010000 +; DBGM_CONN 0x00020000 +; DBGM_CDATA 0x00040000 +; DBGM_DDATA 0x00080000 +; DBGM_SOUND 0x00100000 +; DBGM_SDATA 0x00200000 +; DBGM_TOPLEVEL 0x40000000 +; DBGM_ALL 0xffffffff +; + +ntdebugflags=0 +ntdebugfile=/var/log/misdn-nt.log + + +; some pbx systems do cut the L1 for some milliseconds, to avoid +; dropping running calls, we can set this flag to yes and tell +; mISDNuser not to drop the calls on L2_RELEASE +ntkeepcalls=no + +; the big trace +; +; default value: [not set] +; +;tracefile=/var/log/asterisk/misdn.log + + +; set to yes if you want mISDN_dsp to bridge the calls in HW +; +; default value: yes +; +bridging=no + + +; +; watches the L1s of every port. If one l1 is down it tries to +; get it up. The timeout is given in seconds. with 0 as value it +; does not watch the l1 at all +; +; default value: 0 +; +; this option is only read at loading time of chan_misdn, +; which means you need to unload and load chan_misdn to change the +; value, an asterisk restart should do the trick +; +l1watcher_timeout=0 + +; stops dialtone after getting first digit on nt Port +; +; default value: yes +; +stop_tone_after_first_digit=yes + +; whether to append overlapdialed Digits to Extension or not +; +; default value: yes +; +append_digits2exten=yes + +;;; CRYPTION STUFF + +; Whether to look for dynamic crypting attempt +; +; default value: no +; +dynamic_crypt=no + +; crypt_prefix, what is used for crypting Protocol +; +; default value: [not set] +; +crypt_prefix=** + +; Keys for cryption, you reference them in the dialplan +; later also in dynamic encr. +; +; default value: [not set] +; +crypt_keys=test,muh + +; users sections: +; +; name your sections as you which but not "general" ! +; the sections are Groups, you can dial out in extensions.conf +; with Dial(mISDN/g:extern/101) where extern is a section name, +; chan_misdn tries every port in this section to find a +; new free channel +; + +; The default section is not a group section, it just contains config elements +; which are inherited by group sections. +; + +;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- +; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a + ; SIP channel. Defaults to "no". An enabled jitterbuffer will + ; be used only if the sending side can create and the receiving + ; side can not accept jitter. The SIP channel can accept jitter, + ; thus a jitterbuffer on the receive SIP side will be used only + ; if it is forced and enabled. + +; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a SIP + ; channel. Defaults to "no". + +; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. + +; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is + ; resynchronized. Useful to improve the quality of the voice, with + ; big jumps in/broken timestamps, usually sent from exotic devices + ; and programs. Defaults to 1000. + +; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP + ; channel. Two implementations are currently available - "fixed" + ; (with size always equals to jbmaxsize) and "adaptive" (with + ; variable size, actually the new jb of IAX2). Defaults to fixed. + +; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". +;----------------------------------------------------------------------------------- + +[default] + +; define your default context here +; +; default value: default +; +context=misdn + +; language +; +; default value: en +; +language=en + +; +; sets the musiconhold class +; +musicclass=default + +; +; Either if we should produce DTMF Tones ourselves +; +senddtmf=yes + +; +; If we should generate Ringing for chan_sip and others +; +far_alerting=no + + +; +; here you can define which bearers should be allowed +; +allowed_bearers=all + +; Prefixes for national and international, those are put before the +; oad if an according dialplan is set by the other end. +; +; default values: nationalprefix : 0 +; internationalprefix : 00 +; +nationalprefix=0 +internationalprefix=00 + +; set rx/tx gains between -8 and 8 to change the RX/TX Gain +; +; default values: rxgain: 0 +; txgain: 0 +; +rxgain=0 +txgain=0 + +; some telcos especially in NL seem to need this set to yes, also in +; switzerland this seems to be important +; +; default value: no +; +te_choose_channel=no + + + +; +; This option defines, if chan_misdn should check the L1 on a PMP +; before making a group call on it. The L1 may go down for PMP Ports +; so we might need this. +; But be aware! a broken or plugged off cable might be used for a group call +; as well, since chan_misdn has no chance to distinguish if the L1 is down +; because of a lost Link or because the Provider shut it down... +; +; default: no +; +pmp_l1_check=no + + +; +; in PMP this option defines which cause should be sent out to +; the 3. caller. chan_misdn does not support callwaiting on TE +; PMP side. This allows to modify the RELEASE_COMPLETE cause +; at least. +; +reject_cause=16 + + +; +; Send Setup_Acknowledge on incoming calls anyway (instead of PROCEEDING), +; this requests additional Infos, so we can waitfordigits +; without much issues. This works only for PTP Ports +; +; default value: no +; +need_more_infos=no + + +; +; set this to yes if you want to disconnect calls when a timeout occurs +; for example during the overlapdial phase +; +nttimeout=no + +; set the method to use for channel selection: +; standard - always choose the first free channel with the lowest number +; round_robin - use the round robin algorithm to select a channel. use this +; if you want to balance your load. +; +; default value: standard +; +method=standard + + +; specify if chan_misdn should collect digits before going into the +; dialplan, you can choose yes=4 Seconds, no, or specify the amount +; of seconds you need; +; +overlapdial=yes + +; +; dialplan means Type Of Number in ISDN Terms (for outgoing calls) +; +; there are different types of the dialplan: +; +; dialplan -> outgoing Number +; localdialplan -> callerid +; cpndialplan -> connected party number +; +; dialplan options: +; +; 0 - unknown +; 1 - International +; 2 - National +; 4 - Subscriber +; +; This setting is used for outgoing calls +; +; default value: 0 +; +dialplan=0 +localdialplan=0 +cpndialplan=0 + + + +; +; turn this to no if you don't mind correct handling of Progress Indicators +; +early_bconnect=yes + + +; +; turn this on if you like to send Tone Indications to a Incoming +; isdn channel on a TE Port. Rarely used, only if the Telco allows +; you to send indications by yourself, normally the Telco sends the +; indications to the remote party. +; +; default: no +; +incoming_early_audio=no + +; uncomment the following to get into s extension at extension conf +; there you can use DigitTimeout if you can't or don't want to use +; isdn overlap dial. +; note: This will jump into the s exten for every exten! +; +; default value: no +; +;always_immediate=no + +; +; set this to yes if you want to generate your own dialtone +; with always_immediate=yes, else chan_misdn generates the dialtone +; +; default value: no +; +nodialtone=no + + +; uncomment the following if you want callers which called exactly the +; base number (so no extension is set) jump to the s extension. +; if the user dials something more it jumps to the correct extension +; instead +; +; default value: no +; +;immediate=no + +; uncomment the following to have hold and retrieve support +; +; default value: no +; +;hold_allowed=yes + +; Pickup and Callgroup +; +; default values: not set = 0 +; range: 0-63 +; +;callgroup=1 +;pickupgroup=1 + + +; +; these are the exact isdn screening and presentation indicators +; if -1 is given for both values the presentation indicators are used +; from asterisks SetCallerPres application. +; s=0, p=0 -> callerid presented not screened +; s=1, p=1 -> callerid presented but screened (the remote end does not see it!) +; +; default values s=-1, p=-1 +presentation=-1 +screen=-1 + +; this enables echocancellation, with the given number of taps +; be aware, move this setting only to outgoing portgroups! +; A value of zero turns echocancellation off. +; +; possible values are: 0,32,64,128,256,yes(=128),no(=0) +; +; default value: no +; +;echocancel=no + +; Set this to no to disable echotraining. You can enter a number > 10 +; the value is a multiple of 0.125 ms. +; +; default value: no +; yes = 2000 +; no = 0 +; +echotraining=no + +; +; chan_misdns jitterbuffer, default 4000 +; +jitterbuffer=4000 + +; +; change this threshold to enable dejitter functionality +; +jitterbuffer_upper_threshold=0 + + +; +; change this to yes, if you want to bridge a mISDN data channel to +; another channel type or to an application. +; +hdlc=no + + +; +; defines the maximum amount of incoming calls per port for +; this group. Calls which exceed the maximum will be marked with +; the channel variable MAX_OVERFLOW. It will contain the amount of +; overflowed calls +; +max_incoming=-1 + +; +; defines the maximum amount of outgoing calls per port for this group +; exceeding calls will be rejected +; +max_outgoing=-1 + +[intern] +; define your ports, e.g. 1,2 (depends on mISDN-driver loading order) +ports=1,2 +; context where to go to when incoming Call on one of the above ports +context=Intern + +[internPP] +; +; adding the postfix 'ptp' to a port number is obsolete now, chan_misdn +; parses /etc/misdn-init.conf and sets the ptp mode to the corresponding +; configs. For backwards compatibility you can still set ptp here. +; +ports=3 + +[first_extern] +; again port defs +ports=4 +; again a context for incoming calls +context=Extern1 +; msns for te ports, listen on those numbers on the above ports, and +; indicate the incoming calls to asterisk +; here you can give a comma separated list or simply an '*' for +; any msn. +msns=* + +; here an example with given msns +[second_extern] +ports=5 +context=Extern2 +callerid=15 +msns=102,144,101,104 diff --git a/trunk/configs/modules.conf.sample b/trunk/configs/modules.conf.sample new file mode 100644 index 000000000..2ca3c03d4 --- /dev/null +++ b/trunk/configs/modules.conf.sample @@ -0,0 +1,39 @@ +; +; 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 +; +; res_phoneprov requires func_strings.so to be loaded: +preload => func_strings.so +; +; Uncomment the following if you wish to use the Speech Recognition API +;preload => res_speech.so +; +; If you want, load the GTK console right away. +; +noload => pbx_gtkconsole.so +;load => pbx_gtkconsole.so +; +load => res_musiconhold.so +; +; Load one of: chan_oss, alsa, or console (portaudio). +; By default, load chan_oss only (automatically). +; +noload => chan_alsa.so +;noload => chan_oss.so +;noload => chan_console.so diff --git a/trunk/configs/musiconhold.conf.sample b/trunk/configs/musiconhold.conf.sample new file mode 100644 index 000000000..4df1afd4f --- /dev/null +++ b/trunk/configs/musiconhold.conf.sample @@ -0,0 +1,79 @@ +; +; 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. +; +; 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=/var/lib/asterisk/moh +; +;[native-random] +;mode=files +;directory=/var/lib/asterisk/moh +;digit=# ; If this option is set for a class, then when callers are +; ; listening to music on hold, they can press this digit, and +; ; they will switch to listening to this music class. +;sort=random ; Sort the files in random order + +;[native-alphabetical] +;mode=files +;directory=/var/lib/asterisk/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 diff --git a/trunk/configs/muted.conf.sample b/trunk/configs/muted.conf.sample new file mode 100644 index 000000000..a5e869b99 --- /dev/null +++ b/trunk/configs/muted.conf.sample @@ -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 Zap/1 +channel Zap/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 diff --git a/trunk/configs/osp.conf.sample b/trunk/configs/osp.conf.sample new file mode 100644 index 000000000..e3423373d --- /dev/null +++ b/trunk/configs/osp.conf.sample @@ -0,0 +1,90 @@ +; +; Open Settlement Protocol Sample Configuration File +; +; This file contains configuration of OSP server providers that are used by the +; Asterisk OSP module. The section "general" is reserved for global options. +; All other sections describe specific OSP Providers. The provider "default" +; is used when no provider is otherwise specified. +; +; The "servicepoint" and "source" parameters must be configured. For most +; implementations the other parameters in this file can be left unchanged. +; +[general] +; +; Enable cryptographic acceleration hardware. +; +;accelerate=no +; +; Defines the status of tokens that Asterisk will validate. +; 0 - signed tokens only +; 1 - unsigned tokens only +; 2 - both signed and unsigned +; The default value is 0, i.e. the Asterisk will only validate signed tokens. +; +;tokenformat=0 +; +;[default] +; +; List all service points (OSP servers) for this provider. +; Use either domain name or IP address. Most OSP servers use port 1080. +; +;servicepoint=http://osptestserver.transnexus.com:1080/osp +; +; Define the "source" device for requesting OSP authorization. +; This value is usually the domain name or IP address of the the Asterisk server. +; +;source=domain name or [IP address in brackets] +; +; Define path and file name of crypto files. +; The default path for crypto file is /var/lib/asterisk/keys. If no path is +; defined, crypto files will in /var/lib/asterisk/keys directory. +; +; Specify the private key file name. +; If this parameter is unspecified or not present, the default name will be the +; osp.conf section name followed by "-privatekey.pem" (for example: +; default-privatekey.pem) +; +;privatekey=pkey.pem +; +; Specify the local certificate file. +; If this parameter is unspecified or not present, the default name will be the +; osp.conf section name followed by "- localcert.pem " (for example: +; default-localcert.pem) +; +;localcert=localcert.pem +; +; Specify one or more Certificate Authority key file names. If none are listed, +; a single Certificate Authority key file name is added with the default name of +; the osp.conf section name followed by "-cacert_0.pem " (for example: +; default-cacert_0.pem) +; +;cacert=cacert_0.pem +; +; Configure parameters for OSP communication between Asterisk OSP client and OSP +; servers. +; +; maxconnections: Max number of simultaneous connections to the provider OSP +; server (default=20) +; retrydelay: Extra delay between retries (default=0) +; retrylimit: Max number of retries before giving up (default=2) +; timeout: Timeout for response in milliseconds (default=500) +; +;maxconnections=20 +;retrydelay=0 +;retrylimit=2 +;timeout=500 +; +; Set the authentication policy. +; 0 - NO - Accept all calls. +; 1 - YES - Accept calls with valid token or no token. Block calls with +; invalid token. +; 2 - EXCLUSIVE - Accept calls with valid token. Block calls with invalid token +; or no token. +; Default is 1, +; +;authpolicy=1 +; +; Set the default destination protocol. The OSP module supports SIP, H323, and +; IAX protocols. The default protocol is set to SIP. +; +;defaultprotocol=SIP diff --git a/trunk/configs/oss.conf.sample b/trunk/configs/oss.conf.sample new file mode 100644 index 000000000..24b0b38ee --- /dev/null +++ b/trunk/configs/oss.conf.sample @@ -0,0 +1,138 @@ +; +; 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. + + ; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". + ;----------------------------------------------------------------------------------- + +; 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 + +; uncomment this line to add video support +; [default](+,my_video,my_skin) + +[card1] + ; device = /dev/dsp1 ; alternate device + diff --git a/trunk/configs/phone.conf.sample b/trunk/configs/phone.conf.sample new file mode 100644 index 000000000..17204501e --- /dev/null +++ b/trunk/configs/phone.conf.sample @@ -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 diff --git a/trunk/configs/phoneprov.conf.sample b/trunk/configs/phoneprov.conf.sample new file mode 100644 index 000000000..8f55fa88b --- /dev/null +++ b/trunk/configs/phoneprov.conf.sample @@ -0,0 +1,60 @@ +[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) + +; Built-in variables and the options in phoneprov.conf that they come from +; SERVER (server) +; SERVER_PORT (serverport) + +[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 +${TOLOWER(${MAC})}.cfg => 000000000000.cfg ; Dynamically generated files. +${TOLOWER(${MAC})}-phone.cfg => 000000000000-phone.cfg ; (relative to AST_DATA_DIR/phoneprov) +config/${TOLOWER(${MAC})} => polycom.xml ; Dynamic Filename => template file +${TOLOWER(${MAC})}-directory.xml => 000000000000-directory.xml +setvar => CUSTOM_CONFIG=/var/lib/asterisk/phoneprov/configs/custom.cfg ; Custom variable diff --git a/trunk/configs/queuerules.conf.sample b/trunk/configs/queuerules.conf.sample new file mode 100644 index 000000000..5ab794be7 --- /dev/null +++ b/trunk/configs/queuerules.conf.sample @@ -0,0 +1,20 @@ +; It is possible to change the value of the QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY +; channel variables in mid-call by defining rules in the queue for when to do so. This can allow for +; a call to be opened to more members or potentially a different set of members. +; The advantage to changing members this way as opposed to inserting the caller into a +; different queue with more members or reinserting the caller into the same queue with a different +; QUEUE_MAX_PENALTY or QUEUE_MIN_PENALTY set is that the caller does not lose his place in the queue. +; +; Note: There is a limitation to these rules; a caller will follow the penaltychange rules for +; the queue that were defined at the time the caller entered the queue. If an update to the rules is +; made during the the caller's stay in the queue, these will not be reflected for that caller. +; +; The syntax for these rules is +; penaltychange => <number of seconds into the call>,<absolute or relative change to QUEUE_MAX_PENALTY>[,absolute or relative change to QUEUE_MIN_PENALTY] +; +; Example: +; [myrule] +; penaltychange => 30,+3 ; 30 seconds into the call increase the QUEUE_MAX_PENALTY by 3, no change to QUEUE_MIN_PENALTY +; penaltychange => 60,10,5 ; 60 seconds into the call increase the QUEUE_MAX_PENALTY to 10 and increase the QUEUE_MIN_PENALTY to 5 +; penaltychange => 75,,7 ; 75 seconds into the call keep the QUEUE_MAX_PENALTY the same and increase the QUEUE_MIN_PENALTY to 7 + diff --git a/trunk/configs/queues.conf.sample b/trunk/configs/queues.conf.sample new file mode 100644 index 000000000..92c323773 --- /dev/null +++ b/trunk/configs/queues.conf.sample @@ -0,0 +1,403 @@ +[general] +; +; Global settings for call queues +; +; Persistent Members +; Store each dynamic member in each queue in the astdb so that +; when asterisk is restarted, each member will be automatically +; read into their recorded queues. Default is 'yes'. +; +persistentmembers = yes +; +; Keep Stats +; Keep queue statistics during a reload. Default is 'no' +; +keepstats = no +; +; AutoFill Behavior +; The old/current behavior of the queue has a serial type behavior +; in that the queue will make all waiting callers wait in the queue +; even if there is more than one available member ready to take +; calls until the head caller is connected with the member they +; were trying to get to. The next waiting caller in line then +; becomes the head caller, and they are then connected with the +; next available member and all available members and waiting callers +; waits while this happens. The new behavior, enabled by setting +; autofill=yes makes sure that when the waiting callers are connecting +; with available members in a parallel fashion until there are +; no more available members or no more waiting callers. This is +; probably more along the lines of how a queue should work and +; in most cases, you will want to enable this behavior. If you +; do not specify or comment out this option, it will default to no +; to keep backward compatibility with the old behavior. +; +autofill = yes +; +; Monitor Type +; By setting monitor-type = MixMonitor, when specifying monitor-format +; to enable recording of queue member conversations, app_queue will +; now use the new MixMonitor application instead of Monitor so +; the concept of "joining/mixing" the in/out files now goes away +; when this is enabled. You can set the default type for all queues +; here, and then also change monitor-type for individual queues within +; queue by using the same configuration parameter within a queue +; configuration block. If you do not specify or comment out this option, +; it will default to the old 'Monitor' behavior to keep backward +; compatibility. +; +monitor-type = MixMonitor +; +; UpdateCDR behavior. +; This option is implemented to mimic chan_agents behavior of populating +; CDR dstchannel field of a call with an agent name, which you can set +; at the login time with AddQueueMember membername parameter. +; +; updatecdr = no + +; +; Note that a timeout to fail out of a queue may be passed as part of +; an application call from extensions.conf: +; Queue(queuename|[options]|[optionalurl]|[announceoverride]|[timeout]) +; example: Queue(dave|t|||45) + +; shared_lastcall will make the lastcall and calls received be the same in +; members logged in more than one queue. +; This is useful to make the queue respect the wrapuptime of another queue +; for a shared member +; +shared_lastcall=no +; +;[markq] +; +; A sample call queue +; +; Musicclass sets which music applies for this particular call queue. +; The only class which can override this one is if the MOH class is set +; directly on the channel using Set(CHANNEL(musicclass)=whatever) in the +; dialplan. +; +;musicclass = default +; +; An announcement may be specified which is played for the member as +; soon as they answer a call, typically to indicate to them which queue +; this call should be answered as, so that agents or members who are +; listening to more than one queue can differentiated how they should +; engage the customer +; +;announce = queue-markq +; +; A strategy may be specified. Valid strategies include: +; +; ringall - ring all available channels until one answers (default) +; leastrecent - ring interface which was least recently called by this queue +; fewestcalls - ring the one with fewest completed calls from this queue +; random - ring random interface +; rrmemory - round robin with memory, remember where we left off last ring pass +; 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 +; +; How long do we let the phone ring before we consider this a timeout... +; +;timeout = 15 +; +; How long do we wait before trying all the members again? +; +;retry = 5 +; +; Weight of queue - when compared to other queues, higher weights get +; first shot at available channels when the same channel is included in +; more than one queue. +; +;weight=0 +; +; After a successful call, how long to wait before sending a potentially +; free member another call (default is 0, or no delay) +; +;wrapuptime=15 +; +; Autofill will follow queue strategy but push multiple calls through +; at same time until there are no more waiting callers or no more +; available members. The per-queue setting of autofill allows you +; to override the default setting on an individual queue level. +; +;autofill=yes +; +; Autopause will pause a queue member if they fail to answer a call +; +;autopause=yes +; +; Maximum number of people waiting in the queue (0 for unlimited) +; +;maxlen = 0 +; +; If set to yes, just prior to the caller being bridged with a queue member +; the following variables will be set +; MEMBERINTERFACE is the interface name (eg. Agent/1234) +; MEMBERNAME is the member name (eg. Joe Soap) +; MEMBERCALLS is the number of calls that interface has taken, +; MEMBERLASTCALL is the last time the member took a call. +; MEMBERPENALTY is the penalty of the member +; MEMBERDYNAMIC indicates if a member is dynamic or not +; MEMBERREALTIME indicates if a member is realtime or not +; +;setinterfacevar=no +; +; If set to yes, just prior to the caller being bridged with a queue member +; the following variables will be set: +; QEHOLDTIME callers hold time +; QEORIGINALPOS original position of the caller in the queue +; +;setqueueentryvar=no +; +; If set to yes, the following variables will be set +; just prior to the caller being bridged with a queue member +; and just prior to the caller leaving the queue +; QUEUEMAX maxmimum number of calls allowed +; QUEUESTRATEGY the strategy of the queue; +; QUEUECALLS number of calls currently in the queue +; QUEUEHOLDTIME current average hold time +; QUEUECOMPLETED number of completed calls for the queue +; QUEUEABANDONED number of abandoned calls +; QUEUESRVLEVEL queue service level +; QUEUESRVLEVELPERF current service level performance +; +;setqueuevar=no +; +; if set, run this macro when connected to the queue member +; you can override this macro by setting the macro option on +; the queue application +; +; membermacro=somemacro + +; How often to announce queue position and/or estimated +; holdtime to caller (0=off) +; Note that this value is ignored if the caller's queue +; position has changed (see min-announce-frequency) +; +;announce-frequency = 90 +; +; The absolute minimum time between the start of each +; queue position and/or estimated holdtime announcement +; This is useful for avoiding constant announcements +; when the caller's queue position is changing frequently +; (see announce-frequency) +; +;min-announce-frequency = 15 +; +; How often to make any periodic announcement (see periodic-announce) +; +;periodic-announce-frequency=60 +; +; Should we include estimated hold time in position announcements? +; Either yes, no, or only once. +; Hold time will be announced as the estimated time, +; or "less than 2 minutes" when appropriate. +; +;announce-holdtime = yes|no|once +; +; Queue position announce? +; Either yes or no. If turned off, only the holdtime will be announced (as +; configured in announce-holdtime) +; +;announce-position = yes +; +; 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, 1, 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. +; + ; ("You are now first in line.") +;queue-youarenext = queue-youarenext + ; ("There are") +;queue-thereare = queue-thereare + ; ("calls waiting.") +;queue-callswaiting = queue-callswaiting + ; ("The current est. holdtime is") +;queue-holdtime = queue-holdtime + ; ("minutes.") +;queue-minutes = queue-minutes + ; ("seconds.") +;queue-seconds = queue-seconds + ; ("Thank you for your patience.") +;queue-thankyou = queue-thankyou + ; ("less than") +;queue-lessthan = queue-less-than + ; ("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 +; 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 +; Set(MONITOR_EXEC=mv /var/spool/asterisk/monitor/^{MONITOR_FILENAME} /tmp/^{MONITOR_FILENAME}) +; +; The command specified within the contents of MONITOR_EXEC will be executed when +; the recording is over. Any strings matching ^{X} will be unescaped to ${X} and +; all variables will be evaluated just prior to recording being started. +; +; The contents of MONITOR_FILENAME will also be unescaped from ^{X} to ${X} and +; all variables will be evaluated just prior to recording being started. +; +; +; This setting controls whether callers can join a queue with no members. There +; are three choices: +; +; yes - callers can join a queue with no members or only unavailable members +; no - callers cannot join a queue with no members +; strict - callers cannot join a queue with no members or only unavailable +; members +; loose - same as strict, but paused queue members do not count as unavailable +; +; joinempty = yes +; +; +; If you wish to remove callers from the queue when new callers cannot join, +; set this setting to one of the same choices for 'joinempty' +; +; leavewhenempty = yes +; +; +; If this is set to yes, the following manager events will be generated: +; AgentCalled, AgentDump, AgentConnect, AgentComplete; setting this to +; vars also sends all channel variables with the event. +; (may generate some extra manager events, but probably ones you want) +; +; eventwhencalled = yes|no|vars +; +; If this is set to yes, the following manager events will be generated: +; QueueMemberStatus +; (may generate a WHOLE LOT of extra manager events) +; +; eventmemberstatus = no +; +; If you wish to report the caller's hold time to the member before they are +; connected to the caller, set this to yes. +; +; reportholdtime = no +; +; If you want the queue to avoid sending calls to members whose devices are +; known to be 'in use' (via the channel driver supporting that device state) +; uncomment this option. (Note: only the SIP channel driver currently is able +; to report 'in use'.) +; +; ringinuse = no +; +; If you wish to have a delay before the member is connected to the caller (or +; before the member hears any announcement messages), set this to the number of +; seconds to delay. +; +; memberdelay = 0 +; +; If timeoutrestart is set to yes, then the timeout for an agent to answer is +; reset if a BUSY or CONGESTION is received. This can be useful if agents +; are able to cancel a call with reject or similar. +; +; timeoutrestart = no +; +; If you wish to implement a rule defined in queuerules.conf (see +; configs/queuerules.conf.sample from the asterisk source directory for +; more information about penalty rules) by default, you may specify this +; by setting defaultrule to the rule's name +; +; defaultrule = myrule +; +; Each member of this call queue is listed on a separate line in +; the form technology/dialstring. "member" means a normal member of a +; queue. An optional penalty may be specified after a comma, such that +; entries with higher penalties are considered last. An optional member +; name may also be specified after a second comma, which is used in log +; messages as a "friendly name". Multiple interfaces may share a single +; member name. An optional state interface may be specified after a third +; comma. This interface will be the one for which app_queue receives device +; state notifications, even though the first interface specified is the one +; that is actually called. +; +; It is important to ensure that channel drivers used for members are loaded +; before app_queue.so itself or they may be marked invalid until reload. This +; can be accomplished by explicitly listing them in modules.conf before app_queue.so +; +;member => Zap/1 +;member => Zap/2,10 +;member => Zap/3,10,Bob Johnson +;member => Agent/1001 +;member => Agent/1002 +;member => Local/1000@default,0,John Smith,SIP/1000 + +; +; Note that using agent groups is probably not what you want. Strategies do +; not propagate down to the Agent system so if you want round robin, least +; recent, etc, you should list all the agents in this file individually and not +; use agent groups. +; +;member => Agent/@1 ; Any agent in group 1 +;member => Agent/:1,1 ; Any agent in group 1, wait for first + ; available, but consider with penalty + diff --git a/trunk/configs/res_config_sqlite.conf b/trunk/configs/res_config_sqlite.conf new file mode 100644 index 000000000..04e6ae2e7 --- /dev/null +++ b/trunk/configs/res_config_sqlite.conf @@ -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 diff --git a/trunk/configs/res_odbc.conf.sample b/trunk/configs/res_odbc.conf.sample new file mode 100644 index 000000000..2fd9aa702 --- /dev/null +++ b/trunk/configs/res_odbc.conf.sample @@ -0,0 +1,48 @@ +;;; 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 + +; All other sections are arbitrary names for database connections. + +[asterisk] +enabled => no +dsn => asterisk +;username => myuser +;password => mypass +pre-connect => yes +; What should we execute to ensure that our connection is still alive? The +; statement should return a non-zero value in the first field of its first +; record. The default is "select 1". +;sanitysql => select 1 + + +[mysql2] +enabled => no +dsn => MySQL-asterisk +username => myuser +password => mypass +pre-connect => yes + +; 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 setting up pools +; of connections, Asterisk can be made to work with these servers. +[sqlserver] +enabled => no +dsn => mickeysoft +pooling => yes +limit => 5 +username => oscar +password => thegrouch +pre-connect => yes +sanitysql => select count(*) from systables +; Many databases have a default of '\' to escape special characters. MS SQL +; Server does not. +backslash_is_escape => no + + + diff --git a/trunk/configs/res_pgsql.conf.sample b/trunk/configs/res_pgsql.conf.sample new file mode 100644 index 000000000..1ec2293e2 --- /dev/null +++ b/trunk/configs/res_pgsql.conf.sample @@ -0,0 +1,14 @@ +; +; 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 diff --git a/trunk/configs/res_snmp.conf.sample b/trunk/configs/res_snmp.conf.sample new file mode 100644 index 000000000..5ca09d576 --- /dev/null +++ b/trunk/configs/res_snmp.conf.sample @@ -0,0 +1,10 @@ +; +; Configuration file for res_snmp +; + +[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 diff --git a/trunk/configs/rpt.conf.sample b/trunk/configs/rpt.conf.sample new file mode 100644 index 000000000..6aee784dc --- /dev/null +++ b/trunk/configs/rpt.conf.sample @@ -0,0 +1,193 @@ +; Radio Repeater / Remote Base configuration file (for use with app_rpt) +; As of app_rpt version 0.39, 12/20/2005 +; + +;[000] ; Node ID of first repeater + +;rxchannel = Zap/1 ; Rx audio/signalling channel +; Note: if you use a unified interface (tx/rx on one channel), only +; specify the rxchannel and the txchannel will be assumed from the rxchannel +;txchannel = Zap/2 ; Tx audio/signalling channel +;duplex = 2 ; (Optional) set duplex operating mode +;; 0 = half duplex (telemetry and courtesy tones do not transmit) +;; 1 = semi-half duplex (telemetry and courtesy tones transmit, but not +;; repeated audio +;; 2 = normal full-duplex mode (Default) +;; 3 = full-duplex mode, without repeated audio from main input source +;functions = functions-repeater ; DTMF function list +;; specify this for a different function list then local when on link +;;link_functions = functions-different ; DTMF function list for link +;;phone_functions = functions-phone ; (optional) different functions for 'P' mode +;;dphone_functions = functions-dphone ; (optional) different functions for 'D' mode +;;nodes = nodes-different ; (optional) different node list +;tonezone = us ; use US tones (default) +;context = default ; dialing context for phone +;callerid = "WB6NIL Repeater" <(213) 555-0123> ; Callerid for phone calls +;idrecording = wb6nil ; id recording +;accountcode=RADIO ; account code (optional) +;funcchar = * ; function lead-in character (defaults to '*') +;endchar = # ; command mode end character (defaults to '#') +;;nobusyout=yes ; (optional) Do not busy-out reverse-patch when + ; normal patch in use +;hangtime=1000 ; squelch tail hang time (in ms) (optional) +;totime=100000 ; transmit time-out time (in ms) (optional) +;idtime=30000 ; id interval time (in ms) (optional) +;politeid=30000 ; time in milliseconds before ID timer + ; expires to try and ID in the tail. + ; (optional, default is 30000). +;idtalkover=|iwb6nil/rpt ; Talkover ID (optional) default is none +;unlinkedct=ct2 ; unlinked courtesy tone (optional) default is none + +;; The tailmessagetime,tailsquashedtime, and tailmessages need to be set +;; to support tail messages. They can be omitted otherwise. +;tailmessagetime=300000 ; Play a tail message every 5 mins +;tailsquashedtime=30000 ; If squashed by another user, +;; try again after 30 seconds +;tailmessages=msg1,msg2,msg3 ;list of messages to be played for tail message + +; The default values for hangtime, time-out time, and id interval time are +; 5 seconds (5000 ms), 3 minutes (180000 ms), and 5 minutes (300000 ms) +; respectively + +;[001] ; Node ID of first repeater + +;rxchannel = Zap/3 ; Rx audio/signalling channel +; Note: if you use a unified interface (tx/rx on one channel), only +; specify the rxchannel and the txchannel will be assumed from the rxchannel +;txchannel = Zap/4 ; Tx audio/signalling channel +;functions = functions-repeater ; DTMF function list +;; specify this for a different function list then local when on link +;;link_functions = functions-different ; DTMF function list for link +;;phone_functions = functions-phone ; (optional) different functions for 'P' mode +;;dphone_functions = functions-dphone ; (optional) different functions for 'D' mode +;;nodes = nodes-different ; (optional) different node list +;tonezone = us ; use US tones (default) +;context = default ; dialing context for phone +;callerid = "WB6NIL Repeater" <(213) 555-0123> ; Callerid for phone calls +;idrecording = wb6nil ; id recording +;accountcode=RADIO ; account code (optional) +;funcchar = * ; function lead-in character (defaults to '*') +;endchar = # ; command mode end character (defaults to '#') +;;nobusyout=yes ; (optional) Do not busy-out reverse-patch when + ; normal patch in use +;hangtime=1000 ; squelch tail hang time (in ms) (optional) +;totime=100000 ; transmit time-out time (in ms) (optional) +;idtime=30000 ; id interval time (in ms) (optional) +;politeid=30000 ; time in milliseconds before ID timer + ; expires to try and ID in the tail. + ; (optional, default is 30000). +;idtalkover=|iwb6nil/rpt ; Talkover ID (optional) default is none +;unlinkedct=ct2 ; unlinked courtesy tone (optional) default is none + +;[002] ; Node ID of remote base + +;rxchannel = Zap/5 ; Rx audio/signalling channel +; Note: if you use a unified interface (tx/rx on one channel), only +; specify the rxchannel and the txchannel will be assumed from the rxchannel +;txchannel = Zap/6 ; Tx audio/signalling channel +;functions = functions-remote +;remote = ft897 ; Set remote=y for dumb remote or + ; remote=ft897 for Yaesu FT-897 or + ; remote=rbi for Doug Hall RBI1 +;iobase = 0x378 ; Specify IO port for parallel port (optional) + +;[functions-repeater] +;1=ilink,1 ; Specific link disconnect +;2=ilink,2 ; Specific Link connect - monitor only +;3=ilink,3 ; Specific Link connect - transceive +;4=ilink,4 ; Enter command mode on a specific link +;7=ilink,5 ; Link status +;;XX=ilink,6 ; Disconnect all links (not used here) + +;80=status,1 ; System info +;81=status,2 ; Time +;82=status,3 ; app_rpt.c Version + +;6=autopatchup ; Autopatch up +;0=autopatchdn ; Autopatch down + +;90=cop,1 ; System warm boot +;91=cop,2 ; System enable +;92=cop,3 ; System disable + +;[functions-remote] + +;0=remote,1 ; Retrieve Memory +;1=remote,2 ; Set freq. +;2=remote,3 ; Set Rx PL tone. +;40=remote,100 ; Rx PL off +;41=remote,101 ; Rx PL on +;42=remote,102 ; Tx PL off +;43=remote,103 ; Tx PL on +;44=remote,104 ; Low Pwr +;45=remote,105 ; Med Pwr +;46=remote,106 ; Hi Pwr +;5=remote,5 ; Status + +;[telemetry] + +; Telemetry entries are shared across all repeaters +; Can be a tone sequence, morse string, or a file +; +; |t - Tone escape sequence +; +; Tone sequences consist of 1 or more 4-tuple entries (freq1, freq2, duration, amplitude) +; Single frequencies are created by setting freq1 or freq2 to zero. +; +; |m - Morse escape sequence +; +; Sends Morse code at the telemetry amplitude and telemetry frequency as defined in the +; [morse] section. +; +; Follow with an alphanumeric string +; +; |i - Morse ID escape sequence +; +; Sends Morse code at the ID amplitude and ID frequency as defined in the +; [morse] section. +; +; Follow with an alphanumeric string + + +;ct1=|t(350,0,100,2048)(500,0,100,2048)(660,0,100,2048) +;ct2=|t(660,880,150,2048) +;ct3=|t(440,0,150,2048) +;ct4=|t(550,0,150,2048) +;ct5=|t(660,0,150,2048) +;ct6=|t(880,0,150,2048) +;ct7=|t(660,440,150,2048) +;ct8=|t(700,1100,150,2048) +;remotetx=|t(2000,0,75,2048)(0,0,75,0)(1600,0,75,2048); +;remotemon=|t(1600,0,75,2048) +;cmdmode=|t(900,903,200,2048) +;functcomplete=|t(1000,0,100,2048)(0,0,100,0)(1000,0,100,2048) + + +;[morse] + +;speed=20 ; Approximate speed in WPM +;frequency=800 ; Morse Telemetry Frequency +;amplitude=4096 ; Morse Telemetry Amplitude +;idfrequency=330 ; Morse ID Frequency +;idamplitude=2048 ; Morse ID Amplitude + +;[nodes] + +;000 = context_A@foo.bar.com/1234,foo.bar.com +;001 = context_B@baz.waldo.com/4321,baz.waldo.com +;002 = context_C@pepper.salt.com/5678,pepper.salt.com,y ; this is a remote + +;of course, you can also specify these with domain names, but why rely +;on DNS working unnecessarily? + +;[memory] + +;; this example gives you 146.460, simplex, 100.0 HZ PL, hi-power, transmit PL +;00 = 146.460,100.0,sht +;; this example gives you 146.940, minus offset, 100.0 HZ PL, low-power, no PL +;01 = 146.940,100.0,-l + +; The format for these entries is: Receive-Freq,Receive-PL,Attrbutes +; Attributes: l=low power, m=medium power, h=high power, -=minus offset, +; s=simplex, +=plus offset, t=tx PL enable, r=rx PL enable + diff --git a/trunk/configs/rtp.conf.sample b/trunk/configs/rtp.conf.sample new file mode 100644 index 000000000..a96a0a09b --- /dev/null +++ b/trunk/configs/rtp.conf.sample @@ -0,0 +1,22 @@ +; +; 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) diff --git a/trunk/configs/say.conf.sample b/trunk/configs/say.conf.sample new file mode 100644 index 000000000..e8b8ed7ae --- /dev/null +++ b/trunk/configs/say.conf.sample @@ -0,0 +1,200 @@ +; +; 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:[Bb]:. => 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:[hH]:. => num:${SAY:8:2} ; hour + _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 + +[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:XXX => num:${SAY:0:1}, digits/hundred, num:${SAY:1} + + _[n]um:XXXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1} + _[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2} + _[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3} + + _[n]um:XXXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1} + _[n]um:XXXXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2} + _[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3} + + _[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1} + _[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2} + _[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]XX => num:${SAY:0:1}, digits/hundred, enum:${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:1XX => digits/hundred, num:${SAY:1} + _[n]um:[2-9]XX => num:${SAY:0:1}, digits/hundred, num:${SAY:1} + + _[n]um:1XXX => digits/thousand, num:${SAY:1} + _[n]um:[2-9]XXX => num:${SAY:0:1}, digits/thousands, num:${SAY:1} + _[n]um:XXXXX => num:${SAY:0:2}, digits/thousands, num:${SAY:2} + _[n]um:XXXXXX => num:${SAY:0:3}, digits/thousands, num:${SAY:3} + + _[n]um:1XXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1} + _[n]um:[2-9]XXXXXX => num:${SAY:0:1}, digits/millions, num:${SAY:1} + _[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2} + _[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} + +[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:1XX => digits/ein, digits/hundred, num:${SAY:1} + _[n]um:[2-9]XX => digits/${SAY:0:1}, digits/hundred, num:${SAY:1} + _[n]um:1XXX => digits/ein, digits/thousand, num:${SAY:1} + _[n]um:[2-9]XXX => digits/${SAY:0:1}, digits/thousand, num:${SAY:1} + _[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2} + _[n]um:X00XXX => digits/${SAY:0:1}, digits/hundred, digits/thousand, num:${SAY:3} + _[n]um:XXXXXX => digits/${SAY:0:1}, digits/hundred, num:${SAY:1} + _[n]um:1XXXXXX => digits/eine, digits/million, num:${SAY:1} + _[n]um:[2-9]XXXXXX => digits/${SAY:0:1}, digits/millions, num:${SAY:1} + _[n]um:XXXXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2} + _[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:XXXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1} + _[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2} + _[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3} + + _[n]um:XXXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1} + _[n]um:XXXXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2} + _[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3} + + _[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1} + _[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2} + _[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} diff --git a/trunk/configs/sip.conf.sample b/trunk/configs/sip.conf.sample new file mode 100644 index 000000000..62eee41bb --- /dev/null +++ b/trunk/configs/sip.conf.sample @@ -0,0 +1,896 @@ +; +; SIP Configuration example for Asterisk +; +; SIP dial strings +;----------------------------------------------------------- +; In the dialplan (extensions.conf) you can use several +; syntaxes for dialing SIP devices. +; SIP/devicename +; SIP/username@domain (SIP uri) +; SIP/username@host:port +; SIP/devicename/extension +; +; +; Devicename +; devicename is defined as a peer in a section below. +; +; username@domain +; Call any SIP user on the Internet +; (Don't forget to enable DNS SRV records if you want to use this) +; +; devicename/extension +; If you define a SIP proxy as a peer below, you may call +; SIP/proxyhostname/user or SIP/user@proxyhostname +; where the proxyhostname is defined in a section below +; This syntax also works with ATA's with FXO ports +; +; All of these dial strings specify the SIP request URI. +; In addition, you can specify a specific To: header by adding an +; exclamation mark after the dial string, like +; +; SIP/sales@mysipproxy!sales@edvina.net +; +; CLI Commands +; ------------------------------------------------------------- +; Useful CLI commands to check peers/users: +; sip show peers Show all SIP peers (including friends) +; sip show users Show all SIP users (including friends) +; sip show registry Show status of hosts we register with +; +; sip set debug Show all SIP messages +; +; sip reload Reload configuration file +; Active SIP peers will not be reconfigured +; + +; ** Deprecated configuration options ** +; The "call-limit" configuation option is deprecated. It still works in +; this version of Asterisk, but will disappear in the next version. +; You are encouraged to use the dialplan groupcount functionality +; to enforce call limits instead of using this channel-specific method. +; +; You can still set limits per device in sip.conf or in a database by using +; "setvar" to set variables that can be used in the dialplan for various limits. + +[general] +context=default ; Default context for incoming calls +;allowguest=no ; Allow or reject guest calls (default is yes) +;match_auth_username=yes ; if available, match user entry using the + ; 'username' field from the authentication line + ; instead of the From: field. + +allowoverlap=no ; Disable overlap dialing support. (Default is yes) +;allowtransfer=no ; Disable all transfers (unless enabled in peers or users) + ; Default is enabled +;realm=mydomain.tld ; Realm for digest authentication + ; defaults to "asterisk". If you set a system name in + ; asterisk.conf, it defaults to that system name + ; Realms MUST be globally unique according to RFC 3261 + ; Set this to your host name or domain name +bindport=5060 ; UDP Port to bind to (SIP standard port is 5060) + ; bindport is the local UDP port that Asterisk will listen on +bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all) + +tcpenable=yes ; Enable server for incoming TCP connections (default is yes) +tcpbindaddr=0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces) + ; Optionally add a port number, 192.168.1.1:5062 (default is port 5060) + +;tlsenable=no ; Enable server for incoming TLS (secure) connections (default is no) +;tlsbindaddr=0.0.0.0 ; IP address for TLS server to bind to (0.0.0.0) binds to all interfaces) + ; Optionally add a port number, 192.168.1.1:5063 (default is port 5061) +;tlscertfile=asterisk.pem ; Certificate file (*.pem only) to use for TLS connections + ; default is to look for "asterisk.pem" in current directory +srvlookup=yes ; Enable DNS SRV lookups on outbound calls + ; Note: Asterisk only uses the first host + ; in SRV records + ; Disabling DNS SRV lookups disables the + ; ability to place SIP calls based on domain + ; names to some other SIP users on the Internet + +;domain=mydomain.tld ; Set default domain for this host + ; If configured, Asterisk will only allow + ; INVITE and REFER to non-local domains + ; Use "sip show domains" to list local domains +;pedantic=yes ; Enable checking of tags in headers, + ; international character conversions in URIs + ; and multiline formatted headers for strict + ; SIP compatibility (defaults to "no") + +; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters. +;tos_sip=cs3 ; Sets TOS for SIP packets. +;tos_audio=ef ; Sets TOS for RTP audio packets. +;tos_video=af41 ; Sets TOS for RTP video packets. +;tos_text=af41 ; Sets TOS for RTP text packets. + +;cos_sip=3 ; Sets 802.1p priority for SIP packets. +;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. +;cos_video=4 ; Sets 802.1p priority for RTP video packets. +;cos_text=3 ; Sets 802.1p priority for RTP text packets. + +;maxexpiry=3600 ; Maximum allowed time of incoming registrations + ; and subscriptions (seconds) +;minexpiry=60 ; Minimum length of registrations/subscriptions (default 60) +;defaultexpiry=120 ; Default length of incoming/outgoing registration +;qualifyfreq=60 ; Qualification: How often to check for the + ; host to be up in seconds + ; Set to low value if you use low timeout for + ; NAT of UDP sessions +;notifymimetype=text/plain ; Allow overriding of mime type in MWI NOTIFY +;buggymwi=no ; Cisco SIP firmware doesn't support the MWI RFC + ; fully. Enable this option to not get error messages + ; when sending MWI to phones with this bug. +;vmexten=voicemail ; dialplan extension to reach mailbox sets the + ; Message-Account in the MWI notify message + ; defaults to "asterisk" +;disallow=all ; First disallow all codecs +;allow=ulaw ; Allow codecs in order of preference +;allow=ilbc ; see doc/rtp-packetization for framing options +; +; 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. +; +; This option may be specified globally, or on a per-user or per-peer basis. +; +;mohinterpret=default +; +; This option specifies which music on hold class to suggest to the peer channel +; when this channel places the peer on hold. It may be specified globally or on +; a per-user or per-peer basis. +; +;mohsuggest=default +; +;language=en ; Default language setting for all users/peers + ; This may also be set for individual users/peers +;relaxdtmf=yes ; Relax dtmf handling +;trustrpid = no ; If Remote-Party-ID should be trusted +;sendrpid = yes ; If Remote-Party-ID should be sent +;progressinband=never ; If we should generate in-band ringing always + ; use 'never' to never use in-band signalling, even in cases + ; where some buggy devices might not render it + ; Valid values: yes, no, never Default: never +;useragent=Asterisk PBX ; Allows you to change the user agent string + ; The default user agent string also contains the Asterisk + ; version. If you don't want to expose this, change the + ; useragent string. +;sdpsession=Asterisk PBX ; Allows you to change the SDP session name string, (s=) + ; Like the useragent parameter, the default user agent string + ; also contains the Asterisk version. +;sdpowner=root ; Allows you to change the username field in the SDP owner string, (o=) + ; This field MUST NOT contain spaces +;promiscredir = no ; If yes, allows 302 or REDIR to non-local SIP address + ; Note that promiscredir when redirects are made to the + ; local system will cause loops since Asterisk is incapable + ; of performing a "hairpin" call. +;usereqphone = no ; If yes, ";user=phone" is added to uri that contains + ; a valid phone number +;dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833 + ; Other options: + ; info : SIP INFO messages (application/dtmf-relay) + ; shortinfo : SIP INFO messages (application/dtmf) + ; inband : Inband audio (requires 64 kbit codec -alaw, ulaw) + ; auto : Use rfc2833 if offered, inband otherwise + +;compactheaders = yes ; send compact sip headers. +; +;videosupport=yes ; Turn on support for SIP video. You need to turn this on + ; in the this section to get any video support at all. + ; You can turn it off on a per peer basis if the general + ; video support is enabled, but you can't enable it for + ; one peer only without enabling in the general section. +;maxcallbitrate=384 ; Maximum bitrate for video calls (default 384 kb/s) + ; Videosupport and maxcallbitrate is settable + ; for peers and users as well +;callevents=no ; generate manager events when sip ua + ; performs events (e.g. hold) +;alwaysauthreject = yes ; When an incoming INVITE or REGISTER is to be rejected, + ; for any reason, always reject with '401 Unauthorized' + ; instead of letting the requester know whether there was + ; a matching user or peer for their request + +;g726nonstandard = yes ; If the peer negotiates G726-32 audio, use AAL2 packing + ; order instead of RFC3551 packing order (this is required + ; for Sipura and Grandstream ATAs, among others). This is + ; contrary to the RFC3551 specification, the peer _should_ + ; be negotiating AAL2-G726-32 instead :-( +;outboundproxy=proxy.provider.domain ; send outbound signaling to this proxy, not directly to the devices +;outboundproxy=proxy.provider.domain:8080 ; send outbound signaling to this proxy, not directly to the devices +;outboundproxy=proxy.provider.domain,force ; Send ALL outbound signalling to proxy, ignoring route: headers +;matchexterniplocally = yes ; Only substitute the externip or externhost setting if it matches + ; your localnet setting. Unless you have some sort of strange network + ; setup you will not need to enable this. + +; +; 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 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 peer 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=sipregistrations +;regextenonqualify=yes ; Default "no" + ; If you have qualify on and the peer becomes unreachable + ; this setting will enforce inactivation of the regexten + ; extension for the peer +; +;--------------------------- SIP timers ---------------------------------------------------- +; These timers are used primarily in INVITE transactions. +; The default for Timer T1 is 500 ms or the measured run-trip time between +; Asterisk and the device if you have qualify=yes for the device. +; +;t1min=100 ; Minimum roundtrip time for messages to monitored hosts + ; Defaults to 100 ms +;timert1=500 ; Default T1 timer + ; Defaults to 500 ms +;timerb=32000 ; Call setup timer. If a provisional response is not received + ; in this amount of time, the call will autocongest + ; Defaults to 64*timert1 + +;--------------------------- RTP timers ---------------------------------------------------- +; These timers are currently used for both audio and video streams. The RTP timeouts +; are only applied to the audio channel. +; The settings are settable in the global section as well as per device +; +;rtptimeout=60 ; Terminate call if 60 seconds of no RTP or RTCP activity + ; on the audio channel + ; when we're not on hold. This is to be able to hangup + ; a call in the case of a phone disappearing from the net, + ; like a powerloss or grandma tripping over a cable. +;rtpholdtimeout=300 ; Terminate call if 300 seconds of no RTP or RTCP activity + ; on the audio channel + ; when we're on hold (must be > rtptimeout) +;rtpkeepalive=<secs> ; Send keepalives in the RTP stream to keep NAT open + ; (default is off - zero) + +;--------------------------- SIP Session-Timers (RFC 4028)------------------------------------ +; SIP Session-Timers provide an end-to-end keep-alive mechanism for active SIP sessions. +; This mechanism can detect and reclaim SIP channels that do not terminate through normal +; signaling procedures. Session-Timers can be configured globally or at a user/peer level. +; The operation of Session-Timers is driven by the following configuration parameters: +; +; * session-timers - Session-Timers feature operates in the following three modes: +; originate : Request and run session-timers always +; accept : Run session-timers only when requested by other UA +; refuse : Do not run session timers in any case +; The default mode of operation is 'accept'. +; * session-expires - Maximum session refresh interval in seconds. Defaults to 1800 secs. +; * session-minse - Minimum session refresh interval in seconds. Defualts to 90 secs. +; * session-refresher - The session refresher (uac|uas). Defaults to 'uas'. +; +;session-timers=originate +;session-expires=600 +;session-minse=90 +;session-refresher=uas + + +;--------------------------- SIP DEBUGGING --------------------------------------------------- +;sipdebug = yes ; Turn on SIP debugging by default, from + ; the moment the channel loads this configuration +;recordhistory=yes ; Record SIP history by default + ; (see sip history / sip no history) +;dumphistory=yes ; Dump SIP history at end of SIP dialogue + ; SIP history is output to the DEBUG logging channel + + +;--------------------------- STATUS NOTIFICATIONS (SUBSCRIPTIONS) ---------------------------- +; You can subscribe to the status of extensions with a "hint" priority +; (See extensions.conf.sample for examples) +; chan_sip support two major formats for notifications: dialog-info and SIMPLE +; +; You will get more detailed reports (busy etc) if you have a call counter enabled +; for a device. +; +; If you set the busylevel, we will indicate busy when we have a number of calls that +; matches the busylevel treshold. +; +; For queues, you will need this level of detail in status reporting, regardless +; if you use SIP subscriptions. Queues and manager use the same internal interface +; for reading status information. +; +; Note: Subscriptions does not work if you have a realtime dialplan and use the +; realtime switch. +; +;allowsubscribe=no ; Disable support for subscriptions. (Default is yes) +;subscribecontext = default ; Set a specific context for SUBSCRIBE requests + ; Useful to limit subscriptions to local extensions + ; Settable per peer/user also +;notifyringing = yes ; Notify subscriptions on RINGING state (default: no) +;notifyhold = yes ; Notify subscriptions on HOLD state (default: no) + ; Turning on notifyringing and notifyhold will add a lot + ; more database transactions if you are using realtime. +;callcounter = yes ; Enable call counters on devices. This can be set per + ; device too. +;counteronpeer = yes ; Apply call counting on peers only. This will improve + ; status notification when you are using type=friend + ; Inbound calls, that really apply to the user part + ; of a friend will now be added to and compared with + ; the peer counter instead of applying two call counters, + ; one for the peer and one for the user. + ; "sip show inuse" will only show active calls on + ; the peer side of a "type=friend" object if this + ; setting is turned on. + +;----------------------------------------- T.38 FAX PASSTHROUGH SUPPORT ----------------------- +; +; This setting is available in the [general] section as well as in device configurations. +; Setting this to yes, enables T.38 fax (UDPTL) passthrough on SIP to SIP calls, provided +; both parties have T38 support enabled in their Asterisk configuration +; This has to be enabled in the general section for all devices to work. You can then +; disable it on a per device basis. +; +; T.38 faxing only works in SIP to SIP calls, with no local or agent channel being used. +; +; t38pt_udptl = yes ; Default false +; +;----------------------------------------- OUTBOUND SIP REGISTRATIONS ------------------------ +; Asterisk can register as a SIP user agent to a SIP proxy (provider) +; Format for the register statement is: +; register => [transport://]user[:secret[:authuser]]@host[:port][/extension] +; +; +; +; If no extension is given, the 's' extension is used. The extension needs to +; be defined in extensions.conf to be able to accept calls from this SIP proxy +; (provider). +; +; host is either a host name defined in DNS or the name of a section defined +; below. +; +; A similar effect can be achieved by adding a "callbackextension" option in a peer section. +; this is equivalent to having the following line in the general section: +; +; register => username:secret@host/callbackextension +; +; and more readable because you don't have to write the parameters in two places +; (note that the "port" is ignored - this is a bug that should be fixed). +; +; Examples: +; +;register => 1234:password@mysipprovider.com +; +; This will pass incoming calls to the 's' extension +; +; +;register => 2345:password@sip_proxy/1234 +; +; Register 2345 at sip provider 'sip_proxy'. Calls from this provider +; connect to local extension 1234 in extensions.conf, default context, +; unless you configure a [sip_proxy] section below, and configure a +; context. +; Tip 1: Avoid assigning hostname to a sip.conf section like [provider.com] +; Tip 2: Use separate type=peer and type=user sections for SIP providers +; (instead of type=friend) if you have calls in both directions + +;registertimeout=20 ; retry registration calls every 20 seconds (default) +;registerattempts=10 ; Number of registration attempts before we give up + ; 0 = continue forever, hammering the other server + ; until it accepts the registration + ; Default is 0 tries, continue forever + +;----------------------------------------- NAT SUPPORT ------------------------ +; +; WARNING: SIP operation behind a NAT is tricky and you really need +; to read and understand well the following section. +; +; When Asterisk is behind a NAT device, the "local" address (and port) that +; a socket is bound to has different values when seen from the inside or +; from the outside of the NATted network. Unfortunately this address must +; be communicated to the outside (e.g. in SIP and SDP messages), and in +; order to determine the correct value Asterisk needs to know: +; +; + whether it is talking to someone "inside" or "outside" of the NATted network. +; This is configured by assigning the "localnet" parameter with a list +; of network addresses that are considered "inside" of the NATted network. +; IF LOCALNET IS NOT SET, THE EXTERNAL ADDRESS WILL NOT BE SET CORRECTLY. +; Multiple entries are allowed, e.g. a reasonable set is the following: +; +; localnet=192.168.0.0/255.255.0.0 ; RFC 1918 addresses +; localnet=10.0.0.0/255.0.0.0 ; Also RFC1918 +; localnet=172.16.0.0/12 ; Another RFC1918 with CIDR notation +; localnet=169.254.0.0/255.255.0.0 ; Zero conf local network +; +; + the "externally visible" address and port number to be used when talking +; to a host outside the NAT. This information is derived by one of the +; following (mutually exclusive) config file parameters: +; +; a. "externip = hostname[:port]" specifies a static address[:port] to +; be used in SIP and SDP messages. +; The hostname is looked up only once, when [re]loading sip.conf . +; If a port number is not present, use the "bindport" value (which is +; not guaranteed to work correctly, because a NAT box might remap the +; port number as well as the address). +; This approach can be useful if you have a NAT device where you can +; configure the mapping statically. Examples: +; +; externip = 12.34.56.78 ; use this address. +; externip = 12.34.56.78:9900 ; use this address and port. +; externip = mynat.my.org:12600 ; Public address of my nat box. +; +; b. "externhost = hostname[:port]" is similar to "externip" except +; that the hostname is looked up every "externrefresh" seconds +; (default 10s). This can be useful when your NAT device lets you choose +; the port mapping, but the IP address is dynamic. +; Beware, you might suffer from service disruption when the name server +; resolution fails. Examples: +; +; externhost=foo.dyndns.net ; refreshed periodically +; externrefresh=180 ; change the refresh interval +; +; c. "stunaddr = stun.server[:port]" queries the STUN server specified +; as an argument to obtain the external address/port. +; Queries are also sent periodically every "externrefresh" seconds +; (as a side effect, sending the query also acts as a keepalive for +; the state entry on the nat box): +; +; stunaddr = foo.stun.com:3478 +; externrefresh = 15 +; +; Note that at the moment all these mechanism work only for the SIP socket. +; The IP address discovered with externip/externhost/STUN is reused for +; media sessions as well, but the port numbers are not remapped so you +; may still experience problems. +; +; NOTE 1: in some cases, NAT boxes will use different port numbers in +; the internal<->external mapping. In these cases, the "externip" and +; "externhost" might not help you configure addresses properly, and you +; really need to use STUN. +; +; NOTE 2: when using "externip" or "externhost", the address part is +; also used as the external address for media sessions. +; If you use "stunaddr", STUN queries will be sent to the same server +; also from media sockets, and this should permit a correct mapping of +; the port numbers as well. +; +; In addition to the above, Asterisk has an additional "nat" parameter to +; address NAT-related issues in incoming SIP or media sessions. +; In particular, depending on the 'nat= ' settings described below, Asterisk +; may override the address/port information specified in the SIP/SDP messages, +; and use the information (sender address) supplied by the network stack instead. +; However, this is only useful if the external traffic can reach us. +; The following settings are allowed (both globally and in individual sections): +; +; nat = no ; default. Use NAT mode only according to RFC3581 (;rport) +; nat = yes ; Always ignore info and assume NAT +; nat = never ; Never attempt NAT mode or RFC3581 support +; nat = route ; route = Assume NAT, don't send rport +; ; (work around more UNIDEN bugs) + +;----------------------------------- MEDIA HANDLING -------------------------------- +; By default, Asterisk tries to re-invite the audio to an optimal path. If there's +; no reason for Asterisk to stay in the media path, the media will be redirected. +; This does not really work with in the case where Asterisk is outside and have +; clients on the inside of a NAT. In that case, you want to set canreinvite=nonat +; +;canreinvite=yes ; Asterisk by default tries to redirect the + ; RTP media stream (audio) to go directly from + ; the caller to the callee. Some devices do not + ; support this (especially if one of them is behind a NAT). + ; The default setting is YES. If you have all clients + ; behind a NAT, or for some other reason wants Asterisk to + ; stay in the audio path, you may want to turn this off. + + ; This setting also affect direct RTP + ; at call setup (a new feature in 1.4 - setting up the + ; call directly between the endpoints instead of sending + ; a re-INVITE). + +;directrtpsetup=yes ; Enable the new experimental direct RTP setup. This sets up + ; the call directly with media peer-2-peer without re-invites. + ; Will not work for video and cases where the callee sends + ; RTP payloads and fmtp headers in the 200 OK that does not match the + ; callers INVITE. This will also fail if canreinvite is enabled when + ; the device is actually behind NAT. + +;canreinvite=nonat ; An additional option is to allow media path redirection + ; (reinvite) but only when the peer where the media is being + ; sent is known to not be behind a NAT (as the RTP core can + ; determine it based on the apparent IP address the media + ; arrives from). + +;canreinvite=update ; Yet a third option... use UPDATE for media path redirection, + ; instead of INVITE. This can be combined with 'nonat', as + ; 'canreinvite=update,nonat'. It implies 'yes'. + +;----------------------------------------- REALTIME SUPPORT ------------------------ +; For additional information on ARA, the Asterisk Realtime Architecture, +; please read realtime.txt and extconfig.txt in the /doc directory of the +; source code. +; +;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 SIP UA registers successfully, the ip address, + ; the origination port, the registration period, and the username of + ; the UA 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. + +;ignoreregexpire=yes ; Enabling this setting has two functions: + ; + ; For non-realtime peers, when their registration expires, the + ; information will _not_ be removed from memory or the Asterisk database + ; if you attempt to place a call to the peer, the existing information + ; will be used in spite of it having expired + ; + ; For realtime peers, when the peer is retrieved from realtime storage, + ; the registration information will be used regardless of whether + ; it has expired or not; if it expires while the realtime peer + ; is still in memory (due to caching or other reasons), the + ; information will not be removed from realtime storage + +;----------------------------------------- SIP DOMAIN SUPPORT ------------------------ +; Incoming INVITE and REFER messages can be matched against a list of 'allowed' +; domains, each of which can direct the call to a specific context if desired. +; By default, all domains are accepted and sent to the default context or the +; context associated with the user/peer placing the call. +; Domains can be specified using: +; domain=<domain>[,<context>] +; Examples: +; domain=myasterisk.dom +; domain=customer.com,customer-context +; +; In addition, all the 'default' domains associated with a server should be +; added if incoming request filtering is desired. +; autodomain=yes +; +; To disallow requests for domains not serviced by this server: +; allowexternaldomains=no + +;domain=mydomain.tld,mydomain-incoming + ; Add domain and configure incoming context + ; for external calls to this domain +;domain=1.2.3.4 ; Add IP address as local domain + ; You can have several "domain" settings +;allowexternaldomains=no ; Disable INVITE and REFER to non-local domains + ; Default is yes +;autodomain=yes ; Turn this on to have Asterisk add local host + ; name and local IP to domain list. + +; fromdomain=mydomain.tld ; When making outbound SIP INVITEs to + ; non-peers, use your primary domain "identity" + ; for From: headers instead of just your IP + ; address. This is to be polite and + ; it may be a mandatory requirement for some + ; destinations which do not have a prior + ; account relationship with your server. + +;------------------------------ 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". +;----------------------------------------------------------------------------------- + +[authentication] +; Global credentials for outbound calls, i.e. when a proxy challenges your +; Asterisk server for authentication. These credentials override +; any credentials in peer/register definition if realm is matched. +; +; This way, Asterisk can authenticate for outbound calls to other +; realms. We match realm on the proxy challenge and pick an set of +; credentials from this list +; Syntax: +; auth = <user>:<secret>@<realm> +; auth = <user>#<md5secret>@<realm> +; Example: +;auth=mark:topsecret@digium.com +; +; You may also add auth= statements to [peer] definitions +; Peer auth= override all other authentication settings if we match on realm + +;------------------------------------------------------------------------------ +; Users and peers have different settings available. Friends have all settings, +; since a friend is both a peer and a user +; +; User config options: Peer configuration: +; -------------------- ------------------- +; context context +; callingpres callingpres +; permit permit +; deny deny +; secret secret +; md5secret md5secret +; dtmfmode dtmfmode +; canreinvite canreinvite +; nat nat +; callgroup callgroup +; pickupgroup pickupgroup +; language language +; allow allow +; disallow disallow +; insecure insecure +; trustrpid trustrpid +; progressinband progressinband +; promiscredir promiscredir +; useclientcode useclientcode +; accountcode accountcode +; setvar setvar +; callerid callerid +; amaflags amaflags +; call-limit call-limit (deprecated) +; callcounter callcounter +; allowoverlap allowoverlap +; allowsubscribe allowsubscribe +; allowtransfer allowtransfer +; subscribecontext subscribecontext +; videosupport videosupport +; maxcallbitrate maxcallbitrate +; rfc2833compensate mailbox +; session-timers busylevel +; session-expires +; session-minse template +; session-refresher fromdomain +; regexten +; fromuser +; host +; port +; qualify +; defaultip +; defaultuser +; rtptimeout +; rtpholdtimeout +; sendrpid +; outboundproxy +; rfc2833compensate +; callbackextension +; registertrying +; session-timers +; session-expires +; session-minse +; session-refresher +; timert1 +; timerb +; qualifyfreq + + +;[sip_proxy] +; For incoming calls only. Example: FWD (Free World Dialup) +; We match on IP address of the proxy for incoming calls +; since we can not match on username (caller id) +;type=peer +;context=from-fwd +;host=fwd.pulver.com + +;[sip_proxy-out] +;type=peer ; we only want to call out, not be called +;secret=guessit +;defaultuser=yourusername ; Authentication user for outbound proxies +;fromuser=yourusername ; Many SIP providers require this! +;fromdomain=provider.sip.domain +;host=box.provider.com +;usereqphone=yes ; This provider requires ";user=phone" on URI +;callcounter=yes ; Enable call counter +;busylevel=2 ; Signal busy at 2 or more calls +;outboundproxy=proxy.provider.domain ; send outbound signaling to this proxy, not directly to the peer +;port=80 ; The port number we want to connect to on the remote side + ; Also used as "defaultport" in combination with "defaultip" settings + +;--- sample definition for a provider +;[provider1] +;type=peer +;host=sip.provider1.com +;fromuser=4015552299 ; how your provider knows you +;secret=youwillneverguessit +;callbackextension=123 ; Register with this server and require calls coming back to this extension + +;------------------------------------------------------------------------------ +; Definitions of locally connected SIP devices +; +; type = user a device that authenticates to us by "from" field to place calls +; type = peer a device we place calls to or that calls us and we match by host +; type = friend two configurations (peer+user) in one +; +; For device names, we recommend using only a-z, numerics (0-9) and underscore +; +; For local phones, type=friend works most of the time +; +; If you have one-way audio, you probably have NAT problems. +; If Asterisk is on a public IP, and the phone is inside of a NAT device +; you will need to configure nat option for those phones. +; Also, turn on qualify=yes to keep the nat session open +; +; Because you might have a large number of similar sections, it is generally +; convenient to use templates for the common parameters, and add them +; the the various sections. Examples are below, and we can even leave +; the templates uncommented as they will not harm: + +[basic-options](!) ; a template + dtmfmode=rfc2833 + context=from-office + type=friend + +[natted-phone](!,basic-options) ; another template inheriting basic-options + nat=yes + canreinvite=no + host=dynamic + +[public-phone](!,basic-options) ; another template inheriting basic-options + nat=no + canreinvite=yes + +[my-codecs](!) ; a template for my preferred codecs + disallow=all + allow=ilbc + allow=g729 + allow=gsm + allow=g723 + allow=ulaw + +[ulaw-phone](!) ; and another one for ulaw-only + disallow=all + allow=ulaw + +; and finally instantiate a few phones +; +; [2133](natted-phone,my-codecs) +; secret = peekaboo +; [2134](natted-phone,ulaw-phone) +; secret = not_very_secret +; [2136](public-phone,ulaw-phone) +; secret = not_very_secret_either +; ... +; + +; Standard configurations not using templates look like this: +; +;[grandstream1] +;type=friend +;context=from-sip ; Where to start in the dialplan when this phone calls +;callerid=John Doe <1234> ; Full caller ID, to override the phones config + ; on incoming calls to Asterisk +;host=192.168.0.23 ; we have a static but private IP address + ; No registration allowed +;nat=no ; there is not NAT between phone and Asterisk +;canreinvite=yes ; allow RTP voice traffic to bypass Asterisk +;dtmfmode=info ; either RFC2833 or INFO for the BudgeTone +;call-limit=1 ; permit only 1 outgoing call and 1 incoming call at a time + ; from the phone to asterisk (deprecated) + ; 1 for the explicit peer, 1 for the explicit user, + ; remember that a friend equals 1 peer and 1 user in + ; memory + ; There is no combined call counter for a "friend" + ; so there's currently no way in sip.conf to limit + ; to one inbound or outbound call per phone. Use + ; the group counters in the dial plan for that. + ; +;mailbox=1234@default ; mailbox 1234 in voicemail context "default" +;disallow=all ; need to disallow=all before we can use allow= +;allow=ulaw ; Note: In user sections the order of codecs + ; listed with allow= does NOT matter! +;allow=alaw +;allow=g723.1 ; Asterisk only supports g723.1 pass-thru! +;allow=g729 ; Pass-thru only unless g729 license obtained +;callingpres=allowed_passed_screen ; Set caller ID presentation + ; See README.callingpres for more information + +;[xlite1] +; Turn off silence suppression in X-Lite ("Transmit Silence"=YES)! +; Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed +;type=friend +;regexten=1234 ; When they register, create extension 1234 +;callerid="Jane Smith" <5678> +;host=dynamic ; This device needs to register +;nat=yes ; X-Lite is behind a NAT router +;canreinvite=no ; Typically set to NO if behind NAT +;disallow=all +;allow=gsm ; GSM consumes far less bandwidth than ulaw +;allow=ulaw +;allow=alaw +;mailbox=1234@default,1233@default ; Subscribe to status of multiple mailboxes +;registertrying=yes ; Send a 100 Trying when the device registers. + +;[snom] +;type=friend ; Friends place calls and receive calls +;context=from-sip ; Context for incoming calls from this user +;secret=blah +;subscribecontext=localextensions ; Only allow SUBSCRIBE for local extensions +;language=de ; Use German prompts for this user +;host=dynamic ; This peer register with us +;dtmfmode=inband ; Choices are inband, rfc2833, or info +;defaultip=192.168.0.59 ; IP used until peer registers +;mailbox=1234@context,2345 ; Mailbox(-es) for message waiting indicator +;subscribemwi=yes ; Only send notifications if this phone + ; subscribes for mailbox notification +;vmexten=voicemail ; dialplan extension to reach mailbox + ; sets the Message-Account in the MWI notify message + ; defaults to global vmexten which defaults to "asterisk" +;disallow=all +;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! + + +;[polycom] +;type=friend ; Friends place calls and receive calls +;context=from-sip ; Context for incoming calls from this user +;secret=blahpoly +;host=dynamic ; This peer register with us +;dtmfmode=rfc2833 ; Choices are inband, rfc2833, or info +;defaultuser=polly ; Username to use in INVITE until peer registers +;defaultip=192.168.40.123 + ; Normally you do NOT need to set this parameter +;disallow=all +;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw! +;progressinband=no ; Polycom phones don't work properly with "never" + + +;[pingtel] +;type=friend +;secret=blah +;host=dynamic +;insecure=port ; Allow matching of peer by IP address without + ; matching port number +;insecure=invite ; Do not require authentication of incoming INVITEs +;insecure=port,invite ; (both) +;qualify=1000 ; Consider it down if it's 1 second to reply + ; Helps with NAT session + ; qualify=yes uses default value +;qualifyfreq=60 ; Qualification: How often to check for the + ; host to be up in seconds + ; Set to low value if you use low timeout for + ; NAT of UDP sessions +; +; Call group and Pickup group should be in the range from 0 to 63 +; +;callgroup=1,3-4 ; We are in caller groups 1,3,4 +;pickupgroup=1,3-5 ; We can do call pick-p for call group 1,3,4,5 +;defaultip=192.168.0.60 ; IP address to use if peer has not registered +;deny=0.0.0.0/0.0.0.0 ; ACL: Control access to this account based on IP address +;permit=192.168.0.60/255.255.255.0 + +;[cisco1] +;type=friend +;secret=blah +;qualify=200 ; Qualify peer is no more than 200ms away +;nat=yes ; This phone may be natted + ; Send SIP and RTP to the IP address that packet is + ; received from instead of trusting SIP headers +;host=dynamic ; This device registers with us +;canreinvite=no ; Asterisk by default tries to redirect the + ; RTP media stream (audio) to go directly from + ; the caller to the callee. Some devices do not + ; support this (especially if one of them is + ; behind a NAT). +;defaultip=192.168.0.4 ; IP address to use until registration +;defaultuser=goran ; Username to use when calling this device before registration + ; Normally you do NOT need to set this parameter +;setvar=CUSTID=5678 ; Channel variable to be set for all calls from this device + +;[pre14-asterisk] +;type=friend +;secret=digium +;host=dynamic +;rfc2833compensate=yes ; Compensate for pre-1.4 DTMF transmission from another Asterisk machine. + ; You must have this turned on or DTMF reception will work improperly. diff --git a/trunk/configs/sip_notify.conf.sample b/trunk/configs/sip_notify.conf.sample new file mode 100644 index 000000000..ca7dbe3d0 --- /dev/null +++ b/trunk/configs/sip_notify.conf.sample @@ -0,0 +1,22 @@ +[polycom-check-cfg] +Event=>check-sync +Content-Length=>0 + +; Untested +[sipura-check-cfg] +Event=>resync +Content-Length=>0 + +; Untested +[grandstream-check-cfg] +Event=>sys-control + +; Untested +[cisco-check-cfg] +Event=>check-sync +Content-Length=>0 + +; Tested +[snom-check-cfg] +Event=>check-sync\;reboot=false +Content-Length=>0 diff --git a/trunk/configs/skinny.conf.sample b/trunk/configs/skinny.conf.sample new file mode 100644 index 000000000..26a6db6c7 --- /dev/null +++ b/trunk/configs/skinny.conf.sample @@ -0,0 +1,120 @@ +; +; 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 + +;vmexten=8500 ; Systemwide voicemailmain pilot number + ; It must be in the same context as the calling + ; device/line + +; If regcontext is specified, Asterisk will dynamically create and destroy a +; NoOp priority 1 extension for a given line which registers or unregisters with +; us and have a "regexten=" configuration item. +; Multiple contexts may be specified by separating them with '&'. The +; actual extension is the 'regexten' parameter of the registering line or its +; name if 'regexten' is not provided. If more than one context is provided, +; the context must be specified within regexten by appending the desired +; context after '@'. More than one regexten may be supplied if they are +; separated by '&'. Patterns may be used in regexten. +; +;regcontext=skinnyregistrations + +;allow=all ; see doc/rtp-packetization for framing options +;disallow= + +; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters. +;tos=cs3 ; Sets TOS for signaling packets. +;tos_audio=ef ; Sets TOS for RTP audio packets. +;tos_video=af41 ; Sets TOS for RTP video packets. +;cos=3 ; Sets 802.1p priority for signaling packets. +;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. +;cos_video=4 ; Sets 802.1p priority for RTP video packets. + +;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- +;jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a + ; skinny channel. Defaults to "no". An enabled jitterbuffer will + ; be used only if the sending side can create and the receiving + ; side can not accept jitter. The skinny channel can accept + ; jitter, thus a jitterbuffer on the receive skinny side will be + ; used only if it is forced and enabled. + +;jbforce = no ; Forces the use of a jitterbuffer on the receive side of a skinny + ; channel. Defaults to "no". + +;jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. + +;jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is + ; resynchronized. Useful to improve the quality of the voice, with + ; big jumps in/broken timestamps, usually sent from exotic devices + ; and programs. Defaults to 1000. + +;jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a + ; skinny channel. Two implementations are currently available + ; - "fixed" (with size always equals to jbmaxsize) + ; - "adaptive" (with variable size, actually the new jb of IAX2). + ; Defaults to fixed. + +;jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". +;----------------------------------------------------------------------------------- + + +; Typical config for 12SP+ +;[florian] +;device=SEP00D0BA847E6B +;version=P002G204 ; Thanks critch +;context=did +;canreinvite=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 +;nat=yes +;callerid="George W. Bush" <202-456-1414> +;setvar=CUSTID=5678 ; Channel variable to be set for all calls from this device +;mailbox=500 +;callwaiting=yes +;transfer=yes +;threewaycalling=yes +;context=default +;line => 500 ; Dial(Skinny/500@duba) +;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. + +; Typical config for a 7940 with dual 7914s +;[support] +;device=SEP0007EB463121 +;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 +;line => 100 +;callerid="John Chambers" <408-526-4000> +;context=did +;regexten=110 +;linelabel="John" +;mailbox=110 +;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 diff --git a/trunk/configs/sla.conf.sample b/trunk/configs/sla.conf.sample new file mode 100644 index 000000000..75acc2bc4 --- /dev/null +++ b/trunk/configs/sla.conf.sample @@ -0,0 +1,140 @@ +; +; Configuration for Shared Line Appearances (SLA). +; +; See doc/asterisk.pdf for more information. +; + +; ---- General Options ---------------- +[general] + +;attemptcallerid=no ; Attempt CallerID handling. The default value for this + ; is "no" because CallerID handling with an SLA setup is + ; known to not work properly in some situations. However, + ; feel free to enable it if you would like. If you do, and + ; you find problems, please do not report them. +; ------------------------------------- + + +; ---- Trunk Declarations ------------- +; +;[line1] ; Provide a name for this trunk. + +;type=trunk ; This line is what marks this entry as a trunk. + +;device=Zap/3 ; Map this trunk declaration to a specific device. + ; NOTE: You can not just put any type of channel here. + ; Zap channels can be directly used. IP trunks + ; require some indirect configuration which is + ; described in doc/asterisk.pdf. + +;autocontext=line1 ; This supports automatic generation of the dialplan entries + ; if the autocontext option is used. Each trunk should have + ; a unique context name. Then, in zapata.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=Zap/4 +;autocontext=line2 + +;[line3] +;type=trunk +;device=Zap/3 +;autocontext=line3 + +;[line4] +;type=trunk +;device=Local/disa@line4_outbound ; A Local channel in combination with the Disa + ; application can be used to support IP trunks. + ; See doc/asterisk.pdf on more information on how + ; IP trunks work. +;autocontext=line4 +; -------------------------------------- + + +; ---- Station Declarations ------------ + +;[station1] ; Define a name for this station. + +;type=station ; This line indicates that this entry is a station. + +;device=SIP/station1 ; Each station must be mapped to a device. + +;autocontext=sla_stations ; This supports automatic generation of the dialplan entries if + ; the autocontext option is used. All stations can use the same + ; context without conflict. The device for this station should + ; have its context configured to the same one listed here. + +;ringtimeout=10 ; Set a timeout for how long to allow the station to ring for an + ; incoming call, in seconds. + +;ringdelay=10 ; Set a time for how long to wait before beginning to ring this station + ; once there is an incoming call, in seconds. + +;hold=private ; This option configure hold permissions for this station. Note + ; that if private hold is set in the trunk entry, that will override + ; anything here. However, if a trunk has open hold access, but this + ; station is set to private hold, then the private hold will be in + ; effect. + ; "open" - This means that once this station puts a call + ; on hold, any other station is allowed to retrieve + ; it. This is the default. + ; "private" - This means that once this station puts a + ; call on hold, no other station will be + ; allowed to retrieve the call from hold. + + +;trunk=line1 ; Individually list all of the trunks that will appear on this station. This + ; order is significant. It should be the same order as they appear on the + ; phone. The order here defines the order of preference that the trunks will + ; be used. +;trunk=line2 +;trunk=line3,ringdelay=5 ; A ring delay for the station can also be specified for a specific trunk. + ; If a ring delay is specified both for the whole station and for a specific + ; trunk on a station, the setting for the specific trunk will take priority. + ; This value is in seconds. + +;trunk=line4,ringtimeout=5 ; A ring timeout for the station can also be specified for a specific trunk. + ; If a ring timeout is specified both for the whole station and for a specific + ; trunk on a station, the setting for the specific trunk will take priority. + ; This value is in seconds. + + +;[station](!) ; When there are a lot of stations that are configured the same way, + ; it is convenient to use a configuration template like this so that + ; the common settings stay in one place. +;type=station +;autocontext=sla_stations +;trunk=line1 +;trunk=line2 +;trunk=line3 +;trunk=line4 + +;[station2](station) ; Define a station that uses the configuration from the template "station". +;device=SIP/station2 +; +;[station3](station) +;device=SIP/station3 +; +;[station4](station) +;device=SIP/station4 +; +;[station5](station) +;device=SIP/station5 +; -------------------------------------- + diff --git a/trunk/configs/smdi.conf.sample b/trunk/configs/smdi.conf.sample new file mode 100644 index 000000000..0325eba48 --- /dev/null +++ b/trunk/configs/smdi.conf.sample @@ -0,0 +1,43 @@ +; Asterisk SMDI configuration + +[interfaces] +; Specify serial ports to listen for SMDI messages on below. These will be +; referenced later in zapata.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 diff --git a/trunk/configs/telcordia-1.adsi b/trunk/configs/telcordia-1.adsi new file mode 100644 index 000000000..1486aa95e --- /dev/null +++ b/trunk/configs/telcordia-1.adsi @@ -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 diff --git a/trunk/configs/udptl.conf.sample b/trunk/configs/udptl.conf.sample new file mode 100644 index 000000000..05a38d54e --- /dev/null +++ b/trunk/configs/udptl.conf.sample @@ -0,0 +1,30 @@ +; +; 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 error correction type to be sent +; +T38FaxUdpEC = t38UDPFEC +;T38FaxUdpEC = t38UDPRedundancy +; +; The maximum length of a UDPTL packet +; +T38FaxMaxDatagram = 400 +; +; 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 diff --git a/trunk/configs/unistim.conf.sample b/trunk/configs/unistim.conf.sample new file mode 100644 index 000000000..649737317 --- /dev/null +++ b/trunk/configs/unistim.conf.sample @@ -0,0 +1,76 @@ +; +; chan_unistim configuration file. +; + +[general] +port=5000 ; UDP port +; +; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters. +;tos=cs3 ; Sets TOS for signaling packets. +;tos_audio=ef ; Sets TOS for RTP audio packets. +;cos=3 ; Sets 802.1p priority for signaling packets. +;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. +; +;keepalive=120 ; in seconds, default = 120 +;public_ip= ; if asterisk is behind a nat, specify your public IP +;autoprovisioning=no ; Allow undeclared phones to register an extension. See README for important + ; informations. no (default), yes, tn. +;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- +; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a + ; SIP channel. Defaults to "no". An enabled jitterbuffer will + ; be used only if the sending side can create and the receiving + ; side can not accept jitter. The SIP channel can accept jitter, + ; thus a jitterbuffer on the receive SIP side will be used only + ; if it is forced and enabled. + +; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a SIP + ; channel. Defaults to "no". + +; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. + +; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is + ; resynchronized. Useful to improve the quality of the voice, with + ; big jumps in/broken timestamps, usually sent from exotic devices + ; and programs. Defaults to 1000. + +; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP + ; channel. Two implementations are currently available - "fixed" + ; (with size always equals to jbmaxsize) and "adaptive" (with + ; variable size, actually the new jb of IAX2). Defaults to fixed. + +; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". +;----------------------------------------------------------------------------------- + + +;[black] ; name of the device +;device=000ae4012345 ; mac address of the phone +;rtp_port=10000 ; RTP port used by the phone, default = 10000. RTCP = rtp_port+1 +;rtp_method=0 ; If you don't have sound, you can try 1, 2 or 3, default = 0 +;status_method=0 ; If you don't see status text, try 1, default = 0 +;titledefault=Asterisk ; default = "TimeZone (your time zone)". 12 characters max +;maintext0="you can insert" ; default = "Welcome", 24 characters max +;maintext1="a custom text" ; default = the name of the device, 24 characters max +;maintext2="(main page)" ; default = the public IP of the phone, 24 characters max +;dateformat=1 ; 0 = month/day, 1 (default) = day/month +;timeformat=1 ; 0 = 0:00am ; 1 (default) = 0h00, 2 = 0:00 +;contrast=8 ; define the contrast of the LCD. From 0 to 15. Default = 8 +;country=us ; country (ccTLD) for dial tone frequency. See README, default = us +;ringvolume=2 ; ring volume : 0,1,2,3, can be overrided by Dial(), default = 2 +;ringstyle=3 ; ring style : 0 to 7, can be overrided by Dial(), default = 3 +;callhistory=1 ; 0 = disable, 1 = enable call history, default = 1 +;callerid="Customer Support" <555-234-5678> +;context=default ; context, default="default" +;mailbox=1234 ; Specify the mailbox number. Used by Message Waiting Indication +;linelabel="Support" ; Softkey label for the next line=> entry, 9 char max. +;extension=none ; Add an extension into the dialplan. Only valid in context specified previously. + ; none=don't add (default), ask=prompt user, line=use the line number +;line => 100 ; Only one line by device is currently supported. + ; Beware ! only bookmark and softkey entries are allowed after line=> +;bookmark=Hans C.@123 ; Use a softkey to dial 123. Name : 9 char max +;bookmark=Mailbox@011@54 ; 54 shows a mailbox icon. See #define FAV_ICON_ for other values (32 to 63) +;bookmark=Test@*@USTM/violet ; Display an icon if violet is connected (dynamic), only for unistim device +;bookmark=4@Pager@54321@51 ; Display a pager icon and dial 54321 when softkey 4 is pressed + +;[violet] +;device=006038abcdef +;line => 102 diff --git a/trunk/configs/usbradio.conf.sample b/trunk/configs/usbradio.conf.sample new file mode 100644 index 000000000..5ba9815ca --- /dev/null +++ b/trunk/configs/usbradio.conf.sample @@ -0,0 +1,54 @@ +[general] + +; General config options, with default values shown. +; You should use one section per device, with [general] being used +; for the device. + +; debug = 0x0 ; misc debug flags, default is 0 + +; Set the device to use for I/O +; devicenum = 0 +; Set hardware type here +; hdwtype=0 ; 0=limey, 1=sph + +; rxboost=0 ; no rx gain boost +; rxctcssrelax=1 ; reduce talkoff from radios w/o CTCSS Tx HPF +; rxctcssfreq=100.0 ; rx ctcss freq in floating point. must be in table +; txctcssfreq=100.0 ; tx ctcss freq, any frequency permitted + +; carrierfrom=dsp ;no,usb,usbinvert,dsp,vox +; ctcssfrom=dsp ;no,usb,dsp + +; rxdemod=flat ; input type from radio: no,speaker,flat +; txprelim=yes ; output is pre-emphasised and limited +; txtoctype=no ; no,phase,notone + +; txmixa=composite ;no,voice,tone,composite,auxvoice +; txmixb=no ;no,voice,tone,composite,auxvoice + +; invertptt=0 + +;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- +; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an + ; USBRADIO channel. Defaults to "no". An enabled jitterbuffer will + ; be used only if the sending side can create and the receiving + ; side can not accept jitter. The USBRADIO channel can't accept jitter, + ; thus an enabled jitterbuffer on the receive USBRADIO side will always + ; be used if the sending side can create jitter. + +; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. + +; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is + ; resynchronized. Useful to improve the quality of the voice, with + ; big jumps in/broken timestamps, usualy sent from exotic devices + ; and programs. Defaults to 1000. + +; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of an USBRADIO + ; channel. Two implementations are currenlty available - "fixed" + ; (with size always equals to jbmax-size) and "adaptive" (with + ; variable size, actually the new jb of IAX2). Defaults to fixed. + +; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". +;----------------------------------------------------------------------------------- + + diff --git a/trunk/configs/users.conf.sample b/trunk/configs/users.conf.sample new file mode 100644 index 000000000..2a816d7e4 --- /dev/null +++ b/trunk/configs/users.conf.sample @@ -0,0 +1,79 @@ +; +; 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 +; +; 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 + + +;[6000] +;fullname = Joe User +;email = joe@foo.bar +;secret = 1234 +;zapchan = 1 +;hasvoicemail = yes +;vmsecret = 1234 +;hassip = yes +;hasiax = no +;hash323 = no +;hasmanager = no +;callwaiting = no +;context = international diff --git a/trunk/configs/voicemail.conf.sample b/trunk/configs/voicemail.conf.sample new file mode 100644 index 000000000..ce403fe8e --- /dev/null +++ b/trunk/configs/voicemail.conf.sample @@ -0,0 +1,307 @@ +; +; Voicemail Configuration +; + +; +; NOTE: Asterisk has to edit this file to change a user's password. This does +; not currently work with the "#include <file>" directive for Asterisk +; configuration files, nor when using realtime static configuration. +; Do not use them with this configuration file. +; + +[general] +; Formats for writing Voicemail. Note that when using IMAP storage for +; voicemail, only the first format specified will be used. +;format=g723sf|wav49|wav +format=wav49|gsm|wav +; +; WARNING: +; If you change the list of formats that you record voicemail in +; when you have mailboxes that contain messages, you _MUST_ absolutely +; manually go through those mailboxes and convert/delete/add the +; the message files so that they appear to have been stored using +; your new format list. If you don't do this, very unpleasant +; things may happen to your users while they are retrieving and +; manipulating their voicemail. +; +; In other words: don't change the format list on a production system +; unless you are _VERY_ sure that you know what you are doing and are +; prepared for the consequences. +; +; Who the e-mail notification should appear to come from +serveremail=asterisk +;serveremail=asterisk@linux-support.net +; Should the email contain the voicemail as an attachment +attach=yes +; Maximum number of messages per folder. If not specified, a default value +; (100) is used. Maximum value for this option is 9999. +;maxmsg=100 +; Maximum length of a voicemail message in seconds +;maxsecs=180 +; Minimum length of a voicemail message in seconds for the message to be kept +; The default is no minimum. +;minsecs=3 +; Maximum length of greetings in seconds +;maxgreet=60 +; How many milliseconds to skip forward/back when rew/ff in message playback +skipms=3000 +; How many seconds of silence before we end the recording +maxsilence=10 +; Silence threshold (what we consider silence: the lower, the more sensitive) +silencethreshold=128 +; Max number of failed login attempts +maxlogins=3 +; +; Move heard messages to the 'Old' folder automagically. Defaults to on. +;moveheard=yes +; +; User context is where entries from users.conf are registered. The +; default value is 'default' +; +;userscontext=default +; +; If you need to have an external program, i.e. /usr/bin/myapp +; called when a voicemail is left, delivered, or your voicemailbox +; is checked, uncomment this. +;externnotify=/usr/bin/myapp + +; If you would also like to enable SMDI notification then set smdienable to yes. +; You will also need to make sure smdiport is set to a valid port as specified in +; smdi.conf. +;smdienable=yes +;smdiport=/dev/ttyS0 + +; If you need to have an external program, i.e. /usr/bin/myapp +; called when a voicemail password is changed, uncomment this: +; Note: If this is set, the password will NOT be changed in voicemail.conf +; If you would like to also change the password in voicemail.conf, use +; the externpassnotify option below instead. +;externpass=/usr/bin/myapp +;externpassnotify=/usr/bin/myapp +; For the directory, you can override the intro file if you want +;directoryintro=dir-intro +; The character set for voicemail messages can be specified here +;charset=ISO-8859-1 +; The ADSI feature descriptor number to download to +;adsifdn=0000000F +; The ADSI security lock code +;adsisec=9BDBF7AC +; The ADSI voicemail application version number. +;adsiver=1 +; Skip the "[PBX]:" string from the message title +;pbxskip=yes +; Change the From: string +;fromstring=The Asterisk PBX +; Permit finding entries for forward/compose from the directory +;usedirectory=yes +; Voicemail can be stored in a database using the ODBC driver. +; The value of odbcstorage is the database connection configured +; in res_odbc.conf. +;odbcstorage=asterisk +; The default table for ODBC voicemail storage is voicemessages. +;odbctable=voicemessages +; +; Change the from, body and/or subject, variables: +; VM_NAME, VM_DUR, VM_MSGNUM, VM_MAILBOX, VM_CALLERID, VM_CIDNUM, +; VM_CIDNAME, VM_DATE +; +; Note: The emailbody config row can only be up to 512 characters due to a +; limitation in the Asterisk configuration subsystem. +;emailsubject=[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX} +; The following definition is very close to the default, but the default shows +; just the CIDNAME, if it is not null, otherwise just the CIDNUM, or "an unknown +; caller", if they are both null. +;emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just left a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n +; +; You can also change the Pager From: string, the pager body and/or subject. +; The above defined variables also can be used here +;pagerfromstring=The Asterisk PBX +;pagersubject=New VM +;pagerbody=New ${VM_DUR} long msg in box ${VM_MAILBOX}\nfrom ${VM_CALLERID}, on ${VM_DATE} +; +; Set the date format on outgoing mails. Valid arguments can be found on the +; strftime(3) man page +; +; Default +emaildateformat=%A, %B %d, %Y at %r +; 24h date format +;emaildateformat=%A, %d %B %Y at %H:%M:%S +; +; You can override the default program to send e-mail if you wish, too +; +;mailcmd=/usr/sbin/sendmail -t +; +;pollmailboxes=no ; If mailboxes are changed anywhere outside of app_voicemail, +; ; then this option must be enabled for MWI to work. This +; ; enables polling mailboxes for changes. Normally, it will +; ; expect that changes are only made when someone called in +; ; to one of the voicemail applications. +; ; Examples of situations that would require this option are +; ; web interfaces to voicemail or an email client in the case +; ; of using IMAP storage. +; +;pollfreq=30 ; If the "pollmailboxes" option is enabled, this option +; ; sets the polling frequency. The default is once every +; ; 30 seconds. +; If using IMAP storage, specify whether voicemail greetings should be stored +; via IMAP. If no, then greetings are stored as if IMAP storage were not enabled +;imapgreetings=no +; If imapgreetings=yes, then specify which folder to store your greetings in. If +; you do not specify a folder, then INBOX will be used +;greetingsfolder=INBOX +; +; 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 +; +; +; +; Each mailbox is listed in the form <mailbox>=<password>,<name>,<email>,<pager_email>,<options> +; if the e-mail is specified, a message will be sent when a message is +; received, to the given mailbox. If pager is specified, a message will be +; sent there as well. If the password is prefixed by '-', then it is +; considered to be unchangeable. +; +; Advanced options example is extension 4069 +; NOTE: All options can be expressed globally in the general section, and +; overridden in the per-mailbox settings, unless listed otherwise. +; +; tz=central ; Timezone from zonemessages below. Irrelevant if envelope=no. +; attach=yes ; Attach the voicemail to the notification email *NOT* the pager email +; attachfmt=wav49 ; Which format to attach to the email. Normally this is the + ; first format specified in the format parameter above, but this + ; option lets you customize the format sent to particular mailboxes. + ; Useful if Windows users want wav49, but Linux users want gsm. + ; [per-mailbox only] +; saycid=yes ; Say the caller id information before the message. If not described, + ; or set to no, it will be in the envelope +; cidinternalcontexts=intern ; Internal Context for Name Playback instead of + ; extension digits when saying caller id. +; sayduration=no ; Turn on/off the duration information before the message. [ON by default] +; saydurationm=2 ; Specify the minimum duration to say. Default is 2 minutes +; dialout=fromvm ; Context to dial out from [option 4 from mailbox's advanced menu]. + ; If not specified, option 4 will not be listed and dialing out + ; from within VoiceMailMain() will not be permitted. +sendvoicemail=yes ; Allow the user to compose and send a voicemail while inside + ; VoiceMailMain() [option 5 from mailbox's advanced menu]. + ; If set to 'no', option 5 will not be listed. +; searchcontexts=yes ; Current default behavior is to search only the default context + ; if one is not specified. The older behavior was to search all contexts. + ; This option restores the old behavior [DEFAULT=no] +; callback=fromvm ; Context to call back from + ; if not listed, calling the sender back will not be permitted +; review=yes ; Allow sender to review/rerecord their message before saving it [OFF by default +; operator=yes ; Allow sender to hit 0 before/after/during leaving a voicemail to + ; reach an operator [OFF by default] +; envelope=no ; Turn on/off envelope playback before message playback. [ON by default] + ; This does NOT affect option 3,3 from the advanced options menu +; delete=yes ; After notification, the voicemail is deleted from the server. [per-mailbox only] + ; This is intended for use with users who wish to receive their + ; voicemail ONLY by email. Note: "deletevoicemail" is provided as an + ; equivalent option for Realtime configuration. +; volgain=0.0 ; Emails bearing the voicemail may arrive in a volume too + ; quiet to be heard. This parameter allows you to specify how + ; much gain to add to the message when sending a voicemail. + ; NOTE: sox must be installed for this option to work. +; nextaftercmd=yes ; Skips to the next message after hitting 7 or 9 to delete/save current message. + ; [global option only at this time] +; forcename=yes ; Forces a new user to record their name. A new user is + ; determined by the password being the same as + ; the mailbox number. The default is "no". +; forcegreetings=no ; This is the same as forcename, except for recording + ; greetings. The default is "no". +; hidefromdir=yes ; Hide this mailbox from the directory produced by app_directory + ; The default is "no". +; tempgreetwarn=yes ; Remind the user that their temporary greeting is set +; vm-password=custom_sound + ; Customize which sound file is used instead of the default + ; prompt that says: "password" +; vm-newpassword=custom_sound + ; Customize which sound file is used instead of the default + ; prompt that says: "Please enter your new password followed by + ; the pound key." +; vm-passchanged=custom_sound + ; Customize which sound file is used instead of the default + ; prompt that says: "Your password has been changed." +; vm-reenterpassword=custom_sound + ; Customize which sound file is used instead of the default + ; prompt that says: "Please re-enter your password followed by + ; the pound key" +; vm-mismatch=custom_sound + ; Customize which sound file is used instead of the default + ; prompt that says: "The passwords you entered and re-entered + ; did not match. Please try again." +; listen-control-forward-key=# ; Customize the key that fast-forwards message playback +; listen-control-reverse-key=* ; Customize the key that rewinds message playback +; listen-control-pause-key=0 ; Customize the key that pauses/unpauses message playback +; listen-control-restart-key=2 ; Customize the key that restarts message playback +; listen-control-stop-key=13456789 ; Customize the keys that interrupt message playback, probably all keys not set above + +; Maximum number of messages allowed in the 'Deleted' folder. If set to 0 +; or no then no deleted messages will be moved. If non-zero (max 9999) then up +; to this number of messages will be automagically saved when they are +; 'deleted' on a FIFO basis. +; defaults to being off +; backupdeleted=100 + + +[zonemessages] +eastern=America/New_York|'vm-received' Q 'digits/at' IMp +central=America/Chicago|'vm-received' Q 'digits/at' IMp +central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours' +military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p' +european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM + + + +[default] +; Define maximum number of messages per folder for a particular context. +;maxmsg=50 + +1234 => 4242,Example Mailbox,root@localhost +;4200 => 9855,Mark Spencer,markster@linux-support.net,mypager@digium.com,attach=no|serveremail=myaddy@digium.com|tz=central|maxmsg=10 +;4300 => 3456,Ben Rigas,ben@american-computer.net +;4310 => -5432,Sales,sales@marko.net +;4069 => 6522,Matt Brooks,matt@marko.net,,|tz=central|attach=yes|saycid=yes|dialout=fromvm|callback=fromvm|review=yes|operator=yes|envelope=yes|moveheard=yes|sayduration=yes|saydurationm=1 +;4073 => 1099,Bianca Paige,bianca@biancapaige.com,,delete=1 +;4110 => 3443,Rob Flynn,rflynn@blueridge.net +;4235 => 1234,Jim Holmes,jim@astricon.ips,,Tz=european + + +; +; Mailboxes may be organized into multiple contexts for +; voicemail virtualhosting +; + +[other] +;The intro can be customized on a per-context basis +;directoryintro=dir-company2 +1234 => 5678,Company2 User,root@localhost diff --git a/trunk/configs/vpb.conf.sample b/trunk/configs/vpb.conf.sample new file mode 100644 index 000000000..4a9b0b36a --- /dev/null +++ b/trunk/configs/vpb.conf.sample @@ -0,0 +1,108 @@ +; +; V6PCI/V12PCI config file for VoiceTronix Hardware +; +; Options for [general] section +; +; type = v12pci|v6pci|v4pci +; cards = number of cards +; To use Asterisk indication tones +; indication = 1 +; none,-24db,-18db only for use with OpenLine4 +; ecsuppthres = 0|2048|4096 +; Inter Digit Delay timeout for when collecting DTMF tones for dialling +; from a Station port, in ms +; dtmfidd = 3000 +; To use Asterisk DTMF detection +; ast-dtmf-det=1 +; Used with ast-dtmf-det +; relaxdtmf=1 +; When a native bridge occurs between 2 vpb channels, it will only break +; the connection for '#' and '*' +; break-for-dtmf=no +; Set the maximum period between received rings, default 4000ms +; timer_period_ring=4000 +; +; Options for [interface] section +; board = board_number (1, 2, 3, ...) +; channel = channel_number (1,2,3...) +; mode = fxo|immediate|dialtone -- for type of line and line handling +; context = starting context +; echocancel = on|off (on by default of v4pci, off by default for others) +; callerid = on|off|v23|bell (on => to collect caller ID if available between 1st/2nd rings using vpb functions) +; (v23|bell => collect caller ID using asterisk functions) +; Or for use with FXS channels a '"name" <location>' format can be used to set the channels CID +; +; UseLoopDrop = 0|1 (enables the use of Loop Drop detection, on by default in +; some cases spurious loop-drops can cause unexpected +; hangup detection) +; +; Gain settings +; txgain => Transmit Software Gain (-12 => 12) +; rxgain => Receive Software Gain (-12 => 12) +; txhwgain => Transmit hardware gain (-12 => 12) +; rxhwgain => Receive Hardware gain (-12 => 12) +; +; These are advanced settings and only mentioned for completeness. +; bal1 => Hybrid balance codec register 1 +; bal2 => Hybrid balance codec register 2 +; bal3 => Hybrid balance codec register 3 +; +; Dial translations - if you want a pause or hook-flash in your dial string +; you can use "w" for pause (wait) or "f" for "hook-flash", eg: +; exten => _9XXX,1,Dial(vpb/g1/ww${EXTEN:${TRUNKMSD}}) +; +; + +[general] +type = v12pci +;type = v6pci +;type = v4pci +cards = 1 + +[interfaces] + +board = 0 +echocancel = on + + +; For OpenLine4 cards +;context = demo +;mode = fxo +;channel = 0 +;channel = 1 +;channel = 2 +;channel = 3 + +; For OpenSwith12 with jumpers at factory default +context = demo +mode = fxo +channel = 8 +channel = 9 +channel = 10 +channel = 11 + +context = local +mode = dialtone +channel = 0 +channel = 1 +channel = 2 +channel = 3 +channel = 4 +channel = 5 +channel = 6 +channel = 7 +; +; For OpenSwitch6 +; Note that V6PCI channel numbers start at 7! +;context = demo +;mode = fxo +;channel = 6 +;channel = 7 + +;mode = dialtone +;channel = 8 +;channel = 9 +;channel = 10 +;channel = 11 + + diff --git a/trunk/configs/zapata.conf.sample b/trunk/configs/zapata.conf.sample new file mode 100644 index 000000000..b2146b6b5 --- /dev/null +++ b/trunk/configs/zapata.conf.sample @@ -0,0 +1,909 @@ +; +; Zapata telephony interface +; +; Configuration file +; +; You need to restart Asterisk to re-configure the Zap channel +; CLI> reload chan_zap.so +; will reload the configuration file, +; but not all configuration options are +; re-configured during a reload (signalling, as well as +; PRI and SS7-related settings cannot be changed on a +; reload. +; +; This file documents many configuration variables. Normally unless you +; know what a variable means or that it should be changed, there's no +; reason to unrem lines. +; +; remmed-out examples below (those lines that begin with a ';' but no +; space afterwards) typically show a value that is not the defauult value, +; but would make sense under cetain circumstances. The default values +; are usually sane. Thus you should typically not touch them unless you +; know what they mean or you know you should change them. + + +[trunkgroups] +; +; Trunk groups are used for NFAS or GR-303 connections. +; +; Group: Defines a trunk group. +; trunkgroup => <trunkgroup>,<dchannel>[,<backup1>...] +; +; trunkgroup is the numerical trunk group to create +; dchannel is the zap channel which will have the +; d-channel for the trunk. +; backup1 is an optional list of backup d-channels. +; +;trunkgroup => 1,24,48 +;trunkgroup => 1,24 +; +; Spanmap: Associates a span with a trunk group +; spanmap => <zapspan>,<trunkgroup>[,<logicalspan>] +; +; zapspan is the zap span number to associate +; trunkgroup is the trunkgroup (specified above) for the mapping +; logicalspan is the logical span number within the trunk group to use. +; if unspecified, no logical span number is used. +; +;spanmap => 1,1,1 +;spanmap => 2,1,2 +;spanmap => 3,1,3 +;spanmap => 4,1,4 + +[channels] +; +; Default language +; +;language=en +; +; Context for calls. Defaults to 'default' +; +;context=incoming +; +; Switchtype: Only used for PRI. +; +; national: National ISDN 2 (default) +; dms100: Nortel DMS100 +; 4ess: AT&T 4ESS +; 5ess: Lucent 5ESS +; euroisdn: EuroISDN (common in Europe) +; ni1: Old National ISDN 1 +; qsig: Q.SIG +; +;switchtype=euroisdn +; +; Some switches (AT&T especially) require network specific facility IE +; supported values are currently 'none', 'sdn', 'megacom', 'tollfreemegacom', 'accunet' +; +; nsf cannot be changed on a reload. +; +;nsf=none +; +; PRI Dialplan: Only RARELY used for PRI. +; PRI Local Dialplan: Only RARELY used for PRI (sets the calling number's +; numbering plan) +; pridialplan and prilocaldialplan cannot be changed on a reload. +; +; unknown: Unknown +; private: Private ISDN +; local: Local ISDN +; national: National ISDN +; international: International ISDN +; dynamic: Dynamically selects the appropriate dialplan +; redundant: Same as dynamic, except that the underlying number is not +; changed (not common) +; +;pridialplan=national +;prilocaldialplan=national +; +; pridialplan may be also set at dialtime, by prefixing the dialled number with +; one of the following letters: +; U - Unknown +; I - International +; N - National +; L - Local (Net Specific) +; S - Subscriber +; V - Abbreviated +; R - Reserved (should probably never be used but is included for completeness) +; +; Additionally, you may also set the following NPI bits (also by prefixing the +; dialled string with one of the following letters): +; u - Unknown +; e - E.163/E.164 (ISDN/telephony) +; x - X.121 (Data) +; f - F.69 (Telex) +; n - National +; p - Private +; r - Reserved (should probably never be used but is included for completeness) +; +; You may also set the prilocaldialplan in the same way, but by prefixing the +; Caller*ID Number, rather than the dialled number. Please note that telcos +; which require this kind of additional manipulation of the TON/NPI are *rare*. +; Most telco PRIs will work fine simply by setting pridialplan to unknown or +; dynamic. +; +; +; PRI caller ID prefixes based on the given TON/NPI (dialplan) +; This is especially needed for EuroISDN E1-PRIs +; +; None of the prefix settings can be changed on reload. +; +; sample 1 for Germany +;internationalprefix = 00 +;nationalprefix = 0 +;localprefix = 0711 +;privateprefix = 07115678 +;unknownprefix = +; +; sample 2 for Germany +;internationalprefix = + +;nationalprefix = +49 +;localprefix = +49711 +;privateprefix = +497115678 +;unknownprefix = +; +; PRI resetinterval: sets the time in seconds between restart of unused +; B channels; defaults to 'never'. +; +;resetinterval = 3600 +; +; Overlap dialing mode (sending overlap digits) +; Cannot be changed on a reload. +; +;overlapdial=yes +; +; PRI Out of band indications. +; Enable this to report Busy and Congestion on a PRI using out-of-band +; notification. Inband indication, as used by Asterisk doesn't seem to work +; with all telcos. +; +; outofband: Signal Busy/Congestion out of band with RELEASE/DISCONNECT +; inband: Signal Busy/Congestion using in-band tones (default) +; +; priindication cannot be changed on a reload. +; +;priindication = outofband +; +; If you need to override the existing channels selection routine and force all +; PRI channels to be marked as exclusively selected, set this to yes. +; +; priexclusive cannot be changed on a reload. +; +;priexclusive = yes +; +; ISDN Timers +; All of the ISDN timers and counters that are used are configurable. Specify +; the timer name, and its value (in ms for timers). +; K: Layer 2 max number of outstanding unacknowledged I frames (default 7) +; N200: Layer 2 max number of retransmissions of a frame (default 3) +; T200: Layer 2 max time before retransmission of a frame (default 1000 ms) +; T203: Layer 2 max time without frames being exchanged (default 10000 ms) +; T305: Wait for DISCONNECT acknowledge (default 30000 ms) +; T308: Wait for RELEASE acknowledge (default 4000 ms) +; T309: Maintain active calls on Layer 2 disconnection (default -1, +; Asterisk clears calls) +; EuroISDN: 6000 to 12000 ms, according to (N200 + 1) x T200 + 2s +; May vary in other ISDN standards (Q.931 1993 : 90000 ms) +; T313: Wait for CONNECT acknowledge, CPE side only (default 3000 ms) +; +;pritimer => t200,1000 +;pritimer => t313,4000 +; +; To enable transmission of facility-based ISDN supplementary services (such +; as caller name from CPE over facility), enable this option. +; Cannot be changed on a reload. +; +;facilityenable = yes +; +; pritimer cannot be changed on a reload. +; +; Signalling method. The default is "auto". Valid values: +; auto: Use the current value from Zaptel. +; em: E & M +; em_e1: E & M E1 +; em_w: E & M Wink +; featd: Feature Group D (The fake, Adtran style, DTMF) +; featdmf: Feature Group D (The real thing, MF (domestic, US)) +; featdmf_ta: Feature Group D (The real thing, MF (domestic, US)) through +; a Tandem Access point +; featb: Feature Group B (MF (domestic, US)) +; fgccama Feature Group C-CAMA (DP DNIS, MF ANI) +; fgccamamf Feature Group C-CAMA MF (MF DNIS, MF ANI) +; fxs_ls: FXS (Loop Start) +; fxs_gs: FXS (Ground Start) +; fxs_ks: FXS (Kewl Start) +; fxo_ls: FXO (Loop Start) +; fxo_gs: FXO (Ground Start) +; fxo_ks: FXO (Kewl Start) +; pri_cpe: PRI signalling, CPE side +; pri_net: PRI signalling, Network side +; gr303fxoks_net: GR-303 Signalling, FXO Loopstart, Network side +; gr303fxsks_cpe: GR-303 Signalling, FXS Loopstart, CPE side +; sf: SF (Inband Tone) Signalling +; sf_w: SF Wink +; sf_featd: SF Feature Group D (The fake, Adtran style, DTMF) +; sf_featdmf: SF Feature Group D (The real thing, MF (domestic, US)) +; sf_featb: SF Feature Group B (MF (domestic, US)) +; e911: E911 (MF) style signalling +; ss7: Signalling System 7 +; +; The following are used for Radio interfaces: +; fxs_rx: Receive audio/COR on an FXS kewlstart interface (FXO at the +; channel bank) +; fxs_tx: Transmit audio/PTT on an FXS loopstart interface (FXO at the +; channel bank) +; fxo_rx: Receive audio/COR on an FXO loopstart interface (FXS at the +; channel bank) +; fxo_tx: Transmit audio/PTT on an FXO groundstart interface (FXS at +; the channel bank) +; em_rx: Receive audio/COR on an E&M interface (1-way) +; em_tx: Transmit audio/PTT on an E&M interface (1-way) +; em_txrx: Receive audio/COR AND Transmit audio/PTT on an E&M interface +; (2-way) +; em_rxtx: Same as em_txrx (for our dyslexic friends) +; sf_rx: Receive audio/COR on an SF interface (1-way) +; sf_tx: Transmit audio/PTT on an SF interface (1-way) +; sf_txrx: Receive audio/COR AND Transmit audio/PTT on an SF interface +; (2-way) +; sf_rxtx: Same as sf_txrx (for our dyslexic friends) +; ss7: Signalling System 7 +; +; signalling of a channel can not be changed on a reload. +; +;signalling=fxo_ls +; +; If you have an outbound signalling format that is different from format +; specified above (but compatible), you can specify outbound signalling format, +; (see below). The 'signalling' format specified will be the inbound signalling +; format. If you only specify 'signalling', then it will be the format for +; both inbound and outbound. +; +; outsignalling can only be one of: +; em, em_e1, em_w, sf, sf_w, sf_featd, sf_featdmf, sf_featb, featd, +; featdmf, featdmf_ta, e911, fgccama, fgccamamf +; +; outsignalling cannot be changed on a reload. +; +;signalling=featdmf +; +;outsignalling=featb +; +; For Feature Group D Tandem access, to set the default CIC and OZZ use these +; parameters (Will not be updated on reload): +; +;defaultozz=0000 +;defaultcic=303 +; +; A variety of timing parameters can be specified as well +; The default values for those are "-1", which is to use the +; compile-time defaults of the Zaptel kernel modules. The timing +; parameters, (with the standard default from Zaptel): +; +; prewink: Pre-wink time (default 50ms) +; preflash: Pre-flash time (default 50ms) +; wink: Wink time (default 150ms) +; flash: Flash time (default 750ms) +; start: Start time (default 1500ms) +; rxwink: Receiver wink time (default 300ms) +; rxflash: Receiver flashtime (default 1250ms) +; debounce: Debounce timing (default 600ms) +; +; None of them will update on a reload. +; +; How long generated tones (DTMF and MF) will be played on the channel +; (in milliseconds). +; +; This is a global, rather than a per-channel setting. It will not be +; updated on a reload. +; +;toneduration=100 +; +; Whether or not to do distinctive ring detection on FXO lines: +; +;usedistinctiveringdetection=yes +; +; enable dring detection after caller ID for those countries like Australia +; where the ring cadence is changed *after* the caller ID spill: +; +;distinctiveringaftercid=yes +; +; Whether or not to use caller ID: +; +usecallerid=yes +; +; Hide the name part and leave just the number part of the caller ID +; string. Only applies to PRI channels. +;hidecalleridname=yes +; +; Type of caller ID signalling in use +; bell = bell202 as used in US (default) +; v23 = v23 as used in the UK +; v23_jp = v23 as used in Japan +; dtmf = DTMF as used in Denmark, Sweden and Netherlands +; smdi = Use SMDI for caller ID. Requires SMDI to be enabled (usesmdi). +; +;cidsignalling=v23 +; +; What signals the start of caller ID +; ring = a ring signals the start (default) +; polarity = polarity reversal signals the start +; polarity_IN = polarity reversal signals the start, for India, +; for dtmf dialtone detection; using DTMF. +; (see doc/India-CID.txt) +; +;cidstart=polarity +; +; Whether or not to hide outgoing caller ID (Override with *67 or *82) +; (If your dialplan doesn't catch it) +; +;hidecallerid=yes +; +; The following option enables receiving MWI on FXO lines. The default +; value is no. When this is enabled, and MWI notification indicates on or off, +; the script specified by the mwimonitornotify option is executed. Also, an +; internal Asterisk MWI event will be generated so that any other part of +; Asterisk that cares about MWI state changes will get notified, just as if +; the state change came from app_voicemail. The energy level that must be seen +; before starting the MWI detection process can be set with 'mwilevel'. +; +;mwimonitor=no +;mwilevel=512 +; +; This option is used in conjunction with mwimonitor. This will get executed +; when incoming MWI state changes. The script is passed 2 arguments. The +; first is the corresponding mailbox, and the second is 1 or 0, indicating if +; there are messages waiting or not. +; +;mwimonitornotify=/usr/local/bin/zapnotify.sh +; +; Whether or not to enable call waiting on internal extensions +; With this set to 'yes', busy extensions will hear the call-waiting +; tone, and can use hook-flash to switch between callers. The Dial() +; app will not return the "BUSY" result for extensions. +; +callwaiting=yes +; +; Whether or not restrict outgoing caller ID (will be sent as ANI only, not +; available for the user) +; Mostly use with FXS ports +; +;restrictcid=no +; +; Whether or not use the caller ID presentation for the outgoing call that the +; calling switch is sending. +; See README.callingpres. FIXME: file no longer exists. +; +usecallingpres=yes +; +; Some countries (UK) have ring tones with different ring tones (ring-ring), +; which means the caller ID needs to be set later on, and not just after +; the first ring, as per the default (1). +; +;sendcalleridafter = 2 +; +; +; Support caller ID on Call Waiting +; +callwaitingcallerid=yes +; +; Support three-way calling +; +threewaycalling=yes +; +; Support flash-hook call transfer (requires three way calling) +; Also enables call parking (overrides the 'canpark' parameter) +; +transfer=yes +; +; Allow call parking +; ('canpark=no' is overridden by 'transfer=yes') +; +canpark=yes +; +; Support call forward variable +; +cancallforward=yes +; +; Whether or not to support Call Return (*69, if your dialplan doesn't +; catch this first) +; +callreturn=yes +; +; Stutter dialtone support: If a mailbox is specified without a voicemail +; context, then when voicemail is received in a mailbox in the default +; voicemail context in voicemail.conf, taking the phone off hook will cause a +; stutter dialtone instead of a normal one. +; +; If a mailbox is specified *with* a voicemail context, the same will result +; if voicemail received in mailbox in the specified voicemail context. +; +; for default voicemail context, the example below is fine: +; +;mailbox=1234 +; +; for any other voicemail context, the following will produce the stutter tone: +; +;mailbox=1234@context +; +; Enable echo cancellation +; Use either "yes", "no", or a power of two from 32 to 256 if you wish to +; actually set the number of taps of cancellation. +; +; Note that when setting the number of taps, the number 256 does not translate +; to 256 ms of echo cancellation. echocancel=256 means 256 / 8 = 32 ms. +; +; Note that if any of your Zaptel cards have hardware echo cancellers, +; then this setting only turns them on and off; numeric settings will +; be treated as "yes". There are no special settings required for +; hardware echo cancellers; when present and enabled in their kernel +; modules, they take precedence over the software echo canceller compiled +; into Zaptel automatically. +; +; +echocancel=yes +; +; As of Zaptel 1.4.8, some Zaptel echo cancellers (software and hardware) +; support adjustable parameters; these parameters can be supplied as +; additional options to the 'echocancel' setting. Note that Asterisk +; does not attempt to validate the parameters or their values, so if you +; supply an invalid parameter you will not know the specific reason it +; failed without checking the kernel message log for the error(s) +; put there by Zaptel. +; +;echocancel=128,param1=32,param2=0,param3=14 +; +; Generally, it is not necessary (and in fact undesirable) to echo cancel when +; the circuit path is entirely TDM. You may, however, change this behavior +; by enabling the echo canceller during pure TDM bridging below. +; +echocancelwhenbridged=yes +; +; In some cases, the echo canceller doesn't train quickly enough and there +; is echo at the beginning of the call. Enabling echo training will cause +; Zaptel to briefly mute the channel, send an impulse, and use the impulse +; response to pre-train the echo canceller so it can start out with a much +; closer idea of the actual echo. Value may be "yes", "no", or a number of +; milliseconds to delay before training (default = 400) +; +; WARNING: In some cases this option can make echo worse! If you are +; trying to debug an echo problem, it is worth checking to see if your echo +; is better with the option set to yes or no. Use whatever setting gives +; the best results. +; +; Note that these parameters do not apply to hardware echo cancellers. +; +;echotraining=yes +;echotraining=800 +; +; If you are having trouble with DTMF detection, you can relax the DTMF +; detection parameters. Relaxing them may make the DTMF detector more likely +; to have "talkoff" where DTMF is detected when it shouldn't be. +; +;relaxdtmf=yes +; +; You may also set the default receive and transmit gains (in dB) +; +; Gain Settings: increasing / decreasing the volume level on a channel. +; The values are in db (decibells). A positive number +; increases the volume level on a channel, and a +; negavive value decreases volume level. +; +; There are several independent gain settings: +; rxgain: gain for the rx (receive - into Asterisk) channel. Default: 0.0 +; txgain: gain for the tx (transmit - out of Asterisk Asterisk) channel. +; Default: 0.0 +; cid_rxgain: set the gain just for the caller ID sounds Asterisk +; emits. Default: 5.0 . + +;rxgain=2.0 +;txgain=3.0 +; +; Logical groups can be assigned to allow outgoing roll-over. Groups range +; from 0 to 63, and multiple groups can be specified. By default the +; channel is not a member of any group. +; +; Note that an explicit empty value for 'group' is invalid, and will not +; override a previous non-empty one. The same applies to callgroup and +; pickupgroup as well. +; +group=1 +; +; Ring groups (a.k.a. call groups) and pickup groups. If a phone is ringing +; and it is a member of a group which is one of your pickup groups, then +; you can answer it by picking up and dialing *8#. For simple offices, just +; make these both the same. Groups range from 0 to 63. +; +callgroup=1 +pickupgroup=1 + +; Channel variable to be set for all calls from this channel +;setvar=CHANNEL=42 + +; +; Specify whether the channel should be answered immediately or if the simple +; switch should provide dialtone, read digits, etc. +; Note: If immediate=yes the dialplan execution will always start at extension +; 's' priority 1 regardless of the dialed number! +; +;immediate=yes +; +; Specify whether flash-hook transfers to 'busy' channels should complete or +; return to the caller performing the transfer (default is yes). +; +;transfertobusy=no +; +; caller ID can be set to "asreceived" or a specific number if you want to +; override it. Note that "asreceived" only applies to trunk interfaces. +; fullname sets just the +; +; fullname: sets just the name part. +; cid_number: sets just the number part: +; +;callerid = 123456 +; +;callerid = My Name <2564286000> +; Which can also be written as: +;cid_number = 2564286000 +;fullname = My Name +; +;callerid = asreceived +; +; should we use the caller ID from incoming call on zap transfer? +; +;useincomingcalleridonzaptransfer = yes +; +; AMA flags affects the recording of Call Detail Records. If specified +; it may be 'default', 'omit', 'billing', or 'documentation'. +; +;amaflags=default +; +; Channels may be associated with an account code to ease +; billing +; +;accountcode=lss0101 +; +; ADSI (Analog Display Services Interface) can be enabled on a per-channel +; basis if you have (or may have) ADSI compatible CPE equipment +; +;adsi=yes +; +; SMDI (Simplified Message Desk Interface) can be enabled on a per-channel +; basis if you would like that channel to behave like an SMDI message desk. +; The SMDI port specified should have already been defined in smdi.conf. The +; default port is /dev/ttyS0. +; +;usesmdi=yes +;smdiport=/dev/ttyS0 +; +; On trunk interfaces (FXS) and E&M interfaces (E&M, Wink, Feature Group D +; etc, it can be useful to perform busy detection either in an effort to +; detect hangup or for detecting busies. This enables listening for +; the beep-beep busy pattern. +; +;busydetect=yes +; +; If busydetect is enabled, it is also possible to specify how many busy tones +; to wait for before hanging up. The default is 3, but it might be +; safer to set to 6 or even 8. Mind that the higher the number, the more +; time that will be needed to hangup a channel, but lowers the probability +; that you will get random hangups. +; +;busycount=6 +; +; If busydetect is enabled, it is also possible to specify the cadence of your +; busy signal. In many countries, it is 500msec on, 500msec off. Without +; busypattern specified, we'll accept any regular sound-silence pattern that +; repeats <busycount> times as a busy signal. If you specify busypattern, +; then we'll further check the length of the sound (tone) and silence, which +; will further reduce the chance of a false positive. +; +;busypattern=500,500 +; +; NOTE: In make menuselect, you'll find further options to tweak the busy +; detector. If your country has a busy tone with the same length tone and +; silence (as many countries do), consider enabling the +; BUSYDETECT_COMPARE_TONE_AND_SILENCE option. +; +; To further detect which hangup tone your telco provider is sending, it is +; useful to use the ztmonitor utility to record the audio that main/dsp.c +; is receiving after the caller hangs up. +; +; Use a polarity reversal to mark when a outgoing call is answered by the +; remote party. +; +;answeronpolarityswitch=yes +; +; In some countries, a polarity reversal is used to signal the disconnect of a +; phone line. If the hanguponpolarityswitch option is selected, the call will +; be considered "hung up" on a polarity reversal. +; +;hanguponpolarityswitch=yes +; +; polarityonanswerdelay: minimal time period (ms) between the answer +; polarity switch and hangup polarity switch. +; (default: 600ms) +; +; On trunk interfaces (FXS) it can be useful to attempt to follow the progress +; of a call through RINGING, BUSY, and ANSWERING. If turned on, call +; progress attempts to determine answer, busy, and ringing on phone lines. +; This feature is HIGHLY EXPERIMENTAL and can easily detect false answers, +; so don't count on it being very accurate. +; +; Few zones are supported at the time of this writing, but may be selected +; with "progzone". +; +; progzone also affects the pattern used for buzydetect (unless +; busypattern is set explicitly). The possible values are: +; us (default) +; ca (alias for 'us') +; cr (Costa Rica) +; br (Brazil, alias for 'cr') +; uk +; +; This feature can also easily detect false hangups. The symptoms of this is +; being disconnected in the middle of a call for no reason. +; +;callprogress=yes +;progzone=uk +; +; Set the tonezone. Equivalent of the defaultzone settings in +; /etc/zaptel.conf . This sets the tone zone by number. +; Note that you'd still need to load tonezones (loadzone in zaptel.conf). +; The default is -1: not to set anything. +;tonezone = 0 ; 0 is US +; +; FXO (FXS signalled) devices must have a timeout to determine if there was a +; hangup before the line was answered. This value can be tweaked to shorten +; how long it takes before Zap considers a non-ringing line to have hungup. +; +; ringtimeout will not update on a reload. +; +;ringtimeout=8000 +; +; For FXO (FXS signalled) devices, whether to use pulse dial instead of DTMF +; Pulse digits from phones (FXS devices, FXO signalling) are always +; detected. +; +;pulsedial=yes +; +; For fax detection, uncomment one of the following lines. The default is *OFF* +; +;faxdetect=both +;faxdetect=incoming +;faxdetect=outgoing +;faxdetect=no +; +; 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 +; setting is only valid when used on a channel that uses digital signalling. +; +;mohinterpret=default +; +; This option specifies which music on hold class to suggest to the peer channel +; when this channel places the peer on hold. +; +;mohsuggest=default +; +; PRI channels can have an idle extension and a minunused number. So long as +; at least "minunused" channels are idle, chan_zap will try to call "idledial" +; on them, and then dump them into the PBX in the "idleext" extension (which +; is of the form exten@context). When channels are needed the "idle" calls +; are disconnected (so long as there are at least "minidle" calls still +; running, of course) to make more channels available. The primary use of +; this is to create a dynamic service, where idle channels are bundled through +; multilink PPP, thus more efficiently utilizing combined voice/data services +; than conventional fixed mappings/muxings. +; +; Those settings cannot be changed on reload. +; +;idledial=6999 +;idleext=6999@dialout +;minunused=2 +;minidle=1 +; +; Configure jitter buffers in Zapata (each one is 20ms, default is 4) +; This is set globally, rather than per-channel. +; +;jitterbuffers=4 +; +;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- +; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a + ; ZAP 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 ZAP channel can't accept jitter, + ; thus an enabled jitterbuffer on the receive ZAP 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 ZAP + ; 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. + +; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". +;----------------------------------------------------------------------------------- +; +; You can define your own custom ring cadences here. You can define up to 8 +; pairs. If the silence is negative, it indicates where the caller ID spill is +; to be placed. Also, if you define any custom cadences, the default cadences +; will be turned off. +; +; This setting is global, rather than per-channel. It will not update on +; a reload. +; +; Syntax is: cadence=ring,silence[,ring,silence[...]] +; +; These are the default cadences: +; +;cadence=125,125,2000,-4000 +;cadence=250,250,500,1000,250,250,500,-4000 +;cadence=125,125,125,125,125,-4000 +;cadence=1000,500,2500,-5000 +; +; Each channel consists of the channel number or range. It inherits the +; parameters that were specified above its declaration. +; +; For GR-303, CRV's are created like channels except they must start with the +; trunk group followed by a colon, e.g.: +; +; crv => 1:1 +; crv => 2:1-2,5-8 +; +; +;callerid="Green Phone"<(256) 428-6121> +;channel => 1 +;callerid="Black Phone"<(256) 428-6122> +;channel => 2 +;callerid="CallerID Phone" <(630) 372-1564> +;channel => 3 +;callerid="Pac Tel Phone" <(256) 428-6124> +;channel => 4 +;callerid="Uniden Dead" <(256) 428-6125> +;channel => 5 +;callerid="Cortelco 2500" <(256) 428-6126> +;channel => 6 +;callerid="Main TA 750" <(256) 428-6127> +;channel => 44 +; +; For example, maybe we have some other channels which start out in a +; different context and use E & M signalling instead. +; +;context=remote +;sigalling=em +;channel => 15 +;channel => 16 + +;signalling=em_w +; +; All those in group 0 I'll use for outgoing calls +; +; Strip most significant digit (9) before sending +; +;stripmsd=1 +;callerid=asreceived +;group=0 +;signalling=fxs_ls +;channel => 45 + +;signalling=fxo_ls +;group=1 +;callerid="Joe Schmoe" <(256) 428-6131> +;channel => 25 +;callerid="Megan May" <(256) 428-6132> +;channel => 26 +;callerid="Suzy Queue" <(256) 428-6233> +;channel => 27 +;callerid="Larry Moe" <(256) 428-6234> +;channel => 28 +; +; Sample PRI (CPE) config: Specify the switchtype, the signalling as either +; pri_cpe or pri_net for CPE or Network termination, and generally you will +; want to create a single "group" for all channels of the PRI. +; +; switchtype cannot be changed on a reload. +; +; switchtype = national +; signalling = pri_cpe +; group = 2 +; channel => 1-23 + +; + +; Used for distinctive ring support for x100p. +; You can see the dringX patterns is to set any one of the dringXcontext fields +; and they will be printed on the console when an inbound call comes in. +; +; dringXrange is used to change the acceptable ranges for "tone offsets". Defaults to 10. +; Note: a range of 0 is NOT what you might expect - it instead forces it to the default. +; A range of -1 will force it to always match. +; Anything lower than -1 would presumably cause it to never match. +; +;dring1=95,0,0 +;dring1context=internal1 +;dring1range=10 +;dring2=325,95,0 +;dring2context=internal2 +;dring2range=10 +; If no pattern is matched here is where we go. +;context=default +;channel => 1 + +; ---------------- Options for use with signalling=ss7 ----------------- +; None of them can be changed by a reload. +; +; Variant of SS7 signalling: +; Options are itu and ansi +;ss7type = itu + +; SS7 Called Nature of Address Indicator +; +; unknown: Unknown +; subscriber: Subscriber +; national: National +; international: International +; dynamic: Dynamically selects the appropriate dialplan +; +;ss7_called_nai=dynamic +; +; SS7 Calling Nature of Address Indicator +; +; unknown: Unknown +; subscriber: Subscriber +; national: National +; international: International +; dynamic: Dynamically selects the appropriate dialplan +; +;ss7_calling_nai=dynamic +; +; +; sample 1 for Germany +;ss7_internationalprefix = 00 +;ss7_nationalprefix = 0 +;ss7_subscriberprefix = +;ss7_unknownprefix = +; + +; All settings apply to linkset 1 +;linkset = 1 + +; Point code of the linkset. For ITU, this is the decimal number +; format of the point code. For ANSI, this can either be in decimal +; number format or in the xxx-xxx-xxx format +;pointcode = 1 + +; Point code of node adjacent to this signalling link (Possibly the STP between you and +; your destination). Point code format follows the same rules as above. +;adjpointcode = 2 + +; Default point code that you would like to assign to outgoing messages (in case of +; routing through STPs, or using A links). Point code format follows the same rules +; as above. +;defaultdpc = 3 + +; Begin CIC (Circuit indication codes) count with this number +;cicbeginswith = 1 + +; What the MTP3 network indicator bits should be set to. Choices are +; national, national_spare, international, international_spare +;networkindicator=international + +; First signalling channel +;sigchan = 48 + +; Channels to associate with CICs on this linkset +;channel = 25-47 +; +; For more information on setting up SS7, see the README file in libss7 or +; the doc/ss7.txt file in the Asterisk source tree. +; ----------------- SS7 Options ---------------------------------------- |