# Карта маршрутизации звонков

Модуль **Карта маршрутизации звонков** показывает входящую и исходящую маршрутизацию как интерактивную read-only диаграмму. Он собирает провайдеров, DID-маршруты, расписания, IVR-меню, очереди, конференции, приложения и внутренних абонентов из текущей конфигурации MikoPBX и отображает их в виде кликабельного графа.

<figure><img src="/files/iFGzk2IV4nl2KRb5d5tT" alt=""><figcaption><p>Общий вид карты маршрутизации звонков</p></figcaption></figure>

## Назначение

* Показывает полный путь звонка на одном экране, без переходов по нескольким страницам маршрутизации.
* Автоматически строит схему по настройкам MikoPBX. Отдельный редактор диаграмм и дополнительная база настроек не нужны.
* Открывает соответствующую страницу администрирования при клике по узлу графа: провайдер, маршрут, IVR-меню, очередь, сотрудник и другие поддерживаемые объекты.
* Работает в режиме просмотра. Модуль не изменяет dialplan Asterisk и не пишет в таблицы маршрутизации MikoPBX.
* Разделяет входящую и исходящую маршрутизацию на две вкладки.

## Установка

1. Откройте веб-интерфейс MikoPBX.
2. Перейдите в **Модули** → **Маркетплейс**.
3. Найдите **Карта маршрутизации звонков** и установите модуль.
4. Откройте **Модули** → **Установленные** и включите модуль.

Для ручной установки скачайте архив модуля со страницы релизов проекта и загрузите его через **Модули** → **Установленные** → **Загрузить модуль**.

## Использование

1. Откройте **Модули** → **Карта маршрутизации звонков**.
2. По умолчанию откроется вкладка **Входящие**. На ней видно, как внешние звонки проходят от провайдеров и DID-маршрутов до конечных точек.
3. Перетаскивайте холст для панорамирования, используйте колесо мыши для масштабирования и мини-карту для навигации по большим схемам.
4. Нажимайте **Обновить** после изменения маршрутизации в других разделах веб-интерфейса.
5. Кликните по узлу, чтобы открыть связанную страницу настроек MikoPBX.

{% hint style="info" %}
Диаграмма строится по конфигурации, доступной в веб-интерфейсе MikoPBX. Кастомные dialplan-файлы, переопределения `extensions_custom.conf`, хуки других модулей и контексты, создаваемые в runtime, не отображаются.
{% endhint %}

## Входящая маршрутизация

Вкладка **Входящие** помогает проверить, как обрабатываются внешние звонки. На схеме могут отображаться провайдеры, DID-маршруты, расписания, IVR-меню, очереди, сотрудники, конференции и приложения dialplan.

<figure><img src="/files/AlbZINuFaTxjVj45IQH0" alt=""><figcaption><p>Схема входящей маршрутизации</p></figcaption></figure>

Типовые задачи:

* Проверить, какие DID-номера связаны с какими точками назначения.
* Увидеть, как правила нерабочего времени влияют на маршрут.
* Проследить путь от провайдера до IVR-меню, очереди или сотрудника.
* Быстро открыть настройки маршрута, очереди или внутреннего номера из графа.

## Исходящая маршрутизация

Вкладка **Исходящие** показывает, через каких провайдеров уходят правила набора. Это удобно для проверки приоритета провайдеров, резервных маршрутов и шаблонов номеров.

<figure><img src="/files/VoXTkZdtu9pMzz9MvFRC" alt=""><figcaption><p>Схема исходящей маршрутизации</p></figcaption></figure>

## Типы узлов

Для разных объектов используются разные визуальные стили:

* Провайдер
* Маршрут / DID
* Расписание
* IVR-меню
* Очередь
* Сотрудник
* Конференция
* Приложение

Встроенная легенда показывает только те типы узлов, которые присутствуют на открытой диаграмме.

## REST API

Модуль предоставляет read-only REST API v3 по адресу `/pbxcore/api/v3/module-routing-map/`. Авторизация доступна с localhost или по Bearer-токену.

| Метод | Endpoint         | Описание                                                           |
| ----- | ---------------- | ------------------------------------------------------------------ |
| GET   | `graph:incoming` | Возвращает граф входящей маршрутизации в виде `{ nodes, edges }`.  |
| GET   | `graph:outgoing` | Возвращает граф исходящей маршрутизации в виде `{ nodes, edges }`. |

Пример запроса:

```bash
curl -H "Authorization: Bearer $TOKEN" \
  https://pbx.example.com/pbxcore/api/v3/module-routing-map/graph:incoming
```

Фрагмент ответа:

```json
{
  "nodes": [
    {
      "id": "provider-1",
      "type": "provider",
      "data": {
        "label": "SIP-Trunk",
        "href": "/admin-cabinet/providers/modify/1"
      }
    }
  ],
  "edges": [
    {
      "id": "e-provider-1-route-42",
      "source": "provider-1",
      "target": "route-42"
    }
  ]
}
```

## Требования и ограничения

* MikoPBX **2025.1.1+**.
* Современный браузер с поддержкой ES2017.
* Граф является снимком конфигурации, а не монитором активных звонков.
* Редактирование маршрутизации прямо из диаграммы намеренно не поддерживается.

{% hint style="info" %}
Исходный код модуля и трекер задач доступны на GitHub: [mikopbx/ModuleRoutingMap](https://github.com/mikopbx/ModuleRoutingMap).
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mikopbx.com/mikopbx/modules/miko/module-routing-map.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
