利用Digium卡搭建一个小型的asterisk电话系统 (二、添加Mysql支持)
在本文中,我们准备对上文搭建好的小型的asterisk电话系统添加动态的odbc支持,这样就可以动态地添加和注册。
一、安装Mysql和配置环境
1.1安装Mysql
$ sudo apt-get install mysql-server
设置root的password
1.2 配置Mysql
配置并确认安全
$ sudo /usr/bin/mysql_secure_installation
创建用户asterisk
$ mysql -u root -p
mysql> CREATE USER 'asterisk'@'%' IDENTIFIED BY 'yourpassword';
创建数据库asterisk
mysql> CREATE DATABASE asterisk;
赋予asterisk所有权限,并可以从任何地方访问。
mysql> GRANT ALL PRIVILEGES ON asterisk.* TO 'asterisk'@'%';
mysql> exit
1.3 安装并配置odbc桥
$ sudo apt-get install unixODBC unixODBC-dev
$ sudo apt-get install libmyodbc
创建 /etc/odbcinst.ini,内容如下:
CREATE TABLE `sip` ( `type` varchar(6) DEFAULT NULL, `name` varchar(128) DEFAULT NULL, `secret` varchar(128) DEFAULT NULL, `context` varchar(128) DEFAULT NULL, `host` varchar(128) DEFAULT NULL, `ipaddr` varchar(128) DEFAULT NULL, `port` varchar(5) DEFAULT NULL, `regseconds` bigint(20) DEFAULT NULL, `defaultuser` varchar(128) DEFAULT NULL, `fullcontaxt` varchar(128) DEFAULT NULL, `regserver` varchar(128) DEFAULT NULL, `useragent` varchar(128) DEFAULT NULL, `lastms` int(11) DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;insert into sip (type,name,secret,context,host,defaultuser)values ('friend','2220','blah','default','dynamic','2220');insert into sip (type,name,secret,context,host,defaultuser)values ('friend','2221','blah','default','dynamic','2221');insert into sip (type,name,secret,context,host,defaultuser)values ('friend','2222','blah','default','dynamic','2222');2.4 去掉sip.conf
去掉sip.conf [2220]~[2226]的所有内容
三、启动和测试
启动
/etc/init.d/asterisk start
进入控制台
asterisk -rvvvvvvv
启动IP电话机和软件话,成功的话,在控制台可以考到从odbc注册的消息,并且可以和上文一样进行拨号,唯一不同的是,本文的配置可以从odbc动态加载数据,这尤其适用于sip用户经常发生改变的情况。
下文将对odbc数据库的支持,进行进一步的扩展,使得本文的小例子可以一步步符合工业的要求。
(待续)