在本文中,我们准备对上文搭建好的小型的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,需要修改/etc/mysql/my.cnf 注释掉 bind-address = 127.0.0.1
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,
`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数据库的支持,进行进一步的扩展,使得本文的小例子可以一步步符合工业的要求。
(待续)
分享到:
相关推荐
Asterisk是一款开源的电话交换机软件,它允许用户创建高度自定义的通信系统,包括VoIP(Voice over IP)电话、会议桥、自动呼叫分配(ACD)以及许多其他电信功能。Asterisk的核心设计理念是灵活性和可扩展性,这使得...
本文将深入探讨如何利用开源软件Asterisk和一些可能已经拥有的硬件来构建一个功能齐全、成本低廉的PBX系统。 #### 一、什么是PBX? PBX是一种内部电话网络,可以连接到公共电话网络,并允许组织内的电话进行内部...
Asterisk是一款开源的IP电话系统,用于构建VoIP(Voice over Internet Protocol)通信平台。在本教程中,我们将深入探讨如何在CentOS 5.5操作系统上安装Asterisk 10.3.0版本。这个教程是基于官方资源,并经过了多次...
无论是小型实验室还是大型企业,都可以利用Asterisk构建高效且经济的电话系统。 安装Asterisk需要一系列的依赖项,例如GCC、glibc-kernheaders、cpp、binutils、glibc-headers、glibc-devel等。同时,bison和...
Asterisk是一个开源的电话通信软件平台,它使用标准的计算机硬件资源来建立电话系统。Asterisk可以与传统的电话系统集成,同时提供了通过Internet进行语音通信的能力。它最初由Mark Spencer在1999年创建,并由...
Asterisk 1.8 是 Asterisk 开源通信平台的一个重要版本,对于理解呼叫中心的工作原理及其内在机制,它提供了丰富的学习资源。初学者通过深入研究 Asterisk 1.8,不仅可以掌握基础的电话系统配置,还能了解复杂的VoIP...
Asterisk是基于Linux的操作系统上的一个软件PBX,由Digium公司开发。它支持多种协议,如SIP、IAX2等,可用于创建企业级电话系统、呼叫中心、VoIP网关等。Asterisk不仅处理通话,还提供录音、会议、传真、IVR...
- **小型办公室电话系统**:通过简单的配置即可搭建起满足小型办公室通信需求的电话系统。 - **呼叫中心解决方案**:利用Asterisk的自动呼叫分配等功能,构建高效的呼叫中心系统。 - **远程办公支持**:通过VoIP技术...
Asterisk的核心优势在于它的灵活性和强大的功能集,这使得它不仅适用于企业内部的电话系统搭建,也广泛应用于各种规模的呼叫中心建设。通过结合不同的硬件设备和软件配置,可以实现高度定制化的解决方案,满足不同...
Digium TDM400P FXO/FXS 卡是此类卡片的一个例子。 3. **T1/PRI卡**:T1/PRIs(Primary Rate Interface)卡支持更高带宽的通信,适用于大型企业和高负载环境。 ##### 3.3 VoIP服务提供商 1. **Free World Dialup ...
Asterisk是一个强大的通信平台,允许开发者构建VoIP(Voice over IP)应用程序。而Netbeans是一个支持多种编程语言的IDE,对于C/C++的开发有着良好的支持。 描述中提到,通过在Linux环境下使用Netbeans 5.5.1,...
- **应用范围**:Asterisk被广泛应用于搭建IP PBX系统、VoIP网关、会议服务器等场景,并且被小型企业、大型企业、呼叫中心、电信运营商乃至政府机构所采用。 - **开源特性**:Asterisk是一款免费且开源的产品,由...
本文将基于《Asterisk入门指南》的内容,深入探讨Asterisk的基础概念、FreePBX的安装与配置流程,以及如何利用这些工具来搭建一个简单的IP PBX(Private Branch Exchange,私有分组交换)系统。 #### 1. Asterisk...
Asterisk是一个开源的IP电话系统,由Digium公司开发,它提供了PBX(Private Branch eXchange)功能,支持多种VoIP协议,如SIP、IAX2等,以及传统的电话线路。Asterisk能够处理电话呼叫、会议、IVR(Interactive ...
- **教育机构**:许多学校和大学利用Asterisk来搭建内部电话系统,提高校园内的通信效率。 综上所述,Asterisk不仅仅是一个开源项目,更是一个强大的通信工具,它以其独特的功能、灵活性和低成本优势在融合通信领域...
- **功能**: S100I是一种单端口、全功能的FXS(Foreign Exchange Station,电话机接口)接口,配备有以太网后端,并支持Asterisk原生的IAX(Inter-Asterisk eXchange)协议。 - **应用场景**: 适用于小型办公室或...
Asterisk是一个开源的IP电话系统,用于构建VoIP网络基础设施。它支持多种编解码技术,其中G.729和G.723是两种常用的语音编码标准,尤其适用于压缩语音数据以减少带宽需求。在Asterisk系统中安装这两个编解码模块,...
Asterisk是一款开源的IP电话系统,它提供了丰富的VoIP服务,包括PBX功能、会议、IVR(交互式语音应答)和呼叫中心解决方案。Asterisk通常与硬件语音板卡配合使用,以实现与传统电话网络(PSTN)的接口。本文档主要...
Vicidial是基于Asterisk的一个外拨呼叫中心解决方案,提供了自动拨号、客户关系管理、报表分析等一系列功能,适用于小型到大型呼叫中心的运营需求。 二、硬件要求 根据给定部分内容,推荐的硬件配置包括: - 处理器...