Модуль управления звонками отвечает за управление звонками трёх типов: CS (Circuit Switch, схема циркулярного соединения), IMS (IP Multimedia Subsystem, система IP-мультимедиа) и OTT (over the top, решения OTT). Этот модуль занимается запросом аудио- и видеоресурсов для звонков и решением конфликтов при многоканальном звонке. Управление звонками состоит из шести основных модулей: взаимодействия с пользовательским интерфейсом, управления службами, системы управления звонками, управления аудио- и видеофоном и управления Bluetooth-соединениями. Краткое описание каждого модуля следующее:
Модуль взаимодействия с пользовательским интерфейсом: отвечает за взаимодействие с пользовательским интерфейсом звонков, такими как вызов номера через пользовательский интерфейс, отправка состояния входящего вызова и других.
Модуль управления службами: отвечает за запуск и инициализацию службы управления звонками системы.3. Модуль системы управления звонками: отвечает за обработку низших операций звонков (например, набора номера, принятия и завершения вызова) и высшего состояния (состояние входящих вызовов, состояние ожидания вызова и т.д.), а также решение конфликтов во время звонков.
Модуль управления аудиоресурсами: отвечает за запрос и освобождение аудиоресурсов во время звонков, использует подсистему мультимедиа и требует использование интерфейсов подсистемы мультимедиа для выполнения операций с аудио.
Модуль управления видеоресурсами: отвечает за запрос и освобождение видеоресурсов во время звонков, использует подсистему мультимедиа и требует использование интерфейсов подсистемы мультимедиа для выполнения операций с видео.
Модуль управления 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 # Каталог общих утилит
Таблица 1 Интерфейсы, предоставленные внешним пользователям для управления звонками
| **Параметр** | **Описание** | |----------------|---------------| | phoneNumber: string | Номер телефона | | options: DialOptions | Расширенные параметры (см. следующую таблицу) | | callback: AsyncCallback<bool> | Асинхронный результат выполнения, true — успешное выполнение, false — неудачное выполнение |**Таблица 3** Описание параметров options: DialOptionsПолное описание JS API и примеры кода доступны по ссылке: Звонок.## Инструкция по использованию
Создайте параметры phoneNumber и options.
Вызовите метод dial с помощью callback или Promise.
Этот метод является асинхронным, поэтому результат выполнения будет возвращён через 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}`);
});
Можно использовать isImsSwitchEnabledSync для получения информации о состоянии службы VoLTE высокого качества.
Этот метод является синхронным, поэтому результат выполнения будет возвращён через 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 )