我正在尝试在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
我尝试了一些来自互联网的解决方案,它没有修复......
答案 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