Skip to content

[WIP] Add mobile app for Push-to-Talk communication#1

Merged
SolverNA merged 1 commit intomainfrom
copilot/develop-ptt-radio-app
Mar 17, 2026
Merged

[WIP] Add mobile app for Push-to-Talk communication#1
SolverNA merged 1 commit intomainfrom
copilot/develop-ptt-radio-app

Conversation

Copy link
Copy Markdown

Copilot AI commented Mar 17, 2026

  • Explored repository (only README.md exists)
  • Create project structure and Package.swift
  • Implement TransportManager (Network.framework, UDP/Multicast)
  • Implement RNSNode (Reticulum protocol Swift layer)
  • Implement PTTController (PushToTalk framework wrapper)
  • Implement AudioEngine (AVAudioEngine + Opus codec bridge)
  • Implement LiveActivityManager + PTTActivityAttributes (ActivityKit/WidgetKit)
  • Implement SwiftUI app UI (ContentView, PTT button, channel list, settings)
  • Create Info.plist with required permissions
  • Create entitlements file (Multicast, PTT, Background modes, VoIP)
  • Create PTT Live Activity widget extension
  • Run code review and CodeQL scan
Original prompt

Разработка PTT-радиостанции на базе протокола Reticulum (iOS)

  1. Общее описание
    Создание мобильного приложения для защищенной голосовой связи в режиме Push-to-Talk (PTT). Приложение должно поддерживать работу как через глобальную сеть (IP), так и через локальные Mesh-сети (Wi-Fi/Bluetooth) без центральных серверов, сохраняя активность в фоновом режиме.
  2. Технологический стек
    Frontend & UI/UX
  • SwiftUI: Основной фреймворк интерфейса.
  • ActivityKit: Реализация виджетов Live Activities для управления рацией с экрана блокировки и через Dynamic Island.
    Core Frameworks (Системный уровень)
  • PushToTalk (PTT) Framework: Обеспечение фонового режима работы аудио-сессии и системного интерфейса передачи.
  • Network.framework: Высокоуровневая работа с UDP-сокетами и Multicast-группами для Mesh-взаимодействия.
  • PushKit (VoIP): Пробуждение приложения для приема вызова через интернет.
    Network & Mesh Layer
  • Reticulum-rs (Rust): Ядро протокола Reticulum, скомпилированное под iOS (через Mozilla UniFFI или Swift-Rust-Bridge).
  • Libp2p / Multipeer Connectivity: Вспомогательные уровни для обнаружения соседей в локальной сети.
    Audio & Crypto
  • Opus (C-library): Кодирование голоса (битрейт 8–24 kbps).
  • AVAudioEngine: Захват и воспроизведение звука, микширование.
  • Swift-Crypto: Дополнительный слой шифрования (ED25519, AES-GCM), если возможностей RNS недостаточно.
  1. Ключевые модули системы
    | Модуль | Технология | Функционал |
    |---|---|---|
    | Transport Manager | Network.framework | Управление интерфейсами (Wi-Fi, Bluetooth, Ethernet). |
    | RNS Node | Reticulum-rs | Маршрутизация пакетов, работа с "путями" (Paths) и именами. |
    | PTT Controller | PTChannelManager | Взаимодействие с ОС: запрос прав на микрофон в фоне, обработка системных кнопок. |
    | Audio Engine | AVAudioEngine + Opus | Обработка звука: эхоподавление, подавление шумов, сжатие. |
    | Live Activity | WidgetKit | Отображение активного канала, уровня сигнала и кнопки "PTT" в Dynamic Island. |
  2. Требования к разрешениям (Entitlements)
    Для работы проекта в Apple Developer Account должны быть активированы следующие пункты:
  • Multicast Networking: Для отправки/приема пакетов Reticulum в локальном Wi-Fi.
  • Background Modes: * Audio, AirPlay, and Picture in Picture
    • Voice over IP
    • Background fetch
  • PushToTalk Capability: Специфическое разрешение для использования PTT фреймворка.
  1. Жизненный цикл фонового процесса (Workflow)
  • Ожидание: Приложение находится в фоне. Reticulum-узел работает в режиме пониженного потребления.
  • Событие: Получен входящий пакет от Reticulum (через UDP) или VoIP Push.
  • Активация: Приложение вызывает PTChannelManager. Система активирует аудио-сессию.
  • Воспроизведение: Декодирование Opus-пакетов и вывод звука через динамик.
  • Индикация: Пользователь видит активную сессию в Dynamic Island и может нажать "Ответить", не разблокируя телефон.

📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.

@SolverNA SolverNA marked this pull request as ready for review March 17, 2026 00:46
@SolverNA SolverNA merged commit 446f7d2 into main Mar 17, 2026
1 check failed
Copilot AI requested a review from SolverNA March 17, 2026 00:47
Copilot stopped work on behalf of SolverNA due to an error March 17, 2026 00:47
@SolverNA SolverNA deleted the copilot/develop-ptt-radio-app branch March 17, 2026 00:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants