将Asterisk升级到14时出错 - PJSIP未声明

时间:2017-03-31 11:23:08

标签: makefile debian asterisk

我正在尝试在Debian(8.7)上将星号11升级到14,当我进行安装时出现以下错误。

错误如下

res_pjsip_transport_management.c: In function ‘monitored_transport_state_callback’:
res_pjsip_transport_management.c:190:8: error: ‘PJSIP_TP_STATE_SHUTDOWN’ undeclared (first use in this function)
   case PJSIP_TP_STATE_SHUTDOWN:
        ^
res_pjsip_transport_management.c:190:8: note: each undeclared identifier is reported only once for each function it appears in
/root/asterisk-14.3.0/Makefile.rules:149: recipe for target 'res_pjsip_transport_management.o' failed
make[1]: *** [res_pjsip_transport_management.o] Error 1
Makefile:401: recipe for target 'res' failed
make: *** [res] Error 2

我使用的命令如下

tar -zxvf asterisk-14-current.tar.gz
/etc/init.d/asterisk stop
cd asterisk-14.3.0/
./configure
rm -f /usr/lib/asterisk/modules/*
make install

我尝试了一些来自互联网的解决方案,它没有修复......

3 个答案:

答案 0 :(得分:3)

似乎pjsip版本不匹配(可能是安装了多个版本),因此您要删除所有以前/现有版本的PJSip。如果您不知道哪些包属于pjsip,您可以通过以下方式搜索它们:

apt-cache search pjsip

dpkg -l | grep pj

一旦你知道要删除哪个包

apt-get --purge remove <package name>

然后您想下载最新版本的pjsip(根据Asterisk网站的最新版本2.6)

wget wget http://www.pjsip.org/release/2.6/pjproject-2.6.tar.bz2
tar -xjvf pjproject-2.6.tar.bz2

您想将pjproject放在/ usr / local中。

cp -R pjproject-2.6 /usr/local/

完成此操作后,您必须构建/编译/安装pjproject和

./configure --prefix=/usr --enable-shared CFLAGS='-O2 -DNDEBUG' //Various options (enable/disable) can be put in here. Please refer to manual 
make dep
make
make install
ldconfig

验证pjproject是否已安装在目标位置

ldconfig -p | grep pj

完成此操作后,您现在可以转到Asterisk文件夹并发出

./configure 

然后继续安装:)

答案 1 :(得分:1)

pjsip版本不匹配。

从未尝试过14 *(它不是LTS),因为13. *这样的错误意味着你有一个pjsip或者pjsip不是2.4。

在重建pjsip之前,请检查

yum remove -y pjsip
rm -f `find / -name *pjsip*`

答案 2 :(得分:0)

如果我没弄错的话,Asterisk 13源代码附带了一个内置的pjproject,但是14会在系统上寻找已安装的pjproject。

确保安装它(包括-dev或-devel包,其中包含标头),而不是尝试重新配置星号源。

./bootstrap.sh
./configure
make menuconfig