Skip to main content

SIP ( Session Initiation Protocol ) Definitions part 1

The SIP configuration file (sip.conf) contains configuration information for SIP channels. The headings for the channel definitions are formed by a word framed in square brackets ([])—again, with the exception of the [general] section, where we define global SIP parameters. Don’t forget to use comments generously in your sip.conf file.
General SIP Parameters
The following options are to be used within the [general] section of sip.conf:
allowexternalinvites=yes|no
If set to no, this setting disables INVITE and REFER messages to non-local domains.

allowguest=no|yes
If set to no, this disallows guest SIP connections. The default is to allow guest connections. SIP normally requires authentication, but you can accept calls from users who do not support authentication (i.e., do not have a secret field defined).
Certain SIP appliances (such as the Cisco Call Manager v4.1) do not support authentication, so they will not be able to connect if you set allowguest=no
allowoverlap=no|yes

If set to no, overlap dialing is disabled
allowsubscribe=yes|no

Specifies whether or not to allow external devices to subscribe to extension status (as set in the hint priority). Defaults to yes
allowtransfers=no|yes

If set to no, transfers are disabled for all SIP calls, unless specifically enabled on a per-user or per-peer basis
alwaysauthreject=no|yes
If this option is enabled, whenever Asterisk rejects an INVITE or REGISTER, it will always reject it with a 401 Unauthorized message instead of letting the caller know whether there was a matching user or peer for his request:
autodomain=yes|no
Set this option to yes to have Asterisk add the local hostname and local IP addresses to the domain list
bindaddr and bindport
These optional parameters allow you to control the IP interface and port on which you wish to accept SIP connections. If omitted, the port will be set to 5060, and all IP addresses in your Asterisk system will accept incoming SIP connections. If multiple bind addresses are configured, only those interfaces will listen for connections.
The address 0.0.0.0 tells Asterisk to listen on all interfaces:
bindaddr=0.0.0.0
bindport=5060

buggymwi=no|yes
This setting allows Asterisk to send a message-waiting indication to certain Cisco SIP phones with firmware that doesn’t fully support the message-waiting Internet RFC. Enable this option to avoid getting error messages when sending MWI messages on phones with this bug

callevents=yes
Set this to yes when you want SIP to generate Manager events. This will be important if you have external programs that use the Asterisk Manager interface, such as the Flash Operator Panel

checkmwi=30
This option specifies the default amount of time, in seconds, between mailbox checks for peers

compactheaders=yes|no
You can set compactheaders to yes or no. If it’s set to yes, the SIP headers will use a compact format, which may be required if the size of the SIP header is larger thanthe maximum transmission unit (MTU) of your IP headers, causing the IP packet to be fragmented. Do not use this option unless you know what you are doing

defaultexpiry=300
This sets the default SIP registration expiration time, in seconds, for incoming and outgoing registrations. A client will normally define this value when it initially registers, so the default value you set here will be used only if the client does not specify a timeout when it registers. If you are registering to another user agent server (UAS), this is the registration timeout that it will send to the far end

directrtpsetup=yes|no
This setting configures the direct RTP setup between two endpoints without the need for RE-INVITEs. As of the time that this book was written, directrtpsetup was still considered experimental, and as such should not be enabled unless you fully understand the consequences. This option will not work for video calls and cases where the called party sends RTP payloads and FMTP headers in the 200 OK response that do not match the caller’s INVITE request.

Sets the default domain for this Asterisk server. If configured, Asterisk will allow INVITE and REFER messages only to nonlocal domains. You can use the CLI command sip show domains to list the local domains

dumphistory=yes|no
You can set dumphistory to yes or no to enable or disable the printing of the SIP history report at the end of the SIP dialog. The SIP history is printed to the DEBUG logging channel

externhost=my.hostname.tld
externhost takes a fully qualified domain name as its argument. If Asterisk is behind NAT, the SIP header will normally use the private IP address assigned to the server.
If you set this option, Asterisk will perform periodic DNS lookups on the hostname and replace the private IP address with the IP address returned from the DNS lookup
The use of externhost is not recommended in production systems, because if the IP address of the server changes, the wrong IP address will be set in the SIP headers until the next lookup is performed.The use of externip is recommended instead.

externip
externip takes an IP address as its argument. If Asterisk is behind NAT, the SIP header will normally use the private IP address assigned to the server. The remote server will not know how to route back to this address; thus, it must be replaced with a valid, routeable address
externrefresh=30
If externhost is used, externrefresh configures how long, in seconds, should pass between DNS lookups

g726nonstandard=yes
This parameter can be set when dealing with peers that incorrectly use the wrong encoding for the G.726 codec. This setting tells Asterisk to use AAL2 packing order instead of RFC3551 packing order if the peer negotiates G726-32 audio. Ordinarily, that would be contrary to the RFC3551 specification, as the peer should be negotiating AAL2-G726-32 instead. You may need to set this option if you’re usinga Sipura or Grandstream device

ignoreregexpire=yes|no (global)
If ignoreregexpire is set to yes, Asterisk could do one of two things, 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.
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

jbenable=yes|no
Enables the use of an RTP jitter buffer on the receiving side of a SIP channel. Defaults to no. An enabled jitter buffer will be used only if the sending side can create and the receiving side cannot accept jitter. The SIP channel can accept jitter; thus a jitter buffer on the receiving side will be used only if it is forced and enabled

jbforce=yes|no
Forces the use of the RTP jitter buffer on the receiving side of a SIP channel. Defaults to no

jbimpl=fixed|adaptive
This setting is used to specify which jitter buffer implementation to use, the fixed jitter buffer or the adaptive jitter buffer. If the fixed jitter buffer is used, it will always be the size defined by jbmaxsize. If the adaptive jitter buffer is specified, then the jitter buffer will vary in size up to the maximum size specified by jbmaxsize. This setting defaults to fixed

jblog=yes|no
Specifies whether or not to enable jitter buffer frame logging. Defaults to no

jbmaxsize=200
Sets the maximum length of the jitter buffer, in milliseconds

jbresyncthreshold=1000
Jump in the frame timestamps over which the jitter buffer is resynchronized. This is useful to improve the quality of the voice, with big jumps in/broken timestamps that are usually sent from exotic devices and programs. Defaults to 1000
limitonpeers=yes|no
This setting tells Asterisk to apply call limits to peers only. This will improve call limits and status notification for devices set to type=friend because the peer limit will be checked, and not create a separate limit for the user and peer portions of a friend
localnet
localnet is used to tell Asterisk which IP addresses are considered local, so that the address in the SIP header can be translated to that specified by externip or the IP address can be looked up with externhost. The IP addresses should be specified in CIDR notation:
localnet=192.168.1.0/24
localnet=172.16.0.0/16

matchexterniplocally=yes|no
Specifies that Asterisk should substitute the externip or externhost setting only if it matches your localnet setting. Unless you have some sort of strange network setup you will not need to enable this

maxexpiry=3600
This sets the maximum amount of time, in seconds, until a peer’s registration expires,allowed for a registration or subscription.
notifymimetype=text/plain
This takes as its argument a string specifying the MIME type used for the messagewaiting indication (MWI) in the SIP NOTIFY message. The most common setting for this field is text/plain, although it can be customized if need be
notifyringing=yes|no
Specifies whether Asterisk should notify subscriptions on RINGING state

notifyhold=yes|no
Specifies whether Asterisk should notify subscriptions on HOLD state

pedantic=yes
You can set pedantic to yes or no. Setting it to yes enables slow pedantic checking for phones that require it, such as the Pingtel, and enables more strict SIP RFC compliancy.

realm=mybox.example.com
This option sets the realm for digest authentication. Set realm to your fully qualified domain name, which must be globally unique

recordhistory=yes|no
You can set recordhistory to yes or no to enable or disable SIP history recording for all channels

registerattempts=0
Specifies how many times Asterisk will attempt its outbound registrations before giving up. This setting defaults to 0, which means that Asterisk will retry indefinitely

 registertimeout=30
Specifies how often Asterisk should attempt to re-register to other devices

relaxdtmf=yes|no
You can set relaxdtmf to yes or no. Setting it to yes will relax the DTMF detection handling. Use this if Asterisk is having a difficult time determining the DTMF on the SIP channel. Note that this may cause “talkoff,” where Asterisk incorrectly detects DTMF when it should not

rtautoclear=yes|no|seconds (global)
This specifies whether or not Asterisk should auto-expire friends created on the fly on the same schedule as if they had just registered. 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 that number of seconds instead of the normal registration interval

rtcachefriends=yes|no (global)
If rtcachefriends is turned on, Asterisk will cache friends that come from the realtime engine, just as if they had come from sip.conf. This often helps with items such as message-waiting indications on realtime peers

rtsavesysname=yes|no (global)
Specifies whether or not Asterisk should save the systemname in the realtime database at the time of registration

rtupdate=yes|no (global)
If set to yes Asterisk will update the IP address, origination port, and registration period of a peer upon registration. Defaults to yes

sipdebug=yes|no
Specifies whether or not Asterisk should turn on SIP debugging from the time that Asterisk loads the SIP channel driver

sendrpid=yes|no
Specifies whether or not Asterisk should send a Remote-Party-ID header

srvlookup
DNS SRV records are a way of setting up a logical, resolvable address where you can be reached. This allows calls to be forwarded to different locations without the need to change the logical address. By using SRV records, you gain many of the advantages of DNS, whereas disabling them removes the ability to place SIP calls based on domain names.
Currently, the support for SRV records in Asterisk is somewhat lacking. If multiple SRV records are returned, Asterisk will use only the first record.
Using DNS SRV record lookups is highly recommended. To enable them, set
srvlookup=yes in the [general] section of sip.conf

t1min=100
This is the minimum round-trip time for messages to monitored hosts in milliseconds. Defaults to 100 milliseconds

subscribecontext=internal
Limits SUBSCRIBE requests to the specified context. This is useful if you want to limit subscriptions to internal extensions, for example.This option may also be set on a per-user or per-peer basis

 t38pt_udptl=yes|no
Setting t38pt_udptl to yes enables T.38 fax (UDPTL) passthrough on SIP-to-SIP calls, provided both parties have T.38 support. This setting must be enabled in the general section for all devices to work. You can then disable it on a per-device basis.
T.38 fax passthrough works only in SIP-to-SIP calls, without any local or agent channel being used. Asterisk cannot currently originate or terminate T.38 fax calls; it can only passthrough UDPTL from one device to  another.
 tos_sip, tos_audio, and tos_video
Asterisk can set the TOS bits in the IP header to help improve performance on routers that respect TOS bits in their routing calculations. The tos_sip, tos_audio, and tos_video settings control the TOS bits for the SIP messages, the RTP audio, and RTP video respectively. Valid: CS0, CS1, CS2, CS3, CS4, CS5, CS6, CS7, AF11, AF12, AF13, AF21, AF22, AF23, AF31, AF32, AF33, AF41, AF42, AF43, and ef (expedited forwarding). You may also use a numeric value for the TOS bits. For more information, see the doc/ip-tos.txt file in the Asterisk source directory.

trustrpid=yes|no
Specifies whether or not Asterisk should trust the value in the Remote-Party-ID header
useragent=Asterisk PBX v1.4
useragent takes as its argument a string specifying the value for the useragent field in the SIP header. The default value is asterisk
usereqphone
The usereqphone option tells Asterisk to add ;user=phone to SIP URIs that contain a valid phone number

videosupport=yes|no (both)
You can set videosupport to yes or no. You can turn it off on a per-peer basis if general video support is enabled, but you can’t enable it for one peer only without enabling it in the general section

vmexten=8500
This option sets the dialplan extension to reach the voicemailbox, and will be sent in the Message-Account section of the MWI NOTIFY message. Set this if your SIP device supports the Message-Account setting. This option defaults to asterisk

…. continues Part 2

Comments

Popular posts from this blog

Asterisk – CLI commands

Agent commands agent logoff  - Sets an agent offline agent show  - Show status of agents agent show online  - Show all online agents AGI commands agi dump html  - Dumps a list of AGI commands in HTML format agi exec  - Add AGI command to a channel in Async AGI agi set debug [on|off]  - Enable/Disable AGI debugging agi show commands [topic]  - List AGI commands or specific help dnsmgr refresh  - Performs an immediate refresh dnsmgr reload  - Reloads the DNS manager configuration dnsmgr status  - Display the DNS manager status Calendar commands calendar dump sched  - Dump calendar sched context calendar show calendar  - Display information about a calendar calendar show calendars  - Show registered calendars Channel commands channel originate  - Originate a call channel redirect  - Redirect a call channel request hangup  - Request a hangup on a given channel Cli commands cli check permissions  - Try a permissions config for a user cli reload permi

Step by step: Configure call recording - Asterisk tutorials

This article will cover enabling asterisk to record calls. You may want this to interview people over the phone, podcast, or some other purpose. In features.conf, under: [featuremap] uncomment the line that looks like this: automixmon => *3 ; One Touch Record a.k.a. Touch MixMonitor — Make sure to set the X and/or x option in the Dial() or    Queue() app call! Then, enable the X option for Dial() in your dialplan in extensions.conf: PLEASE NOTE:  change you need to make – add the X  your dial rule make look different with me. exten => s,n,Dial(SIP/100,60) make it this instead: exten => s,n,Dial(SIP/100,60,X) The X is what tells Asterisk to allow callers to dial *3 during a call to enable or disable recording. From the asterisk console (run asterisk -r), you should see a line like this appear when the user starts a recording: – User hit ‘*3′ to record call. filename: auto-xxxxx-EXTENSION-DIALEDNUMBER When the recording ends, un

Making video calls – Asterisk tutorial

sip.conf To be able to send video during a call, codec h263 and video support must be enabled. This is done by adding three lines in the sip.conf file (Location: /etc/asterisk/sip.conf). Add the following lines in the [general] tab of the file. videosupport = yes ; Enable video allow = h263 ; H.263 is our video codec allow = h263p ; H.263p is the enhanced video codec Reload Reload the sip.conf file by running the following command in the CLI console:  reload Config in Softphone  Click “Softphone”  Click “Preferences”    Click “Video Codecs”  Verify that h263 and h263+ are selected Click “OK”  Click the video (Webcam) icon to display the video  Dial the other sip phone (number 1002)  Click “Show Video” on the two sip phones. http://asteriskvoipsystem.org/making-video-calls-asterisk-tutorial/