;! Generator: PBX Manager ;! Creation Date: Thu Jul 19 15:25:41 2007 ;! ; ; 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 = demo ; Default context for incoming calls ; Allow or reject guest calls (default is yes, this can also be set to 'osp' ; if asterisk was compiled with OSP support. ; Realm for digest authentication ; defaults to "asterisk" ; 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) bindaddr = 168.10.1.15 ; 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 ; 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 ;domain=mydomain.tld,mydomain-incoming ; Add domain and configure incoming context ; for external calls to this domain ; Add IP address as local domain ; You can have several "domain" settings ; Disable INVITE and REFER to non-local domains ; Default is yes ; Turn this on to have Asterisk add local host ; name and local IP to domain list. ; Enable slow, pedantic checking for Pingtel ; and multiline formatted headers for strict ; SIP compatibility (defaults to "no") ; Set IP QoS to either a keyword or numeric val ; lowdelay,throughput,reliability,mincost,none ; Max length of incoming registration we allow ; Default length of incoming/outgoing registration ; Allow overriding of mime type in MWI NOTIFY ; Default time between mailbox checks for peers ; dialplan extension to reach mailbox sets the ; Message-Account in the MWI notify message ; defaults to "asterisk" ; Turn on support for SIP video ; Record SIP history by default ; (see sip history / sip no history) ; First disallow all codecs ; Allow codecs in order of preference ; ; Sets the default music on hold class for all SIP calls ; This may also be set for individual users/peers ; Default language setting for all users/peers ; This may also be set for individual users/peers ; Relax dtmf handling ; Terminate call if 60 seconds of no RTP activity ; when we're not on hold ; Terminate call if 300 seconds of no RTP activity ; when we're on hold (must be > rtptimeout) ; If Remote-Party-ID should be trusted ; If Remote-Party-ID should be sent ; 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 ; Allows you to change the user agent string ; 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 SIP is incapable ; of performing a "hairpin" call. ;user=phone" is added to uri that contains ; a valid phone number ; 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 ; send compact sip headers. ; Turn on SIP debugging by default, from ; the moment the channel loads this configuration ; Set a specific context for SUBSCRIBE requests ; Useful to limit subscriptions to local extensions ; Settable per peer/user also ; Notify subscriptions on RINGING state ; 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 ; ; 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=sipregistrations ; ; 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 ; retry registration calls every 20 seconds (default) ; 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 ; generate manager events when sip ua performs events (e.g. hold) ;----------------------------------------- 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. ; 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 ; Alternatively you can specify an ; external host, and Asterisk will ; perform DNS queries periodically. Not ; recommended for production ; environments! Use externip instead ; How often to refresh externhost if ; used ; You may add multiple local networks. A reasonable set of defaults ; are: ; All RFC 1918 addresses are local networks ; Also RFC1918 ; Another RFC1918 with CIDR notation ;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 ; ; Global NAT settings (Affects all peers and users) ; yes = Always ignore info and assume NAT ; no = Use NAT mode only according to RFC3581 ; never = Never attempt NAT mode or RFC3581 support ; route = Assume NAT, don't send rport ; (work around more UNIDEN bugs) ; 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) ; 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'. ; Auto-Expire friends created on the fly on the same schedule ; as if it had just registered? (yes|no|) ; 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. ; Enabling this setting has two functions: ; ; For non-realtime peers, when their registration expires, the information ; 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 ; 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 ; 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=[,] ; 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 ; 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. [authentication] [3000] type = friend context = default username = 3000 host = dynamic mailbox = 3000 dtmfmode = rfc2833 [3001] type = friend context = default username = 3001 host = dynamic mailbox = 3001 dtmfmode = rfc2833 [3002] type = friend username = 3002 context = default host = dynamic mailbox = 3002 dtmfmode = rfc2833 [3003] type = friend context = default username = 3003 host = dynamic mailbox = 3003 dtmfmode = rfc2833 [3004] type = friend context = default username = 3004 host = dynamic mailbox = 3004 dtmfmode = rfc2833 [3005] type = friend username = 3005 context = default host = dynamic mailbox = 3005 dtmfmode = rfc2833 [3006] type = friend context = default username = 3006 host = dynamic mailbox = 3006 dtmfmode = rfc2833 [3007] type = friend context = default username = 3007 host = dynamic mailbox = 3007 dtmfmode = rfc2833 [3008] type = friend username = 3008 context = default host = dynamic mailbox = 3008 dtmfmode = rfc2833 ; 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 = :@ ; auth = #@ ; 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 ; 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 ; restrictcid restrictcid ; subscribecontext subscribecontext ; mailbox ; username ; template ; fromdomain ; regexten ; fromuser ; host ; port ; qualify ; defaultip ; rtptimeout ; rtpholdtimeout ; sendrpid ; outboundproxy ;[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] ; we only want to call out, not be called ;secret=guessit ; Authentication user for outbound proxies ; Many SIP providers require this! ;fromdomain=provider.sip.domain ;host=box.provider.com ;user=phone" on URI ; permit only 5 simultaneous outgoing calls to this peer ; send outbound signaling to this proxy, not directly to the peer ;------------------------------------------------------------------------------ ; Definitions of locally connected SIP phones ; ; 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 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 ; Where to start in the dialplan when this phone calls ; Full caller ID, to override the phones config ; we have a static but private IP address ; No registration allowed ; there is not NAT between phone and Asterisk ; allow RTP voice traffic to bypass Asterisk ; either RFC2833 or INFO for the BudgeTone ; 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) ; mailbox 1234 in voicemail context "default" ; need to disallow=all before we can use allow= ; Note: In user sections the order of codecs ; listed with allow= does NOT matter! ;allow=alaw ; Asterisk only supports g723.1 pass-thru! ; Pass-thru only unless g729 license obtained ;[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 ; When they register, create extension 1234 ;callerid="Jane Smith" <5678> ; This device needs to register ; X-Lite is behind a NAT router ; Typically set to NO if behind NAT ;disallow=all ; GSM consumes far less bandwidth than ulaw ;allow=ulaw ;allow=alaw ; Subscribe to status of multiple mailboxes ;[snom] ; Friends place calls and receive calls ; Context for incoming calls from this user ;secret=blah ; Only allow SUBSCRIBE for local extensions ; Use German prompts for this user ; This peer register with us ; Choices are inband, rfc2833, or info ; IP used until peer registers ; Mailbox(-es) for message waiting indicator ; dialplan extension to reach mailbox ; sets the Message-Account in the MWI notify message ; defaults to global vmexten which defaults to "asterisk" ; To have the callerid restriced -> sent as ANI ;disallow=all ; dtmfmode=inband only works with ulaw or alaw! ;[polycom] ; Friends place calls and receive calls ; Context for incoming calls from this user ;secret=blahpoly ; This peer register with us ; Choices are inband, rfc2833, or info ; Username to use in INVITE until peer registers ; Normally you do NOT need to set this parameter ;disallow=all ; dtmfmode=inband only works with ulaw or alaw! ; Polycom phones don't work properly with "never" ;[pingtel] ;type=friend ;secret=blah ;host=dynamic ; Allow matching of peer by IP address without matching port number ; Do not require authentication of incoming INVITEs ; (both) ; 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 ; ; We are in caller groups 1,3,4 ; We can do call pick-p for call group 1,3,4,5 ; IP address to use if peer has not registered ;[cisco1] ;type=friend ;secret=blah ; Qualify peer is no more than 200ms away ; This phone may be natted ; Send SIP and RTP to the IP address that packet is ; received from instead of trusting SIP headers ; This device registers with us ; 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). ; IP address to use until registration ; Username to use when calling this device before registration ; Normally you do NOT need to set this parameter ; Channel variable to be set for all calls from this device