1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-telephony_call_manager

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_zh.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 03:16 d94322c

Управление звонками

Обзор

Модуль управления звонками отвечает за управление звонками трёх типов: CS (Circuit Switch, схема циркулярного соединения), IMS (IP Multimedia Subsystem, система IP-мультимедиа) и OTT (over the top, решения OTT). Этот модуль занимается запросом аудио- и видеоресурсов для звонков и решением конфликтов при многоканальном звонке. Управление звонками состоит из шести основных модулей: взаимодействия с пользовательским интерфейсом, управления службами, системы управления звонками, управления аудио- и видеофоном и управления Bluetooth-соединениями. Краткое описание каждого модуля следующее:

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

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

  3. Модуль управления аудиоресурсами: отвечает за запрос и освобождение аудиоресурсов во время звонков, использует подсистему мультимедиа и требует использование интерфейсов подсистемы мультимедиа для выполнения операций с аудио.

  4. Модуль управления видеоресурсами: отвечает за запрос и освобождение видеоресурсов во время звонков, использует подсистему мультимедиа и требует использование интерфейсов подсистемы мультимедиа для выполнения операций с видео.

  5. Модуль управления Bluetooth-соединениями: отвечает за запрос и освобождение Bluetooth-ресурсов во время звонков и обработку действий, инициированных устройствами Bluetooth, таких как принятие и завершение вызова.

Основная структура и процесс представлены на следующей диаграмме:

Рисунок 1 Архитектурная схема модуля управления звонками

Архитектурная схема модуля управления звонками## Содержание

/base/telephony/call_manager
├─ figures                                 # Файлы README
├─ frameworks                              # Каталог слоя фреймворков
│  ├─ js                                   # Код, связанный с JavaScript
│  └─ native                               # Код, связанный с нативным модулем
├─ interfaces                              # Каталог интерфейсов
│  ├─ innerkits                            # Внутренние интерфейсы между модулями
│  └─ kits                                 # Интерфейсы, предоставляемые приложениям (например, JS интерфейсы)
├─ sa_profile                              # Профиль запуска
├─ services                                # Внутренний код сервисов
│  ├─ audio                                # Код управления аудио
│  ├─ bluetooth                            # Код Bluetooth для голосовых вызовов
│  ├─ call                                 # Код услуг связи
│  ├─ call_manager_service                 # Код управления службой менеджера процессов
│  ├─ call_report                          # Код отчетности состояния вызова
│  ├─ call_setting                         # Код настроек услуг связи
│  ├─ telephony_interaction                # Код взаимодействия с основной службой телефонии
│  └─ video                                # Код управления видео
├─ test                                    # Код тестирования
│  ├─ fuzztest                             # Код случайного тестирования
│  ├─ mock                                 # Код имитационного тестирования
│  └─ unittest                             # Код юнит-тестирования
└─ utils                                   # Каталог общих утилит

Ограничения - Разработанный язык: JavaScript.

  • Со стороны программного обеспечения требуется взаимодействие с следующими подсистемами и службами: подсистема безопасности, мультимедийная подсистема, базовая система связи подсистемы SoftBus (модуль Bluetooth), основная услуга Telephony (core_service), услуга голосовой связи (cellular_call).
  • Со стороны аппаратного обеспечения требуется поддержка устройством следующих компонентов: динамик или гарнитура, микрофон.

Описание интерфейсов

Таблица 1 Интерфейсы, предоставленные внешним пользователям для управления звонками

Интерфейсные данные

Описание интерфейса

Необходимые разрешения

function dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean>): void;

Интерфейс для совершения звонка. Вызов этого интерфейса позволяет выполнить операцию вызова.

ohos.permission.PLACE_CALL

function isImsSwitchEnabledSync(slotId: number): boolean;

Получает информацию о включении услуги VoLTE высокого качества голосовой связи (параметр slotId представляет ID SIM-карты, 0 — первая карта, 1 — вторая карта).

ohos.permission.PLACE_CALL

**Таблица 2** Описание параметров dial-интерфейса | **Параметр** | **Описание** | |----------------|---------------| | phoneNumber: string | Номер телефона | | options: DialOptions | Расширенные параметры (см. следующую таблицу) | | callback: AsyncCallback<bool> | Асинхронный результат выполнения, true — успешное выполнение, false — неудачное выполнение |**Таблица 3** Описание параметров options: DialOptions

Параметр

Тип

Описание

Обязательность

Значение по умолчанию

extras

boolean

false — аудио, true — видео

Нет

false

Полное описание JS API и примеры кода доступны по ссылке: Звонок.## Инструкция по использованию

Процесс вызова метода звонка и примеры кода

  1. Создайте параметры phoneNumber и options.

  2. Вызовите метод dial с помощью callback или Promise.

  3. Этот метод является асинхронным, поэтому результат выполнения будет возвращён через callback.

import call from "@ohos.telephony.call";

let phoneNumber = "12312312312";

// Вызов метода способом callback
call.dial(phoneNumber, { extras: false }, (err, value) => {
  if (err) {
    // При ошибочном вызове метода err не пустой
    console.error(`Не удалось совершить звонок из-за ошибки: ${err.message}`);
    return;
  }
  // Успешный вызов метода, err пустой
  console.log(`Успешный звонок: ${value}`);
});

// Вызов метода способом Promise
let promise = call.dial(phoneNumber, { extras: false });
promise.then((value) => {
  // Успешный вызов метода, здесь можно реализовать успешный сценарий
  console.log(`Успешный звонок: ${value}`);
}).catch((err) => {
  // Ошибочный вызов метода, здесь можно реализовать ошибочный сценарий
  console.error(`Не удалось совершить звонок из-за ошибки: ${err.message}`);
});

Получение информации о состоянии службы VoLTE высокого качества

  1. Можно использовать isImsSwitchEnabledSync для получения информации о состоянии службы VoLTE высокого качества.

  2. Этот метод является синхронным, поэтому результат выполнения будет возвращён через isImsSwitchEnabledSync.

import call from "@ohos.telephony.call";
``````markdown
## Связанные репозитории <a name="section227mcpsimp"></a>

[Подсистема телефонной связи](https://gitee.com/openharmony/docs/blob/master/ru-cn/readme/подсистема_телефонной_связи.md)

**telephony_call_manager**

[telephony_core_service](https://gitee.com/openharmony/telephony_core_service/blob/master/README_ru.md)

[telephony_cellular_call](https://gitee.com/openharmony/telephony_cellular_call/blob/master/README_zh.md)

[telephony_state_registry](https://gitee.com/openharmony/telephony_state_registry/blob/master/README_zh.md)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/openharmony-telephony_call_manager.git
git@api.gitlife.ru:oschina-mirror/openharmony-telephony_call_manager.git
oschina-mirror
openharmony-telephony_call_manager
openharmony-telephony_call_manager
master