在这一章我们将详细介绍如何从源代码安装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. 现在可以开始配置信道和拨号计划了。

Asterisk权威指南/第三章 安装Asterisk相关推荐

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

    拨号计划是你的Asterisk系统的心脏.它定义了呼叫是如何流进和流出系统的.拨号计划用一种脚本语言写成的,Asterisk依照其中的指令响应外部触发.和传统电话系统相比,Asterisk的拨号计划是 ...

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

    本章我们将研究连接到Asterisk的用户设备,一般来说是某种形式的VoIP电话.在Asterisk中配置信道供设备使用相对来说比较简单,但你也需要配置设备本身以使得它知道向谁发起呼叫(这已经跟Ast ...

  3. CUDA C编程权威指南 第三章 CUDA执行模型

    基础 每个GPU有多个SM(streaming multiprocessor) 当启动一个grid时,它的block会被分配给多个SM上执行,一个block一旦被调度到一个SM上,则这个block只会 ...

  4. JavaScript权威指南 第15章 网络编程 第三部分

    JavaScript权威指南 第15章 网络编程 第三部分 可伸缩矢量图形 15.7.1 在HTML中使用SVG 15.7.2 编程操作SVG 15.7.3 通过JavaScript创建SVG图片 1 ...

  5. 《Hadoop权威指南》第二章 关于MapReduce

    <Hadoop权威指南>第二章 关于MapReduce 目录 使用Hadoop来数据分析 横向扩展 注:<Hadoop权威指南>重点学习摘要笔记 1. 使用Hadoop来数据分 ...

  6. Python精确指南——第三章 Selenium和爬虫

    3       Selenium 3.1     介绍 网络爬虫在互联网领域有着广泛的应用. Selenium是一个页面自动化控制框架.能够模拟实际操作,自动化获取网站提供的页面资源信息. Selen ...

  7. Elasticsearch6.8开发指南-第三章-设置Elasticsearch

    Elasticsearch6.8开发指南-第三章-设置Elasticsearch 本章简介 安装Elasticsearch 使用.zip或安装Elasticsearch.tar.gz 在Windows ...

  8. JavaScript权威指南 第11章JavaScript标准库

    JavaScript权威指南 第11章JavaScript标准库 第11章 JavaScript标准库 11.1 集合与映射 11.1.1 Set类 11.1.2 Map类 11.1.3 WeakMa ...

  9. HTML5 权威指南第 10 章 文档分节 学习笔记

    HTML5 权威指南第 10 章 文档分节 学习笔记 第 8 章 标记文字 内容从从文字出发,专注如何将单体内容正确的呈现出来:第 9 章 组织内容 内容从段落出发,专注如何将单体内容合理的放在段落中 ...

最新文章

  1. oracle用户创建及权限设置
  2. 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to
  3. 【发布】温度监测报警器v1.3a稳定版!
  4. 如何在PowerPoint2007制造课件免费ppt模板下载
  5. 01Spring的helloworld程序
  6. Netweaver的传输机制和SAP Cloud for Customer
  7. 计算机应软件与理论学什么,计算机软件与理论
  8. Luogu1880 石子合并
  9. Python语言的起源与发展
  10. RTC电池供电时二极管选择注意
  11. 很自由的PDF在线转换器
  12. java具名参数_Spring jdbc具名参数使用方法详解
  13. 关联规则:营销购物,自有乾坤
  14. 算法的时间复杂度表示法(大O表示法)
  15. MySQL 5.7 表分区技术(二):RANGE分区
  16. 蜜雪冰城、茶颜悦色“卷”向咖啡赛道
  17. DTS、smba、ftp安装使用
  18. 免费开源的建站程序大全,不会编程也可以自助搭建网站了哦
  19. 1-7更新:高级进程管理器Process Lasso pro的免费注册码
  20. java 泰勒级数_泰勒级数

热门文章

  1. powerdesigner 反向工程 oracle,PowerDesigner oracle 反向工程到cdm文件
  2. (JAVA)CollectionDemo1
  3. Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
  4. 推荐几个.NET开源图表组件 [转]
  5. Flex【原创】Xml与Object互转/读写本地Xml文件
  6. 工具资源 Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore
  7. 润乾报表 数据集ds1中,数据源xmglxt_x3无数据库连接,且未设定数据连接工厂,请检查数据源设定:...
  8. Ubuntu更改鼠标灵敏度
  9. SqlServer按时间自动生成生成单据编号
  10. 如何处理db2中文不显示