Update sample configs to put incoming calls into context public.
[asterisk/asterisk.git] / configs / sip.conf.sample
index 35f4f68..1f7b549 100644 (file)
 ; "setvar" to set variables that can be used in the dialplan for various limits.
 
 [general]
-context=default                 ; Default context for incoming calls
+context=public                  ; Default context for incoming calls. Defaults to 'default'
 ;allowguest=no                  ; Allow or reject guest calls (default is yes)
                                ; If your Asterisk is connected to the Internet
                                ; and you have allowguest=yes
@@ -122,6 +122,13 @@ context=default                 ; Default context for incoming calls
                                 ; 'username' field from the authentication line
                                 ; instead of the From: field.
 allowoverlap=no                 ; Disable overlap dialing support. (Default is yes)
+;allowoverlap=yes               ; Enable RFC3578 overlap dialing support.
+                                ; Can use the Incomplete application to collect the
+                                ; needed digits from an ambiguous dialplan match.
+;allowoverlap=dtmf              ; Enable overlap dialing support using DTMF delivery
+                                ; methods (inband, RFC2833, SIP INFO) in the early
+                                ; media phase.  Uses the Incomplete application to
+                                ; collect the needed digits.
 ;allowtransfer=no               ; Disable all transfers (unless enabled in peers or users)
                                 ; Default is enabled. The Dial() options 't' and 'T' are not
                                 ; related as to whether SIP transfers are allowed or not.
@@ -130,7 +137,7 @@ allowoverlap=no                 ; Disable overlap dialing support. (Default is y
                                 ; 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
-;domainsasrealm=no              ; Use domans list as realms
+;domainsasrealm=no              ; Use domains list as realms
                                 ; You can serve multiple Realms specifying several
                                 ; 'domain=...' directives (see below). 
                                 ; In this case Realm will be based on request 'From'/'To' header
@@ -179,8 +186,8 @@ udpbindaddr=0.0.0.0             ; IP address to bind UDP listen socket to (0.0.0
 ;
 ; Note also that while Asterisk currently will parse an Allow header to learn
 ; what methods an endpoint supports, the only actual use for this currently
-; is for determining if Asterisk may send connected line UPDATE requests. Its
-; use may be expanded in the future.
+; is for determining if Asterisk may send connected line UPDATE requests and
+; MESSAGE requests. Its use may be expanded in the future.
 ;
 ; disallowed_methods = UPDATE
 
@@ -202,6 +209,16 @@ tcpbindaddr=0.0.0.0             ; IP address for TCP server to bind to (0.0.0.0
                                 ; For details how to construct a certificate for SIP see 
                                 ; http://tools.ietf.org/html/draft-ietf-sip-domain-certs
 
+;tcpauthtimeout = 30            ; tcpauthtimeout specifies the maximum number
+                               ; of seconds a client has to authenticate.  If
+                               ; the client does not authenticate beofre this
+                               ; timeout expires, the client will be
+                                ; disconnected. (default: 30 seconds)
+
+;tcpauthlimit = 100             ; tcpauthlimit specifies the maximum number of
+                               ; unauthenticated sessions that will be allowed
+                                ; to connect at any given time. (default: 100)
+
 srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
                                 ; Note: Asterisk only uses the first host
                                 ; in SRV records
@@ -215,9 +232,9 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ;pedantic=yes                   ; Enable checking of tags in headers,
                                 ; international character conversions in URIs
                                 ; and multiline formatted headers for strict
-                                ; SIP compatibility (defaults to "no")
+                                ; SIP compatibility (defaults to "yes")
 
-; See qos.tex or Quality of Service section of asterisk.pdf for a description of these parameters.
+; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service 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.
@@ -236,6 +253,7 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ;maxforwards=70                        ; Setting for the SIP Max-Forwards: header (loop prevention)
                                ; Default value is 70
 ;qualifyfreq=60                 ; Qualification: How often to check for the host to be up in seconds
+                               ; and reported in milliseconds with sip show settings.
                                 ; Set to low value if you use low timeout for NAT of UDP sessions
                                ; Default: 60
 ;qualifygap=100                        ; Number of milliseconds between each group of peers being qualified
@@ -255,13 +273,26 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
                                 ; Message-Account in the MWI notify message
                                 ; defaults to "asterisk"
 
+; Codec negotiation
+;
+; When Asterisk is receiving a call, the codec will initially be set to the
+; first codec in the allowed codecs defined for the user receiving the call
+; that the caller also indicates that it supports. But, after the caller
+; starts sending RTP, Asterisk will switch to using whatever codec the caller
+; is sending.
+;
+; When Asterisk is placing a call, the codec used will be the first codec in
+; the allowed codecs that the callee indicates that it supports. Asterisk will
+; *not* switch to whatever codec the callee is sending.
+;
 ;preferred_codec_only=yes       ; Respond to a SIP invite with the single most preferred codec
                                 ; rather than advertising all joint codec capabilities. This
                                 ; limits the other side's codec choice to exactly what we prefer.
 
 ;disallow=all                   ; First disallow all codecs
 ;allow=ulaw                     ; Allow codecs in order of preference
-;allow=ilbc                     ; see doc/rtp-packetization for framing options
+;allow=ilbc                     ; see https://wiki.asterisk.org/wiki/display/AST/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
@@ -283,6 +314,9 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
                                 ; Parkinglots are configured in features.conf
 ;language=en                    ; Default language setting for all users/peers
                                 ; This may also be set for individual users/peers
+;tonezone=se                   ; Default tonezone 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 (defaults to no)
@@ -356,6 +390,25 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
                                 ; instead of letting the requester know whether there was
                                 ; a matching user or peer for their request.  This reduces
                                 ; the ability of an attacker to scan for valid SIP usernames.
+                                ; This option is set to "yes" by default.
+
+;auth_options_requests = yes    ; Enabling this option will authenticate OPTIONS requests just like
+                                ; INVITE requests are.  By default this option is disabled.
+
+;accept_outofcall_message = no  ; Disable this option to reject all MESSAGE requests outside of a
+                                ; call.  By default, this option is enabled.  When enabled, MESSAGE
+                                ; requests are passed in to the dialplan.
+
+;outofcall_message_context = messages ; Context all out of dialog msgs are sent to. When this
+                                      ; option is not set, the context used during peer matching
+                                      ; is used. This option can be defined at both the peer and
+                                      ; global level.
+
+;auth_message_requests = yes    ; Enabling this option will authenticate MESSAGE requests.
+                                ; By default this option is enabled.  However, it can be disabled
+                                ; should an application desire to not load the Asterisk server with
+                                ; doing authentication and implement end to end security in the
+                                ; message body.
 
 ;g726nonstandard = yes          ; If the peer negotiates G726-32 audio, use AAL2 packing
                                 ; order instead of RFC3551 packing order (this is required
@@ -366,6 +419,10 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ;outboundproxy=proxy.provider.domain:8080       ; send outbound signaling to this proxy, not directly to the devices
 ;outboundproxy=proxy.provider.domain,force      ; Send ALL outbound signalling to proxy, ignoring route: headers
 ;outboundproxy=tls://proxy.provider.domain      ; same as '=proxy.provider.domain' except we try to connect with tls
+;outboundproxy=192.0.2.1                        ; IPv4 address literal (default port is 5060)
+;outboundproxy=2001:db8::1                      ; IPv6 address literal (default port is 5060)
+;outboundproxy=192.168.0.2.1:5062               ; IPv4 address literal with explicit port
+;outboundproxy=[2001:db8::1]:5062               ; IPv6 address literal with explicit port
 ;                                               ; (could also be tcp,udp) - defining transports on the proxy line only
 ;                                               ; applies for the global proxy, otherwise use the transport= option
 ;matchexternaddrlocally = yes     ; Only substitute the externaddr or externhost setting if it matches
@@ -400,6 +457,14 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
                                 ; If you have qualify on and the peer becomes unreachable
                                 ; this setting will enforce inactivation of the regexten
                                 ; extension for the peer
+;legacy_useroption_parsing=yes ; Default "no"      ; If you have this option enabled and there are semicolons
+                                                    ; in the user field of a sip URI, the field be truncated
+                                                    ; at the first semicolon seen. This effectively makes
+                                                    ; semicolon a non-usable character for peer names, extensions,
+                                                    ; and maybe other, less tested things.  This can be useful
+                                                    ; for improving compatability with devices that like to use
+                                                    ; user options for whatever reason.  The behavior is similar to
+                                                    ; how SIP URI's were typically handled in 1.6.2, hence the name.
 
 ; The shrinkcallerid function removes '(', ' ', ')', non-trailing '.', and '-' not
 ; in square brackets.  For example, the caller id value 555.5555 becomes 5555555
@@ -427,7 +492,7 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ;        you should have their certificate installed here so the code can
 ;        verify the authenticity of their certificate.
 
-;tlscadir=</path/to/ca/dir>
+;tlscapath=</path/to/ca/dir>
 ;        A directory full of CA certificates.  The files must be named with
 ;        the CA subject name hash value.
 ;        (see man SSL_CTX_load_verify_locations for more info)
@@ -660,12 +725,15 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 
 ;----------------------------------------- OUTBOUND MWI SUBSCRIPTIONS -------------------------
 ; Asterisk can subscribe to receive the MWI from another SIP server and store it locally for retrieval
-; by other phones.
+; by other phones. At this time, you can only subscribe using UDP as the transport.
 ; Format for the mwi register statement is:
-;       mwi => user[:secret[:authuser]]@host[:port][/mailbox]
+;       mwi => user[:secret[:authuser]]@host[:port]/mailbox
 ;
 ; Examples:
 ;mwi => 1234:password@mysipprovider.com/1234
+;mwi => 1234:password@myportprovider.com:6969/1234
+;mwi => 1234:password:authuser@myauthprovider.com/1234
+;mwi => 1234:password:authuser@myauthportprovider.com:6969/1234
 ;
 ; MWI received will be stored in the 1234 mailbox of the SIP_Remote context. It can be used by other phones by following the below:
 ; mailbox=1234@SIP_Remote
@@ -722,31 +790,18 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ;        externhost=foo.dyndns.net       ; refreshed periodically
 ;        externrefresh=180               ; change the refresh interval
 ;
-;   c. "stunaddr = stun.server[:port]" queries the STUN server specified
-;      as an argument to obtain the external address/port.
-;      Queries are also sent periodically every "externrefresh" seconds
-;      (as a side effect, sending the query also acts as a keepalive for
-;      the state entry on the nat box):
-;
-;        stunaddr = foo.stun.com:3478
-;        externrefresh = 15
-;
-;      NOTE: STUN is only implemented for IPv4.
-;
 ;   Note that at the moment all these mechanism work only for the SIP socket.
-;   The IP address discovered with externaddr/externhost/STUN is reused for
+;   The IP address discovered with externaddr/externhost is reused for
 ;   media sessions as well, but the port numbers are not remapped so you
 ;   may still experience problems.
 ;
 ; NOTE 1: in some cases, NAT boxes will use different port numbers in
 ; the internal<->external mapping. In these cases, the "externaddr" and
-; "externhost" might not help you configure addresses properly, and you
-; really need to use STUN.
+; "externhost" might not help you configure addresses properly.
 ;
 ; NOTE 2: when using "externaddr" or "externhost", the address part is
-; also used as the external address for media sessions. Even if you 
-; use "stunaddr", STUN queries will be sent only from the SIP port,
-; not from media sockets. Thus, the port information in the SDP may be wrong!
+; also used as the external address for media sessions. Thus, the port
+; information in the SDP may be wrong!
 ;
 ; In addition to the above, Asterisk has an additional "nat" parameter to
 ; address NAT-related issues in incoming SIP or media sessions.
@@ -769,6 +824,14 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ; for their media streams is not actual port number that will be used on the nearer
 ; side of the NAT.
 ;
+; IT IS IMPORTANT TO NOTE that if the nat setting in the general section differs from
+; the nat setting in a peer definition, then the peer username will be discoverable
+; by outside parties as Asterisk will respond to different ports for defined and
+; undefined peers. For this reason it is recommended to ONLY DEFINE NAT SETTINGS IN THE
+; GENERAL SECTION. Specifically, if nat=force_rport in one section and nat=no in the
+; other, then valid users with settings differing from those in the general section will
+; be discoverable.
+;
 ; In addition to these settings, Asterisk *always* uses 'symmetric RTP' mode as defined by
 ; RFC 4961; Asterisk will always send RTP packets from the same port number it expects
 ; to receive them on.
@@ -778,6 +841,16 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ; can not be set per-user or per-peer.
 ;
 ; media_address = 172.16.42.1
+;
+; Through the use of the res_stun_monitor module, Asterisk has the ability to detect when the
+; perceived external network address has changed.  When the stun_monitor is installed and
+; configured, chan_sip will renew all outbound registrations when the monitor detects any sort
+; of network change has occurred. By default this option is enabled, but only takes effect once
+; res_stun_monitor is configured.  If res_stun_monitor is enabled and you wish to not
+; generate all outbound registrations on a network change, use the option below to disable
+; this feature.
+;
+; subscribe_network_change_event = yes ; on by default
 
 ;----------------------------------- MEDIA HANDLING --------------------------------
 ; By default, Asterisk tries to re-invite media streams to an optimal path. If there's
@@ -843,11 +916,14 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
                                 ; also contains the Asterisk version.
 ;sdpowner=root                  ; Allows you to change the username field in the SDP owner string, (o=)
                                 ; This field MUST NOT contain spaces
+;encryption=no                  ; Whether to offer SRTP encrypted media (and only SRTP encrypted media)
+                                ; on outgoing calls to a peer. Calls will fail with HANGUPCAUSE=58 if
+                                ; the peer does not support SRTP. Defaults to no.
+;encryption_taglen=80           ; Set the auth tag length offered in the INVITE either 32/80 default 80
 
 ;----------------------------------------- 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.
+; please read https://wiki.asterisk.org/wiki/display/AST/Realtime+Database+Configuration
 ;
 ;rtcachefriends=yes             ; Cache realtime friends by adding them to the internal list
                                 ; just like friends added from the config file only on a
@@ -959,6 +1035,16 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
                               ; but occasionally has spikes.
 
 ; jblog = no                  ; Enables jitterbuffer frame logging. Defaults to "no".
+
+;----------------------------- SIP_CAUSE reporting ---------------------------------
+; storesipcause = no          ; This option causes chan_sip to set the
+                             ; HASH(SIP_CAUSE,<channel name>) channel variable
+                             ; to the value of the last sip response.
+                             ; WARNING: enabling this option carries a
+                             ; significant performance burden. It should only
+                             ; be used in low call volume situations. This
+                              ; option defaults to "no".
+
 ;-----------------------------------------------------------------------------------
 
 [authentication]
@@ -990,6 +1076,10 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ;   Asterisk only matches on IP/port, not on names. This is mostly used for SIP
 ;   trunks.
 ;
+; Use remotesecret for outbound authentication, and secret for authenticating
+; inbound requests. For historical reasons, if no remotesecret is supplied for an
+; outbound registration or call, the secret will be used. 
+;
 ; For device names, we recommend using only a-z, numerics (0-9) and underscore
 ;
 ; For local phones, type=friend works most of the time
@@ -1071,6 +1161,8 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ; unsolicited_mailbox
 ; use_q850_reason
 ; maxforwards
+; encryption
+; description          ; Used to provide a description of the peer in console output
 
 ;[sip_proxy]
 ; For incoming calls only. Example: FWD (Free World Dialup)
@@ -1128,12 +1220,10 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
         type=friend
 
 [natted-phone](!,basic-options)   ; another template inheriting basic-options
-        nat=yes
         directmedia=no
         host=dynamic
 
 [public-phone](!,basic-options)   ; another template inheriting basic-options
-        nat=no
         directmedia=yes
 
 [my-codecs](!)                    ; a template for my preferred codecs
@@ -1143,10 +1233,14 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
         allow=gsm
         allow=g723
         allow=ulaw
+        ; Or, more simply:
+        ;allow=!all,ilbc,g729,gsm,g723,ulaw
 
 [ulaw-phone](!)                   ; and another one for ulaw-only
         disallow=all
         allow=ulaw
+        ; Again, more simply:
+        ;allow=!all,ulaw
 
 ; and finally instantiate a few phones
 ;
@@ -1166,9 +1260,9 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ;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
+;description=Courtesy Phone      ; Description of the peer. Shown when doing 'sip show peers'.
 ;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
 ;directmedia=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
@@ -1198,7 +1292,6 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ;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
 ;directmedia=no                  ; Typically set to NO if behind NAT
 ;disallow=all
 ;allow=gsm                       ; GSM consumes far less bandwidth than ulaw
@@ -1272,9 +1365,6 @@ srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
 ;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
 ;directmedia=no                  ; Asterisk by default tries to redirect the
                                  ; RTP media stream (audio) to go directly from