`

开源软交换ASTERISK学习日记(一)

 
阅读更多

转自:http://blog.csdn.net/seanchan/article/details/4216071

 

   很久以前接触过一些voip方面的东西,包括Asterisk、openh232、gnugk等等,当时的想法是纯粹H323、SIP协议的软件才是真正的voip软件,所以对Asterisk没什么兴趣,认为只是一个另类的软交换,现在看来真是自己的知识贫乏,太落伍了。最近因为公司开始接触这方面的业务,我也回头来找这方面的资料,原来国内有很多人用Asterisk来做voip,当然是用它作为基础进行应用开发,不是简单的使用,毕竟Asterisk只是个毛坯房,要住进去还要自己装修的。

 

    Asterisk是一款实现用户电话交换机(PBX)功能的自由软件、开源软件。Asterisk提供完善PBX功能,可以连接多种不同的电话终端,包括普通电话机,IP电话机,软电话等,支持多种主流的IP电话协议和系统接口。软件名称Asterisk-星号(*),在Unix(包括Linux)和DOS操作系统中是通配符,用来在查找中适配任何字符,寓意该软件广泛的适用性。
    
    Asterisk软件提供很多以前只有昂贵的专业PBX系统才支持的功能,比如:语音信箱,会议电话,交互式语音提示和自动电话转接等。由于该软件开放的性质,用户可以灵活的配置方便的扩展系统的功能,甚至编程开发自己所需功能的模块。Asterisk通常都运行在Linux操作系统下,当然它也可以在其他系统,如BSD,Windows或OS X下编译并安装。
    
    Asterisk服务器不需要任何特殊的硬件即可提供VoIP的服务,只需服务器有网络连接即可。它支持主流VoIP协议,包括会话发起协议(SIP)、H.323,既可作为IP电话服务器也可以作IP电话和PSTN之间的转接。Asterisk系统还设计了一个新协议,IAX,用于在Asterisk服务器之间维护话路通道。如果需要连接普通电话或PSTN中继线,运行Asterisk的服务器则需要安装相应的硬件接口板。许多厂商都生产用于连接普通电话、T1、E1中继线、ISDN等的接口板。
    
    由于是自由软件且具有丰富的系统功能,Asterisk提供给用户一个廉价并功能强大的PBX解决方案。它被越来越多的用于代替传统专用的PBX,或被用于跨国VoIP电话以节省长途费用。一些国家的VoIP电话公司已经开始支持Asterisk,提供IAX2接口或允许用户的Asterisk服务器使用SIP协议连接。
    
    截止2009年5月20日,Asterisk的最新版本是1.6.1.0版。
    
    以上这些是维基百科中的解释,应该是通俗易懂的了。

 

    言归正传,还是赶紧开始搭个平台出来先,我用的机器是一台RedHat9的机器,系统老了点,但是现成的,暂时也没其他机器可以用了,安装前已经估计到可能需要升级一些开发包,但还不知道要升级哪些。

    第一步当然是先下载个Asterisk,我选择了1.4.25版本,一是这个版本比较稳定,二是因为我的机器可能不太适合装太新的东西,下面是下载地址:
    http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.25.tar.gz

 

    安装必须用root用户,如果不用root用户会怎么样呢?估计会报没权限之类的错误,我反正没试过。如果你的机器连接互联网,你也可以用下面的命令下载文件到你的机器:

    #wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.25.tar.gz

 

    首先解压文件:

    #tar -zxvf asterisk-1.4.25.tar.gz

    开始编译:

    #cd asterisk-1.4.25

    #./configure

    #make menuselect

    #make

    “make menuselect”这步是做些模块选择,我现在对这些东西还没什么了解,所以我什么都没动就退出了。

 

     执行到“make”时出问题了:

    expand.c:489: allocated_variable_append: Assertion 'current_variable_set_list->next != 0' failed

    make: *** [all] Aborted

    有人说make3.79有问题,需要升级,我看看我机器上的make版本:

    #make --version

    GNU Make 3.79
    ......

    怎么就这么准确呢,简直就是说我的情况嘛。赶紧到GNU下个最新的make:

    #wget ftp://ftp.gnu.org/gnu/make/make-3.81.tar.gz
    #tar -zxvf make-3.81.tar.gz
    #cd make-3.81
    #./configure
    #make
    #make install
    
    无惊无险,顺利升级,但……是……,记得注销,重新登陆,因为我在安装完新的make后又查看了一下make版本,居然还是3.79。
    
    再次回到asterisk-1.4.25下面,执行“#make”,又遇到问题了:
   


    ……

    ……

    func_curl.c:109: `CURLOPT_NOSIGNAL' undeclared (first use in this function)

    ……

 

    CURL的版本也低了,需要升级CURL:

    #wget http://curl.haxx.se/download/curl-7.19.5.tar.gz
    #tar -zxvf curl-7.19.5.tar.gz
    #cd curl-7.19.5
    #./configure
    #make
    #make install
    
    #curl --version
    curl 7.19.5 (i686-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.7a zlib/1.1.4
    Protocols: tftp ftp telnet dict ldap http file https ftps
    Features: Largefile NTLM SSL libz
    
    如果你安装没出错,但看到的版本号还是老的,那就请重新登陆吧。
    
    再次编译Asterisk:
    
    #cd asterisk-1.4.25
    #make
    
    这次顺利通过,按照提示执行安装:
    
    #make install
    
    如果需要安装samples,执行下面的命令:
    
    #make samples
    
    好了,现在可以试下Asterisk是否能工作:
    
    #asterisk -vvvc
    
    这里的参数-v的意思是出现一些Asterisk工作的信息,v越多,显示的信息越多,第一次见到这样的参数,还真是有创意。
    
    如果你见到了下面这些提示:
    Asterisk Ready.
    *CLI>
    
    恭喜!你已经安装成功了!

 

    这个提示符下面可以用“help”命令看看可以做些什么,我看到有个“stop now”,于是自执行:

    *CLI>stop now

    Beginning asterisk shutdown....
    Executing last minute cleanups
           ==    Destroying musiconhold processes
    Asterisk cleanly ending (0).

    #

    直接把Asterisk停了:)

分享到:
评论

相关推荐

    开源交换机 Asterisk的应用

    开源交换机 Asterisk的应用 开源交换机 Asterisk的应用

    Asterisk学习必备资料

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

    浅谈用Asterisk构建企业开源VoIP

    答案是这不仅可能,而且Asterisk的独到之处在于它是一个开源IP电话平台。Asterisk不仅作为一个IP呼叫信号服务器(有时称作IP PBX),而且它也作为传统的TDM/模拟PBX,并且无缝地在两种环境之间架起桥梁。Asterisk...

    asterisk学习资料

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

    asterisk的软交换和中继网关的配置.pdf

    asterisk的软交换和中继网关的配置.pdf

    asterisk 学习日志

    刚刚接触asterisk,本日志对于asterisk学习人员很有一定帮助。

    Asterisk 代码学习笔记,深入浅出asterisk,asterisk通道,呼叫情景(call scenario)

    Asterisk 代码学习笔记,深入浅出asterisk,由于工作上的VOIP项目需要,最近亲密接触了一下asterisk工程代码。关于asterisk在VOIP上的伟大地位和作用,俺就不絮叨了,请看前作:Astersik+Radius简易攻略 国内对于...

    Asterisk-CLI-命令列表.zip_asterisk_cli

    pbx软交换asterisk的cli命令列表

    asterisk_dialplan学习笔记

    asterisk_dialplan学习笔记,归纳总结出来的,强烈推荐

    asterisk-基本语法.docx

    asterisk SIP 开源的 asterisk 编程参考

    融博结合Asterisk提供呼叫中心一体化解决方案

    主要解决以下三个方面的问题:提供基于Asterisk软交换的快速应用开发平台;融博CRM与Asterisk软交换紧密整合,提供软电话,座席管理和监控,客户管理,服务工单管理,销售管理,市场营销管理,知识管理等大量丰富功能;支持...

    Asterisk 简介 Asterisk 架构 Asterisk程序框图

    Asterisk 简介 Asterisk 架构 Asterisk程序框图

    asterisk入门学习资料集合(全手写)

    2、asterisk安装之后的简单启动,简单命令 3、对asterisk增加g729和g723编码 4、对语音板卡的安装,配合asterisk进行使用。板卡安装,配置,也有图文详解。 两个文件夹: 1、asterisk有关的几个安装包。相关的全部...

    Asterisk CLI 命令列表

    Asterisk CLI 命令列表 Asterisk是一个开源的VoIP系统平台..

    Asterisk电话未来之路第2版

    Asterisk的主要特性是:提供了由垄断到开源,由电路交换到VoIP,由单一声音通讯到多媒体、视频和数据通讯,由数字信号进程到媒体流进程,由集中式交换到点对点交换等等的一个VoIP的技术实现。通过Asterisk,你能与六...

    最全Asterisk代码学习笔记

    包含asterisk 1.2/1.4/1.8通话流程、架构概述、内核框架、代码和功能分析、PSTN、卸载asterisk、CLI命令、DialPlan详解等等。重新排版整理

    部署asterisk项目到Netbeans进行实时调试(图解)

    为了更好地使用Asterisk开发项目, 一个途径就是有针对性地学习、分析与项目有关的那部分asterisk源代码。虽然说代码是模块化的,但是赤手空拳地针对每个源文件进行学习,确实增加了一定的难度,如果能够借助某些...

    Asterisk权威指南中文

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

    asterisk for windows

    Asterisk[1] 是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把你的x86机 器变成你自己的交换机,还能够当作一...

    Asterisk.NET 1.6.3 控制Asterisk

    用于控制Asterisk的.net类库,包含了AMI和FastAGI,最新的1.6.3版本

Global site tag (gtag.js) - Google Analytics