; ; 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, t his can also be set to 'osp' ; if asterisk was compiled with OSP support. ;realm=mydomain.tld ; Realm for digest authentication ; defaults to "asterisk" ; Realms MUST be globally unique according to RF C 3261 ; Set this to your host name or domain name bindport=5060 ; UDP Port to bind to (SIP standard port is 5060 ) bindaddr=216.32.86.146 ; 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 ;pedantic=yes ; Enable slow, pedantic checking for Pingtel ; and multiline formatted headers for strict ; SIP compatibility (defaults to "no") ;tos=184 ; Set IP QoS to either a keyword or numeric val ;tos=lowdelay ; lowdelay,throughput,reliability,mincost,none ;maxexpirey=3600 ; Max length of incoming registration we allow ;defaultexpirey=120 ; Default length of incoming/outoing registratio n ;notifymimetype=text/plain ; Allow overriding of mime type in MWI NOTIFY ;checkmwi=10 ; Default time between mailbox checks for peers ;videosupport=yes ; Turn on support for SIP video ;recordhistory=yes ; Record SIP history by default ; (see sip history / sip no history) ;disallow=all ; First disallow all codecs allow=ulaw ; Allow codecs in order of preference allow=ilbc ; ;musicclass=default ; Sets the default music on hold class for all S IP calls ; This may also be set for individual users/peer s ;language=en ; Default language setting for all users/peers ; This may also be set for individual users/peer s ;relaxdtmf=yes ; Relax dtmf handling ;rtptimeout=60 ; Terminate call if 60 seconds of no RTP activit y ; when we're not on hold ;rtpholdtimeout=300 ; Terminate call if 300 seconds of no RTP activi ty ; when we're on hold (must be > rtptimeout) ;trustrpid = no ; If Remote-Party-ID should be trusted ;progressinband=never ; If we should generate in-band ringing always ; use 'never' to never use in-band signalling, e ven in cases ; where some buggy devices might not render it useragent=Asterisk PBX ; Allows you to change the user agent string ;promiscredir = no ; If yes, allows 302 or REDIR to non-local SIP a ddress ; Note that promiscredir when redirects are made to the ; local system will cause loops since SIP is inc apable ; of performing a "hairpin" call. ;usereqphone = no ; If yes, ";user=phone" is added to uri that con tains ; 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) ;compactheaders = yes ; send compact sip headers. ; ; 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 connec t to local ; extension 1234 in extensions.conf default context, unless you define ; unless you configure a [sip_proxy] section below, and configure a context. ; Tip 1: Avoid assigning hostname to a sip.conf section like [provider.co m] ; 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 (def ault) ;callevents=no ; generate manager events when sip ua performs e vents (e.g. hold) ;---------------------------------------------- NAT SUPPORT -------------------- ---- ; The externip, externhost and localnet settings are used if you use Asterisk be hind ; a NAT device to communicate with services on the outside. ;externip = 200.201.202.203 ; Address that we're going to put in outbound SI P 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 reason able 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 firewalls 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 us ers) ; yes = Always ignore info and assume NAT ; no = Use NAT mode only according to RFC3581 ; never = Never attempt NAT mode or RFC3581 supp ort ; route = Assume NAT, don't send rport ; (work around more UNIDEN bugs) ;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list ; just like friends added from the config file o nly on a ; as-needed basis. ;rtnoupdate=yes ; do not send the update request over realtime. ;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule ; as if it had just registered when the registra tion expires ; the friend will vanish from the configuration until requested ; again. If set to an integer, friends expire ; within this nu mber of seconds instead of the ; same as the re gistration interval [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 = :@ ; 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 ; incominglimit incominglimit ; restrictcid restrictcid ; mailbox ; username ; template ; fromdomain ; regexten ; fromuser ; host ; mask ; port ; qualify ; defaultip ; rtptimeout ; rtpholdtimeout ;[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 ;------------------------------------------------------------------------------ ; Definitions of locally connected SIP phones ; ; type = user a device that calls us ; type = peer a device we place calls to ; 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 propably 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 ;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 ;incominglimit=1 ; permit only 1 outgoing call at a time ; from the phone to asterisk ;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