asterisk sip配置说明

1.       介绍数据库

extensions.conf中使用sip设备的语法是SIP/devicename,devicename名在下一节中说明。缓存

若是用户在Internet上,可使用SIP/username@domain形式,同时不要忘记打开DNS SRV功能。服务器

若是定义了一个SIP代理,可使用SIP/proxyhostname/user或者SIP/user@proxyhostname形式,proxyhostname的定义在下面的章节说明。并发

2.        在CLI中的查询命令dom

u      sip show peers                    显示全部的SIP peers(包括friends)ide

u      sip show users                    显示全部的SIP users(包括friends)编码

u      sip show registry          显示注册到的主机状态spa

u      sip debug                     显示全部的Sip信息.net

u      module reload chan_sip.so  从新装载sip的配置文件debug

 

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

相关文章
相关标签/搜索