我尝试在 Debian (8.7) 上将 asterisk 11 升级到 14,当我执行 make install 时出现以下错误。
错误如下
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
我尝试了网上的一些解决方案,但没有解决......
最佳答案
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
并继续安装:)
关于makefile - 将 Asterisk 升级到 14 时出错 - PJSIP 未声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43139457/