介绍
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.