日期:2014-05-16 浏览次数:20796 次
在本文中,我们准备对上文搭建好的小型的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,内容如下:
[MySQL] Description = ODBC for MySQL Driver = /usr/lib/odbc/libmyodbc.so Setup = /usr/lib/odbc/libodbcmyS.so FileUsage = 1
通过如下命令来验证odbcinst.ini是否有效
# odbcinst -q -d
创建 /etc/odbc.ini,内容如下:
[asterisk-connector] Description = MySQL connection to 'asterisk' database Driver = MySQL Database = asterisk Server = localhost UserName = asterisk Password = yourpassword Port = 3306 Socket = /var/run/mysqld/mysqld.sock
通过以下命令确认是否可以连接
# echo "select 1" | isql -v asterisk-connector
1.4 确认odbc相关安装模块
$ cd ~/src/asterisk-complete/asterisk/1.8
$ ./configure
$ make menuselect
确认cdr_odbc, cdr_adaptive_odbc, func_odbc,
func_realtime, pbx_realtime, res_config_odbc, and res_odbc,ODBC_STORAGE已经被选中
$ make install
二、配置Asterisk
2.1 修改/etc/asterisk/extconfig.conf支持动态加载
sippeers => odbc,asterisk,sip
sipusers => odbc,asterisk,sip
2.2 修改/etc/asterisk/res_odbc.conf
[asterisk]
enabled => yes
dsn => asterisk-connector
username => asterisk
password => cynthia
pooling => yes
limit => 2
pre-connect => yes
2.3 创建表和数据
mysql -u asterisk -p
use asterisk
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, `regserv