Asterisk权威指南/第三章 安装Asterisk

在这一章我们将详细介绍如何从源代码安装Asterisk。很多人回避这种方法,说它太难了,又耗时间。我们在这里想证明的是从源代码安装Asterisk其实没那么难。更重要的是,我们想为你提供一个最好的Asterisk安装,以便学习。

在本书中,我们将帮助你从空白开始构建起一个功能健全的Asterisk。在本章你将为你的Asterisk系统搭建一个基础平台。从源代码安装有很多种方法,这里将向你介绍的方法我们已经用了很多年了。

作为这个过程的一部分,我们还会介绍如何在Linux操作系统上安装依赖软件包,这些依赖软件包会在本书的其他部分涉及到(比如数据库集成)。我们提供了在CentOS(基于Redhat)和Ubuntu(基于Debian)上的具体安装指令,我们相信这两个系统是覆盖面最广的。我们将保持这些指令尽可能地也适用于其他Linux发行版。

尽管我们选择了CentOS和Ubuntu,但Asterisk本身是不特定于任何Linux发行版的。Asterisk甚至可以安装到Solaris,BSD,或者OS X上,如果你喜欢的话。但我们在这里不会讨论这些,毕竟Asterisk还是主要开发用于Linux平台的。

注:Asterisk软件包。也可以通过软件包管理程序(yum或apt-get)安装Asterisk,你有兴趣的话可以试一下。但是预构建的软件包可能不是最新的,所以要用最新的版本我们还是建议从源代码安装。

你在本章看到的一些命令可能会分成多行,并且标明了它们所适用的发行版。没有标明的命令可以同时适用于两个发行版上。

目录

  • 1基于Asterisk的项目
  • 2快速安装
  • 3安装操作系统
    • 3.1CenetOS服务器
      • 3.1.1安装
      • 3.1.2更新
      • 3.1.3启用NTP提供精确系统时间
      • 3.1.4添加一个系统用户
    • 3.2Ubuntu服务器
      • 3.2.1安装
      • 3.2.2更新
      • 3.2.3启用NTP提供精确系统时间
  • 4安装依赖软件包
  • 5下载
  • 6安装
  • 7基础配置
  • 8更新
  • 9常见问题
  • 10升级
  • 11结束语

基于Asterisk的项目

很多项目是以Asterisk作为它们的基础平台的。其中一些,像Trixbox,很流行,以至于被人们当成了Asterisk产品本身。这些项目一般是在Asterisk的基础上添加一个Web管理界面、一个复杂的数据库和一些受限制的配置修改规则。

我们选择不介绍这些项目,是出于以下原因:

  1. 这本书应该尽可能地专注于Asterisk本身。
  2. 已经有一些介绍那些项目的书了。
  3. 我们相信,如果你按照我们教你的方式学习Asterisk,这些知识在你选择使用那些项目的时候一样很有用。
  4. 对我们来说,Asterisk的强大在于它不会试图去替你解决问题。那些项目就很好地说明了我们可以用Asterisk做什么,它们真的做得很棒。但是,如果你想建立一个自己的Asterisk系统(Asterisk的真正意义所在),那些项目会对你构成限制,因为它们的目的是简化你建造一个系统的过程,而不是帮你发觉Asterisk的潜能。


一些有名的项目包括(我们建议你去看一下):

  1. AsteriskNOW
    http://www.asterisk.org/asterisknow
  2. Trixbox
    http://www.trixbox.org
  3. Elastix
    http://www.elastix.org
  4. PBX>http://www.pbxinaflash.net


快速安装

如果你想尽快把Asterisk跑起来,可以按顺序执行下面的shell命令。我们建议你至少把本章读一遍,以便更好地理解整个过程。

这些命令假设你已经按照“操作系统安装”一节的内容把操作系统安装好了。


1. 执行系统更新并重启

CentOS:

yum update -y && reboot

CentOS 64-bit:

yum remove *.i386 && yum update -y && reboot

Ubuntu:

sudo apt-get update && sudo apt-get upgrade && sudo reboot


2. 同步时间,并且安装网络时间协议(NTP)服务器:

CentOS:

yum install -y ntp && ntpdate pool.ntp.org && chkconfig ntpd \on && service ntpd start

CentOS 64-bit:

yum install -y ntp && ntpdate pool.ntp.org && chkconfig ntpd \
on && service ntpd start

Ubuntu:

sudo apt-get install ntp

Ubuntu还需要一些额外的配置,见“启用NTP精确系统时间”。


3. (只对CentOS)添加一个新的系统用户

CentOS (32 and 64 bit):

adduser asteriskpbx && passwd asteriskpbx && yum install \
sudo && visudo

详见“添加系统用户”。 对Ubuntu来说,我们假设在安装过程中创建的用户是asteriskpbx。


4. 安装依赖软件包

CentOS:

sudo yum install gcc gcc-c++ make wget subversion \
libxml2-devel ncurses-devel openssl-devel \
vim-enhanced

CentOS 64-bit:

sudo yum install gcc.x86_64 gcc-c++.x86_64 \
make.x86_64 wget.x86_64 subversion.x86_64 \
libxml2-devel.x86_64 ncurses-devel.x86_64 \
openssl-devel.x86_64 vim-enhanced.x86_64

Ubuntu:

sudo apt-get install build-essential subversion \
libncurses5-dev libssl-dev libxml2-dev vim-nox


5. 创建你的目录结构

$ mkdir -p ~/src/asterisk-complete/asterisk
$ cd ~/src/asterisk-complete/asterisk


6. 从Subversion检出最新代码

$ svn co http://svn.asterisk.org/svn/asterisk/branches/1.8

或者,检出特定标签

$ svn co http://svn.asterisk.org/svn/asterisk/tags/1.8.1


7. 构建并安装软件

$ cd ~/src/asterisk-complete/asterisk/1.8/
$ ./configure
$ make
$ sudo make install
$ sudo make config


8. 从menuselect安装额外的语音提示

$ cd ~/src/asterisk-complete/asterisk/1.8/
$ make menuselect
$ sudo make install


9. 修改Asterisk安装目录的权限

$ sudo chown -R asteriskpbx:asteriskpbx /usr/lib/asterisk/
$ sudo chown -R asteriskpbx:asteriskpbx /var/lib/asterisk/
$ sudo chown -R asteriskpbx:asteriskpbx /var/spool/asterisk/
$ sudo chown -R asteriskpbx:asteriskpbx /var/log/asterisk/
$ sudo chown -R asteriskpbx:asteriskpbx /var/run/asterisk/
$ sudo chown asteriskpbx:asteriskpbx /usr/sbin/asterisk


10. (只对CentOS)禁用SELinux

$ sudo vim /etc/selinux/config

把SELINUX的值从enforcing修改成disabled,然后重启。


11. 创建/etc/asterisk目录,并且把indications.conf示例文件拷进去

$ sudo mkdir -p /etc/asterisk
$ sudo chown asteriskpbx:asteriskpbx /etc/asterisk
$ cd /etc/asterisk/
$ cp ~/src/asterisk-complete/asterisk/1.8/configs/indications.conf.sample \
./indications.conf


12. 把asterisk.conf拷到/etc/asterisk,修改runuser和rungroup的值为asteriskpbx

$ cp ~/src/asterisk-complete/asterisk/1.8/configs/asterisk.conf.sample \
/etc/asterisk/asterisk.conf
$ vim /etc/asterisk/asterisk.conf

详细信息请看“indications.conf和asterisk.conf”一节。


13. 创建modules.conf。设定为自动装载模块,并且禁用额外模块

$ cat >> /etc/asterisk/modules.conf; The modules.conf file, used to define which>(or 
;>).
;
[modules]
autoload=yes; Resource modules currently not needed
noload => res_speech.so
noload => res_phoneprov.so
noload => res_ael_share.so
noload => res_clialiases.so
noload => res_adsi.so; PBX modules currently not needed
noload => pbx_ael.so
noload => pbx_dundi.so; Channel modules currently not needed
noload => chan_oss.so
noload => chan_mgcp.so
noload => chan_skinny.so
noload => chan_phone.so
noload => chan_agent.so
noload => chan_unistim.so
noload => chan_alsa.so; Application modules currently not needed
noload => app_nbscat.so
noload => app_amd.so
noload => app_minivm.so
noload => app_zapateller.so
noload => app_ices.so
noload => app_sendtext.so
noload => app_speech_utils.so
noload => app_mp3.so
noload => app_flash.so
noload => app_getcpeid.so
noload => app_setcallerid.so
noload => app_adsiprog.so
noload => app_forkcdr.so
noload => app_sms.so
noload => app_morsecode.so
noload => app_followme.so
noload => app_url.so
noload => app_alarmreceiver.so
noload => app_disa.so
noload => app_dahdiras.so
noload => app_senddtmf.so
noload => app_sayunixtime.so
noload => app_test.so
noload => app_externalivr.so
noload => app_image.so
noload => app_dictate.so
noload => app_festival.soCtrl+D


14. 配置musiconhold.conf

$ cat >> musiconhold.conf; musiconhold.conf
[default]
mode=files
directory=mohCtrl+D


15. 现在可以开始配置信道和拨号计划了。

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

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

相关文章

郑州升达经贸管理学院计算机专业学费,郑州升达经贸管理学院学费

郑州升达经贸管理学院学费2020-07-10 13:17:19文/叶丹2020年郑州升达经贸管理学院文科类本科专业学费15000元/年;郑州升达经贸管理学院理科类本科专业学费16000元/年。一般情况下,艺术类专业学费比普通专业高一些。郑州升达经贸管理学院依据省(市区)教育…

逻辑左移

逻辑左移转载于:https://www.cnblogs.com/LoveFishC/archive/2012/07/28/3846647.html

vue 搜索框header_vue项目header模块编写

前端学习的太差了,一个header写了半天才写个勉强能用的。vue-cli引入scssnpm install node-sass --savenpm install sass-loader --save从element-ui官方拷贝一个导航栏修改处理中心我的工作台选项1选项2选项3选项4选项1选项2选项3订单管理css样式完善/*顶部导航栏盒…

Asterisk权威指南/第五章 用户设备配置

本章我们将研究连接到Asterisk的用户设备,一般来说是某种形式的VoIP电话。在Asterisk中配置信道供设备使用相对来说比较简单,但你也需要配置设备本身以使得它知道向谁发起呼叫(这已经跟Asterisk没有关系了,每个硬件厂商都有自己的…

不愿意和别人打交道_参加完孩子学校的运动会,宝妈吐槽贫富圈子差距大,不适合打交道...

文|文儿我有一个发小,蛮有钱的,前两天参加完孩子的运动会,气呼呼地说“穷人就爱斤斤计较,千万不要轻易地跟他们打交道”。这是怎么回事呢?原来,我的这位发小,今年孩子转学上了小学二年级&#x…

中职计算机属于专业课还是文化课,对中职计算机专业建设探讨.doc

对中职计算机专业建设探讨对中职计算机专业建设探讨摘要:技能培养是职业教育的主旋律。对中职学校的计算机专业建设来说,职业教育者应首先明确培养目标,制订合理的教学计划,同时结合社会的需求,全面加强师资队伍的建设…

Asterisk权威指南/第六章 拨号计划基础

拨号计划是你的Asterisk系统的心脏。它定义了呼叫是如何流进和流出系统的。拨号计划用一种脚本语言写成的,Asterisk依照其中的指令响应外部触发。和传统电话系统相比,Asterisk的拨号计划是完全可定制的。 本章介绍Asterisk的基本概念。这里讲的内容对你…

hadoop loadBalance源码分析

项目hbase数据库出现很诡异的assignment ,region移动的src和dest都是同一台regionserver,不过时间戳不同,启动的只有一个regionserver, 不知道怎么出现了两个时间戳 分析下源码解决一下 loadbalance只有一个实现 org.apache.hado…

html 遍历div内check,vue+element中checkbox 实现遍历分组全选

1、html部分style"margin-left: 30px":indeterminate"item.isIndeterminate"v-model"item.isCheck"change"checkTitle(item.isCheck, index)">全选>v-model"item.checkedData"change"checkItem(item.checkedData…

homepod换wifi网络_如何实现短租网络自由,不必换房断网

对于在异地工作的人来说,租房一直是头疼的问题,要避开黑中介,房租不能太贵,还要离公司近,最好单间或者舍友不能太奇葩,要满足以上条件实在是太难了。其实最核心的问题是房租,押一付三&#xff0…

如何升级浏览器_手把手教你申请IOS14 Beta升级方法

就在最近苹果公司正式开放了IOS14 Public Beta 2还不了解IOS14的小伙伴参考一只废材:WWDC2020 之 IOS14 篇(内含升级方法和个人体验参考)​zhuanlan.zhihu.com本期废材就来教大家如何申请升级操作方法简单易懂又官方本方法每次发布版本更新都…

树的直径,树的最长路dp思想

dp一直弱死了,树型dp很多基本的题都不会,最近在刷树型dp的题,把关于树的最长路的思想总结一下: 树的直径:树中距离最远的两点间的距离。 下面说几道题: hdu 2196:对于树上(双向边&am…

xLite连接asterisk提示sip408错误

xLite连接asterisk提示sip408错误 1.sip408应答代码全文 408 Request Timeout 在一段时间内,服务器不能产生一个终结应答,例如,如果它无法及时决定用户的位置。客户端可以在稍后不更改请求的内容然后重新尝试请求。 2.原因:造成…

linux sd卡 读写速度测试_铠侠(原东芝存储)SD卡,大容量存储时代,高速读写选择...

作为一个经常出去旅行的旅游博主,在旅行过程中,还是有很多拍摄的需求。无论是存储美图,还是视频,一个大容量、安全可靠的储存卡还是很有必要的。这既可以缓解因为容量不够,频繁导数据的尴尬。又不会因为数据丢失&#…

软件测试需求分析录音,谈一谈软件测试需求分析

在软件测试过程中我们首先要做的就是分析测试需求,一般都是由客户方给出,测试需求应该全部覆盖已定义的业务流程,以及功能和非功能方面的需求。分析软件测试需求是一个不可或缺的步骤,因为它有利于保证测试的质量和进度&#xff0…

hdu 4324 Triangle LOVE

http://acm.hdu.edu.cn/showproblem.php?pid4324 比赛的时候 脑子又短路了 “between A and B, if A don’t love B, then B must love A” 这句话读题的时候倒是看到了 思考方法的时候却忘了 伤不起呀 我们把喜欢自己的人数定为入度的话 假设到了第n1个人 那么前n个人 两两…

potplayer 多个进程_操作系统 | 进程同步与进程互斥

主题 进程同步与进程互斥 01进程同步 问题在多道批处理系统中,多个进程是并发执行的,而并发执行的进程具有异步性,也就是说,各个进程以各自独立的、不可预知的速度向前推进。这样会带来什么问题呢?如果有 AB…

Asterisk拨号方案常用函数说明

Asterisk拨号方案常用函数说明 (1)Answer() 应用于接听正在响铃通道,它不需要任何参数. (2)Playback() 应用在通道上播放事先录制好的语音文件.指定一个文件名(不带扩展名),可以使用绝对路径与相对路径. (3)Hangup() 应用在于挂断一个正在活动的通道. (4)Background() 它…

计算机指令int,汇编入门学习笔记 (十二)—— int指令、端口

疯狂的暑假学习之 汇编入门学习笔记 (十二)—— int指令、端口参考: 《汇编语言》 王爽 第13、14章一、int指令1. int指令引发的中断int n指令,相当于引发一个n号中断。执行过程相当于:(1)取中断类型吗n。(2)标志寄存器入栈;设置…

Java中间件:淘宝网系统高性能利器

【TechTarget中国原创】淘宝网是亚太最大的网络零售商圈,其知名度毋庸置疑,吸引着越来越多的消费者从街头移步这里,成为其忠实粉丝。如此多的用户和交易量,也意味着海量的信息处理,其背后的IT架构的稳定性、可靠性也显…