# Приложения диалпланов

**Приложения диалпланов** - это программируемые голосовые приложения на PHP и Asterisk Dialplan.\
MikoPBX поставляется с несколькими предварительно сконфигурированными приложениями. С некоторыми базовыми знаниями планов набора Asterisk можно легко создавать дополнительные приложения. Как и учетная запись телефона, приложения могут иметь внутренний номер, присвоенный в настройках.

Ниже вы увидите описание базовых приложений, включенных в MikoPBX:

<figure><img src="/files/5mQIpQgW9ZhpUkckn0VL" alt=""><figcaption><p>Встроенные приложения диалпланов</p></figcaption></figure>

| Номер приложения | Описание приложения                                                                                                                                                                                                      |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 000063           | Приложение считывает внутренний номер сотрудника, используемое для вызова приложения, и озвучивает его сотруднику, т.е. сотруднику озвучивается его внутренний номер на АТС                                              |
| 000064           | **0000MILLI** - Генерирует постоянный звуковой сигнал частотой 1000 Гц. Используется для проверки качества соединения.                                                                                                   |
| 10003246         | Приложение **Echo** посылает полученные аудиосигналы обратно пользователю, чтобы можно было определить длительность задержки. В общем, Вы слышите, что Вы говорите. Приложение в основном используется для тестирования. |

## Создание приложений <a href="#sozdanie_prilozhenij" id="sozdanie_prilozhenij"></a>

Приложения MikoPBX создаются из нескольких планов набора Asterisk приложений. В системе есть много примеров готовых к выполнению приложений. Для добавления нового приложения MikoPBX нажмите на "**Добавить новое**" в меню приложений.

<figure><img src="/files/ibB4fX1zBXcKlo6fMXBD" alt=""><figcaption><p>Элемент для создания нового приложения диалплана</p></figcaption></figure>

Всего в несколько шагов Вы сможете создать свои собственные приложения. Во-первых, определите **Название** и **Номер вызова** для приложения, при необходимости заполните поле **Комментарий**.\
Возможный тип кода приложения:

* **PHP-AGI скрипт** - AGI - это встроенный в Asterisk метод выполнения внешних скриптов (по аналогии с CGI для http серверов), который может расширить функциональность asterisk при помощи других языков программирования, в частности PHP. AGI скрипты могут управлять вызовом в плане набора, вызываются из файла: extensions.conf
* **Диалплан Asterisk** - конфигурация плана набора содержится в файле конфигурации Asterisk - **extensions.conf**. Это один из самых важных конфигурационных файлов. В нем определяется обработка и маршрутизация входящих и исходящих вызовов. Этот файл управляет поведением всех соединений проходящих через Вашу АТС.

<figure><img src="/files/3i0AYd6n8JuN4qYrLSuM" alt=""><figcaption><p>Раздел конфигурации нового приложения диалплана</p></figcaption></figure>

Внесем ясность: мы будем называть MikoPBX приложения - приложениями, планы набора Asterisk -функциями. Например, Answer(), NoOP(), Set() and Wait() - это функции. Эти отдельные целевые функции Asterisk, которые затем объединяются в MikoPBX для создания более мощных MikoPBX приложений.\
\
Опишите логические операции в текстовом поле **Программный код**. Обратите внимание, что в одной строке одновременно допускается только одна команда, например:

<figure><img src="/files/Fx6Bz4tnx9iSKkcElutA" alt=""><figcaption><p>Вкладка "<strong>Программный код</strong>"</p></figcaption></figure>

На рисунке пример простейшего приложения для номера 000063. После набора номера, вы услышите, как робот озвучивает Ваш внутренний номер.

{% hint style="danger" %}
MikoPBX будет проверять используемые команды. Не исключено, что неправильно запрограммированные операции могут повлиять на работоспособность вашей телефонной системы.
{% endhint %}

Описание Asterisk функций, которые Вы можете использовать в своих приложениях:

| Наименование команды | Описание                                                                                                                                                                                                    |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| answer               | Перевести вызов в отвеченное состояние.                                                                                                                                                                     |
| channel status       | Возвращает статус подключенного канала.                                                                                                                                                                     |
| control stream file  | Отправка в канал заданного звукового файла, с возможностью управления его проигрывания (пауза/перемотка/возобновление проигрывания) с помощью получаемых от абонента DTMF цифр, если заданы. (Asterisk 1.2) |
| database del         | Удаление ключа/значения из базы данных.                                                                                                                                                                     |
| database deltree     | Удаление дерева ключей/значений из базы данных.                                                                                                                                                             |
| database get         | Получить значение из базы данных.                                                                                                                                                                           |
| database put         | Добавление/изменение значения в базе данных.                                                                                                                                                                |
| exec                 | Выполнение заданной Команды. (Команды - это функции, которые Вы используете при описании плана набора в файле extensions.conf ).                                                                            |
| get data             | Получить данные из канала.                                                                                                                                                                                  |
| get option           | Ведет себя аналогично команде «STREAM FILE», но используется с заданным значением для таймаута. (Asterisk 1.2)                                                                                              |
| get variable         | Получить значение переменной канала.                                                                                                                                                                        |
| hangup               | Разорвать соединение (Hangup) на текущем канале.                                                                                                                                                            |
| noop                 | Пустая команда. Ничего не делает.                                                                                                                                                                           |
| receive char         | Принимает один символ из канала, если он поддерживает эту возможность.                                                                                                                                      |
| receive text         | Принимает текстовую строку из канала, если он поддерживает эту возможность.                                                                                                                                 |
| record file          | Производит запись в заданный файл.                                                                                                                                                                          |
| say alpha            | Проговаривает заданную строку символов. (Asterisk 1.2)                                                                                                                                                      |
| say date             | Проговаривает дату. (Asterisk 1.2)                                                                                                                                                                          |
| say datetime         | Проговаривает дату и время, согласно заданному формату. (Asterisk 1.2)                                                                                                                                      |
| say digits           | Проговаривает заданную строку цифр.                                                                                                                                                                         |
| say number           | Проговаривает заданный номер.                                                                                                                                                                               |
| say phonetic         | Проговаривает заданную строку символов.                                                                                                                                                                     |
| say time             | Проговаривает время.                                                                                                                                                                                        |
| send image           | Отправляет изображение в канал, если он поддерживает эту возможность.                                                                                                                                       |
| send text            | Отправляет текст в канал, если он поддерживает эту возможность.                                                                                                                                             |
| set autohangup       | Автоматическое завершение соединение (Autohangup) на канале в заданное время.                                                                                                                               |
| set callerid         | Установка callerid для текущего канала.                                                                                                                                                                     |
| set context          | Установка контекста для текущего канала.                                                                                                                                                                    |
| set extension        | Изменение екстеншена для текущего канала.                                                                                                                                                                   |
| set music            | Включение/Выключение музыки ожидания (Music on hold), например: «SET MUSIC ON default».                                                                                                                     |
| set priority         | Установка значения приоритета для следующей выполняемой команды для канала.                                                                                                                                 |
| set variable         | Установка переменной канала.                                                                                                                                                                                |
| stream file          | Отправка звукового файла в канал.                                                                                                                                                                           |
| tdd mode             | Установка режима TDD для канала, который может его поддерживать, для включения возможности взаимодействия с TDD.                                                                                            |
| verbose              | Запись сообщения в verbose log сервера asterisk.                                                                                                                                                            |
| wait for digit       | Ожидание нажатия DTMF кнопки                                                                                                                                                                                |

Нажмите **Сохранить** для завершения настройки.


---

# 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/manual/modules/dialplan-applications.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.
