Asterisk-sip.conf: Difference between revisions
No edit summary |
|||
Line 334: | Line 334: | ||
* '''engine= (1.8.x)''' | * '''engine= (1.8.x)''' | ||
: RTP engine to use when communicating with the device | : RTP engine to use when communicating with the device | ||
=== STATUS NOTIFICATIONS (SUBSCRIPTIONS) === | |||
<pre> | |||
;--------------------------- STATUS NOTIFICATIONS (SUBSCRIPTIONS) ---------------------------- | |||
; You can subscribe to the status of extensions with a "hint" priority | |||
; (See extensions.conf.sample for examples) | |||
; chan_sip support two major formats for notifications: dialog-info and SIMPLE | |||
; | |||
; You will get more detailed reports (busy etc) if you have a call counter enabled | |||
; for a device. | |||
; | |||
; If you set the busylevel, we will indicate busy when we have a number of calls that | |||
; matches the busylevel treshold. | |||
; | |||
; For queues, you will need this level of detail in status reporting, regardless | |||
; if you use SIP subscriptions. Queues and manager use the same internal interface | |||
; for reading status information. | |||
; | |||
; Note: Subscriptions does not work if you have a realtime dialplan and use the | |||
; realtime switch. | |||
; | |||
;allowsubscribe=no ; Disable support for subscriptions. (Default is yes) | |||
;subscribecontext = default ; Set a specific context for SUBSCRIBE requests | |||
; Useful to limit subscriptions to local extensions | |||
; Settable per peer/user also | |||
;notifyringing = no ; Control whether subscriptions already INUSE get sent | |||
; RINGING when another call is sent (default: yes) | |||
;notifyhold = yes ; Notify subscriptions on HOLD state (default: no) | |||
; Turning on notifyringing and notifyhold will add a lot | |||
; more database transactions if you are using realtime. | |||
;notifycid = yes ; Control whether caller ID information is sent along with | |||
; dialog-info+xml notifications (supported by snom phones). | |||
; Note that this feature will only work properly when the | |||
; incoming call is using the same extension and context that | |||
; is being used as the hint for the called extension. This means | |||
; that it won't work when using subscribecontext for your sip | |||
; user or peer (if subscribecontext is different than context). | |||
; This is also limited to a single caller, meaning that if an | |||
; extension is ringing because multiple calls are incoming, | |||
; only one will be used as the source of caller ID. Specify | |||
; 'ignore-context' to ignore the called context when looking | |||
; for the caller's channel. The default value is 'no.' Setting | |||
; notifycid to 'ignore-context' also causes call-pickups attempted | |||
; via SNOM's NOTIFY mechanism to set the context for the call pickup | |||
; to PICKUPMARK. | |||
callcounter = yes ; Enable call counters on devices. This can be set per | |||
; device too. | |||
</pre> | |||
* callcounter : SIP Channel 채널에서 Call counter 를 활성화 할지 여부를 설정한다. 만약 Queue 를 사용한다면 반드시 yes로 설정해주어야 한다. | |||
== Peer section == | == Peer section == |
Revision as of 22:42, 16 November 2015
Overview
Asterisk sip.conf 문서 설명.
Basic
sip.conf 는 크게 4가지 섹션으로 이루어져 있다.
[general] context=unauthenticated ; default context for incoming calls allowguest=no ; disable unauthenticated calls srvlookup=no ; disable DNS SRV record lookup on outbound calls ; (unless you have a reliable DNS connection, in which case yes) udpbindaddr=0.0.0.0 ; listen for UDP requests on all interfaces tcpenable=no ; disable TCP support [office-phone](!) ; create a template for our devices type=friend ; the channel driver will match on username first, ; IP second context=LocalSets ; this is where calls from the device will enter ; the dialplan host=dynamic ; the device will register with asterisk nat=force_rport,comedia ; assume device is behind NAT ; *** NAT stands for Network Address Translation, ; which allows multiple internal devices to share an ; external IP address. dtmfmode=auto ; accept touch-tones from the devices, negotiated ; automatically disallow=all ; reset which voice codecs this device will accept or offer allow=g722 ; audio codecs to accept from, and request to, the device allow=ulaw ; in the order we prefer allow=alaw ; define a device name and use the office-phone template [0000FFFF0001](office-phone) secret=4VQ96sg6ROc ; a unique password for this device -- ; DON'T USE THE PASSWORD WE'VE USED IN THIS EXAMPLE! ; define another device name using the same template [0000FFFF0002](office-phone) secret=sKAw7GCTtcA ; a unique password for this device -- ; DON'T USE THE PASSWORD WE'VE USED IN THIS EXAMPLE!
[general]
[general] 섹션은 가장 기본이 되는 섹션으로 일반적인 설정 옵션과 프로토콜의 동작 방식 등을 설정하게 된다. 그리고 기본값으로 지정될 값들을 설정하기도 한다.
예를 들어, 위의 설정 예를 보면, 기본 context가 unauthenticated로 되어 있는 것을 볼 수 있다. 이는 콜이 인입되면 기본적으로 실행되는 다이얼 플랜을 지칭한다. 다음으로 allowgeust 옵션은 인증되지 않은 콜들을 허용하지 않겠다는 옵션 설정이다.
srvlookup 옵션은 Asterisk 동작시, DNS를 참조하여 동작하겠다는 뜻이며, 만약 DNS 가 설정되어 있지 않다면 반드시 no로 설정해야 한다.
udpbinaddr 옵션은 Listen 할, UDP IP 주소를 설정하는 옵션이다. 0.0.0.0 으로 설정시, 사용 가능한 모든 인터페이스를 Listen 하게 된다.
tcpenable 옵션은 TCP 를 통한 Request 에도 응답할 수 있도록 해준다.
[office-phone](!)
섹션 이름 [office-phone] 뒤에 붙는 (!)의 의미는 해당 섹션을 템플릿으로 사용하겠다는 의미이다. 템플릿을 사용하게 되면 불필요하게 반복되는 설정을 없앨 수 있으며, 오타와 같은 위험에서도 벗어날 수 있게 된다. 한번 템플릿에서 설정된 내용은 다시금 템플릿을 참조하는 곳에서 같은 옵션이지만 다른 값을 설정할 수도 있다. 이런 경우, 대부분의 경우에는 덮어쓰기가 되어버려, 가장 나중에 설정된 내용이 입력되게 된다. 단, type, allow, disallow 와 같은 몇가지 항목들은 예외이다.
type
type 항목은 Asterisk 로, 콜이 인입되었을 때, 어떤 부분을 기준으로 콜을 매칭시키는지를 결정한다.
- peer : Source IP 주소와 Port number 를 기준으로 매칭한다.
- user : From header 의 Username 을 기준으로 매칭한다. sip.conf 파일에서 [] 안에 같은 이름이 있다면 해당 항목을 매칭시킨다.
- friend : peer 와 user 모두를 이용하여 매칭한다.
context
현재 설정된 device 에서 요청이 전송되면, context 항목에 설정된 dialplan 이 작동하게 된다.
host
host 항목은 설정된 device 의 IP 주소를 지정한다. 만약 고정된 IP 주소가 아닌, 동적으로 변하는 IP 주소라면, "dynamic" 으로 설정하면 된다. 만약 특정 IP 주소를 입력한다면, 오직 설정된 IP 주소에서만 해당 device 가 작동하게 될 것이다. host 에 고정 아이피 주소를 입력함으로써 얻는 이점은, 한번 고정 IP 로 입력된 device 에 대해서는 asterisk 로 더이상의 registraion 을 하지 않아도 된다는 점이다.
nat
엄밀히 말하면, nat 설정은 NAT(Network address translation) 네트워크 뒤쪽에 있는 device 에만 필요한 설정이다. 왜냐하면 SIP 프로토콜에는 메시지 속에 IP 주소를 포함하고 있기 때문이다. 만약 device 가 사설망에서 동작하게 된다면, SIP 메시지에는 사설 네트워크 주소를 포함하게 될 것이다.
dtmfmode
dtmfmode 옵션은 해당 device 에서 사용하는 DTMF(touch-tone) 방식을 지정하는 옵션이다. 4가지 방식의 DTMF 옵션이 가능하다(info, inband, rfc2833, auto). info 는 SIP 프로토콜의 INFO 메소드를 사용하는 방식이고, inband 는 inband audio tone, rfc2833 는 out-of-band 방식(RFC2833)을 위한 옵션이다. auto 는 Asterisk 에서 자동으로 DTMF 방식을 설정하게 하는 옵션이다(auto 로 설정할 경우, 가능하다면 rfc2833 방식을 사용하게 된다).
disallow/allow
마지막 두가지 옵션(disallow/allow) 은 어느 audio codec 을 허용하지/말지를 설정하는 옵션이다. disallow=all 설정을 제일 먼저 설정함으로써, 이전에 설정되어있는 codec 옵션 내용([general] 섹션이나 다른 default 설정 에서 설정되어 있는)을 초기화하고, 어떤 codec 들을 허용할지를 설정할 수 있다. 설정 예제에서는 ulaw 와 alaw 를 설정했는데, 대부분은 ulaw 를 사용한다(만약, 미국이나 캐나다가 아닌 곳에서 사용한다면 대부분 alaw 를 사용하게 된다).
General section
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)
- Asterisk sip allowexternaldomains = 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).
- Asterisk sip allowoverlap = yes|no
- Enable/disable overlap dialing support.
- Default yes (Overlap dial provides for a longer time-out period between digits, also called the inter-digit timer.
- With overlap dial set to off, the gateway expects to receive the digits one right after the other coming in to this line with very little delay between digits.
- With overlap dial set to on, then the device waits up to about 2 seconds between digits).
- 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.
- Asterisk sip 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|nonat (global setting)
- For some reason this defaults to yes, so beware...
- Asterisk sip checkmwi = Number
- Global interval (in seconds) between mailbox checks.
- Default 10 seconds. (New in v1.2.x)
- Asterisk sip 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.
- defaultexpiry= Number
- Default duration (in seconds) of incoming/outgoing registration. Default 120 seconds.
- domain = domains
- Comma separated list of domains which Asterisk is responsible for. (New in Asterisk 1.2.x)
- dtmfmode = inband|info|rfc2833 (global setting)
- Default rfc2833. Warning: inband very high CPU load.
- 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 Asterisk sip 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().
- limitonpeers = yes|no
- If set to yes use only the peer call counter for both incoming and outgoing calls (ref. hints, subscriptions, BLF; added in 1.4)
- 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, yes and very removed in v1.6.x, possible to use multiple options separated by commas from v1.4.x
- maxexpiry = Number
- Max duration (in seconds) of incoming registration we allow. Default 3600 seconds.
- musicclass = value
- one of the classes specified in musiconhold.conf
- musdiconhold = value
- 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 (in Asterisk 1.8 default yes).
- 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 60 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>
- SIP provider를 등록한다.
- 자세한 내용은 Outbound sip registration 항목을 참조하자.
- 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). Buggy up to 1.4.19, see bug 12707
- 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). Buggy up to 1.4.19, see bug 12707
- 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 yes. (Default is no prior to v1.4.14)
- 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.
- disallowed_methods=
- (1.8.x) When a dialog is started with another SIP endpoint, the other endpoint should include an Allow header telling us what SIP methods the endpoint implements.
- However, some endpoints either do not include and Allow header or lie about what methods they implement.
- In the former case, Asterisk makes the assumption that the endpoint supports all known SIP methods.
- If you know that your SIP endpoint does not provide support for a specific method, then you may provide a comma-separated list of methods that your endpoint does not implement in the disallowed_methods option.
- Note that if your endpoint is truthful with its Allow header, then there is no need to set this option. This option may be set in the general section or may be set per endpoint.
- If this option is set both in the general section and in a peer section, then the peer setting completely overrides the general setting (i.e. the result is *not* the union of the two options).
- 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.
- preferred_codec_only= (1.8.x)
- 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.
- engine= (1.8.x)
- RTP engine to use when communicating with the device
STATUS NOTIFICATIONS (SUBSCRIPTIONS)
;--------------------------- STATUS NOTIFICATIONS (SUBSCRIPTIONS) ---------------------------- ; You can subscribe to the status of extensions with a "hint" priority ; (See extensions.conf.sample for examples) ; chan_sip support two major formats for notifications: dialog-info and SIMPLE ; ; You will get more detailed reports (busy etc) if you have a call counter enabled ; for a device. ; ; If you set the busylevel, we will indicate busy when we have a number of calls that ; matches the busylevel treshold. ; ; For queues, you will need this level of detail in status reporting, regardless ; if you use SIP subscriptions. Queues and manager use the same internal interface ; for reading status information. ; ; Note: Subscriptions does not work if you have a realtime dialplan and use the ; realtime switch. ; ;allowsubscribe=no ; Disable support for subscriptions. (Default is yes) ;subscribecontext = default ; Set a specific context for SUBSCRIBE requests ; Useful to limit subscriptions to local extensions ; Settable per peer/user also ;notifyringing = no ; Control whether subscriptions already INUSE get sent ; RINGING when another call is sent (default: yes) ;notifyhold = yes ; Notify subscriptions on HOLD state (default: no) ; Turning on notifyringing and notifyhold will add a lot ; more database transactions if you are using realtime. ;notifycid = yes ; Control whether caller ID information is sent along with ; dialog-info+xml notifications (supported by snom phones). ; Note that this feature will only work properly when the ; incoming call is using the same extension and context that ; is being used as the hint for the called extension. This means ; that it won't work when using subscribecontext for your sip ; user or peer (if subscribecontext is different than context). ; This is also limited to a single caller, meaning that if an ; extension is ringing because multiple calls are incoming, ; only one will be used as the source of caller ID. Specify ; 'ignore-context' to ignore the called context when looking ; for the caller's channel. The default value is 'no.' Setting ; notifycid to 'ignore-context' also causes call-pickups attempted ; via SNOM's NOTIFY mechanism to set the context for the call pickup ; to PICKUPMARK. callcounter = yes ; Enable call counters on devices. This can be set per ; device too.
- callcounter : SIP Channel 채널에서 Call counter 를 활성화 할지 여부를 설정한다. 만약 Queue 를 사용한다면 반드시 yes로 설정해주어야 한다.
Peer section
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.
- busylevel = 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|nonat
- Client 가 SIP re-invite 를 할 수 있는지 없는지를 설정한다.
- 기본값은 yes 이다.
- cid_number = <string>
- On incoming (through this peer) calls sets the outbound $CALLERID(num) to <string>. (New in v.1.4.x)
- 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
- host=dynamic 지정시 사용하게 될 기본 IP address 를 설정한다.
- Client 가 아직 Register 하지 않았을 경우 사용된다.
- Valid only for type=peer.
- defaultuser
- 사용자 id를 설정한다. username 항목은 사용하지 않는다.
- directrtpsetup = yes|no
- canreinvite 옵션과 비슷하다. 하지만 SIP Proxy 와 비슷하게 별도의 미디어 처리과정 없이 바로 콜을 넘겨준다는 점이 다르다.
- dtmfmode = inband|info|rfc2833
- DTMF 시그널 처리 방식을 설정한다.
- 기본값은 rfc2833 이다.
- inband 방식 지정시, 많은 량의 CPU 파워가 필요하다.
- fromuser = <from_ID>
- Specify user to put in "from" instead of $CALLERID(number) (overrides the callerid) when placing calls _to_ peer (another SIP proxy).
- Valid only for type=peer.
- "from" 에 $CALLERID(number) 대신에 여기에 설정된 ID를 입력한다. 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.
- SIP 헤더에서의 Default from: domain 을 설정한다. type=peer 일때만 유효하다.
- fullcontact = <sip:uri_contact>
- SIP URI contact for realtime peer. Valid only for realtime peers.
- fullname = "Full Name"
- Sets outbound $CALLERID(name). (New in v1.4.x)
- host = dynamic|hostname|IPAddr
- Client 접속 방식을 지정한다.
- 지정된 IP 주소 혹은 도메인 네임, 혹은 동적 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, yes and very removed in v1.6.x, possible to use multiple options separated by commas from v1.4.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. Edit: also valid for type=friend (verified with 1.4.22.1).
- 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.
- subscribemwi
- Instructs Asterisk to not send NOTIFY messages for message waiting indication (added in v1.4)
- name = <name>
- Name of the realtime peer. If the peer is an actual phone then this will generally be the extension number of that phone.
- On some softphones this field corresponds to the "username" field/option in the softphone's settings. 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 Asterisk 1.0.x nat can now have the values: yes|no|never|route; Asterisk 1.8 can have the values: yes|no|force_rport|comedia.
- 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
- Client 의 연결 여부를 확인한다.
- Yes 설정시, "sip show peers" 명령에서 Status 부분에서 연결 여부를 확인할 수 있다.
- 연결 확인 주기는 qualifyfreq 항목을 참조한다. 만약 숫자를 설정하게 되면, millisecond 단위로 확인 주기가 설정된다.
- 설정 전
Name/username Host Dyn Forcerport Comedia ACL Port Status Description sip_test_01/sip_test_ 192.168.0.56 D Auto (No) No 55500 Unmonitored 4 sip peers [Monitored: 0 online, 0 offline Unmonitored: 1 online, 3 offline]
- 설정 후
Name/username Host Dyn Forcerport Comedia ACL Port Status Description sip_test_01/sip_test_ 192.168.0.56 D Auto (No) No 64129 OK (179 ms) 4 sip peers [Monitored: 1 online, 3 offline Unmonitored: 0 online, 0 offline]
- regexten =
- None
- 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 deprecated 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.
- Asterisk 1.6.2.x: Changed the secret parameter to remotesecret.
- 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
- trunkname
- Indicates this peer definition is for a SIP trunk. As a result, the $CALLERID(name) will start off blank and requires the dialplan to set the $CALLERID(name). (New in v1.6.x)
- 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?
- peer : Match incoming requests to a configuration entry using the source IP address and port number.
- user : Match incoming requests to a configuration entry using the username in the From header of the SIP request. This name is matched to a section in sip.conf with the same name in square brackets.
- friend : This enables matching rules for both peer and user. This is the setting most commonly used for SIP phones.
- 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 accepting SIP INVITE requests from a remote SIP client, this field specifies the user name for authentication. (Contrast with fromuser.) 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 1.6 and later support SIP over TCP. Before that it only supports SIP over UDP. Asterisk 1.8 comes with IPv6 support. 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.
Outbound sip registration
Asterisk can register as a SIP user agent to a SIP proxy (provider) Format for the register statement is:
register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]
domain is either
- domain in DNS
- host name in DNS
- the name of a peer defined below or in realtime
The domain is where you register your username, so your SIP uri you are registering to is username@domain
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).
A similar effect can be achieved by adding a "callbackextension" option in a peer section. this is equivalent to having the following line in the general section:
register => username:secret@host/callbackextension
and more readable because you don't have to write the parameters in two places (note that the "port" is ignored - this is a bug that should be fixed).
Note that a register= line doesn't mean that we will match the incoming call in any other way than described above. If you want to control where the call enters your dialplan, which context, you want to define a peer with the hostname of the provider's server. If the provider has multiple servers to place calls to your system, you need a peer for each server.
Beginning with Asterisk version 1.6.2, the "user" portion of the register line may contain a port number. Since the logical separator between a host and port number is a ':' character, and this character is already used to separate between the optional "secret" and "authuser" portions of the line, there is a bit of a hoop to jump through if you wish to use a port here. That is, you must explicitly provide a "secret" and "authuser" even if they are blank. See the third example below for an illustration.
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 inbound and outbound sections for SIP providers
(instead of type=friend) if you have calls in both directions
register => 3456@mydomain:5082::@mysipprovider.com
Note that in this example, the optional authuser and secret portions have been left blank because we have specified a port in the user section
register => tls://username:xxxxxx@sip-tls-proxy.example.org
The 'transport' part defaults to 'udp' but may also be 'tcp', 'tls', 'ws', or 'wss'. Using 'udp://' explicitly is also useful in case the username part contains a '/' ('user/name').
register => 1234:password@example.com/trunk_01 register => 1235:password@example.com/trunk_01 register => 1236:password@example.com/trunk_01 register => 1237:password@example.com/trunk_01 registertimeout=20 ; retry registration calls every 20 seconds (default) registerattempts=10 ; 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 register_retry_403=yes ; Treat 403 responses to registrations as if they were ; 401 responses and continue retrying according to normal ; retry rules.
Example
inbound 설정
- inbound example
outbound 설정
자체 트렁크를 가지고 있고, 트렁크를 사용하여 발신을 하고 싶다면 다음의 설정을 해주어야 한다.
- outbound example 1
[mysipprovider-out] type=peer secret=password username=2345 host=sipserver.mysipprovider.com fromuser=2345 fromdomain=fwd.pulver.com canreinvite=no insecure=invite,port qualify=yes nat=yes context=from-mysipprovider ; this section will be defined in extensions.conf
- outbound example 2
[myprovider] type = peer host = your.provider.tld defaultuser = username secret = password ; Most providers won't authenticate when they send calls to you, ; so you need this line to just accept their calls. insecure = invite dtmfmode = rfc2833 disallow = all allow = ulaw
External link
References
<references />