环境:Ubuntu 12.04 asterisk 11.12.0
安装过程:
1.下载asterisk源码,网址:http://downloads.asterisk.org/pub/telephony/asterisk/,我下载的是 asterisk-11.12.0.targz ,下载到了 /home/sa
2.选择安装目录,我的安装目录为: /usr/local/src
3.解压,先进入要安装的目录,然后解压。命令:
su root //切换到root 安装过程中一直是root权限
cd /usr/local/src //进入要安装目录
tar -zvxf /home/sa/asterisk-11.12.0.targz //解压
cd asterisk-11.12.0 //进入到解压后的目录下,准备安装
4. ./configure //检测环境和配置,基本都会出错。。根据提示安装缺少的包
出现*图案,表示环境配置和检测成功。
(我是按这个教程安装的 图片直接拿过来用)
我遇到的问题以及网上其他问题总结:
(1) configure: *** XML documentation will not be available because the ‘libxml2′ development package is missing.
configure: *** Please run the ‘configure’ script with the ‘–disable-xmldoc’ parameter option
configure: *** or install the ‘libxml2′ development package.
解决办法:apt-get install libxml2-dev
(2) Warning: Install SQLite3 development packege
解决办法:sudo apt-get install sqlite3 libsqlite3-dev
(3) configure: error: C++ preprocessor “/lib/cpp” fails sanity check (缺少gcc g++编译器,下面的代码一次解决)
解决办法:apt-get install build-essential
(4) configure: error: *** termcap support not found (on modern systems, this typically means the ncurses development package is missing)
解决办法:apt-get install ncurses-dev
如果缺少其他的包接着安装。基本上这样就可通过,但是后面还有问题。。出现了上面的 * 图案,开始下面的安装
5.make menuselect (可选的命令,一般也不执行)//可以看哪些模块会被装上 或者看某块间的依赖关系,比如一个模块要依赖另一个,另一个没装,那这个模块就不会被编译安装,一般都跳过。。
6. make //开始编译
成功后出现下图
7. make install //安装
成功后出现下图
8. make samples 是安装一些模板 很快
make progdocs 是安装一些文档 比较大 几百兆
一般第一次安装会选择安装 make samples
9.上述操作成功后 输入 asterisk -vvvc 就可以进入asterisk了 出现
*CLI>
安装成功。
其他问题——安装完没有chan_sip模块
安装asterisk后可以使用eyeBeam或者X-Lite进行测试的,但是输入help命令,发现找不到跟sip相关的命令,输入 make menuselect ,发现Channel Drievers里面的chan_sip.so前面是XXX 也就是说chan_sip.so没有被安装上,可以看到它下面依赖(depend)三个模块,(模块已安装前面应该是[*],至少不是XXX),我的情况是三个模块chan_local.so (貌似是这个名字记不清了 反正是第一个)已经安装,第三个应该也安装了,因为第二个模块res_crypto的问题解决后,sip模块就安装上了。解决办法
找到res_crypto模块,发现它依赖于openssl。我没有安装openssl,搜了一下,用如下命令解决:(如果在./configure之前就安装好这些就不会出现这问题,但作为初学者,也没有找到该事先安装好哪些包的列表。。)
apt-get install openssl
apt-get install libssl-dev
一般这样就可以解决了,但很遗憾。。我的还是有问题,还是没有chan_sip模块 搜了一下 发现还是缺包,下面一条命令解决:
apt-get install zlibc zlib-bin libidn11-dev libidn11
再重新编译安装,就有chan_sip模块了
官方安装文档:http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/README-11.12.0
其中提到 On many distributions, these dependencies are installed by packages with names like 'glibc-devel', 'ncurses-devel', 'openssl-devel' and 'zlib-devel' or similar.
其实安装出现种种问题,都是由于这几个包没有提前装好,最好按照官方文档直接安装,Ubuntu本身也没有安装gcc g++编译器,要提前安装好,不然没法编译asterisk源文件。
作为一名初学者,折腾了很久,不过还不是很明白……现在想想,在最开始 ./configure 前就应该安装的上述的包,执行命令如下:
apt-get install build-essential //安装g++ gcc编译器,及库函数 也解决了glibc-devel安装,这个东西在Ubuntu下叫libc,后缀devel是rpm系的习惯,deb系用的是dev
apt-get install libxml2-dev
sudo apt-get install sqlite3 libsqlite3-dev
apt-get install ncurses-dev //安装ncurses-dev包
apt-get install openssl //openssl
apt-get install libssl-dev
apt-get install zlibc zlib-bin libidn11-dev libidn11 //zlib-dev如果还缺别的包再根据提示安装,先安装好这些包再装asterisk楼主还没有试过。。不过应该可以。。