asterisk(sip.conf)的詳細說明


介紹

extensions.conf中使用sip設備的語法是SIP/devicename,devicename名在下一節中說明。

如果用戶在Internet上,可以使用SIP/username@domain形式,同時不要忘記打開DNS SRV功能。

如果定義了一個SIP代理,可以使用SIP/proxyhostname/user或者SIP/user@proxyhostname形式,proxyhostname的定義在下面的章節說明。

2.        在CLI中的查詢命令

u      sip show peers                    顯示所有的SIP peers(包括friends)

u      sip show users                    顯示所有的SIP users(包括friends)

u      sip show registry          顯示注冊到的主機狀態

u      sip debug                     顯示所有的Sip信息

u      module reload chan_sip.so  重新裝載sip的配置文件

 

3.         設備命名

命名一個設備之前,要先理解Asterisk是怎么處理呼入電話的:

1)        Asterisk取出SIP From: address中的username,使用它來匹配系統中定義的type=user的的設備名。

2)        Asterisk檢查INVITE請求中的IP地址和端口號,使用它來匹配系統中定義的type=peer的設備。

不要混淆extensions和設備名的概念。設備需要一個唯一的名字。設備名不能用於電話號碼。電話號碼是撥號計划中的聲明的一個extension。

注意:參數username並不是用戶名的意思,在大多數情況下,它根本不是必須的。在后邊,我們把它重命名做defaultuser,因為他與defaultip合並使用。

4.       通用屬性說明

[general]                      ;通用屬性

 

 

 

context=default            ;呼入電話默認使用的context

allowguest=no               ; 允許或拒絕客戶呼叫 (默認 yes)

allowoverlap=no            ; 允許重疊撥號(默認yes)

allowtransfer=no           ; 允許呼叫轉接(默認yes)

                              

realm=mydomain.tld           ; 認證的領域。默認是asterisk,如果在asterisk.conf中設置了系統名稱,

;該值就會默認成系統的名稱,Realms設置必須全局唯一。一般可以設置

;為主機名或域名。

bindport=5060            ;asterisk監聽的本地端口號。(SIP標准端口號5060) bindaddr=0.0.0.0          ;綁定的IP地址 (0.0.0.0所有地址)

srvlookup=yes            ; 打開外呼的DNS SRV查找。注意,asterisk僅使用SRV記錄中的第一

;個主機。該功能可以在撥號計划中使用SIP/username@domain形式通過

;域名撥打Internet上的SIp電話。

                                

                               

pedantic=yes               ; 打開頭信息中tags值檢測,URIs和多行格式化頭信息中國際字符轉換等

;嚴格的SIP兼容性問題。(默認是no)

 

下面是關於TOS參數,可以參考doc/ip-tos.txt

tos_sip=cs3              ; Sets TOS for SIP packets.

tos_audio=ef             ; Sets TOS for RTP audio packets.

tos_video=af41           ; Sets TOS for RTP video packets.

 

 

maxexpiry=3600          ; 注冊和訂閱的最大間隔-秒

minexpiry=60             ; 注冊和訂閱的最大間隔-秒(默認 60)

defaultexpiry=120         ; 默認注冊間隔的時長

t1min=100               ; 消息到達錄音服務器的最小折返時間,默認100 ms

notifymimetype=text/plain   ; 修改在通知中消息MWI NOTIFY 的mime類型

checkmwi=10             ; peer檢測語音郵箱的時間間隔

buggymwi=no             ; Cisco SIP防火牆不完全支持MWI RFC。打開該選項時,向電話發送MWI時,也不會收到錯誤信息。

                              

vmexten=voicemail         ; 語音郵箱在撥號計划中的extension。用來設置MWI通知消息中的

;Message-Account信息,默認是asterisk。

disallow=all               ; 先屏蔽掉所有的編碼

allow=ulaw                ; 打開允許的編碼,按順序引用

allow=ilbc                 ; 更多的選項,看文檔 doc/rtp-packetization

 

下面參數設置了呼叫等待音樂的默認項,如果沒有在撥號計划中使用Set(CHANNEL(musicclass)=whatever) 指定通道的呼叫等待音樂首選項,將會使用該值。這個選項可以使指定為全局的,也可以對單個user或peer設置。

mohinterpret=default

 

呼叫等到時,建議通道播放的等待音樂。這個選項可以使指定為全局的,也可以對單個user或peer設置。

mohsuggest=default

 

language=en                ; 設置所有users/peers的語言,也可以對單個users/peers設置。

relaxdtmf=yes            ; 寬松dtmf處理

trustrpid = no             ; 是否信任遠端ID(Remote-Party-ID)

sendrpid = yes            ; 是否發送遠端ID(Remote-Party-ID)

progressinband=never      ; 是否產生呼入鈴音。Never表示從來不適用呼入信號。可選值:yes, no, never。默認值never。

useragent=Asterisk PBX    ; 修改user agent 字符串

promiscredir = no          ; 如果設置為yes, 允許302 或 REDIR非本地SIP地址。注意,對本地

                        ;系統做重定向操作會導致循環調用,asterisk並不支持這種操作。

usereqphone = no          ; 如果設置為 yes, 會在uri 中增加";user=phone",使uri中包含一個合法

;的電話號碼。

dtmfmode = rfc2833       ; 設置發送DTMF模式。默認:rfc2833

                            ;其他選項:

                            ; info : SIP INFO messages

                        ; inband :按鍵的設備產生撥號音 (需要64 kbit 編碼 -alaw, ulaw)

                        ; auto : 默認使用rfc2833,如果遠端不支持時會使用inband

                       

 

compactheaders = yes        ; 發送壓縮的SIP頭.

 

videosupport=yes          ;打開視頻支持。

maxcallbitrate=384        ; 視頻呼叫的最大速率 (默認 384 kb/s)

callevents=no             ; sip ua執行事件時產生管理事件

alwaysauthreject = yes      ; 一個INVITE 或 REGISTER請求由於任何原因被拒絕時,總會使用同一

;個原因,用戶名合法但密碼不正確。而不會告訴請求者是否有這個

;user或peer。這樣會減少攻擊者掃描SIP賬戶的可能性。

 

g726nonstandard = yes       ; 是否使用G726-32 協商,使用AAL2包次序來替代RFC3551(需要

;Sipura 和 Grandstream ATAs)的次序。AAL2與RFC3551的規則相反,

;會使用AAL2-G726-32協商。

 

matchexterniplocally = yes  ; 如果本地設置與外部設置相同,僅替代externip 或 externhost.

 

dynamic_exclude_static = yes   ; 不允許動態主機使用靜態主機的IP地址注冊。這將避免使用相同

;IP注冊的錯誤。

 

contactdeny=0.0.0.0/0.0.0.0     ; 拒絕所有主機的聯絡

contactpermit=172.16.0.0/255.255.0.0  ; 只能有一部分IPs可以注冊到該服務器

 

 

如果設置了regcontext,將會為一個是有us注冊和反注冊並且有regexten=配置項目的用戶動態創建和銷毀一個NoOp priority1extension。可以使用&指定多個context。如果沒有指定'regexten' ,將會使用注冊peer的 regexten或名字。如果指定了多個context,則必須在regexten中使用@來指定。在regexten中也可以使用'&'來指定 多個。Regexten中也可以使用模式匹配。

regcontext=sipregistrations

 

5.        RTP定時器

這些是當前音頻和視頻流使用的定時器。RTP超時僅僅應用於音頻通道。該屬性可以全局設置,也可以對每一個設備設置。

 

rtptimeout=60                     ;如果60秒之內音頻通道沒有RTP或RTCP活動,將掛斷電話。

                        ;主要使用在通話中對方掉電或是老人忘記掛電話的情況。         ;

rtpholdtimeout=300        ; 如果300秒之內音頻通道沒有RTP或RTCP活動,將掛斷電話。

                        ; 主要使用在我方等待時間過長的情況

rtpkeepalive=<secs>          ;在RTP流中發送保活信息,保持NAT開放。默認是關閉(0)

 

6.       SIP調試信息

sipdebug = yes            ;打開SIP調試信息

recordhistory=yes         ; 默認記錄SIP歷史

dumphistory=yes          ; 在對話結尾丟且SIP歷史,被寫到DEBUG日志

 

7.        狀態通知STATUS NOTIFICATIONS (SUBSCRIPTIONS)

 

可以使用"hint" priority來訂閱extensions的狀態 (見extensions.conf.sample) 。

chan_sip支持兩種通知的格式:dialog-info 和 SIMPLE 。

如果你為一個設備設置了呼叫限制,就可以得到更多的細節報告(比如busy)。當呼叫限制時,會被告知忙。為了能夠轉接,你至少需要設置限制級別為2。

對於隊列,你需要狀態報告達到這個細節的界別。不管怎么樣,如果你使用Sip訂閱,隊列和管理會為讀狀態信息使用相同的內部接口。

注意,如果設置了一個realtime的撥號計划,並且使用了realtime switch,訂閱不會工作。

 

allowsubscribe=no              ;不支持訂閱 (默認yes)

subscribecontext = default  ;為訂閱請求設置context。用來限制訂閱到本地extensions。

;可以對每個peer/user進行設置。

notifyringing = yes        ;當發起其他呼叫時,INUSE狀態的訂閱者是否會發送RINGING (默認no)

notifyhold = yes         ;處於HOLD 狀態時,通知訂閱者。(默認no)

                            ;如果在使用realtime時,打開了notifyringing 和 notifyhold,將會增加很

                            ;多的數據庫的傳輸。

limitonpeers = yes         ;僅對peers進行呼叫限制。

 

8.       傳真T.38

該項目既可以在[general]中設置, 也可以對每個設備進行配置。設置為yes,表示允許在SIP到Sip的模式下傳輸傳真,傳輸的兩端都必須配置為支持T38。T.38 僅工作在SIP到SIP 呼叫中。

 

 t38pt_udptl = yes             ; 默認false

9.       外呼SIP注冊

 

Asterisk可以把自己作為一個SIP ua注冊到一台SIP代理上。注冊格式如下:

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

 

 

 

如果沒有指定extension,將使用's' extension。該extension必須在extensions.conf中定義,以便於可以從SIP代理上接收呼叫。

Host即可以是DNS中定義的一個主機名,也可以是在下面定義的一個section名,如serverA,見本文最后部分。

 

例子:

register => serverB:1111@10.0.2.252/serverA

register => 1234:password@mysipprovider.com         ;將把呼叫傳遞給's' extension      

 

register => 2345:password@sip_proxy/1234

 

在代理10.0.2.252上注冊serverB。如果你在下面定義了一個section叫做serverA,則呼叫會轉到serverA中定義的 context中。否則呼叫將會從這個代理上鏈接到本地extension serverA (定義在extensions.conf中), 使用默認的context。

u       技巧1:盡量避免在sip.conf中設置主機名作為section,如[provider.com]

u       技巧2:如果有雙向呼叫時,在代理中分開定義type=peer 和 type=user,避免使用type=friend

 

registertimeout=20              ; 注冊間隔20秒(默認)

registerattempts=10            ; 注冊嘗試次數,

; 0 一直嘗試,直到接受了注冊。默認值0

10.  NAT支持

如果Asterisk在一個NAT設備內部與外部的一個服務通訊,需要設置externip, externhost 和 localnet。

 

externip = 200.201.202.203      ; 在公網上的一個中間人地址,處理SIP消息。當注冊和與一個代理通訊

;時,需要設置externip和localnet

 

                             

externhost=foo.dyndns.net         ; 也可以配置一個域名,Asterisk 將會執行DNS查詢。不推薦這

;種方式,盡量使用IP,配置externip。

externrefresh=10                ;更新externhost的時間間隔。

 

可以有多個本地配,設置一個合理的就可以。(RFC 1918--私有地址分配 )                             

localnet=192.168.0.0/255.255.0.0   ; All RFC 1918 addresses are local networks

localnet=10.0.0.0/255.0.0.0         ; Also RFC1918

localnet=172.16.0.0/12                 ; Another RFC1918 with CIDR notation

localnet=169.254.0.0/255.255.0.0 ;Zero conf local network

 

 

nat=設置用於Asterisk在一個公網地址上,需要和一個NAT設備后的設置通訊。如果出現音頻問題,一般是NAT配置或防火牆屏蔽了SIP+RTP端口。RTP端口配置在rtp.conf中。

 

nat=no                        ; 全局NAT 配置,(影響所有的peers和users),取下列值:

; yes 總是忽略信息,假定使用NAT

; no 基於RFC3581使用NAT模式(;rport)

; never 從不嘗試使用NAT模式或RFC3581支持

; route假定使用NAT,不發送rport

                             

11.  媒體流處理

 

默認情況下,Asterisk會盡量使音頻流走最優的路徑(re-invite)。如果沒有特別設置媒體流需要通過服務器的話,Asterisk會 把媒體流重定向。當Asterisk在NAT外部,客戶端在NAT內部時,上述功能不能工作,這時必須配置canreinvite=nonat。

 

canreinvite=yes            ; 默認情況下,RTP媒體流會不經過服務器,在呼叫兩端直接傳遞。

; 一些設備不支持這種方式(特別是一端在NAT內)。默認設置yes。

; 如果所有的客戶端都在NAT內,或其他原因想讓媒體流通過服務器,

;需要關閉該選擇。

 

directrtpsetup=yes              ; 打開新的實驗性的直接RTP建立,建立一個呼叫,媒體流直接

; peer-to-peer 傳遞,而不是使用re-invites 方式。視頻不支持該方式。

; 被叫方發送RTP載荷和收到200OK響應的fmtp頭信息不能與主叫的

; INVITE請求匹配。

; 如果NAT后邊的設備設置了canreinvite=yes,傳輸也會失敗。

                      

 

canreinvite=nonat         ; 允許媒體路徑重定向的另一個選項,告訴發送媒體流的peer不在

                            ;  NAT里邊, (RTP核心可以決定使用收到媒體的from地址).

 

;canreinvite=update             ; 允許媒體路徑重定向的第三個選項, UPDATE替代INVITE,可以和'nonat'

                            ; 合並成'canreinvite=update,nonat'. 相當於 'yes'.

 

12.  REALTIME支持

關於ARA(Asterisk Realtime Architecture)結構的更多信息,可以看源代碼中/doc 目錄下的realtime.txt和extconfig.txt文件。

 

rtcachefriends=yes              ; 通過把realtime friends加入到一個內部列表中來緩存friends。

                            ;就好像是把friends從配置文件中加載一樣。(yes|no)

 

rtsavesysname=yes             ; 注冊時保存systemname到realtime數據庫,默認no

                       

rtupdate=yes               ; 注冊時更新數據庫(yes|no)

; 如果設置為yes,當SIP UA 注冊成功時,IP、原始端口、注冊期間和用

; 戶名會被更新到realtime數據庫。默認是yes。

; 如果設置為no,realtime功能可能會執行錯誤。

                             

rtautoclear=yes            ; 自動失效已經創建的friends (yes|no|<seconds>)。

; 如果設置為yes,當注冊預期時,friend將從注冊信息中清除。

; 如果設置為一個整數,friends 會在這個秒數內過期,而不是在注冊時間

; 間隔內過期。

                              

 

ignoreregexpire=yes            ; 打開這個設置有兩個功能:

; 對於非realtime peers,注冊過期時,注冊信息也不會從內存或asterisk數

; 據庫移除。如果有電話呼叫這個peer時,該注冊信息會一直可以使用,

; 不管這個peer是否已經過期。

; 對於realtime peers, 無論是否過期,從數據庫得到的注冊信息仍然可以

; 使用。如果過期,realtime peer信息仍然在內存(由於緩存或其他原因),

; 該信息不會從realtime數據庫移除。

13.  SIP域名支持

 

收到的INVITE 和 REFER 消息可以和一系列的被允許的域名匹配。每一個域名能夠直接呼入他們描述的特定context.。默認情況下, 所有的域都會接收呼叫,並發送呼叫到指定的context或者user/peer指定的Context。如果配置了域列表,REGISTER請求的域不在 其中,呼叫將會被拒絕。

 

使用如下方式使用域:

 domain=<domain>[,<context>]

例如:

domain=myasterisk.dom

domain=customer.com,customer-context

 

另外,如果需要過濾呼入請求時,應該增加一個服務器的默認域設置。

 autodomain=yes

 

 

allowexternaldomains=no           ;不允許請求非本地域

 

domain=mydomain.tld,mydomain-incoming

; 為一個呼入呼叫配置域和context

domain=1.2.3.4                  ; 使用IP地址作為本地域,可以同時又幾個域設置。

allowexternaldomains=no           ; 不允許INVITE和REFER請求非本地域,默認yes。

                            

autodomain=yes                 ; 自動把本地主機名和IP地址加入域名列表。

 

fromdomain=mydomain.tld         ; 當進行外呼SIP INVITEs 到一個非peers時,使用主域而不是IP

                                   ; 地址來識別From: headers頭信息。這是一個禮貌的用法,它可

                                   ; 能對一些在你的服務器上沒有優先賬號的目的地址是必須的。

 

14.  抖動緩存(jitterbuffer)配置

 

jbenable = yes                           ; 打開SIP通道接收端的抖動緩沖。默認no。在接收端不能接收

                                   ; 抖動的情況下,可以使用抖動緩存來接收抖動。

 

jbforce = no                       ; 強迫在SIP通道的接收端使用抖動緩存,默認no。

 

jbmaxsize = 200                 ; 抖動緩存大小(毫秒)

 

jbresyncthreshold = 1000          ; 跳過抖動緩存的幀的時間長度,再同步緩存的幀。可以用來提高

                                   ; 語音的質量。外部設備和程序經常會造成大的跳動或中斷。默認

                                   ; 設置為1000。

 

jbimpl = fixed                            ; SIP通道接收端抖動緩存的實現,當前有兩種形式:

                                   ; fixed 緩存大小等於jbmaxsize,大小固定。

                                   ; adaptive 可變大小,實際上用於IAX2的一個新的抖動緩存。

                                   ; 默認是fixed。

 

jblog = no                           ; 對抖動緩存幀記錄日志,默認是no。

;-----------------------------------------------------------------------------------

15.  認證

[authentication]

外呼的全局證書。當一個代理挑戰認證您的asterisk服務器,如果挑戰通過,這些證書將覆蓋peer/register中定義的證書。另外,asterisk也可以使用其他的挑戰碼對外呼進行認證。我們挑戰代理上的認證碼,從認證碼列表中選擇一組證書。

 

語法:

;        auth = <user>:<secret>@<realm>

;        auth = <user>#<md5secret>@<realm>

例子:

;         auth=mark:topsecret@digium.com

 

也可以增加認證配置到peer的定義中。該配置將覆蓋其他的認證設置。

 

16.  User peer friend

 

Users和peers有不同的設置,Friends有Users和peers的所有功能。

 

; User 配置選項:        Peer 配置:

; --------------------        -------------------

Context                context

Callingpres                  callingpres

Permit                         permit

Deny                           deny

Secret                         secret

md5secret                   md5secret

dtmfmode                    dtmfmode

canreinvite                   canreinvite

nat                        nat

callgroup                     callgroup

pickupgroup                pickupgroup

language               language

allow                           allow

disallow                disallow

insecure                insecure

trustrpid                trustrpid

progressinband            progressinband

promiscredir                promiscredir

useclientcode               useclientcode

accountcode                accountcode

setvar                          setvar

callerid                 callerid

amaflags               amaflags

call-limit                call-limit

allowoverlap                allowoverlap

allowsubscribe             allowsubscribe

allowtransfer                allowtransfer

subscribecontext          subscribecontext

videosupport               videosupport

maxcallbitrate                     maxcallbitrate

rfc2833compensate            mailbox

t38pt_usertpsource             username

template

fromdomain

regexten

fromuser

host

port

qualify

defaultip

rtptimeout

rtpholdtimeout

sendrpid

outboundproxy

rfc2833compensate

t38pt_usertpsource

contactpermit         ; 限制主機注冊地點。

Contactdeny           ; 一個小竅門,作為一個SIP提供者在相同的IP地

                                                 ; 址注冊,呼叫自己,會被重定向到同一位置。

 

在Asterisk中對某個peer的類型分為3種:peer, user和friend,在asterisk中是這樣解釋的:

 

type=peer定義對方是一個服務提供者, 它允許你的Asterisk通過這里定義的服務商打電話;

而user則定義對方是你的一個客戶端, 允許對方通過你的Asterisk打電話.

friend就是兩者兼有。


但type的真正意義在於Asterisk怎么去處理發往外部和來自外部的請求.

如果type是peer,有兩層含義.

n         可以將對方作為一個SIP Service Provider, 允許你的Asterisk通過對方進行呼出.

n         如果對方在邏輯上是一個客戶端, asterisk將根據傳入的Invite請求來對對方進行身份驗證, 但需要注意的是這里的驗證不是通過username和secret, 而是通過對方的address和port. 這里分兩種情況:

u       對方的address和port沒有匹配到你在sip.conf中對任何一個peer的設置, 如果你的Asterisk允許匿名 呼入(allowguest=yes), 那么, 該呼入將被傳到在sip.conf的general配置中的context上. 如果不允許匿名呼 入, 直接拒絕該呼入.

u       對方的address和port匹配到了任何一個sip.conf種的peer設置, 那么改呼入將被傳到該peer指定的context上

Asterisk還提供了一個insecure參數來配置對peer呼入的身份驗證方式.

insecure=port|invite

n         port: Asterisk忽略對方的port, 只根據對方的address來驗證某個peer, Asterisk收到對方的Invite后, 會發送SIP/2.0 401 Unauthorized到對方, 要求對方發送認證信息, 但事實上對方返回回來的認證信息不會被真正使用.

n         invite: Asterisk對初始Invite不進行驗證. 這意味着Asterisk直接使用客戶端傳入的Invite包中的信息嘗試進行驗證而不會發送SIP/2.0 401 Unauthorized包到對方

type=user

根據來源Invite包中的用戶和密碼信息來認證,所以對方不能也不需要Register到你的Asterisk服務器上.

需要額外說明一點的是Register, 如果某個peer的host設置為dynamic, 那么Asterisk允許客戶端通過Register的方式來告訴Asterisk對方的地址和端口.

特別注意:經網友證實,以上細節僅限於SIP協議,對於IAX協議,在IAX里那個from驗證IP是沒有用的,形同虛設,必需使用上面的兩行代碼 驗證對方的IP才行,要沒有這兩行,任何的asterisk只要知道你的服務器的IP都可以通過你的asterisk進行呼出,如果需要杜絕這個隱患,需 要修改/etc/asterisk/manager.conf文件,增加類似下面的例句:

deny=0.0.0.0/0.0.0.0

permit=122.227.22.22/255.255.255.0

 

17.  SIP代理例子

;[sip_proxy]

僅用於呼入。使用代理的IP地址來匹配呼入,因為我們不能使用username (caller id)匹配。

type=peer

context=from-fwd

host=fwd.pulver.com

 

;[sip_proxy-out]

type=peer                                  ; 僅想做外呼

secret=guessit                                  

username=yourusername                   ; 外呼代理的認證用戶

fromuser=yourusername                    ; 一些SIP 提供端(代理)需要該配置

fromdomain=provider.sip.domain       

host=box.provider.com

usereqphone=yes                       ; 這個代理的URI中需要;user=phone

call-limit=5                                ; 允許同時5個外呼到這個peer,由於realtime的peer不存

                                          ; 儲在內存中,所以realtime時不能強制使用Call-limits

outboundproxy=proxy.provider.domain    ; 發送外呼信號到這個代理,而不是直接到peer

port=80                              ; 需要連接到的遠程的端口號,也可以使用defaultip 配

                                          ; 置中的defaultport

 

 

18.  SIP設備本地連接的定義

type = user           ; a device that authenticates to us by "from" field to place calls

; 一個設備,使用from字段認證到服務器,發起呼叫。

type = peer           ; a device we place calls to or that calls us and we match by host

                     ; 服務器呼該該設備,或者設備呼叫服務器並且服務器使用host字段來匹配

type = friend         ; two configurations (peer+user) in one

; 上面兩個配置的和(peer+user)

設備名我們推薦使用字母(a-z), 數字 (0-9) 和下划線

 

本地呼叫,最常使用的是type=friend

 

如果你的電話只能單向聽到聲音,應該是NAT 配置的問題。如果asterisk在公網上,客戶端在一個NAT設備內部,你必須配置nat,同時打開qualify=yes屬性,保持nat連接處於開放狀態。

 

19.  配置實例

;[grandstream1]

type=friend                        

context=from-sip                ; 呼叫進入撥號計划的位置

callerid=John Doe <1234>        ; 全caller ID,來修改呼入電話的callerid信息

host=192.168.0.23                    ; 有一個靜態私有IP地址。允許非注冊時使用。                            

nat=no                                ; 表示服務器和客戶端之間沒有NAT設備

canreinvite=yes                   ; 允許RTP數據流不經過服務器

dtmfmode=info                   ; either RFC2833 or INFO for the BudgeTone

call-limit=1                         ; 同一時刻在服務器和客戶端之間只允許一個呼入和一個呼出

                                   ; 相當於是一個peer和一個user,加起來是一個friend。這也會影

; 響到訂閱。由於沒有friend的聯合的呼叫計數器,所以當前沒有

; 辦法在sip.conf中限制每個客戶端的內呼或外呼的數量。可以在

; 撥號計划中用組計數器來達到這個目的。

                             

mailbox=1234@default             ; 語音信箱1234,context "default"

disallow=all                        ; 先要屏蔽掉所有的

allow=ulaw                         ; 再按使用順序打開允許的

allow=alaw

allow=g723.1                   ; Asterisk僅支持g723.1直通寄存器( pass-thru)

allow=g729                     ; 如果沒有獲得g729 許可,僅支持直通寄存器( pass-thru)

callingpres=allowed_passed_screen  ; 設置顯示caller ID,更多信息參考doc/callingpres.txt

                              

 

;[xlite1]

關閉X-Lite的安靜壓縮 ("Transmit Silence"=YES)!

注意,Xlite 發送NAT保活數據包,因此qualify=yes不是必須的。

type=friend

regexten=1234                  ; 當他們注冊時,創建extension 1234

callerid="Jane Smith" <5678>

host=dynamic                   ; 這個設備必須注冊才能使用

nat=yes                        ; X-Lite在一個NAT路由器后邊

canreinvite=no                  ; 如果使用了NAT,該項須設為NO,使媒體流經過服務器

disallow=all

allow=gsm                     ; GSM比ulaw消耗帶寬小

allow=ulaw

allow=alaw

mailbox=1234@default ,1233@default  ; 訂閱多個郵箱

 

 

;[snom]

type=friend                         ; 接收和發起呼叫

context=from-sip              

secret=blah

subscribecontext=localextensions      ; 僅允許訂閱本地localextensions

language=de                       ; 該用戶使用德語提示

host=dynamic                            ; 必須注冊到服務器

dtmfmode=inband               ; 可選inband, rfc2833, 或 info

defaultip=192.168.0.59             ; 在peer注冊之前使用的IP

mailbox=1234@context ,2345   ; 語音郵箱

subscribemwi=yes                     ; 電話點閱了郵件通知時,發送通知

vmexten=voicemail                    ; 語音郵箱在撥號計划中的extension,設置MWI通知消息中的

                                   ; Message-Account,默認是vmexten,vmexten默認為"asterisk"

disallow=all

allow=ulaw                     ; dtmfmode=inband 僅支持ulaw 或 alaw

 

;[polycom]

type=friend                         ; 可以呼出和接聽電話

context=from-sip                ; 呼入電話進入的Context

secret=blahpoly

host=dynamic                            ; 該用戶需要注冊

dtmfmode=rfc2833                    ; 可以選擇 inband, rfc2833, or info

username=polly                  ; 用戶注冊前使用的,該參數不是必須的                            

disallow=all

allow=ulaw                         ; dtmfmode=inband僅支持ulaw 或 alaw

progressinband=no                    ; 寶利通(Polycom)電話在"never"時不能很好的工作

 

 

;[pingtel]

type=friend

secret=blah

host=dynamic

insecure=port                            ; 允許peer值匹配IP,不用匹配端口

insecure=invite                    ; INVITEs 呼入請求不需要認證

insecure=port,invite                    ;

qualify=1000                      ; 如果一秒鍾后答復,認為已經關閉

; 用於NAT連接的保活,qualify=yes使用默認值.

                       

呼叫組和接聽組范圍應該在0 到 63

 

callgroup=1,3-4                  ; 呼叫組1,3,4

pickupgroup=1,3-5                   ; 接聽組1,3,4,5

defaultip=192.168.0.60             ; 如果peer沒有注冊,默認使用的IP

deny=0.0.0.0/0.0.0.0                 ; 拒絕所有的ip的訪問

permit=192.168.0.60/255.255.255.0      ;

 

;[cisco1]

type=friend

secret=blah

qualify=200                    ; 保活間隔200ms

nat=yes                        ; 電話可能在一個NAT設備后邊,發送SIP和RTP包到收到包

                                   ; 的原IP地址,而不是信任的SIP頭中的地址。                            

host=dynamic                   ; 該設備必須注冊

canreinvite=no                 ; Asterisk默認是重定向媒體流,使之直接在電話兩端傳遞。但如果

                                   ; 設備在NAT設備后邊時,會不支持直接傳遞。所以此時需要設

                                   ; 置該項為no。

defaultip=192.168.0.4        ; 注冊前使用的IP地址

username=goran                 ; 該設備注冊前呼叫服務器使用的Username,正常情況下,不必設

                                   ; 置這個參數.

setvar=CUSTID=5678              ; 為經過這個設備的所有呼叫設置通道變量。

 

;[pre14-asterisk]

type=friend

secret=digium

host=dynamic

rfc2833compensate=yes            ; 是補償兩個asterisk服務器之間DTMF 傳輸。必須打開這個選

                                   ; 項,否則DTMF接收將不會正常工作。

t38pt_usertpsource=yes             ; 如果nat開啟時,使用RTP 包的原IP地址作為UDPTL 包的目

                                   ; 的地址。如果接收到一個簡單的RTP包,Asterisk 將會知道遠端

                                   ; 設備的公網IP地址。如果客戶端設置了端口映射,UDPTL 會發

                                   ; 送到遠端設備。

 

[serverA]

type=friend

secret=1111

context=serverA_incoming

host=dynamic

disallow=all

allow=ulaw

 

[sip](!)

nat = yes

allow = g729

type = friend

host = dynamic

canreinvite = no

context = from-pstn

 

[6001](sip)

username = 6001

secret = 6001

context=phones

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM