login | register
Sat 17 of May, 2008 [07:44 UTC]

voip-info.org

Search with Google
Search this site with Google. Results may not include recent changes.
 
Google Ads
Shoutbox
  • Juan Ortega, Thu 15 of May, 2008 [10:33 UTC]: Hi everybody, I'm Juan, an ITCom student, and I need to know what basic elements I need to create a VoIP network. Can anybody helpme, please?,Thank you very much
  • gineta, Wed 14 of May, 2008 [03:58 UTC]: any here not fine the configuration of firewall juniper -screem for VOIP asterisk????
  • Anoop Prabhakaran, Tue 13 of May, 2008 [12:16 UTC]: I am developing Asterisk IVR, Whenever i make a internation call to the IVR system, the DTMF is not getting detected properly, this happens only for the first time, second call onwards system works fine. why this is happening
  • joe, Mon 12 of May, 2008 [04:27 UTC]: Is there an opensource browser based softphone, or a system like Busta where everything is not manages through their website?
  • Nick Barnes, Fri 09 of May, 2008 [11:36 UTC]: Christopher - yesterday I tried an Asterisk install on a CentOS 5.1 box with stock GUI and it all worked fine. Sorry I can't help.
  • aero, Fri 09 of May, 2008 [08:20 UTC]: can someone help me out on this, i tried to play some sound files on my asterisk box and this is the error message i got. WARNING[4429]: format_wav.c:169 check_header: Unexpected freqency 22050 May 8 11:17:39 WARNING[4433]: codec_gsm.c:194 gsmtolin_fra
  • Christopher Faust, Thu 08 of May, 2008 [14:15 UTC]: I beleive that I may have to change something in the xserver configuration. Please advise
  • Christopher Faust, Thu 08 of May, 2008 [14:14 UTC]: Everything was perfect. In the bios I have increased the memory allocated Still receive input not supported on my display.
  • Christopher Faust, Thu 08 of May, 2008 [14:13 UTC]: This would not be my main box. I am doing some testing to see if I can install zaptel and asterisk 1.4 on a full centos 5.1 box with development software Its bizzare, because before I went through the asterisk and zaptel installation everything was perfe
  • Nick Barnes, Thu 08 of May, 2008 [13:44 UTC]: Christopher - I can't see any way in which an Asterisk installation would muck your GUI, but remember that it is advised not to use a GUI on an Asterisk box anyway.
Server Stats
  • Execution time: 1.61s
  • Memory usage: 2.42MB
  • Database queries: 87
  • GZIP: Disabled
  • Server load: 0.74

Asterisk config sip.conf


Configuration file for Asterisk SIP channels, for both inbound and outbound calls.

New in Asterisk v1.2.0: The global option "port" in 1.0.X that is used to set which port to bind to has been changed to "bindport" to be more consistent with the other channel drivers and to avoid confusion with the "port" option for users/peers.

[tammari]
type=friend
callerid="Tuomas Tammisalo" <1000>
username=tammari
host=dynamic
secret=********
regcontext=tammari-internal
regexten=1005
dtmfmode=rfc2833
insecure=very
canreinvite=yes
nat=yes
qualify=yes
context=merus-sipphone
pickupgroup=1
callgroup=1
mailbox=1000@default


Asterisk as a SIP client

In sip.conf under [general] add a register definition:


Format:
 register => user[:secret[:authuser]]@host[:port][/extension]

 or
 register => fromuser@fromdomain:secret@host

If you have problems with your network connection going up and down (e.g. an unreliable cable connection) and you keep losing your sip registry, you may want to add registerattempts and registertimeout settings to the general section above the register definitions. Setting registerattempts=0 will force Asterisk to attempt to reregister until it can (the default is 10 tries). registertimeout sets the length of time in seconds between registration attempts (the default is 20 seconds).

P.S. Note for sipgate.co.uk users: /extension must be your sipgate number (this is not true; I am using "99" --jrc) - define one to accept this in your extensions.conf. An alternate port does not seem to work with sipgate.co.uk unless it is defined as the bindport in sip.conf without the [:port] syntax.

Example:

 ; Register 2345@mysipprovider.com with authname 2345 at mysipprovider.com at sip provider as 1234 here:
 register => 2345:password@mysipprovider.com/1234
 ; Register 1235@mysipprovider.com with authname 1235 and realm mysipprovider.com at proxyof.mysipprovider.com as s here.
 ; (as needed by budgetphone.nl):
 register => 1235@mysipprovider.com:password:1235@proxyof.mysipprovider.com

  • user is the user id for this SIP server (ex 2345)
  • authuser is the optional authorization user for the SIP server
  • secret is the user's password
  • host is the domain or host name for the SIP server. This SIP server needs a definition in a section of its own in SIP.conf (mysipprovider.com).
  • port send the register request to this port at host. Defaults to 5060
  • /1234 is the Asterisk contact extension. 1234 is put into the contact header in the SIP Register message. The contact extension is used by remote SIP server when it needs to send a call to Asterisk. See the example below. The default context extension is "s".

Agreed, it's not very good to have a lot of cleartext passwords in this text file, but that's how it works now.
You only need to register if a) you want to be called, and b) you appear to the other side as having a dynamic IP address. Check the success of your own server's registrations at the CLI with "SIP SHOW REGISTRY", whereas you can obtain a list of clients that registered with your server with the help of "SIP SHOW PEERS". You may examine all details of a peer's registration with "SIP SHOW PEER <NAME>". Enter "HELP SIP" at the CLI for additional commands.

The server definition for outgoing calls looks like this:

 [mysipprovider-out]
 type=peer
 secret=password
 username=2345
 host=sipserver.mysipprovider.com
 fromuser=2345
 fromdomain=fwd.pulver.com
 canrenvite=no
 insecure=very
 qualify=yes
 nat=yes
 context=from-mysipprovider ; this section will be defined in extensions.conf

In extensions.conf you'd then use a statement like this:

 exten => _9.,1,Dial(SIP/${EXTEN:1}@mysipprovider-out,30,r)

Please note that the ${EXTEN:1} variable here extracts all but the first characters from the current extension (the current match), in this case: 9 + the following digits. Refer to the Asterisk variables Substrings section for more details

Here is the section(in extensions.conf) which routes calls from our sip provider to where we decide:

 [from-mysipprovider]
 exten => 1234,1,Answer ; 1234 is the contact extension, default contact extension is "s"
 exten => 1234,2,Dial(SIP/111,25,Ttr) ; incoming calls are redirected to SIP telephone with number 111       
 exten => 1234,3,Hangup



Another example


[general]
context = (own_context in extensions.conf where recive the call )
realm = real.com
bindport=5060
srvlookup=yes
disallow=all
allow=ulaw
allow=gsm
language=en

trustrpid = yes
sendrpid = yes

register => fromuser@fromdomain:secret@host
register => XXXX@YYYY.com:AAAA@IP

[my_provider]
type=peer
fromuser=XXXX
fromdomain=YYYY.com
canreinvite=no
secret=AAAAA
insecure=very
host= IP
disallow=all
allow=gsm
allow=ulaw
allow=alaw
qualify=yes
nat=no

Outbound call in extensions.conf
exten => _X.,1,Dial(SIP/${EXTEN}@my_provider)

SIP Configuration - general

The [general] section of sip.conf includes the following variables:

  • allowsubscribe = yes|no : Allow or Ignore Subscribe requests
  • allow = <codec> : Allow codecs in order of preference (Use DISALLOW=ALL first, before allowing other codecs)
  • disallow = all : Disallow all codecs (global configuration)
  • allowexternalinvites = yes|no : Enable/Disable INVITE and REFER to non-local domains. Default yes. (New in v1.2.x).
  • allowguest = yes|no : Allow or reject guest calls. Default is yes. (this can also be set to 'osp' if asterisk was compiled with OSP support). (New in v1.2.x).
  • allowoverlap = yes|no : Enable/disable overlap dialing support. Default yes.
  • Autocreatepeer = yes|no : If set, anyone will be able to log in as a peer (with no check of credentials; useful for operation with SER). Default no.
  • autodomain = yes|no : Enable/disable Asterisk's ability to add local hostnames and local IP address to the domain list. externip or externhost are also taken into the domain list. Default no. (New in v1.2.x).
  • bindaddr = IP_Address : IP Address to bind to (listen on). Default 0.0.0.0 (all network interfaces).
  • bindport = Number : UDP Port to bind to (listen on). Used to be port in Asterisk v1.0.x. Default 5060.
  • callerid = <string> : Caller ID information used when nothing else is available. Defaults to asterisk. (The ability to override the default appears to available in Asterisk 1.0.9. Unsure about other versions.)
  • canreinvite = update|yes|no (global setting): For some reason this defaults to yes, so beware...
  • checkmwi = Number : Global interval (in seconds) between mailbox checks. Default 10 seconds. (New in v1.2.x)
  • compactheaders = yes|no : Indicates Asterisk should send compact (i.e. abbreviated) headers in the SIP messages. Default no. (New in v1.2.x)
  • context = <contextname> : This is the default context and is used when a endpoint has no context property. The context in section of an endpoint is used to route calls from that endpoint to the wanted destination. The context body is located in extensions.conf.
  • defaultexpirey= Number : Default duration (in seconds) of incoming/outgoing registration. Default 120 seconds.
  • dtmfmode = inband|info|rfc2833 (global setting). Default rfc2833.
  • domain = domains : Comma separated list of domains which Asterisk is responsible for. (New in Asterisk 1.2.x)
  • dumphistory = yes|no : Enable support for dumping of SIP conversation's transaction history to LOG_DEBUG. Default no. (New in v1.2.x)
  • externip = IP_Address or a hostname : Address that we're going to put in SIP messages if we're behind a NAT. If a hostname is used as the value, then the IP address associated with the hostname is looked up only once during the reading of the sip.conf. If you want support for a hostname associated with a dynamic IP address, use externhost.
  • externhost = hostname.tld : (New in Asterisk 1.2.x)
  • externrefresh = Number : Specify how often (in seconds) a hostname DNS lookup should be performed for the value entered in 'externhost'. Default 10 seconds. (New in Asterisk 1.2.x).

  • ignoreregexpire = yes|no : Indicates whether to use Contact information about a peer even if the information is stale because it has reached its expiration time. Default no. (New in v1.2.x)
  • jbenable = yes|no : Enables the use of a jitterbuffer on the receiving side of a SIP channel. (Added in Version 1.4)
  • jbforce = yes|no : Forces the use of a jitterbuffer on the receive side of a SIP channel. Defaults to "no". (Added in Version 1.4)
  • jbmaxsize = Number : Max length of the jitterbuffer in milliseconds. (Added in Version 1.4)
  • jbresyncthreshold = Number : 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. (Added in Version 1.4)
  • jbimpl = fixed|adaptive: 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. (Added in Version 1.4)
  • jblog = no|yes: Enables jitterbuffer frame logging. Defaults to "no". (Added in Version 1.4)
  • language = <string> : Default language used by any Playback()/Background().
  • localnet = NetAddress/Netmask : local network and mask.
  • fromdomain= <domain> : Sets default From: domain in SIP messages when acting as a SIP ua (client)
  • insecure = very|yes|no|invite|port : Specifies how to handle connections with peers. Default no (authenticate all connections). (invite and port added in v1.2.x).
  • maxexpirey = Number : Max duration (in seconds) of incoming registration we allow. Default 3600 seconds.
  • musicclass = one of the classes specified in musiconhold.conf
  • musdiconhold = same as musicclass
  • nat = yes|no : Please note that as of Asterisk 1.0.x nat can now have the values: yes|no|never|route. Default no which really means to use rfc3581 techniques.
  • notifymimetype = mediatype/subtype : Allow overriding of mime type in MWI NOTIFY used in voicemail online messages. Valid MIME types can be found here. Default application/simple-message-summary. (New in v1.2.x).
  • notifyringing = yes|no : Notify subscription on RINGING state. Default yes. (New in v1.2.x).
  • outboundproxy = IP_address or DNS SRV name (excluding the _sip._udp prefix) : SRV name, hostname, or IP address of the outbound SIP Proxy. (New in v1.2.x).
  • outboundproxyport = Number : UDP port number for the Outbound SIP Proxy. (New in v1.2.x).
  • pedantic = yes|no : Enable slow, pedantic checking of Call-ID:s, multiline SIP headers and URI-encoded headers. Default no.
  • port = <portno> : Default SIP port of peer. (this is not the port for Asterisk to listen. See bindport).
  • progressinband = never|no|yes : If we should generate in-band ringing always. Default never.
  • promiscredir= yes|no : Allows support for 302 Redirects; (Note: will redirect them all to the local extension returned in Contact rather than to that extension at the destination). Default no.
  • qualify = yes|no|milliseconds : Check if client is reachable. If yes, the checks occur every 2000 milliseconds (2 seconds). Default no.
  • realm = my realm (Change authentication realm from asterisk (default) to your own. Requires Asterisk v1.x)
  • recordhistory = yes|no. Enable logging of SIP conversation's transaction history. Default no. (New in v1.2.x).
  • regcontext = context : Default context to use for SIP REGISTER replies from the SIP Registrar.
  • register => <username>:<password>:[authid]@<sip client/peer id in sip.conf>/<contact> :Register with a SIP provider
  • registerattempts = Number : Number of SIP REGISTER messages to send to a SIP Registrar before giving up. Default 0 (no limit). (New in v1.2.x).
  • registertimeout = Number : Number of seconds to wait for a response from a SIP Registrar before classifying the SIP REGISTER has timed out. Default 20 seconds. (New in v1.2.x).
  • relaxdtmf = yes|no: Default no.
  • rtautoclear = yes|no|number : Auto-Expire friends created on the fly. If yes the autoexpire will be in 120 seconds. Default yes. (New in v1.2.x).
  • rtcachefriends = yes|no : Cache realtime friends by adding them to the internal list just like friends added from the config file. Default no. (New in v1.2.x)
  • rtsavesysname = yes|no : If set will write the value of asterisk.conf options systemname to the sip peer table in the field "regserver". Useful for multi-server systems. (New in v1.?)
  • rtpholdtimeout = Number : Max number of seconds of inactivity before terminating a call on hold. Default 0 (no limit). (New in v1.2.x).
  • rtpkeepalive = Number : Number of seconds, when a RTP Keepalive packet will be sent if no other RTP traffic on that connection. Default 0 (no RTP Keepalive). (New in v1.2.x).
  • rtptimeout = Number : Number of seconds, to wait for RTP traffic before classify the connection as discontinued. Default 0 (no RTP timeout). (New in v1.2.x).
  • rtupdate = yes|no : Send registry updates to the database when using Realtime support. Default yes. (New in v1.2.x).
  • sendrpid = yes|no : If a Remote-Party-ID SIP header should be sent. Default no.
  • sipdebug = yes|no. Default setting for whether SIP debug is enabled upon loading of the sip.conf. Default no. (New in v1.2.x).
  • srvlookup = yes|no : Enable DNS SRV lookups on calls. Default no.
  • tos = <value> : Set IP QoS parameters for outgoing media streams (numeric values are also accepted, like tos=184 )
  • trustrpid = yes|no : If Remote-Party-ID SIP header should be trusted. Default no.
  • useclientcode = yes|no : If yes, then the Call Originator as stated in the CDR will be changed to whatever is specified in a X-ClientCode SIP Header. Default no. (New in v1.2.x)
  • usereqphone = yes|no : Indicates whether to add a ";user=phone" to the URI. Default no. (New in v1.2.x)
  • useragent = <string> : Allow the SIP header "User-Agent" to be customized. Default asterisk.
  • videosupport = yes|no : Turn on support for SIP video (peer specific setting added in SVN Dec 21 2005, bug 5427. Default no.
  • vmexten = <string> : Dialplan extension to reach mailbox. Default asterisk. (New in v1.2.x)
  • callevents = yes|no: Set to yes to receive events on AMI when a call is put on/off hold.




SIP configurations - peers and clients

These variables can be configured for each SIP peer definition:

(If not specified, the configuration variable can be used for both type=peer and type=user.)
  • accountcode = <string> : Users may be associated with an accountcode. See Asterisk billing
  • allow = <codec> : Allow codecs in order of preference (Use DISALLOW=ALL first, before allowing other codecs)
  • disallow = all : Disallow all codecs for this peer or user definition.
  • allowguest = yes|no : Allow or reject guest calls (default is yes, this can also be set to 'osp' if asterisk was compiled with OSP support). (New in v1.2.x).
  • amaflags : Categorization for CDR records. Choices are default, omit, billing, documentation. See Asterisk billing
  • astdb : Appears to insert a value in the Asterisk database. See example below.
  • auth = <authname> : Value assigned to the Digest username= SIP header.
  • callerid = <string> : Caller ID information used when nothing else is available. Defaults to asterisk.
  • busy-level = number : Number of simultaneous calls until user/peer is busy
  • call-limit = number : Number of simultaneous calls through this user/peer.
  • callgroup = num1,num2-num3 : Defines call groups for calls to this device.
  • callingpres = number|descriptive_text : Set Caller-ID presentation on a call. Valid descriptive values are: allowed_not_screened, allowed_passed_screen, allowed_failed_screen, allowed, prohib_not_screened, prohib_passed_screen, prohib_failed_screen, prohib, and unavailable. See SetCallerPres for more information. Default allowed_not_screened.
  • canreinvite = update|yes|no : If the client is able to support SIP re-invites. Default yes.
  • context = <context_name> : If type=user, the Context for the inbound call from this SIP user definition. If type=peer, the Context in the dialplan for outbound calls from this SIP peer definition. If type=friend the context used for both inbound and outbound calls through the SIP entities definition. If no type=user entry matches an inbound call, then a type=peer or type=friend will match if the hostname or IP address defined in host= matches.
  • defaultip = Dotted.Quad.IP.Addr : Default IP address of client host= is specified as DYNAMIC. Used if client has not been registered at any other IP address. Valid only for type=peer.
  • dtmfmode = inband|info|rfc2833 : How the client handles DTMF signalling. Default rfc2833.
  • fromuser = <from_ID> : Specify user to put in "from" instead of callerid (overrides the callerid) when placing calls _to_ peer (another SIP proxy). Valid only for type=peer.
  • fromdomain = <domain> : Sets default From: domain in SIP messages when placing calls _to_ peer. Valid only when in [general] section or type=peer.
  • fullcontact = <sip:uri_contact> : SIP URI contact for realtime peer. Valid only for realtime peers.
  • host = dynamic|hostname|IPAddr : How to find the client - IP # or host name. If you want the phone to register itself, use the keyword dynamic instead of Host IP.
  • incominglimit and outgoinglimit = Number : Limits for number of simultaneous active calls for a SIP client. Valid only for type=peer.
  • insecure : very|yes|no|invite|port : Specifies how to handle connections with peers. Default no (authenticate all connections). (invite and port added in v1.2.x).
  • ipaddr : Dotted Quad IP address of the peer. Valid only for realtime peers.
  • language : A language code defined in indications.conf - defines language for prompts
  • mailbox = mailbox : Voicemail extension (for message waiting indications). Valid only for type=peer.
  • md5secret : MD5-Hash of "<user>:==SIP_realm==:<secret>" (can be used instead of secret). Default for authenticating to an Asterisk server when SIP realm is not explicitly declared is "<user>:asterisk:<secret>".
  • musicclass = one of the classes specified in musiconhold.conf
  • musiconhold = Set class of musiconhold on calls from SIP phone. Calls to the phone require SetMusicOnHold cmd of higher priority (lower numerical value of priority) than Dial cmd in dialplan in order to set this class for the call. Calls have the MusicOnHold class set on a per call basis, not on a per phone basis, and making a call through any extension specifying SetMusicOnHold will override this value for the call.
  • name = <name> : Name of the realtime peer. Valid only for realtime peers.

  • nat = yes|no : This variable changes the behaviour of Asterisk for clients behind a firewall. This does not solve the problem if Asterisk is behind the firewall and the client on the outside. Please note that as of Asterisk 1.0.x nat can now have the values: yes|no|never|route. Default no which really means to use rfc3581 techniques.
  • outboundproxy = IP_address or DNS SRV name (excluding the _sip._udp prefix) : SRV name, hostname, or IP address of the outbound SIP Proxy. Valid only in [general] section and type=peer. (New in v1.2.x).
  • permit, deny,mask : IP address and network restriction
  • pickupgroup : Group that can pickup fellow workers' calls using *8 and the Pickup() application on the *8 extension
  • port : SIP port of the client
  • progressinband = never|no|yes : If we should generate in-band ringing always. Default never.
  • promiscredir = yes|no : Allows support for 302 Redirects; (Note: will redirect them all to the local extension returned in Contact rather than to that extension at the destination). Default no.
  • qualify = yes|no|milliseconds : Check if client is reachable. If yes, the checks occur every 2000 milliseconds (2 seconds). Valid only in [general] section and type=peer.
  • regexten =
  • regseconds = seconds : Number of seconds between SIP REGISTER. Valid only for realtime peer entries.
  • restrictcid : (yes/no) To have the callerid restricted -> sent as ANI; use this to hide the caller ID. This does not seem to work. This variable has been depreciated as of v1.2.x.
  • rtpkeepalive = seconds : Number of seconds, when a RTP Keepalive packet will be sent if no other RTP traffic on that connection. Default 0 (no RTP Keepalive). Valid only in [general] section and type=peer.
  • rtptimeout = seconds : Terminate call if x seconds of no RTP activity when we're not on hold. Valid only in [general] section and type=peer.
  • rtpholdtimeout = seconds : Terminate call if x seconds of no RTP activity when we're on hold (must be larger than rtptimeout). Valid only in [general] section and type=peer.
  • secret : If Asterisk is acting as a SIP Server, then this SIP client must login with this Password (A shared secret). If Asterisk is acting as a SIP client to a remote SIP server that requires SIP INVITE authentication, then this field is used to authenticate SIP INVITEs that Asterisk sends to the remote SIP server.
  • sendrpid = yes|no : If a Remote-Party-ID SIP header should be sent. Default no.
  • setvar = variable=value : Channel variable to be set for all calls from this peer/user.
  • subscribecontext = <context_name> : Set a specific context for SIP SUBSCRIBE requests
  • trustrpid = yes|no : If Remote-Party-ID SIP header should be trusted. Default no.
  • type = user|peer|friend : Relationship to client - outbound provider or full client?
  • useclientcode = yes|no : If yes, then the Call Originator as stated in the CDR will be changed to whatever is specified in a X-ClientCode SIP Header. Default no. (New in v1.2.x)
  • usereqphone = yes|no : Indicates whether to add a ";user=phone" to the URI. Default no. Valid only in [general] and type=peer.
  • username = <username[@realm]> : If Asterisk is acting as a SIP client to a remote SIP server that requires SIP INVITE authentication, then this field is used to authenticate SIP INVITEs that Asterisk sends to the remote SIP server. Also, for peers that register with Asterisk, this username is used in INVITEs until we have a registration.
  • vmexten = <string> : Dialplan extension to reach mailbox. Default asterisk. Valid only in [general] or type=peer.



Notes

  • Asterisk does not yet support SIP over TCP. It only supports SIP over UDP.
  • For Grandstream phones: set dtmfmode=info
  • Asterisk uses the incoming RTP Stream as a timing source for sending its outgoing Stream. If the incoming stream is interrupted due to silence suppression then musiconhold will be choppy. So in conclusion, you cannot use silence suppression. Make sure ALL SIP phones have disabled silence suppression. There is a solution for the silence suppression problem, see bug 5374 for details.





Examples

Peer/User Sections

Each SIP client that connects to Asterisk needs a definition in SIP.CONF. Here is a few samples:

[grandstream1]

type=friend                   ; either "friend" (peer+user), "peer" or "user"
context=from-sip
username=grandstream1         ; usually matches the section title
fromuser=grandstream1         ; overrides the callerid, e.g. required by FWD
callerid=John Doe <1234>
host=192.168.0.23             ; we have a static but private IP address
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
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
astdb=chan2ext/SIP/grandstream1=1234 ; ensures an astDB entry exists

[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
username=xlite1
callerid="Jane Smith" <5678>
host=dynamic
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 G711-u (ulaw)
allow=ulaw
allow=alaw

[user1_snomsip]
type=friend
secret=blah
host=dynamic
dtmfmode=inband                ; Choices are inband, rfc2833, or info
defaultip=192.168.0.59
mailbox=1234,2345              ; Mailbox for message waiting indicator
disallow=all
allow=ulaw                     ; since we chose 'inband' for dtmf we must use g.711

allow=alaw

[user2_pingtel]
type=friend
username=user2_pingtel
secret=blah
host=dynamic
qualify=1000                  ; Consider it down if it's 1 second to reply
callgroup=1,3-4               ; we are member of the call groups 1, 3 and 4
pickupgroup=1,3-4             ; we can do call pick-up with *8 for the callgroups 1, 3 and 4
defaultip=192.168.0.60
disallow=all
allow=ulaw
allow=alaw
allow=g729

[user3_cisco]

type=friend
username=user3_cisco
secret=blah
nat=yes                        ; This phone may be natted
host=dynamic
canreinvite=no                 ; Cisco poops on reinvite sometimes
qualify=200                    ; Qualify peer is no more than 200ms away
defaultip=192.168.0.4
disallow=all
allow=ulaw
allow=alaw
allow=g729

[user4_cisco1]
type=friend

username=user4_cisco
fromuser=markster              ; Specify user to put in "from" instead of callerid
secret=blah
defaultip=192.168.0.4          ; use either host=dynamic or defaultip=...
amaflags=default               ; Choices are default, omit, billing, documentation
accountcode=markster           ; Users may be associated with an accountcode to ease billing
disallow=all
allow=ulaw
allow=alaw
allow=g729
allow=g723.1

These definitions are documented in the Digium Asterisk handbook.

After you defined these SIP client accounts in SIP.conf you are able to login to the asterisk server from clients and place calls. To receive calls, you need to configure extensions in extensions.conf. Example:


 exten => 1010,1, Dial(SIP/user3_cisco,10,t)

If someone calls extension 1010, the sip client logged in as user3_cisco is dialled in order to receive the call.

Notes

  • the variable ${VXML_URL} can be used to add additional items to the To: header. The value is appended, after a semicolon, to the SIP To: header. Note that previous documentation on this site was incorrect; this variable has nothing to do with pushing pages to a Cisco 7960 phone (something that is currently impossible in the Cisco SIP firmware). The purpose is described in the author's e-mail
  • the variable ${ALERT_INFO} can be used to create a new header called Alert-Info: which can be used to create distinctive ringing on the Cisco SIP-enabled phone devices with firmware version 6.0 onward. For Cisco 7940/60, ALERT_INFO can have the value of any of the following built-in ringtones:
  - Bellcore-BusyVerify
  - Bellcore-Stutter
  - Bellcore-MsgWaiting
  - Bellcore-dr1
  - Bellcore-dr2
  - Bellcore-dr3
  - Bellcore-dr4
  - Bellcore-dr5

It is not currently possible to specify a custom ring tone, only a cadence on the default ringtone. You will have to listen quite carefully to tell that the ringing is different. Cisco bug ID CSCec42938 tracks the request for it to work on custom ring tones.

Connect to Free World Dialup (no NAT)

[general]
disallow=all
allow=gsm
allow=ulaw
allow=alaw
context=from-sip
maxexpirey=180
defaultexpirey=160
tos=reliability
register => <FWD#>:<FWD_PASSWORD>@fwd.pulver.com/CONTACT

[fwd.pulver.com]
type=friend
secret=<FWD_PASSWORD>
username=<FWD#>
host=fwd.pulver.com
insecure=very ; required for incoming FWD calls

Now go to Asterisk config extensions.conf to view how to setup [from-sip] and [fwd-out] contexts in extensions.conf

Using Asterisk together with SER


[general]
context=OUTGOING
autocreatepeer=yes

[Provider]
type=friend
username=XXXXX
secret=XXXXX
host=xxxxx.FakeProvider.com

So when Asterisk receives a call from SER it will "autocreatepeer" and give access to the OUTGOING context.

Using Asterisk together with OpenSER


[general]
context=OUTGOING
autocreatepeer=yes

[Provider]
type=friend
username=what_so_ever
secret=what_so_ever
host=xyz.FakeProvider.com

Asterisk will create peer when receives a call from OpenSER and gives access to the OUTGOING context.
To use Asterisk and OpenSER together in realtime, see Realtime Integration Of Asterisk With OpenSER.


Controlling sip.conf from outside


Version notes

This section will document things that may break as you upgrade a version. New features generally don't break old configuration files.
  • 1.2: Channel configuration keyword restrictcid has been deprecated.
  • 1.2.10: The general keyword "port" has changed to "bindport". "port" in channel configurations remains as a reference to the remote server.

See also


Back to Asterisk config files, Asterisk

Created by oej, Last modification by Robert Heel on Wed 13 of Feb, 2008 [11:25 UTC]

Comments Filter

Asterisk and Ekiga

by palvali on Tuesday 08 of January, 2008 [19:08:33 UTC]
Hi,,

I am using Ekiga as my sip phone and asterisk as PBX. I was unable to register to asterisk.
In sip.conf i have added this ....
xxx
type=friend
secret=yyy
qualify=yes
nat=no
host=dynamic
canreinvite=no
context=home

In extensions.conf iam giving as
exten => xxx,2,Dial(SIP/xxx)

In Ekiga.
I am giving the IP address of the system where asterisk was loaded ...

But, I am unable to register in that,,,

Please, can any one help me in solving this....

Re: outbound call with service voicedata.be

by Diogo Baeta on Thursday 21 of June, 2007 [01:40:57 UTC]
I had the same issue on a local provider "netcall.pt" which at the time was using SER. When I changed the sip useragent to something other than "Asterisk PBX" it was solved.

Multiline phone setup

by Greg Barr on Thursday 12 of April, 2007 [21:27:35 UTC]
I have a SPA-841. I want to assign 2 different extensions in extensions.conf to the two extensions on the phone. I have tried to change the port on the second ext, but when dialing the extension I set up for it, asterisk says Everyone is busy/congested at this time. When I dial from either ext on the phone, asterisk sees it as coming from ext 1. Can you have to entries in sip.conf for the same phone with different parameters?I have a SPA-841. I want to assign 2 different extensions in extensions.conf to the two extensions on the phone. I have tried to change the port on the second ext, but when dialing the extension I set up for it, asterisk says Everyone is busy/congested at this time. When I dial from either ext on the phone, asterisk sees it as coming from ext 1. Can you have to entries in sip.conf for the same phone with different parameters?

sip.conf:
general
context=internal
srvlookup=yes

test
username=test
type=friend
secret=password
host=dynamic
;port=5060
allow=all
qualify=yes
nat=no
mailbox=102@default
callerid="John Smith" <3175554321>

test2
type=friend
username=test2
secret=password
host=dynamic
port=5065
allow=all
qualify=yes
callerid="Your Name Here" <5555551234>
mailbox=102@default

Typo

by alen on Friday 09 of February, 2007 [01:24:19 UTC]
I was looking for defaultexpiry and maxexpiry information, but there was nothing.
They are all written as "expirey".

Using Asterisk together with SER

by Evert Meulie on Wednesday 01 of November, 2006 [08:51:55 UTC]
Has anyone gotten this to work?

I need to get it to work with Asterisk between SER & my SIP provider, handling both incoming and outgoing calls.

Example - Topex GSM Gateway SIP Connection

by Michael Toop on Saturday 08 of July, 2006 [21:00:42 UTC]
One can get a SIP card for the Topex GSM gateways. This saves on the TDM overhead on Asterisk machines, with traditional integration with E1. From the Asterisk perspective it is quite simple, see example below, but from the Topex device it is not. *Get help* from their technicians for this, jumpers need to be changes etc. etc.

Example sip.conf

topex
   type=peer
   port = 5060
   host=XXX.XXX.XXX.XXX
   bindaddr=XXX.XXX.XXX.XXX  ; Local interface
   insecure=very
   qualify=no
   canreinvite=no
   disallow=all
   allow=alaw
   allow=ulaw
   register=>:@XXX.XXX.XXX.XXX  ; Local interface

Have fun, cheers... Michael Toop.

SIP bindaddr= confusion

by Jason Burbage on Saturday 04 of March, 2006 [00:30:05 UTC]
The statement "(0.0.0.0 binds to all)" next to the bindaddr= parameter in the default sip.conf is very misleading.

If you configure bindaddr=0.0.0.0 in sip.conf, SIP will not truly bind to any IP other than the first IP on a particular ethernet interface (or more specifically, the system's ip route to the SIP device, which will be the first IP unless configured otherwise). It will respond to requests sent to any IP on the machine, however those responses will always be sent from the first IP and therefore if the original request was sent to a secondary IP, the response will inevitably be discarded by the SIP device as unrelated.

This is contrary to the behavior of hundreds if not thousands of other types of servers, and in particular the behavior of those which claim to bind to all addresses, but apparently is intended behavior as according to Corydon76 from Digium: "This has been asked many times before, and the answer is still the same. We simply don't support this behavior."

So beware — "you cannot alias your Ethernet interface to multiple addresses and expect it to work."

Of course this means you cannot use systems like heartbeat to transfer a virtual IP between SIP servers to maintain redundancy as a workaround for yet another asterisk weakness (that it will only use the first SRV record, though this weakness is actually well-documented and I believe they intend to fix it).

Hope you have a plan C. :) If it helps, we solved this problem here using SRV on the clients (since they handle it correctly), and DUNDi on the server side.

outbound call with service voicedata.be

by Fons van der Beek on Thursday 09 of February, 2006 [06:21:58 UTC]
Hallo,
I am trying to make an outgoing call over the sip provider voicedata
but everytime i get a "this accountcode is not valid', this means i choose a wrong number, or my registration is wrong
-dailing out to this account by using a sipura 941 works fine!
-inbound calls work flawlessly

mijn sip.conf
voice1
type = friend
secret = voippassword
username = voipusername
fromuser = voipusername
host = 212.3.246.7
outboundproxy = 212.3.246.7
context = default ; this section will be defined in extensions.conf
insecure = very ; required for incoming calls
authname = voipusername
canreinvite = no

extension.conf
exten => _9.,1,Dial(SIP/${EXTEN:1}@voice1,60)

The leading "9" is nicely stripped, I also tried including the countrynumber
the outgoing sipcall is nicely in the format numbertocall@212.3.246.7

thereis no difference if i use IPnumber or dns name
using canreinvite makes no difference

I have the feeling that i have to use my username and password in the dialcommand, but how???
Does anybody has a clue?

inbound SIP calls from Cisco IOS GW

by Scott Keagy on Friday 27 of January, 2006 [23:33:31 UTC]
It took me a while to experiment and figure this out. Using type=peer, the host= parameter did not work to associate inbound calls from the Cisco VoIP GW. sip debug logs kept showing "Found no matching peer or user for '192.168.x.y:49557' when I did have a host=192.168.x.y entry (would have used hostname, but no DNS entry for the IP addr and I wanted to not have DNS be a dependency anyways). As soon as I added an entry for ipaddr=192.168.x.y it worked. Note x & y are real numbers, I just blanked them out for this comment.

Re: grandstream bt101 no caller id

by ewumnrr on Wednesday 09 of March, 2005 [08:44:42 UTC]
don't set the fromuser variable!

Please update this page with new information, just login and click on the "Edit" or "Add Comment" button above. Get a free login here: Register Thanks! - support@voip-info.org

Page Changes | Comments

Sponsored by:

Terms of Service Privacy Policy
© 2003-2008 VOIP-Info.org LLC

Powered by bitweaver