MyTetra Share
Делитесь знаниями!
С какими опциями собирать Linphone, чтобы можно было звонить из консоли (без видео)
Время создания: 23.07.2020 13:48
Текстовые метки: linphone, linphonec, консоль, отключение видео, видеозвонок, сборка из исходников
Раздел: Компьютер - Linux - Сеть в Linux - Телефония, SIP, Asterisk
Запись: xintrea/mytetra_syncro/master/base/1595501290a757oe0xmg/text.html на raw.github.com

В проекте Linphone почему-то нет полного описания флагов, с которыми можно собирать этот обширный проект. Поэтому, когда надо собрать нестандартную конфигурацию, расковыривать нужные флаги приходится прямо из кода.


Если предполагается использовать Linphone (точнее, его консольный клиент linphonec) в качестве консольной звонилки на машине, где графика не предусмотрена, то проект надо собирать с отключенной поддержкой видеозвонков. Если поддержку видео не отключить во время сборки, то позвонить из консоли не получится. Будет появляться примерно следующая ошибка:



liblinphone-error-LinphoneCore has video disabled for both capture and display, but video policy is to start the call with video. This is a possible mis-use of the API. In this case, video is disabled in default LinphoneCallParams




Запустить звонок внутри linphonec с опцией --audio-only тоже не получится, ибо вышеописанная ошибка все равно никуда не денется.


Итак. Как собрать Linphone в режиме с отключенными видео-звонками? В 2020 году Linphone подготавливается к сборке через Python-скрипт prepare.py, после чего запускается утилита make. Для отключения поддержки видеозвонков, нужны следующие опции:



./prepare.py -DENABLE_VIDEO=NO -DENABLE_V4L=NO



Если на машине, где будет использоваться Linphone, не установлена звуковая карта (например, когда создается робот для проигрывания оповещений через wav-файлы) то поддержку звука тоже можно отключить:



-DENABLE_SOUND=NO



Звук из wav-файла все равно не будет проходить через звуковую карточку, а будет просто программно кодироваться в SIP-поток.


Для ускорения сборки, можно отключить UNIT-тестирование:



-DENABLE_UNIT_TESTS=NO



И не стоит забывать о том, что итоговые файлы можно положить в нужную директорию с помощью опции:



-DCMAKE_INSTALL_PREFIX="<Linphone Output Path>"



В принципе, вышеописанных опций достаточно, чтобы получить "облегченную" сборку Linphone, у которой консольный клиент linphonec будет способен работать в минималистичном окружении.


 
MyTetra Share v.0.65
Яндекс индекс цитирования