git-svn-id: https://svn.code.sf.net/p/freetel/code@380 01035d8c-6547-0410-b346-abe4f9...
authorhorse69 <horse69@01035d8c-6547-0410-b346-abe4f91aad63>
Wed, 25 Apr 2012 22:31:00 +0000 (22:31 +0000)
committerhorse69 <horse69@01035d8c-6547-0410-b346-abe4f91aad63>
Wed, 25 Apr 2012 22:31:00 +0000 (22:31 +0000)
29 files changed:
mini-asterisk-gui2/etc/asterisk/extensions.conf
mini-asterisk-gui2/etc/asterisk/extensions.conf.orig [new file with mode: 0644]
mini-asterisk-gui2/etc/asterisk/iax.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/asterisk/sip.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/asterisk/zapata.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/05-auth.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-accesslog.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-cgi.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-evasive.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-evhost.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-expire.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-fastcgi.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-flv-streaming.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-no-www.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-proxy.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-rrdtool.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-simple-vhost.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-ssi.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-ssl.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-status.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-userdir.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/10-usertrack.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/15-fastcgi-php.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/90-debian-doc.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-available/README [new file with mode: 0644]
mini-asterisk-gui2/etc/lighttpd/conf-enabled/10-cgi.conf [new symlink]
mini-asterisk-gui2/etc/lighttpd/lighttpd.conf [new file with mode: 0644]
mini-asterisk-gui2/etc/zaptel.conf [new file with mode: 0644]
mini-asterisk-gui2/phones.js

index 1b947c7d6015401976bb6a1cd50485324bd87f5d..3af24be85766b910a9d9931e0f580541ce8a7af3 100644 (file)
-; extensions.conf
-; David Rowe 4 Jan 2010
+; 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 "extensions reload" command in the CLI
+; - With the "reload" command (that reloads everything) in the CLI
 
-; Designed for Mini Asterisk GUI.  However you can hand modify as much
-; as you like, as GUI scripts read/and write regular extensions.conf
-; without messing with your custom dialplan
+;
+; 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 'save dialplan' 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 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
 
-[general]
-static = yes
-writeprotect = no
-autofallthrough = yes
-clearglobalvars = no
-priorityjumping = no
+;
+; 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.
+;
 
-[default]
+;
+; 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
 
-exten => 555,1,Answer
-exten => 555,2,Read(ip||3)
-exten => 555,3,Ping(10.130.1.${ip})
+;
+; 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)
 
-exten => 556,1,Answer
-exten => 556,2,milliwatt
+;
+; 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
 
-exten => 557,1,Answer
-exten => 557,2,Echo
+[trunkint]
+;
+; International long distance through trunk
+;
+exten => _9011.,1,Macro(dundi-e164,${EXTEN:4})
+exten => _9011.,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
 
-; Pre-configured analog extensions, depends on IP0X model and what modules
-; are installed.  Some of these may map to FXO ports
+[trunkld]
+;
+; Long distance context accessed through trunk
+;
+exten => _91NXXNXXXXXX,1,Macro(dundi-e164,${EXTEN:1})
+exten => _91NXXNXXXXXX,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
 
-; mini_ext tag causes GUI to pick these up and display on GUI
+[trunklocal]
+;
+; Local seven-digit dialing accessed through trunk interface
+;
+exten => _9NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
 
-exten => 6001,1,Dial(Zap/1) ; mini_ext
-exten => 6002,1,Dial(Zap/2) ; mini_ext
-exten => 6003,1,Dial(Zap/3) ; mini_ext
-exten => 6004,1,Dial(Zap/4) ; mini_ext
-exten => 6005,1,Dial(Zap/5) ; mini_ext
-exten => 6006,1,Dial(Zap/6) ; mini_ext
-exten => 6007,1,Dial(Zap/7) ; mini_ext
-exten => 6008,1,Dial(Zap/8) ; mini_ext
+[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
 
-; Pre-configured SIP-phone extensions.  Primary use case is multiple SIP
-; extensions and FXO analog Ports
+[longdistance]
+;
+; Master context for long distance
+;
+ignorepat => 9
+include => local
+include => trunkld
 
-exten => 6011,1,Dial(SIP/6011) ; mini_ext
-exten => 6012,1,Dial(SIP/6012) ; mini_ext
-exten => 6013,1,Dial(SIP/6013) ; mini_ext
-exten => 6014,1,Dial(SIP/6014) ; mini_ext
-exten => 6015,1,Dial(SIP/6015) ; mini_ext
-exten => 6016,1,Dial(SIP/6016) ; mini_ext
-exten => 6017,1,Dial(SIP/6017) ; mini_ext
-exten => 6018,1,Dial(SIP/6018) ; mini_ext
-exten => 6019,1,Dial(SIP/6019) ; mini_ext
-exten => 6020,1,Dial(SIP/6020) ; mini_ext
-exten => 6021,1,Dial(SIP/6021) ; mini_ext
-exten => 6022,1,Dial(SIP/6022) ; mini_ext
+[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
 
-;; Pre-configured mini-asterisk outgoing Analog group
+exten => s-DONTCALL,1,Goto(${ARG3},s,1)                ; Callee chose to send this call to a polite "Don't call again" script.
 
-exten => _0.,1,Dial(Zap/g1/${EXTEN:1})
+exten => s-TORTURE,1,Goto(${ARG4},s,1)         ; Callee chose to send this call to a telemarketer torture script.
 
-;; Pre-configured mini-asterisk outgoing VOIP line
+exten => _s-.,1,Goto(s-NOANSWER,1)             ; Treat anything else as no answer
 
-exten => _1.,1,Dial(SIP/user/${EXTEN:1}) 
+exten => a,1,VoicemailMain(${ARG1})            ; If they press *, send the user into VoicemailMain
 
-;; Pre-configured incoming calls
+[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"
 
-exten => s,1,Dial(SIP/6011) ;; mini-asterisk - don't remove this comment
+;
+; 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@misery.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
+
+exten => 6010,1,Dial(SIP/6010) ; mini_ext
+exten => 6011,1,Dial(SIP/6011) ; mini_ext
+
+;
+; 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 "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. 
+; 'show functions" will list all dialplan functions
+; 'show function <COMMAND>' will show you more information about
+; one function. Remember that function names are UPPER CASE.
diff --git a/mini-asterisk-gui2/etc/asterisk/extensions.conf.orig b/mini-asterisk-gui2/etc/asterisk/extensions.conf.orig
new file mode 100644 (file)
index 0000000..1b947c7
--- /dev/null
@@ -0,0 +1,69 @@
+; extensions.conf
+; David Rowe 4 Jan 2010
+;
+
+; Designed for Mini Asterisk GUI.  However you can hand modify as much
+; as you like, as GUI scripts read/and write regular extensions.conf
+; without messing with your custom dialplan
+
+
+[general]
+static = yes
+writeprotect = no
+autofallthrough = yes
+clearglobalvars = no
+priorityjumping = no
+
+[default]
+
+exten => 555,1,Answer
+exten => 555,2,Read(ip||3)
+exten => 555,3,Ping(10.130.1.${ip})
+
+exten => 556,1,Answer
+exten => 556,2,milliwatt
+
+exten => 557,1,Answer
+exten => 557,2,Echo
+
+; Pre-configured analog extensions, depends on IP0X model and what modules
+; are installed.  Some of these may map to FXO ports
+
+; mini_ext tag causes GUI to pick these up and display on GUI
+
+exten => 6001,1,Dial(Zap/1) ; mini_ext
+exten => 6002,1,Dial(Zap/2) ; mini_ext
+exten => 6003,1,Dial(Zap/3) ; mini_ext
+exten => 6004,1,Dial(Zap/4) ; mini_ext
+exten => 6005,1,Dial(Zap/5) ; mini_ext
+exten => 6006,1,Dial(Zap/6) ; mini_ext
+exten => 6007,1,Dial(Zap/7) ; mini_ext
+exten => 6008,1,Dial(Zap/8) ; mini_ext
+
+; Pre-configured SIP-phone extensions.  Primary use case is multiple SIP
+; extensions and FXO analog Ports
+
+exten => 6011,1,Dial(SIP/6011) ; mini_ext
+exten => 6012,1,Dial(SIP/6012) ; mini_ext
+exten => 6013,1,Dial(SIP/6013) ; mini_ext
+exten => 6014,1,Dial(SIP/6014) ; mini_ext
+exten => 6015,1,Dial(SIP/6015) ; mini_ext
+exten => 6016,1,Dial(SIP/6016) ; mini_ext
+exten => 6017,1,Dial(SIP/6017) ; mini_ext
+exten => 6018,1,Dial(SIP/6018) ; mini_ext
+exten => 6019,1,Dial(SIP/6019) ; mini_ext
+exten => 6020,1,Dial(SIP/6020) ; mini_ext
+exten => 6021,1,Dial(SIP/6021) ; mini_ext
+exten => 6022,1,Dial(SIP/6022) ; mini_ext
+
+;; Pre-configured mini-asterisk outgoing Analog group
+
+exten => _0.,1,Dial(Zap/g1/${EXTEN:1})
+
+;; Pre-configured mini-asterisk outgoing VOIP line
+
+exten => _1.,1,Dial(SIP/user/${EXTEN:1}) 
+
+;; Pre-configured incoming calls
+
+exten => s,1,Dial(SIP/6011) ;; mini-asterisk - don't remove this comment
diff --git a/mini-asterisk-gui2/etc/asterisk/iax.conf b/mini-asterisk-gui2/etc/asterisk/iax.conf
new file mode 100644 (file)
index 0000000..4c016ba
--- /dev/null
@@ -0,0 +1,410 @@
+
+; 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
+;
+; 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 except dropcount 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.
+;
+
+jitterbuffer=no
+forcejitterbuffer=no
+;dropcount=2
+;maxjitterbuffer=1000
+;maxjitterinterps=10
+;resyncthreshold=1000
+;maxexcessbuffer=80
+;minexcessbuffer=10
+;jittershrinkrate=1
+
+;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
+;
+; 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 doc/README.tos for a description of the tos parameters.
+;tos=ef
+;
+; 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/mini-asterisk-gui2/etc/asterisk/sip.conf b/mini-asterisk-gui2/etc/asterisk/sip.conf
new file mode 100644 (file)
index 0000000..acd09bd
--- /dev/null
@@ -0,0 +1,782 @@
+;
+; SIP Configuration example for Asterisk
+;
+; Syntax for specifying a SIP device in extensions.conf is
+; SIP/devicename where devicename is defined in a section below.
+;
+; You may also use 
+; SIP/username@domain to call any SIP user on the Internet
+; (Don't forget to enable DNS SRV records if you want to use this)
+; 
+; 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 
+; 
+; 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 debug                  Show all SIP messages
+;
+;   reload chan_sip.so         Reload configuration file
+;                              Active SIP peers will not be reconfigured
+;
+
+[general]
+context=default                        ; Default context for incoming calls
+allowguest=no                  ; Allow or reject guest calls (default is yes)
+allowoverlap=no                        ; Disable overlap dialing support. (Default is yes)
+;allowtransfer=no              ; Disable all transfers (unless enabled in peers or users)
+                               ; 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)
+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 doc/README.tos 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.
+
+;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
+;t1min=100                     ; Minimum roundtrip time for messages to monitored hosts
+                               ; Defaults to 100 ms
+;notifymimetype=text/plain     ; Allow overriding of mime type in MWI NOTIFY
+;checkmwi=10                   ; Default time between mailbox checks for peers
+;buggymwi=no                   ; Cisco SIP firmware doesn't support the MWI RFC
+                               ; 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
+;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
+                               ; 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 :-(
+
+;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
+;
+;--------------------------- 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 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 limit set
+; for a device. When the call limit is filled, we will indicate busy. Note that
+; you need at least 2 in order to be able to do attended transfers.
+;
+; 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.
+;limitonpeers = yes            ; Apply call limits 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 limit instead of applying two call limits,
+                               ; one for the peer and one for the user.
+
+;----------------------------------------- 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 => 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.
+;
+; 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 ------------------------
+; The externip, externhost and localnet settings are used if you use Asterisk
+; behind a NAT device to communicate with services on the outside.
+
+;externip = 200.201.202.203    ; Address that we're going to put in outbound SIP
+                               ; messages if we're behind a NAT
+
+                               ; The externip and localnet is used
+                               ; when registering and communicating with other proxies
+                               ; that we're registered with
+;externhost=foo.dyndns.net     ; Alternatively you can specify an 
+                               ; external host, and Asterisk will 
+                               ; perform DNS queries periodically.  Not
+                               ; recommended for production 
+                               ; environments!  Use externip instead
+;externrefresh=10              ; How often to refresh externhost if 
+                               ; used
+                               ; You may add multiple local networks.  A reasonable 
+                               ; set of defaults are:
+;localnet=192.168.0.0/255.255.0.0; All RFC 1918 addresses are local networks
+;localnet=10.0.0.0/255.0.0.0   ; Also RFC1918
+;localnet=172.16.0.0/12                ; Another RFC1918 with CIDR notation
+;localnet=169.254.0.0/255.255.0.0 ;Zero conf local network
+
+; The nat= setting is used when Asterisk is on a public IP, communicating with
+; devices hidden behind a NAT device (broadband router).  If you have one-way
+; audio problems, you usually have problems with your NAT configuration or your
+; firewall's support of SIP+RTP ports.  You configure Asterisk choice of RTP
+; ports for incoming audio in rtp.conf
+;
+;nat=no                                ; Global NAT settings  (Affects all peers and users)
+                                ; yes = Always ignore info and assume NAT
+                                ; no = Use NAT mode only according to RFC3581 (;rport)
+                                ; never = Never attempt NAT mode or RFC3581 support
+                               ; 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.
+
+                               ; In Asterisk 1.4 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.
+
+;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
+;allowexternalinvites=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
+; allowoverlap               allowoverlap
+; allowsubscribe             allowsubscribe
+; allowtransfer                      allowtransfer
+; subscribecontext           subscribecontext
+; videosupport               videosupport
+; maxcallbitrate             maxcallbitrate
+; rfc2833compensate           mailbox
+;                             username
+;                             template
+;                             fromdomain
+;                             regexten
+;                             fromuser
+;                             host
+;                             port
+;                             qualify
+;                             defaultip
+;                             rtptimeout
+;                             rtpholdtimeout
+;                             sendrpid
+;                             outboundproxy
+;                             rfc2833compensate
+
+;[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
+;username=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
+;call-limit=5                          ; permit only 5 simultaneous outgoing calls to this peer
+;outboundproxy=proxy.provider.domain   ; send outbound signaling to this proxy, not directly to the peer
+                                       ; Call-limits will not be enforced on real-time peers,
+                                       ; since they are not stored in-memory
+;port=80                               ; The port number we want to connect to on the remote side
+                                       ; Also used as "defaultport" in combination with "defaultip" settings
+
+;------------------------------------------------------------------------------
+; 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
+
+;[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
+                               ; 1 for the explicit peer, 1 for the explicit user,
+                               ; remember that a friend equals 1 peer and 1 user in
+                               ; memory
+                               ; This will affect your subscriptions as well.
+                               ; 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
+
+
+;[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
+;username=polly                        ; Username to use in INVITE until peer registers
+                               ; 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
+;
+; 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
+;username=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.
+
+[6010]
+type=friend
+context=default
+host=dynamic
+secret=6010
+canreinvite=no
+callerid=6010
+disallow=all
+allow=ulaw,alaw
+qualify=yes
+
+[6011]
+type=friend
+context=default
+host=dynamic
+secret=6011
+canreinvite=no
+callerid=6011
+disallow=all
+allow=ulaw,alaw
+qualify=yes
+
+[6012]
+type=friend
+context=default
+host=dynamic
+secret=6012
+canreinvite=no
+callerid=6012
+disallow=all
+allow=ulaw,alaw
+qualify=yes
+
+[6013]
+type=friend
+context=default
+host=dynamic
+secret=6013
+canreinvite=no
+callerid=6013
+disallow=all
+allow=ulaw,alaw
+qualify=yes
+
+[6014]
+type=friend
+context=default
+host=dynamic
+secret=6014
+canreinvite=no
+callerid=6014
+disallow=all
+allow=ulaw,alaw
+qualify=yes
+
+[6015]
+type=friend
+context=default
+host=dynamic
+secret=6015
+canreinvite=no
+callerid=6015
+disallow=all
+allow=ulaw,alaw
+qualify=yes
+
+[6016]
+type=friend
+context=default
+host=dynamic
+secret=6016
+canreinvite=no
+callerid=6016
+disallow=all
+allow=ulaw,alaw
+qualify=yes
+
+[6017]
+type=friend
+context=default
+host=dynamic
+secret=6017
+canreinvite=no
+callerid=6017
+disallow=all
+allow=ulaw,alaw
+qualify=yes
+
+[6018]
+type=friend
+context=default
+host=dynamic
+secret=6018
+canreinvite=no
+callerid=6018
+disallow=all
+allow=ulaw,alaw
+qualify=yes
+
+[6019]
+type=friend
+context=default
+host=dynamic
+secret=6019
+canreinvite=no
+callerid=6019
+disallow=all
+allow=ulaw,alaw
+qualify=yes
+
+[6020]
+type=friend
+context=default
+host=dynamic
+secret=6020
+canreinvite=no
+callerid=6020
+disallow=all
+allow=ulaw,alaw
+qualify=yes
+
diff --git a/mini-asterisk-gui2/etc/asterisk/zapata.conf b/mini-asterisk-gui2/etc/asterisk/zapata.conf
new file mode 100644 (file)
index 0000000..d870b8d
--- /dev/null
@@ -0,0 +1,658 @@
+;
+; 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.
+
+
+
+[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
+;
+; Default context
+;
+context=default
+;
+; Switchtype:  Only used for PRI.
+;
+; national:      National ISDN 2 (default)
+; dms100:        Nortel DMS100
+; 4ess:           AT&T 4ESS
+; 5ess:                  Lucent 5ESS
+; euroisdn:       EuroISDN
+; ni1:            Old National ISDN 1
+; qsig:           Q.SIG
+;
+switchtype=national
+;
+; Some switches (AT&T especially) require network specific facility IE
+; supported values are currently 'none', 'sdn', 'megacom', 'tollfreemegacom', 'accunet'
+;
+;nsf=none
+;
+; PRI Dialplan:  Only RARELY used for PRI.
+;
+; unknown:        Unknown
+; private:        Private ISDN
+; local:          Local ISDN
+; national:      National ISDN
+; international:  International ISDN
+; dynamic:       Dynamically selects the appropriate dialplan
+;
+;pridialplan=national
+;
+; PRI Local Dialplan:  Only RARELY used for PRI (sets the calling number's numbering plan)
+;
+; unknown:        Unknown
+; private:        Private ISDN
+; local:          Local ISDN
+; national:      National ISDN
+; international:  International ISDN
+; dynamic:       Dynamically selects the appropriate dialplan
+;
+;prilocaldialplan=national
+;
+; PRI callerid prefixes based on the given TON/NPI (dialplan)
+; This is especially needed for euroisdn E1-PRIs
+; 
+; 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
+; channels, defaults to 3600; minimum 60 seconds.  Some PBXs don't like
+; channel restarts. so set the interval to a very long interval e.g. 100000000
+; or 'never' to disable *entirely*.
+;
+;resetinterval = 3600 
+;
+; Overlap dialing mode (sending overlap digits)
+;
+;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
+;
+; 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 = 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.
+; facilityenable = yes
+;
+;
+; Signalling method (default is fxs).  Valid values:
+; em:             E & M
+; 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
+;
+; 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)
+;
+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.
+; 
+; signalling=featdmf
+; outsignalling=featb
+;
+; For Feature Group D Tandem access, to set the default CIC and OZZ use these
+; parameters:
+;defaultozz=0000
+;defaultcic=303
+;
+; A variety of timing parameters can be specified as well
+; Including:
+;    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)
+;
+rxwink=300             ; Atlas seems to use long (250ms) winks
+;
+; How long generated tones (DTMF and MF) will be played on the channel
+; (in milliseconds)
+;toneduration=100
+;
+; Whether or not to do distinctive ring detection on FXO lines
+;
+;usedistinctiveringdetection=yes
+;distinctiveringaftercid=yes   ; enable dring detection after callerid for those countries like Australia
+                               ; where the ring cadence is changed *after* the callerid spill.
+;
+; Whether or not to use caller ID
+;
+usecallerid=yes
+;
+; Type of caller ID signalling in use
+;     bell     = bell202 as used in US
+;     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 callerid.  Requires SMDI to be enabled (usesmdi).
+;
+;cidsignalling=bell
+;
+; What signals the start of caller ID
+;     ring     = a ring signals the start
+;     polarity = polarity reversal signals the start
+;
+;cidstart=ring
+;
+; Whether or not to hide outgoing caller ID (Override with *67 or *82)
+;
+hidecallerid=no
+;
+; 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
+;
+usecallingpres=yes
+;
+; Some countries (UK) have ring tones with different ring tones (ring-ring),
+; which means the callerid needs to be set later on, and not just after
+; the first ring, as per the default. 
+;
+;sendcalleridafter=1
+;
+;
+; 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)
+;
+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 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
+;
+; 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 cancel 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
+; asterisk 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)
+;
+rxgain=0.0
+txgain=0.0
+;
+; Logical groups can be assigned to allow outgoing rollover.  Groups range
+; from 0 to 63, and multiple groups can be specified.
+;
+group=1
+;
+; Ring groups (a.k.a. call groups) and pickup groups.  If a phone is ringing
+; and it is a member of a group which is one of your pickup groups, then
+; you can answer it by picking up and dialling *8#.  For simple offices, just
+; make these both the same.  Groups range from 0 to 63.
+;
+callgroup=1
+pickupgroup=1
+
+;
+; Specify whether the channel should be answered immediately or if the simple
+; switch should provide dialtone, read digits, etc.
+;
+immediate=no
+;
+; Specify whether flash-hook transfers to 'busy' channels should complete or
+; return to the caller performing the transfer (default is yes).
+;
+;transfertobusy=no
+;
+; CallerID can be set to "asreceived" or a specific number if you want to
+; override it.  Note that "asreceived" only applies to trunk interfaces.
+;
+;callerid=2564286000
+;
+; 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 4, but better results can be
+; achieved if 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=4
+;
+; 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 the Asterisk Makefile 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 defining the
+; -DBUSYDETECT_COMPARE_TONE_AND_SILENCE option.
+;
+; 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
+;
+; 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"
+;
+; 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=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=8000
+;
+; For FXO (FXS signalled) devices, whether to use pulse dial instead of DTMF
+;
+;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.
+;
+; 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
+;
+; 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.
+;
+;idledial=6999
+;idleext=6999@dialout
+;minunused=2
+;minidle=1
+;
+; Configure jitter buffers in zapata (each one is 20ms, default is 4)
+;
+;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 callerid spill is
+; to be placed.  Also, if you define any custom cadences, the default cadences
+; will be turned off.
+;
+; 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" <(256) 428-6123>
+;callerid="CallerID Phone" <(630) 372-1564>
+;callerid="CallerID Phone" <(256) 704-4666>
+;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 = 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.
+;
+;dring1=95,0,0 
+;dring1context=internal1 
+;dring2=325,95,0 
+;dring2context=internal2 
+; If no pattern is matched here is where we go.
+;context=default
+;channel => 1 
+
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/05-auth.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/05-auth.conf
new file mode 100644 (file)
index 0000000..5d896e3
--- /dev/null
@@ -0,0 +1,25 @@
+# /usr/share/doc/lighttpd-doc/authentication.txt.gz
+
+server.modules                += ( "mod_auth" )
+
+# auth.backend                 = "plain"
+# auth.backend.plain.userfile  = "lighttpd.user"
+# auth.backend.plain.groupfile = "lighttpd.group"
+
+# auth.backend.ldap.hostname   = "localhost"
+# auth.backend.ldap.base-dn    = "dc=my-domain,dc=com"
+# auth.backend.ldap.filter     = "(uid=$)"
+
+# auth.require                 = ( "/server-status" => 
+#                                ( 
+#                                "method"  => "digest",
+#                                "realm"   => "download archiv",
+#                                "require" => "group=www|user=jan|host=192.168.2.10"
+#                              ),
+#                              "/server-info" => 
+#                                ( 
+#                                "method"  => "digest",
+#                                "realm"   => "download archiv",
+#                                "require" => "group=www|user=jan|host=192.168.2.10"
+#                              )
+#                              )
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-accesslog.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-accesslog.conf
new file mode 100644 (file)
index 0000000..552a762
--- /dev/null
@@ -0,0 +1,3 @@
+server.modules += ( "mod_accesslog" )
+
+accesslog.filename = "/var/log/lighttpd/access.log"
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-cgi.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-cgi.conf
new file mode 100644 (file)
index 0000000..0bff65d
--- /dev/null
@@ -0,0 +1,15 @@
+# /usr/share/doc/lighttpd-doc/cgi.txt
+
+server.modules += ( "mod_cgi" )
+
+$HTTP["url"] =~ "^/cgi-bin/" {
+       cgi.assign = ( "" => "" )
+}
+
+## Warning this represents a security risk, as it allow to execute any file
+## with a .pl/.py even outside of /usr/lib/cgi-bin.
+#
+cgi.assign      = (
+       ".pl"  => "/usr/bin/perl",
+       ".sh"  => "/bin/sh",
+)
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-evasive.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-evasive.conf
new file mode 100644 (file)
index 0000000..6c61733
--- /dev/null
@@ -0,0 +1 @@
+server.modules += ( "mod_evasive" )
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-evhost.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-evhost.conf
new file mode 100644 (file)
index 0000000..2c33448
--- /dev/null
@@ -0,0 +1,5 @@
+# http://redmine.lighttpd.net/wiki/1/Docs:ModEVhost
+
+server.modules += ( "mod_evhost" )
+
+evhost.path-pattern = "/srv/%_/htdocs"
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-expire.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-expire.conf
new file mode 100644 (file)
index 0000000..634236a
--- /dev/null
@@ -0,0 +1,3 @@
+# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModExpire
+
+server.modules += ( "mod_expire" )
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-fastcgi.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-fastcgi.conf
new file mode 100644 (file)
index 0000000..8171355
--- /dev/null
@@ -0,0 +1,4 @@
+# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
+# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
+
+server.modules += ( "mod_fastcgi" )
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-flv-streaming.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-flv-streaming.conf
new file mode 100644 (file)
index 0000000..d8317c0
--- /dev/null
@@ -0,0 +1 @@
+server.modules += ( "mod_flv_streaming" )
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-no-www.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-no-www.conf
new file mode 100644 (file)
index 0000000..09b163c
--- /dev/null
@@ -0,0 +1,3 @@
+$HTTP["host"] =~ "^www\.(.*)" {
+  url.redirect = ( "^/(.*)" => "http://%1/$1" )
+}
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-proxy.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-proxy.conf
new file mode 100644 (file)
index 0000000..b545a4f
--- /dev/null
@@ -0,0 +1,25 @@
+# /usr/share/doc/lighttpd-doc/proxy.txt
+
+server.modules   += ( "mod_proxy" )
+
+## Balance algorithm, possible values are: "hash", "round-robin" or "fair" (default)
+# proxy.balance     = "hash" 
+
+
+## Redirect all queries to files ending with ".php" to 192.168.0.101:80 
+#proxy.server     = ( ".php" =>
+#                     ( 
+#                       ( "host" => "192.168.0.101",
+#                         "port" => 80
+#                       )
+#                     )
+#                    )
+
+## Redirect all connections on www.example.com to 10.0.0.1{0,1,2,3}
+#$HTTP["host"] == "www.example.com" {
+#  proxy.balance = "hash"
+#  proxy.server  = ( "" => ( ( "host" => "10.0.0.10" ),
+#                            ( "host" => "10.0.0.11" ),
+#                            ( "host" => "10.0.0.12" ),
+#                            ( "host" => "10.0.0.13" ) ) )
+#}
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-rrdtool.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-rrdtool.conf
new file mode 100644 (file)
index 0000000..f8befc1
--- /dev/null
@@ -0,0 +1,10 @@
+# /usr/share/doc/lighttpd-doc/rrdtool.txt
+
+server.modules += ( "mod_rrdtool" )
+
+## path to the rrdtool binary
+rrdtool.binary   = "/usr/bin/rrdtool"
+
+## file to store the rrd database, will be created by lighttpd
+rrdtool.db-name   = "/var/www/lighttpd.rrd"
+
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-simple-vhost.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-simple-vhost.conf
new file mode 100644 (file)
index 0000000..e35eca4
--- /dev/null
@@ -0,0 +1,11 @@
+# /usr/share/doc/lighttpd-doc/simple-vhost.txt
+
+server.modules += ( "mod_simple_vhost" )
+
+## The document root of a virtual host is document-root =
+##   simple-vhost.server-root + $HTTP["host"] + simple-vhost.document-root
+simple-vhost.server-root         = "/srv"
+simple-vhost.document-root       = "htdocs"
+
+## the default host if no host is sent
+simple-vhost.default-host        = "www.example.com"
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-ssi.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-ssi.conf
new file mode 100644 (file)
index 0000000..5532319
--- /dev/null
@@ -0,0 +1,5 @@
+# /usr/share/doc/lighttpd-doc/ssi.txt
+
+server.modules += ( "mod_ssi" )
+
+ssi.extension   = ( ".shtml" )
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-ssl.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-ssl.conf
new file mode 100644 (file)
index 0000000..4656d86
--- /dev/null
@@ -0,0 +1,6 @@
+# /usr/share/doc/lighttpd-doc/ssl.txt
+
+$SERVER["socket"] == "0.0.0.0:443" {
+       ssl.engine  = "enable"
+       ssl.pemfile = "/etc/lighttpd/server.pem"
+}
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-status.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-status.conf
new file mode 100644 (file)
index 0000000..f8b698f
--- /dev/null
@@ -0,0 +1,15 @@
+# /usr/share/doc/lighttpd-doc/status.txt
+# http://trac.lighttpd.net/trac/wiki/Docs%3AModStatus
+
+server.modules += ( "mod_status" )
+
+# status.status-url = "/server-status"
+
+# status.config-url = "/server-config"
+
+## relative URL for a plain-text page containing the internal statistics
+# status.statistics-url = "/server-statistics"
+
+## add JavaScript which allows client-side sorting for the connection overview
+## default: enable
+# status.enable-sort = "disable"
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-userdir.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-userdir.conf
new file mode 100644 (file)
index 0000000..459bbe7
--- /dev/null
@@ -0,0 +1,13 @@
+## The userdir module provides a simple way to link user-based directories into
+## the global namespace of the webserver.
+##
+# /usr/share/doc/lighttpd-doc/userdir.txt
+
+server.modules      += ( "mod_userdir" )
+
+## the subdirectory of a user's home dir which should be accessible
+## under http://$host/~$user
+userdir.path         = "public_html"
+
+## The users whose home directories should not be accessible
+userdir.exclude-user = ( "root", "postmaster" )
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/10-usertrack.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/10-usertrack.conf
new file mode 100644 (file)
index 0000000..018b5f4
--- /dev/null
@@ -0,0 +1 @@
+server.modules += ( "mod_usertrack" )
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/15-fastcgi-php.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/15-fastcgi-php.conf
new file mode 100644 (file)
index 0000000..ef01f19
--- /dev/null
@@ -0,0 +1,19 @@
+# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
+# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
+
+## Start an FastCGI server for php (needs the php5-cgi package)
+fastcgi.server += ( ".php" => 
+       ((
+               "bin-path" => "/usr/bin/php-cgi",
+               "socket" => "/tmp/php.socket",
+               "max-procs" => 1,
+               "bin-environment" => ( 
+                       "PHP_FCGI_CHILDREN" => "4",
+                       "PHP_FCGI_MAX_REQUESTS" => "10000"
+               ),
+               "bin-copy-environment" => (
+                       "PATH", "SHELL", "USER"
+               ),
+               "broken-scriptfilename" => "enable"
+       ))
+)
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/90-debian-doc.conf b/mini-asterisk-gui2/etc/lighttpd/conf-available/90-debian-doc.conf
new file mode 100644 (file)
index 0000000..0eb4cc2
--- /dev/null
@@ -0,0 +1,15 @@
+#### handle Debian Policy Manual, Section 11.5. urls
+## by default allow them only from localhost
+$HTTP["remoteip"] =~ "^127\.0\.0\.1$|^::1$" {
+        alias.url += (
+               "/cgi-bin/" => "/usr/lib/cgi-bin/",
+                "/doc/" => "/usr/share/doc/",
+                "/images/" => "/usr/share/images/"
+        )
+        $HTTP["url"] =~ "^/doc/|^/images/" {
+                dir-listing.activate = "enable"
+        }
+        $HTTP["url"] =~ "^/cgi-bin/" {
+                cgi.assign = ( "" => "" )
+        }
+}
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-available/README b/mini-asterisk-gui2/etc/lighttpd/conf-available/README
new file mode 100644 (file)
index 0000000..08679f7
--- /dev/null
@@ -0,0 +1,22 @@
+ligghttpd Configuration under Debian GNU/Linux
+==============================================
+
+Files and Directories in /etc/lighttpd:
+---------------------------------------
+
+lighttpd.conf:
+        main configuration file
+
+conf-available/
+       This directory contains a series of .conf files. These files contain
+        configuration directives necessary to load and run webserver modules.
+       If you want to create your own files they names should be
+        build as nn-name.conf where "nn" is two digit number (number
+       is used to find order for loading files)
+
+conf-enabled/    
+       To actually enable a module for lighttpd, it is necessary to create a 
+        symlink in this directory to the .conf file in conf-available/.
+
+Enabling and disabling modules could be done by provided
+/usr/sbin/lighty-enable-mod and /usr/sbin/lighty-disable-mod scripts. 
diff --git a/mini-asterisk-gui2/etc/lighttpd/conf-enabled/10-cgi.conf b/mini-asterisk-gui2/etc/lighttpd/conf-enabled/10-cgi.conf
new file mode 120000 (symlink)
index 0000000..995c40c
--- /dev/null
@@ -0,0 +1 @@
+../conf-available/10-cgi.conf
\ No newline at end of file
diff --git a/mini-asterisk-gui2/etc/lighttpd/lighttpd.conf b/mini-asterisk-gui2/etc/lighttpd/lighttpd.conf
new file mode 100644 (file)
index 0000000..bc650da
--- /dev/null
@@ -0,0 +1,36 @@
+server.modules = (
+       "mod_access",
+       "mod_alias",
+       "mod_compress",
+       "mod_redirect",
+#       "mod_rewrite",
+)
+
+server.document-root        = "/home/ian/mini-asterisk-gui2"
+server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
+server.errorlog             = "/var/log/lighttpd/error.log"
+server.pid-file             = "/var/run/lighttpd.pid"
+server.username             = "www-data"
+server.groupname            = "www-data"
+#server.username             = "wwwrun"
+#server.groupname            = "wwwrun"
+
+index-file.names            = ( "index.php", "index.html",
+                                "index.htm", "default.htm",
+                               " index.lighttpd.html" )
+
+url.access-deny             = ( "~", ".inc" )
+
+static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
+
+## Use ipv6 if available
+#include_shell "/usr/share/lighttpd/use-ipv6.pl"
+
+dir-listing.encoding        = "utf-8"
+server.dir-listing          = "enable"
+
+compress.cache-dir          = "/var/cache/lighttpd/compress/"
+compress.filetype           = ( "application/x-javascript", "text/css", "text/html", "text/plain" )
+
+include_shell "/usr/share/lighttpd/create-mime.assign.pl"
+include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
diff --git a/mini-asterisk-gui2/etc/zaptel.conf b/mini-asterisk-gui2/etc/zaptel.conf
new file mode 100644 (file)
index 0000000..5fd585c
--- /dev/null
@@ -0,0 +1,4 @@
+loadzone = us
+defaultzone=us
+
+fxoks=2,3,4
index 3284d8b6bcfa5bc49dc5896345e213f9763286c1..9195bcea6e50e1b049fc916fb90ff3f34cf99808 100644 (file)
@@ -17,6 +17,7 @@ function initialise() {
     // kick off cascading CGIs, initialisePage() will be called when complete
 
     loadExtensions();
+    //initialisePage();
 }
 
 
@@ -85,8 +86,8 @@ function initialisePage() {
 
     // fire off Ifconfig IP address to get IP Address
 
-//    downloadUrl("/cgi-bin/ifconfig.cgi?arg=eth0", processIfconfig);
-    downloadUrl("/cgi-bin/ifconfig.cgi?arg=eth1", processIfconfig);
+    downloadUrl("/cgi-bin/ifconfig.cgi?arg=eth0", processIfconfig);
+//    downloadUrl("/cgi-bin/ifconfig.cgi?arg=eth1", processIfconfig);
 }