情况
我想在我的树莓派上实现基于终端的(headless) SIP 通话,我已经尝试使用 linphone 实现:
RaspberryPI: Making SIP outbound calls using linphonec or an alternative SIP soft phone
由于我目前卡在了那里,所以我想尝试另一种选择,也就是SFLPhone。他们指向了ring软件项目,该项目提供了一个名为dring
的守护进程,允许使用脚本接口进行 SIP 调用:
实际上,该守护进程可以独立运行,并且可以使用 DBus API 进行控制。
请注意,该项目已更名为 "Ring" (版本升级到了 2.x)。实验性包可在http://ring.cx/en/documentation/linux-installation找到。 Ring 2.x 的一个重要功能是可选的 "DHT" 帐户类型,允许在没有任何 SIP 服务器的情况下进行通话。 还有许多其他增强功能,例如 ICE 支持、UPnP 支持、稳定性改进等。(请注意,客户端正在被重写(GTK3、Qt5),并且有一个新的 OS X 客户端,它们还不完整,并处于大力开发中。)
新的守护进程
dring
源 Git 存储库 URI 为:https://gerrit-ring.savoirfairelinux.com/ring。 DBus API 大部分与以前相同。在tools/dringctrl
目录中,您将找到一个我们用于测试的示例 python 客户端(使用python3-dbus
)。我们愿意修复您可能发现的任何错误,守护进程 Bug 追踪器在这里:https://projects.savoirfairelinux.com/projects/ring-daemon/issues 还要查看https://projects.savoirfairelinux.com/projects/ring/wiki获取构建指令等信息。
祝好运 A. B.
编译依赖项
我尝试按照README
中的说明编译项目所需的依赖项:
git clone https://gerrit-ring.savoirfairelinux.com/ring
cd ring
首先编译依赖项
cd ../contrib/
rm -fr native/ && mkdir native
cd native
../bootstrap
make
I got this error:
libvpx.webm-4640a0c4804b/third_party/googletest/src/include/gtest/gtest.h
mv libvpx-4640a0c4804b49f1870d5a2d17df0c7d0a77af2f libvpx && touch libvpx
cd libvpx && CROSS= ./configure --target=armv7-linux-gcc \
--as=yasm --disable-docs --disable-examples --disable-unit-tests --disable-install-bins --disable-install-docs --enable-realtime-only --enable-error-concealment --disable-runtime-cpu-detect --disable-webm-io --enable-pic --prefix=/home/pi/ring/contrib/arm-linux-gnueabihf
disabling docs
disabling examples
disabling unit_tests
disabling install_bins
disabling install_docs
enabling realtime_only
enabling error_concealment
disabling runtime_cpu_detect
disabling webm_io
enabling pic
Configuring selected codecs
enabling vp8_encoder
enabling vp8_decoder
enabling vp9_encoder
enabling vp9_decoder
Configuring for target 'armv7-linux-gcc'
enabling armv7
enabling neon
enabling neon_asm
enabling media
Unable to invoke compiler: arm-none-linux-gnueabi-gcc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
Configuration failed. This could reflect a misconfiguration of your
toolchains, improper options selected, or another problem. If you
don't see any useful error messages above, the next step is to look
at the configure error log file (config.log) to determine what
configure was trying to do when it died.
../../contrib/src/vpx/rules.mak:105: recipe for target '.vpx' failed
make: *** [.vpx] Error 1
编译 Ring
尽管依赖项的编译失败,但我仍然尝试编译 Ring:
git clone https://gerrit-ring.savoirfairelinux.com/ring
cd ring
./autogen.sh
./configure
make
make install
这导致了以下错误:
checking for PJPROJECT... no
configure: error: Missing pjproject files
pi@phone ~/ring $ make
make: *** No targets specified and no makefile found. Stop.
pi@phone ~/ring $ make install
make: *** No rule to make target 'install'. Stop.
目前我遇到了困难,担心无法超越我的项目的当前状态():
编辑:现在没有视频编解码器(如aberaud所建议),我遇到了以下错误:
/bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I../include/opendht -I/home/pi/sip-desaster/ring/contrib/arm-linux-gnueabihf/include -fPIC -I/home/pi/sip-desaster/ring/contrib/arm-linux-gnueabihf/include -g -fPIC -O3 -std=c++0x -I/home/pi/sip-desaster/ring/contrib/arm-linux-gnueabihf/include -g -fPIC -O3 -std=c++0x -c -o libopendht_la-dht.lo `test -f 'dht.cpp' || echo './'`dht.cpp
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I../include/opendht -I/home/pi/sip-desaster/ring/contrib/arm-linux-gnueabihf/include -fPIC -I/home/pi/sip-desaster/ring/contrib/arm-linux-gnueabihf/include -g -fPIC -O3 -std=c++0x -I/home/pi/sip-desaster/ring/contrib/arm-linux-gnueabihf/include -g -fPIC -O3 -std=c++0x -c dht.cpp -fPIC -DPIC -o libopendht_la-dht.o
In file included from ../include/opendht/dht.h:29:0,
from dht.cpp:27:
../include/opendht/infohash.h:58:22: error: expected initializer before ‘:’ token
dht.cpp:3105:1: error: expected ‘}’ at end of input
Makefile:386: recipe for target 'libopendht_la-dht.lo' failed
make[2]: *** [libopendht_la-dht.lo] Error 1
make[2]: Leaving directory '/home/pi/sip-desaster/ring/contrib/native/opendht/src'
Makefile:395: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory '/home/pi/sip-desaster/ring/contrib/native/opendht'
../../contrib/src/opendht/rules.mak:28: recipe for target '.opendht' failed
make: *** [.opendht] Error 2
arm-none-linux-gnueabi-gcc -v
命令会输出什么内容? - Lol4t0-bash: arm-none-linux-gnueabi-gcc: command not found
。我不知道这是否是在构建contrib
的过程中将创建的一个依赖关系... - Besigcc -v
命令可以运行吗?你的库现在被配置为从x86交叉编译到arm。 - Lol4t0