Установка и запуск Asterisk на Android-смартфоне
Здравстуй, хабр!
Понадобилось мне быстро собрать стенд для демонстрации работы астера в небольшой организации. Нужно было сделать несколько звонков, продемонстрировать перевод, перехват вызова и т.д. Сам VoIP сервер разместил на своем смартфоне. Почему на смартфоне, каким образом и с какой целью — под катом.
1. Зачем
Я работаю в компании, которая занимается настройкой телефонии для маленьких и не очень компаний по городу и области. Asterisk в большинстве случаев является самым оптимальным вариантом АТС, так как легко настраивается, масштабируется под нужды организации, можно дополнять функционал своими скриптами. Имеется свой джентльменский набор для демонстрации работы АТС — старенький макбук с линуксом на борту и настроенным астером, SIP-трубка Gigaset, шлюз SPA8000, SIP-транк на нашу АТС для внешних звонков.
Случилось так, что кот опрокинул стакан сока на ноутбук. Заказал на aliexpress клавиатуру, но при замене нечаянно сломал шлейф. Пока откладываю деньги на новый топкейс и шлейф — нужно делать стенд — утром переговоры. На новом ноуте под виртуалку места нет, линукс ставить — жаль рабочую систему. Решил — стоит попробовать на смартфоне, заодно оценить его возможности по железу.
2. Установка
Имеем — Sony Xperia M Dual, последний билд Cyanogenmod с 4.4.4, MicroSD на 32гб 10 класса. Метод должен работать большинстве смартфонов с root правами и (желательно) кастомной прошивкой.
В Google Play есть замечательная утилита Linux Deploy. Она позволяет устанавливать один или несколько различных дистрибутивов Linux на смартфон и запускать их в chroot-окружении. Процесс установки linux описывать не буду, есть очень наглядное видео с приятной музыкой на странице программы в Google Play, но на всякий случай продублирую его здесь.
Устанавливаем систему по инструкции на видео, я делал также, только выбрал Debian Wheezy. Жмем кнопку Start в окне Linux Deploy, система установлена и запущена.
Далее можем подключиться любимым SSH-клиентом по ip-адресу нашего смартфона, и попадаем в Linux-окружение. Пароль по умолчанию для пользователя — changeme, в рута через sudo -s. Для установленного Debian (Ubuntu) обновим систему и установим нужные пакеты:
После установки создадутся конфигурационные файлы в каталоге /etc/asterisk/. Для минимальной настройки VoIP сервера необходимо их изменить. Под спойлерами примеры настроек:
Когда конфигурация написана, запускаем службу и заходим в CLI:
При запуске службы из init.d не грузится модуль сhan_sip, пишет ошибку chan_sip.c:28816 reload_config: Unable to create SIP socket: Permission denied . От рута запускается нормально, для демонстрации сойдет.
Все готово. Я подключил к нашей новой АТС шлюз FXS и два софтфона. На моем аппарате (Xperia M Dual) нагрузка на процессор в 4 активных канала составляет где-то 10%, не заикается, лагов нет. Можно звонить по внутренним 101-105 друг другу, и общаться с внешним миром через транк от провайдера.
4. Возможности применения:
а) демонстрация работы Asterisk PBX
б) портативная гиковская АТС =)
в) для домашнего использования (ставят же на роутеры с openwrt, можно и на смартфоне сделать)
г) просто ради интереса
Задавайте вопросы в комментариях и в ЛС, не только в рамках статьи. По возможности могу подсказать и помочь по настройке.
Спасибо за внимание.
Источник
Обзор SIP-клиентов для Android
Софтфоны, VoIP-адаптеры, IP-телефоны – как правило, подключение IP-телефонии осуществляется с применением специализированного оборудования. Избежать лишних затрат на его приобретение можно с помощью программного обеспечения, установленного на обычный смартфон – звонилки для андроид подключаются к серверам VoIP-провайдера через интернет и позволяют оставаться на связи в любой точке России и мира.
Помимо сторонних приложений, для подключения IP-телефонии можно использовать и встроенный SIP-клиент, доступный на большинстве устройств с операционной системой Android выше четвертой версии. Для его настройки понадобится опция добавления учетных записей для интернет-звонков, найти которую можно в меню смартфона, а также дополнительная информация:
Эти данные нужно получить в личном кабинете провайдера и ввести в соответствующих полях, после чего необходимо установить запрос на осуществление вызовов через SIP. Из преимуществ встроенного клиента стоит выделить минимальное потребление системных ресурсов и простую настройку, среди недостатков – скромный функционал и высокий уровень энергопотребления.
Популярные звонилки на Андроид
Отличной альтернативой предустановленным SIP-клиентам являются звонилки для андроид и других операционных систем, а именно приложения:
X-Lite Softphone
Групповая отправка сообщений, голосовые и видеовызовы, поддержка любых Bluetooth-устройств, а также IPV4 и IPV6 – созданное для Windows и ориентированное на корпоративных клиентов приложение отличается обширным функционалом и высоким уровнем защиты данных
Zoiper
Один из самых популярных SIP-клиентов для устройств на базе Android. Зойпер представлен несколькими версиями – от бесплатной до профессиональной, все они обладают высококачественной передачей голоса. Так, Zoiper IAX SIP VOIP Softphone обладает простым интерфейсом, Zoiper Beta позволяет общаться в чатах и переключаться между несколькими аккаунтами, PRO-версия включает максимальное количество функций, поддерживает протоколы IAX и SIP, а также имеет функцию эхоподавления
CSipSimple
Стабильное приложение с минимальными техническими требованиями и простыми настройками
Linphone
Совместимый с любыми устройствами и VoIP-провайдерами софт с функцией шифрования трафика, поддержкой аудиоконференций и совместного использования файлов. Недостатком данного приложения является англоязычный интерфейс
Sipdroid
Простой SIP-клиент, софтфон для Asterisk, предназначенный для работы с любыми провайдерами. В числе его возможностей – доступ к телефонной книге, видеозвонки и передача файлов
3CX Phone
Настройка конференцсвязи, переадресация или удержание вызовов, поддержка чата, доступ к голосовому почтовому ящику – функциональная звонилка полностью заменяет штатное приложение для работы с вызовами. Одним из его преимуществ является простота применения, низкие требования к оборудованию и незначительное энергопотребление
Софтфон Телфин
Установка приложения позволяет значительно сократить расходы на связь – полностью заменяя штатное оборудование, оно позволяет создать сеть с бесплатными корпоративными звонками из любой точки мира. Для связи с клиентами применяется тариф «Поминутный». Несмотря на обширный функционал, использование программного телефона не требует внесения обязательных платежей или абонентской платы – платить нужно только за совершенные звонки.
Особенности настройки звонилки на Андроид
Настройка SIP-клиента на Android элементарна. К примеру, для установки Софтфон Телфин необходимо скачать приложение на смартфон с помощью QR-кода, Play Market или AppStore.
Процесс настройки
Первый запуск программы потребует авторизации с помощью логина и пароля от личного кабинета АТС «Телфин.Офис» или с помощью считывания QR-кода.
После входа, приложению понадобится настройка, осуществить которую можно автоматически – необходимо лишь выбрать пункт «QR-код для запуска приложений iOS и Android» в личном кабинете АТС «Телфин.Офис», и нажать кнопку «Сгенерировать QR-код».
Распознайте появившийся код приложением, для чего нажмите на стартовом экране кнопку QR-скана. После этого система синхронизирует необходимые настройки и подготовит приложение к работе со звонками.
Источник
Добавляем шифрование и push в обычный SIP
Привет Хабр! В этой статье мы хотели бы осветить несколько проблем SIP при использовании на мобильном устройстве, о которых как правило не знают или не догадываются пользователи.
Одна из главных проблем — если вы пользуетесь каким-либо SIP провайдером ( или собственной IP АТС ) на смартфоне, то с уверенностью в 99% можно сказать что ваши данные незашифрованы.
Наверное многие делали простую вещь — снифили трафик от SIP устройств, чтобы найти причину какой-либо неработоспособности VOIP соединения.
На практике это означает что и все ваши переговоры по SIP могут быть также легко заснифены, восстановлены и прослушаны на стороне мобильного клиента и сделать это довольно легко.
О том что эта проблема существует, нам говорит и Википедия:
Многие потребительские реализации IP-телефонии не поддерживают криптографическое шифрование, несмотря на то, что наличие безопасного телефонного соединения намного проще внедрить в рамках IP-технологии, чем в традиционных телефонных линиях. В результате, при помощи анализатора трафика относительно несложно установить прослушивание IP-звонков, а при некоторых ухищрениях даже изменить их содержание.»
Такая проблема возникает из-за стремления сделать универсальным SIP клиента, хотя практически во всех популярных софтфонах возможность шифрования заявлена.
Но кроме самого софтфона, шифрование должен поддерживать и SIP сервер и вот тут и находится корень проблемы — провайдеры разные, используют разные решения и для того чтобы поддержать весь зоопарк SIP устройств своих клиентов, шифрование на сервере как правило выключают.
Еще одна проблема, которая тоже достаточно часто встречается — блокирование самого протокола SIP.
Это могут быть и блокировки на уровне как отдельно взятого провайдера, так и на уровне национальных операторов — например SIP блокируется властями ОАЭ, Китая и ряда других стран.
Еще одна общеизвестная проблема, связанная с использованием SIP на мобильных устройствах — стандартные VOIP софтфоны, будучи постоянно запущенными, значительно расходуют батарейку смартфона.
Это происходит потому что большинство IP АТС представляют собой обычный SIP сервер, который требует периодической регистрации клиента, т. е. приложение на телефоне должно быть всегда онлайн и соответственно IP АТС всегда ждет регистрационного пакета от приложения.
Если в течении определенного времени от приложения не придет регистрационный пакет, то IP АТС считает что клиент оффлайн и уже никто внутри АТС не сможет сделать звонок на такого клиента.
Поэтому такие приложения должны находиться всегда онлайн и соответственно значительно расходуют батарейку мобильного устройства.
Так сложилось исторически, когда клиентские SIP устройства были в основном десктопными IP телефонами или VOIP шлюзами и соответственно проблемы экономить батарейки не существовало.
Хуже всего сейчас пользователям iOS — дело в том, что начиная с 11 версии Apple вообще убрал возможность своим приложениям быть всегда онлайн и соответственно старые приложения для SIP уже не работают на новых версиях iOS. Это продиктовано политикой Apple минимизировать расход батареи для всех приложений.
Существуют несколько выходов из ситуации с батареей.
Основная мысль — переводить приложение в оффлайн, т. е. «усыплять» приложение и будить его по пушу именно в то время, когда приходит входящий звонок.
Собственно, так и делают все популярные мессенджеры с проприеретарными протоколами — WhatsApp, Viber, Телеграм и другие, когда идет входящий аудио или видео звонок — они пушем будят приложение, оно запускается и после этого способно принимать звонки.
Первое решение — создать свой сервер, свою IP АТС и написать своего собственного клиента под две платформы (iOS и Андроид), который бы и делал вышеописанные действия.
В принципе, так и делают некоторые крупные VOIP провайдеры (например МТТ) или производители софта для VOIP серверов — у них есть свои SIP клиенты для мобильных устройств, которые работают в пуш режиме.
Проблема в том что такие клиенты могут работать только с этим провайдером или с одной определенной АТС, соответственно если вы пользуетесь своей офисной IP АТС и одновременно другими провайдерами IP телефонии, то такое решение вам не подойдет.
Второй способ — купить универсального SIP клиента, который умеет делать пуш.
Почему такие решения стоят денег?
Потому что SIP клиент с пушем — это не просто написать отдельное приложение и выложить его в стор.
Для этого необходимо создать и поддерживать отдельный сервер, который и будет слать регулярные регистрационные пакеты на вашу IP АТС, а уже сам сервер и будет работать непосредственно с приложением — будить его при вызове.
Т.е. для создания нужна целая инфраструктура и именно поэтому такие универсальные решения платные.
Но как быть с вышеупомянутыми проблемами с шифрованием и блокировкой SIP?
Есть универсальное решение — M1 Messenger, который в том числе может работать в качестве SIP клиента с пуш режимом, и одновременно обеспечивает шифрование на стороне клиента и защиту от блокировок.
SIP трафик «заворачивается» в шифрованный трафик мессенджера (TLS) и уже не распознается DPI провайдеров как VOIP.
Все это работает на абсолютно любом SIP сервере — будь то офисный Астериск или какой-либо другой провайдер с виртуальными номерами — везде на стороне клиента будет зашифрованный трафик и пуш режим.
Итак, скачиваем мессенджер для Андроид или для iOS, регистрируемся (обратите внимание что для регистрации НЕ требуется номер телефона).
В общем меню находим вкладку Подключения SIP:
Добавляем свой существующий SIP-аккаунт.
Name — это имя вашего провайдера (в нашем примере это будет Zadarma)
User — здесь надо указать ваш SIP логин
Domain — адрес вашего VOIP провайдера.
Если провайдер или ваша IP АТС использует свой порт, то можно
указать его через двоеточие, например:sip.voipprovider.com:5060
Auth — ваш SIP логин (тот же что и в разделе User)
Password — ваш пароль к SIP аккаунту
В мессенджер можно добавить до 8 таких учетных записей. При исходящем наборе номера будет предложен выбор через какого провайдера делать звонок.
Можно завести в мессенджер несколько номеров — как офисных, так и других городов и стран и быть всегда доступным для входящих звонков, не опасаясь большого разряда батареи смартфона.
Так как мессенджер поддерживает пуш, то приложение в режиме ожидания спит и не расходует батарейку смартфона.
Таким образом, можно быть всегда на связи для входящих звонков по SIP — с DID виртуального или офисного номера например (сейчас SIP из-за проблем с питанием как правило используют только для исходящих звонков).
Надеемся что новые возможности M1 Messenger расширят сферу применения такого удобного и популярного протокола коммуникаций, как SIP.
Источник