`
sun4love
  • 浏览: 230589 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Asterisk + Radius 简易攻略

    博客分类:
  • VOIP
阅读更多

  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

    【asterisk+freeradius+mysql】的集成配置详解 在VoIP系统中,Asterisk是一个开源的PBX软件,负责处理电话呼叫和相关通信任务。而FreeRADIUS则是一个强大的认证、授权和计费(AAA)服务器,常用于网络接入控制。...

    VoIP服务器安装asterisk+CentOS

    VoIP 服务器安装 Asterisk+CentOS VoIP 服务器是一种基于 IP 技术的分组化、数字化传输技术,通过把普通电话的模拟信号转变为数字语音信号,达到用 IP 网络进行语音通信的目的。 VoIP 作为一种提供电话业务和一些...

    Asterisk+manager+Interface(CN).doc

    ### Asterisk Manager Interface (AMI) 详解 #### 一、概览 Asterisk Manager Interface (简称 AMI),是Asterisk系统中的一个重要组件,它为开发者提供了远程管理和监控Asterisk实例的能力。通过AMI,我们可以实现...

    radiusclient-ng一款能与asterisk很好配合NAS客户端

    radiusclient-ng是一款强大的网络接入服务器(NAS)客户端软件,它被设计用来与Asterisk VoIP服务器配合工作,实现高效且灵活的计费解决方案。在本文中,我们将深入探讨radiusclient-ng的功能、如何与Asterisk集成...

    Asterisk学习必备资料

    Asterisk学习必备,共5本书籍,学习助手 Asterisk权威文档(第3版).pdf Asterisk,the future of telephony.pdf Building+Telephony+...Asterisk+For+Dummies+2006.pdf Asterisk_Developers_Documentation20060611.chm

    asterisk学习资料

    Asterisk+manager+API(中文文档).doc Asterisk_manager_API.doc Asterisk_系统及其应用分析.pdf asterisk入门连载.doc asterisk架构.doc Asterisk核心框架.docx Asterisk核心框架.pdf asterisk目录结构.txt 基于...

    通过asterisk-java操作asterisk

    Asterisk是一个开源的IP电话系统,而Asterisk-java则是一个Java库,它提供了与Asterisk服务器交互的能力。这个库使得开发者可以利用Java语言来控制和编程Asterisk PBX(Private Branch eXchange),执行诸如创建、...

    Asterisk权威指南中文

    Asterisk权威指南中文(第3版) Asterisk权威指南(第3版)第15章自动话务员 Asterisk权威指南(第3版)第02章Asterisk体系结构 Asterisk权威指南(第3版)第05章用户设备配置 Asterisk权威指南(第3版)第06章Dialplan基础 ...

    Asterisk.NET 1.6.3 控制Asterisk

    Asterisk.NET 1.6.3 是一个专门为.NET开发者设计的开源库,它提供了对Asterisk PBX系统的编程接口,使得用户可以方便地在C#、VB.NET或其他.NET支持的语言中控制和扩展Asterisk功能。这个库是基于Asterisk Manager ...

    Asterisk 简介 Asterisk 架构 Asterisk程序框图

    Asterisk是一款开源的电话交换机软件,它允许用户创建高度自定义的通信系统,包括VoIP(Voice over IP)电话、会议桥、自动呼叫分配(ACD)以及许多其他电信功能。Asterisk的核心设计理念是灵活性和可扩展性,这使得...

    asterisk 学习日志

    学习如何配置Asterisk与FreeRADIUS的集成是实现此功能的关键。 4. **OpenSIPS集成**: OpenSIPS是一个强大的SIP服务器,它可以与Asterisk配合使用以扩展VoIP服务。命令`opensipsctl add 101 101`用于添加用户到...

    Asterisk 之数据库配置方案 asterisk数据库

    Asterisk 之数据库配置方案 Asterisk 是一个开源的 PBX(Private Branch Exchange)系统,可以实现电话交换和语音网关的功能。在传统的 Asterisk 配置中,配置文件都是存储在文件系统中的,但是随着系统的复杂度和...

    asterisk16版本安装包

    Asterisk是一款开源的IP电话系统,用于构建VoIP(Voice over Internet Protocol)通信平台。在本场景中,我们讨论的是Asterisk的16版本安装包,这将引导我们深入理解Asterisk的核心功能、安装流程以及如何进行编译和...

    asterisk分机配置

    - **方法2**:适用于Asterisk+freePBX或Trixbox环境,利用freePBX简化配置过程。 #### 三、方法1:纯Asterisk环境下的分机配置 假设您的环境中只有Asterisk,没有使用freePBX等图形化管理工具。在这种情况下,我们...

    Asterisk AMI 接口代码

    Asterisk AMI(Asterisk Manager Interface)接口是Asterisk PBX系统提供的一种用于远程管理和监控的强大工具。这个接口允许开发者通过编程方式与Asterisk进行交互,执行诸如控制呼叫、获取状态、监听通话等多种操作...

    asterisk 视频通讯实现方法

    Asterisk是一款开源的PBX(Private Branch Exchange)软件,专用于实现VoIP(Voice over IP)通信。在本文中,我们将深入探讨如何利用Asterisk实现视频通讯功能。实现Asterisk视频通讯的关键在于配置sip.conf文件...

    Asterisk一些常用的命令

    Asterisk命令详解 Asterisk是一款开源的电话交换机软件,提供了丰富的命令来管理和控制电话系统。下面是Asterisk的一些常用的命令: 1. amportal 命令 amportal 命令是FreePBX搞的,负责管控Asterisk。amportal ...

    asterisk AGI应用说明

    ### Asterisk AGI应用详解 #### 一、概述 Asterisk是世界上最流行的开源PBX系统之一,它支持多种通信协议并提供了丰富的功能。在Asterisk中,AGI(Asterisk Gateway Interface)是一种非常重要的接口技术,它允许...

    Asterisk 客户端.rar

    Asterisk是一款开源的IP电话系统,用于构建VoIP网络通信基础设施。它的功能强大,能够支持PBX(Private Branch Exchange)、VoIP网关、呼叫中心和许多其他电信应用。在这个"Asterisk客户端.rar"压缩包中,我们主要...

Global site tag (gtag.js) - Google Analytics