Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия | |||
— | extensions.conf [2023/12/19 14:50] (текущий) – [Приложения] darkfire | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== extensions.conf ====== | ||
+ | ~~Title: Настройка Asterisk extensions.conf ~~ | ||
+ | {{htmlmetatags> | ||
+ | metatag-description=(extensions.conf — один из основных конфигурационных файлов Asterisk, настраивающий план набора (dialplan). Настройка Asterisk extensions.conf.) | ||
+ | }} | ||
+ | |||
+ | **extensions.conf - the Asterisk dial plan**. extensions.conf это один из основных конфигурационных файлов Asterisk, настраивающий план набора (dialplan), с помощью которого вы указываете Asterisk, как должны обрабатываться вызовы. | ||
+ | |||
+ | **extension** (добавочный номер) - обычно обозначает числовой идентификатор, | ||
+ | ===== exten ===== | ||
+ | Синтаксис добавочного номера – это слово exten, за которым следует | ||
+ | стрелка, | ||
+ | exten => | ||
+ | Далее указывается имя (или номер). В традиционных системах телефонной связи под добавочными номерами мы понимаем цифры, которые надо набрать, | ||
+ | Полный добавочный номер состоит из трех компонентов: | ||
+ | - Имени (или номера). | ||
+ | - Приоритета (каждый добавочный номер может включать множество шагов; порядковый номер шага называется его приоритетом). | ||
+ | - Приложения (или команды), | ||
+ | Эти три компонента разделяются запятыми: | ||
+ | exten => имя, | ||
+ | Вот пример того, как может выглядеть настоящий добавочный номер: | ||
+ | exten => 123, | ||
+ | В этом примере имя добавочного номера – 123, приоритет – 1, а приложение – Answer(). | ||
+ | * **Приоритеты**: | ||
+ | |||
+ | < | ||
+ | exten => 123, | ||
+ | exten => 123, | ||
+ | exten => 123, | ||
+ | exten => 123, | ||
+ | exten => 123, | ||
+ | </ | ||
+ | Начиная с версии 1.2 в Asterisk стало общепринятой практикой присваивать приоритетам текстовые метки. Это обеспечивает возможность ссылаться на приоритет не по номеру, | ||
+ | |||
+ | < | ||
+ | exten => 123, | ||
+ | <file bash> | ||
+ | [office] | ||
+ | exten => _1XX, | ||
+ | </ | ||
+ | |||
+ | Разберем эту строку. | ||
+ | * [office] — имя контекста, | ||
+ | * exten => — указатель начала шага. | ||
+ | * _1XX — маска. На маске остановимся чуть подробнее. С помощью нее сортируются все звонки, | ||
+ | |||
+ | Маска использует набор паттернов для сортировки звонков по caller-id: | ||
+ | <file bash> | ||
+ | X – любая цифра от 0-9 | ||
+ | N – любая цифра от 2-9 | ||
+ | [234-6] – цифры 2, 3, 4 и 6 | ||
+ | . – любые возможные символы | ||
+ | </ | ||
+ | |||
+ | Маска начинается с символа " | ||
+ | 1 — номер действия. | ||
+ | |||
+ | Dial — это приложение. В диалплане можно использовать более 200 различных приложений, | ||
+ | ===== Приложения ===== | ||
+ | * **Приложения**: | ||
+ | Для выполнения некоторых приложений, | ||
+ | * **Answer**() (Ответ) используется для ответа каналу, | ||
+ | * **Playback**() (Воспроизведение) воспроизводит в канале предварительно записанный звуковой файл. При использовании приложения Playback() ввод, поступающий от пользователя, | ||
+ | < | ||
+ | Этот пример обеспечит воспроизведение файла filename.gsm из папки / | ||
+ | < | ||
+ | * **Background**() (Фон) - как и Playback(), это приложение воспроизводит записанный звуковой файл. Однако, | ||
+ | * **WaitExten**() (Ожидание добавочного номера). | ||
+ | * **Hangup**() (Разъединить) выполняет именно то, что подразумевается под его именем: | ||
+ | * **Goto**() используется для перенаправления вызова в другую часть диалплана. Синтаксис Goto() требует передачи в него в качестве аргументов целевого контекста, | ||
+ | * **Dial**() (Звонить) Примеры: | ||
+ | * **MusicOnHold**() Проигрывает музыку ожидания (Music On Hold), неопределенно долго. [[http:// | ||
+ | * **SetMusicOnHold** | ||
+ | * **GotoIF**() - вычисляет выражение и отправляет абонента в соответствующее место назначения в зависимости от истинности или ложности выражения. | ||
+ | * **Ringing**() - отправка в канал запроса для индикации вызывающему пользователю " | ||
+ | exten => s,1,ringing | ||
+ | exten => s,2,wait(2) | ||
+ | exten => s,3,do something else | ||
+ | </ | ||
+ | * **NoOp** - это приложение ничего не делает, | ||
+ | <file bash> | ||
+ | exten => _56780[05]XXX, | ||
+ | </ | ||
+ | |||
+ | ===== Добавочные номера s,i,t ===== | ||
+ | * **s** - добавочный номер s: (!!!Для проверки нажать #!!!) Когда в контекст поступают вызовы, | ||
+ | * **i** - когда абонент нажимает не ту кнопку (не существующий добавочный номер), | ||
+ | * **t** - если абонент слишком долго не нажимает кнопку после запуска приложения WaitExten(), | ||
+ | < | ||
+ | exten => i, | ||
+ | exten => i, | ||
+ | exten => t, | ||
+ | exten => t, | ||
+ | </ | ||
+ | |||
+ | ====== extensions.conf ====== | ||
+ | |||
+ | <code bash> | ||
+ | [globals] | ||
+ | [general] | ||
+ | ; | ||
+ | ;Если задать этому параметру значение no, Asterisk после выполнения всех предусмотренных приоритетов будет ожидать ввода. | ||
+ | ; | ||
+ | ;в ожидании ввода номера, | ||
+ | ; | ||
+ | autofallthrough=yes | ||
+ | [default] | ||
+ | [incoming_calls] | ||
+ | [internal] | ||
+ | [phones] | ||
+ | include => internal | ||
+ | </ | ||
+ | |||
+ | ====== Настройка dialplan для выполнения тестовых вызовов Echo ====== | ||
+ | Давайте подробнее остановимся на тестовом dialplan – он позволит выполнять обратный вызов программного телефона, | ||
+ | |||
+ | После ввода текста в extensions.conf диалплан необходимо перезагрузить, | ||
+ | <code bash> | ||
+ | | ||
+ | | ||
+ | | ||
+ | exten => s, | ||
+ | exten => s, | ||
+ | exten => s,n,Wait(1) | ||
+ | exten => s, | ||
+ | exten => s, | ||
+ | | ||
+ | | ||
+ | exten => 500, | ||
+ | exten => 500, | ||
+ | exten => 500, | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | ====== Определение SIP-устройства в Asterisk ====== | ||
+ | < | ||
+ | # nano sip.conf | ||
+ | [general] | ||
+ | ;1251 - имя (уникальное) устройства и добавочный номер. Имя устройства может быть произвольным. mysipset, john | ||
+ | [1251] | ||
+ | ;Zoiper, Ekiga | ||
+ | type=friend | ||
+ | context=phones | ||
+ | host=dynamic | ||
+ | |||
+ | [1001] | ||
+ | ;Asotel | ||
+ | type=friend | ||
+ | context=phones | ||
+ | host=dynamic | ||
+ | </ | ||
+ | Поскольку мы хотим как направлять вызовы в программный телефон, | ||
+ | type (тип) был определен как friend (друг). Существует еще два параметра: | ||
+ | |||
+ | Опция host (хост) используется для определения местонахождения клиента в сети, когда Asterisk необходимо направить ему вызов. Это значение может быть задано статически, | ||
+ | < | ||
+ | CLI> sip reload | ||
+ | CLI> sip show settings | ||
+ | </ | ||
+ | Добавим строки в extensions.conf, | ||
+ | < | ||
+ | # nano extensions.conf | ||
+ | ... | ||
+ | ;Asotel | ||
+ | exten => 1001, | ||
+ | exten => 1001, | ||
+ | exten => 1001, | ||
+ | ;Ekiga | ||
+ | exten => 1251, | ||
+ | exten => 1251, | ||
+ | exten => 1251, | ||
+ | ... | ||
+ | </ | ||
+ | ====== Подключение к терминатору SIP ====== | ||
+ | < | ||
+ | # nano sip.conf | ||
+ | [мой_поставщик_услуг] | ||
+ | type=peer | ||
+ | host=10.251.55.100 | ||
+ | fromuser=мой_уникальный_id | ||
+ | secret=мой_секретный пароль | ||
+ | context=incoming_calls | ||
+ | dtmfmode=rfc2833 | ||
+ | disallow=all | ||
+ | allow=gsm | ||
+ | allow=ulaw | ||
+ | deny=0.0.0.0/ | ||
+ | permit=10.251.55.100/ | ||
+ | insecure=invite | ||
+ | </ | ||
+ | Задавая тип peer, мы указываем Asterisk, что при получении сообщения INVITE (Приглашение) (когда поставщик присылает вызов) нужно сравнивать не имя [мой поставщик сервисов], | ||
+ | Если параметр fromuser не указывать в peer будет пробрасываться [[Caller ID]] с VoIP- телефона (softphone). | ||
+ | |||
+ | ====== Использование шаблонов в конфигурационных файлах ====== | ||
+ | С конфигурационными файлами Asterisk связан один очень малоизвестный факт, но он настолько замечательный, | ||
+ | Скажем, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Слишком много ввода текста, | ||
+ | | ||
+ | ; взят в круглые скобки. Это признак шаблона. | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ; в круглые скобки. Все настройки этого шаблона | ||
+ | ; будут унаследованы. | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Это одна из самых малоизвестных возможностей создания конфигурационного файла. Очень немногие пользуются этой возможностью, | ||
+ | |||
+ | ===== Дополнительные ссылки ===== | ||
+ | * [[out> |
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга