Установка «ring.cx SIP-клиента» на малиновый PI

Ситуация

Я хотел бы получить терминальные (безголовые) SIP-вызовы, работающие над моей малиной Pi, и я уже пробовал это с помощью linphone:

RaspberryPI: Выполнение исходящих вызовов SIP с использованием linphonec или альтернативного SIP-телефона

Поскольку я сейчас застрял там, я хотел попробовать другой вариант, который был SFLPhone . Они указали мне на проект программного обеспечения кольца, который предлагает демона dring который позволяет делать SIP-вызовы с использованием интерфейса сценариев:

Действительно, демон может работать автономно и управляться с помощью DBus API.

Обратите внимание, что проект был переименован в «Кольцо» (версия наброшена на 2.x). Экспериментальные пакеты доступны по адресу http://ring.cx/en/documentation/linux-installation . Основной функцией Ring 2.x является дополнительный тип учетной записи DHT, позволяющий совершать вызовы без какого-либо SIP-сервера. Есть много других улучшений, таких как поддержка ICE, поддержка UPnP, улучшения стабильности и т. Д. (Примечание: клиенты переписываются (GTK3, Qt5), и есть новый клиент OS X, они еще не являются полноценными и тяжелыми. )

Новый источник демона Git repo URI: https://gerrit-ring.savoirfairelinux.com/ring . API DBus в основном такой же, как и раньше. В каталоге tools/dringctrl вы найдете пример клиента python, который мы используем для тестирования (использует python3-dbus ).

Мы готовы исправить любые ошибки, которые вы можете найти, здесь находится bugtracker daemon: https://projects.savoirfairelinux.com/projects/ring-daemon/issues. Также посмотрите на https://projects.savoirfairelinux.com/projects/ring / wiki для инструкции по сборке и т. д.

С уважением и удачи для вашего встроенного проекта, AB

Компиляция зависимостей

Я попытался скомпилировать зависимости для проекта, как указано в README :

 git clone https://gerrit-ring.savoirfairelinux.com/ring cd ring 

Сначала скомпилируйте зависимости

 cd ../contrib/ rm -fr native/ && mkdir native cd native ../bootstrap make 

Я получил эту ошибку:

 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:

 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 

3 Solutions collect form web for “Установка «ring.cx SIP-клиента» на малиновый PI”

Contrib

Часть «contrib» сборки Ring – это создание зависимостей, которые недоступны в целевой системе, в основном используемые для создания полных рабочих пакетов при кросс-компиляции или для систем без правильного управления зависимостями (в основном все ОС, кроме дистрибутивов Linux).

Когда в каталоге contrib/native вы можете запустить make list чтобы просмотреть список создаваемых пакетов. Поскольку вы выполняете кросс-компиляцию, вам нужно будет построить почти все.

Если вы каким-либо образом испортите сборку Contrib, вы можете безопасно удалить contrib/{target_tuple} contrib/native и contrib/{target_tuple} (если есть) и начать заново.

libvpx

Библиотека libvpx используется libav для предоставления видеокодеков vp8 и vp9. Это не сложная зависимость, и поскольку ваш проект не использует видео, вы можете безопасно его отключить. Мы также сталкивались с проблемами при перекрестной компиляции vpx.

В строке contrib/src/libav/rules.mak 70 DEPS_libav определяет список зависимостей для libav. Вы можете удалить vpx , x264 и $(DEPS_vpx) из списка, так как вы не используете видео. Вы также можете добавить в список звуковые кодеки speex и opus (они должны быть в списке, но нет, см. Этот патч в качестве примера).

После очистки вкладчика, как описано выше, и повторного увеличения, при запуске make list , vpx и x264 не должны отображаться в списке « vpx пакеты». Затем попробуйте создать Contrib, выполнив make .

Если после этого вы столкнетесь с одной и той же проблемой для других пакетов, у вас может возникнуть какая-то проблема с сборкой перекрестной компиляции (тогда мне понадобилось бы больше журналов / деталей).

В крайнем случае, компиляция на самом Pi (с Raspbian) ужасно медленна, но имеет преимущество в использовании локальных дистрибутивных зависимостей и устраняет трудности перекрестной компиляции.

Удачи

Я предоставляю собственный ответ, который должен документировать мои шаги, которые, надеюсь, приведут меня к желаемому конечному результату:

Загрузить источники

 git clone https://gerrit-ring.savoirfairelinux.com/ring cd ring 

Создайте раздел contrib

По замечанию @aberaud я могу обновить contrib/src/libav/rules.mak и удалить любые связанные с видео зависимости (помните, что я безголовый):

Поэтому я изменил форму 70

 DEPS_libav = zlib x264 vpx $(DEPS_vpx) 

в

 DEPS_libav = zlib opus speex 

Теперь создайте раздел contrib .

 cd ../contrib/ rm -fr native/ && mkdir native cd native ../bootstrap make 

Я попал в ту же ошибку, пытаясь скомпилировать вкладку.

В версии Raspbian, которую я использовал, появилась старая версия компилятора gcc версии 4.6. После того, как я обновил до 4.8, он скомпилировался мгновенно. Ну, как мгновенно, как угодно компилируется на Pi.

  • Objective-C (какао) эквивалент python's endswith / начинается с
  • Самый быстрый способ сжать размер видео с помощью библиотеки или Algo
  • Обнаружение цели OpenCV dot не обнаруживает все цели, и найденные круги смещены
  • PyRun_String прекращает отправку результата в stdout после любой ошибки
  • Словарь Python vs C ++ std: unordered_map (cython) vs cythonized python dict
  • Расширение python с помощью C: Передача списка в PyArg_ParseTuple
  • C ++ или Python как отправная точка в программировании GUI?
  • Какие файлы требуются для запуска Py_Initialize?
  • Есть ли эквивалент Python `pass` в c ++ std11?
  • c ++ 11 regex медленнее, чем python
  • Python для разработчиков на C ++
  • Python - лучший язык программирования в мире.