MyTetra Share
Делитесь знаниями!
Как настраивать консольный клиент linphonec, как с помощью него звонить
Время создания: 07.03.2019 20:28
Автор: xintrea
Текстовые метки: sip, linphone, linphonec, консоль, телефон, звонок, звонить
Раздел: Компьютер - Linux - Сеть в Linux - Телефония, SIP, Asterisk
Запись: xintrea/mytetra_syncro/master/base/1551979710h816jin9ud/text.html на raw.github.com

Введение


Перед тем как настраивать консольный клиент linphonec следует знать, что данный клиент - это отдельная программа, и к самому linphone имеет весьма опосредственное отношение.


Это выражается в том, что linphonec не берет настройки у программы linphone, а имеет свой собственный файл настроек.


У GUI-шного клиента linphone конфиг расположен так:


~/.config/linphone/linphonerc


А у консольного linphonec так:


~/.linphonerc



Добавление SIP-сервера


В терминологии linphonec SIP-сервер считается proxy-сервером для SIP траффика. Чтоб настроить подключение к SIP-серверу, необходимо в запущенном linphonec выполнить следующую команду:


> proxy add


В результате последовательно будут запрашиваться параметры подключения. Примерно так:


Adding new proxy setup. Hit ^D to abort.

Enter proxy sip address: 192.168.180.10

Your identity for this proxy: sip:21@192.168.180.10

Do you want to register on this proxy (yes/no): yes

Specify register expiration time in seconds (default is 600):

Expiration: 600 seconds

Specify route if needed:

No route specified.

--------------------------------------------

sip address: sip:192.168.180.10

route:

identity: sip:21@192.168.180.10

register: yes

expires: 600

registered: no

--------------------------------------------

Accept the above proxy configuration (yes/no) ?: yes

Proxy added.


После добавления SIP-сервера, его наличие можно проверить следующей командой:


> proxy list

****** Proxy 0 - this is the default one - *******

sip address: sip:192.168.180.10

route:

identity: sip:21@192.168.180.10

register: yes

expires: 600

registered: no



Осуществление звонка


Звонок осуществляется с помощью команды call, например:


> call 89181234567


Если не слышен звук или не работает микрофон, особенно это актуально для конфигураций с несколькими звуковыми карточками, можно выбрать нужный девайс. Узнать список карточек можно командой:


> soundcard list

0: PulseAudio: Logitech USB Headset Аналоговый стерео

1: PulseAudio: Встроенное аудио Аналоговый стерео

2: PulseAudio: Logitech USB Headset Аналоговый моно

3: ALSA: default

4: ALSA: HDA Intel PCH

5: ALSA: Logitech USB Headset

6: ALSA: USB Device 0x46d:0x825


Узнать текущий используемый дейвайс можно командой:


> soundcard show

Ringer device: PulseAudio: Logitech USB Headset Аналоговый стерео

Playback device: PulseAudio: Logitech USB Headset Аналоговый стерео

Capture device: PulseAudio: Logitech USB Headset Аналоговый моно


Выбрать звуковой девайс можно командой:


> soundcard use <номер>


где номер - это номер в списке soundcard list.



Как сделать звонок с прокручиванием звукового сообщения


Иногда необходимо сделать звонок на определенный номер и просто прокрутить какое-либо звуковое сообщение. Это можно сделать следующим образом.


Вначале надо переключить захват звука с микрофона на аудиофайл (аудиофайл будет работать как источник звука). Аудиофайл должен быть в формате WAV. Делается это двумя командами:


soundcard use files

play <полный путь к файлу>/message.wav


Далее производится звонок уже обсуждаемой выше командой "call ...", и абоненту будет прокручено записанное в файле сообщение.


Но тут есть одна особенность: после команды "play ..." звук начинает сразу проигрываться как-бы в фоне. И когда человек поднимает трубку, он слышит сообщение не с самого начала. Исправляет ситуацию то, что сообщение прокручивается бесконечно по кругу. А как сделать так, чтобы сообщение начало воспроизводиться только после поднятия трубки, пока непонятно.



Безопасность


Возможно, сразу после запуска linphonec, на него начнутся странные звонки. Причем звонки будут отображаться так, как будто они приходят с IP-адреса самого компьютера, на котором запущен linphonec. Это звонят телефонные роботы (неизвестно с какой целью), которые сканируют все компьютеры в Интеренете на предмет открытого порта 5060, на которых обычно работают SIP-клиенты. Эти роботы в своих пакетах показывают строку своего SIP-аккаунта по принципу:


<номер из 2-4 цифр>@<IP-адрес, куда робот дозванивается>


И таким образом в телефонной программе кажется, что звонок происходит с самого компьютера, где установлен linphonec.


Для того, чтобы отследить, откуда на самом деле происходят звонки, под Linux можно воспользоваться либо программой netstat, либо, что более удобно, программой sngrep.


Защититься от этих телефонных роботов можно двумя способами: либо настройкой фаирвола, либо использованием случайного порта. Настройка фаирвола в этой статье не рассматривается, зато дальше написано как можно настроить случайный порт для работы по SIP протоколу.


К сожалению, в интерфейсе программы linphonec не удалось найти команд, которые бы устанавливали случайные порты для UDP или TCP соединений и соединений с использованием TLS. Однако выяснилось, что linphonec понимает настройки, аналогичные для GUI-клиента. Таким образом, чтобы установитьслучайные порты, надо в конфиг-файл linphonec добавить следующие опции:


[sip]

...

sip_port=-1

sip_tcp_port=-1

sip_tls_port=-1


После изменения настроек linphonec необходимо перезапустить, и странные звонки прекратятся.


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