asterisk sip配置说明.docx
- 文档编号:9242031
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:28
- 大小:29.45KB
asterisk sip配置说明.docx
《asterisk sip配置说明.docx》由会员分享,可在线阅读,更多相关《asterisk sip配置说明.docx(28页珍藏版)》请在冰豆网上搜索。
asterisksip配置说明
asterisksip配置说明
1. 介绍
extensions.conf中使用sip设备的语法是SIP/devicename,devicename名在下一节中说明。
如果用户在Internet上,可以使用SIP/username@domain形式,同时不要忘记打开DNSSRV功能。
如果定义了一个SIP代理,可以使用SIP/proxyhostname/user或者SIP/user@proxyhostname形式,proxyhostname的定义在下面的章节说明。
2. 在CLI中的查询命令:
u sipshowpeers 显示所有的SIPpeers(包括friends)
u sipshowusers 显示所有的SIPusers(包括friends)
u sipshowregistry 显示注册到的主机状态
u sipdebug 显示所有的Sip信息
u modulereloadchan_sip.so 重新装载sip的配置文件
3. 设备命名
命名一个设备之前,要先理解Asterisk是怎么处理呼入电话的:
1) Asterisk取出SIPFrom:
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 ; 打开外呼的DNSSRV查找。
注意,asterisk仅使用SRV记录中的第一
;个主机。
该功能可以在拨号计划中使用SIP/username@domain形式通过
;域名拨打Internet上的SIp电话。
pedantic=yes ; 打开头信息中tags值检测,URIs和多行格式化头信息中国际字符转换等
;严格的SIP兼容性问题。
(默认是no)
下面是关于TOS参数,可以参考doc/ip-tos.txt
tos_sip=cs3 ;SetsTOSforSIPpackets.
tos_audio=ef ;SetsTOSforRTPaudiopackets.
tos_video=af41 ;SetsTOSforRTPvideopackets.
maxexpiry=3600 ; 注册和订阅的最大间隔-秒
minexpiry=60 ; 注册和订阅的最大间隔-秒(默认 60)
defaultexpiry=120 ; 默认注册间隔的时长
t1min=100 ; 消息到达录音服务器的最小折返时间,默认100ms
notifymimetype=text/plain ; 修改在通知中消息MWINOTIFY 的mime类型
checkmwi=10 ; peer检测语音邮箱的时间间隔
buggymwi=no ;CiscoSIP防火墙不完全支持MWIRFC。
打开该选项时,向电话发送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=AsteriskPBX ; 修改useragent 字符串
promiscredir=no ; 如果设置为yes, 允许302 或 REDIR非本地SIP地址。
注意,对本地
;系统做重定向操作会导致循环调用,asterisk并不支持这种操作。
usereqphone=no ; 如果设置为 yes, 会在uri 中增加";user=phone",使uri中包含一个合法
;的电话号码。
dtmfmode=rfc2833 ; 设置发送DTMF模式。
默认:
rfc2833
;其他选项:
;info:
SIPINFOmessages
;inband:
按键的设备产生拨号音 (需要64kbit 编码 -alaw,ulaw)
;auto:
默认使用rfc2833,如果远端不支持时会使用inband
compactheaders=yes ; 发送压缩的SIP头.
videosupport=yes ;打开视频支持。
maxcallbitrate=384 ; 视频呼叫的最大速率 (默认 384kb/s)
callevents=no ; sipua执行事件时产生管理事件
alwaysauthreject=yes ; 一个INVITE 或 REGISTER请求由于任何原因被拒绝时,总会使用同一
;个原因,用户名合法但密码不正确。
而不会告诉请求者是否有这个
;user或peer。
这样会减少攻击者扫描SIP账户的可能性。
g726nonstandard=yes ; 是否使用G726-32 协商,使用AAL2包次序来替代RFC3551(需要
;Sipura 和 GrandstreamATAs)的次序。
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=配置项目的用户动态创建和销毁一个NoOppriority1extension。
可以使用&指定多个context。
如果没有指定'regexten' ,将会使用注册peer的regexten或名字。
如果指定了多个context,则必须在regexten中使用@来指定。
在regexten中也可以使用'&'来指定多个。
Regexten中也可以使用模式匹配。
regcontext=sipregistrations
5. RTP定时器
这些是当前音频和视频流使用的定时器。
RTP超时仅仅应用于音频通道。
该属性可以全局设置,也可以对每一个设备设置。
rtptimeout=60 ;如果60秒之内音频通道没有RTP或RTCP活动,将挂断电话。
;主要使用在通话中对方掉电或是老人忘记挂电话的情况。
;
rtpholdtimeout=300 ; 如果300秒之内音频通道没有RTP或RTCP活动,将挂断电话。
; 主要使用在我方等待时间过长的情况
rtpkeepalive=
默认是关闭(0)
6. SIP调试信息
sipdebug=yes ;打开SIP调试信息
recordhistory=yes ; 默认记录SIP历史
dumphistory=yes ; 在对话结尾丢且SIP历史,被写到DEBUG日志
7. 状态通知STATUSNOTIFICATIONS(SUBSCRIPTIONS)
可以使用"hint"priority来订阅extensions的状态 (见extensions.conf.sample) 。
chan_sip支持两种通知的格式:
dialog-info 和 SIMPLE 。
如果你为一个设备设置了呼叫限制,就可以得到更多的细节报告(比如busy)。
当呼叫限制时,会被告知忙。
为了能够转接,你至少需要设置限制级别为2。
对于队列,你需要状态报告达到这个细节的界别。
不管怎么样,如果你使用Sip订阅,队列和管理会为读状态信息使用相同的内部接口。
注意,如果设置了一个realtime的拨号计划,并且使用了realtimeswitch,订阅不会工作。
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可以把自己作为一个SIPua注册到一台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@ ;将把呼叫传递给's'extension
register=>2345:
password@sip_proxy/1234
在代理10.0.2.252上注册serverB。
如果你在下面定义了一个section叫做serverA,则呼叫会转到serverA中定义的context中。
否则呼叫将会从这个代理上链接到本地extensionserverA(定义在extensions.conf中), 使用默认的context。
u 技巧1:
尽量避免在sip.conf中设置主机名作为section,如[]
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= ; 也可以配置一个域名,Asterisk 将会执行DNS查询。
不推荐这
;种方式,尽量使用IP,配置externip。
externrefresh=10 ;更新externhost的时间间隔。
可以有多个本地配,设置一个合理的就可以。
(RFC1918--私有地址分配 )
localnet=192.168.0.0/255.255.0.0 ;AllRFC1918addressesarelocalnetworks
localnet=10.0.0.0/255.0.0.0 ;AlsoRFC1918
localnet=172.16.0.0/12 ;AnotherRFC1918withCIDRnotation
localnet=169.254.0.0/255.255.0.0 ;Zeroconflocalnetwork
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(AsteriskRealtimeArchitecture)结构的更多信息,可以看源代码中/doc 目录下的realtime.txt和extconfig.txt文件。
rtcachefriends=yes ; 通过把realtimefriends加入到一个内部列表中来缓存friends。
;就好像是把friends从配置文件中加载一样。
(yes|no)
rtsavesysname=yes ; 注册时保存systemname到realtime数据库,默认no
rtupdate=yes ; 注册时更新数据库(yes|no)
; 如果设置为yes,当SIPUA 注册成功时,IP、原始端口、注册期间和用
; 户名会被更新到realtime数据库。
默认是yes。
; 如果设置为no,realtime功能可能会执行错误。
rtautoclear=yes ; 自动失效已经创建的friends(yes|no|
; 如果设置为yes,当注册预期时,friend将从注册信息中清除。
; 如果设置为一个整数,friends 会在这个秒数内过期,而不是在注册时间
; 间隔内过期。
ignoreregexpire=yes ; 打开这个设置有两个功能:
; 对于非realtimepeers,注册过期时,注册信息也不会从内存或asterisk数
; 据库移除。
如果有电话呼叫这个peer时,该注册信息会一直可以使用,
; 不管这个peer是否已经过期。
; 对于realtimepeers, 无论是否过期,从数据库得到的注册信息仍然可以
; 使用。
如果过期,realtimepeer信息仍然在内存(由于缓存或其他原因),
; 该信息不会从realtime数据库移除。
13. SIP域名支持
收到的INVITE 和 REFER 消息可以和一系列的被允许的域名匹配。
每一个域名能够直接呼入他们描述的特定context.。
默认情况下,所有的域都会接收呼叫,并发送呼叫到指定的context或者user/peer指定的Context。
如果配置了域列表,REGISTER请求的域不在其中,呼叫将会被拒绝。
使用如下方式使用域:
domain=
例如:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- asterisk sip配置说明 sip 配置 说明