转 使用Asterisk作为H.323和SIP网关
首先安装Asterisk,可参见本站内相关的内容,这里不详述。
下载并编译OH323.SO模块,该模块会用到pwlib和openh323两个库,现已经成功编译一个静态连接pwlib和openh323库的模块。 如果要编译,必须注意pwlib和openh323的版本,有个USE_OLD_CAPABILITIES_API编译开关对应较老的版本。我使用的是asterisk-oh323-0.7.3.tar.gz 即oh323 v0.7.3版本,该版本对应于Asterisk 1.2.x (Asterisk有两个版本树,一个是Stable版本系列1.0.x, 一个是Head系列1.2.x, 目前我使用的是1.2.x, 因此在编译oh323的时候要选择对应版本)
编译完成后使用make install, 安装模块以及添加文件。如果使用已编译模块,则需要将oh323.so复制到Asterisk的模块目录,默认安装目录是 /usr/lib/asterisk/modules,并且手动添加配置文件oh323.conf到Asterisk的配置文件目录,默认是 /etc/asterisk
配置oh323.conf
在oh323.conf中找到"gatekeeper=<参数>"项,有以下几种参数:
• DISABLE - 禁用gatekeeper
• DISCOVER - 使用广播发现机制
• <hostname> or <ip> - 显式制订gatekeeper的地址
• GKID:<gatekeeper's id> - 显式指定gatekeeper id
如果已知gk在10.167.16.8, 则使用
gatekeeper=10.167.16.8
进行配置。
在oh323.conf中找到或直接在上一项下面添加
gatekeeperPassword=<密码>
密码是注册到gatekeeper的密码,没有则为空。
配置alias和prefix组, 一个这样的组的格式如下:
context=<context>
context=<context>
alias=<alias1>
alias=<alias2>
...
gwprefix=<prefix1>
gwprefix=<prefix2>
...
oh323.so支持多个alias/prefix组,并且为每个组指定一个context(即路由脚本),如需要将所有以888开头的被叫号码用名为voip-h323的context来路由,则编写以下配置:
context=voip-h323
gwprefix=777
codec配置
在oh323.conf最下面有一组codec,去掉或注释掉相应的即可。
将H.323话务路由到SIP Server
要将H.323话务路由到一台或多台SIP Server, 需要注册到这些SIP Server的至少一条Trunk线路,然后根据被叫号码分别路由到这些Trunk线路。
注册Trunk
在本例中,使用10.167.25.8的SIP Server, Trunk线路使用7770759,在sip.conf 文件里,找到[general]配置段,加入格式如下的Trunk 配置:
register=7770759xxxxx@10.167.25.8/7770759 /* xxxxxx 是7770759账号的密码 */
配置Out_Line
要使用Trunk线路路由outgoing话务,必须为每条Trunk线路配置一个Out_Line,这样才能在需要的时候调用Out_Line的名字来使用与之对应的Trunk线路。
在sip.conf文件里,加入一个名为sip-8的Out_Line, 该Out_Line使用上面配置的7770759作为外出线路,例子如下:
[sip-8]
username=7770759
type=friend
secret=xxxxxx
qualify=no
insecure=very
host=10.167.25.8
dtmfmode=rfc2833
canreinvite=no
配置H.323 To SIP路由脚本
打开extensions.conf文件,添加以下节:
[macro-dialout-trunk]
exten => s,1,Dial(SIP/${ARG2}@${ARG1})
[voip-h323]
exten => _777XXXX,1,Macro(dialout-trunk,sip-8,${EXTEN})
以上脚本定义了一个呼叫SIP终端的宏,并且在voip-h323这个context中将所有777开头,长度为7的号码通过sip-8路由到SIP终端。
配置SIP To H.323路由脚本
打开extensions.conf文件,添加以下节:
[from-pstn]
exten => _666XXX, 1,Dial(OH323/${EXTEN}
该脚本把被叫号码为666开头,长度为6的呼叫路由到H.323 GateKeeper
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论