В предыдущей статье мы рассмотрели сотовые и транковые системы радиосвязи. Имея на руках открытый код и соответствующее оборудование любой пользователь может развернуть свою сеть с индивидуальными настройками - эта идея сделала популярными проекты с открытым кодом. В этой статье мы рассмотрим те проекты, которые получили наибольшее распространение.
    OpenBTS.org - это открытый проект c исходным кодом на GitHub, призванный провести революцию среди мобильных сетей путем замены устаревших телекоммуникационных протоколов и традиционно сложных запатентованных аппаратных систем использованием Интернет-протокола и программного обеспечения с гибкой архитектурой. Архитектура этой системы является открытой для инноваций, позволяя любому желающему разрабатывать новых приложения и сервисы на базе OpenBTS и значительно упрощает настройку и эксплуатацию сети мобильной связи.

    OpenBTS использует программное обеспечение GNURadio, чтобы создать GSM радиоинтерфейс для поддержки мобильных аппаратов, работающих в стандарте 2G GSM и использует протокол SIP коммутатора или АТС для подключения звонков. Сочетание глобального стандарта GSM с недорогим VoIP соединением формирует основу нового типа сотовой сети, которая может быть развернута и эксплуатироваться со значительно меньшими затратами, чем существующие технологии во многих приложениях. Примером такого использования является развертывание OpenBTS в сельской местности или частных сетей сотовой связи в отдаленных районах.

Рисунок 4 - Полномасштабная сеть OpenBTS
    В небольших средах все эти компоненты могут запускаться на сервере под управлением операционной системы Linux.
    Для разворачивания сети OpenBTS C2.8 нам бы потребовалось:
1. OpenBTS - код, содержащий большую часть протоколов GSM;
2. Приёмопередатчик - программное обеспечение радиомодема и управление аппаратным интерфейсом;
3. Asterisk - программный коммутатор;
4. Smqueue RFC-3428 - сервер для обмена текстовыми сообщениями;
5. Реестр Абонентов - база данных информации абонентов, которая заменяет базы данных Asterisk, SIP-реестра и HLR GSM;
6. Разблокированные телефонные трубки GSM + SIM-карты;
7. Антенна;
8. Источник питания постоянного тока: для питания базовой станции используется 12 В;
9. Коммутаторы Ethernet и кабели для сетевых соединений;
10. ПК с ОС Linux и Asterisk;
11. Консоль - подключается на комплект OpenBTS для изменения настроек по умолчанию.


Рисунок 5 - Компоненты OpenBTS

   Поскольку проект OpenBTS постоянно развивается, то его версии постоянно обновляются. Одним из таких обновлений является OpenBTS P2.8. Архитектура осталась прежней, а из нововведений можно отметить такие возможности, как:
  • Использование SQLite3 для хранения конфигурации, служебных данных и статистики подключений;
  • Новый реестр абонентов;
  • Поддержка RRLP;
  • Улучшения в обработке SMS, разработанные российской командой разработчиков.
OsmocomBB — это проект, целью которого является свободная реализация стека протоколов GSM. OsmocomBB предоставляет исходный код прошивок для совместимых телефонов, а также программное обеспечение для их взаимодействия с компьютером.

Сообщество Osmocom занимается разработкой сразу нескольких проектов свободной реализации, таких как:

  • OpenBSC — реализация стека протоколов и элементов стандартов GSM/3GPP, с помощью которой можно организовать свою сотовую сеть;
  • OsmocomDECT — свободная реализация стека протоколов стандарта DECT, на базе которого работает большинство стационарных беспроводных телефонов;
  • SIMTrace — оборудование и программное обеспечение для пассивного мониторинга трафика между SIM-картой и телефоном;
  • OsmoSDR — дешевый SDR-приемник, способный принимать сигналы GSM, TETRA, GMR-1 и аналогичные.

    Для разворачивания сети OsmocomBB нам бы потребовалось:
  1. Совместимый телефон на базе чипсета Calypso или MediaTek
  2. Замена фильтров и антенна (при необходимости использования телефон в качестве пассивного анализатора трафика GSM или при запуске небольшой базовуй станции на его основе)
  3. Кабель и преобразователь USB-TTL
    Связь телефона с компьютером осуществляется посредством последовательного порта и USB-TTL преобразователя (в совместимых телефонах Motorola для этих целей используется порт гарнитуры стандарта 2.5 mm jack).
  4. Компьютер под управлением Unix-подобной ОС

Рисунок 6 - Связь через консольный инструмент osmocon

    Оsmocon является консольным инструментом для взаимодействия микропрограммного обеспечения телефона с приложениями хост-компьютера. Он также используется для загрузки микропрограммы или начального загрузчика в телефон по последовательной линии. 
    При запуске программа osmocon блокирует последовательный порт и ожидает сообщений загрузчика, рассылая специальные beacon-сообщения. Встроенный загрузчик телефона при нажатии кнопки включения отправляет на последовательный порт запрос на загрузку микропрограммного обеспечения (ACK). Если ему никто не отвечает, он посылает сообщение "@ftmtoolerror". Далее загрузчик телефона либо соглашается грузить это обеспечение, либо сообщает об ошибке. Как только оно будет загружено в оперативную память, загрузчик снова уведомит нас об этом и подаст питание на плату.

    Применение:
  • Пассивный анализатор трафика GSM;
  • Запуск небольшой базовой станции;
  • Индикация уровня принимаемого сигнала;
  • Стресс-тестинг беспроводного оборудования (EMI);
  • SIM-Reader;
  • Запуск небольшой операционной системы NuttX;
  • Звонки и рассылка SMS.


    YateBTS - программная реализация сети GSM / GPRS радиодоступа на основе Yate, совместимая с 2.5G и базовыми сетями 4G , содержащихся YateUCN едином сервере базовой сети. YateBTS принимает сигнал GSM с сотового телефона или любой другого терминала и отправляет его через соединение VoIP в любую точку мира.
    Когда мы используем ячейку в сети YateBTS, сигнал GSM достигает антенн YateBTS. Затем сигнал проходит до уровней L1 и L2, где он обрабатывается и подается через socket-интерфейс Yate. Далее Yate принимает соединение с протоколом SIP (или другим необходимым) для связи с внешним сервером VoIP-провайдера.
    YateBTS является фундаментальным элементом в YateUCN ™, одноядерным решением как для LTE, так и для 2G / 2.5G сетей.

    YateBTS выполнен с возможностью работы в одном из двух режимов:
  • "Сеть в коробке" (NIB) режим - в этом режиме YateBTS действует как автономная GMS / GPRS сеть, подключающаяся к внешнему миру через VoIP и / или протоколы ISDN;
  • Режим сети радиодоступа (RAN) - в этом режиме YateBTS действует как элемент большой многоузловой GSM / GPRS сети. Основные сетевые функции обеспечиваются внешним сервером.

Рисунок 7 - Архитектура YateBTS
    YateBTS состоит из двух основных частей: 
  • Нижний слой, управляемый MBTS и приёмопередатчик, обрабатывающий GSM часть системы;   
  • Сетевой уровень, обрабатываемый Yate и состоящий из YBTS, Yate-модулей и других прикладных модулей Yate (NIB, Javascript, файлы для исходящих вызовов или SIP/IAX).
    MBTS соединяется с приёмопередатчиком через socket-интерфейс, таким же образом MBTS подключается и к сетевому уровню. Модуль Javascript может обрабатывать RTP и SIP.
    YateBTS сочетает в себе отказоустойчивую реализацию GSM и мощный двигатель телефонии Yate. Такая архитектура имеет множество преимуществ, такие как:
  • Значительное улучшение стабильности;
  • Прямая поддержка всех протоколов, уже поддерживаемых Yate (SS7 / MAP, SIP / IMS, MGCP, XMPP, H.323, IAX, ISDN и другие);
  • Yate предлагает свою собственную реализацию Javascript - легко создавать собственные приложения;
  • Существование различных модулей управления и мониторинга, а также возможность легко разрабатывать свои собственные.
    Для разворачивания сети YateBTS нам бы потребовалось:
  1. Одноплатный компьютер;
  2. Антенна;
  3. Приёмопередатчик;
  4. Карта памяти формата microsd;
  5. Аккумуляторные батареи с USB-разъёмом (для портативности системы при необходимости).
Список литературы: