NEWS
Handsfree ip-телефон
-
Наверное у каждого бывали ситуации когда звоните домой, а телефон никто не слышит (не зарядили вовремя, либо не слышно).
Есть вариант организовать sip-телефон на базе linux-сервера (без GUI и монитора!), к которому подключен микрофон, динамик и если нужен видеотелефон то ip/usb-камера.
Инструкция (пишется по памяти, если что-то не хватает - спрашивайте, дополню):
1. Устанавливаем Asterisk на любой сервер с выходом в Интернет (не обязательно на ту же машину где будет ip-телефон). Подойдёт любая бесплатная версия, которую проще поставить из пакетов.
Допустим у нас 2 абонента:
-
Мобильный абонент: user1/password1 с номером 860
-
Стационарный абонент на сервере: flat1/password2 с номером 861.
1.1 В Asterisk настраиваем:
в файле extensions.conf в конце добавляем:
[from-sip] exten => 860,1,Dial(SIP/user1) exten => 861,1,Dial(SIP/flat1)в файле sip.conf в конце добавляем:
` > [user1]
type = friend ; Friends place calls and receive calls
username=user1
context = from-sip ; Context for incoming calls from this user
secret = password1
;allow = all
disallow=pcmu ; First disallow all codecs
allow=speex,libc,gsm,vp8,h264 ; Allow codecs in order of preference
host = dynamic
directmedia = nohat
nat = force_rport,comedia
[flat1]
type = friend ; Friends place calls and receive calls
username=flat1
context = from-sip ; Context for incoming calls from this user
secret = password2
disallow=pcmu ; First disallow all codecs
allow=speex,libc,gsm,vp8,h264 ; Allow codecs in order of preference
;allow = all
host = dynamic
directmedia = nohat
nat = force_rport,comedia
keepalive=60 `
В файле rtp.conf чтобы не открывать снаружи слишком большой диапазон портов можно ограничить в секции "[general]"
` > rtpstart=19900
rtpend=20000 `
1.2. На маршрутизаторе открываем извне порт udp 5060 и диапазон портов udp указанный в rtp.conf.
2. На linux-сервере, к которому подключен микрофон, динамик и ip-камера устанавливаем linphonec из пакетов (весьма желательно), либо пытаемся откомпилировать- но это дело очень муторное, много зависимостей.
2.1
Если нужен видеотелефон из ip-камеры:
2.1.1 Создаём videodevice:
modprobe v4l2loopback devices=42.1.2
Устанавливаем пакеты gstreamer1.0-libav, gstreamer1.0-plugins-base, gstreamer1.0-tools
2.1.3
Захватываем видео с камеры в videodevice с преобразованием в "сырое" видео:
> gst-launch-1.0 rtspsrc location=rtsp://user:password@192.168.2.30:554/Streaming/Channels/2 ! rtph264depay ! decodebin ! videorate ! video/x-raw, framerate=10/2 ! v4l2sink device=/dev/video2 &
(Для usb камеры захват будет другой, ищите в гугле)2.2
Запускаем linphenec с помощью специальной программы для управления - linphonecsh:
/usr/bin/linphonecsh init -C -c /etc/linphonec.cfg /usr/bin/linphonecsh register --host 10.10.10.10:5060 --username flat1 --password password1 /usr/bin/linphonecsh generic 'camera' #(активирует возможность видеотелефона) /usr/bin/linphonecsh generic 'soundcard use 0' #(явно указывает номер звуковой карты в системе) /usr/bin/linphonecsh generic 'webcam use 0' #(использует /dev/video2, номер проверяется командой /usr/bin/linphonecsh generic 'webcam list') /usr/bin/linphonecsh generic 'autoanswer enable' #(разрешить автоответ)3. На смартфоне устанавливаем linphone либо другой SIP-клиент из play-маркета.
Указываем в настройках Сервер, порт, login: user1 и пароль: password2.
Если регистрация успешна - можно набрать номер 861 и поговорить :)
-
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden