Asterisk号称是VOIP领域的瑞士军刀,Radius是AAA计费协议的圆月弯刀。且看Asterisk+Radius如何双刀合璧,称雄VOIP的江湖。。。
Asterisk 是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把你的x86机器变成你自己的交换机,还能够当作一台企业级的商用交换机。Asterisk让人激动的事情是它在小企业预算可承受的范围内提供了商业交换机的功能和可伸缩性。你可以使用一台老式的奔腾3计算机,让你的机构看起来就同世界上的大企业一样。
Asterisk官方站点: http://www.asterisk.org/
RADIUS:Remote Authentication Dial In User Service,远程用户拨号认证系统
由RFC2865,RFC2866定义,是目前应用最广泛的AAA协议。
RADIUS协议最初是由Livingston公司提出的,原先的目的是为拨号用户进行认证和计费。后来经过多次改进,形成了一项通用的认证计费协议。
Radius RFC2865网址: http://www.ietf.org/rfc/rfc2865.txt
一.前期准备工作
1. 获取asterisk-1.4.5源代码
wget --passive-ftp ftp.digium.com/pub/asterisk/asterisk-1.4.5.tar.gz
解压源代码
tar zxvf asterisk-1.4.5.tar.gz
二. 调整代码
为了添加使用radius进行计费的模块,涉及到三个radius相关库:appradius1.0和cpprad以及radiusclient-ng库
1. cpprad是使用C实现radius通信协议的模块
2. appradius是专用于asterisk的radius通信模块,其中底层通信使用到了cpprad的库函数
3. radiusclient-ng是另外一个radius通信库
asterisk1.4.5的cdr_radius.c默认使用radiusclient-ng库,本项目的做法如下,
1. 把cpprad中的实现代码(radlib.c, md5.c)揉合到appradius的实现代码中(app_radius.c, cdr_radius.c)
2. 再把appradius的实现代码app_radius.c拷贝到asterisk的app路径下,cdr_radius.c覆盖asterisk的cdr路径下的同名文件,因此就去掉了与radiusclient-ng的耦合关系。
3. 把appradius和cpprad的相关头文件全部拷贝到asterisk的include文件夹下
4. 特别注意,不能随便把上述库的编译结果,如libradiusclient-ng.so.2放到asterisk的模块路径夹/usr/lib/asterisk/modules/下,asterisk启动时默认会加载这个路径下的所有模块,但是这些模块必须满足asterisk加载的特殊要求,因此一般的linux模块放在此路径下不生效。倒是可以考虑放到/usr/lib/下供某些模块使用。
三. 编译部署
1.清除上次编译的中间文件
make clean
2. 加载cdr_radius模块
asterisk1.4.5虽然带了cdr_radius.c源文件,但是因为依赖于radiusclient-ng库,所以默认是不编译该模块的,运行make menuselect找到cdr_radius模块,其中显示[XXX]可以看出是因为模块依赖关系默认不编译的。 因此想要编译cdr_radius.c,必须运行一次下面这个命令,之后就会编译这个模块了。
./configure --prefix=/data/asterisk --exec-prefix=/data/asterisk --with-radius=/data/radiusclient-ng/
3.运行configure设置编译的初始条件
指定安装路径,请指定prefix和exec-prefix的值,第二个configure将指示安装asterisk到/data/asterisk目录中。
./configure --prefix=/data/asterisk --exec-prefix=/data/asterisk
4.运行make命令进行编译
make
5.运行make install进行部署
make install
6.如果是第一次安装,请运行make samples拷贝默认的配置文件
make samples
7.了解常用的asterisk文件夹
配置文件默认保存在以下目录
/etc/asterisk/
/var/lib/asterisk/sounds/下保存了ivr使用到的语音文件(gsm后缀的文件)
/var/spool/asterisk
Asterisk的日志运行将保存在以下文件夹中
/var/log/asterisk
这里保存了asterisk启动的进程id等,因此登录用户需要有访问这个文件夹的权限
/var/run/asterisk.pid
/var/run/asterisk.ctl
四. 配置Asterisk
Asterisk的默认配置文件夹是
/etc/asterisk
Extensions.conf 设置拨号应用方案
Sip.conf 设置sip相关
五.运行调试Asterisk
1. 运行调试常用命令
./asterisk & 在后台启动asterisk
./asterisk –vvvc 启动asterisk并尽量多的在控制台显示调试信息
./asterisk –r 连接asterisk控制台
set verbose 9999 设置打印详细信息
2.asterisk控制台下常用命令
sip reload 重新加载sip配置信息
sip set debug 设置显示更多的sip信息
sip set debug off关闭显示更多的sip信息
sip show channels 显示所有活动的SIP通道
sip show peers 显示所有已定义的SIP peer
dialplan show 显示拨号方案
dialplan reload重新加载拨打方案
stop gracefully 优雅地停止asterisk
stop now 立即停止运行asterisk
module show 显示所有已加载模块
module load cdr_radius.so 加载模块cdr_radius.so
module reload cdr_radius.so 重新加载模块cdr_radius.so
module unload cdr_radius.so 卸载模块cdr_radius.so
core show applications 显示所有的应用,比如Dial, Radius, Hangup, Answer等
core show channels 显示所有的通话频道
core show codecs 显示所有支持的编解码器
core show functions 显示所有的功能函数
本文来自CSDN博客,:http://blog.csdn.net/colinchan/archive/2007/07/24/1705501.aspx
分享到:
相关推荐
asterisk+freeradius+mysql本人亲自验证书写 基于redhat4.8 AS
Asterisk+manager+Interface(CN).doc
利用asterisk+CentOS完成VoIPserver 包含详细安装过程及配置文件
关于asterisk在VOIP上的伟大地位和作用,俺就不絮叨了,请看前作:Astersik+Radius简易攻略 国内对于asterisk的资料介绍,更别说对asterisk的源码分析了,因此我把平时记的一些资料与大家分享一下,希望对同行能有...
Asterisk 文档计划 Asterisk简介
Asterisk学习必备,共5本书籍,学习助手 Asterisk权威文档(第3版).pdf Asterisk,the future of telephony.pdf Building+Telephony+...Asterisk+For+Dummies+2006.pdf Asterisk_Developers_Documentation20060611.chm
sip server 环境详细手册!VMware player的安装配置、CentOS5.5安装配置、asterisk安装配置,以及常用sip命令
asterisk通过它能很容易与freeradius实现计费。无需另外编码,只要根据asterisk你面的readme 和其他的配置文件就能很好的实现计费
Asterisk+manager+API(中文文档).doc Asterisk_manager_API.doc Asterisk_系统及其应用分析.pdf asterisk入门连载.doc asterisk架构.doc Asterisk核心框架.docx Asterisk核心框架.pdf asterisk目录结构.txt 基于...
Asterisk 简介 Asterisk 架构 Asterisk程序框图
Asterisk权威指南中文(第3版) Asterisk权威指南(第3版)第15章自动话务员 Asterisk权威指南(第3版)第02章Asterisk体系结构 Asterisk权威指南(第3版)第05章用户设备配置 Asterisk权威指南(第3版)第06章Dialplan基础 ...
用于控制Asterisk的.net类库,包含了AMI和FastAGI,最新的1.6.3版本
This is a book for anyone who uses Asterisk, but particularly those who already understand the dialplan syntax. In this book, we look at common problems we’ve encountered as Asterisk administrators ...
asterisk16版本安装包,下载之后直接编译安装即可。
Asterisk[1] 是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把你的x86机 器变成你自己的交换机,还能够当作一...
asterisk拨号方案的配置
本代码整理了Asterisk AMI 接口,下载之后,通过配置Asterisk用户名和密码即可连接到Asterisk,用户名和密码在代码中已给出,可自由修改。
Asterisk 11.0.0beat+补丁
详细写了如何实现asterisk视频通讯功能的 每步都有截图噢!
Asterisk 分机注册-互通-中继配置