• 10-312018
  • 官方:如何在CentOS 6上安装PJSIP和Asterisk 13

    <<返回

    随着Asterisk 13认证分支的发布,Asterisk培训团队现在决定提供一套简短的“从源代码安装”说明。以下是我安装Asterisk 13的三步程序。如果您对早期版本的Asterisk有经验,则需要考虑一些更改,即由PJSIP SIP堆栈驱动的新SIP通道驱动程序。最初的Chan_SIP通道驱动程序已移至扩展支持,默认情况下不会在Certified Asterisk 13中编译。

    要考虑的事情

    • 这些说明已在新安装的CentOS 6.6 x86_64虚拟服务器上进行了测试。
      • 必须修改这些指令以使用32位版本的CentOS。
      • 我将在适当的地方指出32位版本的CentOS的替代步骤。
    • 因为这篇文章的重点是新的SIP通道驱动程序,所以我没有包含DAHDI和LibPRI的说明。会在其他文章中描述。
    • 出于此安装的目的,我们建议将SELinux配置从默认的“强制”更改为“许可”。许可模式不会强制执行安全策略,但会记录在需要重新启用SELinux时有用的操作。有许多方法可以处理超出本文范围的SELinux设置。一种典型的方法是使用文本编辑器通过将“enforcing”更改为“permissive”来修改/ etc / selinux / config中的“SELINUX =”行。更新并禁用SELinux后,您可能需要重新启动并重新标记文件系统。
    • 在您通过自己的实验室设置进行审查之前,我也会非常不鼓励在生产服务器上使用这些说明的任何部分。那太危险了,我只能祝你好运。

    第1步 - 设置环境

    第一步是安装构建PJSIP库和Asterisk 13所需的依赖项。使用CentOS yum软件包管理器,我们将所有当前安装的软件包更新到其最新版本,然后为Asterisk和PJSIP安装一些最常见的依赖项。

    #yum update

    我们接下来安装的kernel-devel包可能稍微领先于系统上实际使用的内核。这就是我们首先进行yum更新的原因。如果内核已更新,请确保在继续之前重新启动。有关CentOS可用的内核开发包的更多信息,请参见  此处CENTOS官网链接。以下命令将安装编译和安装PJSIP和Asterisk所需的多个软件包。

    # yum install -y epel-release dmidecode gcc-c ++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel

    注意:如果您在解决依赖关系时遇到问题,请查看Asterisk tarball附带的install_prereq工具。位于Asterisk源目录的contrib / scripts目录中,该目录将在步骤4中解压缩。

    第2步 - 安装pjproject

    接下来,您将直接从pjsip.org下载并安装pjproject sip库。但首先我们将更改目录以在/ usr / src目录中工作。

    # cd /usr/src  
    # wget http://www.pjsip.org/release/2.3/pjproject-2.3.tar.bz2   
    # tar -jxvf pjproject-2.3.tar.bz2

    这将创建pjproject-2.3目录。切换到此目录并运行以下命令集以构建和安装pjproject sip库。

    # cd pjproject-2.3  
    # ./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr

    使用32位操作系统时,必须修改此命令。只需--libdir=/usr/lib64从命令中删除该选项即可。其他选项可能会有所不同,具体取决于您希望如何使用Asterisk。有关这些选项的更多信息可以通过运行命令找到./configure --help。
    接下来的四个命令将构建,安装和链接pjsip库。

    # make dep
    # make
    # make install
    # ldconfig

    最后,下一个命令将验证pjsip库是否已动态链接。

    # ldconfig -p | grep pj

    您的输出应如下所示:

    PJSIP-liblink

     

    第3步 - 安装DAHDI

     下载DAHDI并解压:

    # wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz  
    # tar -zxvf dahdi-linux-complete-current.tar.gz  
    编译安装:
    # cd dahdi-linux-complete-2.10.2+2.10.2/     
    make
    make install  
    make config  

     

    第4步 - 安装Asterisk 13

    现在我们将从源代码下载并安装最新的Certified-Asterisk 13.1分支。首先,我们将目录更改为一级/usr/src。

    # cd ..

    然后我们将使用wget命令从downloads.asterisk.org下载tarball 。

    # wget http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-13.1-current.tar.gz

    接下来,tar命令会将Asterisk源代码解压缩到一个名为的新目录中certified-asterisk-13.1-certified。然后我们将转到新目录。

    # tar -zxvf certified-asterisk-13.1-current.tar.gz  
    # cd certified-asterisk-13.1-cert1

    下一组命令将构建并安装Asterisk。请记住跳过--libdir=/usr/lib64 32位版本的CentOS选项。在这种情况下,只需运行命令./configure。

    # ./configure --libdir=/usr/lib64

    接下来,您将运行make menuselect命令。此步骤将验证是否已成功安装pjsip通道驱动程序依赖项。

    # make menuselect

    使用箭头键导航到左列中的“资源模块”,大约在列表的一半。按向右箭头键,然后向下滚动,直到看到以“res_pjsip_”开头的模块列表。如果这些模块名称左侧有“XXX”,则表示尚未满足依赖关系。您需要返回/ usr / src / pjproject目录,运行“ make distclean ”命令并重新开始仔细查找任何错误消息并从那里继续。如果您看到[*]而不是XXX,则表示已满足res_pjsip模块的依赖关系,您可以继续执行后续步骤。您的menuselect屏幕应如下所示:

    menuselect-PJSIP

    退出菜单后,选择屏幕,下一组命令将构建并安装Asterisk以及一组示例配置文件。

    # make && make install  
    # make samples

    如果希望Asterisk在引导时启动,请使用以下命令设置Asterisk服务。

    # make config

    最后,运行命令“service asterisk start”立即启动Asterisk服务,而无需重启。