Яндекс.Метрика

RealTime в Asterisk: архитектура и конфигурация

RealTime в Asterisk: архитектура и конфигурация с 5 октября по 9 октября

Количество
свободных мест

8 Записаться

Курсы по Mikrotik MTCNA

Курсы по Mikrotik MTCNA с 2 марта по 6 марта

Количество
свободных мест

4 Записаться

Курс по Zabbix

Zabbix: мониторинг Asterisk и VoIP с 2 марта по 6 марта

Количество
свободных мест

8 Записаться
Разработка приложения телефона на React Native
23
Доклад
Руслан Полухин
Разработка приложения телефона на React Native

Разработка приложения телефона на React Native

В дополнение к разработке серверной части АТС всё чаще возникает задача создания удобного SIP-клиента для мобильных устройств. Такой клиент должен быть кроссплатформенным, энергоэффективным, корректно работать в мобильных сетях и органично интегрироваться с архитектурой АТС. В этом докладе рассматривается практический подход к разработке мобильного SIP-телефона и ключевые технические решения, которые позволяют реализовать его на базе современных фреймворков.

Выбор фреймворка для мобильного приложения

Для разработки мобильного SIP-клиента целесообразно использовать React Native — кроссплатформенный фреймворк, позволяющий создавать приложения для iOS и Android на единой кодовой базе. Он основан на языке JavaScript, который широко распространён среди разработчиков и хорошо подходит для сетевого взаимодействия.

Основные преимущества подхода:

  • единая кодовая база для iOS и Android;
  • высокая скорость разработки и сборки;
  • использование нативных UI-компонентов платформ;
  • удобная работа с сетевыми запросами и REST API.

React Native позволяет сосредоточиться на логике приложения и пользовательском интерфейсе, минимизируя платформозависимый код.

SIP-стек и интеграция с React Native

Для реализации SIP-функциональности используется библиотека PJSIP, хорошо известная как в серверных, так и в клиентских решениях. Она написана на C++, оптимизирована под различные архитектуры и стабильно работает в мобильных сетях, включая NAT и firewall-сценарии.

PJSIP обладает следующими характеристиками: компактность, высокая производительность и готовые нативные модули для Android и iOS. Для интеграции с React Native применяется готовый модуль, который подключается через NPM и предоставляет простой API для инициализации SIP-аккаунта, обработки событий и выполнения вызовов.

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

Уведомления, фоновые ограничения и push-механизм

Современные мобильные ОС существенно ограничивают работу приложений в фоновом режиме. На iOS постоянное поддержание SIP-сессии невозможно, а на Android — крайне не рекомендуется из-за энергопотребления.

Поэтому используется push-ориентированная модель:

  • приложение регистрируется в push-сервисах Apple или Google;
  • при входящем вызове АТС отправляет push-уведомление;
  • системные фреймворки CallKit (iOS) и Connection Service (Android) отображают нативный интерфейс вызова;
  • SIP-сессия инициируется только после ответа пользователя.

Такой подход позволяет существенно снизить потребление батареи и обеспечить привычный пользовательский интерфейс входящего звонка.

Взаимодействие с АТС и управление разрешениями

Для обмена данными с АТС используется REST API по защищённому соединению (SSL). Первичная авторизация пользователя, получение журналов вызовов, адресной книги и статусов выполняются без SIP-регистрации. SIP-данные передаются только в момент совершения звонка.

При разработке мобильного клиента необходимо корректно работать с разрешениями операционных систем:

  • доступ к микрофону;
  • push-уведомления;
  • адресная книга и журнал вызовов;
  • отображение поверх других приложений.

Эти разрешения настраиваются как в коде React Native, так и на уровне нативных конфигураций Android и iOS, что является особенностью кроссплатформенного подхода.

Заключение

Разработка мобильного SIP-клиента на базе React Native и PJSIP позволяет создать кроссплатформенное, энергоэффективное и гибко интегрируемое решение для АТС. Использование push-модели, REST-взаимодействия и нативных механизмов обработки вызовов обеспечивает стабильную работу в мобильных сетях и хороший пользовательский опыт. Такой подход особенно хорошо подходит для корпоративных приложений, где важны централизованная авторизация, интеграция с бизнес-логикой и контроль над функциональностью клиента.

 

Ежегодная конференция по Asterisk 2025!

Билеты уже в продаже!

Остались вопросы?

Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

Наши
клиенты

Посмотреть все