Internet

Сегодня мы поговорим о SIP телефонах. А именно, об опыте использования SIP телефонов в локальной сети офиса, которые подключаются к SIP серверу через публичную сеть Интернет. Если вы используете SIP-телефоны вместе с нашим облачным сервисом, то данная заметка будет полезна и поможет избежать основных проблем при работе IP телефонии за NAT.

Что такое NAT?

Начнем с того, а что же такое этот NAT?

Не буду копировать из wiki умные вещи, попробую объяснить проще — NAT (Network Address Translation) — это механизм, который позволяет маршрутизатору (наш сервер, роутер, модем – все, что используем для выхода в Интернет) определять какие сервисы находятся за роутером и должны быть доступны из интернета, чтобы пользователи оттуда могли этими сервисами пользоваться. Так как, в большинстве случаев, у нас всего 1 внешний (белый, публичный – как кому больше нравится) IP адрес, а устройств в сети много, то мы используем локальные (серые) IP адреса. Они не доступны из Интернета, а NAT помогает нам опубликовать в мир какой-то порт из локальной сети.

Надеюсь, что здесь пока все понятно…

Voice over Internet Protocol (VoIP) — сегодня это один из самых популярных стандартов для голосовых и видеозвонков в мире Интернет. В этой заметке я попробую на простых примерах рассказать, как работают голосовые и видеозвонок.

Почти каждый день мы с вами используем голосовые либо видеозвонка в различных приложениях, таких как Skype, Viber, Telegram, WhatsApp, Facebook Messenger или Webitel 🙂 В общем, передача аудио либо видео зависит от того, как приложение передаст медиапоток между двумя клиентами. И в большинстве случаем для потоковой передачи мультимедиа мы используем WebRTC.

WebRTC — это стандарт c открытым исходным кодом, который предоставляет браузеры и мобильные приложения возможности взаимодействовать в реальном времени (RTC) через простые API. Все компоненты WebRTC были оптимизированы именно для работы мультимедиа в различных сетях интернет.

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

  • Сигнальный протокол
  • STUN
  • TURN

Что такое сигнализация?


Найгірший сервіс, з яким я зіткнувся — УарНет !
Уявіть ситуацію, коли вас без попередження провайдер відключає від мережі, оскільки не зміг домовитися з новим власником приміщення, де знаходиться його розподільча коробка, а технічна підтримка на твої запитання — просто кидає трубку.

Більше того, нам запропонували принести до них в офіс медіаконверот, щоб перевірити, чи він часом не збоїть, і наше питання буде розглянуто протягом 3-х робочих днів. Хоча, мені було достатньо підійти до будинку, де знаходилася та клята коробка і за кілька хвилин дізнатися, що представники УарНет самі усе відключили і звільнили приміщення, як цього і вимагав новий власник.

У мене виникють закономірні запитання: навіщо перевіряти наш медіаконверот? на що чекати 3 дні, якщо і так зрозуміло в чім проблема? Підрозділи провайдера №1 в Західній Україні не координують свою роботу? Так давайте ми Вам CRM впровадимо! 🙂

PS: ми не прив’язані до приміщення, усі сервіси в хмарі, працівники можуть виконувати свою роботу з дому. Проте, таке ставлення до клієнтів обурює, коли технічна підтримка провайдера кидає трубку і нічого не хоче пояснювати.

PPS: Пострадали лише сайти УГКЦ (як і в минулорічній ситуації). Довелось допомогти і терміново винести усе в Європейський ДатаЦентр.

Несколько дней назад возникла необходимость объединить пользователей bpm’online клиента с его офисной АТС Avaya IP Office 500.

Схема объединения

Для начала я разделил внутренние номера так, что пользователи bpm’online будут иметь номера на 2хх, а телефоны за Avaya — 1хх. Поскольку webitel находится в облаке, а IPO в локальной сети клиента, необходимо наличие статического IP адреса на маршрутизаторе, а так же, сделать проброс SIP и RTP портов. Здесь все зависит от конкретной модели интернет роутера.

Наша задача — разрешить пользователям звонить между собой по внутренним номерам, а пользователям bpm’online — выходить в мир через городские линий IPO. Рассмотрим настройки Avaya и Webitel в отдельности.

Не так давно мы перенесли наш облачный сервис на площадку DigitalOcean, что позволило не только увеличить производительность, но и добавить новые функции, такие как поддержка IPv6. Вся прелесть в том, что в офисе мы тоже используем IPv6. Так почему, бы не настроить телефоны напрямую, минуя NAT? Так и сделаем!

С Yalink T22 проблем небыло — включил поддержку IPv6 и все просто заработало. А вот на SIP-T20 не завелось… Как я выяснил, по какой-то причине (глюк в прошивке), телефон не подхватывал шлюз:

Yealink SIP-T20

Пришлось прописать вручную. И сразу телефон зарегистрировался на сервере:

SIP IPv6

Что же, Webitel в on-demand теперь доступен как по IPv4, так и по IPv6 — пользуйтесь!

Бесплатные звонки — звучит как рекламный лозунг! Нет, это не реклама (хотя…).

Рады представить сообществу Terrasoft новый продукт Webitel Community, который позволяет бесплатно совершать видео и аудио звонки между пользователями bpmonline 7 с использованием технологии WebRTC. Каждой компании, которая оставит заявку на сайте, будут предоставлены 5 лицензий Webitel Community.

Что предлагает Webitel Community?

  • Бесплатные звонки между пользователями
  • Видеозвонки
  • Определение статусов сотрудников
  • Перевод звонка и удержание

Если Вас у Вас есть пожелания — пишите в комментариях.

PS: небольшое видео, как это все работает: https://vimeo.com/97131875

PPS: если Вы установите на свой bpmonline 7 пакет Webitel Community и в другой компании сделано то же самое, то Вы сможете позвонить им тоже бесплатно. Вот оно — Community!

Для IP-телефонии критичны задержки пакетов в сети, хотя технология обладает некоей толерантностью (устойчивостью) к потерям отдельных пакетов. Так, потеря до 5 % пакетов не приводит к ухудшению разборчивости речи. Максимальное отклонение между последовательной передачей пакетов в сети Интернет не должны превышать 50 мс. Максимальный процент потерь при передачи пакетов в сети Интернет – не более 3%.

Причины задержек в передаче голосовых данных по сети IP в большой степени связаны с особенностями транспорта пакетов. Протокол TCP обеспечивает контроль доставки пакетов, однако достаточно медленный и потому не используется для передачи голоса. UDP быстро отправляет пакеты, однако восстановление потерянных данных не гарантируется, что приводит к потерянным частям разговора при восстановлении (обратном преобразовании) звука. Немалые проблемы приносит джиттер (отклонения в периоде поступления-приёмки пакетов), появляющийся при передаче через большое число узлов в нагруженной IP-сети. Недостаточно высокая пропускная способность сети (например при одновременной нагрузке несколькими пользователями), серьёзно влияет не только на задержки (то есть рост джиттера), но и приводит к большим потерям пакетов.

Между конечными точками пользователей и серверами IP-телефонии, а также между серверами IP-телефонии и оборудованием оператора связи (поставщика VoIP) программных или аппаратных устройств, канал должен отвечать описанным выше требованиям.

Проверить пропускную способность каналов можно с помощью простой утилиты iperf-2.0.5. Предположим, что мы хотим гарантировать 10 одновременных разговоров с использованием G.711 кодека. Рекомендуемое требование к каналу составляет 1 Мбит/с.

На сервере запускаем iperf с параметрами (ожидать на стандартном порте 5001 входящие UDP запросы):
iperf -u -s

На клиенте запускаем тестирование UDP c длиной 160 байт со скоростью 1 Мбит/с в течение 180 секунд на сервер 10.10.10.119:
iperf -u -c 10.10.10.119 -l 160 -b 1M -t 180

Получаем результат:

Канал пригоден для 10 одновременных соединений.

Softswitch — Выпуск #04 от 15.09.2012

После перерыва в 3 недели я записал 4 выпуск!
Из новостей. Обновились: YATE, 3CX, Asterisk. Мысли о безопасности программных IP АТС.
Практика отправки SMS, FAX и как пропустить 30 звонков через канал в 0,5 Mbps
Встречаем новый кодек Opus. Когда уже наступит эра HD телефонии???
У нас есть первый победитель!
Жду Ваших вопросов!

Я искал модуль, который бы мог воспроизводить и записывать MP3 в FreeSWITCH и нашел. Но, как оказалось Mod_shout не только это умеет, а еще и воспроизводить потоковое вещание (Интернет-радио), которое можно подключить вместо Music On Hold. Вот простой пример диалплана:

<extension name="RadioRocks">
     <condition field="destination_number" expression="^0000$">
       <action application="answer"/>
       <action application="playback" data="shout://online-radioroks.tavrmedia.ua:7000/RadioROKS"/>
       <action application="hangup"/>
     </condition>
   </extension>

Послушать радио можно через эту кнопку »

Звонок с сайта«.

Буквально вчера мы наблюдали начало тестирования последнего обновления Oktell, где была добавлена поддержка работы SIP-сервера за NAT. Решил и я проверить, как оно все работает 🙂

Для чистоты эксперимента, я нахожусь дома, где все устройства работают за WiFi-роутером. И для начало, что бы не играться с пробрасыванием портов, я включу DMZ на своем роутере для ноутбука с установленным Oktell:

DMZ
DMZ