Asterisk

合集下载

Asterisk使用命令

Asterisk使用命令

Asterisk使用命令收藏运行调试Asterisk 1. 运行调试常用命令./asterisk & 在后台启动asterisk ./asterisk –vvvc 启动asterisk并尽量多的在控制台显示调试信息./asterisk –r 连接asterisk控制台set verbose 9999 设置打印详细信息/usr/sbin/asterisk -cvvv 启动并连接到CLI,使用3级复杂度调试/usr/sbin/asterisk -vvvr 连接到CLI,使用3级复杂度调试/usr/sbin/asterisk命令参数* -c console 控制以,用于连接到CLI界面* -v 简繁程度,设置CLI的调试信息的多少* -g 核心。

如果asterisk突然瘫痪,在接下来的时间,为了用gdb来做trace,可以产生一个核心文件* -r 远程。

用来远程重新连接到一个已经运行的asterisk进程中。

* -rx “restart now”执行一个CLI命令,而不需要连接到CLI并手动输入命令 2.asterisk控制台下常用命令sip show subscriptions sip notify Send a notify packet to a SIP peer sip prune realtime [peer|user| Prune cached Realtime users/peers sip reload Reload SIP configuration sip set debug {on|off|ip|peer} Enable/Disable SIP debugging sip set history {on|off} Enable/Disable SIP history sip show {channels|subscriptio List active SIP channels/subscriptions sip show channel Show detailed SIP channel info sip show domains List our local SIP domains. sip show history Show SIP dialog history sip show inuse List all inuse/limits sip show objects List all SIP object allocations sip show peers List defined SIP peers sip show peer Show details on specific SIP peer sip show registry List SIP registration status sip show settings Show SIP global settings sip show tcp List TCP Connections sip show users List defined SIP users sip show user Show details on specific SIP user sip unregister Unregister (force expiration) a SIP peer from the registery 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 显示所有的功能函数For more information on applications, just type "core show applications" at your ; friendly Asterisk CLI prompt. ; ; "core show application <command>" will show details of how you ; use that particular application in this file, the dial plan. ; "core show functions" will list all dialplan functions ; "core show function <COMMAND>" will show you more information about ; one function. Remember that function names are UPPER CASE.本文来自CSDN博客,转载请标明出处:/jrbu59/archive/2008/06/22/2575229.aspx2007-05-13 18:30asterisk1*CLI> help! Execute a shell commandabort halt Cancel a running haltadd extension Add new extension into contextadd ignorepat Add new ignore patternadd queue member Add a channel to a specified queueael debug contexts Enable AEL contexts debugael debug macros Enable AEL macros debugael debug read Enable AEL read debugael debug tokens Enable AEL tokens debugael no debug Disable AEL debug messagesael reload Reload AEL configurationagent logoff Sets an agent offlineagi debug Enable AGI debuggingagi no debug Disable AGI debuggingcdr mysql status Show connection status of cdr_mysqlcdr status Display the CDR statusdatabase del Removes database key/valuedatabase deltree Removes database keytree/valuesdatabase get Gets database valuedatabase put Adds/updates database valuedatabase show Shows database contentsdatabase showkey Shows database contentsdebug channel Enable debugging on a channeldebug level Set global debug leveldnsmgr reload Reloads the DNS manager configurationdnsmgr status Display the DNS manager statusdont include Remove a specified include from context dump agihtml Dumps a list of agi command in html format dundi debug Enable DUNDi debuggingdundi flush Flush DUNDi cachedundi lookup Lookup a number in DUNDidundi no debug Disable DUNDi debuggingdundi no store history Disable DUNDi historic recordsdundi precache Precache a number in DUNDidundi query Query a DUNDi EIDdundi show entityid Display Global Entity IDdundi show mappings Show DUNDi mappingsdundi show peers Show defined DUNDi peersdundi show peer Show info on a specific DUNDi peerdundi show precache Show DUNDi precachedundi show requests Show DUNDi requestsdundi show trans Show active DUNDi transactionsdundi store history Enable DUNDi historic recordsextensions reload Reload extensions and *only* extensions feature show channels Show status of feature channelsgroup show channels Show active channels with group(s)help Display help list, or specific help on a command iax2 debug Enable IAX debuggingiax2 jb debug Enable IAX jitterbuffer debuggingiax2 no debug Disable IAX debuggingiax2 no jb debug Disable IAX jitterbuffer debuggingiax2 no trunk debug Disable IAX trunk debuggingiax2 provision Provision an IAX deviceiax2 prune realtime Prune a cached realtime lookupiax2 reload Reload IAX configurationiax2 set jitter Sets IAX jitter bufferiax2 show cache Display IAX cached dialplaniax2 show channels Show active IAX channelsiax2 show firmware Show available IAX firmwaresiax2 show netstats Show active IAX channel netstatsiax2 show peer Show details on specific IAX peeriax2 show peers Show defined IAX peersiax2 show provisioning Show iax provisioningiax2 show registry Show IAX registration statusiax2 show stats Display IAX statisticsiax2 show users Show defined IAX usersiax2 test losspct Set IAX2 incoming frame loss percentage iax2 trunk debug Enable IAX trunk debugginginclude context Include context in other contextindication add Add the given indication to the country indication remove Remove the given indication from the countryinit keys Initialize RSA key passcodesload Load a dynamic module by namelocal show channels Show status of local channelslogger reload Reopens the log fileslogger rotate Rotates and reopens the log fileslogger show channels List configured log channelsmeetme Execute a command on a conference or confereemgcp audit endpoint Audit specified MGCP endpointmgcp debug Enable MGCP debuggingmgcp no debug Disable MGCP debuggingmgcp reload Reload MGCP configurationmgcp show endpoints Show defined MGCP endpointsmixmonitor Execute a MixMonitor commandmoh classes show List MOH classesmoh files show List MOH file-based classesmoh reload Music On Holdno debug channel Disable debugging on a channelodbc connect Connect to ODBC DSNodbc disconnect Disconnect from ODBC DSNodbc show Show ODBC DSN(s)pri debug span Enables PRI debugging on a spanpri intense debug span Enables REALLY INTENSE PRI debuggingpri no debug span Disables PRI debugging on a spanpri set debug file Sends PRI debug output to the specified file pri show debug Displays current PRI debug settingspri show span Displays PRI Informationpri unset debug file Ends PRI debug output to filerealtime load Used to print out RealTime variables.realtime mysql status Shows connection information for the MySQL RealTime d riverrealtime update Used to update RealTime variables.reload Reload configurationremove extension Remove a specified extensionremove ignorepat Remove ignore pattern from contextremove queue member Removes a channel from a specified queue restart gracefully Restart Asterisk gracefullyrestart now Restart Asterisk immediatelyrestart when convenient Restart Asterisk at empty call volumertp debug Enable RTP debuggingrtp debug ip Enable RTP debugging on IPrtp no debug Disable RTP debuggingset debug Set level of debug chattinessset verbose Set level of verbosenessshow agents Show status of agentsshow agi Show AGI commands or specific helpshow applications Shows registered dialplan applications show application Describe a specific dialplan application show audio codecs Shows audio codecsshow channel Display information on a specific channel show channels Display information on channelsshow channeltypes Show available channel typesshow codecs Shows codecsshow codec Shows a specific codecshow conferences Show status of conferencesshow config mappings Show Config mappings (file names to config engines)show dialplan Show dialplanshow features Lists configured featuresshow file formats Displays file formatsshow functions Shows registered dialplan functionsshow function Describe a specific dialplan functionshow hints Show dialplan hintsshow image codecs Shows image codecsshow image formats Displays image formatsshow indications Show a list of all country/indications show keys Displays RSA key informationshow license Show the license(s) for this copy of Asteriskshow manager command Show a manager interface commandshow manager commands List manager interface commandsshow manager connected Show connected manager interface users show modules List modules and infoshow modules like List modules and infoshow parkedcalls Lists parked callsshow queue Show status of a specified queueshow queues Show status of queuesshow switches Show alternative switchesshow translation Display translation matrixshow uptime Show uptime informationshow version Display version infoshow version files Show versions of files used to build Asteriskshow video codecs Shows video codecsshow voicemail users List defined voicemail boxesshow voicemail zones List zone message formatsshow warranty Show the warranty (if any) for this copy of Asterisksip debug Enable SIP debuggingsip debug ip Enable SIP debugging on IPsip debug peer Enable SIP debugging on Peernamesip history Enable SIP historysip no debug Disable SIP debuggingsip no history Disable SIP historysip notify Send a notify packet to a SIP peersip prune realtime Prune cached Realtime object(s)sip prune realtime peer Prune cached Realtime peer(s)sip prune realtime user Prune cached Realtime user(s)sip reload Reload SIP configurationsip show channels Show active SIP channelssip show channel Show detailed SIP channel infosip show domains List our local SIP domains.sip show history Show SIP dialog historysip show inuse List all inuse/limitssip show objects Show all SIP object allocationssip show peer Show details on specific SIP peersip show peers Show defined SIP peerssip show registry Show SIP registration statussip show settings Show SIP global settingssip show subscriptions Show active SIP subscriptionssip show users Show defined SIP userssip show user Show details on specific SIP userskinny debug Enable Skinny debuggingskinny no debug Disable Skinny debuggingskinny show devices Show defined Skinny devicesskinny show lines Show defined Skinny lines per devicesoft hangup Request a hangup on a given channelstop gracefully Gracefully shut down Asteriskstop now Shut down Asterisk immediatelystop when convenient Shut down Asterisk at empty call volume unload Unload a dynamic module by namezap destroy channel Destroy a channelzap show cadences List cadenceszap show channels Show active zapata channelszap show channel Show information on a channelzap show status Show all Zaptel cards status。

asterisk桥接原理

asterisk桥接原理

asterisk桥接原理Asterisk桥接原理Asterisk是一款开源的通信平台,可以用于创建和管理各种通信应用,如电话系统、呼叫中心和语音转接等。

在Asterisk中,桥接是一项重要的功能,它允许将多个通信通道连接在一起,实现通话的转接和协同。

桥接是Asterisk中的核心概念之一,它可以将两个或多个通信通道连接在一起,使其能够互相通话。

桥接可以在不同的通信协议之间进行,比如SIP、PSTN和VoIP等。

通过桥接功能,用户可以实现电话的转接、电话会议和多方通话等功能。

Asterisk桥接的原理是基于虚拟通道和音频流的传输。

当用户发起通话时,Asterisk会为每个通话创建一个虚拟通道,该通道负责管理通话的状态、音频流的传输和通话的控制。

当需要桥接两个通话时,Asterisk会创建一个新的虚拟通道,将两个通话的音频流连接在一起。

通过这种方式,Asterisk实现了通话的转接和协同。

在Asterisk中,桥接是通过应用程序来实现的。

用户可以使用Asterisk提供的命令和配置文件来创建和管理桥接。

在创建桥接时,用户需要指定要桥接的通话通道和音频流的参数,如通道的类型、通道的标识和音频流的编码格式等。

通过这些参数,Asterisk可以正确地将两个通话桥接在一起,并保证音频流的传输质量。

除了基本的桥接功能,Asterisk还提供了一些高级的桥接功能,如混音、静音检测和音频录制等。

通过这些功能,用户可以实现更复杂的通话应用,如电话会议和多方通话等。

用户可以根据自己的需求,选择合适的桥接功能来实现所需的通话功能。

总结起来,Asterisk桥接原理是基于虚拟通道和音频流的传输。

通过创建虚拟通道和连接音频流,Asterisk可以实现通话的转接和协同。

桥接可以在不同的通信协议之间进行,并支持多种高级功能。

通过灵活使用Asterisk的桥接功能,用户可以创建各种通话应用,满足不同的通信需求。

Asterisk安装与配置

Asterisk安装与配置
Enable:
YES
Display
Name: 1001
Username:
1001
Authorization
User: 1001
Password:
test
Domain/Realm:
xx.xx.xx.xx ;Asterisk服务器地址
SIP
Proxy: xx.xx.xx.xx ;Astersk服务器地址
Asterisk应该搭配数据库,不然从语音邮箱考虑,存储都是个问题。。。。

=> 1234, qiong,
[email=qiong@asterisk-server]qiong@asterisk-server[/email]
1002
=> 1234, ddd,
[email=ddd@astersik-server]ddd@astersik-server[/email]
kernel-smp-devel--zaptel
gcc-c++--asterisk
openssl-devel--asterisk
newt-devel--zaptel
zlib-devel--asterisk
unixODBC-devel--asterisk
libtool--asterisk
#
make config ;对于REDHAT系列系统,可将asterisk添加到/etc/rc.d/init.d中
#
make samples ;安装配置文件
3、Asterisk简易配置
make--asterisk
注:很多包在安装光盘中都有,不需要再下载。

Asterisk 功能整理

Asterisk  功能整理

Asterisk (已测)功能列表一.PBX功能1.电话接听呼入电话,自动应答,或者转接给分机2.电话转接分机之间,分机与外线进行转接3.语音信箱预忙或者无法接听时接入到语音信箱,信箱所有者可以通过互联网或者电话拨号的方式获取语音邮件4.留言录制预忙或者无法接听时录制留言5.电话管理增加号码,删除号码,某路电话,监听外线电话等6.各种协议电话互通支持多种电话协议(SIP,iax2,H.232等)及PSTN网络7.等待音乐播放支持多组等待音乐的定制,可以为不同的呼入以及不同的组或者个人设定不同的等待音乐,实现音乐判断,以及个性化定制8.话单输出系统可以输出详细清单,对于系统发生的所有呼叫都可以储存到特定地点,以文件或者数据库的方式9.根据各种规则设定呼出呼入权限设定可以设置每个分机的呼出呼入权限,控制分机外线流量10.电话路由功能可以通过配置,对外线电话或者特定电话进行路由设置,可以适应用户原有的拨号习惯11.用户添加注册增加新的用户,删除用户信息,更新用户信息等12.DialPlan定制可以定制各种用于服务和通话的呼叫方案,满足不同行业不同需求13.外线电话录音功能对所有外线电话可以进行录音,或者局部电话进行录音14.来电过虑通过设定过虑规则,或者设置黑名单的方式,屏蔽骚扰电话,影响正常工作的电话等。

二.VoiceCallCenter 功能1.座席功能支持Agent座席功能,可以对座席分组2.呼叫自动分配(支持六种分配策略)支持六种呼叫策略,满足各种呼叫中心的需求3.通话监听班长或者管理员可以通过一个终端或者一个座席拨打一个固定的电话号码,输入密码后监听每个agent的电话4.座席优先级设置通过对座席优先级的设定,可以影响分配策略,实现能者多劳,或者对业务熟练的多接听的手段5.通话录音可以对座席的所有通话进行录音。

以便任何时间抽查,审查,或者提出改革方案等三.IVR语音菜单功能1.语音点播对语音按键相应,播放不同的音乐或者执行不同的程式2.DTMF发送、接收、处理可以对DTMF码进行接收,发送,和处理,从而实现互动3.多级语音菜单主菜单下可以挂靠子菜单,子菜单下还可以挂靠子菜单4.语音交互5.VIP接入免菜单直接接入通过对方电话号码判断是否VIP,如果VIP则直接接入指定分机或者指定队列,实现VIP管理四.Conference功能1.加入会议建立一个会议,允许用户加入到会议中2.会议发言,旁听对于加入会议的人,只允许听,不允许说3.会议主持可以通过设定会议主持,其他与会者听,会议主持主持会议4.会议管理可以设定特定的管理密码和管理人员,管理整个会议5.会议录音可以将会议内容录音,以备后续应用和学习6.主动邀请(未测)主动邀请用户加入到会议7.会议留言进入会议后留言,给每个进入的用户播放8.关闭会议关闭会议室或者清空会议室五.脚本支持功能Asterisk支持很多脚本语言,例如 perl,python,shell设置C和pascal 语言都有支持六.补充和总结Asterisk 还有一些其他的PBX和其他语音支持系统所没有的一些功能,有很强大的呼叫函数支持。

Asterisk-相关知识与应用

Asterisk-相关知识与应用

DialPlan (拨号方案)
dial : 它是Asterisk 很有价值的一功能,当来电者使用不同的通信方式时,它可以进行转换并进 行呼叫连接,如SIP电话到PSTN呼叫
Contexts : 拨号方案(DialPlan)进入部分我我们称为Contexts,每个Contexts 有一些extensions(扩展)构成,来实现一系列相关服务。
举一个例子如下: [default]
在extensions.conf 配制文件中, [default]上下文是拨号方案默认的进入部分
DialPlan (拨号方案)
goto 功能是发送呼叫到拨号方案中的其它context部分.
语法: goto(context,extension,priority)
[default] exten => 123,1,Answer() exten => 123,n,Background(main-menu) exten => 1,1,Playback(digits/1)
支持一条线路,只需要增32KB 的带宽,但是需要网络 质量良好。 Asterisk可支持成千的客户端(需要板卡与带宽支持)
asterisk 安装与启动
1从官方网站下载 asterisk-1.2.26.tar包,拷备到LINUX 下的用户目录. 2 用tar xzvf asterisk-1.2.26.tar 解压到当目录. 3 进入 asterisk 目录 执行如下命令
/usr/lib/asterisk/modules/ 这个目录包含所有可以加载Asterisk模块(应用程序\ 编辑器\格式和有用 通道),在Asterisk启运时会加载这些模块(可以编辑 modules.conf).
/var/lib/asterisk 比较重要的是astdb文件与agi-bin目录;astdb包含Asterisk当地数 据库信息. sounds/ 所有声音提示的文件在里面 mohmp3/ 如果配置了音乐保持,应用程序会在这个目录下查找mp3 keys/ 使用公钥和私钥系统认证与一个由RSA数字签名形成的一对等 连接.公钥和私钥的扩展名分别为.pub和.key

asterisk词根

asterisk词根

Asterisk词根“Asterisk”是一个来源于希腊语的词根,其基本意思是“小星星”。

这个词根在英语中有着广泛的使用,通过与其他词根或词缀组合,可以形成许多与星星、发光、标记等相关的词汇。

以下是对“asterisk”词根的详细解释:词根的含义:“asterisk”这个词根的含义是“星星”或“小星星”。

在希腊语中,asteriskos指的是“小星星”,而到了拉丁语中,该词根被用来表示“星形的符号”。

随着时间的推移,“asterisk”逐渐演变成了现在的含义。

与其他词根或词缀的组合:“asterisk”可以与其他词根或词缀组合,以形成与星星、发光、标记等相关的词汇。

例如,“asterism”意为“星象”,这个词由“asterisk”和“ism”组成,表示有关星星的事物或信仰。

“asterisk”还可以与其他字母或词缀组合,以形成更为复杂的词汇。

例如,“asterile”意为“无生育能力的”,该词由“asterisk”和“ile”组成,表示与星星无关的事物。

在科学领域的应用:在天文学中,“asterisk”常被用来表示恒星。

恒星在天空中呈现为亮点,而“asterisk”可以看作是一种简化的图形表示方法。

此外,在天文学中还有许多与星星相关的词汇,如“asteroid”(小行星)、“astrolabe”(星盘)等。

在遗传学中,“asterisk”常被用来表示突变或变异。

在DNA序列中,如果发生变异或突变,通常会用星号来表示,这是一种简化的标记方式。

语言学中的用法:在语言学中,“asterisk”常被用来表示未知的或无法确定的音素。

例如,在语音学中,如果某个单词的发音不确定或无法确定,可以使用星号来表示该音素。

“asterisk”还可以用来表示对某个事实或信息的质疑或不确信。

例如,在文献引用中,如果作者对引用的内容持怀疑态度或无法确定其准确性,可以在引文后加上星号以示提醒。

商业和计算机领域的应用:在商业和计算机领域,“asterisk”常被用来表示通配符或占位符。

Asterisk核心框架

Asterisk核心框架

Asterisk内核框架Asterisk是一个开源的pbx系统,在公开的资料中,很难找到asterisk内核系统的详细描述。

因此,很有必要写一篇内核框架的描述文档,作为内部培训文档,相互学习提高。

本文主要从三个层面来描述asterisk内核,即asterisk内核模块、内核启动过程、基本呼叫流程。

一、asterisk内核模块Asterisk由内部核心和外围动态可加载模块组成。

内部核心由以下六个部分组成:PBX交换核心模块(PBX Switching Core)、调度和I/O管理模块(Scheduler and I/O Manager)、应用调用模块(Application Launcher)、编解码转换模块(Codec Translator)、动态模块加载器模块(Dynamic Module Loader)和CDR生成模块(CDR Core)。

外围动态可加载模块包括以App_开始的Applications、以Func_开始的Functions、以Res_开始的Resources、以Chan_开始的channels、以Codec_开始的codec编解码模块等。

1.内核模块1) PBX交换核心模块(PBX Switching Core):l pbx.cpbx.c是asterisk的核心模块,每路呼叫都需要经过它调度。

pbx实现了builtin applications,也就是内置的应用,比如最常见的Answer,Hangup, Background,Wait等等。

struct ast_app是一个关键数据结构,它定义了注册builtin applications的结构。

load_pbx函数用来注册builtin applications和一些命令行CLI命令(每个模块都有些CLI 命令)。

该函数在系统启动时被调用。

pbx_exec是Answer/BackGround/Busy/Goto/GotoIf/Hangup/Set等builtin applications的执行入口函数,它被pbx_extension_helper调用。

Asterisk 安装和配置

Asterisk 安装和配置

准备工作:(1)安装WM ware虚拟机(2)操作系统:内核2.6的Linux 系统,建议使用Fedora 。

(3)安装软件:asterisk.tar.gz , libpri.tar.gz, zaptel.tar.gz。

路径:\\10.7.1.7\TeamShare\AlexJunkieGrp\TEMP。

(将这三个文件放到Linux 系统的/opt文件夹下。

)(4) SSH终端。

步骤(1):安装虚拟机(略)步骤(2):安装fedora 8 操作系统(也可以使用已经安装过的操作系统)安装操作系统 fedora 8(1)最好完全安装。

(2)在安装过程中配置自己的硬盘大小,如果完全安装的话一般4.0G是不够的。

所以请避免安装时引起的很多不必要的麻烦Attention: 保证网络流通,关闭防火墙。

安装Asterisk依赖包清单包--依赖关系gcc--libpri, zaptel, asterisklibtermcap-devel--asteriskkernel-devel--zaptelkernel-smp-devel--zaptelgcc-c++--asteriskopenssl-devel--asterisknewt-devel--zaptelzlib-devel--asteriskunixODBC-devel--asterisklibtool--asteriskmake—asterisk(1)检查是否已经安装kernel-devel# rpm -q kernel-devel例如:kernel-devel-2.6.18-92.1.10.el5,表示已经安装,如果没有安装,要用yum安装一下,如下 yum install kernel-devel(2)检查是否已经安装以下的辅助软件包rpm -q bisonrpm -q bison-develrpm -q ncursesrpm -q ncurses-develrpm -q zlibrpm -q zlib-develrpm -q opensslrpm -q openssl-develrpm -q gnutls-develrpm -q gccrpm -q gcc-c++rpm -q mysql-devel(4)如果没有安装则用yum安装yum install bisonyum install bison-develyum install ncursesyum install ncurses-develyum install zlibyum install zlib-develyum install opensslyum install openssl-develyum install gnutls-develyum install gccyum install gcc-c++yum install mysql-devel准备工作完毕步骤(3):安装asterisk (1):解压缩软件包# cd /opt解压缩三个文件包:#tar -xvzf libpri.tar.gz#tar -xvzf zaptel.tar.gz#tar -xvzf asterisk.tar.gz删除文件包:#rm -r *.gz(2):安装zaptel# cd zaptel# ./configure# make (显示编译成功)# make install (显示安装成功)# make configAttention: 安装过程中不会出现错误信息(3):安装libpri退出zaptel文件夹#cd ..# cd libpri# make# make install(4):安装asterisk如果没有出现错误,安装是正确的# cd ..# cd asterisk# ./configure# make (显示编译成功)# make install (显示安装成功)# make samples测试一下asterisk是否安装成功可以执行asterisk的主命令# asterisk –vvvvvvvvc(启动asterisk)如果这个时候提示cli> 表示已经成功cli> stop now(退出asterisk)# make config(配置启动)安装asterisk完成步骤(4):asterisk 配置在安装asterisk成功后,用两个sip电话通过asterisk服务互通打电话,需要配置sip.conf, extension.conf。

asterisk 编译

asterisk 编译

asterisk 编译Asterisk 是一个开源的电话交换机,它允许你连接各种电话设备,包括传统的电话线路、VoIP 网关、SIP 设备等。

要编译 Asterisk,你需要遵循以下步骤:1. 安装依赖:在编译 Asterisk 之前,你需要确保你的系统上安装了所有必需的依赖项。

这些依赖项可能因操作系统而异。

以下是在 Ubuntu 系统上的一些常见依赖项:arduinosudo apt-get updatesudo apt-get install build-essential libncurses5-dev libncursesw5-dev libcurl4-openssl-dev libsigc++-2.0-dev unixodbc-dev gcc-sodbc2. 下载源代码:从 Asterisk 的官方网站下载最新的源代码。

你可以从它们的网站上找到最新的版本和下载链接。

将下载的源代码解压到一个目录中。

3. 配置:进入解压后的源代码目录,运行以下命令进行配置:bashcd asterisk-*./configure这将检查你的系统上是否已安装所有必需的依赖项,并生成一些配置文件。

在配置过程中,你可以使用 --prefix 选项指定 Asterisk 的安装目录。

例如:bash./configure --prefix=/usr/local/asterisk4. 编译:运行以下命令开始编译 Asterisk:gomake这将编译 Asterisk 的源代码并生成可执行文件。

5. 安装:运行以下命令将 Asterisk 安装到你的系统中:gosudo make install这将把 Asterisk 可执行文件复制到指定的安装目录。

6. 配置环境变量:为了让系统能够找到 Asterisk 可执行文件,你需要将 Asterisk 的路径添加到 PATH 环境变量中。

例如,如果你将 Asterisk 安装在/usr/local/asterisk 目录下,你可以通过编辑 /etc/profile 文件来添加 PATH 环境变量:bashecho 'export PATH=/usr/local/asterisk/bin:$PATH' >>/etc/profilesource /etc/profile7. 设置权限:运行以下命令为 Asterisk 可执行文件设置适当的权限:bashsudo chmod +x /usr/local/asterisk/bin/asterisk。

asterisk 编译

asterisk 编译

asterisk 编译
摘要:
1.编译器简介
2.asterisk 编译器的发展历程
3.asterisk 编译器的特点
4.asterisk 编译器的使用方法
5.asterisk 编译器在编程领域的应用
6.asterisk 编译器的发展前景
正文:
asterisk 编译器是一种功能强大的编译器,广泛应用于编程领域。

本文将对其进行详细的介绍。

asterisk 编译器的发展历程可以追溯到20 世纪80 年代,经历了几个不同的发展阶段,不断地优化和完善。

它的设计初衷是为了满足编程人员的需求,提供一种高效、灵活的编程工具。

asterisk 编译器的特点包括高效性、灵活性和易用性。

高效性是指它能够在短时间内完成大量的编译任务,节省了编程人员的时间。

灵活性是指它能够适应不同的编程需求,提供多种编译选项。

易用性是指它具有友好的用户界面,方便编程人员使用。

asterisk 编译器的使用方法非常简单。

首先,需要下载并安装asterisk 编译器。

然后,编写程序代码,并使用asterisk 编译器进行编译。

最后,运行编译后的程序。

asterisk 编译器在编程领域的应用非常广泛。

例如,可以用于开发操作系统、编写编译器、开发游戏等。

它为编程人员提供了强大的编程工具,能够帮助他们更好地完成编程任务。

总之,asterisk 编译器是一种功能强大的编译器,具有高效性、灵活性和易用性。

它在编程领域有着广泛的应用,为编程人员提供了强大的支持。

Asterisk基础知识

Asterisk基础知识
– 对于初学者来说,或者只是简单应用者来说, trixbox已经足够了 – 界面相对友好,配置相对好理解
• 从功能和稳定性上,两者没有区别
asterisk和digium的板卡有何关系 和 的板卡有何关系
• 开源不代表不赚钱,开源的目的就是东方 不亮西方亮,靠硬件赚钱,那就是板卡 • 很多国外的人对digium是崇拜的,所以再贵 他们也要买digium的卡 • aserisk不是必须插板卡的,但是如果有板卡, ippbx的外部接口会更丰富 • 其它一些公司的板卡也能兼容asterisk,比 如eicon,比如yate。
asterisk 能够支持传统的线路
• tdm (time division multiplexing) • t1/ e1 pri/ pra & rbs (robbed bit signal)modes analog phone lines/ phones (pots) • isdn (integrated services digital network) both bri (basic rate)and pri (primary rate) • asterisk需要的带宽,一般为:32kb/ 线路。也 就是说每支持一条线路,只需要增32kb 的带 宽,但是需要网络质量良好
asterisk能做什么 能做什么
• asterisk,英文是“星号”的意思,设计的 初衷是,任何和电话系统有关的东西,它 都能做
– 并不是所有和电话有关的功能靠asterisk实现都 是最好的
• asterisk最擅长的就是做一个ippbx,
– 当然有人用它来做voicemail服务器、ivr服务器、 会议服务器、中继网关、sip server、发卡系统 等等
安装Asterisk-1

Asterisk 中文天地

Asterisk 中文天地

Asterisk 中文天地Asterik是将普通计算机变为语音通信服务器的软件。

其可功用为IP PBX,VoIP 网关、会议服务器等等更多(more)的功能。

它被广泛用于小企业、大企业、呼叫中心、服务商和政府部门。

Asterisk是自由和开源的。

它是由Digium公司赞助的。

∙AsteriskAsterisk 是当今最流行的开源电话项目。

始于1999,Asterisk 是免费、开源的将普通计算机变为一个功能丰富的语音通信服务器的软件。

Asterisk 使得生成和布局一个大范围的电话应用和服务变得简单起来。

感谢先驱者- 领衔Digium, Inc 公司的Mark Spencer。

也得益于全球范围的开源软件工程师的劳动,到目前为止据说已有两百万用户。

Asterisk 支持一个广泛的协议。

支持丰富的在传统的电话传输媒介上处理和传输语音,诸如模拟线路、ISDN-BRI 线路和数字T1/E1 链路等。

Asterisk 包含广泛的VoIP 协议诸如:SIP, IAX 和H.323 等等和其它。

支持在U.S. 和欧洲的企业的标准的电话信号类型,也可以桥接现存系统同未来的语音-数据系统。

Asterisk 是基于GNU General Public License (GPL) 以开源形式发布的,可免费下载。

Asterisk® 是领先的开源电话系统,Asterisk 社区在发展中的VoIP 中扮演一个重要的角色。

∙AsteriskNOW使用AsteriskNOW 安装Asterisk、构建用户定制的电话应用系统。

AsteriskNOW 可以被用来安装一个完整的Linux 平台、Asterisk 系统、DAHDi 驱动构架、一个管理用GUI、MYSQL 数据库、Apache web 服务器和种类众多的开发工具和部件。

∙OpenBTS and AsteriskOpenBTS 是一个开源的UNIX项目,它基于通用软件无线电平台(USRP)实现GSM空中接口(UM 接口)来规范GSM手机(的连接),基于Asterisk 软交换(Asterisk software PBX)来连接呼叫。

asterisk源码解读

asterisk源码解读

Asterisk是一个开源的电话系统软件,其源码包含了大量的代码和模块,解读Asterisk源码需要一定的编程和电话系统知识。

以下是一些解读Asterisk源码的建议:了解Asterisk的基本架构和模块:Asterisk是一个模块化的软件,由多个模块组成,包括应用程序、设备驱动、协议模块等。

在解读源码之前,需要了解Asterisk的基本架构和各个模块的功能和作用。

学习C语言和编程知识:Asterisk 的源码是使用C语言编写的,因此需要具备一定的C语言和编程知识,以便更好地理解源码的结构和逻辑。

阅读代码注释和文档:Asterisk的源码中包含了大量的注释和文档,这些注释和文档可以帮助理解代码的作用和实现方式。

逐个模块阅读代码:从Asterisk的入口函数开始,逐个模块阅读代码,了解每个模块的功能和实现方式。

调试和测试:在解读源码的过程中,可以通过调试和测试来验证代码的功能和正确性。

需要注意的是,Asterisk的源码非常庞大和复杂,需要花费大量的时间和精力来解读和理解。

因此,建议在解读源码之前先了解一些基本的电话系统和编程知识,以便更好地理解和掌握Asterisk的源码。

asterisk桥接原理

asterisk桥接原理

asterisk桥接原理Asterisk是一种开源的电话系统,提供了丰富的功能和灵活的配置选项。

其中最重要的功能之一就是桥接(Bridging),它可以将多个电话线路连接在一起,实现通话的互联互通。

在本文中,我们将详细介绍Asterisk桥接的原理及其使用方法。

一、Asterisk桥接的原理Asterisk桥接的原理基于通话的媒体流处理。

当一方发起通话时,Asterisk会创建一个通话的媒体流,并将其分配给一个或多个通道(Channel)。

通道是Asterisk用于管理通话的基本单位,它可以表示一个电话线路、一个软电话、一个语音网关等。

在桥接过程中,Asterisk会将多个通道的媒体流连接在一起,形成一个通话的桥梁。

这样,通话的声音就可以在这个桥梁上进行传输,实现互联互通。

当其中一个通道结束通话时,桥梁也会被销毁,媒体流将不再传输。

桥接的实现需要经过以下几个步骤:1.通话的建立:Asterisk根据配置信息和呼叫路由规则找到合适的通道,并初始化通话的媒体流。

2.通道的绑定:Asterisk将通话的媒体流与创建的通道进行绑定,建立联系。

3.媒体流的加入:当有多个通道参与通话时,Asterisk将它们的媒体流加入到同一个通话桥梁中。

这样,通话的声音就可以在这个桥梁上传输。

4.通话的处理:Asterisk会对通话进行处理,例如录音、转发、静音、双向通话等。

这些处理功能可以通过配置文件中的应用指令进行控制。

5.通话的结束:当其中一个通道结束通话时,Asterisk会销毁相应的通话桥梁,同时停止媒体流的传输。

二、Asterisk桥接的应用场景Asterisk桥接功能具有广泛的应用场景,以下是其中几个主要的应用场景:1.多方通话:Asterisk可以将多个通道的媒体流连接在一起,实现多方通话。

比如,我们可以通过Asterisk将办公室的多个电话线路连接在一起,实现内部通话。

2.语音会议:Asterisk可以创建一个通话桥梁,将多个通道的媒体流连接在一起,实现语音会议。

Asterisk配置文件说明

Asterisk配置文件说明

关于AsteriskAsterisk是一款实现用户电话交换机(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协议连接。

截止2008年4月22日,Asterisk的最新版本是1.4.19.1版。

Asterisk功能说明及基本呼叫流程1.Asterisk内部核心:共分为6个部分A.PBX核心交换模块B.调度和IO管理模块C.应用调用模块D.编码转换模块E.动态模块加载器模块F.CDR生成模块(即时呼叫详细记录报告)2.Asterisk基本呼叫流程(1)通过Asterisk的一个电话呼叫在一个通道驱动接口上到达,如SIP通道。

asterisk介绍

asterisk介绍

当Asterisk不是一台sip 代理服务器时,可以配置Asterisk使 用其他的软件作为sip代理服务器,最常用的软件是Sip Express Router,简称SER,SER是一个开源的、可以让 Asterisk大规模部署的sip 代理服务器软件。
Asterisk不能运行在windows上
关于这一点,有一个Asterisk工作在windows上的演示CD, 结果是,Asterisk不能运行在windows平台,Asterisk要求近 乎实时的访问系统资源,也需要连接到某些特定的资源, 由于以上原因,Asterisk只能构建于一个开源的类unix操作 系统——Linux。
Asterisk 可以被配置为一个IP或混合的PBX的核心:交换呼 叫、管理路由、使能特性,以及通过 IP、模拟线路 (POTS)、以及数字(T1/E1)的联系同外部呼叫链接在 一起。
IP PBX与传统PBX相比较的优势
将电话网与计算机网统一成一个整体; 除了能为传统的电话用户提供服务外,还能方便地为Internet用户提供服务; 全新的硬件平台和高度集成的系统功能可大幅度降低成本; 实现增值服务更加方便和容易,比如建立呼叫中心、实施VoIP等; 开放的标准,互通性强; 将专用的通讯平台搬到了大众普遍较熟悉的计算机平台上,它的通用性和实用性更强; 使用、配置和维护更加简单,甚至无需专业人员; 功能更加强大且集成度高,单一系统就可以完成使用传统PBX需外配许多设备才能完成的功 能,比如自动话务台、语音信箱等等; 由于采用了计算机平台,使系统的扩容和升级更加简单和节省投资; 应用开发方便简单。
我们可以查询通话一般有多长,平均有多长,谁打的最多等等, 这种应用还有很多。通过这些信息,我们也可以找到一些不被允 许员工拨打的长途电话,Asterisk提供了这种减少这种浪费的可能, 更重要的是,这些通话记录不会被浪费掉,这些无价值的电话, 我们可以通过建立一个通话列表,当任何人拨打这些电话时,都 要求验证密码并被检查。

Asterisk常用调试命令

Asterisk常用调试命令

Asterisk基本配置Asterisk译为星号(*在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括:1模拟接接口,如你的电话线或模拟电话.2数字线路,如T-1和E-1线路3Voip协议,如SIP和IAX目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2使用接口配置文件1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道.2.zapata.conf:硬件配置Asterisk的接口.3.extension.conf:拨号方案文件.4.sip.conf:配置SIP协议的文件5.iax.conf:配置呼入和呼出IAX通道的文件******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv;修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和chan_sip.soAsterisk译为星号(*在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括:1模拟接接口,如你的电话线或模拟电话.2数字线路,如T-1和E-1线路3Voip协议,如SIP和IAX目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2使用接口配置文件1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道.2.zapata.conf:硬件配置Asterisk的接口.3.extension.conf:拨号方案文件.4.sip.conf:配置SIP协议的文件5.iax.conf:配置呼入和呼出IAX通道的文件******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv;修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和chan_sip.so******SIPSIP(会话初始协议,通常用于VOIP电话,进行呼叫建立,呼叫协商,呼叫结束.它帮助两个端互相通认,但它不处理媒体;当呼叫建立后,他通过实时传输协议(RTP在电话A到电话B直接传输媒体SIP和RTPSIP是一个应用层的信令协议.他使用的端口是5060(通常进行通信.SIP可以通过UDP和TCP传输层协议进行传输.Asterisk目前没有TCP用于传输SIP信息.RTP用于端点间传输媒体(语音,Asterisk中RTP使用大数字的无特权端口(默认10,000到20,000SIP优点:普通的被接受和结构灵活.其它的VOIP协议还有H.323,IAX,MGCP. SIP配置/etc/asterisk/sip.conf文件中:[general]srvlookup=yet[10000]type=friend;可以定义用户\端\朋友asterisk常用命令1. 运行调试常用命令./asterisk & 在后台启动asterisk./asterisk –vvvc 启动asterisk并尽量多的在控制台显示调试信息./asterisk –r 连接asterisk控制台set verbose 9999 设置打印详细信息2.asterisk控制台下常用命令sip reloadsip set debug 设置显示更多的sip信息sip set debug off关闭显示更多的sip信息sip show channels 显示所有活动的SIP通道sip show peers 显示所有已定义的SIP peersip show channels 查看当前SIP协议的并发。

Asterisk 入门教程

Asterisk 入门教程

Asterisk 入门教程subscriber:加入某个group,从而遵从某一个call restricionsubscriber group:可以使用1种call restriction。

call restriction:将numbering plan中各项取出,各自组成成不同的呼叫限制方案numbering plan:通用,是一个整体的计划,里面包括长途,本地,等各种形式的方案-------------------------------------------------------------以上,用于拨入号码的预处理,实际上是一种过滤,下面才是真正的呼叫处理。

--------------------------------------------------------------route:一种策略,根据号码匹配的模式,选择走哪个trunk。

trunk:实际上做通一个链路,供route选择。

analog的,一个POTS就是一条analog trunkanalog的数量由设备定,ip trunk没有限制数量,并且一个ip trunk连到对方IPPBX后,对方的subscriber 数量是不确定的,由那个IP PBX决定。

Asterisk,开始吧--------------------------------------------------------------什么是asterisk?开源电话平台Asterisk 通过了电话的开源平台。

基本上就是一个软件的PBX。

最初是Digium 公司的Mark Spencer 编写的,这个公司就是他创立的,专门生产并销售Asterisk使用的硬件。

Asterisk 简直就是一场电话的革命。

为什么使用Asterisk?现在电信行业的混乱,因为各种专利技术应用在各种层次的网络上,导致很大的混乱。

Asterisk 就是答案——给电信行业普遍的混乱环境带来秩序的革命。

asterisk常用命令

asterisk常用命令
拨号规则中会用到,有几个常见的是
MIXMON_FORMAT = wav //通话录音格式
RECORDING_STATE = ENABLED //是否启用通话录音
OUT_1 = ZAP/g0 //第一呼出路由
database show 查看asterisk数据库,这个数据库不同于mysql等关系数据库,相
至关要哦。
amportal start 启动asterisk
amportal restart 重启asterisk
amportal stop 关闭asterisk
2:asterik命令
Asterisk 命令可以启动asterisk程序,后面可以加参数 ,比如asterisk -vvvvvv
是用不了了,如下图
提示 No such command
module reload xxx 重新载入某个模块,需要注意的是,并不是所有的模块都支
持reload操作。
show globals 查看全局变量,如下图
这些全局变量是从/etc/asterisk/extensions_additional.conf这个文件中读取的,在
Unavailable: 不可用,一般是由于设备没注册上
Idle :空闲 InUse :正在使用
show queues 查看队列情况,包括了队列分机列表、状态(这个状态有时候
貌似不准确,应该以show hints的为准----个人观点)。
reload 重装配置文件。
database show DND 查看免打扰的分机
stop gracefully 温文尔雅滴停止asterisk,顾名思义,该命令会等到所有的操作、

Asterisk的连接与管理

Asterisk的连接与管理

Asterisk的管理方法很晚了,刚才稍微看了一下Asterisk的管理方法。

现在想做一个记录。

Asterisk有三种管理方法,最常用的当然是通过asterisk命令进入CLI模式对Asterisk进行管理。

另外还有两种方法:1)用TCP协议,连接到5038端口,然后用AMI命令来管理Asterisk;2)用HTTP协议,连接到8080端口,通过WEB的形式对Asterisk进行管理;下面是基本的URL:http://xxx.xxx.xxx.xxx:8088/static/config/index.html1.Asterisk命令行命令行是最常用的方法,执行的命令有两种:或者:对应的套接字文件是:/var/run/asterisk/asterisk.ctl管理员可以配置cli_permissions.conf对操作系统用户登录asterisk进行授权。

具体的授权方法就不在这里介绍,有兴趣的人可以看看cli_premissions.conf中的说明。

rasterisk的作用基本上和asterisk –r是一致的,不作特别介绍,只对Asterisk命令进行分析。

下面是asterisk的帮助信息:2.使用AMI方法AMI方法是通过socket登录到Asterisk中,然后用AMI命令对Asterisk进行管理。

通过这个管理接口,我们可以用某种编程语言开发出自己的Asterisk管理平台。

实际上,很多基于GUI的管理平台也是通过这种方法对Asterisk进行管理。

这种方法的配置文件是:manager.conf要使用这种方法,必须先要激活它,下面是配置文件中相关的配置内容:操作方式如下:3.WEB管理Web管理的配置文件是:http.conf要使用这种方法,需要修改下面配置内容:浏览器。

具体的登录路径类似于:http:// xxx.xxx.xxx.xxx:8088/static/config/index.html 使用的帐号密码是manager.conf中定义的帐号密码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第32章VoIP服务器——Asterisk可以自己用软件实现电话交换机?是的,这就是本章我们要讨论的话题。

如何在Linux下实现免费的电话交换机功能。

32.1用Linux实现免费电话大餐在架设自己的电话系统之前,我们先看看传统的电话网络是如何工作的。

传统的电话网络,叫做Public Switched Telephone Network,公共交换电话网络,简称PSTN,是一种全球联网的语音通信电路交换网络,通过中继和交换设备进行通讯。

不难看出,我们现在使用的IP计算机网络和PSTN颇有几分相似之处,在PSTN中呼叫一个电话号码相当于通过IP网络到达一个IP地址,在骨干PSTN网络中,也和IP协议一样使用复用机制来传递数据。

对于私有电话系统来说,也和IP计算机网络有着类似的原理。

公司的电话交换机直接对外(相当于IP网络中的公网地址),外部人员只能访问到电话交换机总机,由总机控制应该将这个连接转到哪个分机上(类似于IP中的NAT),内部的分机不是合法的电话号码(192.168.x.x?),只有通过公司的电话交换机才能与外界正常通讯。

在这里,公司的电话交换机,也就是通常所说的程控交换机,也叫PBX,Private Branch(telephone) eXchange的缩写,意思是私有/专有电话交换系统,传统的PBX使用PSTN网络连接并提供语音通话服务。

随着技术的发展,出现了基于IP网络的语音传输业务,即V oice over IP,简称V oIP,人们可以通过计算机网络(通常是指Internet或Intranet)进行语音通话,而后,又出现了基于IP网络的PBX,简称IPPBX,IPPBX不需要专用的网络,可以通过Internet和V oIP实现类似于传统电话系统的功能,而且,使用IPPBX进行通信,对内没有任何费用,只有网络建设成本,对外只需要支付接入到Internet的费用,没有任何额外的通话或漫游、长途费用,IPPBX的优势不言而喻,而通过一些硬件设备(比如调制解调器),IPPBX也可以和现有的传统PSTN网络互通。

也就是说,在所有使用IPPBX的用户之间,我们的通话都是通过Internet而非电话局的专有网络进行,都是免费的,而且不受任何电信运营商的控制,这对传统电话业务造成了很大的冲击,也使得IPPBX开始迅速发展。

随着计算机硬件处理能力的加强、计算机骨干网络传输能力的提升和V oIP软件技术的进一步发展,纯软件的IPPBX开始出现,相当于无需增加任何设备,一台PC就可以作为一个IPPBX使用,提供电话系统的功能,这大大节省了公司的成本和日常费用,同时,随着Linux的兴起,基于Linux的开源IPPBX软件出现了,也就是说,我们可以完全免费并且是合法的构建起自己的V oIP电话系统。

而这些开源IPPBX软件中的佼佼者,就是Asterisk。

32.2用Asterisk提供免费的VoIP服务1999年,Linux Support Service公司的Mark Spencer出于工作需要和资金的压力,开始捣鼓基于Linux的免费电话系统,因为当时PBX都是专有厂商而且价格昂贵(现在也是),他开始尝试自己开发纯软件的PBX系统,这就是Asterisk的起源。

随后,依靠全世界电信和程序爱好者的共同努力,Asterisk开始迅速发展,并成为开源软件IPPBX领域的明星,2001年,随着Asterisk的发展,Linux Support Service改名为Digium公司,开始专门提供Asterisk服务及相关语音板卡硬件的销售业务。

之所以选择Asterisk这么古怪的名字(Asterisk是*号的意思),只是因为创始人Mark Spencer选择了一个既存在于传统电话按键中,又存在于Linux中而且代表通配符的这样一个符号,我认为这也从侧面反应了他想让Asterisk成为基于Linux的电话系统标准的想法。

Asterisk 支持 几乎所有Linux、Unix类操作系统,甚至可以支持Windows操作系统(目前最新版本的Asterisk for Windows是0.6版,构建于标准Asterisk 1.2.13),除了提供最基本的V oIP语音通话功能,Asterisk还支持传真、语音信箱、彩铃(RBT, Ring Back Tone)、电话会议(多方通话)、IVR(Interactive V oice Response,互动式语音应答)等高级功能,Asterisk的这些功能,和当前的任何硬件或商业软件PBX,也可以说是丝毫不逊色,甚至在灵活性和可配置性方面比硬件PBX更加出色,相信接触过传统PBX系统的朋友一定感同身受,各式各样的古怪命令可不是那么好玩:-)。

这些以往需要昂贵的硬件、软件和人员成本来构建的高级专业系统,才能完成的任务和功能,Asterisk都可以完成,而Asterisk的座右铭是:这不过是软件!(It’s only software!)我们不禁会想,会不会有一天,硬件PBX完全消失,这个世界的电信系统是Asterisk的天下?Asterisk并不是一个特定的电话系统,它实际上是一个支持各种扩展的应用网关,我们可以在网关上开发出各种逻辑和流程,提供各式各样的服务。

例如,可以开发出基于H.323、SIP、RTP等协议的语音通话服务,可以支持alaw/ulaw,GSM,ILBC,G.729a等多种数据压缩格式,这样,就能以Internet为平台提供优质的语音服务。

虽然语音通讯是Asterisk的核心,但并不是Asterisk的全部,例如,可以围绕Asterisk方便的扩展出传真、语音邮件等功能,甚至可能通过Asterisk的平台,用电话对系统进行管理。

Asterisk如此强大的原因,是因为Asterisk具备完善的程序逻辑,这也可以说是Asterisk最耀眼的功能。

例如,我们可以通过用户的按键操作,选择是为他接通某个分机还是给某人发邮件,或者把它加入到正在进行的某个会议中。

我们可以控制当被呼叫的用户无法接通时,自动转到他的留言信箱,并把留言作为附件发送到用户指定的邮箱,总之,只要是可推断的操作,都能为之提供一定的功能作为响应。

我们也可以很容易就建立起企业自动电话服务系统,为客户提供已录制好的常见问题解答或企业服务介绍,依据用户的按键,选择播放不同的内容,当用户无法得到想要的解答时,还能及时把他们转到人工座席。

更重要的是,这一切,都是建立在免费的、纯软件的基础之上的。

用户几乎不需要任何投入,只要有一台586 PC,就能为企业提供完全免费的V oIP电话服务(当然,如果需要同时接入到传统电话网络,还是需要一点点投入的)。

如果能为企业构建起这样一套电话系统,是不是很让人心动?还等什么呢?赶快投入到Asterisk系统中来吧!32.3获取Asterisk及其相关软件前面说过,我们只需要一台PC就能构建出完善的商业级电话系统,但这个系统是基于纯粹的Internet V oIP的,如果要和传统电话互联,则需要投入一点费用用于申请电话号码和购买一块转接卡,用于将传统电话网络跟我们的V oIP电话网络进行互联,对于小型办公场所而言,我们涉及的传统电话都将是模拟信号,因此这块板卡通常都是模拟转换卡,也就是市面上常见的Zapata公司的X100P 卡或兼容卡,它有专门的管理和驱动,这些驱动和管理工具软件被统称为zaptel,用户可以通过Asterisk公司Digium网站或Asterisk网站获取。

如果我们使用一些ISDN设备比如数字方式的PSTN中继接入卡,那么还需要另一个库libpri,它是Primary Rate ISDN的缩写,可以用于ISDN设备的管理和驱动,如果我们没有用到这种设备,那么就不需要它。

另外,Asterisk默认只支持通过ODBC连接到外部数据源,因此,如果想使用MySQL来配置和管理Asterisk,那么你需要安装Asterisk-addons这个包,它支持asterisk直接连接到MySQL数据库。

除此以外,还有Asterisk-sounds包,这个包主要是额外的语音文件,由于目前还没有中文语音,因此我认为对于我们中文用户来说意义不大。

上述软件都可以通过Asterisk网站找到。

最后,我们可能涉及的软件是FreePBX(),它提供了一个管理Asterisk的Web界面,用户可以通过这个见面直观的对Asterisk进行管理,但FreePBX是基于MySQL的,它会覆盖掉所有现有的配置文件,而且它使用自己的配置数据结构,也就是说,对于已经存在的系统,你可能需要全部重新配置。

这是我不喜欢FreePBX的原因。

而且最新的FreePBX版本是2.2.1,它只能支持Asterisk 1.2.x,如果用来管理1.4版本的Asterisk,可能会存在未知的问题。

通过集成CentOS、Asterisk和FreePBX,Fonality公司提供了一个完全傻瓜式的Asterisk系统(或者叫产品系统),从安装操作系统到配置、管理路由和分机,都可以实现高度自动化,这个系统,被称为Trixbox(),之前叫做Asterisk@Home(简称AAH),目前最新版本是2.0。

这是个非常流行的Asterisk系统,因为它有着迅速、方便的安装和管理能力,看上去更像一个成熟的产品而非黑客的玩具,它最适合于新买来的计算机,用户不需要什么前期准备,甚至不需要格式化硬盘,直接把光盘插入新买的计算机中,就能完成所有的安装和配置。

最近开发Asterisk的公司Digium现在也开始推出自己的类似产品——AsteriskNOW(),它也是一个具备和Trixbox相似扩展功能的,集成了操作系统和Web管理界面的产品级别的Asterisk系统,不过目前版本还是BETA 4,使用的人还不多,今后究竟哪个系统更加符合用户需求,应用更加广泛,还需要我们拭目以待。

32.4Asterisk及其相关软件的安装首先,确保系统的编译环境是完好的,包括gcc、c libary、make和内核源文件kernel-source等软件都已经被安装了,虽然对于大多数系统来说,这些都是默认安装的,但对于少数系统来说,出于安全考虑,会清除掉软件编译的环境,或者没有安装kernel source,那么在安装Asterisk及相关软件时很可能出现错误,对这类系统,就需要首先安装好上面提及的这几个软件包。

比如,在Debian系统中,可以使用下列命令安装上面的包:Debian: apt-get update;apt-get install gcc make libc6-dev linux-source然后,我们将所有需要的软件包下载下来,包括asterisk、asterisk-addons、zaptel、libpri等,需要的根据用户情况下载必须的软件,并把他们统一解压到某个目录比如/usr/src/voip下,然后我们开始各种关联软件的配置、编译和安装。

相关文档
最新文档