Asterisk学习进阶

Asterisk学习进阶

介绍篇

抛开所有概念,首先从单词学起。估计很多人和我一样没有明白这个词是什么意思,或许猜测他还可能是一个组合词。其实它就是“*”,作为搞程序的我们看到这个东东想到的也许会是乘号,当然有另外一大帮人想到的是通配符,在这儿恭喜想到通配符的兄弟,你们答对啦,这儿我们认定它的含义就是如此。

 

通过我上面牵强附会的关联,Asterisk的含义就浮出水面了,它就是一个通配的电话,这样组合的话看起来应该有点难受,我们重新润色它就变成了无所不能的电话系统。有了上面的这段废话,我其实只想传达asterisk的两个特点:

1.      功能巨强大

2.      是一个支持语音的系统

追本溯源,下面还是看看官方是怎么定义它的:www.asterisk.org

Asterisk is the most popular and extensible open source telephonesystem in the world, offering flexibility, functionality andfeatures not available in advanced, high cost proprietary businesssystems. Asterisk is a complete IP telephony platform for business,and can be downloaded for free.

通过这段话我琢磨出下面一些意思,不晓得各位的想法。首先就是它功能很强大,成本低廉,另外就是它是免费的。

展开一下,因为它是开源代码,就容许你在已有的基础上进行修改定制,削弱了开发成本,另外就是asterisk可以跑在多个通过操作系统上,而且基本x86这个通用平台,降低了专用系统昂贵的成本。但是功能强大这个我们先悬着这个疑问,下面在慢慢的进行剖析。我们现在只要从概念上晓得asterisk是一个功能强大的IP PBX就够了。

 

安装篇

      使用之前请购买这个陋习可以更改一下啦,因为我们已经进入GNU主义,get what you want。

 

下载通道为http://downloads.digium.com/pub/asterisk/releases/,选择一个稳定版本下载就是了。对于一个程序员而言,获得了代码还有什么不能做的。难道你给士兵一把枪还怕他打不死腿上的蚊子?解压倒合适的目录,按照他的指导手册操作就是了,不过看文档提示里面建议释放在/usr/src下面。

而且看到手册上面要下载一堆的东西,例如zaptel*,libpri*等等,这些对于我们目前都是不需要的,因为我们想构建的是一个纯粹的IPTEL,其他和老式电话的接口暂时都由我们的网关路由器完成,例如E1/T1,ISDNBRI/PRI,FXO,FXS等等,我们通过asterisk想完成的只是IP TEL,例如sip,h323等等。

我们需要下载的只是asterisk,后续操作步骤如下:

cd /usr/src

tar zxvf asterisk-*.tar.gz

通过上述命令,文件就被解压出来,接下来肯定就是编译了,略过不表,步骤如下:

#cd /usr/src

#cd asterisk-*

# ./configure

#make

#make install

#make samples   安装默认的配置文件

#make webvmail 安装语音信箱图形界面

#make config

如果对于上面的命令以及作用有疑惑的话,建议多花时间看看linux的基本操作维护命令,然后再回头继续往下。这儿需要提及的最后一点,增加了一个makesamples,正如其名,他的作用就是生成默认的配置文件。众多的编译选项我也不介绍了,详细参见手册。

 

常见问题解决方案:

1.如出现找不到 PTLIB 库,则找到在LOG输出上找到有 ...ptlib.h----YES的那一条,找到对应目录把文件改名,就不会再出错了,一般目录为:/usr/lib/ptlib.h。

2.如果出现 func_rurl.c: 106 常量无定义之类的错误,则直接在MAKEFILE中取消此文件的编译,因为Makefile中是定义 func_*.c参与编译,所以修改此文件为其它名字即可,如 __func_rurl.c 。

 

这儿我们就假设编译很成功,没有遇到任何编译问题,当然不可能100%都不遇到的,一部分问题在手册里面给了指点,另外的问题则需要你个人多动手,多动脑,而且baidu,google也不会拒绝你使用他的。

 

使用篇

      经过前面的步骤,代码已经编译完了,可执行文件安装完毕同时默认的配置文件也安装了,那么我们就从使用上首先简单的做个介绍,给大家带来一个直观的认识。下文所举例子都会以sip为例,其他h323,iax,mgcp等等类似,不再赘述。

      使用之前大致说明一下安装后的asterisk文件分布情况以及作用。

/etc/asterisk  Asterisk主目录,包含其它关于Asterisk的配置文件; *zaptel.conf这个配置文件放在/etc,因为其它软件也可以使用Zaptel这个硬件及其驱动,所以不是放在/etc/asterisk里.

 

/usr/lib/asterisk/modules  这个目录包含所有可以加载Asterisk模块(应用程序\编辑器\格式和有用通道),在Asterisk启运时会加载这些模块(可以编辑modules.conf).

 

/var/lib/asterisk        比较重要的是astdb文件与agi-bin目录;  astdb包含Asterisk

当地数据库信息. 

 

sounds/               所有声音提示的文件在里面,包括Asterisk原代码中的sounds.txt文件

 

mohmp3/             如果配置了音乐保持,应用程序会在这个目录下查找mp3(用CBR

从文件中去除身份标签).

 

keys/                使用公钥和私钥系统认证与一个由RSA数字签名形成的一对等连接.公钥和私钥的扩展名分别为.pub和.key

 

firmware/             这个目录含了很多Asterisk相兼容的设备固件,它只有iax/这个子目录,其中有Digium的IAXy的二进制固件镜像.

 

images/              只有在较多的支持并且利用图解式的图像设备被发布,这个目录将会与相应的目录有更大的关联.

 

/var/lib/asterisk/agi-bin  agi-bin包含所有脚本,可以通过许多已经建立的AGI应用程序与Asterisk连接.

/var/spool/asterisk

outgoing/              现在打电话的通道——呼叫信息目录普遍使用。

 

gcall/                 撤销了——包含了特殊呼叫方法的呼叫信息文件——不是打电话的好方法,因为这种方式太硬性了——不再使用。使用outgoing替代

 

tmp/                  中间/临时数据

 

voicemail/             语音和问候语。

运行调试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 loadcdr_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 显示所有的功能函数 

 在asterisk源码目录下运行makemenuselect可以进入模块选择页面,在里面可以选择和去除一些模块。

 看完这些目录之后,对其大体的功能也可能会有点认识,还是从启动服务器还是聊起。启动服务器方法很多,我们按照手册中的描述选取一种

Asterisk –cvvvv   具体参数含义请参考手册

 

也可以通过运行 /usr/sbin/safe_asterisk 来运行。

我们下文的描述就会基于这个简单的拓扑展开讨论,这儿的tel都是sip电话,我们假定tel1号码为808,tel2号码为830,现在的简单需求就是我808能够打通830,实现双向通话。开始配置前,先了解主要配置文件的作用。

/etc/asterisk/asterisk.conf  主要配置文件,

/etc/zaptel.conf  硬件接口的基本层.    修改这个配置文件要用modprobe装载LinuxKernel使用模块.

/etc/asterisk/zapata.conf  为硬件配置Asterisk的接口.

/etc/asterisk/extensions.conf  拨号方案.

/etc/asterisk/sip.conf  SIP协议配置文件

/etc/asterisk/iax.conf  呼入和呼出IAX通道

/etc/asterisk/extensions.conf  拨号方案配置文件

/etc/asterisk/moduprobe.conf  加载模块配置文件

 

后续的工作主要就在这两份文件中开展,如果多了h323,则需要编辑h323.conf,其他通道协议类似。

我们要做的就是定义两个用户,添加到sip.conf里面,目前只做基于文件的用户管理,后续可以扩充到数据库之类的。这儿拨号规则细节就不在赘述,欲知详情,参见手册。

 

原文: http://hi.baidu.com/zengshengwen/blog/item/ccf61a06ca6022d87a8947eb.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows 禁用ipv6服务_39.Dism++ Windows系统简洁优化

Dism的特点Dism无需任何Dism组件,即可兼容高低版本所有系统!而微软Dism则需要3个版本。Dism是Dism的交集,提供完全的图形化操作,几乎支持Dism的所有功能以及大量Dism原本所不支持的功能。管理更新、驱动、功能、Appx、可选功能、服…

windows功能_有 20 多种功能的 Windows 原生日历替代软件

Win 10 出来这么久了,不知道还有多少在用 XP 或者 Win 7 的朋友呢?今天小美要推荐的软件,是专门针对 Win 10 的,没有升级系统的小伙伴可能就无法使用了~这是一款用来替换 Windows 10 任务栏原生时间日历的软件,名字叫「…

小白学数据分析-----留存率是什么?

篇外话 前段时间比较忙碌,小白系列也因此停了一段时间,这期间做了不少分析,发现和总结了不少经验,自己觉得还是很有用,不过倒都是一些基础的东西。最近很多人都在问一些基础术语和计算方式,我懂得不多&…

Asterisk 学习进阶 2

Asterisk 学习进阶-2 这儿只是把添加的用户配置列出来。 [830] typefriend ; Friends place calls and receive calls context830 ; Context for incoming calls from this user ;secretblahpoly hostdynamic ; This peer regi…

nfc reader智能解码程序_更关注健康的高性价比智能手表 华米Amazfit Pop体验

现如今市面上有着种类繁多的智能手表产品,在软硬件各方面的体验上,华米的智能手表绝对是走在前列的,近期华米又发布了全新的智能手表:Amazfit Pop,双十一售价299元,这是一款专为爱运动,追求实用…

poj 3009 Curling 2.0 (dfs的应用)

http://poj.org/problem?id3009 (1)这是一个用球撞石头的游戏,撞到石头,石碎球停。在规定的10次抛球机会下,若求移动到终点就赢,否则算输了(出界直接算输)。 (2&#xf…

Asterisk学习进阶-3

配置就先说那么一些,其他也都是类似的配置,只是熟练程度问题了,原理相通,接下来就不在赘述功能配置,我们得花些精力来分析功能模块以及他们之间的相互配合问题,因为自己这些东西看的时间也不久,…

移动app测试的多样性_快速搞定APP移动端自动化测试

1. 何为数据驱动什么是参数化?什么又是数据驱动?经常有人会搞不明白他们的关系,浅谈一下个人的理解,先来看两个测试中最常见的场景:登录:不同的用户名,不同的密码,不同的组合都需要做…

ui自动化测试框架_浅谈前端(UI)自动化测试

作为一名测试开发从业者,自动化测试好像是绕不开的话题...。结合最近接触到的一些测开应聘同学聊到关于前端自动化测试及自己的理解,分享一下自己对UI自动化测试的认识,大概如下。测试分层的自动化测试思想自动化测试分层思想所倡导的是对系统…

【转发】响应式Web设计?怎样进行?

什么是响应式Web设计?怎样进行?眼下,几乎每个新客户都希望他们的网站可以有专门的移动设备版本。最完美的情况呐,就是为iPhone、iPad、黑莓、Kindle…各自打造一款——页面分辨率还必须兼容任何设备。谁知道未来5年内我们还需要为…

cad坐标归零lisp_批量除一个数的lisp,请高手改成保留成设置小数位置。

我有一个在cad里批量除以一个数的LISP。其中《(setq newr (rtos (/ (atof old0) s0) 2 1))》的1就是决定小数点后保留1位的。请高手改一下,能否增加语句,能在cad里选择。现在,我是修改以后再加载,比较麻烦。lisp见下文。(加载命令…

基于Asterisk的VoIP开发指南——(1)实现基本呼叫功能

说明: 本文档探讨基于Asterisk如何实现VoIP的一些基本功能,包括基本呼叫功能的方案选取、主叫号码透传、如何编写AsteriskAGI程序、Radius认证计费模块等。 本文档VoIP软终端使用X-Lite,其它终端均可以接入测试。 文章内容仅供参考,转载请注…

excel查重_发票查重工具,不止查重这么简单,你还可以体验这些新玩法

电子发票报销是目前所有行业的会计都要面对的一项重要工作,而目前电子发票报销的普遍方式都是打印报销,这样一来,会计就不得不面对企业员工将电子发票重复打印报销和篡改报销的风险,而其中,尤其以重复打印报销是会计不…

Android培训翻译_使你的程序感知位置

Dependencies and prerequisites Android 1.0 or higher (2.3 for the sample app)You should also read Location and Maps 位置和地图Try it out 下载示例代码(LocationAware.zip) Users bring their mobile devices with them almost everywhere. One of the unique feature…

python导出dxf图_在PDMS中使用python直接生成管口方位图(开源分享第三集)

在PDMS中使用python直接生成管口方位图(开源分享第三集)距离上一次发推送已有5个月之久,上周立了冬,这二季我为五斗米折了腰,最近才缓过气来。令我没想到的是,大家竟然对这个主题这么有兴趣,有关注者几次在私信询问我什…

基于Asterisk的VoIP开发指南(2)——Asterisk AGI程序编写指南

5. Asterisk AGI程序编写指南 5.1概述 很多时候,我们需要在拨号方案中做某些业务逻辑的判断或者外部数据库的查询,根据具体地需要,有几种做法: 1.使用Asterisk的通道变量、Goto函数、Gotoif函数等实现某些简单跳转…

win7关闭休眠_【科普】笔记本电脑,待机/睡眠/休眠有啥区别?(ACPI SPM S0-S5)...

本文聊聊笔记本电脑话题下,经常有人问到的内容——关机 睡眠 休眠 这三个选项有什么区别?电脑可以不关机只合上盖子吗?花了俩小时,求个赞,希望有专栏能收这篇内容~先说答案:快速唤醒:开盖/操作鼠…

k8s dashboard_【大强哥-k8s从入门到放弃02】Kubernetes1.17部署Dashboard2.0

号外号外,后面所有提升视频都会更新到知乎和B站上去,不会直接发群里了,哈哈,能看懂这句话的我都认识,大家可以先关注一下,我知乎上的所有文档也会录成视频更多视频详见 杨哥天云:https://space.…

asterisk 扩展应用(3)——IVR 实现

1 IVR 实现1.1 简单IVR配置 1:进入System Recordings,上传wav语音文件。语音文件必须是音频采样为16位。音频采样级别8kHz。使用PCM编码。 2:进入freepbx IVR模块,建立菜单 3:对入特殊设置可以加入custo…

Andoid 采用ListView三种显示数据列表

Android系统中列表形式的显示方式应该是我们最熟悉不过的界面了,例如通讯录、通话记录、信息列表等等,例如下面的形式: 我们在开发项目需要用到这种形式显示信息时除了调用系统给我们提供的ListView控件以外我们还可以自定义该控件&#xff0…