`
xiuxiuxiu
  • 浏览: 34819 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Asterisk Realtime with Mysql

    博客分类:
  • VoIP
阅读更多

Asterisk Realtime with Mysql

Asterisk的强大功能让我第一眼就喜欢上了它,但是需要配置如此之多的conf文件实在让人有点受不了。
From Readme.extconfig for Asterisk Realtime Engine

The Asterisk external configuration engine is the result of work by Anthony Minessale II, Mark Spencer and Constantine Filin It is designed to provide a flexible, seamless integration between Asterisk's internal configuration structure and external SQL other databases (maybe even LDAP one day).


External configuration is configured in /etc/asterisk/extconfig.conf allowing you to map any configuration file (static mappings) to be pulled from the database, or to map special runtime entries which permit the dynamic creation of objects, entities, peers, etc. without the necessity of a reload.

这不就是我想要的么,动手是我的一贯原则,马上来。
前提
由于需要调用Mysql,所以需要先安装mysql-common,mysql-server,mysql-client,libmysqlclient-dev。
Step 1 安装Asterisk-Addon
在www.asterisk.org的网站上下载Asterisk-Addon,解压缩以后进行安装。

sudo ./configure
sudo make
sudo make install
sudo make samples

需要注意的是,执行configure这步没有mysql也是可以过得(Checking mysql_config … No),但是最后汇报错”Find Engine Mysql, but it is not available”.我已开始在这边耽误了很久,所以请注意前提中要求的几个包。

Step 2 配置/etc/asterisk/res_mysql.conf
在“ [general]”下增加如下配置。

dbhost = localhost
dbname = asterisk
dbuser = username
dbpass = password
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock

基本的数据库配置,没啥好说的。

Step 3 配置/etc/asterisk/extconfig.conf
extconfig主要分成static 和database两种模式。
static 模式就是在”reload”的时候一口气全部从数据库中读出配置信息,储存在Memory中;database模式就是实时的按照需要从数据库中读取。这里我选择的是database,希望朝stateless asterisk靠拢。
在extconfig的”[settings] “中增加如下配置。

sippeers => mysql,general,sip_peers
sipusers => mysql,general,sip_users
queues => mysql,general,queue_table
queue_members => mysql,general,queue_member_table
meetme => mysql,general,meetme_table
voicemail => mysql,general,voicemail
extensions => mysql,general,extensions_table

这里需要注意的是,网上很多教程里写的配置格式是<driver>,<database name>[,table_name].但是在Asterisk 1.6.1或者以上的版本中正确的配置格式应该是<driver>,<settings name>[,table_name]。其中的<settings name>指的是res_mysql.conf中的”[general]“.
Step 4 创建数据库
这部分我就不多说了,没有什么不同。具体各个部分配置对应的数据表结构可以在我给出的参考地址中找到,我就不多说了。

Step 5 运行起来
还等什么运行起来。

sudo asterisk -vvvvc

然后在sip_peers中添加一条用户信息。不需要重起asterisk,直接用Xlite进行连接,哇塞,直接就注册上了,神奇的意思就是这个。

遗留问题
1)按照参考连接中的说法,database config不支持SIP NAT.这肯定是要克服的一个问题,回头再找找看资料了。
2) Realtime只是Asterisk集群,负载均衡的基石,要作大规模的Asterisk服务,Asterisk的集群技术和基于SIP的负载均衡技术都是下一个需要研究的课题。

参考地址:http://www.voip-info.org/wiki/view/Asterisk+RealTime

原文地址 : http://blog.tech4k.com/?p=335

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics