Установка на Wi Fi маршрутизатор Keenetic ОС Entware Asterisk

Тут будет некоторая информация по keenetic
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 802
Стаж: 5 лет
Откуда: Вологодская область
Поблагодарили: 32 раза
Контактная информация:

Установка на Wi Fi маршрутизатор Keenetic ОС Entware Asterisk

Сообщение Артём Мамзиков »

Официальный сайт Asterisk
VOIP-INFO
База знаний Asterisk Русский

Оф. Мануал Установка IP АТС Asterisk 18 на интернет-центр Keenetic - Тут уже готовый образ Entware с предустановленным Asterisk.
Мы же будем ставить сами, посмотрим какие пакеты тут установлены, скачаем архив.
Можно посмотреть тут
ls -a /opt/lib/opkg/info|grep "control"
cat /opt/lib/opkg/status|grep "Package:"
Получаем список
Показать
110 пакетов
asterisk
asterisk-app-channelredirect
asterisk-app-confbridge
asterisk-app-mixmonitor
asterisk-app-originate
asterisk-app-read
asterisk-app-record
asterisk-app-stack
asterisk-app-system
asterisk-app-voicemail
asterisk-app-waitforsilence
asterisk-bridge-builtin-features
asterisk-bridge-native-rtp
asterisk-bridge-simple
asterisk-bridge-softmix
asterisk-chan-rtp
asterisk-codec-alaw
asterisk-codec-g722
asterisk-codec-g729
asterisk-codec-gsm
asterisk-codec-ulaw
asterisk-format-gsm
asterisk-format-pcm
asterisk-format-sln
asterisk-format-wav
asterisk-func-channel
asterisk-pbx-ael
asterisk-pbx-spool
asterisk-pjsip
asterisk-res-ael-share
asterisk-res-agi
asterisk-res-http-websocket
asterisk-res-musiconhold
asterisk-res-pjproject
asterisk-res-rtp-asterisk
asterisk-res-rtp-multicast
asterisk-res-sorcery
asterisk-res-speech
asterisk-res-srtp
bcg729
busybox
dropbear
entware-release
findutils
glib2
grep
jansson
jsonfilter
lame
lame-lib
ldconfig
libattr
libblkid
libc
libcap
libedit
libffi
libgcc
libiconv-full
libintl-full
libjson-c
libmbedtls
libmount
libncurses
libncursesw
libndm
libopenssl
libopenssl-conf
libpcre
libpj
libpjlib-util
libpjmedia
libpjnath
libpjsip
libpjsip-simple
libpjsip-ua
libpjsua
libpjsua2
libpthread
librt
libslang2
libsqlite3
libsrtp2
libssh2
libssp
libstdcpp
libubox
libuuid
libxml2
locales
mc
ndmq
openssl-util
opkg
opt-ndmsv2
poorbox
terminfo
zlib
zoneinfo-asia
zoneinfo-europe

Форум zyxmon asterisk на keenetic

Установку разобрали здесь Установка на Wi Fi маршрутизатор Keenetic OS Entware

opkg update

Запросим список доступных пакетов к установке Asterisk на OS Entware

Код: Выделить всё

opkg list | grep asterisk
Пакеты с + это пакеты из готового образа keenetic 39 пакетов

+ asterisk - 20.0.1-1 - Asterisk - это полноценная АТС в программном обеспечении. Он предоставляет все функции, которые вы ожидали бы от мини-АТС, и многое другое. Asterisk поддерживает передачу голоса по IP по трем протоколам и может взаимодействовать практически со всеми телефонными устройствами, основанными на стандартах, используя относительно недорогое оборудование

ПРИЛОЖЕНИЯ:
asterisk-app-adsiprog - 20.0.1-1 - Приложение для программирования Asterisk ADSI.
asterisk-app-agent-pool - 20.0.1-1 - Приложения пула агентов колл-центра.
asterisk-app-alarmreceiver - 20.0.1-1 - Приемник сигналов тревоги для Asterisk.
asterisk-app-amd - 20.0.1-1 - Приложение для обнаружения автоответчика.
asterisk-app-attended-transfer - 20.0.1-1 - Ставит в очередь посещаемый перевод на указанный добавочный номер.
asterisk-app-audiosocket - 20.0.1-1 - Приложение для аудиоразъема.
asterisk-app-authenticate - 20.0.1-1 - Приложение для аудиоразъема.
asterisk-app-blind-transfer - 20.0.1-1 - Перенаправляет все каналы, подключенные в данный момент к вызывающему каналу, в указанное место назначения.
asterisk-app-bridgeaddchan - 20.0.1-1 - Приложение для добавления канала Добавление моста.
asterisk-app-bridgewait - 20.0.1-1 - Применение для размещения канала в удерживающем мосте.
asterisk-app-celgenuserevent - 20.0.1-1 - Сгенерировать пользовательское событие CEL.
asterisk-app-chanisavail - 20.0.1-1 - Проверьте доступность канала.
+ asterisk-app-channelredirect - 20.0.1-1 - Перенаправляет заданный канал на целевой абонентский план.
asterisk-app-chanspy - 20.0.1-1 - Прослушайте аудиозапись активного канала.
+ asterisk-app-confbridge - 20.0.1-1 - Применение конференц-моста.
asterisk-app-controlplayback - 20.0.1-1 - Приложение для управления воспроизведением.
asterisk-app-dictate - 20.0.1-1 - Виртуальный диктофон.
asterisk-app-directed-pickup - 20.0.1-1 - Приложение для приема направленных вызовов.
asterisk-app-directory - 20.0.1-1 - Каталог расширений.
asterisk-app-disa - 20.0.1-1 - Приложение для прямого доступа к внутренней системе.
asterisk-app-dtmfstore - 20.0.1-1 - Независимое от технологии асинхронное хранилище DTMF.
asterisk-app-dumpchan - 20.0.1-1 - Сброс информации о вызывающем канале.
asterisk-app-exec - 20.0.1-1 - Выполняет приложения диалплана.
asterisk-app-externalivr - 20.0.1-1 - Приложение внешнего интерфейса IVR.
asterisk-app-festival - 20.0.1-1 - Простой интерфейс фестиваля.
asterisk-app-followme - 20.0.1-1 - Приложение "Найди меня" / "Следуй за мной".
asterisk-app-getcpeid - 20.0.1-1 - Получить идентификатор ADSI CPE ID.
asterisk-app-ivrdemo - 20.0.1-1 - Демонстрационное приложение IVR.
asterisk-app-mf - 20.0.1-1 - Отправить заявку на получение MF-цифр.
asterisk-app-milliwatt - 20.0.1-1 - Приложение для цифрового тестирования в милливаттах.
asterisk-app-minivm - 20.0.1-1 - Минимальная система голосовой почты.
+ asterisk-app-mixmonitor - 20.0.1-1 - Приложение для мониторинга смешанного звука.
asterisk-app-morsecode - 20.0.1-1 - Азбука Морзе.
asterisk-app-mp3 - 20.0.1-1 - Глупое MP3-приложение.
+ asterisk-app-originate - 20.0.1-1 - Инициировать вызов.
asterisk-app-page - 20.0.1-1 - Страница с несколькими телефонами.
asterisk-app-playtones - 20.0.1-1 - Приложение для воспроизведения звуковых сигналов.
asterisk-app-privacy - 20.0.1-1 - Требуется ввести номер телефона, если идентификатор вызывающего абонента не отправлен.
asterisk-app-queue - 20.0.1-1 - Истинная очередь вызовов.
+ asterisk-app-read - 20.0.1-1 - Приложение для чтения переменных.
asterisk-app-readexten - 20.0.1-1 - Прочитайте и оцените действительность продления.
+ asterisk-app-record - 20.0.1-1 - Тривиальное приложение для записи.
asterisk-app-reload - 20.0.1-1 - Модуль[и] перезагрузки/перечитать.
asterisk-app-saycounted - 20.0.1-1 - Отклоняйте слова в соответствии с языком канала.
asterisk-app-sayunixtime - 20.0.1-1 - Произносить время.
asterisk-app-senddtmf - 20.0.1-1 - Приложение для отправки цифр DTMF.
asterisk-app-sendtext - 20.0.1-1 - Отправка текстовых приложений.
asterisk-app-sf - 20.0.1-1 - Приложения-отправители и получатели SF.
asterisk-app-skel - 20.0.1-1 - Применение каркаса.
asterisk-app-sms - 20.0.1-1 - SMS/PSTN обработчик.
asterisk-app-softhangup - 20.0.1-1 - Отключает запрошенный канал.
asterisk-app-speech - 20.0.1-1 - Речевые приложения диалплана.
+ asterisk-app-stack - 20.0.1-1 - Подпрограммы диалплана.
asterisk-app-stasis - 20.0.1-1 - Применение диалплана Stasis.
asterisk-app-statsd - 20.0.1-1 - Приложение диалплана StatsD.
asterisk-app-stream-echo - 20.0.1-1 - Потоковое эхо-приложение.
+ asterisk-app-system - 20.0.1-1 - Универсальное системное приложение.
asterisk-app-talkdetect - 20.0.1-1 - Воспроизведение с обнаружением разговора.
asterisk-app-test - 20.0.1-1 - Приложение для тестирования интерфейса.
asterisk-app-transfer - 20.0.1-1 - Переводит вызывающего абонента на другой добавочный номер.
asterisk-app-userevent - 20.0.1-1 - Пользовательское приложение для проведения пользовательских событий планирований.
asterisk-app-verbose - 20.0.1-1 - Отправить подробный вывод.
+ asterisk-app-voicemail - 20.0.1-1 - Модуль голосовой почты.
asterisk-app-voicemail-imap - 20.0.1-1 - Модуль голосовой почты.
asterisk-app-voicemail-odbc - 20.0.1-1 - Модуль голосовой почты.
asterisk-app-waitforcond - 20.0.1-1 - Подождите, пока условие не станет истинным.
asterisk-app-waitforring - 20.0.1-1 - Ждет до первого гудка по истечении заданного времени.
+ asterisk-app-waitforsilence - 20.0.1-1 - Дождитесь тишины/шума.
asterisk-app-waituntil - 20.0.1-1 - Подождите до указанного времени.
asterisk-app-while - 20.0.1-1 - Циклы времени и условное выполнение.
asterisk-app-zapateller - 20.0.1-1 - Блокируйте телемаркетеров специальным информационным тоном.

Мост
+ asterisk-bridge-builtin-features - 20.0.1-1 - Встроенные функции наведения мостов.
asterisk-bridge-builtin-interval-features - 20.0.1-1 - Встроенные функции промежуточного интервала.
asterisk-bridge-holding - 20.0.1-1 - Удерживающий мостовой модуль.
+ asterisk-bridge-native-rtp - 20.0.1-1 - Собственный модуль RTP-моста.
+ asterisk-bridge-simple - 20.0.1-1 - Простой двухканальный соединительный модуль.
+ asterisk-bridge-softmix - 20.0.1-1 - Многопартийное программирование на основе микширования каналов.

asterisk-cdr - 20.0.1-1 - Подробные записи о вызовах.
asterisk-cdr-csv - 20.0.1-1 - Значения, разделенные запятыми, серверная часть CDR.
asterisk-cdr-sqlite3 - 20.0.1-1 - Серверная часть SQLite3 CDR.

asterisk-cel-custom - 20.0.1-1 - Настраиваемые значения, разделенные запятыми, в серверной части CEL.
asterisk-cel-manager - 20.0.1-1 - Интерфейс Asterisk Manager CEL бэкэнд.
asterisk-cel-sqlite3-custom - 20.0.1-1 - Пользовательский модуль CEL SQLite3.

Каналы
asterisk-chan-alsa - 20.0.1-1 - Драйвер консольного канала ALSA.
asterisk-chan-audiosocket - 20.0.1-1 - Канал аудиосокета.
asterisk-chan-bridge-media - 20.0.1-1 - Драйвер медиаканала моста.
asterisk-chan-console - 20.0.1-1 - Драйвер консольного канала.
asterisk-chan-dongle - 2021-10-06-3d046f7d-2 - Драйвер канала Asterisk для 3G-ключа Huawei UMTS.
asterisk-chan-iax2 - 20.0.1-1 - Обмен данными между Asterisk.
asterisk-chan-mgcp - 20.0.1-1 - Протокол управления мультимедийным шлюзом.
asterisk-chan-mobile - 20.0.1-1 - Драйвер канала мобильного устройства Bluetooth.
asterisk-chan-motif - 20.0.1-1 - Драйвер канала Motif Jingle.
asterisk-chan-ooh323 - 20.0.1-1 - Объективные системы Канал H.323.
+ asterisk-chan-rtp - 20.0.1-1 - Медиаканал RTP.
asterisk-chan-sccp - 2020-12-19-968caa45-2 - Замена драйвера канала SCCP (chan_skinny) в Asterisk. Расширенные функции включают в себя общие линии, присутствие / BLF, настраиваемые функциональные кнопки и пользовательское состояние устройства.
asterisk-chan-sip - 20.0.1-1 - Протокол инициирования сеанса.
asterisk-chan-skinny - 20.0.1-1 - Протокол управления узким клиентом.
asterisk-chan-unistim - 20.0.1-1 - Протокол UNISTIM.

Кодеки
asterisk-codec-a-mu - 20.0.1-1 - Прямой кодер/декодер Alaw и ulaw.
asterisk-codec-adpcm - 20.0.1-1 - Адаптивный дифференциальный PCM-кодер/декодер.
+ asterisk-codec-alaw - 20.0.1-1 - Кодер/декодер Alaw.
+ asterisk-codec-g722 - 20.0.1-1 - ITU G.722-64kbps G722 транскодер.
asterisk-codec-g726 - 20.0.1-1 - ITU G.726-32kbps G726 транскодер.
+ asterisk-codec-g729 - 1.4.3-1 - Кодек Asterisk G.729, основанный на реализации bcg729.
+ asterisk-codec-gsm - 20.0.1-1 - GSM кодер/декодер.
asterisk-codec-ilbc - 20.0.1-1 - iLBC кодер/декодер.
asterisk-codec-lpc10 - 20.0.1-1 - LPC10 2.4kbps кодер/декодер.
asterisk-codec-opus - 2021-11-01-20522fbc-1 - Opus - это аудиокодек по умолчанию в WebRTC. WebRTC доступен в Asterisk через SIP через WebSockets (WSS). Тем не менее, Opus можно использовать и для других видов транспорта (UDP, TCP, TLS). Opus заменяет предыдущие кодеки, такие как CELT и SiLK. Кроме того, в пользу Opus больше не разрабатываются другие аудиокодеки с открытым исходным кодом, такие как Speex, iSAC, iLBC и Siren. Если вы используете Asterisk в качестве сквозного пользовательского агента (B2BUA) и перекодируете между различными аудиокодеками, следует включить Opus для обеспечения будущей совместимости. Opus поддерживается не только для сквозного доступа, но и может быть перекодирован.
asterisk-codec-resample - 20.0.1-1 - SLIN кодек повторной дискретизации.
+ asterisk-codec-ulaw - 20.0.1-1 - Ulaw кодер/декодер.

asterisk-curl - 20.0.1-1 - cURL

Форматы
asterisk-format-g719 - 20.0.1-1 - ITU G.719.
asterisk-format-g723 - 20.0.1-1 - G.723.1 простой формат файла временных меток.
asterisk-format-g726 - 20.0.1-1 - Raw G.726 data.
asterisk-format-g729 - 20.0.1-1 - Raw G.729 data.
+ asterisk-format-gsm - 20.0.1-1 - Raw GSM data.
asterisk-format-h263 - 20.0.1-1 - Raw H.263 data.
asterisk-format-h264 - 20.0.1-1 - Raw H.264 data.
asterisk-format-ilbc - 20.0.1-1 - Raw iLBC data.
asterisk-format-ogg-opus - 2021-11-01-20522fbc-1 - Чтение и запись аудиофайлов в формате OGG/Opus.
asterisk-format-ogg-vorbis - 20.0.1-1 - OGG/Vorbis Аудио.
+ asterisk-format-pcm - 20.0.1-1 - Raw/Sun ulaw/alaw 8KHz и G.722 16Khz.
asterisk-format-siren14 - 20.0.1-1 - ITU G.722.1 Приложение C.
asterisk-format-siren7 - 20.0.1-1 - ITU G.722.1.
+ asterisk-format-sln - 20.0.1-1 - Raw поддержка линейного звука с подписью 8khz-192khz.
asterisk-format-vox - 20.0.1-1 - Формат файла Dialogic VOX.
+ asterisk-format-wav - 20.0.1-1 - Microsoft WAV/WAV16 формат.
asterisk-format-wav-gsm - 20.0.1-1 - Microsoft WAV формат.

Функции
asterisk-func-aes - 20.0.1-1 - AES функции диалплана.
asterisk-func-base64 - 20.0.1-1 - Функции кодирования/декодирования диалплана Base64.
asterisk-func-blacklist - 20.0.1-1 - Найдите имя/номер вызывающего абонента в базе данных черного списка.
asterisk-func-callcompletion - 20.0.1-1 - Функция настройки управления вызовом.
+ asterisk-func-channel - 20.0.1-1 - Функции диалплана с информацией о канале.
asterisk-func-config - 20.0.1-1 - Доступ к переменной файла конфигурации Asterisk.
asterisk-func-cut - 20.0.1-1 - Вырезать информацию из строки.
asterisk-func-db - 20.0.1-1 - Функции диалплана, связанные с базой данных.
asterisk-func-devstate - 20.0.1-1 - Получает или устанавливает состояние устройства в диалплане.
asterisk-func-dialgroup - 20.0.1-1 - Функция Dialplan для группы набора номера.
asterisk-func-dialplan - 20.0.1-1 - Функции проверки контекста диалплана/добавочного номера/приоритета.
asterisk-func-enum - 20.0.1-1 - Функции диалплана, связанные с перечислением.
asterisk-func-env - 20.0.1-1 - Функции диалплана среды/файловой системы.
asterisk-func-evalexten - 20.0.1-1 - Функции оценки расширения.
asterisk-func-extstate - 20.0.1-1 - Получает состояние добавочного номера в диалплане.
asterisk-func-frame-drop - 20.0.1-1 - Функция для отбрасывания кадров на канале.
asterisk-func-frame-trace - 20.0.1-1 - Трассировка кадра для внутренней отладки ast-кадра.
asterisk-func-global - 20.0.1-1 - Переменные функции диалплана.
asterisk-func-groupcount - 20.0.1-1 - Функции диалплана группы каналов.
asterisk-func-hangupcause - 20.0.1-1 - Связанные с зависанием функции и приложения.
asterisk-func-holdintercept - 20.0.1-1 - Удерживайте функцию набора номера для перехвата.
asterisk-func-iconv - 20.0.1-1 - Преобразования кодировок.
asterisk-func-jitterbuffer - 20.0.1-1 - Буфер дрожания для считываемой части канала.
asterisk-func-json - 20.0.1-1 - Функция декодирования JSON.
asterisk-func-lock - 20.0.1-1 - Мьютексы диалплана.
asterisk-func-math - 20.0.1-1 - Математическая функция диалплана.
asterisk-func-md5 - 20.0.1-1 - Функции дайджеста диалплана MD5.
asterisk-func-module - 20.0.1-1 - Проверяет, загружен ли модуль Asterisk в память.
asterisk-func-periodic-hook - 20.0.1-1 - Периодические перехваты диалплана.
asterisk-func-pitchshift - 20.0.1-1 - Функции диалплана со звуковыми эффектами.
asterisk-func-presencestate - 20.0.1-1 - Получает или устанавливает состояние присутствия в диалплане.
asterisk-func-rand - 20.0.1-1 - Функция набора случайных чисел dialplan.
asterisk-func-realtime - 20.0.1-1 - Чтение/запись/хранение/уничтожение значений из хранилища в реальном времени.
asterisk-func-sayfiles - 20.0.1-1 - считайте файлы приложений.
asterisk-func-scramble - 20.0.1-1 - Частотно-инвертирующий речевой скремблер.
asterisk-func-sha1 - 20.0.1-1 - SHA-1 вычислительная функция dialplan.
asterisk-func-shell - 20.0.1-1 - Собирает выходные данные, сгенерированные командой, выполняемой системной оболочкой.
asterisk-func-sorcery - 20.0.1-1 - Получить поле из волшебного объекта.
asterisk-func-sprintf - 20.0.1-1 - Функция диалплана SPRINTF.
asterisk-func-srv - 20.0.1-1 - Функции диалплана, связанные с SRV.
asterisk-func-sysinfo - 20.0.1-1 - Функции, связанные с системной информацией.
asterisk-func-talkdetect - 20.0.1-1 - Функция dialplan для обнаружения разговоров.
asterisk-func-uri - 20.0.1-1 - Функции кодирования/декодирования диалплана URI.
asterisk-func-version - 20.0.1-1 - Получить информацию о версии Asterisk/сборке.
asterisk-func-vmcount - 20.0.1-1 - Индикатор наличия сообщений в голосовом почтовом ящике в данной папке.
asterisk-func-volume - 20.0.1-1 - Технологически независимый регулятор громкости.

asterisk-odbc - 20.0.1-1 - ODBC поддержка.

+ asterisk-pbx-ael - 20.0.1-1 - Компилятор языка расширений Asterisk.
asterisk-pbx-dundi - 20.0.1-1 - Обнаружение распределенных универсальных чисел.
asterisk-pbx-loopback - 20.0.1-1 - Переключатель обратной связи.
asterisk-pbx-lua - 20.0.1-1 - Коммутатор мини-АТС Lua.
asterisk-pbx-realtime - 20.0.1-1 - Переключатель в реальном времени.
+ asterisk-pbx-spool - 20.0.1-1 - Поддержка исходящей катушки.

asterisk-pgsql - 20.0.1-1 - PostgreSQL поддержка.

+ asterisk-pjsip - 20.0.1-1 - PJSIP SIP Стек.

Ресурсы
asterisk-res-adsi - 20.0.1-1 - Ресурс ADSI.
asterisk-res-aeap - 20.0.1-1 - Ресурс AEAP.
+ asterisk-res-ael-share - 20.0.1-1 - Общий код для AEL.
+ asterisk-res-agi - 20.0.1-1 - Интерфейс шлюза Asterisk.
asterisk-res-ari - 20.0.1-1 - Asterisk RESTful интерфейс.
asterisk-res-ari-applications - 20.0.1-1 - RESTful API модуль - ресурсы приложения Stasis.
asterisk-res-ari-asterisk - 20.0.1-1 - Модуль RESTful API - ресурсы Asterisk.
asterisk-res-ari-bridges - 20.0.1-1 - Модуль RESTful API - ресурсы моста.
asterisk-res-ari-channels - 20.0.1-1 - Модуль RESTful API - ресурсы канала.
asterisk-res-ari-device-states - 20.0.1-1 - Модуль RESTful API - ресурсы состояния устройства.
asterisk-res-ari-endpoints - 20.0.1-1 - Модуль RESTful API - ресурсы конечной точки.
asterisk-res-ari-events - 20.0.1-1 - Модуль RESTful API - ресурс веб-сокета.
asterisk-res-ari-mailboxes - 20.0.1-1 - Модуль RESTful API - ресурсы почтовых ящиков.
asterisk-res-ari-model - 20.0.1-1 - Валидаторы моделей ARI.
asterisk-res-ari-playbacks - 20.0.1-1 - Модуль RESTful API - ресурсы для управления воспроизведением.
asterisk-res-ari-recordings - 20.0.1-1 - Модуль RESTful API - запись ресурсов.
asterisk-res-ari-sounds - 20.0.1-1 - Модуль RESTful API - надежные ресурсы.
+ asterisk-res-audiosocket - 20.0.1-1 - Ресурсный модуль аудиосокета.
asterisk-res-calendar - 20.0.1-1 - Интеграция календаря Asterisk.
asterisk-res-calendar-caldav - 20.0.1-1 - Интеграция календаря Asterisk CalDAV.
asterisk-res-calendar-ews - 20.0.1-1 - Интеграция календаря с веб-службой Asterisk MS Обмен сообщениями.
asterisk-res-calendar-exchange - 20.0.1-1 - Asterisk MS Интеграция календаря Обмен.
asterisk-res-calendar-icalendar - 20.0.1-1 - Asterisk Интеграция файлов iКалендарь .ics.
asterisk-res-chan-stats - 20.0.1-1 - Пример того, как использовать Stasis.
asterisk-res-clialiases - 20.0.1-1 - CLI псевдонимы.
asterisk-res-cliexec - 20.0.1-1 - Простое выполнение диалплана из CLI.
asterisk-res-clioriginate - 20.0.1-1 - Инициирование и перенаправление вызовов из CLI.
asterisk-res-config-ldap - 20.0.1-1 - Интерфейс реального времени LDAP.
asterisk-res-config-mysql - 20.0.1-1 - Драйвер конфигурации MySQL в реальном времени.
asterisk-res-config-sqlite3 - 20.0.1-1 - Механизм настройки в реальном времени SQLite3.
asterisk-res-convert - 20.0.1-1 - Команда CLI для преобразования формата файла.
asterisk-res-endpoint-stats - 20.0.1-1 - Статистика конечных точек.
asterisk-res-fax - 20.0.1-1 - Универсальные приложения для факсимильной связи.
asterisk-res-fax-spandsp - 20.0.1-1 - Технологии факсимильной связи Spandsp G.711 и T.38.
asterisk-res-format-attr-celt - 20.0.1-1 - Модуль атрибутов формата CELT.
asterisk-res-format-attr-g729 - 20.0.1-1 - G.729 модуль атрибутов формата.
asterisk-res-format-attr-h263 - 20.0.1-1 - H.263 модуль атрибутов формата.
asterisk-res-format-attr-h264 - 20.0.1-1 - H.264 модуль атрибутов формата.
asterisk-res-format-attr-ilbc - 20.0.1-1 - iLBC модуль атрибутов формата.
asterisk-res-format-attr-opus - 20.0.1-1 - Opus модуль атрибутов формата.
asterisk-res-format-attr-silk - 20.0.1-1 - SILK модуль атрибутов формата.
asterisk-res-format-attr-siren14 - 20.0.1-1 - Siren14 модуль атрибутов формата.
asterisk-res-format-attr-siren7 - 20.0.1-1 - Siren7 модуль атрибутов формата.
asterisk-res-format-attr-vp8 - 20.0.1-1 - VP8 модуль атрибутов формата.
asterisk-res-geolocation - 20.0.1-1 - Поддержка геолокации.
asterisk-res-hep - 20.0.1-1 - HEPv3 API.
asterisk-res-hep-pjsip - 20.0.1-1 - Регистратор PJSIP HEPv3.
asterisk-res-hep-rtcp - 20.0.1-1 - Регистратор RTCP HEPv3.
asterisk-res-http-media-cache - 20.0.1-1 - Серверная часть кэша мультимедиа HTTP.
+ asterisk-res-http-websocket - 20.0.1-1 - Поддержка веб-сокетов HTTP.
asterisk-res-limit - 20.0.1-1 - Ограничения ресурсов.
asterisk-res-manager-devicestate - 20.0.1-1 - Диспетчер состояния устройства, переадресатор тем.
asterisk-res-manager-presencestate - 20.0.1-1 - Диспетчер присутствия, переадресатор состояния темы.
asterisk-res-monitor - 20.0.1-1 - Ресурс для мониторинга вызовов.
+ asterisk-res-musiconhold - 20.0.1-1 - Ресурс "Музыка на удержании".
asterisk-res-mutestream - 20.0.1-1 - Отключение ресурсов аудиопотока.
asterisk-res-mwi-devstate - 20.0.1-1 - Этот модуль позволяет осуществлять подписку присутствия на почтовые ящики голосовой почты. Это позволяет обычным клавишам BLF выступать в качестве индикаторов ожидания голосовой почты.
asterisk-res-mwi-external - 20.0.1-1 - Основной внешний ресурс MWI.
asterisk-res-mwi-external-ami - 20.0.1-1 - Поддержка AMI для внешнего MWI.
asterisk-res-parking - 20.0.1-1 - Вызовите ресурс парковки.
asterisk-res-phoneprov - 20.0.1-1 - Настройка телефона по протоколу HTTP.
+ asterisk-res-pjproject - 20.0.1-1 - Журнал проекта и служебная поддержка.
asterisk-res-pjsip-geolocation - 20.0.1-1 - Поддержка геолокации PJSIP.
asterisk-res-pjsip-phoneprov - 20.0.1-1 - Настройка телефона PJSIP.
asterisk-res-pjsip-stir-shaken - 20.0.1-1 - Ресурсный модуль для ПЕРЕМЕШИВАНИЯ/ВСТРЯХИВАНИЯ PJSIP.
asterisk-res-pktccops - 20.0.1-1 - Менеджер PktcCOPS для MGCP.
asterisk-res-prometheus - 20.0.1-1 - Ресурсный модуль Прометей.
asterisk-res-realtime - 20.0.1-1 - Поиск/перезапись данных в реальном времени.
asterisk-res-remb-modifier - 20.0.1-1 - Модуль модификатора REMB.
asterisk-res-resolver-unbound - 20.0.1-1 - Поддержка несвязанного распознавателя DNS.
+ asterisk-res-rtp-asterisk - 20.0.1-1 - Стек RTP Asterisk.
+ asterisk-res-rtp-multicast - 20.0.1-1 - Механизм многоадресной рассылки RTP.
asterisk-res-security-log - 20.0.1-1 - Ведение журнала событий безопасности.
asterisk-res-smdi - 20.0.1-1 - Ресурс упрощенного интерфейса Служба обработки сообщений.
asterisk-res-snmp - 20.0.1-1 - SNMP-агент для Asterisk.
+ asterisk-res-sorcery - 20.0.1-1 - Серверные модули Sorcery для доступа к данным, предназначенные для использования реального времени в качестве серверной части.
asterisk-res-sorcery-memory-cache - 20.0.1-1 - Мастер создания объектов волшебного кэша памяти.
+ asterisk-res-speech - 20.0.1-1 - Универсальный API распознавания речи.
asterisk-res-speech-aeap - 20.0.1-1 - Поддержка речевого движка AEAP.
+ asterisk-res-srtp - 20.0.1-1 - Защищенный протокол RTP.
+ asterisk-res-stasis - 20.0.1-1 - Поддержка приложений Stasis.
asterisk-res-stasis-answer - 20.0.1-1 - Поддержка ответов на запросы приложений Stasis.
asterisk-res-stasis-device-state - 20.0.1-1 - Государственная поддержка устройства для применения Stasis.
asterisk-res-stasis-mailbox - 20.0.1-1 - Поддержка почтовых ящиков приложений Stasis.
+ asterisk-res-stasis-playback - 20.0.1-1 - Поддержка воспроизведения приложений Stasis.
+ asterisk-res-stasis-recording - 20.0.1-1 - Поддержка записи приложений Stasis.
asterisk-res-stasis-snoop - 20.0.1-1 - Поддержка отслеживания приложений Stasis.
asterisk-res-statsd - 20.0.1-1 - Клиентская поддержка Statsd.
asterisk-res-stir-shaken - 20.0.1-1 - Ресурсный модуль для ПЕРЕМЕШИВАНИЯ/ВСТРЯХИВАНИЯ.
asterisk-res-stun-monitor - 20.0.1-1 - ОТКЛЮЧИТЬ сетевой монитор.
asterisk-res-timing-pthread - 20.0.1-1 - интерфейс синхронизации pthread.
asterisk-res-tonedetect - 20.0.1-1 - Модуль определения тонального сигнала.
asterisk-res-xmpp - 20.0.1-1 - Интерфейс Asterisk XMPP.

+asterisk-sounds - 20.0.1-1 - Этот пакет предоставляет звуковые файлы для Asterisk.

Утилиты
asterisk-util-aelparse - 20.0.1-1 - Проверьте расширения.файл ael.
asterisk-util-astcanary - 20.0.1-1 - Гарантирует Asterisk, что ни один поток не пропал без вести.
asterisk-util-astdb2bdb - 20.0.1-1 - Преобразовать astdb обратно в Berkeley DB 1.86.
asterisk-util-astdb2sqlite3 - 20.0.1-1 - Преобразовать astdb в SQLite 3.
asterisk-util-check-expr - 20.0.1-1 - Средство проверки выражений [более старая версия].
asterisk-util-check-expr2 - 20.0.1-1 - Средство проверки выражений [более новая верси].
asterisk-util-smsq - 20.0.1-1 - Отправка сообщений из командной строки.
asterisk-util-stereorize - 20.0.1-1 - Объединить два монофонических WAV-файла в один стереофонический WAV-файл.
asterisk-util-streamplayer - 20.0.1-1 - Утилита для чтения из необработанного TCP-потока [источник MOH].

Выводит список установленных пакетов
opkg list-installed
ls -a /opt/lib/opkg/info|grep "control"
cat /opt/lib/opkg/status|grep "Package:"

Установка

Код: Выделить всё

opkg upgrade
- Обновить список пакетов

Код: Выделить всё

opkg update
- Обновить уже установленные пакеты
Пакеты к установке

Код: Выделить всё

opkg install asterisk asterisk-app-channelredirect asterisk-app-confbridge asterisk-app-mixmonitor asterisk-app-originate asterisk-app-read asterisk-app-record asterisk-app-stack asterisk-app-system asterisk-app-voicemail asterisk-app-waitforsilence asterisk-bridge-builtin-features asterisk-bridge-native-rtp asterisk-bridge-simple asterisk-bridge-softmix asterisk-chan-rtp asterisk-codec-alaw asterisk-codec-g722 asterisk-codec-g729 asterisk-codec-gsm asterisk-codec-ulaw asterisk-format-gsm 

Код: Выделить всё

opkg install asterisk-format-pcm asterisk-format-sln asterisk-format-wav asterisk-func-channel asterisk-pbx-ael asterisk-pbx-spool asterisk-pjsip asterisk-res-ael-share asterisk-res-agi asterisk-res-http-websocket asterisk-res-musiconhold asterisk-res-pjproject asterisk-res-rtp-asterisk asterisk-res-rtp-multicast asterisk-res-sorcery asterisk-res-speech asterisk-res-srtp asterisk-sounds asterisk-res-stasis asterisk-res-stasis-playback asterisk-res-stasis-recording asterisk-res-audiosocket

Код: Выделить всё

opkg install bcg729 busybox dropbear jansson lame lame-lib ldconfig libcap libedit libffi libgcc libjson-c libmbedtls libmount libncurses libncursesw libndm libopenssl libopenssl-conf libpcre libpj libpjlib-util libpjmedia libpjnath libpjsip libpjsip-simple libpjsip-ua libpjsua libpjsua2 libsrtp2 libuuid libxml2 locales mc ndmq openssl-util poorbox terminfo
* opkg_install_cmd: Не удается установить пакет libndm
* opkg_install_cmd: Не удается установить пакет ndmq

Пример установки 1 пакета

Код: Выделить всё

opkg install asterisk
Установка
Показать
Installing asterisk (20.0.1-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/as ... el-3.4.ipk
Installing libxml2 (2.11.4-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/li ... el-3.4.ipk
Installing libxslt (1.1.37-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/li ... el-3.4.ipk
Installing jansson (2.14-3) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/ja ... el-3.4.ipk
Installing libcap (2.69-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/li ... el-3.4.ipk
Installing libedit (20221030-3.1-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/li ... el-3.4.ipk
Configuring libcap.
Configuring jansson.
Configuring libxml2.
Configuring libxslt.
Configuring libedit.
Configuring asterisk.
Дальше нужно настроить файлы конфигурации для Asterisk следующие функции:
1.Внешние линии для подключения к операторам IP-телефонии
Пять линий для подключения к операторам Sipnet, YouMagic, Multifon, Zadarma и Nonoh. Выбор нужной линии для исходящего вызова осуществляется с помощью префикса.
2.Внутренние линии для подключения IP-телефонов, смартфонов, софтфонов, VoIP-шлюзов и т.п. (далее IP-телефон) к серверу Asterisk. Пользователи подключенных IP-телефонов смогут звонить и принимать звонки через внешние линии, звонить друг другу по внутренним номерам через Asterisk и создавать конференции.
3.SIP-транспорт UDP
Наиболее часто используемый транспортный протокол используемый для обмена сообщениями SIP.
4.SIP-транспорт TCP
Этот транспортный протокол требуется для подключения к некоторым операторам IP-телефонии. Обеспечивает надежную доставку сообщений SIP размером более 1300 байт с использованием фрагментации.
5.Защищенный SIP-транспорт TLS
Этот транспортный протокол может использовать аутентификацию SIP-сервера с сертификатами и шифрование сообщений SIP. Гарантирует подключение к подлинному SIP-серверу и препятствует перехвату информации о внешних вызовах злоумышленниками. Способствует защите SIP-аккаунта от взлома.
6.Защищенный протокол передачи аудиоданных SRTP
Защищает от прослушивания разговоров. Должен использоваться одновременно с SIP-транспортом TLS.
7.Функция перевода вызова (Call Transfer)
Перевод вызова на другой внутренний или внешний номер. Работает на любом IP-телефоне подключенном к Asterisk.
8.Голосовая почта (автоответчик)
Абоненты, которые звонят вам, когда вы не можете ответить, смогут оставить для вас голосовое сообщение. Сервис использует голосовое меню.
9.Голосовое меню для входящих вызовов
Позвонивший по внешней линии абонент слышит приглашение набрать внутренний номер. Он набирает внутренний номер и Asterisk соединяет его с нужным пользователем.
10.Конференции для трех и более участников
Каждый пользователь подключившийся к конференции сможет разговаривать со всеми остальными пользователями в конференции.
11.Запись разговоров
Все разговоры записываются на USB-накопитель подключенный к интернет-центру Keenetic.

Автозагрузка при включении

Код: Выделить всё

nano /opt/etc/init.d/S31asterisk

Код: Выделить всё

#!/bin/sh

ENABLED=yes
PROCS=asterisk
ARGS=""
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func
Запуск руками
# /opt/etc/init.d/S31asterisk start
Остановка
# /opt/etc/init.d/S31asterisk stop

Конфигурация Asterisk содержится в следующих файлах:

/opt/etc/asterisk/confbridge.conf
/opt/etc/asterisk/extensions.conf
/opt/etc/asterisk/modules.conf
/opt/etc/asterisk/musiconhold.conf
/opt/etc/asterisk/pjsip.conf
/opt/etc/asterisk/voicemail.conf

Конфигурационные файлы /opt/etc/asterisk/*.conf и скрипты /opt/etc/asterisk/scripts/*.sh
Для записи разговоров в целевой сборке нужно создать папку /opt/record/ и поместить туда скрипт wavtomp3.sh для конвертации wav>mp3.
records.zip
records.zip
(456 байт) 6 скачиваний
wavtomp3.sh

Код: Выделить всё

#!/bin/sh
/opt/bin/logger "OPKG: Starting conversion wav to mp3..."
cd /opt/records/
for i in *.wav; do
val=${i%.wav}
lame /opt/records/$val.wav /opt/records/$val.mp3
rm /opt/records/$val.wav
done
/opt/bin/logger "OPKG: Conversion wav to mp3 has been finished."
exit
Голосовые семплы Core Asterisk Sounds и MOH находятся здесь:
/opt/share/asterisk/sounds/ru/*
/opt/share/asterisk/sounds/en/*
/opt/share/asterisk/sounds/moh/*

Скрипты для создания сертификатов и ключей шифрования (если нужен транспорт TLS): /opt/etc/asterisk/keys/scripts/*.sh


Обычные Внутренние номера 1000..1006 и 2000..2006 для регистрации IP-телефонов с использованием SIP-транспорта UDP и протокола передачи аудиоданных RTP. При настройке IP-телефонов используйте следующие данные:

SIP Register/Proxy/Domain: 192.168.175.1:6060
SIP Transport: UDP
Audio Transport: RTP
SIP User ID: xxxx
SIP Auth ID: userxxxx
Password: ast18-opkg-mipsel
DTMF: RFC2833
Voice Codecs: G.711u, G.722
xxxx — внутренний номер 1000..1006 или 2000..2006
192.168.175.1 — IP-адрес интернет-центра Keenetic

Настройки В файлах
/opt/etc/asterisk/pjsip.conf
/opt/etc/asterisk/voicemail.conf

TLS Защитой Внутренние номера 1007..1009 и 2007..2009 для регистрации IP-телефонов с использованием защищенного SIP-транспорта TLS и защищенной передачи аудиоданных по протоколу SRTP между IP-телефоном и сервером Asterisk. При настройке IP-телефонов используйте следующую информацию:

SIP Register/Proxy/Domain: 192.168.1.1:6061
SIP Transport: TLS
Audio Transport: SRTP
SIP User ID: xxxx
SIP Auth ID: userxxxx
Password: ast18-opkg-mipsel
DTMF: RFC2833
Voice Codecs: G.711u, G.722
xxxx — внутренний номер 1007..1009 или 2007..2009
192.168.1.1 — IP-адрес интернет-центра Keenetic

Настройки В файлах
/opt/etc/asterisk/pjsip.conf
/opt/etc/asterisk/voicemail.conf

Пароли для внутренних номеров можно переназначить в конфигурационном файле /opt/etc/asterisk/pjsip.conf

Примечание 1: чтобы принимать входящие вызовы по внешним линиям, подключать IP-телефоны со стороны WAN и обеспечить прохождение аудиоданных в обе стороны во время звонков, в настройках межсетевого экрана (веб-конфигуратор > Сетевые правила > Межсетевой экран) нужно создать разрешающие правила:

1) протокол UDP, порт назначения 6060 — SIP-транспорт UDP;
2) протокол TCP, порт назначения 6060 — SIP-транспорт TCP;
3) протокол TCP, порт назначения 6061 — SIP-транспорт TLS;
4) протокол UDP, порты назначения 10000..10100 — медиатранспорт RTP/SRTP.
Межсетевой экрана keenetic Asterisk
Межсетевой экрана keenetic Asterisk
Примечание 2: к внутренним линиям 200x подключайте только IP-телефоны, которые поддерживают кодек G.722.


TSL Шифрование и Сертификаты
Транспорт TLS (сертификаты и ключи шифрования)
Чтобы активировать транспорт TLS необходимо создать сертификаты и ключи шифрования. Для этого запустите скрипт

Код: Выделить всё

/opt/etc/asterisk/keys/scripts/create_ca_ast_cert.sh
из консоли Linux.
В процессе выполнения скрипта потребуется придумать, запомнить и несколько раз ввести кодовое слово при создании ключа шифрования CA и доступе к нему. По завершению скрипта в папке /opt/etc/asterisk/keys/scripts появится ключ шифрования и самоподписанный сертификат СA, а также ключ шифрования и сертификат для Asterisk подписанный CA. После этого Asterisk нужно перезапустить. Для этого в консоли Linux выполните команды:

Код: Выделить всё

asterisk -rvvvv
(консоль Asterisk вход в CLI);

Код: Выделить всё

core restart now
(перезагрузка Asterisk с выходом в консоль Linux).
Подключение консоли Linux описано далее в этом документе.
После перезагрузки Asterisk начнет использовать созданные ключи и сертификаты и активирует транспорт TLS. Активацию транспорта TLS можно проверить с помощью команды "

Код: Выделить всё

pjsip show transports
" в консоли Asterisk. Эта команда выводит данные по всем активным транспортам. Подключение консоли Asterisk и консольные команды описаны далее в этой статье.
Примечание: если требуется аутентификация IP-телефона на Asterisk, вы можете создать для него сертификат. Для этого запустите скрипт

Код: Выделить всё

/opt/etc/asterisk/keys/scripts/create_client_cert.sh
. В процессе выполнения скрипта потребуется ввести кодовое слово. По завершению скрипта в папке /opt/etc/asterisk/keys/scripts будет создан ключ шифрования и сертификат для IP-телефона подписанный CA. Установку сертификатов на IP-телефоны и включение аутентификации клиентов на Asterisk данная статья не рассматривает.


Внешняя SIP телефония примеры
Пять преднастроенных внешних линий (транков) для подключения к операторам Sipnet, YouMagic, Multifon, Zadarma и Nonoh
Для подключения к оператору в конфигурационном файле \etc\asterisk\pjsip.conf раскомментируйте блок параметров нужного оператора (удалите ";--" в начале и "--;" в конце блока) и впишите соответствующие данные вашего SIP-аккаунта — телефонный номер и пароль — вместо "sip-uid" и "sip-pwd" соответственно. О том, как редактировать конфигурационные файлы Asterisk см. далее в этой статье.
Примечание: Sipnet использует защищенный транспорт TLS и SRTP, остальные транки используют UDP и RTP.


Префиксы для выбора линии при исходящем вызове через внешнюю sip
Чтобы направить исходящий вызов через нужную внешнюю линию наберите префикс *1, *2, *3, *4 или *5 (Sipnet, YouMagic, Multifon, Zadarma или Nonoh соответственно), затем номер абонента. При исходящем вызове в трубке телефона звучит имя оператора, через которого маршрутизируется данный вызов.


Голосовая почта 9000 (пример для 1001 пароль 1001)
Если при входящем вызове внутренний номер не отвечает в течение минуты, вызывающая сторона слышит приглашение (на русском языке) оставить сообщение для данного пользователя. При наличии новых сообщений Asterisk направляет специальную нотификацию на телефон пользователя и телефон сигнализирует об этом. Доступ к сообщениям по номеру 9000. Для авторизации требуется ввести соответствующий внутренний номер 100x в качестве номера абонента и пароля. Пароли голосовой почты можно изменить в конфигурационном файле \opt\etc\asterisk\voicemail.conf.
Записанные сообщения хранятся в папке /opt/var/spool/asterisk/voicemail/


Перевод вызова без консультации/с консультацией (Blind/Attended Call Transfer). Во время разговора нужно дважды нажать # (Blind Transfer) или *(Attended Transfer), затем набрать номер абонента, которому требуется перевести вызов.


Music On Hold
При постановке вызова на удержание звучит музыка (Music On Hold или MOH, пять композиций). Файлы находятся в папке /opt/share/asterisk/sounds/moh


Тестовые внутренние номера 9999 — 9995 звучит музыка
При вызове по тестовому номеру звучит музыка (одна из композиций MOH). Можно использовать для тестирования IP-телефона и функций Asterisk.
Настройки в файлах
/opt/etc/asterisk/extensions.conf
/opt/etc/asterisk/voicemail.conf
9999 -/opt/share/asterisk/sounds/moh/manolo_camp-morning_coffee
9998 - /opt/share/asterisk/sounds/moh/macroform-cold_day
9997 - /opt/share/asterisk/sounds/moh/reno_project-system
9996 - /opt/share/asterisk/sounds/moh/macroform-the_simplicity
9995 - /opt/share/asterisk/sounds/moh/macroform-robot_dity


Обратный вызов 802
Позволяет проверить входящие вызовы от Asterisk и отображение Caller ID.
Позвоните по номеру 802, прослушайте сообщение, дождитесь завершения соединения и положите трубку. Через 10 секунд на ваш IP-телефон поступит входящий вызов. На дисплее телефона отображается имя "CallBack" и номер "1234567890". После ответа на вызов играет музыка (MOH).
Настройки в файле
/opt/etc/asterisk/extensions.conf
/opt/etc/asterisk/scripts/callback-802.sh

Эхотест 800
Позвоните по номеру 800, прослушайте приглашение, продиктуйте сообщение, нажмите "#", а затем прослушайте ваше сообщение, чтобы проверить обмен аудиоданными между Asterisk и вашим IP-телефоном.
Настройки в файле
/opt/etc/asterisk/extensions.conf

Голосовое меню при входящих внешних вызовах
Абоненту, вызов от которого приходит по внешней линии, предлагают ввести внутренний номер пользователя. Если номер не набран, вызов направляется на внутренний номер 1001. При поступлении вызова на внутренний номер соответствующий IP-телефон отображает номер абонента и имя внешней линии, через которую поступил вызов.

Примечание: файлы голосовых семплов Core Asterisk Sounds в кодеках G.711a/u, G.729, G.722, GSM используемые для построения голосовых меню находятся в следующих папках:
/opt/share/asterisk/sounds/ru — на русском языке;
/opt/share/asterisk/sounds/en — на английском языке.
Язык голосовых сообщений выбирается в конфигурационном файле /opt/etc/asterisk/pjsip.conf. В данной сборке выбран русский язык для всех внутренних и внешних линий (language=ru). Если требуется, можно выбрать английский язык (language=en). Скачать Core Asterisk Sounds в других языках и кодеках можно отсюда: https://downloads.asterisk.org/pub/telephony/sounds/


Кодеки G.711u и G.722
При внутренних звонках между номерами 200x и при звонках с номеров 200x на тестовые номера используется кодек G.722, который обеспечивает высокое качество звука. При внутренних вызовах между номерами 100x, а также между номерами 200x и 100x используется кодек G.711u. При внешних вызовах используется кодек G.711u.


Конференции для трех и более участников
Для присоединения к конференции нужно позвонить по номеру 001. Каждый пользователь присоединившийся к конференции может разговаривать со всеми остальными пользователями в конференции. Когда пользователь присоединяется к конференции или выходит из нее все остальные пользователи в конференции слышат соответствующие оповещения. Первый пользователь присоединившийся к конференции слышит специальное оповещение и музыку до тех пор, пока к конференции не подключатся другие участники.

Запись разговоров
Разговоры записываются при внешних и внутренних звонках, а также при конференциях. Аудиозаписи разговоров в формате PCM 8000Hz mono 128kbps сохраняются на USB-накопителе в папке /opt/records.
Имена файлов аудиозаписей имеют следующий формат:

<caller>-<callee>_<YYMMDD>-<HHMM>.wav
где:
caller — номер вызывающего абонента;
callee — номер вызываемого абонента;
YYMMDD — год, месяц и число, когда состоялся звонок;
HHMM — время (часы, минуты), когда состоялся звонок.

Если запись разговоров требуется отключить для одного или нескольких направлений звонков, то в конфигурационном файле /opt/etc/asterisk/extensions.conf закомментируйте соответствующие строки (добавьте ";" в начале строки), в которых справа встречается " ;<------ Call recording".
Файлы аудиозаписей *.wav можно перекодировать в *.mp3. Это позволит уменьшить размер аудиозаписей примерно в 16 раз. Для этого в консоли Linux запустите скрипт командой "/opt/record/wavtomp3.sh". Этот скрипт находит файлы *.wav в папке /opt/records, перекодирует их и создает соответствующие файлы *.mp3, после чего удаляет файлы *.wav. Подключение консоли Linux описано далее в этой статье.


Консоль Asterisk в SHH
Для подключения консоли Asterisk используйте команду

Код: Выделить всё

asterisk -rvvvv
в консоли Linux (консоль Asterisk вход в CLI) .

Код: Выделить всё

asterisk -r
- Перезапускаем Asterisk и подключаемся с помощью команды

Код: Выделить всё

core restart now
(перезагрузка Asterisk с выходом в консоль Linux).

Код: Выделить всё

core reload
- перечитать применить новые конфигурации

Код: Выделить всё

dialplan reload
— перечитать extensions.conf;

Код: Выделить всё

sip show registry
- список зарегистрированных внешних операторов sip

Код: Выделить всё

pjsip show registrations
— список зарегистрированных SIP-пиров;

Код: Выделить всё

pjsip show contacts
— показать список контактов;

Код: Выделить всё

pjsip show transports
— показать список SIP-транспортов;

Код: Выделить всё

core show translation
— вывод таблицы транскодинга. Показывает кодеки установленные в системе и время требуемое для транскодинга одной секунды аудиоданных из одного кодека в другой;

Код: Выделить всё

core show applications
— список зарегистрированных приложений Asterisk;

Код: Выделить всё

pjsip show channels
— информация о всех активных SIP-соединениях; — выход в консоль Linux.

Сохранение и восстановление инсталляции Asterisk
запустить скрипт /opt/entware-backup.sh
будет создан архив /opt/backup-YYYY-MM-DD_HH-MM.tar.gz


Бэкапить систему лучше всего через tar:
# tar cvzf /opt/backup-`date -I`.tar.gz /opt
Копируем полученный архив к себе на компьютер, затем при необходимости копируем на новую флешку в директорию install. Роутер сам распакует этот архив.
что для бэкапа оно подходит, а вот для восстановления - нет. наверное, нужно перечислить дир. к-рые архивировать:
tar cvzf /opt/backup-`date "+%Y-%m-%d_%H-%M"`.tar.gz -C /opt/ bin etc home lib root sbin share tmp usr var

в /opt/opt/
Архив можно сделать прямо в самом /opt и перечислять не понадобится.
# cd /opt
# tar cvzf /opt/backup-`date -I`.tar.gz *

# Установка Планировщик (для очистки логов)

Код: Выделить всё

opkg install cron
/opt/etc/init.d/S10cron авто-загрузка ENABLED=yes
Добавим строки очистка раз в сутки в 1 час ночи

Код: Выделить всё

nano /opt/etc/crontab
1 1 * * * root `cat "0" > /opt/var/log/asterisk/messages` > /dev/null 2>&1
1 1 * * * root `cat "0" > /opt/var/log/asterisk/queue_log` > /dev/null 2>&1
количество слов: 3876
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 802
Стаж: 5 лет
Откуда: Вологодская область
Поблагодарили: 32 раза
Контактная информация:

Установка на Wi Fi маршрутизатор Keenetic ОС Entware Asterisk

Сообщение Артём Мамзиков »

ФАЙЛЫ КОНФИГУРАЦИИ

СКАЧАТЬ
asrerics-conf-rus-en.zip
asrerics-conf-rus-en.zip
(295.23 КБ) 11 скачиваний
/opt/etc/asterisk/acl.conf

Код: Выделить всё

;
; Именованные списки контроля доступа (ACL)
;
; Удобный способ обмена определениями acl
;
; Этот конфигурационный файл считывается при запуске
;
; Команды CLI
; -----------------------------------------------------------
;   acl show                         Показывать все настроенные именованные списки управления доступом
;   acl show <name>                  Показывать содержимое определенного именованного ACL
;   reload acl                       Перезагрузить конфигурационный файл
;
; Любая конфигурация, использующая списки управления доступом, которая была создана для возможности использования именованных
; ACLS укажет именованный ACL с параметром 'acl' в своей конфигурации аналогично
; обычным параметрам 'разрешить' и 'запретить'. Пример:
; acl=my_named_acl
;
; Несколько именованных списков ACL могут быть применены либо с помощью запятой, разделяющей аргументы, либо
; просто путем добавления дополнительных строк ACL. Пример:
; acl=my_named_acl
; acl=my_named_acl2
;
; или
;
; acl=my_named_acl,my_named_acl2
;
; Списки управления доступом, указанные по имени, вычисляются независимо от списка управления доступом, указанного с помощью
; разрешить/запретить. Для того чтобы адрес передавал заданный ACL, он должен передавать оба
; ACL, указанный в разрешении/запрете для данного элемента, а также любые именованные ACL
; которые были указаны.
;
;[example_named_acl1]
;deny=0.0.0.0/0.0.0.0
;permit=209.16.236.0
;permit=209.16.236.1
;
;[example_named_acl2]
;permit=0.0.0.0/0.0.0.0
;deny=10.24.20.171
;deny=10.24.20.103
;deny=209.16.236.1
;
; ; example_named_acl 1 выше показывает пример внесения в белый список. При включении в белый список
; именованные ACL должны следовать за deny, который блокирует все (например, deny=0.0.0.0/0.0.0.0)
; В следующем примере объясняется, как работает объединение списков контроля доступа:
; <в другой конфигурации>
; [example_элемент_с_acl]
; acl=example_named_acl1
; acl=example_named_acl2
;
; Предположим, что 209.16.236.0 пытается установить связь, и к нему применяется ACL для этого примера...
; Сначала вычисляется example_named_acl 1. Адрес разрешен этим списком управления доступом.
; Далее вычисляется example_named_acl2. Адрес не заблокирован example_named_acl2
; либо то, либо другое, так что это проходит.
;
; Предположим, вместо этого 209.16.236.1 пытается установить связь, и применяется тот же ACL.
; Сначала вычисляется example_named_acl 1, и адрес разрешен.
; Однако он заблокирован example_named_acl2, поэтому адрес заблокирован из объединенного
; ACL.
;
; Аналогично, разрешения/отказы в определенных конфигурациях, которые составляют определение ACL
; также рассматриваются как отдельный ACL для оценки. Итак, если мы изменим приведенный выше пример на:
; <в другой конфигурации>
; [example_элемент_с_acl]
; acl=example_named_acl1
; acl=example_named_acl2
; deny=209.16.236.0
;
; Тогда 209.16.236.0 будет отклонен неназванным компонентом объединенного ACL, даже
; если он передает два именованных компонента.
;
;
; Именованные списки управления доступом могут использовать ipv6-адреса точно так же, как обычные списки управления доступом.
;[ipv6_example_1]
;deny = ::
;permit = ::1/128
;
;[ipv6_example_2]
;permit = fe80::21d:bad:fad:2323
/opt/etc/asterisk/asterisk.conf

Код: Выделить всё

[directories](!)
;astcachedir => /tmp
astetcdir => /opt/etc/asterisk
astmoddir => /opt/lib/asterisk/modules
astvarlibdir => /opt/var/lib/asterisk
astdbdir => /opt/lib/asterisk
astkeydir => /opt/lib/asterisk
astdatadir => /opt/var/lib/asterisk
astagidir => /opt/lib/asterisk/agi-bin
astspooldir => /opt/var/spool/asterisk
astrundir => /opt/var/run/asterisk
astlogdir => /opt/var/log/asterisk
astsbindir => /opt/sbin

[options]
verbose = 9		; по умолчанию 3
debug = 9		; по умолчанию 3
trace = 9              ; Установите уровень трассировки по умолчанию 0.
;refdebug = yes			; Включить ведение журнала отладки количества ссылок.
;alwaysfork = yes		; То же, что и -F при запуске.
;nofork = yes			; То же, что и -f при запуске.
;quiet = yes			; То же, что и -q при запуске.
;timestamp = yes		; То же, что и -T при запуске.
;execincludes = yes		;Поддержка #exec в конфигурационных файлах.
;console = yes			; Запуск от имени консоли (то же, что и -c при запуске).
;highpriority = yes		; Запуск с приоритетом в реальном времени (то же, что и  -p при
				; запуске).
;initcrypto = yes		; Инициализация криптографических ключей (то же, что и -i при
				; запуске).
;nocolor = yes			; Отключить цвета консоли.
;dontwarn = yes			; Отключите некоторые предупреждения.
;dumpcore = yes			; Сбрасывать ядро при сбое (то же, что -g при запуске).
;languageprefix = yes		; Используйте новый синтаксис пути к звуковому префиксу.
systemname = localhost		; Префикс uniqueid с системным именем для
				; Проблемы глобальной уникальности.
autosystemname = no		; Автоматически присваивает системному имени значение имени хоста,
				; использует 'localhost' при сбое или системное имя, если
				; установить.
mindtmfduration = 50		; Установите минимальную длительность DTMF в мс (по умолчанию 80 мс)
				; Если мы получим более короткие сообщения DTMF, это будут
				; изменено на минимальную продолжительность
;maxcalls = 10			; Максимальное разрешенное количество звонков.
;maxload = 0.9			; Asterisk прекращает принимать новые вызовы, если средняя
                        ; загрузка превышает этот предел.
;maxfiles = 1000		; Максимальное количество открытых файлов.
;minmemfree = 1			; В MBs Asterisk перестает принимать новые вызовы, если
				; объем свободной памяти падает ниже этого значения
				; водяной знак.
;cache_media_frames = yes	; Кэширование медиафреймов для повышения производительности
				; Отключите эту опцию, чтобы помочь отследить медиафайл
				; неправильное управление при использовании valgrind или MALLOC_DEBUG.
				; Кэш мешает определить, используется ли фрейм
				; после освобождения и кто его освободил.
				; ПРИМЕЧАНИЕ: Этот параметр не действует, если звездочка установлена
				; скомпилирован с параметром времени компиляции LOW_MEMORY
				; включено, поскольку код кэша не существует.
				; По умолчанию да
;cache_record_files = yes	; Кэшировать записанные звуковые файлы в другой
				; каталог во время записи.
;record_cache_dir = /tmp	; Укажите каталог кэша (используется совместно
				; с cache_record_files).
;transmit_silence = yes		; Передавать молчание, пока канал находится в
				; состояние ожидания, состояние только для записи или
				; когда генерируется DTMF.  Обратите внимание, что
				; молчание внутри генерируется в необработанном виде со знаком
				; линейный формат. Это означает, что он должен быть
				; перекодирован в собственный формат
				; канала, прежде чем его можно будет отправить на устройство.
				; Именно по этой причине это необязательно,
				; поскольку это может привести к необходимости временного
				; путь трансляции кодека для канала, который может
				; в противном случае он не требуется.
;transcode_via_sln = yes	; Стройте пути перекодирования с помощью SLINEAR, вместо
					; напрямую.
runuser = root		; Пользователь должен запускаться как (по умолчанию asterisk).
rungroup = root		; Группа, которая будет работать как (по умолчанию asterisk).
;lightbackground = yes		; Если ваш терминал настроен на светлый цвет
				; предыстория.
;forceblackbackground = yes     ; Принудительно сделайте фон терминала
								; черным, чтобы отображались цвета терминала
                                ; встаньте должным образом.
defaultlanguage = en            ; Язык по умолчанию
documentation_language = en_US	; Установите язык, на котором вы хотите получить документацию
				; отображается в. Значение находится в том же формате, что и
				; названия локалей.
;hideconnect = yes		; Скрывать сообщения, отображаемые при использовании удаленной консоли
				; подключает и разъединяет.
;lockconfdir = no		; Защитите каталог, содержащий
						; конфигурационные файлы (/etc/asterisk) с помощью
						; блокировки.
;stdexten = gosub		; Как вызвать extensions.conf stdexten.
				; macro - Вызовите stdexten, используя макрос в качестве
				; сделано устаревшими версиями Asterisk.
				; gosub - Вызовите stdexten, используя gosub как
				; задокументированный в extensions.conf.sample.
				; По умолчанию gosub.
;live_dangerously = no		; Разрешить выполнение "опасной" диалплана
				; функции из внешних источников (AMI,
				; и т.д.) Эти функции (такие как SHELL) являются
				; считаются опасными , поскольку они могут позволить
				; повышение привилегий.
				; По умолчанию нет
;entityid=00:11:22:33:44:55	; Идентификатор объекта.
				; Это в форме MAC-адреса.
				; Она должна быть универсально уникальной.
				; Он должен быть уникальным между серверами, обменивающимися данными
				; с протоколом, который использует это значение.
				; В настоящее время это используется DUNDi и
				; Обмен состоянием устройства и почтового ящика
				; используя протоколы: XMPP, Corosync и PJSIP.
;rtp_use_dynamic = yes          ; Если установлено значение "да", типы динамической полезной нагрузки RTP
                                ; назначаются динамически для каждого экземпляра RTP по сравнению с
                                ; позволяя Asterisk глобально инициализировать их
								; по заранее указанным номерам (по умолчанию "да").
;rtp_pt_dynamic = 35		; Обычно динамические номера типов полезной нагрузки RTP
				; являются 96-127, которые допускают всего 32 формата. То
				; начальная точка 35 позволяет использовать диапазон 35-63 и
				; допускает 29 дополнительных форматов. Когда вы используете
				; более 32 форматов в динамическом диапазоне и
				; звонки не принимаются удаленным устройством
				; реализация, пожалуйста, сообщите об этом и продолжайте
				; вернуться к значению 96.
;hide_messaging_ami_events = no; Эта опция, если она включена, будет
                ; подавить все сообщения канала Message/ast_msg_queue
                ; ведение мероприятий на каналах AMI и ARI.  Это может
				; снизить нагрузку на приложения manager и ARI
                ; когда используется телефонный модуль Digium для Asterisk.

; Изменение следующих строк может поставить под угрозу вашу безопасность.
;[files]
;astctlpermissions = 0660
;astctlowner = root
;astctlgroup = apache
;astctl = asterisk.ctl
/opt/etc/asterisk/ccss.conf

Код: Выделить всё

;
; --- Дополнительные услуги по завершению вызова ---
;
; Для получения дополнительной информации о CCSS смотрите документацию пользователя CCSS
; https://wiki.asterisk.org/wiki/display/AST/Call+Completion+Supplementary+Services +(CCSS)
;

[general]
; Параметр cc_max_requests - это глобальное ограничение на количество
; Запросов CC, которые могут быть в системе Asterisk в любое время.
;
;cc_max_requests = 20
;
; Переменные состояния cc_STATE_dev, перечисленные ниже, могут быть использованы для изменения
; отображения по умолчанию внутреннего конечного автомата, отслеживающего состояние
; завершения вызова, на значение состояния устройства Asterisk. Допустимые значения,
; которые могут быть предоставлены, приведены ниже, с описанием того, что такое
; эквивалентное устройство BLF, которому это сопоставляется:
;
;	UNKNOWN      ; Устройство допустимо, но канал не знал о состоянии
;	NOT_INUSE    ; Устройство не используется
;	INUSE        ; Устройство находится в эксплуатации
;	BUSY         ; Устройство занято
;	INVALID      ; Устройство недействительно
;	UNAVAILABLE  ; Устройство недоступно
;	RINGING      ; Устройство звонит
;	RINGINUSE    ; Устройство звонит *и* используется
;	ONHOLD       ; Устройство находится в режиме ожидания
;
; Эти состояния используются для генерации информации DEVICE_STATE, которая может быть
; включена в подсказки Asterisk для телефонов, чтобы подписаться на информацию о состоянии
; или dialplan для проверки состояния с помощью функции EXTENSION_STATE() или
; функция DEVICE_STATE().
;
; Состояния представлены в формате: "ccss:TECH/ID", так что пример устройства
; SIP/3000 отправка запроса на завершение вызова() может быть проверена путем просмотра
; DEVICE_STATE(ccss:SIP/3000) или может быть сгенерирована подсказка в виде звездочки, например
;
; [hint-context]
; exten => *843000,hint,ccss:SIP/3000
;
; а затем получить доступ с помощью EXTENSION_STATE(*843000@hint-context)
; или подписаться на него с помощью кнопки BLF на телефоне.
;
; Доступным отображением состояний и значениями по умолчанию являются:
;
; cc_available_devstate = NOT_INUSE
; cc_offered_devstate = NOT_INUSE
; cc_caller_requested_devstate = NOT_INUSE
; cc_active_devstate = INUSE
; cc_callee_ready_devstate = INUSE
; cc_caller_busy_devstate = ONHOLD
; cc_recalling_devstate = RINGING
; cc_complete_devstate = NOT_INUSE
; cc_failed_devstate = NOT_INUSE

;
;============================================
; ПОЖАЛУЙСТА, ПРОЧТИТЕ ЭТО!!!
; Параметры, описанные ниже, НЕ должны быть
; заданы в этом файле. Скорее, они должны быть
; установлены для каждого устройства в драйвере канала
; конфигурационный файл.
; ПОЖАЛУЙСТА, ПРОЧТИТЕ ЭТО!!!
;===========================================
;
; --------------------------------------------------------------------
; Таймеры
; --------------------------------------------------------------------
; Существует три настраиваемых таймера для всех типов CC:
; cc_offer_timer, ccbs_available_timer и ccnr_available_timer.
; Кроме того, при использовании универсального агента существует четвертый таймер,
; cc_recall_timer. Все таймеры настроены в секундах, и значения,
; показанные ниже, являются значениями по умолчанию.
;
; Когда вызывающему абоненту предлагается CCBS или CCNR,
; запускается cc_offer_timer. Если вызывающий абонент не запрашивает CC до того, как
; cc_offer_timer истекает, тогда вызывающий абонент не сможет запросить
; CC для этого вызова.
;
;cc_offer_timer = 20
;
; Как только вызывающий абонент запросит CC, будет запущен либо ccbs_available_timer,
; либо ccnr_available_timer, в зависимости от запрошенной службы.
; Причина, по которой существуют два отдельных таймера для CCBS
; и CCNR, заключается в том, что разумно захотеть иметь более короткий тайм-аут,
; настроенный для CCBS, чем для CCNR. Если доступный таймер истечет
; до того, как вызываемый абонент станет доступен, то попытка CC
; завершится неудачей, и мониторинг вызываемого абонента прекратится.
;
;ccbs_available_timer = 4800
;ccnr_available_timer = 7200
;
; При использовании универсального агента исходный вызывающий абонент перезванивается
; когда становится доступной одна из исходных вызываемых сторон. Параметр
; cc_recall_timer сообщает Asterisk, как долго он должен позволять исходному
; телефону ; вызывающего абонента звонить, прежде чем прервать связь. Пожалуйста, обратите внимание, что этот параметр
; влияет на работу только при использовании универсального агента.
;
;cc_recall_timer = 20
; --------------------------------------------------------------------
; 								Политика
; --------------------------------------------------------------------
; Параметры политики указывают Asterisk, как вести себя и какие
; ресурсы выделять для облегчения CC. Существует два параметра
; для управления действиями, которые будет выполнять Asterisk.
; cc_agent_policy описывает поведение, которое Asterisk будет
; предпринимать при общении с вызывающей стороной во время CC. Есть
; три возможных варианта.
;
;never:   Никогда не предлагайте CC звонящему. Установка cc_agent_policy
;			на это значение - это способ отключить CC для вызова.
;
;generic: Универсальный агент CC - это тот, который не использует никаких специфичных для протокола
;		  механизмов для предоставления CC вызывающей стороне. Вместо этого вызывающий абонент
;		  запрашивает CC, используя функцию диалплана. Из-за внутренних
;		  ограничений вы должны использовать универсальный CC-агент только на
;		  телефонах (т.е. не на "магистралях"). Если вы используете телефоны, которые
;		  не поддерживают специфичный для протокола метод использования CC
,		  то вам следует использовать универсальные агенты CC.
;
;native:  Собственный агент CC - это тот, который использует специфичную для протокола
;		  сигнализацию, чтобы предлагать CC вызывающей стороне и принимать запросы CC
;		  от вызывающей стороны. Поддерживаемыми протоколами для собственных агентов CC
;		  являются SIP, ISDN ETSI PTP, ISDN ETSI PTMP и Q.SIG
;cc_agent_policy=never
;
;		  cc_monitor_policy описывает поведение, которое Asterisk будет
;		  предпринимать при общении с вызываемой стороной во время CC. Существует
;		  четыре возможных варианта.
;
;never:   Аналогично параметру cc_agent_policy. Мы никогда
;		  не будем пытаться запрашивать услуги CC через этот интерфейс.
;
;generic: Аналогично параметру cc_agent_policy. Мы будем отслеживать прогресс вызываемой стороны,
;		  используя возможности, не зависящие от протокола. Как и в случае с generic CC agents, generic CC
;		  мониторы следует использовать только для телефонов.
;
;native:  Аналогично параметру cc_agent_policy. Мы будем использовать
;		  методы, зависящие от протокола, для запроса CC из этого интерфейса
;		  и для мониторинга доступности интерфейса.
;
;always:  Если для интерфейса установлено значение "всегда", то мы примем предложения CC,
; относящиеся к конкретному протоколу, от вызывающего абонента и будем использовать
; собственный монитор CC для оставшейся части транзакции CC.
; Однако, если интерфейс не предлагает специфичный для протокола
; CC, тогда мы вернемся к использованию общего монитора CC
; вместо этого. Это хорошая настройка для телефонов, для которых
; вы не знаете, поддерживают ли они специфичные для протокола CC
; методологии.
;cc_monitor_policy=never
;
;
; --------------------------------------------------------------------
;							 Ограничения/Лимит
; --------------------------------------------------------------------
;
; Использование CC требует, чтобы Asterisk потенциально использовал больше памяти,
; чем хотелось бы некоторым администраторам. Таким образом, хорошей идеей является ограничение
; количества запросов CC, которые могут находиться в системе в данный момент времени.
; Значения, показанные ниже, являются значениями по умолчанию.
;
; Параметр cc_max_agents ограничивает количество незавершенных запросов CC,
; которые могут быть у вызывающего абонента в любой момент времени. Пожалуйста, обратите внимание, что из-за
; ограничений реализации этот параметр игнорируется при использовании
; универсальные агенты CC. Универсальные агенты CC могут иметь только один непогашенный
; Запрос CC.
;
;cc_max_agents = 5
;
; Параметр cc_max_monitors ограничивает количество незавершенных запросов CC
; запросы могут быть сделаны к определенному интерфейсу в данный момент времени.
;
;cc_max_monitors = 5
;
; --------------------------------------------------------------------
;							 Другое
; --------------------------------------------------------------------
;
; При использовании универсального агента CC вызывающий абонент, запросивший CC, будет
; перезвонен, когда вызываемый абонент станет доступен. Когда вызывающий абонент
; отвечает на свой телефонный звонок, администратор может выбрать запуск макроса.
; Что делает этот макрос, зависит от администратора. По умолчанию
; макрос обратного вызова не настроен.
;
;cc_callback_macro=
;
; В качестве альтернативы администратор может запустить подпрограмму. По умолчанию
; подпрограмма обратного вызова не настроена.  Подпрограмма должна
; быть указана в формате: [[контекст,]расширение,]приоритет  [[context,]exten,]priority
;
;cc_callback_sub=
;
; При использовании телефона ISDN и универсального агента CC Asterisk не удается
; определить строку набора, которую следует использовать при перезвоне
; исходному абоненту. Кроме того, если вы хотите использовать какие-либо
; параметры, специфичные для набора номера, такие как отличительный звонок, вы должны установить этот
; параметр конфигурации. Для телефонов, не использующих ISDN, нет необходимости
; устанавливать это значение, поскольку Asterisk может определить используемую строку набора, поскольку
; она идентична имени вызывающего устройства. По умолчанию
; не задана строка cc_agent_dial.
;
;cc_agent_dialstring=
/opt/etc/asterisk/cdr.conf

Код: Выделить всё

[general]
enable=no
/opt/etc/asterisk/cel.conf

Код: Выделить всё

;
; Регистрация событий канала Asterisk (CEL)
;

; Ведение журнала событий канала - это механизм предоставления детализированной информации о событиях
; который может использоваться для генерации платежной информации. Такая информация о событии может
; быть записана в различные серверные модули.
;

[general]

; Активация CEL
;
; Используйте ключевое слово "enable", чтобы включить или выключить CEL.
;
; Допустимые значения: да yes и нет no
; Значение по умолчанию: нет no

;enable=yes

; Отслеживание приложений
;
; Используйте ключевое слово "приложения apps", чтобы указать список приложений, для которых вы хотите
; получать события CEL.  Это разделенный запятыми список приложений Asterisk dialplan
; таких как набор номера, очередь и парковка.
;
; Допустимые значения: Список приложений диалплана Asterisk, разделенный запятыми
; Значение по умолчанию: нет
;
; Примечание: Вы также можете использовать "все all", что приведет к появлению сообщений о событиях CEL
; для всех приложений Asterisk.  Это может существенно повлиять на производительность Asterisk.

apps=dial,park

; Отслеживание событий
;
; Используйте ключевое слово 'events', чтобы указать список событий, которые вы хотите
; вызывать при их возникновении.  Это разделенный запятыми список значений в таблице
; ниже.
;
; Допустимые значения: Список, разделенный запятыми, из одного или нескольких следующих значений:
;  ALL              -- Генерировать записи обо всех событиях
;  CHAN_START       -- Время создания канала
;  CHAN_END         -- Время, в течение которого канал был прерван
;  ANSWER           -- Время, когда был получен ответ на канал (т.е. телефон был отключен)
;  HANGUP           -- Время, в которое произошло зависание
;  BRIDGE_ENTER       -- Время, когда канал был подключен к конференц-залу
;  BRIDGE_EXIT        -- Время, когда канал был удален из конференц-зала
;  APP_START        -- Время запуска отслеживаемого приложения
;  APP_END          -- время завершения отслеживаемого приложения
;  PARK_START       -- Время, когда вызов был заблокирован
;  PARK_END         -- Событие распаковки
;  BLINDTRANSFER    -- Когда инициируется передача вслепую
;  ATTENDEDTRANSFER -- Когда инициируется посещаемый перевод
;  PICKUP           -- Этот канал принял указанный канал
;  FORWARD          -- Этот канал перенаправляется куда-то в другое место
;  LINKEDID_END     -- Последний канал с указанным linkedid удален
;  USER_DEFINED     -- Запускается из диалплана и имеет имя, указанное пользователем
;  LOCAL_OPTIMIZE   -- Локальная пара каналов находится в процессе оптимизации.
;
; Значение по умолчанию: нет no
; (Не отслеживать события)

events=APP_START,CHAN_START,CHAN_END,ANSWER,HANGUP,BRIDGE_ENTER,BRIDGE_EXIT

; Формат даты
;
; Используйте ключевое слово 'dateformat', чтобы указать формат даты, используемый при возникновении событий CEL.
;
; Принятые значения: Строка формата strftime (см. man strftime)
;
; Пример: "%F %T"
;  -> Это дает дату и время в формате "2009-06-23 17:02:35"
;
; Если этот параметр не указан, формат по умолчанию - "<секунды>.<микросекунды>"
; начиная с эпохи.  Длина поля микросекунды всегда будет составлять 6 цифр, что означает, что оно
; может содержать начальные нули.
;
;dateformat = %F %T

;
; Серверная часть Asterisk Менеджер Интерфейс (AMI) CEL
;
[manager]

; Активация серверной части AMI
;
; Используйте ключевое слово 'enable', чтобы включить или выключить ведение журнала CEL в интерфейсе Asterisk Менеджер.
;
; Допустимые значения: да и нет
; Значение по умолчанию: нет no
;enabled=yes

; Используйте 'show_user_defined', чтобы поместить "USER_DEFINED" в заголовок имени события,
; вместо того, чтобы (по умолчанию) просто помещать туда пользовательское имя события.
; При включении заголовок UserDefType добавляется для пользовательских событий, чтобы
; указать пользовательское имя события.
;
;show_user_defined=yes

;
; RADIUS CEL Бэкэнд
;
[radius]
;
; Лог/Журнал дата/время по GMT
;usegmtime=yes
;
; Установите это значение в расположении файла конфигурации radiusclient-ng
; Значение по умолчанию равно /etc/radiusclient-ng/radiusclient.conf
;radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf
;
/opt/etc/asterisk/cli.conf

Код: Выделить всё

;
; Конфигурация Asterisk CLI
;

[startup_commands]
;
; Любые команды, перечисленные в этом разделе, будут выполнены автоматически
; когда Asterisk запустится как демон или процесс переднего плана (-c).
;
;sip set debug on = yes
;core set verbose 3 = yes
;core set debug 1 = yes
/opt/etc/asterisk/cli_permissions.conf

Код: Выделить всё

;
; Пример конфигурации разрешений CLI для Asterisk
;
; Все пользователи, которых вы хотите подключить к asterisk с помощью
; asterisk, должны иметь доступ на запись/чтение к
; сокету asterisk (asterisk.ctl). Вы могли бы изменить разрешения
; этого файла в параметре конфигурации 'asterisk.conf': 'astctlpermissions' (0666)
; находится в разделе [файлы].
;
; общие параметры:
;
; default_perm = permit | deny
; Это разрешения по умолчанию, применяемые для пользователя, у которого
; не определены разрешения.
;
; пользовательские параметры:
; permit = <command name> | all		;разрешить пользователю запускать "команду" |
;					; разрешить пользователю выполнять "все all" команды
; deny = <command name> | all		; запретить пользователю запускать "команду" |
;					; запретить пользователю выполнять "все all" команды.
;

[general]

default_perm=permit	; Чтобы оставить asterisk работать в обычном режиме
;					 мы должны установить для этого параметра значение "разрешить permit"
;
; Соответствует настройкам разрешений для каждого пользователя.
;
; Этот список считывается в той последовательности, которая записывается, поэтому
; В этом примере пользователю 'eliel' разрешено выполнять только следующие
; команды:
;          sip show peer ; sip показать одноранговому узлу
;          core set debug ; отладка основного набора
;          core set verbose ; базовый набор подробный
; Если пользователь не указан, параметр default_perm будет применен к
; каждой команде.
;
; Обратите внимание, что вы также можете использовать регулярные выражения, чтобы разрешить или запретить доступ к
; определенной команде, например: 'core show application D*'. В этом примере пользователю будет
; разрешено просматривать документацию по всем приложениям, начинающимся с "D".
; Другим регулярным выражением могло бы быть: 'источник канала SIP/[0-9]* расширение *'  'channel originate SIP/[0-9]* extension *'
; позволяя пользователю использовать "channel originate" на sip-канале и с "расширением"
; параметр и избегание использования параметра 'application'.
;
; Мы также можем использовать синтаксис шаблонов:
; [supportTemplate](!)
; deny=all
; permit=sip show       ; будут разрешены все команды, начинающиеся с "sip show".
; permit=core show
;
; Вы можете указать разрешения для локальной группы вместо пользователя
; просто поставьте '@', и мы будем знать, что это группа.
; ВАЖНОЕ ПРИМЕЧАНИЕ: разрешения пользователей заменяют разрешения группы.
;
;[@adm]
;deny=all
;permit=sip
;permit=core
;
;
;[eliel]
;deny=all
;permit=sip show peer
;deny=sip show peers
;permit=core set
;
;
; Пользователь 'tommy' наследует от шаблона 'support Template' Шаблон поддержки':
;	deny=all
;	permit=sip show
;	permit=core show
;[tommy](supportTemplate)
;permit=core set debug
;permit=dialplan show
;
;
;[mark]
;deny=all
;permit=all
;
;
/opt/etc/asterisk/codecs.conf

Код: Выделить всё

[speex]
; Качество кодирования CBR [0..10]
; используется только тогда, когда vbr = false
quality => 3

; сложность кодека [0..10]
; компромисс между процессором и качеством
complexity => 2

; улучшение восприятия [истинно / ложно] [true / false]
; улучшает четкость декодированной речи
enhancement => true

; обнаружение голосовой активности [true / false]
; уменьшает битрейт, когда голос не обнаружен, используется только для CBR
; (implicit in VBR/ABR)
vad => true

; переменная скорость передачи данных [true / false]
; использует скорость передачи данных, пропорциональную сложности передачи голоса
vbr => true

; доступная скорость передачи данных [бит/с, 0 = выкл.] [bps, 0 = off]
; качество кодирования модулируется в соответствии с этой целевой скоростью
; передачи данных ; не рекомендуется использовать dtx или pp_vad - может вызвать скачки пропускной способности
abr => 0

; Качество кодирования VBR [0-10]
; допустимые значения с плавающей запятой
vbr_quality => 4

; прерывистая передача [истина / ложь] [true / false]
; полностью прекращает передачу при обнаружении молчания
; pp_vad гораздо более эффективен, но требует больше ресурсов процессора
dtx => false

; конфигурация препроцессора
; эти параметры влияют только на Speex версии 1.1.8 или новее

; включить препроцессор [true / false]
; обеспечивает функциональность dsp ниже, но увеличивает нагрузку на процессор
preprocess => false

; предварительное обнаружение голосовой активности [true / false]
; более продвинутый эквивалент DTX, основанный на голосовых частотах
pp_vad => false

; предварительная автоматическая регулировка усиления [true / false]
pp_agc => false
pp_agc_level => 8000

; предварительный шумоподавитель [true / false]
pp_denoise => false

; предварительная обработка dereverb [true / false]
pp_dereverb => false
pp_dereverb_decay => 0.4
pp_dereverb_level => 0.3

; экспериментальный битрейт изменяется в зависимости от обратной связи RTCP [true / false]
experimental_rtcp_feedback => false


[plc]
; для всех кодеков, которые не поддерживают native PLC
; это определяет, следует ли выполнять универсальный PLC
; это приводит к незначительному снижению производительности.
; По умолчанию plc применяется только в том случае, если 2 кодека
; в канале разные.
genericplc => true
; Примените универсальный plc к каналам, даже если 2 кодека
; одинаковы.  Это вынуждает к перекодированию через slin so
; следует учитывать влияние на производительность.
; Игнорируется, если genericplc также не включен.
genericplc_on_equal_codecs => false

; Генерировать пользовательские форматы для форматов, требующих атрибутов.
; После определения пользовательского формата имя, используемое при определении
; формат может использоваться во всем Asterisk в параметрах формата "разрешить" 'allow'
; и "запретить" 'disallow'.
;
; Пример: silk8 - это предопределенный пользовательский формат в этом конфигурационном файле.
; Как только этот конфигурационный файл загружен, silk8 можно использовать везде
; где определены возможности однорангового кодека.
;
; В sip.conf 'silk8' может быть определен как возможность для однорангового узла.
; [peer1]
; type=peer
; host=dynamic
; disallow=all
; allow=silk8 ; пользовательский кодек, определенный в codecs.conf
;
; ОГРАНИЧЕНИЯ/Лимиты
; Пользовательские форматы могут быть определены только при запуске.  Любые изменения в этом
; файле, внесенные после запуска, вступят в силу только после перезапуска Asterisk.
;

; Определения пользовательского формата SILK по умолчанию, только один пользовательский формат SILK для каждого
; разрешена частота дискретизации.
[silk8]
type=silk
samprate=8000
fec=true           ; включение или выключение кодирования с прямой коррекцией ошибок.
                   ; Рекомендуется включить, по умолчанию выключено.
packetloss_percentage=10   ; Предполагаемый процент потери пакетов в направлении восходящей линии связи.  Этот
                           ; влияет на степень встроенной избыточности при использовании fec.
                           ; Чем выше процент, тем больший объем пропускной способности
						   ; используется. Значение по умолчанию равно 0%, при использовании fec рекомендуется использовать 10%.

maxbitrate=10000    ; Используйте таблицу ниже, чтобы убедиться, что выбран подходящий битрейт
                    ; для максимального битрейта.  Если не задано или значение находится за пределами заданных границ
                    ; для кодера выбирается значение по умолчанию.
                    ;
                    ; частота дискретизации | диапазон (битрейт) скорости передачи данных
                    ;  8khz        | 5000 - 20000 bps
                    ;  12khz       | 7000 - 25000 bps
                    ;  16khz       | 8000 - 30000 bps
                    ;  24khz       | 20000- 40000 bps
                    ;
;dtx=true       ; Кодировать с использованием прерывистого режима передачи или нет. Превращая это
                ; включение позволит сэкономить полосу пропускания в периоды молчания за счет
				; повышенной вычислительной сложности.  По умолчанию выключен.

[silk12]
type=silk
samprate=12000
maxbitrate=12000
fec=true
packetloss_percentage=10;

[silk16]
type=silk
samprate=16000
maxbitrate=20000
fec=true
packetloss_percentage=10;

[silk24]
type=silk
samprate=24000
maxbitrate=30000
fec=true
packetloss_percentage=10;


; Пользовательские определения кодека CELT по умолчанию. Допускается только одно пользовательское определение CELT
; для каждой частоты дискретизации.
;[celt44]
;type=celt
;samprate=44100  ; Частота дискретизации в Гц. Эта опция обязательна.
;framesize=480   ; Параметр "Размер кадра" представляет продолжительность каждого кадра в выборках.
                 ; Это должно быть в 2 раза больше.  Эта опция объявляется только в SDP
                 ; когда он установлен.  В противном случае предполагается размер кадра по умолчанию, равный 480
                 ; внутренне

;[celt48]
;type=celt
;samprate=48000

;[celt32]
;type=celt
;samprate=32000

;============================ Варианты раздела OPUS ============================
;
; ПРИМЕЧАНИЕ: Точная документация, соответствующая загруженной вами версии
; codec_opus доступна из командной строки Asterisk:
;
; *CLI> config показать справку codec_opus opus
;
;[opus]
;type= ; Должно быть типа "opus" (по умолчанию: "")
;packet_loss= ; Процент потери пакетов кодировщиком. Может быть любым числом в диапазоне от 0
              ; и 100 включительно. Более высокое значение приводит к большим потерям
              ; сопротивление. (по умолчанию: 0)
;complexity= ; Вычислительная сложность кодера. Может быть любым числом в диапазоне от 0
             ; и 10 включительно. Обратите внимание, что 10 соответствует наивысшей сложности.
             ; (по умолчанию: 10)
;max_bandwidth= ; Максимально допустимая полоса пропускания кодера. Устанавливает верхнюю полосу пропускания
                ; привязан к кодировщику. Может быть любым из следующих: узкий,
				; средний, широкий, сверхширокий, полный. (по умолчанию: полный)
;signal= ; Тип сигнала кодировщика. Помогает в выборе режима на кодировщике: Может
		 ;быть любым из следующих: автоматический, голосовой, музыкальный. (по умолчанию: автоматически)
;application= ; Тип приложения кодировщика. Может быть любым из следующих: voip,
			  ; audio, low_delay. (по умолчанию: voip)
;max_playback_rate= ; Переопределите максимальную скорость воспроизведения в SDP предложения.
                    ; Допустимо любое значение от 8000 до 48000 (включительно)
					; однако обычно оно должно соответствовать одному из обычных opus
                    ; ширина полосы пропускания. (по умолчанию: 48000)
;bitrate= ; Переопределить максимальный средний битрейт в SDP предложения. Любое значение
          ; допустимо значение от 500 до 512000. Также допустимы следующие значения
		  ; авто, макс. (по умолчанию: автоматически)
;cbr= ; Переопределить параметр постоянной скорости передачи данных в SDP предложения. Значение
	  ; 0/false/no представляет переменную скорость передачи данных, тогда как 1/true/yes представляет
      ; постоянная скорость передачи в битах. (по умолчанию: нет no)
;fec= ; Переопределить параметр use inband fec в SDP предложения. Значение
	  ; 0/false/no означает отключено, тогда как 1/true/yes означает включено.
      ; (по умолчанию: да yes)
;dtx= ; Переопределить параметр use dtx в SDP предложения. Значение 0/ложь/нет 0/false/no
      ; означает отключено, тогда как 1/true/yes означает включено. (по умолчанию: нет no)

;=============================== OPUS Примеры ================================
;
;[opus]
;type=opus
;max_playback_rate=8000 ; Ограничьте максимальную скорость воспроизведения на кодировщике
;fec=no ; Отсутствие внутриполосного fec

;[myopus]
;type=opus
;max_bandwidth=wide ; Максимальная кодируемая полоса пропускания установлена на широкополосную (0-8000 Гц
					; полоса пропускания звука при частоте дискретизации 16 кГц)
;cbr=yes ; Согласуйте постоянную (битрейт) скорость передачи данных
количество слов: 1374
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 802
Стаж: 5 лет
Откуда: Вологодская область
Поблагодарили: 32 раза
Контактная информация:

Установка на Wi Fi маршрутизатор Keenetic ОС Entware Asterisk

Сообщение Артём Мамзиков »

/opt/etc/asterisk/confbridge.conf (default)

Код: Выделить всё

[general]
; Общий раздел этой конфигурации
; в настоящее время не используется, но зарезервирован
; для использования в будущем.

;
; --- Информация по умолчанию ---
; Разделы default_user и default_bridge применяются
; автоматически ко всем экземплярам ConfBridge, вызываемым без
; аргумента user или bridge.  По умолчанию меню не применяется.
;
; Обратите внимание, что, хотя свойства профиля default_user или default_bridge
; могут быть переопределены, в случае удаления они будут автоматически
; добавлены и станут доступными для диалплана при загрузке модуля.
;

; --- Параметры профиля пользователя ConfBridge ---
[default_user]
type=user
;admin=yes     ; Устанавливает, является ли пользователь администратором или нет. По умолчанию выключен.

;send_events=no  ; Если события включены для этого моста и эта опция включена
                 ; установлено, пользователи будут получать такие события, как присоединение, уход, разговор и т.д.
				 ; с помощью текстовых сообщений.  Для пользователей, получающих доступ к мосту
                 ; через chan_pjsip это означает сообщения в диалоговом окне.
                 ; Это наиболее полезно для участников WebRTC, где
				 ; браузерное приложение может использовать сообщения для изменения пользователя
                 ; интерфейс.
;echo_events=yes ; Если события включены для этого пользователя и эта опция установлена,
				 ; пользователь будет получать события, которые они запускают, разговор, отключение звука и т.д.
                 ; Если не задано, они не будут получать свои собственные события.

;marked=yes    ; Устанавливает, является ли это отмеченный пользователь или нет. По умолчанию выключен Off.
;startmuted=yes; Устанавливает, должны ли все пользователи отключаться при запуске. По умолчанию выключен Off
;music_on_hold_when_empty=yes  ; Устанавливает, следует ли воспроизводить MOH только тогда, когда
                               ; один человек участвует в конференции или когда
							   ; пользователь ожидает входа отмеченного пользователя
                               ; конференция. По умолчанию выключен.
;music_on_hold_class=default   ; Класс MOH, который будет использоваться для этого пользователя.
;quiet=yes     ; При включении подсказки ввода/вывода и вводные слова пользователя не воспроизводятся.
               ; Есть некоторые подсказки, такие как приглашение ввести PIN-код,
			   ; которые должны воспроизводиться независимо от того, на что установлена эта опция.
               ; По умолчанию выключен Off
;announce_user_count=yes  ; Устанавливает, следует ли сообщать вызывающему абоненту количество пользователей.
						  ; По умолчанию выключен.
;announce_user_count_all=yes ; Устанавливает, следует ли объявлять количество пользователей
							 ; всем остальным пользователям конференции, когда кто-то присоединяется.
                             ; Для этого параметра может быть установлено либо значение "да", либо число.
                             ; Если задано значение number, объявление будет происходить только
                             ; как только количество пользователей превысит указанное число.
;announce_only_user=yes   ; Устанавливает, должно ли воспроизводиться единственное пользовательское объявление
                          ; когда канал входит в пустую конференцию.  Включено по умолчанию.
;wait_marked=yes   ; Устанавливает, должен ли пользователь дождаться входа отмеченного пользователя, прежде чем
				   ; присоединиться к конференции. По умолчанию выключен.
;end_marked=yes ; Эта опция активирует каждого пользователя, у которого эта опция установлена в их
                ; профиль пользователя после того, как последний отмеченный пользователь покинет конференцию.

;dsp_drop_silence=yes  ; Этот параметр удаляет то, что Asterisk определяет как молчание, из
                       ; въезжаем на мост.  Включение этой опции значительно улучшит
                       ; улучшите производительность и помогите устранить накопление фоновой информации
                       ; шум от конференции. Настоятельно рекомендуется для проведения крупных конференций
                       ; благодаря повышению его производительности.

;dsp_talking_threshold=128  ; Порог средней величины для определения разговора.
                            ;
                            ; Минимальная средняя величина на выборку в кадре для
							; DSP, учитывающая наличие разговоров/шума.  Значение ниже этого
                            ; уровнем считается тишина.  Это значение влияет на несколько
                            ; операции и не должны изменяться до тех пор, пока не будет полностью понято влияние на
							; качество вызова.
                            ;
                            ; На что это значение влияет внутренне:
                            ;
                            ; 1. Звук микшируется только из входящего аудио пользователя
                            ; потоковая передача при обнаружении разговора.  Если это значение тоже установлено
                            ; на высоком уровне пользователь услышит, как он сам говорит.
                            ;
                            ; 2. Когда включены события AMI для обнаружения разговоров, это значение
                            ; определяет, когда начался разговор, что приводит к
							; срабатыванию события ; AMI.  Если это значение установлено слишком низким, AMI
                            ; события могут быть ложно вызваны вариантами в комнате
                            ; шум.
                            ;
                            ; 3. Опция 'drop_silence' зависит от этого значения, чтобы
							; определить, когда аудио пользователя должно быть смешано с
							; мостом после периодов молчания.  Если это значение слишком велико
                            ; при этом речь пользователя будет отброшена по мере того, как он будет
                            ; будет считаться молчаливым.
                            ;
                            ; Допустимые значения - от 1 до 2^15.
                            ; По умолчанию это значение равно 160.

;dsp_silence_threshold=2000 ; Количество миллисекунд молчания, необходимое для объявления
                            ; разговоры прекратились.
                            ;
							; Время в миллисекундах, когда уровень звука падает ниже
							; параметра 'dsp_talking_threshold', когда считается, что пользователь прекращает разговор.
							; Это значение влияет на несколько операций и
							; не должно изменяться до тех пор, пока не будет полностью понято влияние на качество вызова.
                            ;
							; На что это значение влияет внутренне:
                            ;
                            ; 1. Когда включены события AMI для обнаружения разговоров, это значение
                            ; определяет, когда пользователь прекратил разговор после
                            ; период разговоров.  Если это значение установлено слишком низким, AMI
                            ; события, указывающие на то, что пользователь прекратил разговор, могут получить
                            ; ложно отправляется, когда пользователь делает короткую паузу в середине
                            ; предложение.
                            ;
                            ; 2. Параметр 'drop_silence' зависит от этого значения, чтобы
							; определить, когда пользовательский звук должен начать
							; удаляться с конференц-моста после того, как пользователь остановится
                            ; разговаривает.  Если это значение установлено слишком низко, пользовательский звук
                            ; другим участникам трансляция может показаться прерывистой.  Этот
                            ; вызвано тем, что пользователь постоянно переходит с
                            ; молчание при разговоре в середине предложения.
                            ;
                            ; Лучший способ приблизиться к этому параметру - слегка настроить его
                            ; превышает максимальное количество миллисекунд молчания пользователя
                            ; может генерироваться во время естественной речи.
                            ;
                            ; Допустимые значения - от 1 до 2^31.
                            ; По умолчанию это значение равно 2500 мс.

;talk_detection_events=yes ; Этот параметр устанавливает, будут ли уведомления о том, когда пользователь
                           ; начало и окончание разговора следует рассылать как события по AMI.
                           ; По умолчанию эта опция выключена.
;denoise=yes ; Устанавливает, следует ли применять фильтр шумоподавления или нет
             ; к аудио перед микшированием или нет.  По умолчанию выключен. Требует
             ; func_speex должен быть собран и установлен.  Не путайте этот вариант
             ; с drop_silence.  Шумоподавление полезно, если имеется много фона
             ; шум для пользователя, когда он пытается удалить шум при сохранении
             ; речь.  Этот параметр не исключает смешивания тишины с
             ; конференция и впрямь проводится ценой небольшого снижения производительности.

;jitterbuffer=yes  ; Включение этой опции приводит к появлению буфера дрожания в аудиопотоке пользователя
                   ; перед выполнением микширования звука.  Это настоятельно рекомендуется, но приведет
                   ; добавьте небольшую задержку к звуку.  Этот параметр использует JITTERBUFFER
                   ; адаптивный джиттербуфер функции диалплана по умолчанию.  Для более точной настройки
                   ; jitterbuffer, отключите эту опцию и используйте функцию dialplan БУФЕРА ДРОЖАНИЯ
                   ; на пользователя перед входом в приложение ConfBridge.

;pin=1234  ; Устанавливает, должен ли этот пользователь вводить PIN-код перед входом
           ; конференция.  Будет запрошен ввод PIN-кода.
;announce_join_leave=yes ; Если эта опция включена, пользователю будет предложено ввести
                         ; имя при входе в конференцию.  После имени стоит
                         ; записанный, он будет воспроизводиться по мере входа пользователя и его существования
                         ; конференция. По умолчанию эта опция отключена.
;announce_join_leave_review=yes ; Когда включено, подразумевает announce_join_leave, но пользователь
                                ; будет предложено просмотреть их запись перед
								; входом в конференцию. На этом этапе запись
                                ; может быть прослушан, перезаписан или принят как есть. Этот
                                ; по умолчанию опция отключена.
;dtmf_passthrough=yes  ; Устанавливает, должен ли DTMF проходить через конференцию или нет.
                       ; По умолчанию эта опция отключена.
;announcement=</path/to/file> ; Воспроизведите звуковой файл для пользователя, когда он присоединится к конференции.

;timeout=3600 ; Если задано ненулевое значение, это указывает количество секунд, в течение которых участник
              ; может оставаться в конференции до автоматического удаления. Когда пользователь
              ; будет удален из конференции, канал пользователя будет иметь CONFBRIDGE_RESULT
              ; переменной присвоено значение "TIMEOUT/ТАЙМ-АУТ". Значение 0 указывает на то, что тайм-аут отсутствует.
              ; По умолчанию: 0
;text_messaging=yes ; Если установлено значение "да/yes", этому пользователю будут отправляться текстовые сообщения. Текстовые сообщения
                    ; может возникнуть в результате событий или может быть получен от других участников.
                    ; Если установлено значение "Нет/no", текстовые сообщения этому пользователю отправляться не будут.

; --- Варианты профиля моста ConfBridge ---
[default_bridge]
type=bridge
;max_members=50                ; Этот параметр ограничивает количество участников для одного
                               ; конференц-связь по определенному номеру.  Конференции по умолчанию
                               ; не имеют ограничения по количеству участников. После достижения лимита
							   ; конференция будет заблокирована до тех пор, пока кто-либо не покинет ее.  Однако обратите внимание
                               ; что пользователю с правами администратора всегда будет разрешено присоединиться к конференции
                               ; независимо от того, достигнут этот предел или нет.

;record_conference=yes         ; Записывает конференц-связь, начинающуюся при появлении первого пользователя
                               ; входит в комнату и заканчивается, когда последний пользователь выходит из комнаты.
                               ; Записанное по умолчанию имя файла -
                               ; 'confbridge-<название конференц-моста>-<время начала>.wav
							   ; и формат по умолчанию - линейный 8 кГц.  Этот файл будет
							   ; расположен в настроенном каталоге мониторинга в asterisk.conf.

;record_file=</path/to/file>   ; Если для параметра record_conference задано значение yes,
							   ; с помощью этой опции можно задать конкретное имя файла записи.  Обратите внимание, что поскольку несколько
                               ; конференции могут использовать один и тот же профиль моста, это может вызвать проблемы
                               ; в зависимости от конфигурации.  Рекомендуется использовать только этот
                               ; настраивается динамически с помощью функции диалплана CONFBRIDGE(). Этот
                               ; позволяет указать имя записи и выбрать уникальное имя.
                               ; По умолчанию файл record_file хранится в каталоге spool/monitor Asterisk
							   ; с уникальным именем файла, начинающимся с префикса 'confbridge'.
;record_file_append=yes        ; Добавляйте файл записи при запуске / остановке той же записи конференции.
;record_file_timestamp=yes     ; Добавьте время начала к имени файла записи.

;record_options=               ; Передайте дополнительные параметры в MixMonitor.
;record_command=</path/to/command> ; Команда для выполнения по завершении записи.

;internal_sample_rate=auto     ; Устанавливает внутреннюю собственную частоту дискретизации, с которой смешивается конференция.
							   ; Это значение устанавливается автоматически
                               ; по умолчанию отрегулируйте частоту дискретизации до наилучшего качества.
                               ; Другие значения могут быть любыми в диапазоне от 8000-192000.  Если бы
                               ; установлена частота дискретизации, которую Asterisk не поддерживает,
							   ; ближайшая частота дискретизации, которую Asterisk поддерживает, к запрошенной
                               ; будет использоваться.

;maximum_sample_rate=none      ; Устанавливает максимальную частоту дискретизации конференции
                               ; смешивается в. По умолчанию это значение не является максимальным.
                               ; Значения могут быть любыми в диапазоне от 8000-192000.

;mixing_interval=40     ; Устанавливает внутренний интервал смешивания в миллисекундах для моста.  Этот
                        ; число отражает, насколько плотным или свободным будет микширование на конференции.
                        ; Для повышения производительности может потребоваться больший интервал смешивания, например 40 мс
                        ; быть избранным.  Использование большего интервала смешивания происходит за счет введения
                        ; большая задержка в соединении.  Допустимыми значениями здесь являются 10, 20, 40,
						; или 80.  По умолчанию используется 20 мс.

;video_mode = follow_talker; Определяет, как confbridge обрабатывает рассылку видео участникам конференции.
                           ; Обратите внимание, что участники хотят просматривать видеопоток и быть его источником
                           ; _МУСТО_ использовать один и тот же видеокодек.  Кроме того, использование видео в сочетании с
                           ; использование буфера дрожания в настоящее время приводит к тому, что звук немного не синхронизирован
                           ; вместе с видео.  Это результат того, что jitterbuffer работает только со звуком
                           ; поток.  Рекомендуется отключать джиттербуфер при использовании видео.
                           ;
						   ; --- РЕЖИМЫ ---
                           ; нет: по умолчанию в конференции не установлены источники видеосигнала. Это все еще
                           ; пользователь может быть установлен в качестве источника видео с помощью действия AMI или DTMF
                           ; в любое время.
                           ;
                           ; follow_talker: видеопоток будет следить за тем, кто говорит и предоставляет видео.
                           ;
                           ; last_marked: последний отмеченный пользователь, присоединившийся к конференции с возможностью видеосвязи
                           ; будет единственным источником видео, распространяемым среди всех участников.
                           ; Если несколько отмеченных пользователей могут просматривать видео, последний, кто присоединится
                           ; всегда является источником, когда этот пользователь уходит, он переходит к тому, кто
						   ; присоединился до него.
                           ;
                           ; first_marked: Первый отмеченный пользователь, присоединившийся к конференции с возможностью видеосвязи
                           ; является единственным источником распространения видео среди всех участников. Если
						   ; этот пользователь уходит, отмеченный пользователь, который присоединится после него, становится источником.
                           ;
                           ; sfu: Модуль выборочной пересылки - устанавливает многопоточную работу
                           ; для проведения многопартийной видеоконференции.

;language=en               ; Установите язык, используемый для анонсов конференции.
                           ; По умолчанию используется en (английский).

;regcontext=conferences    ; Имя контекста, в котором регистрируются имена конференций в качестве расширений.
;video_update_discard=2000 ; Количество времени (в миллисекундах) для отклонения запросов на обновление видео после отправки видео
                           ; запрос на обновление. Значение по умолчанию - 2000. Запрос на обновление видео - это запрос на полное видео
                           ; внутрикадровый. Клиенты могут запросить это, если им требуется полный кадр для декодирования
                           ; видеопоток. Поскольку полный кадр может быть большим, ограничение частоты их появления может
						   ; снизить использование полосы пропускания за счет увеличения времени, которое может потребоваться вновь подключенному
                           ; канал для приема видеопотока.
;remb_send_interval=1000   ; Интервал (в миллисекундах), с которым объединенный кадр REMB будет отправлен источникам видео.
                           ; Кадр REMB содержит информацию о предполагаемом максимальном битрейте приемника. Путем создания комбинированного
                           ; кадр и отправка его источникам видео, на какой битрейт может повлиять отправитель
                           ; они делают выбор в пользу обеспечения лучшего опыта для получателей. По умолчанию это значение равно 0 или отключено.
;remb_behavior=average     ; Как строится объединенный отчет REMB для видеомоста SFU. Если установлено значение "среднее"
,						   ; то для построения среднего битрейта используется предполагаемый максимальный битрейт каждого приемника. Если
;						   ; установлено значение "lowest", отправителю пересылается самый низкий максимальный битрейт. Если установлено значение "самый высокий"
                           ; отправителю пересылается самый высокий максимальный битрейт. Если установлено значение "average_all", то одно среднее значение
                           ; генерируется от каждого получателя, и одно и то же значение отправляется каждому отправителю. Если установлено значение
                           ; "lowest_all" самый низкий максимальный битрейт из всех получателей отправляется каждому отправителю. Если установлено значение
;						   ; "highest_all", то каждому отправителю отправляется самый высокий максимальный битрейт из всех получателей.
                           ; Если установлено значение "принудительно", значение, заданное в remb_estimated_bitrate, отправляется каждому отправителю.
                           ; По умолчанию используется значение "среднее".
;remb_estimated_bitrate=0  ; Когда remb_behavior имеет значение "принудительно", этот параметр устанавливает предполагаемый битрейт
                           ; (в битах в секунду) отправляется каждому участнику в отчетах REMB.

;enable_events=no          ; Если включено, получатели, подключившиеся к мосту через драйвер канала
                           ; который поддерживает расширенный обмен сообщениями (в настоящее время только chan_pjsip), будет
                           ; получать сообщения в диалоговом окне, содержащие текст в формате JSON, описывающий
						   ; событие.  Заголовок Content-Type будет таким: "text/x-ast-confbridge-event".
                           ; Эта функция также должна быть включена в профилях пользователей.

; Все звуки в конференции настраиваются с помощью параметров профиля моста, приведенных ниже.
; Просто укажите параметр, за которым следует имя файла или полный путь к имени файла после
; параметра.  Пример: sound_had_joined=conf-hasjoin Это воспроизведет звуковой файл conf-hasjoin,
; найденный в каталоге sounds, при объявлении чьего-либо имени о присоединении
; к конференции.

;sound_join  ; Звук воспроизводится для всех, когда кто-то входит в конференцию.
;sound_leave ; Звук воспроизводится для всех, когда кто-то покидает конференцию.
;sound_has_joined ; Звук, воспроизводимый перед объявлением чьего-либо имени
				  ; присоединился к конференции. Это используется для пользовательских вводных.
                  ; Пример "_____ присоединился к конференции"
;sound_has_left ; Звук, воспроизводимый при объявлении чьего-либо имени,
				; покинул конференцию. Это используется для пользовательских вводных.
                ; Пример "_____ покинул конференцию"
;sound_kicked ; Звук воспроизводится для пользователя, которого выгнали из конференции.
;sound_muted  ; Звук воспроизводится при включении функции отключения звука с помощью меню DTMF.
;sound_unmuted  ; Звук воспроизводится, когда опция отключения звука отключена с помощью меню DTMF.
;sound_only_person ; Звук воспроизводится, когда пользователь является единственным участником конференции.
;sound_only_one ; Звук, воспроизводимый пользователю, когда есть только один другой
                ; человек участвует в конференции.
;sound_there_are  ; Звук воспроизводится при объявлении количества пользователей
                  ; находятся на конференции.
;sound_other_in_party; ; Этот файл используется совместно с 'sound_there_are"
                       ; при объявлении количества пользователей в конференции.
                       ; Звуки связаны друг с другом вот так.
                       ; "sound_there_are" звук есть <количество участников> "sound_other_in_party" звук другой в группе
;sound_place_into_conference ; Звук, воспроизводимый при подключении кого-либо к конференции
                             ; после ожидания отмеченного пользователя. Этот звук теперь устарел
                             ; поскольку он только когда - либо использовался неправильно, и исправление этой ошибки
                             ; сделал его полностью неиспользуемым.
;sound_wait_for_leader  ; Звук, воспроизводимый при подключении пользователя к конференции, которая
						; не может начаться до тех пор, пока не войдет отмеченный пользователь.
;sound_leader_has_left  ; Звук воспроизводится, когда последний отмеченный пользователь покидает конференцию.
;sound_get_pin ; Звук воспроизводится при запросе pin-кода конференции.
;sound_invalid_pin ; Звук воспроизводится при слишком многократном вводе неверного pin-кода.
;sound_locked ; Звук, воспроизводимый пользователю, пытающемуся присоединиться к заблокированной конференции.
;sound_locked_now ; Звук, воспроизводимый администратору после переключения конференции в заблокированный режим.
;sound_unlocked_now; Звук воспроизводился администратору после переключения конференции в разблокированный режим.
;sound_error_menu ; Звук воспроизводится при вводе недопустимого пункта меню.
;sound_begin ; Звук, воспроизводимый в конференции, когда первый отмеченный пользователь входит в конференцию.
;sound_binaural_on ; Звук, воспроизводимый при включении бинаурального звука
;sound_binaural_off ; Звук воспроизводится при выключенном бинауральном воспроизведении

; --- Параметры меню ConfBridge ---
; Приложение ConfBridge также имеет возможность
; применять пользовательские меню DTMF к каждому каналу с помощью
; приложения.  Подобно профилям пользователя и моста
; меню передается в ConfBridge в качестве аргумента в диалплане.
;
; Ниже приведен список действий меню, которые могут быть назначены
; последовательности DTMF.
;
; Чтобы первая цифра DTMF в последовательности была символом '#', вам нужно
; экранировать ее.  Если он не экранирован, то обычная обработка конфигурационного файла будет
; думать, что это директива типа #include.  Например:
; \#1=toggle_mute                      ; Pressing #1 переключит настройку отключения звука.
;
; С одной последовательностью DTMF может быть связано несколько действий. Это
; достигается путем объединения действий вместе и использования ',' в качестве разделителя.
; Пример: При нажатии кнопки "5" громкость как прослушивания, так и разговора сбрасывается.
; 5=reset_talking_volume, reset_listening_volume
;
; playback(<имя аудиофайла>&<имя аудиофайла>)
                                       ; Воспроизведение приведет к воспроизведению аудиофайла на канале
                                       ; а затем немедленно возвращайтесь на конференцию.
                                       ; Этот файл не может быть прерван DTMF.
                                       ; Несколько файлов могут быть объединены в цепочку с помощью символа
									   ; '&'.
; playback_and_continue(<название приглашения к воспроизведению>&<название приглашения к воспроизведению>)
                                       ; воспроизведение_и_континуум будет
                                       ; воспроизведите приглашение, продолжая
									   ; собирать последовательность dtmf.  Это полезно
                                       ; при использовании приглашения меню, описывающего все
                                       ; параметры меню.  Однако обратите внимание, что любой DTMF
                                       ; во время этого действия будут прекращены запросы
                                       ; воспроизведение.  Файлы подсказок могут быть объединены в цепочку
                                       ; используя символ '&' в качестве разделителя.
; toggle_mute      ; Переключатель включения и выключения звука.  Отключение звука заставит пользователя замолчать
                   ; для всех остальных, но пользователь все равно сможет прослушивать.
; toggle_binaural  ; Включение или выключение бинауральной обработки звука.

; no_op ; Это действие ничего не делает (никакой операции). Его единственная реальная цель существует для
        ; возможность зарезервировать последовательность в конфигурации в качестве последовательности выхода из меню.
; decrease_listening_volume ; Уменьшает громкость прослушивания канала.
; increase_listening_volume ; Увеличивает громкость прослушивания канала.
; reset_listening_volume    ; Сбросьте громкость прослушивания канала до уровня по умолчанию.

; decrease_talking_volume ; Уменьшает громкость разговора на канале.
; increase_talking_volume ; Увеличивает громкость разговора на канале.
; reset_talking_volume    ; Сбросьте громкость разговора на канале до уровня по умолчанию.
;
; dialplan_exec(context,exten,priority)  ; Действие dialplan_exec позволяет пользователю
                                         ; чтобы сбежать с конференции и выполнить
                                         ; команды в диалплане.  Как только абонентская группа
                                         ; при выходе пользователь будет возвращен в
										 ; конференцию.  Возможности безграничны!
; leave_conference ; Это действие позволяет пользователю выйти из конференции и продолжить
                   ; выполнение в диалплане.
;
; admin_kick_last  ; Это действие позволяет администратору удалить последнего участника из
				   ; конференции. Это действие будет работать только для администраторов, что позволяет
                   ; единое меню, которое будет использоваться как пользователями, так и администраторами.
;
; admin_toggle_conference_lock ; Это действие позволяет администратору переключать блокировку и
							   ; разблокировку конференции.  Неадминистраторы не могут использовать
							   ; это действие, даже если оно есть в их меню.
; set_as_single_video_src   ; Это действие позволяет любому пользователю установить себя в качестве
							; единого источника видео, распространяемого среди всех участников.
                            ; Это приведет к тому, что видеопоток будет привязан к ним независимо
                            ; от того, на что установлен video_mode.
; release_as_single_video_src ; Это действие позволяет пользователю освободить себя в качестве
							  ; источника видео.  Если для video_mode не установлено значение "нет"
                              ; это действие приведет к возврату конференции в
							  ; любой видеорежим, используемый профилем bridge.
                              ;
                              ; Обратите внимание, что это действие не будет иметь никакого эффекта, если пользователь
                              ; в настоящее время не является источником видео.  Кроме того, пользователь является
                              ; использование этого действия не гарантирует, что они не будут
                              ; снова станьте источником видео.  Мост вернется
                              ; для любой операции, для которой установлена опция video_mode
							  ; после выпуска video src.

; admin_toggle_mute_participants ; Это действие позволяет администратору отключить звук
                                 ; указать для всех неадминистраторов в рамках конференции.
                                 ; Последующие пользователи, не являющиеся администраторами, присоединяющиеся к отключенной конференции, будут
                                 ; начать отключать звук.  Это не затрагивает всех пользователей с правами администратора
                                 ; вариант.  Обратите внимание, что все пользователи, независимо от их администратора
                                 ; статус, получают уведомление о том, что конференция отключена, когда
                                 ; состояние переключено.

; participant_count        ; Это действие воспроизводит количество участников в данный момент
                           ; на конференции

[sample_user_menu]
type=menu
*=playback_and_continue(conf-usermenu)
*1=toggle_mute
1=toggle_mute
*4=decrease_listening_volume
4=decrease_listening_volume
*6=increase_listening_volume
6=increase_listening_volume
*7=decrease_talking_volume
7=decrease_talking_volume
*8=leave_conference
8=leave_conference
*9=increase_talking_volume
9=increase_talking_volume

[sample_admin_menu]
type=menu
*=playback_and_continue(conf-adminmenu)
*1=toggle_mute
1=toggle_mute
*2=admin_toggle_conference_lock ; применяется только к пользователям с правами администратора
2=admin_toggle_conference_lock  ; применяется только к пользователям с правами администратора
*3=admin_kick_last       ; применяется только к пользователям с правами администратора
3=admin_kick_last        ; применяется только к пользователям с правами администратора
*4=decrease_listening_volume
4=decrease_listening_volume
*6=increase_listening_volume
6=increase_listening_volume
*7=decrease_talking_volume
7=decrease_talking_volume
*8=no_op
8=no_op
*9=increase_talking_volume
9=increase_talking_volume
/opt/etc/asterisk/confbridge.conf

Код: Выделить всё

[general]

[fancybridge]
type=bridge
max_members=20
mixing_interval=10
internal_sample_rate=auto
record_conference=no
language=ru


[fancyuser]
type=user
music_on_hold_when_empty=yes
music_on_hold_class=default
announce_user_count_all=yes
announce_join_leave=yes
dsp_drop_silence=yes
denoise=yes
;pin=456

[fancymenu]
type=menu
;*=playback_and_continue(conf-togglemute&press&digits/1&silence/1&conf-leave&press&digits/2& silence/1&add-a-caller&press&digits/3&silence/1& conf-decrease-talking&press&digits/4& silence/1&reset-talking&press&digits/5&silence/1&increase-talking&press&digits/6&silence/ 1&conf-decrease-listening&press&digits/7&silence/1& conf-reset-listening&press&digits/8&silence/1& conf-increase-listening&press&digits/9&silence/1&conf-exit-menu&press&digits/0)
*1=toggle_mute
1=toggle_mute
*2=leave_conference
2=leave_conference
*3=dialplan_exec(addcallers,0001,1)
3=dialplan_exec(addcallers,0001,1)
*4=decrease_listening_volume
4=decrease_listening_volume
*5=reset_listening_volume
5=reset_listening_volume
*6=increase_listening_volume
6=increase_listening_volume
*7=decrease_talking_volume
7=decrease_talking_volume
*8=reset_talking_volume
8=reset_talking_volume
*9=increase_talking_volume
9=increase_talking_volume
*0=no_op
0=no_op


[bridge**1]
type=bridge
max_members=20
mixing_interval=10
internal_sample_rate=auto
record_conference=no
language=ru

[user**1]
type=user
music_on_hold_when_empty=yes
music_on_hold_class=default
announce_user_count_all=no
announce_join_leave=yes
announce_join_leave=no
announce_only_user=no
dsp_drop_silence=yes
denoise=no

[menu**1]
type=menu
;**=dialplan_exec(macro-nway-invite,s,1)
**=leave_conference
/opt/etc/asterisk/dnsmgr.conf

Код: Выделить всё

[general]
;enable=yes		; включить создание управляемых запросов DNS
			;   значение по умолчанию равно нет 'no'
;refreshinterval=1200	; обновляйте управляемые запросы DNS каждые <n> секунд
			; значение по умолчанию - 300 (5 минут)
/opt/etc/asterisk/dsp.conf

Код: Выделить всё

[default]
;
; Продолжительность звука (в миллисекундах) до наступления периода молчания
; считается переходом от разговора к тишине или период шума преобразует тишину
; в разговор.  [по умолчанию=256]
;
;silencethreshold=256

; DTMF Обратное скручивание и нормальное скручивание - это разница в мощности между энергиями строк и столбцов.
;
; Обычный поворот - это когда энергия строки больше энергии столбца.
; Обратная закрутка - это когда энергия колонны больше.
;
; Разница в уровне мощности между частотами для разных администраций/Roas
;           Увеличение мощности         эквивалент
;             нормальный реверс         dB's
; AT&T(по умолчанию) 6.31    2.51            8dB(нормальный), 4dB(реверс)
; NTT           3.16    3.16            Max. 5dB
; Датский        3.98    3.98            Max. 6dB
; Австралийский    10.0    10.0            Max. 10dB
; Бразильский     7.94    7.94            Max. 9dB
; ETSI          3.98    3.98            Max. 6dB

;значения AT&T, совместимые с предыдущей версией
; RADIO_RELAX disabled, and relaxdtmf=no
;               6.30    2.50            7.99dB(normal), 3.98dB(reverse)
; RADIO_RELAX disabled, and relaxdtmf=yes
;               6.30    4.00            7.99dB(normal), 6.02dB(reverse)
; RADIO_RELAX enabled, and relaxdtmf=no
;               6.30    2.50            7.99dB(normal), 3.984dB(reverse)
; RADIO_RELAX enabled, and relaxdtmf=yes
;               6.30    6.50            7.99dB(normal), 8.13dB(reverse)

;Если вы не знаете, что они означают, не меняйте их.
;dtmf_normal_twist=6.31
;dtmf_reverse_twist=2.51
;relax_dtmf_normal_twist=6.31
;relax_dtmf_reverse_twist=3.98

;последовательное число попаданий/промахов в течение 12,75 мс перед цифрой /отсутствие цифры считается допустимым
;dtmf_hits_to_begin=2
;dtmf_misses_to_end=3
/opt/etc/asterisk/extconfig.conf

Код: Выделить всё

;
; Статическая внешняя конфигурация и конфигурация в реальном времени
; конфигурация движка
;
; Смотреть https://wiki.asterisk.org/wiki/display/AST/Realtime+Database+Configuration
; для получения основной информации о форматировании таблицы.
;
[settings]
;
; Статические конфигурационные файлы:
;
; file.conf => driver,database[,table[,priority]]
;
; сопоставляет конкретный конфигурационный файл с заданным
; драйвером базы данных, базой данных и таблицей (или использует
; имя файла в качестве таблицы, если не указано)
;
; Раскомментируйте, чтобы загрузить queues.conf через движок odbc.
;
;queues.conf => odbc,asterisk,ast_config
;extensions.conf => sqlite,asterisk,ast_config
;
; Следующие файлы НЕ могут быть загружены из хранилища реального времени:
;	asterisk.conf
;	extconfig.conf (этот файл)
;	logger.conf
;
; Кроме того, следующие файлы не могут быть загружены с
; Хранилище в реальном времени, если не загружен драйвер хранилища
; раннее использование инструкций 'preload' в modules.conf:
;	manager.conf
;	cdr.conf
;	rtp.conf
;
; Именованные списки управления доступом, указанные в режиме реального времени, также не могут быть использованы
; из manager.conf, если предварительно не загружен драйвер хранилища.
; Попытка использовать сохраненный в реальном времени именованный ACL до
; загрузки драйвера приведет к недопустимому ACL, который
; отклоняет все адреса.
;
; Механизм настройки в реальном времени
;
; сопоставляет конкретное семейство конфигураций реального времени
; с данным драйвером базы данных,
; базой данных и таблицей (или использует имя
; семейства, если таблица не указана
;
;example => odbc,asterisk,alttable,1
;example => mysql,asterisk,alttable,2
;example2 => ldap,"dc=oxymium,dc=net",example2
;
; Кроме того, теперь поддерживаются приоритеты для использования в качестве методов отработки отказа
; для извлечения данных в реальном времени.  Если одному соединению не удается получить какую
; -либо информацию, то затем будет испробован следующий последовательный приоритет.  Это
; особенно хорошо работает с подключениями ODBC, sincerest_odbc теперь кэширует
; при возникновении сбоев подключения и предотвращает немедленную повторную попытку этих
; подключений до истечения указанного таймаута.  Примечание: приоритеты должны
; начинаться с 1 и быть последовательными (т.е. если у вас есть только приоритеты 1, 2,
; и 4, то 4 будет проигнорировано, потому что нет 3).
;
;
; Возможные серверные части драйверов:
;
; "odbc" показан в примерах ниже, но не является единственным допустимым механизмом реального времени.
;  Существует несколько возможных вариантов:
;    odbc ... res_config_odbc
;    sqlite ... res_config_sqlite
;    sqlite3 ... res_config_sqlite3
;    pgsql ... res_config_pgsql
;    curl ... res_config_curl
;    ldap ... res_config_ldap
;    mysql ... res_config_mysql (доступно через дополнения в меню select)
;
; Примечание: Серверные части res_config_pgsql и res_config_sqlite настраивают
; базу данных ;, используемую в их соответствующих файлах конфигурации, и игнорируют имя базы данных,
; настроенное в этом файле.
;
;iaxusers => odbc,asterisk
;iaxpeers => odbc,asterisk
;sippeers => odbc,asterisk
;sipregs => odbc,asterisk ; (по возможности избегайте sipregs, например, используя view)
;ps_endpoints => odbc,asterisk
;ps_auths => odbc,asterisk
;ps_aors => odbc,asterisk
;ps_domain_aliases => odbc,asterisk
;ps_endpoint_id_ips => odbc,asterisk
;ps_outbound_publishes => odbc,asterisk
;ps_inbound_publications = odbc,asterisk
;ps_asterisk_publications = odbc,asterisk
;voicemail => odbc,asterisk
;extensions => odbc,asterisk
;meetme => mysql,general
;queues => odbc,asterisk
;queue_members => odbc,asterisk
;queue_rules => odbc,asterisk
;acls => odbc,asterisk
;musiconhold => mysql,general
;musiconhold_entry => mysql,general
;queue_log => mysql,general
;
;
; В то время как большинство динамических движков реального времени автоматически используются при определении в
; этот файл, "расширения", явно таковым не является.  Чтобы активировать динамические расширения real time,
; вы должны включить их в каждом соответствующем контексте в
; extensions.conf с помощью инструкции switch.  Синтаксис таков:
; switch => В реальном времени/[[db_context@]имя_таблицы]/<параметры>
; Единственной доступной в настоящее время опцией является опция "p", которая запрещает
; запросы шаблона расширения к базе данных.  Если у вас не определены шаблоны
; в определенном контексте это сэкономит довольно много процессорного времени.  Однако,
; обратите внимание, что использование динамических расширений реального времени больше не рекомендуется в качестве
; наилучшей практики; вместо этого вам следует рассмотреть возможность написания статической абонентской группы с
; надлежащей абстракцией данных с помощью такого инструмента, как func_odbc.
/opt/etc/asterisk/extensions.ael

Код: Выделить всё

//
// Пример конфигурационного файла AEL
//
//
// Файл конфигурации статического расширения, используемый
// модулем pbx_ael. Именно здесь вы настраиваете все свои
// входящие и исходящие вызовы в Asterisk.
//
// Этот конфигурационный файл перезагружен
// - С помощью команды "ael reload" в CLI
// - С помощью команды "перезагрузить" (которая перезагружает все) в CLI

// Категория "Global" содержит глобальные переменные, на которые можно ссылаться
// в диалплане с помощью функции ГЛОБАЛЬНОГО диалплана:
//  ${GLOBAL(VARIABLE)}
// ${${GLOBAL(VARIABLE)}} или ${text${GLOBAL(VARIABLE)}} или любой гибрид
// Переменные среды Unix/Linux достигаются с помощью диалплана ENV
// функция: ${ENV(VARIABLE)}
//

// ОБРАТИТЕ ВНИМАНИЕ! обратите внимание! обратите внимание!
// Asterisk по умолчанию загрузит как extensions.conf, так и расширения.файлы ael.
// При загрузке этих файлов диалпланы, сгенерированные из обоих с, будут объединены,
// поэтому вы должны убедиться, что у вас нет никаких перекрывающихся контекстов или глобальных
// переменные. Если вы это сделаете, то при обработке данных может возникнуть неожиданное поведение
// объединено.
// ОБРАТИТЕ ВНИМАНИЕ! обратите внимание! обратите внимание!

globals {
	CONSOLE-AEL="Console/dsp"; 		// Консольный интерфейс для демонстрации
	//CONSOLE-AEL=Zap/1;
	//CONSOLE-AEL=Phone/phone0;
	IAXINFO-AEL=guest;				// Имя пользователя/пароль IAXtel
	//IAXINFO-AEL="myuser:mypass";
	OUTBOUND-TRUNK="Zap/g2";		// Магистральный интерфейс
	//
	// Обратите внимание на 'g2' в переменной ИСХОДЯЩЕЙ магистрали выше. Он указывает, какая группа (определенная
	// в chan_dahdi.conf) для набора номера, т.е. группы 2, и как выбрать канал для использования в
	// указанной группе. Четырьмя возможными вариантами являются:
	//
	// g: выберите незанятый канал DAHDI с наименьшим номером
	// (он же восходящая последовательная группа поиска).
	// G: выберите незанятый канал DAHDI с наибольшим номером
	// (он же нисходящая последовательная группа поиска).
	// r: используйте циклический поиск, начиная со следующего по величине канала по сравнению с предыдущим
	// временем (он же восходящая ротационная поисковая группа).
	// R: используйте циклический поиск, начиная со следующего канала с наименьшим значением по сравнению с предыдущим
	// временем (он же нисходящая ротационная поисковая группа).
	//
	OUTBOUND-TRUNKMSD=1;					// Цифры MSD для удаления (обычно 1 или 0)
	//OUTBOUND-TRUNK2=IAX2/пользователь:пароль@провайдер;
};

//
// Любая категория, отличная от "Общих" и "Глобальных", представляет
// контексты расширений, которые представляют собой коллекции расширений.
//
// Добавочные имена могут состоять из цифр, букв или их комбинаций
// из них. Если имя добавочного номера имеет префикс '_'
// символ, он интерпретируется как шаблон, а не как
// литерал.  В узорах некоторые символы имеют особое значение:
//
//   X - любая цифра из 0-9
//   Z - любая цифра из 1-9
//   N - любая цифра из 2-9
// [1235-9] - любая цифра в скобках (в данном примере 1,2,3,5,6,7,8,9)
// . - подстановочный знак, соответствует всему остальному (например, _9011. соответствует
// все, что начинается с 9011, исключая сам 9011)
// ! - подстановочный знак, приводит к завершению процесса сопоставления, как только
// он может однозначно определить, что никакие другие совпадения невозможны
//
// Например, добавочный номер _NXXXXXX будет соответствовать обычному 7-значному набору,
// в то время как _1NXXNXXXXXXX будет представлять код города плюс номер телефона
// перед которым стоит единица.
//
// Каждый шаг расширения упорядочен по приоритету, который должен
// всегда начинайте с 1, чтобы считаться допустимым расширением.  Приоритет
// "следующий" или "n" означает предыдущий приоритет плюс единица, независимо от того, является ли
// предыдущий приоритет был связан с текущим расширением или нет.
// Приоритет "тот же" или "s" означает тот же, что и указанный ранее
// приоритет, опять же независимо от того, была ли предыдущая запись для
// того же расширения.  За приоритетами может сразу следовать знак "плюс"
// и другое целое число для добавления этой суммы (наиболее полезно с 's' или 'n').
// Приоритеты могут тогда также иметь псевдоним или метку в
// скобка после их имени, которая может быть использована в ситуациях перехода
//
// Контексты содержат несколько строк, по одной для каждого шага каждого
// расширение, которое может принимать одну из двух форм, перечисленных ниже,
// причем предпочтительна первая форма.  Одно может включать в себя другое
// контекст также в текущем, необязательно с
// датой и временем.  Включенные контексты включаются в заказ
// они перечислены в списке.
//
//context name {
//	exten-name => {
//		application(arg1,arg2,...);
//
// 	Список сроков для включений таков
//
// <диапазон времени>|<дни недели>|<дни месяца>|<месяцы>
//   <time range>|<days of week>|<days of month>|<months>
//
// включает в себя {
// дневное время|9:00-17:00|пн-пт|*|*;
//	includes {
//		daytime|9:00-17:00|mon-fri|*|*;
//      };
//
// ignorepat можно использовать для указания водителям не отменять звуковой сигнал при вызове
// получение определенного шаблона.  Наиболее часто используемым примером является
// конечно, '9', как это:
//
//	ignorepat => 9;
//
// 	таким образом, звуковой сигнал остается даже после набора 9.
//};


//
// Примеры записей для extensions.conf
//
//
context ael-dundi-e164-canonical {
	//
	// Перечислите канонические записи здесь
	//
	// 12564286000 => &ael-std-exten(6000,IAX2/foo);
	// _125642860XX => Dial(IAX2/otherbox/${EXTEN:7});
};

context ael-dundi-e164-customers {
	//
	// Если вы являетесь провайдером или реселлером, перечислите здесь своих клиентов.
	//
	//_12564286000 => Dial(SIP/customer1);
	//_12564286001 => Dial(IAX2/customer2);
};

context ael-dundi-e164-via-pstn {
	//
	// Если вы свободно осуществляете доставку звонков в ТФОП, перечислите их здесь
	//
	//_1256428XXXX => Dial(DAHDI/G2/${EXTEN:7}); // Expose all of 256-428
	//_1256325XXXX => Dial(DAHDI/G2/${EXTEN:7}); // Ditto for 256-325
};

context ael-dundi-e164-local {
	//
	// Контекст для подключения вашего пользователя dundi IAX2 или SIP для
	// полного доступа
	//
	includes {
	 ael-dundi-e164-canonical;
	 ael-dundi-e164-customers;
	 ael-dundi-e164-via-pstn;
	};
};

context ael-dundi-e164-switch {
	//
	// Просто оболочка для коммутатора
	//

	switches {
		DUNDi/e164;
	};
};

context ael-dundi-e164-lookup {
	//
	// Локально для поиска попробуйте найти локальное решение E.164
	// тогда попробуй Данди, если у нас его нет.
	//
	includes {
		ael-dundi-e164-local;
		ael-dundi-e164-switch;
	};
	//
};

//
// DUNDi также может быть реализован как макрос вместо использования
// драйвер локального канала.
//
macro ael-dundi-e164(exten) {
//
// ARG1 - это добавочный номер для набора
//
	goto ${exten}|1;
	return;
};

//
// Вот заявки, которые вам необходимы для участия в IAXTEL
// система маршрутизации вызовов.  Большинство номеров IAXTEL начинаются с 1-700, но
// есть исключения.  Для получения дополнительной информации и подписания
// вверх, пожалуйста, перейдите к www.gnophone.com или www.iaxtel.com
//
context ael-iaxtel700 {
	_91700XXXXXXX => Dial(IAX2/${IAXINFO-AEL}@iaxtel.com/${EXTEN:1}@iaxtel);
};

//
// Оператор SWITCH разрешает серверу совместно использовать диалплан с
// другой сервер. Используйте с осторожностью: операторы взаимного переключения не являются
// разрешено (например, как A -> B, так и B -> A), и коммутируемому серверу необходимо
// находиться в режиме онлайн, иначе набор номера может сильно затянуться.
//
context ael-iaxprovider {
	switches {
	// IAX2/user:[key]@myserver/mycontext;
	};
};

context ael-trunkint {
	//
	// Международные междугородние перевозки по магистрали
	//
	includes {
		ael-dundi-e164-lookup;
	};
	_9011. => {
		&ael-dundi-e164(${EXTEN:4});
		Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
	};
};

context ael-trunkld {
	//
	// Контекст на большом расстоянии, доступ к которому осуществляется через магистраль
	//
	includes {
		ael-dundi-e164-lookup;
	};
	_91NXXNXXXXXX => {
		&ael-dundi-e164(${EXTEN:1});
		Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
	};
};

context ael-trunklocal {
	//
	// Местный семизначный набор, доступный через магистральный интерфейс
	//
	_9NXXXXXX => {
		Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
	};
};

context ael-trunktollfree {
	//
	// Междугородний контекст, доступ к которому осуществляется через магистральный интерфейс
	//

	_91800NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
	_91888NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
	_91877NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
	_91866NXXXXXX => Dial(${OUTBOUND-TRUNK}/${EXTEN:${OUTBOUND-TRUNKMSD}});
};

context ael-international {
	//
	// Основной контекст для международных междугородних перевозок
	//
	ignorepat => 9;
	includes {
		ael-longdistance;
		ael-trunkint;
	};
};

context ael-longdistance {
	//
	// Основной контекст для работы на больших расстояниях
	//
	ignorepat => 9;
	includes {
		ael-local;
		ael-trunkld;
	};
};

context ael-local {
	//
	// Основной контекст только для местных, бесплатных звонков и звонков iaxtel
	//
	ignorepat => 9;
	includes {
		ael-default;
		ael-trunklocal;
		ael-iaxtel700;
		ael-trunktollfree;
		ael-iaxprovider;
	};
};

//
// Вы также можете использовать альтернативный тип переключателя, чтобы разрешить
// расширения, которые здесь неизвестны, например, с удаленным
// Переключение IAX вы прозрачно получаете доступ к удаленному
// АТС Asterisk
//
// switch => IAX2/пользователь:пароль@bigserver/local
//
// "Lswitch" похож на переключатель, но является буквальным в том смысле, что
// подстановка переменной не выполняется во время загрузки
// но передается непосредственно коммутатору (предположительно для того, чтобы
// быть замененным в самой процедуре переключения)
//
// lswitch => Loopback/12${EXTEN}@othercontext
//
// "eswitch" подобен переключателю, но вычисление
// подстановки переменной выполняется во время выполнения перед
// передается в процедуру переключения.
//
// eswitch => IAX2/context@${CURSERVER}


macro ael-std-exten-ael( ext , dev ) {
        Dial(${dev}/${ext},20);
        switch(${DIALSTATUS}) {
        case BUSY:
                Voicemail(${ext},b);
                break;
        default:
                Voicemail(${ext},u);
        };
        catch a {
                VoiceMailMain(${ext});
                return;
        };
	return;
};

context ael-demo {
	s => {
		Wait(1);
		Answer();
		Set(TIMEOUT(digit)=5);
		Set(TIMEOUT(response)=10);
restart:
		Background(demo-congrats);
instructions:
		for (x=0; ${x} < 3; x=${x} + 1) {
			Background(demo-instruct);
			WaitExten();
		};
	};
	2 => {
		Background(demo-moreinfo);
		goto s|instructions;
	};
	3 => {
		Set(LANGUAGE()=fr);
		goto s|restart;
	};
	1000 => {
		goto ael-default|s|1;
	};
	500 => {
		Playback(demo-abouttotry);
		Dial(IAX2/guest@misery.digium.com/s@default);
		Playback(demo-nogo);
		goto s|instructions;
	};
	600 => {
		Playback(demo-echotest);
		Echo();
		Playback(demo-echodone);
		goto s|instructions;
	};
	_1234 => &ael-std-exten-ael(${EXTEN}, "IAX2");
	8500 => {
		VoicemailMain();
		goto s|instructions;
	};
	# => {
		Playback(demo-thanks);
		Hangup();
	};
	t => goto #|1;
	i => Playback(invalid);
};


//
// Если вы хотите использовать AEL для своего контекста по умолчанию, удалите его
// из extensions.conf (или измените его название, или закомментируйте его)
// а затем раскомментируйте то, что здесь.
//

context ael-default {

// По умолчанию мы включаем демо-версию.  В производственной системе вы
// вероятно, я не хочу размещать там демо-версию.

	includes {
		ael-demo;
	};
//
// Расширения, подобные двум приведенным ниже, можно использовать для FWD, Nikotel, sipgate и т.д.
// Обратите внимание, что у вас должен быть раздел [sipprovider] в sip.conf, тогда как
// тот otherprovider.net пример не требует такого однорангового определения
//
//_41X. => Dial(SIP/${EXTEN:2}@sipprovider,,r);
//_42X. => Dial(SIP/user:passwd@${EXTEN:2}@otherprovider.net,30,rT);

// Реальные расширения были бы здесь. Как правило, вы хотите, чтобы реальные расширения имели длину
// 4 или 5 цифр (хотя такого требования нет) и начинались с
// одиночной цифры, которая является довольно большой (например, 6 или 7), чтобы у вас было достаточно
// места для перекрытия расширений и опций меню без конфликтов.  Вы можете использовать псевдоним
// их тоже с именами и используйте глобальные переменные

// 6245  => {
//		hint(SIP/Grandstream1&SIP/Xlite1,Joe Schmoe); // Подсказки канала о присутствии
// 		Dial(SIP/Grandstream1,20,rt);                 // передача разрешения
//        Dial(${HINT}/5245},20,rtT);                    // Используйте подсказку, как указано в списке
//        switch(${DIALSTATUS}) {
//        case BUSY:
//                Voicemail(6245,b);
//				return;
//        default:
//                Voicemail(6245,u);
//				return;
//        };
//       };

// 6361 => Dial(IAX2/JaneDoe,,rm);                // звоните без ограничения по времени
// 6389 => Dial(MGCP/aaln/1@192.168.0.14);
// 6394 => Dial(Local/6275/n);                    // это позволит набрать ${MARK}

// 6275 => &ael-stdexten(6275,${MARK});           // предполагая, что ${MARK} - это что-то вроде DAHDI/2
// mark => goto 6275|1;                          // пометка псевдонима для 6275
// 6536 => &ael-stdexten(6236,${WIL});            // То же самое для wil
// wil  => goto 6236|1;
//
// Некоторые другие удобные вещи - это расширение для проверки голосовой почты через
// владелец голосовой почты
//
// 8500 => {
//			VoicemailMain();
//			Hangup();
//	       };
//
// Или конференц-зал (вам нужно будет отредактировать meetme.conf, чтобы включить эту комнату)
//
// 8600 => Meetme(1234);
//
// Или воспроизведение объявления вызываемому абоненту, как только он ответит
//
// 8700 => Dial(${MARK},30,A(/path/to/my/announcemsg /путь/к/моему/объявлению))
//
// Для получения дополнительной информации о приложениях просто введите "показать приложения show applications" в вашем
// дружественная командная строка CLI Asterisk.
//
// 'show application <команда>' покажет подробную информацию о том, как вы
// используйте это конкретное приложение в этом файле, абонентскую группу.
//
}
conference => {
                ConfBridge(${CONFNUM},,,default_menu);
        }
conference_add => {
                Read(INVITEN,dial,11,i);
                System(/usr/bin/php/script/conference.php 2 ${CALLERID(num)} ${INVITEN});
        }
количество слов: 1998
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 802
Стаж: 5 лет
Откуда: Вологодская область
Поблагодарили: 32 раза
Контактная информация:

Установка на Wi Fi маршрутизатор Keenetic ОС Entware Asterisk

Сообщение Артём Мамзиков »

/opt/etc/asterisk/extensions.conf

Код: Выделить всё

[globals]


[general]
autofallthrough=no



[default]
exten => s,1,Verbose(1|Unrouted call handler)
exten => s,n,Answer()
exten => s,n,Wait(1)
exten => s,n,Playback(agent-user)
exten => s,n,Hangup()

[phones-nb]
include => internal-nb
include => external-outgoing
include => external-incoming
include => voicemail-nb
include => conference_calls
include => conference_room
include => musics-nb
include => echo-test-nb
include => illegal-number

[phones-wb]
include => internal-wb
include => external-outgoing
include => external-incoming
include => voicemail-nb
include => conference_calls
include => conference_room
include => musics-wb
include => echo-test-wb
include => illegal-number





[echo-test-nb]
exten => 800,1,NoOp()
same => n,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,Playback(silence/1&hello)
same => n,Wait(1)
same => n,Playback(demo-echotest)
same => n,Record(/opt/tmp/802-${UNIQUEID}.wav,0,120)
same => n,Wait(1)
same => n,Playback(/opt/tmp/802-${UNIQUEID})
same => n,System(rm /opt/tmp/802-${UNIQUEID}.wav)
same => n,Wait(1)
same => n,Playback(demo-echodone&silence/1)
same => n,Hangup()


exten => 802,1,NoOp()
same => n,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,Playback(thank-you-for-calling)
same => n,Playback(vm-goodbye&silence/1)
same => n,System(/opt/etc/asterisk/scripts/callback-802.sh ${CALLERID(num)}&)
same => n,Hangup


exten => 809,1,NoOp()
same => n,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,Playback(/opt/share/asterisk/sounds/itsp_names/sipnet)
same => n,Wait(1)
same => n,Playback(/opt/share/asterisk/sounds/itsp_names/youmagic)
same => n,Wait(1)
same => n,Playback(/opt/share/asterisk/sounds/itsp_names/multifon)
same => n,Wait(1)
same => n,Playback(/opt/share/asterisk/sounds/itsp_names/zadarma)
same => n,Wait(1)
same => n,Playback(/opt/share/asterisk/sounds/itsp_names/nonoh)
same => n,Wait(1)
same => n,Hangup


[echo-test-wb]
exten => 800,1,NoOp()
same => n,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,Playback(silence/1&hello)
same => n,Wait(1)
same => n,Playback(demo-echotest)
same => n,Record(/opt/tmp/802-${UNIQUEID}.wav,0,120)
same => n,Wait(1)
same => n,Playback(/opt/tmp/802-${UNIQUEID})
same => n,System(rm /opt/tmp/802-${UNIQUEID}.wav)
same => n,Wait(1)
same => n,Playback(demo-echodone&silence/1)
same => n,Hangup()


exten => 802,1,NoOp()
same => n,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,Playback(thank-you-for-calling)
same => n,Playback(vm-goodbye&silence/1)
same => n,System(/opt/etc/asterisk/scripts/callback-802.sh ${CALLERID(num)}&)
same => n,Hangup


exten => 809,1,NoOp()
same => n,Ringing())
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,Playback(/opt/share/asterisk/sounds/itsp_names/sipnet)
same => n,Wait(1)
same => n,Playback(/opt/share/asterisk/sounds/itsp_names/youmagic)
same => n,Wait(1)
same => n,Playback(/opt/share/asterisk/sounds/itsp_names/multifon)
same => n,Wait(1)
same => n,Playback(/opt/share/asterisk/sounds/itsp_names/zadarma)
same => n,Wait(1)
same => n,Playback(/opt/share/asterisk/sounds/itsp_names/nonoh)
same => n,Wait(1)
same => n,Hangup




[musics-nb]
;=============== МУЗЫКА ===============================================================
exten => _9999,1,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n(play),Playback(silence/1&/opt/share/asterisk/sounds/moh/manolo_camp-morning_coffee)
same => n,Goto(musics,_9999,play)

exten => _9998,1,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n(play),Playback(silence/1&/opt/share/asterisk/sounds/moh/macroform-cold_day)
same => n,Goto(musics,_9998,play)
same => n,Hangup()

exten => _9997,1,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n(play),Playback(silence/1&/opt/share/asterisk/sounds/moh/reno_project-system)
same => n,Goto(musics,_9997,play)
same => n,Hangup()

exten => _9996,1,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n(play),Playback(silence/1&/opt/share/asterisk/sounds/moh/macroform-the_simplicity)
same => n,Goto(musics,_9996,play)
same => n,Hangup()

exten => _9995,1,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n(play),Playback(silence/1&/opt/share/asterisk/sounds/moh/macroform-robot_dity)
same => n,Goto(musics,_9995,play)
same => n,Hangup()


[musics-wb]
exten => _9999,1,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n(play),Playback(silence/1&/opt/share/asterisk/sounds/moh/manolo_camp-morning_coffee)
same => n,Goto(musics,_9999,play)

exten => _9998,1,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n(play),Playback(silence/1&/opt/share/asterisk/sounds/moh/macroform-cold_day)
same => n,Goto(musics,_9998,play)
same => n,Hangup()

exten => _9997,1,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n(play),Playback(silence/1&/opt/share/asterisk/sounds/moh/reno_project-system)
same => n,Goto(musics,_9997,play)
same => n,Hangup()

exten => _9996,1,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n(play),Playback(silence/1&/opt/share/asterisk/sounds/moh/macroform-the_simplicity)
same => n,Goto(musics,_9996,play)
same => n,Hangup()

exten => _9995,1,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n(play),Playback(silence/1&/opt/share/asterisk/sounds/moh/macroform-robot_dity)
same => n,Goto(musics,_9995,play)
same => n,Hangup()






;=============== Внешние исходящие вызовы ===============
[external-outgoing]
exten => _*[1-5]x.,1,Macro(trunkOutgoing,${EXTEN}); allowed any number with prefix *[1-5]

[macro-trunkOutgoing]
exten => s,1,NoOp()
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,GotoIf($[${ARG1:1:1}=1]?sipnet)
same => n,GotoIf($[${ARG1:1:1}=2]?youmagic)
same => n,GotoIf($[${ARG1:1:1}=3]?multifon)
same => n,GotoIf($[${ARG1:1:1}=4]?zadarma)
same => n,GotoIf($[${ARG1:1:1}=5]?nonoh)
same => n,Hangup()

same => n(sipnet),Playback(silence/1&/opt/share/asterisk/sounds/itsp_names/sipnet)
same => n,MixMonitor(/opt/records/${CALLERID(num)}-${ARG1:2}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording
same => n,Dial(PJSIP/${ARG1:2}@sipnet,,T)
same => n,Hangup()

same => n(youmagic),Playback(silence/1&/opt/share/asterisk/sounds/itsp_names/youmagic)
same => n,MixMonitor(/opt/records/${CALLERID(num)}-${ARG1:2}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording
same => n,Dial(PJSIP/${ARG1:2}@youmagic,,T)
same => n,Hangup()

same => n(multifon),Playback(silence/1&/opt/share/asterisk/sounds/itsp_names/multifon)
same => n,MixMonitor(/opt/records/${CALLERID(num)}-${ARG1:2}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording
same => n,Dial(PJSIP/${ARG1:2}@multifon,,T)
same => n,Hangup()

same => n(zadarma),Playback(silence/1&/opt/share/asterisk/sounds/itsp_names/zadarma)
same => n,MixMonitor(/opt/records/${CALLERID(num)}-${ARG1:2}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording
same => n,Dial(PJSIP/${ARG1:2}@zadarma,,T)
same => n,Hangup()

same => n(nonoh),Playback(silence/1&/opt/share/asterisk/sounds/itsp_names/nonoh)
same => n,MixMonitor(/opt/records/${CALLERID(num)}-${ARG1:2}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording
same => n,Dial(PJSIP/${ARG1:2}@nonoh,,T)
same => n,Hangup()






;=============== Внешние входящие вызовы ===============
[external-incoming]
exten => s,1,NoOp()
same => n,Ringing()
same => n,Wait(2)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,Playback(vm-enter-num-to-call)
;same => n,Playback(or-wait-for-receptionist)
same => n,GoSub(sub-trunknametocnip,s,1)
same => n,Read(NEW_CALLEE,dial,4,i)
same => n,GotoIf($["${NEW_CALLEE}"=""]?nothingDialed)
same => n,GotoIf($["${NEW_CALLEE:-4:-1}"="100"]?dial)
same => n,GotoIf($["${NEW_CALLEE:-4:-1}"="200"]?dial:inexist)

same => n(dial),NoOp()
same => n,MixMonitor(/opt/records/${CALLERID(num)}-${NEW_CALLEE}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording
same => n,Dial(PJSIP/${NEW_CALLEE},30,mt)
same => n,Macro(voicemailBusyUnavail,${DIALSTATUS},${NEW_CALLEE})
same => n,Wait(1)
same => n,Hangup()

same => n(inexist),NoOp()
same => n,Playback(silence/1&privacy-incorrect)
same => n,Playback(silence/1&goodbye)
same => n,Hangup()

same => n(nothingDialed),Playback(silence/1&pls-hold-while-try)
same => n,MixMonitor(/opt/records/${CALLERID(num)}-${EXTEN}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording
same => n,Dial(PJSIP/1001,30,mt)
same => n,Playback(silence/1&pls-try-call-later)
same => n,Playback(silence/1&goodbye)
same => n,Wait(1)
same => n,Hangup()

[sub-trunknametocnip]
exten => s,1,NoOp()
same => n,GotoIf($["${CHANNEL:6:6}"="sipnet"]?sipnet)
same => n,GotoIf($["${CHANNEL:6:8}"="youmagic"]?youmagic)
same => n,GotoIf($["${CHANNEL:6:8}"="multifon"]?multifon)
same => n,GotoIf($["${CHANNEL:6:7}"="zadarma"]?zadarma)
same => n,GotoIf($["${CHANNEL:6:5}"="nonoh"]?nonoh)
same => n,Hangup()
same => n(sipnet),Set(CALLERID(name)=sipnet)
same => n,Return()
same => n(youmagic),Set(CALLERID(name)=youmagic)
same => n,Return()
same => n(multifon),Set(CALLERID(name)=multifon)
same => n,Return()
same => n(zadarma),Set(CALLERID(name)=zadarma)
same => n,Return()
same => n(nonoh),Set(CALLERID(name)=nonoh)
same => n,Return()





[internal-nb]
exten => _[12]00X,1,NoOp()
;same => n,Ringing()
;same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,MixMonitor(/opt/records/${CALLERID(num)}-${EXTEN}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording
same => n(dial_ext),Dial(PJSIP/${EXTEN},60,mTt,b(callee-handler-nb^${EXTEN}^1))
;same => n(dial_ext),Dial(PJSIP/${EXTEN},60,mTt)
;========== ГОЛОСОВАЯ ПОЧТА =========
same => n,GotoIf($["${DIALSTATUS}"="BUSY"]?busy:unavail)
same => n(unavail),VoiceMail(${EXTEN}@default,u)
same => n,Hangup()
same => n(busy),VoiceMail(${EXTEN}@default,b)
same => n,Playback(goodbye)
;===============================
same => n,Hangup()





[internal-wb]
;==== to wb ====
exten => _200X,1,NoOp()
;same => n,Ringing()
;same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,MixMonitor(/opt/records/${CALLERID(num)}-${EXTEN}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording 
same => n(dial_ext),Dial(PJSIP/${EXTEN},60,mTt,b(callee-handler-wb^${EXTEN}^1))
;same => n(dial_ext),Dial(PJSIP/${EXTEN},60,mTt)
;========== ГОЛОСОВАЯ ПОЧТА =========
same => n,GotoIf($["${DIALSTATUS}"="BUSY"]?busy:unavail)
same => n(unavail),VoiceMail(${EXTEN}@default,u)
same => n,Hangup()
same => n(busy),VoiceMail(${EXTEN}@default,b)
same => n,Playback(goodbye)
;===============================
same => n,Hangup()

;==== to nb ====
exten => _100X,1,NoOp()
;same => n,Ringing()
;same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,MixMonitor(/opt/records/${CALLERID(num)}-${EXTEN}_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav,b) ;<------ Call recording 
same => n(dial_ext),Dial(PJSIP/${EXTEN},60,mTt,b(callee-handler-nb^${EXTEN}^1))
;same => n(dial_ext),Dial(PJSIP/${EXTEN},60,mTt)
;========== VOICE MAIL =========
same => n,GotoIf($["${DIALSTATUS}"="BUSY"]?busy:unavail)
same => n(unavail),VoiceMail(${EXTEN}@default,u)
same => n,Hangup()
same => n(busy),VoiceMail(${EXTEN}@default,b)
same => n,Playback(goodbye)
;===============================
same => n,Hangup()

[callee-handler-nb]
exten => _[12]XXX,1,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Return()

[callee-handler-wb]
exten => _[12]XXX,1,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722)
same => n,Return()






[voicemail-nb]
exten => 9000,1,NoOp()
same => n,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,VoiceMailMain()
same => n,Hangup()

[voicemail-wb]
exten => 9000,1,NoOp()
same => n,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,g722)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,VoiceMailMain()
same => n,Hangup()

[macro-voicemailBusyUnavail]
exten => s,1,GotoIf($["${ARG1}"="BUSY"]?busy:unavail)
same => n(unavail),VoiceMail(${ARG2}@default,u)
same => n,Wait(1)
same => n,Hangup()
same => n(busy),VoiceMail(${ARG2}@default,b)
same => n,Playback(goodbye)
same => n,Wait(1)
same => n,Hangup()





;=================== Конференция ===================
[conference_room]
exten => 001,1,NoOp()
same => n,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,MixMonitor(/opt/records/${CALLERID(num)}-conf_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav) ;<------ Call recording
same => n,ConfBridge(fancy,fancybridge,fancyuser,fancymenu)
same => n,Hangup()

[conference_calls]
exten => **1,1,NoOp()
same => n,Ringing()
same => n,Wait(3)
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,Set(thisBridge=primary)
same => n,MixMonitor(/opt/records/${CALLERID(num)}-conf_${STRFTIME(${EPOCH},/opt/share/zoneinfo/Europe/Moscow,%y%m%d-%H%M)}.wav) ;<------ Call recording
same => n(start),ConfBridge(conference**1,bridge**1,user**1,menu**1)
same => n,Goto(conference_invite,s,1)
;same => Hangup()

[conference_invite]
exten => s,1,NoOp()
;same => n,Playback(vm-enter-num-to-call)
same => n,Read(NEW_CALLEE,dial,4,i)
same => n,Originate(PJSIP/${NEW_CALLEE},exten,conference_calls,**1,1)
same => n,Goto(conference_calls,**1,start)



[illegal-number]
exten => _x.,1,NoOp()
same => n,Answer()
same => n,Wait(1)
same => n,Set(PJSIP_MEDIA_OFFER(audio)=!all,ulaw)
same => n,Set(PJSIP_SEND_SESSION_REFRESH()=invite)
same => n,Wait(1)
same => n,Playback(silence/2&privacy-incorrect)
same => n,Wait(1)
same => n,Hangup()
/opt/etc/asterisk/extensions.default

Код: Выделить всё

; расширения.conf - абонентская группа Asterisk
;
; Файл конфигурации со статическим расширением, используемый
; модулем pbx_config. Здесь вы настраиваете все свои
; входящие и исходящие вызовы в Asterisk.
;
; Этот конфигурационный файл перезагружен
; - С помощью команды "перезагрузка диалплана" в CLI
; - с помощью команды "перезагрузить" (которая перезагружает все) в CLI

;
; Категория "Общие" предназначена для определенных переменных.
;
[general]
;
; Если значение static равно no или опущено, то pbx_config перезапишет
; этот файл при изменении расширений.  Помните, что все комментарии
, сделанные в файле, будут потеряны, когда это произойдет.
;
; XXX Еще не реализован XXX
;
static=yes
;
;если static=yes и writeprotect=no, вы можете сохранить диалплан с помощью
; CLI команда "dialplan save" аналогична
;
writeprotect=no
;
; Если установлено автоматическое завершение вызова, то, если у добавочного номера закончатся
; дела, он завершит вызов с сообщением "ЗАНЯТО", "ПЕРЕГРУЗКА".
; или ЗАВИСАНИЕ (ПОВЕСЬТЕ), в зависимости от наилучшего предположения Asterisk. Это значение используется по умолчанию.
;
; Если параметр autofallthrough не задан, то, если на добавочном номере заканчивается
; что нужно сделать, Asterisk будет ждать набора нового добавочного номера
; (это исходное поведение Asterisk 1.0 и более ранних версий).
;
;autofallthrough=no
;
;
;
; Если задано значение extenpatternmatchnew (true, yes и т.д.), то создается новый алгоритм, который использует
; используется попытка найти наилучший соответствующий шаблон. В диалпланах
; с более чем 20-40 расширениями в одном контексте этот новый алгоритм может обеспечить заметное ускорение.
; С 50 расширениями ускорение составляет 1,32раза
; With 50 extensions, the speedup is 1.32x
; with 88 extensions, the speedup is 2.23x
; with 138 extensions, the speedup is 3.44x
; with 238 extensions, the speedup is 5.8x
; with 438 extensions, the speedup is 10.4x
; With 1000 extensions, the speedup is ~25x
; with 10,000 extensions, the speedup is 374x
; По сути, новый алгоритм обеспечивает равномерный отклик
; время, независимо от количества расширений.
;
; По умолчанию используется старое средство сопоставления шаблонов.
;
; **** Это новая функция! *********************
; Новый подборщик шаблонов предназначен для смелых, дерзновенных и отчаявшихся.
; Если у вас большие диалпланы (более 50 добавочных номеров ; в контексте) и/или высокая громкость звонков,
; вы можете рассмотреть возможность установки
; этого значения равным "да" !!
; Пожалуйста, если вы попробуете это и будете вынуждены вернуться к
; старому сопоставителю шаблонов, пожалуйста, сообщите о своих причинах в отчете об ошибке
; на https://issues.asterisk.org . Мы добились значительного прогресса в предоставлении
; чего-то совместимого со старым matcher; помогите нам завершить работу!
;
; Это значение может быть переключено во время выполнения с помощью команды cli "dialplan set extenpatternmatchnew true"
; или "dialplan set extenpatternmatchnew false", чтобы вы могли экспериментировать сколько душе угодно.
;
;extenpatternmatchnew=no
;
; Если установлено значение clearglobalvars, глобальные переменные будут очищены
; и повторно обработаны при перезагрузке диалплана или перезагрузке Asterisk.
;
; Если clearglobalvars не задан, то глобальные переменные будут сохраняться
; при перезагрузке и даже при удалении из extensions.conf или
; одного из включенных в него файлов, останется прежнее значение.
;
; ПРИМЕЧАНИЕ: Возникает сложность, если вы помещаете свои глобальные переменные в
; файл AEL вместо файла extensions.conf. При установке clearglobalvars
; "перезагрузка" часто оставляет глобальные переменные очищенными, потому что
; нет ничего необычного в том, чтобы иметь extensions.conf (который не будет иметь глобальных переменных).
; загружается после extensions.ael файл (где хранятся глобальные переменные).
; Итак, при "перезагрузке" в этой конкретной ситуации сначала файл AEL
; очистит, а затем установит все глобальные переменные, затем, позже, когда файл extensions.conf
; загружен, все глобальные переменные будут очищены, а затем не установлены, потому что
; они не хранятся в файле extensions.conf.
;
clearglobalvars=no
;
; Пользовательский контекст - это место, где регистрируются записи из users.conf.
; Значение по умолчанию - 'default'
;
;userscontext=default
;
; Вы можете включить другие конфигурационные файлы, используйте команду #include
; (без ';'). Обратите внимание, что это отличается от команды "включить"
; которая включает контексты внутри других контекстов. Команда #include работает
; во всех конфигурационных файлах asterisk.
;#include "filename.conf"
;#include <filename.conf>
;#include filename.conf
;
; Вы можете запустить программу или скрипт, который создает конфигурационные файлы, и они
; будут вставлены туда, куда вы вставляете команду #exec. Команда #exec
; работает со всеми конфигурационными файлами asterisk.  Однако вам нужно будет
; активировать их в asterisk.conf с помощью опции "execincludes".  В противном случае они
; считаются угрозой безопасности.
;#exec /opt/bin/build-extra-contexts.sh
;#exec /opt/bin/build-extra-contexts.sh --foo="bar"
;#exec </opt/bin/build-extra-contexts.sh --foo="bar">
;#exec "/opt/bin/build-extra-contexts.sh --foo=\"bar\""
;

; Категория "Global" содержит глобальные переменные, на которые можно ссылаться
; в диалплане с помощью функции GLOBAL dialplan:
; ${GLOBAL(VARIABLE)}
; ${${GLOBAL(VARIABLE)}} or ${text${GLOBAL(VARIABLE)}} or any hybrid
; Переменные среды Unix/Linux могут быть доступны с помощью НОВОЙ абонентской
; группы функция: ${ENV(VARIABLE)}
;
[globals]
CONSOLE=Console/dsp				; Консольный интерфейс для демонстрации
;CONSOLE=DAHDI/1
;CONSOLE=Phone/phone0
IAXINFO=guest					; IAXtel пользователя/пароль
;IAXINFO=myuser:mypass
TRUNK=DAHDI/G2					; Магистральный интерфейс
;
; Обратите внимание на 'G2' в переменной TRUNK выше. Он указывает, какую группу (определенную
; в chan_dahdi.conf) набирать, т.е. группу 2, и как выбрать канал для использования
; в указанной группе. Четырьмя возможными вариантами являются:
;
; g: выберите незанятый канал DAHDI с наименьшим номером
; (он же восходящая последовательная поисковая группа).
; G: выберите незанятый канал DAHDI с наибольшим номером
; (он же нисходящая последовательная поисковая группа).
; r: используйте циклический поиск, начиная со следующего по величине канала по сравнению с предыдущим
; time (он же восходящая ротационная поисковая группа).
; R: используйте циклический поиск, начиная со следующего канала с наименьшим значением по сравнению с предыдущим
; time (он же нисходящая ротационная поисковая группа).
;
TRUNKMSD=1					; Цифры MSD для удаления (обычно 1 или 0)
;TRUNK=IAX2/user:pass@provider

;FREENUMDOMAIN=mydomain.com                    ; домен для отправки при исходящем
                                               ; вызовы freenum (использует исходящий outbound-freenum
                                               ; контекст)

;
; ПРЕДУПРЕЖДЕНИЕ ПРЕДУПРЕЖДЕНИЕ ПРЕДУПРЕЖДЕНИЕ ПРЕДУПРЕЖДЕНИЕ ПРЕДУПРЕЖДЕНИЕ
; Если вы загружаете любой другой механизм настройки расширения, такой как pbx_ael.so ,
; ваши глобальные переменные могут быть переопределены этим файлом.  Пожалуйста, позаботьтесь
; о том, чтобы использовать только одно местоположение для установки глобальных переменных, и вы, скорее всего, избавите
; себя от тонны неприятностей.
; ПРЕДУПРЕЖДЕНИЕ ПРЕДУПРЕЖДЕНИЕ ПРЕДУПРЕЖДЕНИЕ ПРЕДУПРЕЖДЕНИЕ ПРЕДУПРЕЖДЕНИЕ
;
; Любая категория, отличная от "General" и "Globals", представляет
; контексты расширений, которые представляют собой коллекции расширений.
;
; Добавочные имена могут быть цифрами, буквами или
; их комбинациями. Если имя добавочного номера имеет префикс '_'
; символ, он интерпретируется скорее как шаблон, чем как
; буквальный.  В узорах некоторые символы имеют особое значение:
;
;   X - любая цифра из 0-9
;   Z - любая цифра из 1-9
;   N - любая цифра из 2-9
; [1235-9] - любая цифра в скобках (в данном примере 1,2,3,5,6,7,8,9)
; . - подстановочный знак, соответствует всему, что осталось (например, _9011. соответствует
; все, что начинается с 9011, исключая сам 9011)
; ! - подстановочный знак, завершает процесс сопоставления, как только
; он может однозначно определить, что нет возможны и другие совпадения
;
; Например, добавочный номер _NXXXXXX соответствовал бы обычным 7-значным наборам,
; в то время как _1NXXNXXXXXXX будет представлять код города плюс номер телефона
; перед ним будет стоять единица.
;
; Каждый шаг расширения упорядочен по приоритету, который всегда должен начинаться
; с 1, чтобы считаться допустимым расширением.  Приоритет "следующий" или "n" означает
; предыдущий приоритет плюс единица, независимо от того, был ли предыдущий приоритет
; связан с текущим расширением или нет.  Приоритет "тот же" или "s"
; означает то же, что и ранее указанный приоритет, опять же независимо от
; того, была ли предыдущая запись для того же добавочного номера.  Приоритетами могут быть
; сразу за которыми следует знак "плюс" и другое целое число для добавления этой суммы
; (наиболее полезно с 's' или 'n').  Тогда приоритеты могут также иметь псевдоним или
; метку в круглых скобках после их имени, которые можно использовать в ситуациях перехода.
;
; Контексты содержат несколько строк, по одной для каждого шага каждого расширения.  Можно
; также включить другой контекст в текущий, необязательно с указанием даты
; и времени.  Включенные контексты включаются в том порядке, в котором они перечислены.
; Переключатели также могут быть включены в контекст.  Порядок сопоставления внутри
; контекста - это всегда точные расширения, расширения соответствия шаблону, включения и
; переключатели.  Включения всегда обрабатываются в первую очередь по глубине.  Так, например, если вы
; хотели бы, чтобы переключатель "A" соответствовал контексту "B", просто поместите переключатель "A" в
; включенный контекст "C", где "C" включено в ваш исходный контекст
; перед "B".
;
;[context]
;
;autohints = yes
; Если включено для контекста, подсказка о состоянии устройства будет автоматически создана в
; контексте с именем устройства и обновлена при изменении состояния устройства.
;
;exten => someexten,{priority|label{+|-}offset}[(alias)],application(arg1,arg2,...)
;
; Список сроков для включений таков
;
;   <time range>,<days of week>,<days of month>,<months>[,<timezone>]
;
; Обратите внимание, что диапазоны могут быть указаны для охвата концов.  Кроме того, минуты являются
; точными только с точностью до ближайшей четной минуты.
;
;include => daytime,9:00-17:00,mon-fri,*,*
;include => weekend,*,sat-sun,*,*
;include => weeknights,17:02-8:58,mon-fri,*,*
;
; ignorepat может использоваться для указания водителям не отменять набор номера при получении
; определенного шаблона.  Наиболее часто используемый пример - это, конечно, '9'
; вот так:
;
;ignorepat => 9
;
; таким образом, тональный сигнал остается даже после набора цифры 9.  Пожалуйста, обратите внимание, что ignorepat
; работает только с каналами, которые принимают тональный сигнал от мини-АТС, такими как DAHDI,
; Phone и VPB.  Другие каналы, такие как SIP и MGCP, которые генерируют свой
; собственный тональный сигнал и общаются с УАТС только после набора номера,
; как правило, не подвержены влиянию ignorepat (если только DISA или другой метод не используется для
; генерации тонального сигнала после ответа на канал).
;

;
; Примеры записей для extensions.conf
;
;
[dundi-e164-canonical]
;include => stdexten
;
; Перечислите канонические записи здесь
;
;exten => 12564286000,1,Gosub(6000,stdexten(IAX2/foo))
;exten => 12564286000,n,Goto(default,s,1)	; exited Voicemail
;exten => _125642860XX,1,Dial(IAX2/otherbox/${EXTEN:7})

[dundi-e164-customers]
;
; Если вы являетесь провайдером или реселлером, перечислите здесь своих клиентов.
;
;exten => _12564286000,1,Dial(SIP/customer1)
;exten => _12564286001,1,Dial(IAX2/customer2)

[dundi-e164-via-pstn]
;
; Если вы свободно осуществляете доставку звонков в ТФОП, перечислите их здесь
;
;exten => _1256428XXXX,1,Dial(DAHDI/G2/${EXTEN:7}) ; Expose all of 256-428
;exten => _1256325XXXX,1,Dial(DAHDI/G2/${EXTEN:7}) ; Ditto for 256-325

[dundi-e164-local]
;
; Контекст для подключения вашего пользователя dundi IAX2 или SIP
; полный доступ
;
include => dundi-e164-canonical
include => dundi-e164-customers
include => dundi-e164-via-pstn

[dundi-e164-switch]
;
; Просто оболочка для коммутатора
;
switch => DUNDi/e164

[dundi-e164-lookup]
;
; Для локального поиска попробуйте найти локальное решение E.164
; затем попробуйте DUNDi, если у нас его нет.
;
include => dundi-e164-local
include => dundi-e164-switch
;
; DUNDi также может быть реализован как макрос вместо использования
; драйвера локального канала.
;
[macro-dundi-e164]
;
; ARG1 - это добавочный номер для набора
;
; Расширение "s" не является расширением с подстановочным знаком, которое соответствует "чему угодно".
; В макросах это начальное расширение. В большинстве других случаев
; вы должны перейти к "s", чтобы выполнить это расширение.
;
; Примечание: В старых версиях Asterisk УАТС в некоторых случаях по умолчанию
; устанавливала расширение "s", когда данное расширение было неправильным (как в AMI originate).
; Это уже не тот случай.
;
; Для совпадений с подстановочными знаками смотрите выше - все совпадения с шаблоном начинаются с
; символа подчеркивания.
exten => s,1,Goto(${ARG1},1)
include => dundi-e164-lookup

;
; Вот заявки, которые вам необходимы для участия в IAXTEL
; система маршрутизации вызовов.  Большинство номеров IAXTEL начинаются с 1-700
, но есть исключения.  Для получения дополнительной информации и регистрации
, пожалуйста, перейдите по ссылке www.gnophone.com или www.iaxtel.com
;
[iaxtel700]
exten => _91700XXXXXXX,1,Dial(IAX2/${GLOBAL(IAXINFO)}@iaxtel.com/${EXTEN:1}@iaxtel)

;
; Оператор SWITCH разрешает серверу совместно использовать диалплан с
; другим сервером. Используйте с осторожностью: Инструкции взаимного переключения недопустимы
; (например, как A -> B, так и B -> A), и коммутируемый сервер должен
; быть подключен к сети, иначе набор номера может быть серьезно отложен.
;
[iaxprovider]
;switch => IAX2/user:[key]@myserver/mycontext

[trunkint]
;
; Международные междугородние перевозки по магистрали
;
exten => _9011.,1,Macro(dundi-e164,${EXTEN:4})
exten => _9011.,n,Dial(${GLOBAL(TRUNK)}/${FILTER(0-9,${EXTEN:${GLOBAL(TRUNKMSD)}})})

[trunkld]
;
; Контекст на большом расстоянии, доступ к которому осуществляется через магистраль
;
exten => _91NXXNXXXXXX,1,Macro(dundi-e164,${EXTEN:1})
exten => _91NXXNXXXXXX,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

[trunklocal]
;
; Местный семизначный набор, доступный через магистральный интерфейс
;
exten => _9NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

[trunktollfree]
;
; Междугородний контекст, доступ к которому осуществляется через магистральный интерфейс
;
exten => _91800NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
exten => _91888NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
exten => _91877NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
exten => _91866NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

[international]
;
; Основной контекст для международных междугородних перевозок
;
ignorepat => 9
include => longdistance
include => trunkint

[longdistance]
;
; Основной контекст для работы на больших расстояниях
;
ignorepat => 9
include => local
include => trunkld

[local]
;
; Основной контекст только для местных, бесплатных звонков и звонков iaxtel
;
ignorepat => 9
include => default
include => trunklocal
include => iaxtel700
include => trunktollfree
include => iaxprovider

; Включить parkedcalls (или контекст, который вы определяете в features conf)
; чтобы включить парковку вызовов.
include => parkedcalls
;
; Вы также можете использовать альтернативный тип переключателя, чтобы разрешить
; расширения, которые здесь неизвестны, например, с удаленным
; При переключении IAX вы прозрачно получаете доступ к удаленному
; АТС Asterisk
;
; switch => IAX2/user:password@bigserver/local
;
; "lswitch" подобен switch, но является буквальным в том смысле, что
; подстановка переменной не выполняется во время загрузки
; но передается непосредственно switch (предположительно для
; замены в самой процедуре switch)
;
; lswitch => Loopback/12${EXTEN}@othercontext
;
; "eswitch" подобен switch, но вычисление
; подстановки переменной выполняется во время выполнения перед
; передачей в процедуру switch.
;
; eswitch => IAX2/context@${CURSERVER}

; Следующие два контекста являются шаблоном для обеспечения возможности набора
; ЭТО числа. Для получения дополнительной информации о том, что такое ISN-номер, пожалуйста, смотрите
; http://www.freenum.org.
;
; Это кнопка набора номера.  использовать:
; include => outbound-freenum

[outbound-freenum]
; Мы добавим дополнительные цифры по мере необходимости. Цель состоит в том, чтобы набирать номера
; как добавочные номера в доменах (номер ITAD), поэтому мы сопоставляем
; на длинах от 1 до 6 перед разделителем (звездочка [*])
;
exten => _X*X!,1,Goto(outbound-freenum2,${EXTEN},1)
exten => _XX*X!,1,Goto(outbound-freenum2,${EXTEN},1)
exten => _XXX*X!,1,Goto(outbound-freenum2,${EXTEN},1)
exten => _XXXX*X!,1,Goto(outbound-freenum2,${EXTEN},1)
exten => _XXXXX*X!,1,Goto(outbound-freenum2,${EXTEN},1)
exten => _XXXXXX*X!,1,Goto(outbound-freenum2,${EXTEN},1)

[outbound-freenum2]
; Это обработчик, который выполняет логику набора номера. Он вызывается
; из контекста [исходящий outbound-freenum]
;
exten => _X!,1,Verbose(2,Performing ISN lookup for ${EXTEN})
same => n,Set(SUFFIX=${CUT(EXTEN,*,2-)})                                ; убедитесь, что суффикс также состоит из всех цифр
same => n,GotoIf($["${FILTER(0-9,${SUFFIX})}" != "${SUFFIX}"]?fn-CONGESTION,1)
                                                                        ; отфильтровывайте плохих персонажей в соответствии с README-SERIOUSLY.best-practices.txt документ
same => n,Set(TIMEOUT(absolute)=10800)
same => n,Set(isnresult=${ENUMLOOKUP(${EXTEN},sip,,1,freenum.org)})     ; выполните наш поиск с помощью freenum.org
same => n,GotoIf($["${isnresult}" != ""]?from)
same => n,Set(DIALSTATUS=CONGESTION)
same => n,Goto(fn-CONGESTION,1)
same => n(from),Set(__SIPFROMUSER=${CALLERID(num)})
same => n,GotoIf($["${GLOBAL(FREENUMDOMAIN)}" = ""]?dial)               ; проверьте, установили ли мы глобальную переменную FREENUMDOMAIN в [global]
same => n,Set(__SIPFROMDOMAIN=${GLOBAL(FREENUMDOMAIN)})                 ; если мы действительно установили его, то будем использовать для нашего домена исходящего набора
same => n(dial),Dial(SIP/${isnresult},40)
same => n,Goto(fn-${DIALSTATUS},1)

exten => fn-BUSY,1,Busy()

exten => _f[n]-.,1,NoOp(ISN: ${DIALSTATUS})
same => n,Congestion()

[macro-trunkdial]
;
; Стандартный макрос магистрального набора номера (зависает на dialstatus, который должен
; завершить вызов)
;   ${ARG1} - Что набрать
;
exten => s,1,Dial(${ARG1})
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Hangup()
exten => s-BUSY,1,Hangup()
exten => _s-.,1,NoOp

[stdexten]
;
; Стандартная подпрограмма расширения:
;   ${EXTEN} - Расширение
;   ${ARG1} - Устройство (устройства) для вызова
;   ${ARG2} - Необязательный контекст в голосовой почте
;
; Обратите внимание, что текущая версия перейдет к следующему приоритету в
случае их нажатия "#".  Это дает больше гибкости в том, что делать дальше:
; вы можете запросить новый добавочный номер, или отменить вызов, или отправить их на
; почтовый ящик общей доставки, или...
;
; Функция LOCAL() используется исключительно для удобства.  Любая переменная
; первоначально объявленная как LOCAL() исчезнет, когда вернется самый внутренний контекст Gosub,
; в котором она была объявлена.  Обратите также внимание, что вы можете объявить LOCAL()
; переменная поверх существующей переменной, и ее значение вернется к своему
; предыдущему значению (до объявления как LOCAL()) при возврате.
;
exten => _X.,50000(stdexten),NoOp(Start stdexten)
exten => _X.,n,Set(LOCAL(ext)=${EXTEN})
exten => _X.,n,Set(LOCAL(dev)=${ARG1})
exten => _X.,n,Set(LOCAL(cntx)=${ARG2})
exten => _X.,n,Set(LOCAL(mbx)=${ext}${IF($[!${ISNULL(${cntx})}]?@${cntx})})
exten => _X.,n,Dial(${dev},20)				; Вызов интерфейса, максимум 20 секунд
exten => _X.,n,Goto(stdexten-${DIALSTATUS},1)		; Переход в зависимости от статуса (НЕТ ответа, ЗАНЯТО, НЕДОСТУПНО, ПЕРЕГРУЗКА, ОТВЕТ) (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)

exten => stdexten-NOANSWER,1,VoiceMail(${mbx},u)	; Если недоступен, отправьте сообщение на голосовую почту с сообщением о недоступности
exten => stdexten-NOANSWER,n,Return()			; Если они нажмут #, вернитесь к началу

exten => stdexten-BUSY,1,VoiceMail(${mbx},b)		; Если занято, отправьте сообщение на голосовую почту с сообщением о занятости
exten => stdexten-BUSY,n,Return()			; Если они нажмут #, вернитесь к началу

exten => _stde[x]te[n]-.,1,Goto(stdexten-NOANSWER,1)	; Относитесь ко всему остальному как к отсутствию ответа

exten => a,1,VoiceMailMain(${mbx})			; Если они нажмут *, отправьте пользователя на голосовую почту.
exten => a,n,Return()

[stdPrivacyexten]
;
; Стандартная подпрограмма расширения:
;   ${ARG1} - Расширение
;   ${ARG2} - Устройство (устройства) для вызова
;   ${ARG3} - Необязательно DONTCALL НЕ ВЫЗЫВАТЬ имя контекста для перехода (предполагается приоритет расширения s,1)
;   ${ARG4} - Необязательное имя контекста ПЫТОК для перехода (предполагает приоритет расширения s,1)`
;   ${ARG5} - Контекст в голосовой почте (если пусто, то "по умолчанию")
;
; Смотрите приведенное выше примечание в stdexten об обработке приоритетов при выходе.
;
exten => _X.,60000(stdPrivacyexten),NoOp(Start stdPrivacyexten)
exten => _X.,n,Set(LOCAL(ext)=${ARG1})
exten => _X.,n,Set(LOCAL(dev)=${ARG2})
exten => _X.,n,Set(LOCAL(dontcntx)=${ARG3})
exten => _X.,n,Set(LOCAL(tortcntx)=${ARG4})
exten => _X.,n,Set(LOCAL(cntx)=${ARG5})

exten => _X.,n,Set(LOCAL(mbx)="${ext}"$["${cntx}" ? "@${cntx}" :: ""])
exten => _X.,n,Dial(${dev},20,p)			; Вызов интерфейса, максимум 20 секунд, проверка вызова
						; опция (или используйте P для вызова _X.creening на основе данных)
exten => _X.,n,Goto(stdexten-${DIALSTATUS},1)		; Переход в зависимости от статуса (НЕТ ответа, ЗАНЯТО, НЕДОСТУПНО, ПЕРЕГРУЗКА, ОТВЕТ) (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)

exten => stdexten-NOANSWER,1,VoiceMail(${mbx},u)	; Если недоступен, отправьте сообщение на голосовую почту с сообщением о недоступности
exten => stdexten-NOANSWER,n,NoOp(Finish stdPrivacyexten NOANSWER)
exten => stdexten-NOANSWER,n,Return()			; Если они нажмут #, вернитесь к началу

exten => stdexten-BUSY,1,VoiceMail(${mbx},b)		; Если занято, отправьте сообщение на голосовую почту с сообщением о занятости
exten => stdexten-BUSY,n,NoOp(Finish stdPrivacyexten BUSY)
exten => stdexten-BUSY,n,Return()			; Если они нажмут #, вернитесь к началу

exten => stdexten-DONTCALL,1,Goto(${dontcntx},s,1)	; Вызываемый абонент выбрал для отправки этого вызова вежливый сценарий "Больше не звоните".

exten => stdexten-TORTURE,1,Goto(${tortcntx},s,1)	; Абонент решил отправить этот звонок в сценарий пыток телемаркетинга.

exten => _stde[x]te[n]-.,1,Goto(stdexten-NOANSWER,1)	; Относитесь ко всему остальному как к отсутствию ответа

exten => a,1,VoiceMailMain(${mbx})		; Если они нажмут *, отправьте пользователя на голосовую почту.
exten => a,n,Return()

[macro-page]
;
; Макрос подкачки:
;
;       Проверьте, используется ли SIP-устройство, и НЕ просматривайте страницу, если оно используется
;
;   ${ARG1} - Устройство для перехода на страницу

exten => s,1,ChanIsAvail(${ARG1},s)			; s - для ЛЮБОГО вызова
exten => s,n,GotoIf($[${AVAILSTATUS} = "1"]?autoanswer:fail)
exten => s,n(autoanswer),Set(_ALERT_INFO="RA")			; Это для поли-комов PolyComs
exten => s,n,SIPAddHeader(Call-Info: Answer-After=0)	; Это для Grandstream, Snoms и других
exten => s,n,NoOp()					; Добавляйте других сюда и публикуйте в Вики!!!!
exten => s,n,Dial(${ARG1})
exten => s,n(fail),Hangup()


[demo]
include => stdexten
;
; Мы начинаем с того, что нужно делать при первом поступлении вызова.
;
exten => s,1,Wait(1)			; Подожди секунду, просто ради забавы
exten => s,n,Answer()			; Ответьте на звонок
exten => s,n,Set(TIMEOUT(digit)=5)	; Установите время ожидания цифр равным 5 секундам
exten => s,n,Set(TIMEOUT(response)=10)	; Установите время ожидания ответа равным 10 секундам
exten => s,n(restart),BackGround(demo-congrats)	; Воспроизведите поздравительное сообщение
exten => s,n(instruct),BackGround(demo-instruct)	; Воспроизведите несколько инструкций
exten => s,n,WaitExten()		; Дождитесь набора добавочного номера.

exten => 2,1,BackGround(demo-moreinfo)	; Дайте еще немного информации.
exten => 2,n,Goto(s,instruct)

exten => 3,1,Set(CHANNEL(language)=fr)		; Установите язык на французский
exten => 3,n,Goto(s,restart)		; Начните с приветствий

exten => 1000,1,Goto(default,s,1)
;
; Мы также создаем пример пользователя 1234, который находится на консоли и имеет
; голосовую почту и т.д.
;
exten => 1234,1,Playback(transfer,skip)		; "Пожалуйста, подождите немного..."
					; (но пропустите, если канал не включен)
exten => 1234,n,Gosub(${EXTEN},stdexten(${GLOBAL(CONSOLE)}))
exten => 1234,n,Goto(default,s,1)		; завершенная голосовая почта

exten => 1235,1,VoiceMail(1234,u)		; Право на голосовую почту

exten => 1236,1,Dial(Console/dsp)		; Звенеть вечно
exten => 1236,n,VoiceMail(1234,b)		; Если только он не занят

;
; # когда они закончат с демонстрацией
;
exten => #,1,Playback(demo-thanks)	; "Спасибо, что попробовали демо"
exten => #,n,Hangup()			; Повесьте их.

;
; Тайм-аут и "недопустимое правило продления"
;
exten => t,1,Goto(#,1)			; Если они занимают слишком много времени, откажитесь
exten => i,1,Playback(invalid)		; "Это недопустимо, попробуйте еще раз"

;
; Создайте добавочный номер 500 для набора
; демо-версии Asterisk.
;
exten => 500,1,Playback(demo-abouttotry)	; Дайте им знать, что происходит
exten => 500,n,Dial(IAX2/guest@pbx.digium.com/s@default)	; Вызовите демонстрационную версию Asterisk
exten => 500,n,Playback(demo-nogo)	; Не удалось подключиться к демонстрационному сайту
exten => 500,n,Goto(s,6)		; Вернитесь к сообщению "Начать сначала".

;
; Создайте расширение 600 для оценки задержки эхо-сигнала.
;
exten => 600,1,Playback(demo-echotest)	; Дайте им знать, что происходит
exten => 600,n,Echo()			; Выполните эхо-тест
exten => 600,n,Playback(demo-echodone)	; Дай им знать, что все кончено
exten => 600,n,Goto(s,6)		; Начать сначала

;
;	Вы можете использовать страницу макроса для связи с отдельным пользователем
exten => 76245,1,Macro(page,SIP/Grandstream1)
; или если ваши личные имена совпадают с расширениями
exten => _7XXX,1,Macro(page,SIP/${EXTEN})
;
;
; Общесистемная страница с добавочным номером 7999
;
exten => 7999,1,Set(TIMEOUT(absolute)=60)
exten => 7999,2,Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n,d)

; Отправьте голосовое сообщение на добавочный номер 8500
;
exten => 8500,1,VoiceMailMain()
exten => 8500,n,Goto(s,6)
;
; Вот как будет выглядеть запись по телефону (например, I XJ)
;
;exten => 1265,1,Dial(Phone/phone0,15)
;exten => 1265,n,Goto(s,5)

;
; Контекст страницы вызывает макрос страницы, который устанавливает переменные, необходимые для автоответчика
; Он находится в собственном контексте, чтобы сделать его вызов из приложения Page() максимально простым
;	Local/{peername}@page
;
[page]
exten => _X.,1,Macro(page,SIP/${EXTEN})

;[mainmenu]
;
; Пример контекста "главного меню" с подменю
;
;exten => s,1,Answer
;exten => s,n,Background(thanks)		; "Спасибо, что позвонили в прессу 1 для отдела продаж, 2 для службы поддержки..."
;exten => s,n,WaitExten
;exten => 1,1,Goto(submenu,s,1)
;exten => 2,1,Hangup
;include => default
;
;[submenu]
;exten => s,1,Ringing					; Сделайте так, чтобы им было удобно с помощью 2 секунд обратного звонка
;exten => s,n,Wait,2
;exten => s,n,Background(submenuopts)	; "Спасибо, что позвонили в отдел продаж.  Нажмите 1 для Стива, 2 для..."
;exten => s,n,WaitExten
;exten => 1,1,Goto(default,steve,1)
;exten => 2,1,Goto(default,mark,2)

[public]
;
; ВНИМАНИЕ: Если ваш Asterisk подключен к Интернету и у вас
; нет allowguest=no в sip.conf, все, кто там есть, могут использовать ваш
; общедоступный контекст без аутентификации.  В таком случае, если вы хотите
, перепроверьте, какие услуги вы предлагаете миру.
;
include => demo

[default]
;
; По умолчанию мы включаем демо-версию.  В производственной системе вы,
; вероятно, не захотите размещать там демо-версию.
;
include => demo

;
; Расширение, подобное приведенному ниже, можно использовать для FWD, Nikotel, sipgate и т.д.
; Обратите внимание, что у вас должен быть раздел [sipprovider] в sip.conf
;
;exten => _41X.,1,Dial(SIP/${FILTER(0-9,${EXTEN:2})}@sipprovider,,r)

; Реальные расширения были бы здесь. Как правило, вы хотите, чтобы реальные расширения имели длину
; 4 или 5 цифр (хотя такого требования нет) и начинались с
; одиночной цифры, которая является довольно большой (например, 6 или 7), чтобы у вас было достаточно
; места для перекрытия расширений и опций меню без конфликтов.  Вы также можете присвоить им псевдонимы
с именами и использовать глобальные переменные

;exten => 6245,hint,SIP/Grandstream1&SIP/Xlite1(Joe Schmoe) ; Подсказки канала о присутствии
;exten => 6245,1,Dial(SIP/Grandstream1,20,rt)	; передача разрешения
;exten => 6245,n(dial),Dial(${HINT},20,rtT)	; Используйте подсказку, как указано в списке
;exten => 6245,n,VoiceMail(6245,u)		; Голосовая почта (недоступна)
;exten => 6245,s+1,Hangup			; s+1, то же, что n
;exten => 6245,dial+101,VoiceMail(6245,b)	; Голосовая почта (занято)
;exten => 6361,1,Dial(IAX2/JaneDoe,,rm)		; звоните без ограничения по времени
;exten => 6389,1,Dial(MGCP/aaln/1@192.168.0.14)
;exten => 6390,1,Dial(JINGLE/caller/callee) ; Набирайте номер с помощью звонка, используя ярлыки
;exten => 6391,1,Dial(JINGLE/asterisk@digium.com/mogorman@astjab.org) ; Набирайте номер с помощью jingle, используя asterisk в качестве транспортного средства, и вызывайте mogorman.
;exten => 6394,1,Dial(Local/6275/n)		; это позволит набрать ${MARK}

;exten => 6275,1,Gosub(${EXTEN},stdexten(${MARK}))
						; предполагая, что ${MARK} - это что-то вроде DAHDI/2
;exten => 6275,n,Goto(default,s,1)		; завершенная голосовая почта
;exten => mark,1,Goto(6275,1)			; псевдоним помечен как 6275
;exten => 6536,1,Gosub(${EXTEN},stdexten(${WIL}))
						; То же самое для wil
;exten => 6536,n,Goto(default,s,1)		; завершенная голосовая почта
;exten => wil,1,Goto(6236,1)

; Если вы хотите подписаться на статус парковочного места, вот
; как вы это делаете. Подпишитесь на добавочный номер 6600 в sip, и вы увидите
; статус первой парковки с помощью этого расширения
;exten => 6600,hint,park:701@parkedcalls
;exten => 6600,1,noop
;
;Чтобы подписаться на наличие бесплатного участника в очереди "markq".
;Примечание: '_avail' добавляется к имени очереди
;exten => 8501,hint,Queue:markq_avail
;exten => 8501,1,Queue(markq)
;
; Вы также можете отслеживать состояние очереди, предоставляя подсказку для
; определенного имени очереди.
;exten => 8502,hint,Queue:markq
;exten => 8502,1,Queue(markq)
;
; Некоторые другие удобные функции - это расширение для проверки голосовой почты через
; voicemailmain
;
;exten => 8500,1,VoicemailMain
;exten => 8500,n,Hangup
;
; Или конференц-зал (вам нужно будет отредактировать meetme.conf, чтобы включить этот зал)
;
;exten => 8600,1,Meetme(1234)
;
; Или воспроизведение объявления вызываемому абоненту, как только он ответит
;
;exten = 8700,1,Dial(${MARK},30,A(/path/to/my/announcemsg))
;

; пример обособленной компании под названием "acme"
;
; это контекст, в который вас помещает ваша входящая магистраль IAX/SIP...
;[acme-incoming]
;exten => s,1,Wait(1)
;exten => s,n,Answer()
;exten => s,n(menu),Playback(acme/vm-brief-menu)
;exten => s,n(exten),Background(vm-enter-num-to-call)
;exten => s,n,WaitExten(5)
;exten => s,n(goodbye),Playback(vm-goodbye)
;exten => s,n(end),Hangup()
;
;include  => acme-extens
;
;exten => i,1,Playback(vm-invalid)
;exten => i,n,Goto(s,exten)			; по желанию, передача оператору
;
;exten => t,1,Goto(s,goodbye)
;
; это контекст, который используют наши внутренние SIP-устройства (см. sip.conf)
;
;[acme-internal]
;exten => s,1,Answer()
;exten => s,n(exten),Background(vm-enter-num-to-call)
;exten => s,n,WaitExten(5)
;exten => s,n(goodbye),Playback(vm-goodbye)
;exten => s,n(end),Hangup()
;
;include => trunkint
;include => trunkld
;include => trunklocal
;
;include => acme-extens
;
; вы можете проверить, как звучит ваша система для внешних абонентов, набрав этот номер
;exten => 777,1,DISA(no-password,acme-incoming)
;
; группировка расширений acme... никогда не используется напрямую, всегда включен.
;
;[acme-extens]
;include => stdexten
;exten => 111,1,Gosub(111,stdexten(SIP/pete_1,acme))
;exten => 111,n,Goto(s,exten)
;
;exten => 112,1,Gosub(112,stdexten(SIP/nancy_1,acme))
;exten => 112,n,Goto(s,end)
;
; конец примера acme

;
;Временной контекст: вы можете исправить это следующим образом.
;
; [acme-internal]
; ...
; exten => 777,1,Gosub(time)
; exten => 777,n,Hangup()
;
; ...
; include => time
;
; Примечание: если вы географически распределены, у вас могут быть расширения SIP
; укажите их собственный местный часовой пояс в sip.conf как:
;
; [boi]
; type=friend
; context=acme-internal
; callerid="Boise Ofc. <2083451111>"
; ...
; ; используйте общесистемный часовой пояс по умолчанию MST7MDT
;
; [lws]
; type=friend
; context=acme-internal
; callerid="Lewiston Ofc. <2087431111>"
; ...
; setvar=timezone=PST8PDT
;
; "часовой пояс" никоим образом не является "зарезервированным" именем, и другие места, где
; часовой пояс имеет значение (например, вызовы "SayUnixTime()" и т.д.),
; Также потребуют модификации.  Обратите внимание, что в voicemail.conf уже есть
; механизм для часовых поясов.
;

[time]
exten => _X.,30000(time),NoOp(Time: ${EXTEN} ${timezone})
exten => _X.,n,Wait(0.25)
exten => _X.,n,Answer()
; величина задержки установлена для английского языка; возможно, вам потребуется настроить это время
; для других языков, если перед звуковым сигналом синхронизации нет паузы.
exten => _X.,n,Set(FUTURETIME=$[${EPOCH} + 12])
exten => _X.,n,SayUnixTime(${FUTURETIME},Zulu,HNS)
exten => _X.,n,SayPhonetic(z)
; используйте часовой пояс, связанный с добавочным номером (только sip), или общесистемный
; по умолчанию, если он не был установлен.
exten => _X.,n,SayUnixTime(${FUTURETIME},${timezone},HNS)
exten => _X.,n,Playback(spy-local)
exten => _X.,n,WaitUntil(${FUTURETIME})
exten => _X.,n,Playback(beep)
exten => _X.,n,Return()

;
; Контекст ANI: использовать так же, как "время time" выше
;

[ani]
exten => _X.,40000(ani),NoOp(ANI: ${EXTEN})
exten => _X.,n,Wait(0.25)
exten => _X.,n,Answer()
exten => _X.,n,Playback(vm-from)
exten => _X.,n,SayDigits(${CALLERID(ani)})
exten => _X.,n,Wait(1.25)
exten => _X.,n,SayDigits(${CALLERID(ani)})	; повторное воспроизведение в случае пропущенной цифры
exten => _X.,n,Return()

; Для получения дополнительной информации о приложениях просто введите "core show applications" в вашей
; дружественной командной строке Asterisk CLI.
;
; "core show application <команда>" покажет подробную информацию о том, как вы
; используете это конкретное приложение в этом файле, абонентской группе.
; в разделе "основные функции отображения" будут перечислены все функции диалплана
; "основная функция отображения <КОМАНДА>" покажет вам больше информации об
; одной функции. Помните, что имена функций пишутся в ВЕРХНЕМ регистре.
количество слов: 4808
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 802
Стаж: 5 лет
Откуда: Вологодская область
Поблагодарили: 32 раза
Контактная информация:

Установка на Wi Fi маршрутизатор Keenetic ОС Entware Asterisk

Сообщение Артём Мамзиков »

/opt/etc/asterisk/features.conf

Код: Выделить всё

;
; Пример конфигурации функций вызова (передача, монитор/миксмонитор и т.д.)
;

; Примечание Asterisk 12 - Вся настройка парковки теперь выполняется в res_parking.conf

[general]
;transferdigittimeout => 3      ; Количество секунд ожидания между цифрами при передаче вызова
                                ; (по умолчанию - 3 секунды)
;xfersound = beep               ; чтобы указать, что посещенный перевод завершен
;xferfailsound = beeperr        ; для указания на неудачную передачу
;pickupexten = *8               ; Настройте расширение приемника. (значение по умолчанию - *8)
;pickupsound = beep             ; для указания на успешный захват (по умолчанию: без звука)
;pickupfailsound = beeperr      ; для указания на сбой звукоснимателя (по умолчанию: нет звука)
;featuredigittimeout = 1000     ; Максимальное время (мс) между цифрами для
                                ; активация функции (по умолчанию - 1000 мс)
;recordingfailsound = beeperr   ; указывает на сбой функции one-touch monitor или one-touch mixmonitor
                                ; будет применен к вызову. (по умолчанию: нет звука)
;atxfernoanswertimeout = 15     ; Время ожидания ответа при посещенной передаче по умолчанию составляет 15 секунд.
;atxferdropcall = no            ; Если кто-то выполняет посещаемый перевод, то вешает трубку перед переводом
                                ; целевые ответы, то по умолчанию система попытается перезвонить
								; человеку, который выполнил перевод.  Если для этого параметра установлено значение "да yes", то раздается звуковой сигнал
                                ; цель перевода немедленно передается получателю.
;atxferloopdelay = 10           ; Количество секунд для перехода в спящий режим между повторными попытками (если atxferdropcall = no)
;atxfercallbackretries = 2      ; Количество попыток переадресации вызова отправителю.
                                ; По умолчанию это значение равно 2.
;transferdialattempts = 3       ; Количество раз, когда абонент, осуществляющий перевод, может попытаться набрать добавочный номер до этого
								; будет возвращен к исходному вызову.
;transferretrysound = "beep"    ; Звук воспроизводится, когда абоненту не удается набрать действительный добавочный номер.
;transferinvalidsound = "beeperr" ; Звук воспроизводится, когда абоненту не удается набрать действительный добавочный номер и у него заканчиваются повторные попытки.
;atxferabort = *1               ; отмените запланированный трансфер
;atxfercomplete = *2            ; завершите запланированный перевод, прервав вызов
;atxferthreeway = *3            ; завершите запланированный перевод, но оставайтесь на связи. Это превратит звонок в многопартийный мост
;atxferswap = *4                ; поменяйтесь местами с другой стороной. Как только начнется посещаемый трансфер, эти опции могут быть использованы несколько раз

; Обратите внимание, что перечисленные ниже функции DTMF работают только тогда, когда два канала ответили и соединены мостом.
; Они не могут быть использованы, пока удаленный абонент звонит или находится в процессе выполнения. Если вам требуется эта функция, вы можете использовать
; chan_local в сочетании с Answer для ее выполнения.

[featuremap]

blindxfer => ##                ; Передача вслепую (по умолчанию используется #) -- Обязательно установите параметр T и/или t в вызове приложения Dial() или Queue()!
disconnect => **               ; Отключение (по умолчанию - *) -- Обязательно установите опцию Hand/или h в вызове приложения Dial() или Queue()!
;automon => *1                  ; Запись в одно касание, также известная как сенсорный монитор - обязательно установите параметр W и / или w в вызове приложения Dial() или Queue()!
atxfer => **                   ; Посещаемый перевод - Обязательно установите опцию T и/или t в вызове приложения Dial() или Queue()!
;parkcall => #72                ; Вызов на парковку (парковка в один шаг)  -- Обязательно установите опцию K и / или k в вызове приложения Dial()!
;automixmon => *3               ; Запись в одно касание, также известная как Touch MixMonitor - обязательно установите опцию X и / или x в вызове приложения Dial() или Queue()!

[applicationmap]
;nway-start => *0,self,Macro,nway-start
;nway-invite => **,self,Macro,nway-invite
;nway-accept => **3,self/caller,Macro,nway-accept
;nway-reject => *#,self/caller,Macro,nway-reject


; Обратите внимание, что переменная канала DYNAMIC_FEATURES должна быть установлена для использования функций
; определенных здесь.  Значением DYNAMIC_FEATURES должны быть имена функций
; чтобы разрешить использование канала, разделенных символом '#'.  Например:
;
;    Установить(__ДИНАМИЧЕСКИЕ_ФУНКЦИИ=myfeature1#myfeature2#myfeature3)
;    Set(__DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3)
;
; (Примечание: Два начальных символа подчеркивания позволяют установить эти параметры функции
; также и на исходящих каналах.  В противном
; случае доступ к этим функциям будет иметь только исходный канал.)
;
; Синтаксис для объявления динамического объекта - любой из следующих:
;
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>[,<AppArguments>[,MOH_Class]]
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>[,"<AppArguments>"[,MOH_Class]]
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>([<AppArguments>])[,MOH_Class]

;
;  FeatureName   -> Это название функции, используемой при установке переменной
;					 DYNAMIC_FEATURES, чтобы разрешить использование этой функции.
;  DTMF_sequence -> Это последовательность клавиш, используемая для активации этой функции.
;  ActivateOn    -> Это канал вызова, по которому будет выполняться приложение
;					on. Допустимыми значениями являются "self" и "peer". "самостоятельно/self" означает запуск
;					приложения на том же канале, который активировал функцию. "равный"
;					означает запуск приложения на канале, противоположном тому, на котором
;					активирована функция.
;					ActivatedBy   -> ActivatedBy больше не выполняется.  Функция, с помощью которой активируется
;					channel DYNAMIC_FEATURES включает функцию, включена.  Используйте predial
;					для установки различных значений DYNAMIC_FEATURES на каналах.
;					Историческими значениями являются: "вызывающий/caller", "вызываемый абонент/callee" и "оба/both".
;  Application   -> Это приложение для выполнения.
;  AppArguments  -> Это аргументы, которые должны быть переданы в приложение.  Если вам нужны
;					запятые в ваших аргументах, вам следует использовать либо второй, либо третий
;					синтаксис, приведенный выше.
;  MOH_Class     -> Это класс "Музыка на удержании", который воспроизводится во время ожидания
;					канал ожидает завершения функции. Если оставить
;					это поле пустым, музыка воспроизводиться не будет.
;

;
; ВАЖНОЕ ПРИМЕЧАНИЕ: applicationmap не предназначен для использования во всех
; приложениях Asterisk ;. Когда приложения используются в extensions.conf, они выполняются
; ядром PBX. В этом случае эти приложения выполняются вне ядра
; АТС, поэтому не имеет смысла использовать какое-либо приложение, которое имеет какую
; -либо концепцию потока диалплана. Примерами этого могут быть такие вещи, как Goto,
; Background, WaitExten и многие другие.  Исключениями из этого правила являются
; подпрограммы макросов Gosub и, которые должны быть завершены для продолжения вызова.
;
; Включение этих функций означает, что УАТС должна оставаться в потоке мультимедиа и
; мультимедиа не будет перенаправлено, если DTMF отправляется в потоке мультимедиа.
;
; Пример использования:
;
;testfeature => #9,peer,Playback,tt-monkeys  ; Разрешить воспроизведение как вызывающему, так и вызываемой стороне
;												tt-переключение на противоположный канал
;
; Устанавливает произвольные переменные канала, основанные на номере CALLERID (обратите внимание, что аргумент application
; содержит запятые)
;retrieveinfo => #8,peer,Set(ARRAY(CDR(mark),CDR(name))=${ODBC_FOO(${CALLERID(num)})})
;
;pauseMonitor   => #1,self/callee,Pausemonitor     ;Разрешить вызываемому абоненту приостановить мониторинг
;													;на своем канале
;unpauseMonitor => #3,self/callee,UnPauseMonitor   ;Разрешить вызываемому абоненту отменить мониторинг
;													;на своем канале

; Динамические группы объектов:
; Динамические группы объектов - это группировки объектов, определенные в [applicationmap]
; которые могут иметь свои собственные пользовательские сопоставления ключей.  Чтобы предоставить каналу доступ к динамической
; группе объектов, добавьте название группы к значению переменной DYNAMIC_FEATURES.
;
; пример:
; [myGroupName]         ; определяет группу с именем myGroupName
; testfeature => #9     ; связывает testfeature с группой и кодом ключа '#9'.
; pauseMonitor =>       ; связывает pauseMonitor с группой и использует код ключа, указанный
;						; в [applicationmap].
/opt/etc/asterisk/features.default

Код: Выделить всё

;
; Пример конфигурации функций вызова (передача, монитор/миксмонитор и т.д.)
;

; Примечание: Начиная с Asterisk 12 - Вся настройка парковки теперь выполняется в res_parking.conf

[general]
;transferdigittimeout => 3      ; Количество секунд ожидания между цифрами при передаче вызова
                                ; (по умолчанию - 3 секунды)
;xfersound = beep               ; чтобы указать, что посещаемый перевод завершен
;xferfailsound = beeperr        ; чтобы указать на неудачную передачу
;pickupexten = *8               ; Настройте расширение pickup. (значение по умолчанию - *8)
;pickupsound = beep             ; для указания на успешный захват (по умолчанию: без звука)
;pickupfailsound = beeperr      ; для указания на сбой звукоснимателя (по умолчанию: нет звука)
;featuredigittimeout = 1000     ; Максимальное время (мс) между цифрами для
                                ; активация функции (по умолчанию - 1000 мс)
;recordingfailsound = beeperr   ; указывает на сбой функции one-touch monitor или one-touch mixmonitor
                                ; будет применен к вызову. (по умолчанию: нет звука)
;atxfernoanswertimeout = 15     ; Тайм-аут для ответа при посещенной передаче по умолчанию составляет 15 секунд.
;atxferdropcall = no            ; Если кто-то выполняет посещаемый перевод, то вешает трубку перед переводом
                                ; целевые ответы, то по умолчанию система попытается перезвонить
								; человеку, который выполнил перевод.  Если для этого параметра установлено значение "да", то раздается звуковой сигнал
                                ; цель перевода немедленно передается получателю.
;atxferloopdelay = 10           ; Количество секунд для перехода в спящий режим между повторными попытками (если atxferdropcall = no)
;atxfercallbackretries = 2      ; Количество попыток переадресации вызова отправителю.
                                ; По умолчанию это значение равно 2.
;transferdialattempts = 3       ; Количество раз, когда абонент, осуществляющий перевод, может попытаться набрать добавочный номер до этого
								; будет возвращен к исходному вызову.
;transferretrysound = beep      ; Звук воспроизводится, когда абоненту не удается набрать действительный добавочный номер.
;transferinvalidsound = beeperr ; Звук воспроизводится, когда абоненту не удается набрать действительный добавочный номер и у него заканчиваются повторные попытки.
;atxferabort = *1               ; отмените запланированный трансфер
;atxfercomplete = *2            ; завершите запланированный перевод, прервав вызов
;atxferthreeway = *3            ; завершите запланированный перевод, но оставайтесь на связи. Это превратит звонок в многопартийный мост
;atxferswap = *4                ; поменяйтесь местами с другой стороной. Как только начнется посещаемый трансфер, эти опции могут быть использованы несколько раз

; Обратите внимание, что перечисленные ниже функции DTMF работают только тогда, когда два канала ответили и соединены мостом.
; Они не могут быть использованы, пока удаленный абонент звонит или находится в процессе выполнения. Если вам требуется эта функция, вы можете использовать
; chan_local в сочетании с Answer для ее выполнения.

[featuremap]
;blindxfer => #1                ; Передача вслепую (по умолчанию используется #) -- Обязательно установите параметр T и/или t в вызове приложения Dial() или Queue()!
;disconnect => *0               ; Отключение (по умолчанию - *) -- Обязательно установите опцию Hand/или h в вызове приложения Dial() или Queue()!
;automon => *1                  ; Запись в одно касание, также известная как сенсорный монитор - обязательно установите параметр W и / или w в вызове приложения Dial() или Queue()!
;atxfer => *2                   ; Посещаемый перевод - Обязательно установите опцию T и/или t в вызове приложения Dial() или Queue()!
;parkcall => #72                ; Вызов на парковку (парковка в один шаг)  -- Обязательно установите опцию K и / или k в вызове приложения Dial()!
;automixmon => *3               ; Запись в одно касание, также известная как Touch MixMonitor - обязательно установите опцию X и / или x в вызове приложения Dial() или Queue()!

[applicationmap]
; Обратите внимание, что переменная канала DYNAMIC_FEATURES должна быть установлена для использования функций
; определенных здесь.  Значением DYNAMIC_FEATURES должны быть имена функций
; чтобы разрешить использование канала, разделенных символом '#'.  Например:
;
;    Set(__DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3)
;
; (Примечание: Два начальных символа подчеркивания позволяют установить эти параметры функции
; также и на исходящих каналах.  В противном
; случае доступ к этим функциям будет иметь только исходный канал.)
;
; Синтаксис для объявления динамического объекта - любой из следующих:
;
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>[,<AppArguments>[,MOH_Class]]
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>[,"<AppArguments>"[,MOH_Class]]
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>([<AppArguments>])[,MOH_Class]

;
;  FeatureName   -> Это название функции, используемой при установке переменной
;					DYNAMIC_FEATURES, чтобы разрешить использование этой функции.
;  DTMF_sequence -> Это последовательность клавиш, используемая для активации этой функции.
;  ActivateOn    -> Это канал вызова, по которому будет выполняться приложение
;					on. Допустимыми значениями являются "self" и "peer". "самостоятельно/self" означает запуск
;					приложения на том же канале, который активировал функцию. "равный/peer"
;					означает запуск приложения на канале, противоположном тому, на котором
;					активирована функция.
;  ActivatedBy   -> ActivatedBy больше не выполняется.  Функция, с помощью которой активируется
;					channel DYNAMIC_FEATURES включает функцию, включена.  Используйте обработчик pre-dial
;					для установки различных значений для DYNAMIC_FEATURES на каналах.
;					Историческими значениями являются: "вызывающий/caller", "вызываемый абонент/callee" и "оба/both".
;  Application   -> Это приложение для выполнения.
;  AppArguments  -> Это аргументы, которые должны быть переданы в приложение.  Если вам нужны
;					запятые в ваших аргументах, вам следует использовать либо второй, либо третий
;					синтаксис, приведенный выше.
;  MOH_Class     -> Это класс "Музыка на удержании", который воспроизводится во время ожидания
;					канал ожидает завершения функции. Если оставить
;					это поле пустым, музыка воспроизводиться не будет.
;

;
; ВАЖНОЕ ПРИМЕЧАНИЕ: applicationmap не предназначен для использования во всех приложениях Asterisk.
; Когда приложения используются в extensions.conf, они выполняются ядром PBX. В этом случае эти 
; приложения выполняются вне ядра АТС, поэтому не имеет смысла использовать какое-либо приложение,
; которое имеет какую-либо концепцию потока диалплана. Примерами этого могут быть такие вещи, как Goto,
; Background, WaitExten и многие другие.  Исключениями из этого правила являются подпрограммы макросов Gosub и
;, которые должны быть завершены для продолжения вызова.
;
; Включение этих функций означает, что УАТС должна оставаться в потоке мультимедиа и
; мультимедиа не будет перенаправлено, если DTMF отправляется в потоке мультимедиа.
;
; Пример использования:
;
;testfeature => #9,peer,Playback,tt-monkeys  ;Разрешить воспроизведение как вызывающему, так и вызываемой стороне
;											 ;tt-переключение на противоположный канал
;
; Устанавливает произвольные переменные канала, основанные на номере CALLERID (обратите внимание, что аргумент application
; содержит запятые)
;retrieveinfo => #8,peer,Set(ARRAY(CDR(mark),CDR(name))=${ODBC_FOO(${CALLERID(num)})})
;
;pauseMonitor   => #1,self/callee,Pausemonitor     ;Разрешить вызываемому абоненту приостановить мониторинг
;													;на своем канале
;unpauseMonitor => #3,self/callee,UnPauseMonitor   ;Разрешить вызываемому абоненту отменить мониторинг
;													;на своем канале

; Динамические группы объектов:
; Динамические группы объектов - это группировки объектов, определенные в [applicationmap]
; которые могут иметь свои собственные пользовательские сопоставления ключей.  Чтобы предоставить каналу доступ к динамической
; группе объектов, добавьте название группы к значению переменной DYNAMIC_FEATURES.
;
; пример:
; [myGroupName]         ; определяет группу с именем myGroupName
; testfeature => #9     ; связывает testfeature с группой и кодом ключа '#9'.
; pauseMonitor =>       ; связывает pauseMonitor с группой и использует указанный код ключа
;                       ; в [applicationmap].
/opt/etc/asterisk/http.conf

Код: Выделить всё

;
; Встроенный мини-HTTP-сервер Asterisk
;
;
; Примечание о документации Asterisk:
; Если Asterisk был установлен из архивной папки, то документация HTML должна
; быть установлена в каталоге static-http/docs, который
; по умолчанию находится ; (/var/lib/asterisk/static-http/docs) в Linux.  Если звездочка
; HTTP-сервер включен в этом файле, установив параметры "enabled", "bindaddr",
; и "bindport", тогда вы сможете просматривать документацию
; удаленно, перейдя на:
;       http://<server_ip>:<bindport>/static/docs/index.html
;
[general]
;
; Имя сервера, указанное в обоих полях сервера в HTTP
; заголовки ответных сообщений, а также элемент <address /> в определенных HTTP
; тела ответных сообщений. Если здесь не указано,
; то в качестве значения по умолчанию для поля заголовка сервера и <адреса /> будет использоваться "Asterisk/{версия}".
; элемент. Установка для этого свойства пустого значения приведет к отсутствию
; поля заголовка сервера в заголовках ответных сообщений HTTP и элемента
; <адрес /> в текстах ответных сообщений HTTP.
;
servername=Asterisk
;
; Независимо от того, включен интерфейс HTTP/HTTPS или нет.  Значение по умолчанию - нет.
; Это также влияет на доступ к manager/rawman/mxml (см. manager.conf)
;
;enabled=yes
;
; Адрес для привязки, как для HTTP, так и для HTTPS. Вы ДОЛЖНЫ указать
; bindaddr для запуска HTTP-сервера. 
; Значения по умолчанию нет.
;
bindaddr=127.0.0.1
;
; Порт для привязки к HTTP-сеансам (по умолчанию - 8088)
;
;bindport=8080
;
; Prefix позволяет указать префикс для всех запросов
; к серверу.  Значение по умолчанию пустое.  Если нет комментариев
; все запросы должны начинаться с /asterisk
;
;prefix=asterisk
;
; sessionlimit указывает максимальное количество http-сеансов, которым будет
; разрешено существовать в любой момент времени. (по умолчанию: 100)
;
;sessionlimit=100
;
; session_inactivity указывает количество миллисекунд для ожидания
; дополнительных данных по HTTP-соединению перед его закрытием.
;
; Default: 30000
;session_inactivity=30000
;
; session_keep_alive указывает количество миллисекунд для ожидания
; следующего HTTP-запроса по постоянному соединению.
;
; Установите значение 0, чтобы отключить постоянные HTTP-соединения.
; Значение по умолчанию: 15000
;session_keep_alive=15000
;
; Должен ли Asterisk обслуживать статический контент из static-http
; Значение по умолчанию - нет/no.
;
;enable_static=yes
;
; Должен ли Asterisk отображать страницу состояния, показывающую запущенную
; конфигурацию этого встроенного HTTP-сервера.
; Значение по умолчанию равно yes.
;
;enable_status=no
;
; Перенаправлять один URL-адрес на другой.  Вот как вы бы установили
; страницу по умолчанию.
; Синтаксис: перенаправление=<отсюда> <туда>
; Например, если вы используете Asterisk-gui,
; удобно включить следующее перенаправление:
;
;redirect = / /static/config/index.html
;
; Поддержка HTTPS. В дополнение к enabled=yes, вам необходимо
; явно включить tls, определить используемый порт
; и иметь где-нибудь сертификат.
;tlsenable=yes          ; включить tls - по умолчанию нет.
;tlsbindaddr=0.0.0.0:8089    ; адрес и порт для привязки - по умолчанию используется bindaddr и порт 8089.
;
;tlscertfile=</path/to/certificate.pem>  ; только путь к файлу сертификата (*.pem).
;tlsprivatekey=</path/to/private.pem>    ; только путь к файлу закрытого ключа (*.pem).
; Если путь к tlscertfile или tlsprivatekey не указан, по умолчанию выполняется поиск в текущем
; каталоге. Если tlsprivatekey не задан, по умолчанию выполняется поиск закрытого ключа в tlscertfile.
;
; Для создания сертификата вы можете, например, использовать openssl. Это помещает как сертификат, так и
; private в один и тот же pem-файл.
; openssl req -new -x509 -days 365 -nodes -out /tmp/foo.pem -keyout /tmp/foo.pem
;
; tlscipher=                             ; Список разрешенных шифров
;										 ; Если ни один из них не указан,
;										 ;вместо него будет использоваться следующий список шифров:
; ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:
; ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:
; kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:
; ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:
; ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:
; DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:
; AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:
; AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:
; !EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
;
; tlsdisablev1=yes                ; Отключить поддержку TLSv1 - если нет, установите значение по умолчанию "да"
; tlsdisablev11=yes               ; Отключите поддержку TLSv1.1 - если нет, установите значение по умолчанию "нет"
; tlsdisablev12=yes               ; Отключите поддержку TLSv1.2 - если нет, установите значение по умолчанию "нет"
;
; tlsservercipherorder=yes        ; Используйте порядок предпочтений сервера вместо порядка клиента
;								  ; По умолчанию установлено значение "да"
;
; Раздел post_mappings сопоставляет URL-адреса с реальными путями в файловой системе.  Если
; ЗАПИСЬ выполняется из сеанса аутентифицированного менеджера в одно из
; настроенных сопоставлений записей, то все файлы в ЗАПИСИ будут помещены в
; сконфигурированный каталог.
;
;[post_mappings]
;
; ПРИМЕЧАНИЕ: Вам нужен действительный файл cookie HTTP AMI mansession_id с разрешением manager
; config для публикации файлов.
;
; В этом примере, если параметру префикса присвоено значение "звездочка", то с помощью
; URL-адреса публикации: /asterisk/uploads поместит файлы в /var/lib/asterisk/uploads/.
;uploads = /var/lib/asterisk/uploads/
;
/opt/etc/asterisk/indications.conf

Код: Выделить всё

;
; indications.conf
;
; Конфигурационный файл для тональных указаний конкретного местоположения
;

;
; ПРИМЕЧАНИЕ:
; При добавлении стран в этот файл, пожалуйста, располагайте их в алфавитном
; порядке в соответствии с двухсимвольными кодами стран!
;
; Категория [general] предназначена для определенных глобальных переменных.
; Все остальные категории интерпретируются как указания на конкретное местоположение
;

[general]
country=us		; местоположение по умолчанию


; [example]
; description = string
;      Полное название вашей страны на английском языке.
; ringcadence = num[,num]*
;      Список длительностей, в течение которых звонит физический звонок.
; dial = tonelist
;      Набор звуковых сигналов, которые будут воспроизводиться, когда кто-то поднимет трубку.
; busy = tonelist
;      Набор звуковых сигналов, воспроизводимых, когда принимающая сторона занята.
; congestion = tonelist
;      Набор звуковых сигналов, воспроизводимых при некоторой перегрузке (в сети?)
; callwaiting = tonelist
;      Набор звуковых сигналов, воспроизводимых при ожидании вызова в фоновом режиме.
; dialrecall = tonelist
;	   Нечетко определено; многие телефонные системы воспроизводят сигнал вызова после подключения
;	   мигает.
; record = tonelist
;      Набор звуковых сигналов, воспроизводимых во время записи вызова.
; info = tonelist
;      Набор звуковых сигналов, воспроизводимых со специальными информационными сообщениями (например, "номер занят
;	   не обслуживается")
; 'name' = tonelist
;      Все остальные переменные будут доступны в качестве ярлыка для команды "Список воспроизведения",
;	   но Asterisk не будет использовать их автоматически.
;
;
; Сам список тонов определяется последовательностью элементов, разделенных запятыми.
; Каждый элемент состоит из частоты (f) с необязательной длительностью (в мс)
; прикрепленный к нему (f/продолжительность f/duration). Частотная составляющая может представлять собой смесь двух
; частот (f1+f2) или частоту, модулированную другой частотой (f1*f2).
; Однако глубина неявной модуляции фиксирована на уровне 90%.
; Если элемент списка начинается с !, этот элемент НЕ повторяется
; следовательно, только если все элементы начинаются с !, список тонов ограничен по времени
; все остальные будут повторяться бесконечно.
;
; кратко:
;   element = [!]freq[+|*freq2][/duration]
;   tonelist = element[,element]*
;

[at]
description = Austria
ringcadence = 1000,5000
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
dial = 420
busy = 420/400,0/400
ring = 420/1000,0/5000
congestion = 420/200,0/200
callwaiting = 420/40,0/1960
dialrecall = 420
; ЗВУКОВОЙ СИГНАЛ ЗАПИСИ - не указан
record = 1400/80,0/14920
info = 950/330,1450/330,1850/330,0/1000
stutter = 380+420

[au]
description = Australia
; Ссылка: http://www.acif.org.au/__data/page/3303/S002_2001.pdf
; Нормальный звон
ringcadence = 400,200,400,2000
; Отличительный звонок 1 - Переадресованные вызовы
; 400,400,200,200,400,1400
; Опознавательный сигнал 2 - Выборочный сигнал 2 + Оператор + Отзыв
; 400,400,200,2000
; Отличительный звонок 3 - Множественный абонентский номер 1
; 200,200,400,2200
; Различительное звон 4 - Выборочный сигнал 1 + Centrex
; 400,2600
; Различительное звон 5 - Выборочный сигнал 3
; 400,400,200,400,200,1400
; Различительный звонок 6 - Множественный абонентский номер 2
; 200,400,200,200,400,1600
; Различительный звонок 7 - Множественный абонентский номер 3 + Конфиденциальность данных
; 200,400,200,400,200,1600
; Тон
dial = 413+438
busy = 425/375,0/375
ring = 413+438/400,0/200,413+438/400,0/2000
; Перегрузка XXX: Должна уменьшаться на 10 дБ с каждой второй частотой XXX
congestion = 425/375,0/375,420/375,0/375
callwaiting = 425/200,0/200,425/200,0/4400
dialrecall = 413+438
; Звуковой сигнал записи, используемый для перехвата вызова / записи или конференции
record = !425/1000,!0/15000,425/360,0/15000
info = 425/2500,0/500
; Другие австралийские тона
; Стандартные "пункты/pips" указывают на то, что вызов не является несвоевременным локальным вызовом
std = !525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100
; Звуковой сигнал подтверждения установки (напр. Активирована переадресация вызова)
facility = 425
; Ожидающий сообщения звуковой сигнал "заикания"
stutter = 413+438/100,0/40
; Мелодия звонка для звонков на мобильные телефоны Telstra
ringmobile = 400+450/400,0/200,400+450/400,0/2000

[bg]
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
description = Bulgaria
ringcadence = 1000,4000
;
dial = 425
busy = 425/500,0/500
ring = 425/1000,0/4000
congestion = 425/250,0/250
callwaiting = 425/150,0/150,425/150,0/4000
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
record = 1400/425,0/15000
info = 950/330,1400/330,1800/330,0/1000
stutter = 425/1500,0/100

[br]
description = Brazil
ringcadence = 1000,4000
dial = 425
busy = 425/250,0/250
ring = 425/1000,0/4000
congestion = 425/250,0/250,425/750,0/250
callwaiting = 425/50,0/1000
; Dialrecall не используется в стандарте Бразилии (используется стандарт Великобритании)
dialrecall = 350+440
; Звуковой сигнал записи в Бразилии не используется, используйте сигнал занятости
record = 425/250,0/250
; Информация, не используемая в стандарте Бразилии (используется стандарт Великобритании)
info = 950/330,1400/330,1800/330
stutter = 350+440

[be]
description = Belgium
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
ringcadence = 1000,3000
dial = 425
busy = 425/500,0/500
ring = 425/1000,0/3000
congestion = 425/167,0/167
callwaiting = 1400/175,0/175,1400/175,0/3500
; ОБРАТНЫЙ вызов - не указан
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
; ЗВУКОВОЙ СИГНАЛ ЗАПИСИ - не указан
record = 1400/500,0/15000
info = 900/330,1400/330,1800/330,0/1000
stutter = 425/1000,0/250

[ch]
description = Switzerland
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
ringcadence = 1000,4000
dial = 425
busy = 425/500,0/500
ring = 425/1000,0/4000
congestion = 425/200,0/200
callwaiting = 425/200,0/200,425/200,0/4000
; ОБРАТНЫЙ вызов - не указан
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
; ТОН ЗАПИСИ - не указан
record = 1400/80,0/15000
info = 950/330,1400/330,1800/330,0/1000
stutter = 425+340/1100,0/1100

[cl]
description = Chile
; Согласно спецификациям Telefonica CTC chile
ringcadence = 1000,3000
dial = 400
busy = 400/500,0/500
ring = 400/1000,0/3000
congestion = 400/200,0/200
callwaiting = 400/250,0/8750
dialrecall = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
record = 1400/500,0/15000
info = 950/333,1400/333,1800/333,0/1000
stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400

[cn]
description = China
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
ringcadence = 1000,4000
dial = 450
busy = 450/350,0/350
ring = 450/1000,0/4000
congestion = 450/700,0/700
callwaiting = 450/400,0/4000
dialrecall = 450
record = 950/400,0/10000
info = 450/100,0/100,450/100,0/100,450/100,0/100,450/400,0/400
; ЗАИКАНИЕ - не указано
stutter = 450+425

[cz]
description = Czech Republic
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
ringcadence = 1000,4000
dial = 425/330,0/330,425/660,0/660
busy = 425/330,0/330
ring = 425/1000,0/4000
congestion = 425/165,0/165
callwaiting = 425/330,0/9000
; ОБРАТНЫЙ вызов - не указан
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425/330,0/330,425/660,0/660
; ТОН ЗАПИСИ - не указан
record = 1400/500,0/14000
info = 950/330,0/30,1400/330,0/30,1800/330,0/1000
; ЗАИКАНИЕ - не указано
stutter = 425/450,0/50

[de]
description = Germany
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
ringcadence = 1000,4000
dial = 425
busy = 425/480,0/480
ring = 425/1000,0/4000
congestion = 425/240,0/240
callwaiting = !425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,0
; ОБРАТНЫЙ вызов - не указан
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
; ТОН ЗАПИСИ - не указан
record = 1400/80,0/15000
info = 950/330,1400/330,1800/330,0/1000
stutter = 425+400

[dk]
description = Denmark
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
ringcadence = 1000,4000
dial = 425
busy = 425/500,0/500
ring = 425/1000,0/4000
congestion = 425/200,0/200
callwaiting = !425/200,!0/600,!425/200,!0/3000,!425/200,!0/200,!425/200,0
; ОБРАТНЫЙ вызов - не указан
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
; ТОН ЗАПИСИ - не указан
record = 1400/80,0/15000
info = 950/330,1400/330,1800/330,0/1000
; ЗАИКАНИЕ - не указано
stutter = 425/450,0/50

[ee]
description = Estonia
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
ringcadence = 1000,4000
dial = 425
busy = 425/300,0/300
ring = 425/1000,0/4000
congestion = 425/200,0/200
; ОЖИДАНИЕ вызова не соответствует требованиям МСЭ
callwaiting = 950/650,0/325,950/325,0/30,1400/1300,0/2600
; ОБРАТНЫЙ вызов - не указан
dialrecall = 425/650,0/25
; ТОН ЗАПИСИ - не указан
record = 1400/500,0/15000
; ИНФОРМАЦИЯ, не соответствующая требованиям МСЭ ITU
info = 950/650,0/325,950/325,0/30,1400/1300,0/2600
; ЗАИКАНИЕ не указано
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425

[es]
description = Spain
ringcadence = 1500,3000
dial = 425
busy = 425/200,0/200
ring = 425/1500,0/3000
congestion = 425/200,0/200,425/200,0/200,425/200,0/600
callwaiting = 425/175,0/175,425/175,0/3500
dialrecall = !425/200,!0/200,!425/200,!0/200,!425/200,!0/200,425
record = 1400/500,0/15000
info = 950/330,0/1000
dialout = 500
; ЗАИКАНИЕ не указано
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425


[fi]
description = Finland
ringcadence = 1000,4000
dial = 425
busy = 425/300,0/300
ring = 425/1000,0/4000
congestion = 425/200,0/200
callwaiting = 425/150,0/150,425/150,0/8000
dialrecall = 425/650,0/25
record = 1400/500,0/15000
info = 950/650,0/325,950/325,0/30,1400/1300,0/2600
stutter = 425/650,0/25

[fr]
description = France
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
ringcadence = 1500,3500
; Тональный сигнал также может быть 440+330
dial = 440
busy = 440/500,0/500
ring = 440/1500,0/3500
; ПЕРЕГРУЖЕННОСТЬ - не указано
congestion = 440/250,0/250
callwait = 440/300,0/10000
; ОБРАТНЫЙ вызов - не указан
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
; ЗВУКОВОЙ СИГНАЛ ЗАПИСИ - не указан
record = 1400/500,0/15000
info = !950/330,!1400/330,!1800/330
stutter = !440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,440

[gr]
description = Greece
ringcadence = 1000,4000
dial = 425/200,0/300,425/700,0/800
busy = 425/300,0/300
ring = 425/1000,0/4000
congestion = 425/200,0/200
callwaiting = 425/150,0/150,425/150,0/8000
dialrecall = 425/650,0/25
record = 1400/400,0/15000
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
stutter = 425/650,0/25

[hu]
description = Hungary
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
ringcadence = 1250,3750
dial = 425
busy = 425/300,0/300
ring = 425/1250,0/3750
congestion = 425/300,0/300
callwaiting = 425/40,0/1960
dialrecall = 425+450
; ЗВУКОВОЙ СИГНАЛ ЗАПИСИ - не указан
record = 1400/400,0/15000
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
stutter = 350+375+400

[id]
description = Indonesia
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
ringcadence = 1000,4000
dial = 425
busy = 425/500,0/500
ring = 425/1000,0/4000
congestion = 425/250,0/250
callwaiting = 425/150,0/150,425/150,0/10000
info = !950/330,!1400/330,!1800/330,0/1000

[il]
description = Israel
ringcadence = 1000,3000
dial = 414
busy = 414/500,0/500
ring = 414/1000,0/3000
congestion = 414/250,0/250
callwaiting = 414/100,0/100,414/100,0/100,414/600,0/3000
dialrecall = !414/100,!0/100,!414/100,!0/100,!414/100,!0/100,414
record = 1400/500,0/15000
info = 1000/330,1400/330,1800/330,0/1000
stutter = !414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,414


[in]
description = India
ringcadence = 400,200,400,2000
dial = 400*25
busy = 400/750,0/750
ring = 400*25/400,0/200,400*25/400,0/2000
congestion = 400/250,0/250
callwaiting = 400/200,0/100,400/200,0/7500
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
record = 1400/500,0/15000
info = !950/330,!1400/330,!1800/330,0/1000
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,400*25

[it]
description = Italy
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
ringcadence = 1000,4000
dial = 425/200,0/200,425/600,0/1000
busy = 425/500,0/500
ring = 425/1000,0/4000
congestion = 425/200,0/200
callwaiting = 425/400,0/100,425/250,0/100,425/150,0/14000
dialrecall = 470/400,425/400
record = 1400/400,0/15000
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
stutter = 470/400,425/400

[lt]
description = Lithuania
ringcadence = 1000,4000
dial = 425
busy = 425/350,0/350
ring = 425/1000,0/4000
congestion = 425/200,0/200
callwaiting = 425/150,0/150,425/150,0/4000
; ОБРАТНЫЙ вызов - не указан
dialrecall = 425/500,0/50
; ЗВУКОВОЙ СИГНАЛ ЗАПИСИ - не указан
record = 1400/500,0/15000
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
; ЗАИКАНИЕ - не указано
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425

[jp]
description = Japan
ringcadence = 1000,2000
dial = 400
busy = 400/500,0/500
ring = 400+15/1000,0/2000
congestion = 400/500,0/500
callwaiting = 400+16/500,0/8000
dialrecall = !400/200,!0/200,!400/200,!0/200,!400/200,!0/200,400
record = 1400/500,0/15000
info = !950/330,!1400/330,!1800/330,0
stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400

[mx]
description = Mexico
ringcadence = 2000,4000
dial = 425
busy = 425/250,0/250
ring = 425/1000,0/4000
congestion = 425/250,0/250
callwaiting = 425/200,0/600,425/200,0/10000
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
record = 1400/500,0/15000
info = 950/330,0/30,1400/330,0/30,1800/330,0/1000
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,425

[my]
description = Malaysia
ringcadence = 2000,4000
dial = 425
busy = 425/500,0/500
ring = 425/400,0/200,425/400,0/2000
congestion = 425/500,0/500
; ЗАИКАНИЕ - не указано
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425

[nl]
description = Netherlands
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
ringcadence = 1000,4000
; Большинство из этих 425-х также могут быть 450-ми
dial = 425
busy = 425/500,0/500
ring = 425/1000,0/4000
congestion = 425/250,0/250
callwaiting = 425/500,0/9500
; ОБРАТНЫЙ вызов - не указан
dialrecall = 425/500,0/50
; ЗВУКОВОЙ СИГНАЛ ЗАПИСИ - не указан
record = 1400/500,0/15000
info = 950/330,1400/330,1800/330,0/1000
stutter = 425/500,0/50

[no]
description = Norway
ringcadence = 1000,4000
dial = 425
busy = 425/500,0/500
ring = 425/1000,0/4000
congestion = 425/200,0/200
callwaiting = 425/200,0/600,425/200,0/10000
dialrecall = 470/400,425/400
record = 1400/400,0/15000
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
stutter = 470/400,425/400

[nz]
description = New Zealand
; Ссылка: http://www.telepermit.co.nz/TNA102.pdf
ringcadence = 400,200,400,2000
dial = 400
busy = 400/500,0/500
ring = 400+450/400,0/200,400+450/400,0/2000
congestion = 400/250,0/250
callwaiting = !400/200,!0/3000,!400/200,!0/3000,!400/200,!0/3000,!400/200
dialrecall = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
record = 1400/425,0/15000
info = 400/750,0/100,400/750,0/100,400/750,0/100,400/750,0/400
stutter = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
unobtainable = 400/75,0/100,400/75,0/100,400/75,0/100,400/75,0/400

[ph]

; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf

description = Philippines
ringcadence = 1000,4000
dial = 425
busy = 480+620/500,0/500
ring = 425+480/1000,0/4000
congestion = 480+620/250,0/250
callwaiting = 440/300,0/10000
; ОБРАТНЫЙ вызов - не указан
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
; ЗВУКОВОЙ СИГНАЛ ЗАПИСИ - не указан
record = 1400/500,0/15000
; ИНФОРМАЦИЯ - не указана
info = !950/330,!1400/330,!1800/330,0
; ЗАИКАНИЕ - не указано
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,425


[pl]
description = Poland
ringcadence = 1000,4000
dial = 425
busy = 425/500,0/500
ring = 425/1000,0/4000
congestion = 425/500,0/500
callwaiting = 425/150,0/150,425/150,0/4000
; ОБРАТНЫЙ вызов - не указан
dialrecall = 425/500,0/50
; ЗВУКОВОЙ СИГНАЛ ЗАПИСИ - не указан
record = 1400/500,0/15000
; 950/1400/1800 3x0.33 on 1.0 off  repeated 3 times
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000
; ЗАИКАНИЕ - не указано
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425

[pt]
description = Portugal
ringcadence = 1000,5000
dial = 425
busy = 425/500,0/500
ring = 425/1000,0/5000
congestion = 425/200,0/200
callwaiting = 440/300,0/10000
dialrecall = 425/1000,0/200
record = 1400/500,0/15000
info = 950/330,1400/330,1800/330,0/1000
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425

[ru]
; Ссылка:
;	http://www.minsvyaz.ru/site.shtml?id=1806
;	http://www.aboutphone.info/lib/gost/45-223-2001.html
description = Russian Federation / ex Soviet Union
ringcadence = 1000,4000
dial = 425
busy = 425/350,0/350
ring = 425/1000,0/4000
congestion = 425/175,0/175
callwaiting = 425/200,0/5000
record = 1400/400,0/15000
info = 950/330,1400/330,1800/330,0/1000
dialrecall = 425/400,0/40
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425

[se]
description = Sweden
ringcadence = 1000,5000
dial = 425
busy = 425/250,0/250
ring = 425/1000,0/5000
congestion = 425/250,0/750
callwaiting = 425/200,0/500,425/200,0/9100
dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
record = 1400/500,0/15000
info = !950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,0
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
; заикание = 425/320,0/20 ; Настоящий шведский стандарт, пока не используется

[sg]
description = Singapore
; Сингапур
; Ссылка: http://www.ida.gov.sg/idaweb/doc/download/I397/ida_ts_pstn1_i4r2.pdf
; Частотные характеристики следующие: 425 Гц +/- 20 Гц; 24 Гц +/- 2 Гц; глубина модуляции 100%; SIT +/- 50 Гц
ringcadence = 400,200,400,2000
dial        = 425
ring        = 425*24/400,0/200,425*24/400,0/2000     ; модуляция должна быть 100%, а не 90%
busy        = 425/750,0/750
congestion  = 425/250,0/250
callwaiting = 425*24/300,0/200,425*24/300,0/3200
stutter     = !425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,425
info        = 950/330,1400/330,1800/330,0/1000       ; в настоящее время не используется согласно ссылке
dialrecall  = 425*24/500,0/500,425/500,0/2500        ; не указано в справочнике по ИНДИИ, используйте повторяющийся удерживающий сигнал A,B
record      = 1400/500,0/15000                       ; не указано в ссылке IDA, используйте звуковой сигнал продолжительностью 0,5 секунды каждые 15 секунд
; дополнительно определено в ссылке
nutone      = 425/2500,0/500
intrusion   = 425/250,0/2000
warning     = 425/624,0/4376                         ; звуковой сигнал окончания периода, предупреждение
acceptance  = 425/125,0/125
holdinga    = !425*24/500,!0/500                     ; за которым следует удержание b
holdingb    = !425/500,!0/2500

[th]
description = Thailand
ringcadence = 1000,4000
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
dial = 400*50
busy = 400/500,0/500
ring = 420/1000,0/5000
congestion = 400/300,0/300
callwaiting = 1000/400,10000/400,1000/400
; ОБРАТНЫЙ вызов - не указан - use special dial tone instead.
dialrecall = 400*50/400,0/100,400*50/400,0/100
; ЗВУКОВОЙ СИГНАЛ ЗАПИСИ - не указан
record = 1400/500,0/15000
; ИНФОРМАЦИЯ - указана как объявление - вместо этого используйте специальные информационные сигналы
info = 950/330,1400/330,1800/330
; ЗАИКАНИЕ - не указано
stutter = !400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,!400/200,!0/200,!400/600,!0/200,400

[uk]
description = United Kingdom
ringcadence = 400,200,400,2000
; Это официальные тональные сигналы, взятые с BT SIN350. Фактические тональные
; сигналы, используемые BT, включают некоторые различия в громкости, поэтому звучат немного иначе,
; чем сгенерированные Asterisk.
dial = 350+440
; Специальный набор - это прерывистый звуковой сигнал, который раздается, например, когда
; на линии активирована переадресация
specialdial = 350+440/750,440/750
; Занятый также называется "вовлеченным".
busy = 400/375,0/375
; "Перегрузка" - это включенный звуковой сигнал "Бип-бип".
congestion = 400/400,0/350,400/225,0/525
; "Специальная перегрузка" используется BT не очень часто, если вообще используется
specialcongestion = 400/200,1004/300
unobtainable = 400
ring = 400+450/400,0/200,400+450/400,0/2000
callwaiting = 400/100,0/4000
; BT, похоже, использует "Специальное ожидание вызова", а не просто сигналы "Ожидание вызова".
specialcallwaiting = 400/250,0/250,400/250,0/250,400/250,0/5000
; "Пипсы", используемые BT на телефонах-автоматах. (Звучит неправильно, но это то, что утверждает BT
; есть, и я уже много лет не пользовался телефоном-автоматом)
creditexpired = 400/125,0/125
; Эти два параметра используются для подтверждения / отклонения запросов на обслуживание на биржах, которые
; не делают голосовых объявлений.
confirm = 1400
switching = 400/200,0/400,400/2000,0/400
; Это три повышающихся тона Doo-dah-dee "Специальный информационный сигнал",
; за которыми обычно следует женщина из BT, произносящая соответствующее сообщение.
info = 950/330,0/15,1400/330,0/15,1800/330,0/1000
; Не указан в SIN 350
record = 1400/500,0/60000
stutter = 350+440/750,440/750

[us]
description = United States / North America
ringcadence = 2000,4000
dial = 350+440
busy = 480+620/500,0/500
ring = 440+480/2000,0/4000
congestion = 480+620/250,0/250
callwaiting = 440/300,0/10000
dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
record = 1400/500,0/15000
info = !950/330,!1400/330,!1800/330,0
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440

[us-old]
description = United States Circa 1950/ North America
ringcadence = 2000,4000
dial = 600*120
busy = 500*100/500,0/500
ring = 420*40/2000,0/4000
congestion = 500*100/250,0/250
callwaiting = 440/300,0/10000
dialrecall = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120
record = 1400/500,0/15000
info = !950/330,!1400/330,!1800/330,0
stutter = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120

[tw]
description = Taiwan
; http://nemesis.lonestar.org/reference/telecom/signaling/dialtone.html
; http://nemesis.lonestar.org/reference/telecom/signaling/busy.html
; http://www.iproducts.com.tw/ee/kylink/06ky-1000a.htm
; http://www.pbx-manufacturer.com/ky120dx.htm
; http://www.nettwerked.net/tones.txt
; http://www.cisco.com/univercd/cc/td/doc/product/tel_pswt/vco_prod/taiw_sup/taiw2.htm
;
; сигнал "занято" 480+620 Гц 0,5 сек. вкл., 0,5 сек. выкл.
; сигнал изменения порядка 480+620 Гц 0,25 сек. вкл., 0,25 сек. выкл.
; сигнал вызова 440+480 Гц 1 сек. вкл. , 2 сек. выкл
;
ringcadence = 1000,4000
dial = 350+440
busy = 480+620/500,0/500
ring = 440+480/1000,0/2000
congestion = 480+620/250,0/250
callwaiting = 350+440/250,0/250,350+440/250,0/3250
dialrecall = 300/1500,0/500
record = 1400/500,0/15000
info = !950/330,!1400/330,!1800/330,0
stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440

[ve]
; Источник определения тона для ve найден на
; Ссылка: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
description = Venezuela / South America
ringcadence = 1000,4000
dial = 425
busy = 425/500,0/500
ring = 425/1000,0/4000
congestion = 425/250,0/250
callwaiting = 400+450/300,0/6000
dialrecall = 425
record = 1400/500,0/15000
info = !950/330,!1440/330,!1800/330,0/1000
; ЗАИКАНИЕ - не указано
stutter = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425


[za]
description = South Africa
; http://www.cisco.com/univercd/cc/td/doc/product/tel_pswt/vco_prod/safr_sup/saf02.htm
; (определения для других стран также можно найти там)
; Однако обратите внимание, что Южная Африка использует в своей сети два типа коммутаторов --
; Коммутаторы Alcatel - в основном в Западном Кейпе, а Siemens - в других местах.
; Первые используют 383+417 при наборе номера, обратном звонке и т.д.  Последние используют 400*33
; Я предоставил оба варианта, раскомментируйте те, которые вам больше нравятся
ringcadence = 400,200,400,2000
; набор номера/звонок/вызов в ожидании коммутаторов Siemens:
dial = 400*33
ring = 400*33/400,0/200,400*33/400,0/2000
callwaiting = 400*33/250,0/250,400*33/250,0/250,400*33/250,0/250,400*33/250,0/250
; набор номера/звонок/ожидание вызова для коммутаторов Alcatel:
; dial = 383+417
; ring = 383+417/400,0/200,383+417/400,0/2000
; callwaiting = 383+417/250,0/250,383+417/250,0/250,383+417/250,0/250,383+417/250,0/250
congestion = 400/250,0/250
busy = 400/500,0/500
dialrecall = 350+440
; XXX Не уверен насчет ЗВУКОВОГО сигнала ЗАПИСИ
record = 1400/500,0/10000
info = 950/330,1400/330,1800/330,0/330
stutter = !400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,!400*33/100,!0/100,400*33
/opt/etc/asterisk/logger.conf

Код: Выделить всё

;
; Конфигурация ведения журнала
;
; В этом файле вы настраиваете ведение журнала/лога в файлах или в системном журнале.
;
; "перезагрузка регистратора logger reload" в CLI приведет к перезагрузке конфигурации
; системы ведения журнала.

[general]
;
; Настройка отображения временных меток отладочных сообщений
; в качестве примера приведен формат даты ISO 8601 (гггг-мм-дд ЧЧ:ММ:СС)
;
; смотрите руководство strftime(3) Linux для получения спецификаторов формата.  Обратите внимание, что существует также
; дробный второй параметр, который может быть использован в этом поле.  Использовать %1q
; четыре десятых, %2q для сотых и т.д.
;
;dateformat=%F %T       ; Формат даты ISO 8601
;dateformat=%F %T.%3q   ; с миллисекундами
;
;
; Это заставляет Asterisk записывать идентификаторы вызовов в журнал сообщений
; (по умолчанию установлено значение "да yes")
;use_callids = no
;
; При этом имя хоста добавляется к имени файлов журнала.
;appendhostname = yes
;
; Это определяет, будем ли мы записывать события очереди в файл или нет
; (по умолчанию установлено значение да yes).
;queue_log = no
;
; Определяет, всегда ли queue_log обращается к файлу, даже
; при наличии серверной части реального времени (по умолчанию - нет no).
;queue_log_to_file = yes
;
; Установите имя файла queue_log
; (по умолчанию используется queue_log)
;queue_log_name = queue_log
;
; При использовании реального времени для журнала очереди используйте GMT в качестве временной метки
; вместо localtime.  Значение по умолчанию для этого параметра - "нет no".
;queue_log_realtime_use_gmt = yes
;
; Стратегия ротации журналов:
; нет none: вообще не выполняйте никаких логротаций.  Вы должны убедиться,
;			что настроили какой-либо внешний механизм logrotate,
;			поскольку журналы asterisk могут очень быстро становиться очень большими.
; последовательный sequential: Переименуйте архивированные журналы в таком порядке, чтобы самый новый
; 			имел самый высокий порядковый номер [по умолчанию].  Когда
; 			exec_after_rotate установлен, ${имя файла} укажет
; 			новый архивированный файл журнала.
; повернуть rotate: повернуть все старые файлы таким образом, чтобы самый старый из них имел
; 			наибольший порядковый номер [это ожидаемое поведение
; 			для администраторов Unix].  Когда exec_after_rotate имеет значение
; 			установлено, ${filename} укажет исходное корневое имя файла.
; временная метка timestamp: Переименуйте файлы журналов, используя временную метку вместо
; 			порядкового номера при выполнении "поворота регистратора logger rotate".
; 			Когда установлено значение exec_after_rotate, ${имя_файла} будет
; 			указывать новый архивированный файл журнала.
;rotatestrategy = rotate
;
; Запустите системную команду после поворота файлов.  Это в основном
; полезно для rotatestrategy=rotate вращать. В примере последние
; два архивных файла остаются несжатыми, но после этого момента
; они сжимаются на диске.
;
; exec_after_rotate=gzip -9 ${filename}.2
;
;
; Для каждого файла укажите, что следует регистрировать.
;
; Для ведения журнала в консоли вы устанавливаете параметры в начале
; Звездочка с -v для подробного описания и -d для отладки
; Смотрите "asterisk -h" для получения дополнительной информации.
;
; Каталог для файлов журнала/Лога настраивается в asterisk.conf
; опция astlogdir
;
; Все сообщения журнала поступают в очередь, обслуживаемую одним потоком
; который выполняет весь ввод-вывод.  Этот параметр определяет, насколько большой
; может быть эта очередь (и, следовательно, сколько памяти выделяется).
; до того, как новые сообщения будут отброшены.
; Значение по умолчанию равно 1000
;logger_queue_limit = 250
;
;
[logfiles]
;
; Формат - таков:
;
; logger_name => [formatter]levels
;
; Имя регистратора определяет не только название канала ведения журнала
, но и его тип. Допустимыми типами являются:
;   - 'console'  - Корневая консоль Asterisk
;   - 'syslog'   - Системный журнал Linux, с возможностями, указанными впоследствии с помощью
; 					разделителя точек, например, 'syslog.local0'
;   - 'filename' - Имя файла журнала, который нужно создать. Это значение по умолчанию
; 				   для каналов регистрации.
;
; Имена файлов могут быть либо относительными к стандартному каталогу журналов Asterisk
; (см. 'astlogdir' в asterisk.conf), либо абсолютными путями, начинающимися с
; '/'.
;
; Необязательный форматировщик может быть указан перед отправкой уровней журнала
; в канал журнала. Форматировщик определяется непосредственно перед уровнями
; и заключен в квадратные скобки. Допустимыми форматерами являются:
;   - [default] - Средство форматирования по умолчанию выводит сообщения журнала
;                 в удобочитаемом формате.
;   - [plain]   - Обычный форматировщик, он выводит сообщения
;				  журнала в удобочитаемом формате с добавлением имени функции
;				  и номера строки. Никакие цветовые управляющие коды никогда не печатаются
; подробные сообщения также не обрабатываются специальным образом.
;   - [json]    - Запишите выходные данные в формате JSON. Обратите внимание, что записи журнала в формате JSON,
; если указано для регистратора типа "консоль", будут отформатированы
; в соответствии с форматировщиком "по умолчанию" для сообщений журнала типа VERBOSE.
; Это происходит из-за того, что удаленные консоли вводят детализацию
; вне подсистемы ведения журнала.
;
; Уровни ведения журнала включают следующее и указаны в списке, разделенном запятыми:
;    debug
;    trace
;    notice
;    warning
;    error
;    verbose(<level>)
;    dtmf
;    fax
;    security
;
; Verbose принимает необязательный аргумент в виде целочисленного уровня. Уровень
; подробный может быть установлен для каждого файла журнала. Подробные сообщения с более высокими уровнями
; не будут записываться в файл.  Если уровень детализации не указан, он
; будет регистрировать подробные сообщения, следующие за текущим уровнем корневой консоли.
;
; Debug имеет несколько уровней, таких как verbose. Однако это общесистемный параметр
; и его нельзя указать для каждого файла журнала. Вы указываете уровень отладки в другом месте
; например, в CLI 'core set debug 3', начиная Asterisk с '-ddd', или в
; asterisk.conf 'debug=3'.
;
; Специальное название уровня "*" означает все уровни, даже динамические уровни, зарегистрированные
; модулями после инициализации регистратора (это означает, что загрузка
; и выгрузка модулей, которые создают/удаляют уровни динамического регистратора, приведет
; к включению этих уровней в имена файлов с именем уровня "*",
; без какой-либо необходимости выполнять "перезагрузку регистратора" или аналогичную операцию).
; Обратите внимание, что нет смысла указывать как "*", так и конкретные имена уровней
; для имени файла уровень "*" означает все уровни.  Единственным исключением является if
; вам нужно указать конкретный уровень детализации. например, "verbose(3),*".
;
; Мы настоятельно рекомендуем вам НЕ включать режим отладки, если вы просто
; запускаете производственную систему.  Режим отладки включает множество дополнительных сообщений,
; большинство из которых вы вряд ли поймете, не разбираясь
; в базовом коде.  Не сообщайте об отладочных сообщениях как о проблемах с кодом, если
; только у вас нет конкретной проблемы, которую вы пытаетесь отладить.  Это
; сообщения только для этого - отладки debugging - и не поднимаются до уровня
; чего-то, заслуживающего вашего внимания как администратора Asterisk.  И то, и другое
; сообщения отладки и трассировки также очень многословны и могут заполняться и действительно заполняются
; быстро загружает лог-файлы.  Это еще одна причина не использовать режимы debug или trace
; в производственной системе, если только вы не находитесь в процессе отладки
; конкретной проблемы.
;
;debug => debug
;trace => trace
;security => security
console => notice,warning,error
;console => notice,warning,error,debug
messages => notice,warning,error
;full => notice,warning,error,debug,verbose,dtmf,fax
;
;full-json => [json]debug,verbose,notice,warning,error,dtmf,fax
;
;syslog keyword : This special keyword logs to syslog facility
;
;syslog.local0 => notice,warning,error
;
количество слов: 4996
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 802
Стаж: 5 лет
Откуда: Вологодская область
Поблагодарили: 32 раза
Контактная информация:

Установка на Wi Fi маршрутизатор Keenetic ОС Entware Asterisk

Сообщение Артём Мамзиков »

/opt/etc/asterisk/manager.conf

Код: Выделить всё

;
; AMI - Asterisk Manager Interface / Asterisk менеджер Интерфейс
;
; Поддержка управления вызовами сторонних приложений и наблюдение за событиями на мини-АТС
;
; Используйте "manager show commands" в интерфейсе CLI, чтобы перечислить доступные команды менеджера
; и их уровни авторизации.
;
; "manager show command <команда>" отобразит текст справки.
;
; ---------------------------- ПАМЯТКА ПО БЕЗОПАСНОСТИ -------------------------------
; Обратите внимание, что вам не следует включать AMI на общедоступном IP-адресе. При необходимости
; заблокируйте этот TCP-порт с помощью iptables (или другого программного обеспечения FW) и подключитесь к нему
; с помощью IPSec, SSH или SSL vpn-туннеля.  Вы также можете сделать интерфейс manager
; доступным по протоколу http/https, если http-сервер Asterisk включен в
; http.conf и если для обоих "enabled" и "webenabled" установлено значение yes в
; этом файле.  Оба параметра по умолчанию равны no.  httptimeout обеспечивает максимальное
; время ожидания в секундах перед отменой веб-сеанса.  То
; значение по умолчанию - 60 секунд.
;
[general]
enabled = no
;webenabled = yes

port = 5038
bindaddr = 0.0.0.0

; Параметры, которые управляют AMI через TLS. (также должно быть установлено значение "включено enabled").
; Вы можете открыть соединение с этим сокетом, например, с помощью
;
;	openssl s_client -connect my_host:5039
;
;tlsenable=no		; установите значение ДА YES, чтобы включить его
;tlsbindaddr=0.0.0.0:5039		; адрес и порт для привязки, по умолчанию - bindaddr и порт 5039
;tlscertfile=/tmp/asterisk.pem	; путь к сертификату.
;tlsprivatekey=/tmp/private.pem ; путь к закрытому ключу, если закрытый ключ не задан
								; если tlsprivatekey не задан, по умолчанию выполняется поиск
								; tlscertfile для закрытого ключа.
;tlscipher=<cipher string>      ; строка, указывающая, какие SSL-шифры использовать или не использовать
;
;allowmultiplelogin = yes		; ЕСЛИ установлено значение no, отклоняет уже используемые логины администратора.
;								; Значение по умолчанию - да.
;
;displayconnects = yes
;
; Добавьте временную метку эпохи Unix к событиям (а не к ответам на действия)
;
;timestampevents = yes

;brokeneventsaction = yes   ; Восстановить предыдущее поведение, которое вызвало события
                            ; действие, позволяющее не возвращать ответ в определенных случаях
                            ; обстоятельства.  По умолчанию установлено значение "нет".
;
; Отображать определенные переменные канала каждый раз, когда генерируется событие, ориентированное на канал:
;
; Обратите внимание, что это приводит к снижению производительности, и по возможности этого следует избегать.
;
;channelvars = var1,var2,var3

; debug = on	; включите некоторую отладочную информацию в сообщениях AMI (по умолчанию отключено).
		; Также доступен через команду CLI "manager debug".

; authtimeout указывает максимальное количество секунд, необходимое клиенту для
; аутентификации.  Если клиент не пройдет аутентификацию по истечении этого
; тайм-аута, клиент будет отключен. (по умолчанию: 30 секунд)

;authtimeout = 30

; authlimit определяет максимальное количество неаутентифицированных сеансов, которым будет
; разрешено подключаться в любой момент времени.

;authlimit = 50

;httptimeout = 60
; a) httptimeout устанавливает максимальный возраст http-файла cookie
; b) httptimeout - это количество времени, которое ожидает веб-сервер
; по запросу action=waitevent (на самом деле его httptimeout-10)
; c) httptimeout - это также количество времени, в течение которого веб-сервер сохраняет
; сеанс http активным после успешного завершения действия


;[mark]
;secret = mysecret
;deny=0.0.0.0/0.0.0.0
;permit=209.16.236.73/255.255.255.0
;acl=named_acl_example               ; используйте именованный ACL из acl.conf
;
;
;setvar=PBXACCOUNT=edvina
; Параметр setvar определяет переменные канала, которые будут установлены, когда эта учетная запись
; инициирует вызов. Вы можете определить несколько команд setvar= для одного менеджера
; пользователя.
;
;eventfilter=Event: Newchannel
;eventfilter=Channel: (PJ)?SIP/(james|jim|john)-
;eventfilter=!Channel: DAHDI/
; Параметр eventfilter используется для внесения событий в белый или черный список для каждого пользователя.
; Фильтр состоит из (не привязанного) регулярного выражения, которое выполняется на
; всех данных события. Если первым символом фильтра является восклицательный
; знак (!), фильтр добавляется в черный список вместо белого.
; После первой проверки доступа на чтение, приведенной ниже, фильтры регулярных выражений
; обрабатываются следующим образом:
; - Если фильтры не настроены, все события отображаются в обычном режиме.
; - Если есть только белые фильтры: подразумевается, что сначала обрабатываются все черные фильтры,
; затем белые фильтры.
; - Если есть только черные фильтры: сначала обрабатываются все подразумеваемые белые фильтры
; затем черные фильтры.
; - Если есть как белый, так и черный фильтры: подразумевается, что все фильтры обработаны
; черным цветом; сначала, затем белые фильтры и, наконец, черные фильтры.

;
; Если устройство, подключенное через этого пользователя, медленно принимает входные данные,
; тайм-аут для записи на него может быть увеличен, чтобы предотвратить его
; отключение (значение указано в миллисекундах)
;
; writetimeout = 100
;
;displayconnects = yes	; Отображать в CLI вход пользователя в систему/выход из системы
;
; Авторизация для различных классов
;
; Авторизация на чтение, как правило, позволяет вам получать асинхронные события.
; Авторизация на запись позволяет вам отправлять команды и получать ответные ответы.  Существуют
; следующие классы:
;
; all       - Все приведенные ниже классы событий (включая те, которые мы, возможно, пропустили).
; system    - Общая информация о системе и возможности запуска системы
;			  команды управления, такие как завершение работы, перезапуск и перезагрузка. Этот
;			  класс также включает в себя действия по манипулированию диалпланом, такие как
; Добавление расширения диалплана и Удаление расширения диалплана.
; call      - Информация о каналах и возможность установки информации в
;			  запущенном канале.
; log       - Регистрирующая информация.  Доступен только для чтения. (Определен, но еще не используется.)
; verbose   - Подробная информация.  Доступен только для чтения. (Определен, но еще не используется.)
; agent     - Информация об очередях и агентах, а также возможность добавлять
;			  участников очереди в очередь.
; user      - Разрешение на отправку и получение пользовательских событий.
; config    - Возможность чтения и записи конфигурационных файлов.
; command   - Разрешение на выполнение команд CLI.  Только для записи.
; dtmf      - Получать события DTMF.  Доступен только для чтения.
; reporting - Возможность получения информации о системе.
; cdr       - Вывод cdr_manager, если он загружен.  Доступен только для чтения.
; dialplan  - Получайте новые Exten и VarSet мероприятия.  Доступен только для чтения.
; originate - Разрешение на отправку новых вызовов.  Только для записи.
; agi       - Вывод выполненных команд AGI.  Введите команду AGI для выполнения.
; cc        - События завершения вызова.  Доступен только для чтения.
; aoc       - Разрешение отправлять сообщения с рекомендациями о платных услугах и получать рекомендации
;		    - О платных событиях.
; test      - Возможность считывать уведомления о тестовых событиях, отправляемые в Asterisk Test
;			  Suite.  Обратите внимание, что это включено только тогда, когда TEST_FRAMEWORK
;			  определен флаг компилятора.
; security  - События безопасности.  Доступен только для чтения.
; message   - Разрешения на отправку сообщений о вызове. Только для записи
;
;read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
;write = system,call,agent,user,config,command,reporting,originate,message
/opt/etc/asterisk/modules.conf

Код: Выделить всё

;
; Конфигурационный файл Asterisk
;
; Конфигурационный файл загрузчика модулей
;

[modules]
autoload=yes
;
; Любые модули, которые необходимо загрузить до того, как ядро Asterisk было
; инициализировано (сразу после инициализации регистратора), могут быть загружены
; с помощью 'preload'.  "предварительная загрузка" заставляет модуль и модули, от которых он,
; как известно, зависит, загружаться раньше, чем они обычно загружаются.
;
; ПРИМЕЧАНИЕ: Больше не осталось веских причин использовать "предварительную загрузку".  Исторически это было
; необходимо для предварительной загрузки модулей драйверов реального времени, чтобы вы могли
; сопоставить файлы конфигурации Asterisk core с хранилищем реального времени.
; В этом больше нет необходимости.
;
;preload = your_special_module.so
;
; Если вы хотите, чтобы Asterisk завершал работу с ошибкой, если модуль не загружается, тогда используйте
; ключевое слово "require". Asterisk завершит работу с кодом состояния 2
; если требуемый модуль не загружается.
;
;require = chan_pjsip.so
;
; Если вы хотите, вы можете комбинировать с предварительной загрузкой
; preload-require = your_special_module.so
;
;load = res_musiconhold.so
;
; Загрузите один из: chan_oss, alsa или console (portaudio).
; По умолчанию загружается только chain_oss (автоматически).
;
noload = chan_alsa.so
noload = chan_console.so
;noload = chan_oss.so
;
; Не загружайте res_hair и skin, если вы не используете мониторинг HEP
; <http://sipcapture.org > в вашей сети.
;
noload = res_hep.so
noload = res_hep_pjsip.so
noload = res_hep_rtcp.so
;
; Не загружайте chan_sip по умолчанию, это может конфликтовать с res_pjsip.
noload = chan_sip.so
;
; Загрузите один из модулей голосовой почты, поскольку они являются взаимоисключающими.
; По умолчанию загружается только app_voicemail (автоматически).
;
;noload = app_voicemail.so
noload = app_voicemail_imap.so
noload = app_voicemail_odbc.so
noload = pbx_ael.so
noload = cdr_csv.so
/opt/etc/asterisk/musiconhold.conf

Код: Выделить всё

;
; Музыка на удержании - Пример настройки
;
[general]
;cachertclasses=yes     ; используйте 1 экземпляр класса moh для всех пользователей, которые его используют
						; уменьшите количество потребляемых циклов процессора и памяти
                        ; по умолчанию отключено

;preferchannelclass=yes ; Предпочитайте класс music, определенный CHANNEL(музыкальный класс),
						; классу, установленному приложением (например, классу music, установленному в очереди).
                        ; По умолчанию установлено значение "да".

; допустимые параметры режима:
; files		-- чтение файлов из каталога в любом поддерживаемом Asterisk медиаформате
; playlist	-- предоставьте фиксированный список имен файлов или HTTP(ов) URL-адресов для воспроизведения
; quietmp3 	-- по умолчанию
; mp3 		-- громкий
; mp3nb		-- небуферизованный
; quietmp3nb	-- тихий, без буферизации
; custom	-- запустите пользовательское приложение (смотрите примеры ниже)
; =========
; Файловая (нативная) музыка на удержании
; =========
;
; При этом воспроизводятся файлы непосредственно из указанного каталога, никаких внешних
; процессов не требуется. Файлы воспроизводятся в обычном порядке сортировки
; (аналогично списку отсортированных каталогов), без регулировки громкости или чего-либо другого
; настройка звука доступна. Если файл доступен в
; том же формате, что и кодек канала, то он будет воспроизведен
; без перекодирования (аналогично воспроизведению в диалплане).
; Файлы могут быть представлены в любом количестве форматов, которое вы пожелаете, и
; "наилучший" формат будет выбран во время воспроизведения.
;
; Указанный путь может быть либо абсолютным путем (начинается с '/'),
; либо относительным путем; относительные пути интерпретируются как относительные
; к 'astdatalibdir' в asterisk.conf, который по умолчанию равен
; /var/lib/asterisk.
;
; ПРИМЕЧАНИЕ:
; Если вы не используете "автозагрузку" в modules.conf, то вы
; должны убедиться, что модули форматирования для любых форматов, которые вы хотите
; использовать, загружены _before_ res_musiconhold. Если вы не сделаете
; этого, res_musiconhold пропустит файлы, которые он не в состоянии
; понять при загрузке.
;
; =========
; Список воспроизведения (нативная) музыки на удержании
; =========
;
; Этот режим похож на режим 'files' в том смысле, что он воспроизводит список
; файлов, но вместо сканирования каталога файлы
; явно настраиваются с использованием одного или нескольких параметров 'entry'.
;
; Каждая запись должна быть одной из:
;
; * Абсолютный путь к воспроизводимому файлу без расширения.
; * URL-адрес HTTP(ов)
;
; Записи воспроизводятся в том порядке, в котором они отображаются в конфигурации.
; Опция "сортировка/sort" в этом режиме не используется.
;

[default]
mode=files
directory=/opt/share/asterisk/sounds/moh
;
;[native-random]
;mode=files
;directory=moh
;digit=#       ; Если эта опция установлена для класса, то, когда абоненты
;			   ; прослушивают музыку в режиме ожидания, они могут нажать эту цифру, и
;			   ; они переключатся на прослушивание этого музыкального класса.
;announcement=queue-thankyou	; Если эта опция установлена для класса, то
;			   ; когда вызывающие абоненты переводятся в режим ожидания,
;			   ; для них будет воспроизводиться указанный звук. Кроме того, при использовании режимов, для которых Asterisk
;			   ; управляет списком воспроизведения (файлы, mp3 и т.д.), один и тот же звук
;			   ; также будет воспроизводиться между песнями MOH.
;sort=random    ; Отсортируйте файлы в случайном порядке. Другими вариантами сортировки являются:
;			    ; 'альфа' и 'рандстарт'. Если "альфа", то файлы сортируются
;			    ; в алфавитном порядке. Если 'randstart', файлы сортируются
;			    ; также в алфавитном порядке, но первый файл выбирается
;			    ; случайным образом. Если не указано, порядок сортировки не определен.

;[native-alphabetical]
;mode=files
;directory=moh
;sort=alpha     ; Отсортируйте файлы в алфавитном порядке.

;[sales-queue-hold]
;mode=playlist
;entry=/var/lib/asterisk/sounds/en/yourcallisimportant
;entry=http://example.local/sales-queue-hold-music.ulaw
;entry=/var/lib/asterisk/moh/macroform-robot_dity

; =========
; Другие (неродные) методы воспроизведения
; =========

;[manual]
;mode=custom
; Обратите внимание, что при mode=custom каталог не требуется, например, при чтении
; из потока.
;directory=/var/lib/asterisk/mohmp3
;application=/usr/bin/mpg123 -q -r 8000 -f 8192 -b 2048 --mono -s

;[ulawstream]
;mode=custom
;application=/usr/bin/streamplayer 192.168.100.52 888
;format=ulaw   ; Параметр "формат" определяет аудиоформат, который
;			   ; "Приложение" будет предоставлять Asterisk. В этом примере
;			   ; streamplayer будет выводить сэмплы ulaw, поэтому нам нужно установить формат
;			   ; в ulaw, чтобы Asterisk знал, как интерпретировать
;			   ; входящий звук.

; mpg123 на Solaris не всегда завершается должным образом; возможно, madplay лучше
; choice
;[solaris]
;mode=custom
;directory=/var/lib/asterisk/mohmp3
;application=/site/sw/bin/madplay -Q -o raw:- --mono -R 8000 -a -12

; По умолчанию, когда res_musiconhold перезагружается или выгружается, он отправляет сигнал HUP
; пользовательским приложениям (и всем потомкам), ожидает 100 мс, затем отправляет сигнал
; TERM, ждет 100 мс, затем, наконец, отправляет сигнал KILL.  Приложение,
; которое взаимодействует с внешним устройством и /или порождает собственные дочерние
; элементы, может быть не в состоянии завершить работу в установленное по умолчанию время, особенно если отправлен
; сигнал KILL, или если его дочерние элементы получают сигналы непосредственно от
; res_musiconhoild.  Чтобы выделить дополнительное время, 'kill_escalation_delay'
; параметр class можно использовать для установки количества миллисекунд res_musiconhold
; ожидания перед усилением сигналов отключения, при этом по умолчанию используется текущее значение
; 100 мс.  Чтобы управлять тем, кому отправляются сигналы, используется "kill_method".
; параметр класса может быть установлен в "process_group" (существующее поведение по умолчанию),
; который отправляет сигналы непосредственно приложению и его потомкам, или
; "process", который отправляет сигналы только самому приложению.

;[sox_from_device]
;mode=custom
;directory=/var/lib/asterisk/mohmp3
;application=/usr/bin/sox -q -t alsa -c 2 -r 48000 hw:1 -c 1 -r 8000 -t raw -s -
; Подождите 500 мс, преждечиков усиления сигналов об отключении
;kill_escalation_delay=500
; Отправляйте сигналы только дочернему процессу, а не всем потомкам
;kill_method=process
/opt/etc/asterisk/musiconhold.default

Код: Выделить всё

;
; Музыка на удержании - Пример настройки
;
[general]
;cachertclasses=yes     ; используйте 1 экземпляр класса moh для всех пользователей, которые его используют
						; уменьшите количество потребляемых циклов процессора и памяти
                        ; по умолчанию отключено

;preferchannelclass=yes ; Предпочитайте класс music, определенный CHANNEL(музыкальный класс),
						; классу, установленному приложением (например, классу music, установленному в очереди).
                        ; По умолчанию установлено значение "да".

; допустимые параметры режима:
; files		-- чтение файлов из каталога в любом поддерживаемом Asterisk медиаформате
; playlist	-- предоставьте фиксированный список имен файлов или HTTP(ов) URL-адресов для воспроизведения
; quietmp3 	-- по умолчанию
; mp3 		-- громкий
; mp3nb		-- небуферизованный
; quietmp3nb	-- тихий, без буферизации
; custom	-- запустите пользовательское приложение (смотрите примеры ниже)
; =========
; Файловая (нативная) музыка на удержании
; =========
;
; При этом воспроизводятся файлы непосредственно из указанного каталога, никаких внешних
; процессов не требуется. Файлы воспроизводятся в обычном порядке сортировки
; (аналогично списку отсортированных каталогов), без регулировки громкости или чего-либо другого
; настройка звука доступна. Если файл доступен в
; том же формате, что и кодек канала, то он будет воспроизведен
; без перекодирования (аналогично воспроизведению в диалплане).
; Файлы могут быть представлены в любом количестве форматов, которое вы пожелаете, и
; "наилучший" формат будет выбран во время воспроизведения.
;
; Указанный путь может быть либо абсолютным путем (начинается с '/'),
; либо относительным путем; относительные пути интерпретируются как относительные
; к 'astdatalibdir' в asterisk.conf, который по умолчанию равен
; /var/lib/asterisk.
;
; ПРИМЕЧАНИЕ:
; Если вы не используете "автозагрузку" в modules.conf, то вы
; должны убедиться, что модули форматирования для любых форматов, которые вы хотите
; использовать, загружены _before_ res_musiconhold. Если вы не сделаете
; этого, res_musiconhold пропустит файлы, которые он не в состоянии
; понять при загрузке.
;
; =========
; Список воспроизведения (нативная) музыки на удержании
; =========
;
; Этот режим похож на режим 'files' в том смысле, что он воспроизводит список
; файлов, но вместо сканирования каталога файлы
; явно настраиваются с использованием одного или нескольких параметров 'entry'.
;
; Каждая запись должна быть одной из:
;
; * Абсолютный путь к воспроизводимому файлу без расширения.
; * URL-адрес HTTP(ов)
;
; Записи воспроизводятся в том порядке, в котором они отображаются в конфигурации.
; Опция "сортировка/sort" в этом режиме не используется.
;

[default]
mode=files
directory=moh
;
;[native-random]
;mode=files
;directory=moh
;digit=#       ; Если эта опция установлена для класса, то, когда абоненты
;			   ; прослушивают музыку в режиме ожидания, они могут нажать эту цифру, и
;			   ; они переключатся на прослушивание этого музыкального класса.
;announcement=queue-thankyou	; Если эта опция установлена для класса, то
;			   ; когда вызывающие абоненты переводятся в режим ожидания,
;			   ; для них будет воспроизводиться указанный звук. Кроме того, при использовании режимов, для которых Asterisk
;			   ; управляет списком воспроизведения (файлы, mp3 и т.д.), один и тот же звук
;			   ; также будет воспроизводиться между песнями MOH.
;sort=random    ; Отсортируйте файлы в случайном порядке. Другими вариантами сортировки являются:
;			    ; 'альфа' и 'рандстарт'. Если "альфа", то файлы сортируются
;			    ; в алфавитном порядке. Если 'randstart', файлы сортируются
;			    ; также в алфавитном порядке, но первый файл выбирается
;			    ; случайным образом. Если не указано, порядок сортировки не определен.

;[native-alphabetical]
;mode=files
;directory=moh
;sort=alpha     ; Отсортируйте файлы в алфавитном порядке.

;[sales-queue-hold]
;mode=playlist
;entry=/var/lib/asterisk/sounds/en/yourcallisimportant
;entry=http://example.local/sales-queue-hold-music.ulaw
;entry=/var/lib/asterisk/moh/macroform-robot_dity

; =========
; Другие (неродные) методы воспроизведения
; =========

;[manual]
;mode=custom
; Обратите внимание, что при mode=custom каталог не требуется, например, при чтении
; из потока.
;directory=/var/lib/asterisk/mohmp3
;application=/usr/bin/mpg123 -q -r 8000 -f 8192 -b 2048 --mono -s

;[ulawstream]
;mode=custom
;application=/usr/bin/streamplayer 192.168.100.52 888
;format=ulaw   ; Параметр "формат" определяет аудиоформат, который
;			   ; "Приложение" будет предоставлять Asterisk. В этом примере
;			   ; streamplayer будет выводить сэмплы ulaw, поэтому нам нужно установить формат
;			   ; в ulaw, чтобы Asterisk знал, как интерпретировать
;			   ; входящий звук.

; mpg123 на Solaris не всегда завершается должным образом; возможно, madplay лучше
; choice
;[solaris]
;mode=custom
;directory=/var/lib/asterisk/mohmp3
;application=/site/sw/bin/madplay -Q -o raw:- --mono -R 8000 -a -12

; По умолчанию, когда res_musiconhold перезагружается или выгружается, он отправляет сигнал HUP
; пользовательским приложениям (и всем потомкам), ожидает 100 мс, затем отправляет сигнал
; TERM, ждет 100 мс, затем, наконец, отправляет сигнал KILL.  Приложение,
; которое взаимодействует с внешним устройством и /или порождает собственные дочерние
; элементы, может быть не в состоянии завершить работу в установленное по умолчанию время, особенно если отправлен
; сигнал KILL, или если его дочерние элементы получают сигналы непосредственно от
; res_musiconhoild.  Чтобы выделить дополнительное время, 'kill_escalation_delay'
; параметр class можно использовать для установки количества миллисекунд res_musiconhold
; ожидания перед усилением сигналов отключения, при этом по умолчанию используется текущее значение
; 100 мс.  Чтобы управлять тем, кому отправляются сигналы, используется "kill_method".
; параметр класса может быть установлен в "process_group" (существующее поведение по умолчанию),
; который отправляет сигналы непосредственно приложению и его потомкам, или
; "process", который отправляет сигналы только самому приложению.

;[sox_from_device]
;mode=custom
;directory=/var/lib/asterisk/mohmp3
;application=/usr/bin/sox -q -t alsa -c 2 -r 48000 hw:1 -c 1 -r 8000 -t raw -s -
; Подождите 500 мс, преждечиков усиления сигналов об отключении
;kill_escalation_delay=500
; Отправляйте сигналы только дочернему процессу, а не всем потомкам
;kill_method=process
/opt/etc/asterisk/pjproject.conf

Код: Выделить всё

; Общие параметры pjproject
;

;[startup]
; ПРИМЕЧАНИЯ: Название этого раздела в файле конфигурации pjproject.conf должно
; оставаться при запуске, иначе конфигурация применена не будет.
;
;cache_pools = yes   ; Кэшировать пулы памяти pjproject для повышения производительности
                     ; Отключите эту опцию, чтобы помочь отслеживать содержимое пула
                     ; неправильное управление при использовании valgrind или MALLOC_DEBUG.
                     ; Кэш мешает определить, используется ли содержимое
					 ; пула после освобождения и кто его освободил.
                     ; По умолчанию да
;log_level=default   ; Начальный максимальный уровень ведения журнала pjproject для ведения журнала
                     ; Допустимые значения: 0-6 и по умолчанию
                     ;
                     ; Примечание: Эта опция необходима на самом раннем этапе запуска
                     ; обработать так, чтобы он мог быть прочитан только из конфигурационных файлов, потому что
                     ; модули для других методов еще не загружены.
;type=               ;Должен быть типа startup (по умолчанию: "")

;========================ПАРАМЕТРЫ РАЗДЕЛА LOG_MAPPINGS===============================
;[log_mappings]
; КРАТКОЕ ОПИСАНИЕ: Предоставляет сопоставления уровня журнала pjproject с Asterisk.
; ПРИМЕЧАНИЯ: Название этого раздела в файле конфигурации pjproject.conf должно
; оставаться log_mappings, иначе конфигурация не будет применена.
; Значения по умолчанию, упомянутые ниже, применяются только в том случае, если этот файл или "log_mappings"
; объект не может быть найден.  Если объект найден, значения по умолчанию отсутствуют. Если
; вы не укажете запись, для этого уровня ничего не будет записано в журнал.
;
; Эти значения уровня ведения журнала обычно используются pjproject:
; - 0: фатальная ошибка
; - 1: ошибка
; - 2: предупреждение
; - 3: информация
; - 4: отладка
; - 5: трассировка
; - 6: более подробная трассировка
;
;asterisk_error =    ; Разделенный запятыми список уровней журнала pjproject для сопоставления
					 ; Ошибки, отмеченные звездочкой.
                     ; (по умолчанию: "0,1")
;asterisk_warning =  ; Разделенный запятыми список уровней журнала pjproject для сопоставления
					 ; Предупреждения со звездочкой.
                     ; (по умолчанию: "2")
;asterisk_notice =   ; Разделенный запятыми список уровней журнала pjproject для сопоставления с
					 ; Уведомления со звездочкой.
                     ; (по умолчанию: "")
;asterisk_verbose =  ; Разделенный запятыми список уровней журнала pjproject для сопоставления
					 ; Звездочка подробная.
                     ; (по умолчанию: "")
;asterisk_debug =    ; Разделенный запятыми список уровней журнала pjproject для сопоставления с
					 ; Asterisk debug отладка
                     ; (по умолчанию: "3,4,5,6")
;type=               ; Должно быть типа log_mappings (по умолчанию: "")
/opt/etc/asterisk/pjsip.conf

Код: Выделить всё

[global]
max_forwards=70
user_agent=ippbx
;sdpowner=unknown
;sdpsession=unknown
;keep_alive_interval=30
default_expiration=120
minimum_expiration=30
maximum_expiration=600
timers=forced
timers_sess_expires=180
timers_min_se=90
reg_server=localhost


[domain_alias]
;type=domain_alias
;domain=keenetic-7769
;from_domain=ast18entware.local


;======== Транспорт ===================================================>
[transport-tls]
type=transport
protocol=tls
bind=0.0.0.0:6061
local_net=192.168.1.0/24
;external_signaling_address=
;external_signaling_port=
;external_media_address=
ca_list_file=/opt/etc/asterisk/keys/ca.pem
ca_list_path=/opt/etc/asterisk/keys
cert_file=/opt/etc/asterisk/keys/asterisk.crt
priv_key_file=/opt/etc/asterisk/keys/asterisk.key
method=sslv23
require_client_cert=no 
verify_client=no 
verify_server=no



[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0:6060
local_net=192.168.1.0/24
;external_signaling_address=
;external_signaling_port=
;external_media_address=
;domain=

;=========================== QoS ===========================
;tos=cs3
;cos=3


[transport-tcp]
type=transport
protocol=tcp
bind=0.0.0.0:6060
local_net=192.168.1.0/24
;external_signaling_address=
;external_signaling_port=
;external_media_address=



;======== Шаблон для 100x ===================================================>
[phones-100x](!)
context=phones-nb
type=endpoint
language=ru
;domain=
;from_domain=
;=======>
disallow=all
allow=ulaw
;allow=g722
;allow=g726
;allow=g729
;allow=h264
;=======>
incoming_call_offer_pref=local_first
outgoing_call_offer_pref=local

dtmf_mode=rfc4733
;dtmf_mode=info
;dtmf_mode=inband

direct_media=no
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
ice_support=no

;timers=yes
;timers_min_se=90
;timers_sess_expires=180

;media_encryption=sdes
;media_encryption_optimistic=yes
;force_avp=yes
pickup_group=1
call_group=1
rtp_timeout=30 ; <-------- завершение сеанса, если rtp не получен
;rtp_keepalive=20
tos_audio=ef
cos_audio=5
;100rel=yes

;======== Шаблон для 200x ===================================================>
[phones-200x](!)
context=phones-wb
type=endpoint
language=ru
;domain=
;from_domain=
;=======>
disallow=all
allow=ulaw
allow=g722
;allow=g726
;allow=g729
;allow=h264
;=======>
incoming_call_offer_pref=local_first
outgoing_call_offer_pref=local

dtmf_mode=rfc4733
;dtmf_mode=info
;dtmf_mode=inband

direct_media=no
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
ice_support=no


;timers=yes
;timers_min_se=90
;timers_sess_expires=180

;media_encryption=sdes
;media_encryption_optimistic=yes
;force_avp=yes
pickup_group=1
call_group=1
rtp_timeout=30 ; <-------- завершение сеанса, если rtp не получен
;rtp_keepalive=20
tos_audio=ef
cos_audio=5
;100rel=yes




;======== Расширения 100x (nb) ===================================================
[1000](phones-100x);
callerid=
aors=1000
auth=auth1000


[1001](phones-100x);
callerid=
aors=1001
auth=auth1001


[1002](phones-100x);
callerid=
aors=1002
auth=auth1002


[1003](phones-100x);
callerid=
aors=1003
auth=auth1003


[1004](phones-100x);
callerid=
aors=1004
auth=auth1004


[1005](phones-100x);
callerid=
aors=1005
auth=auth1005


[1006](phones-100x);
callerid=
aors=1006
auth=auth1006


[1007](phones-100x); TLS SRTP
callerid=
aors=1007
auth=auth1007
media_encryption=sdes


[1008](phones-100x); TLS SRTP
callerid=
aors=1008
auth=auth1008
media_encryption=sdes


[1009](phones-100x); TLS SRTP
callerid=
aors=1009
auth=auth1009
media_encryption=sdes



;======== AORS ========
[1000]
type=aor
max_contacts = 3
remove_existing=yes
mailboxes=1000

[1001]
type=aor
max_contacts = 3
remove_existing=yes
mailboxes=1001

[1002]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=1002

[1003]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=1003


[1004]
type=aor
remove_existing=yes
max_contacts = 5
mailboxes=1004

[1005]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=1005

[1006]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=1006

[1007]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=1007

[1008]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=1008

[1009]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=1009




;======== Аутентификации ========
[auth1000]
type=auth
auth_type=userpass
username=user1000
password=ast18-opkg-mipsel

[auth1001]
type=auth
auth_type=userpass
username=user1001
password=ast18-opkg-mipsel

[auth1002]
type=auth
auth_type=userpass
username=user1002
password=ast18-opkg-mipsel

[auth1003]
type=auth
auth_type=userpass
username=user1003
password=ast18-opkg-mipsel

[auth1004]
type=auth
auth_type=userpass
username=user1004
password=ast18-opkg-mipsel

[auth1005]
type=auth
auth_type=userpass
username=user1005
password=ast18-opkg-mipsel

[auth1006]
type=auth
auth_type=userpass
username=user1006
password=ast18-opkg-mipsel

[auth1007]
type=auth
auth_type=userpass
username=user1007
password=ast18-opkg-mipsel

[auth1008]
type=auth
auth_type=userpass
username=user1008
password=ast18-opkg-mipsel

[auth1009]
type=auth
auth_type=userpass
username=user1009
password=ast18-opkg-mipsel



;======== Расширения 200x (wb) ===================================================
[2000](phones-200x);
callerid=
aors=2000
auth=auth2000


[2001](phones-200x);
callerid=
aors=2001
auth=auth2001


[2002](phones-200x);
callerid=
aors=2002
auth=auth2002


[2003](phones-200x);
callerid=
aors=2003
auth=auth2003


[2004](phones-200x);
callerid=
aors=2004
auth=auth2004


[2005](phones-200x);
callerid=
aors=2005
auth=auth2005


[2006](phones-200x);
callerid=
aors=2006
auth=auth2006


[2007](phones-200x); TLS SRTP
callerid=
aors=2007
auth=auth2007
media_encryption=sdes


[2008](phones-200x); TLS SRTP
callerid=
aors=2008
auth=auth2008
media_encryption=sdes


[2009](phones-200x); TLS SRTP
callerid=
aors=2009
auth=auth2009
media_encryption=sdes



;======== AORS ========
[2000]
type=aor
max_contacts = 3
remove_existing=yes
mailboxes=2000

[2001]
type=aor
max_contacts = 3
remove_existing=yes
mailboxes=2001

[2002]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=2002

[2003]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=2003


[2004]
type=aor
remove_existing=yes
max_contacts = 5
mailboxes=2004

[2005]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=2005

[2006]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=2006

[2007]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=2007

[2008]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=2008

[2009]
type=aor
remove_existing=yes
max_contacts = 3
mailboxes=2009




;======== Аутентификации ========
[auth2000]
type=auth
auth_type=userpass
username=user2000
password=ast18-opkg-mipsel

[auth2001]
type=auth
auth_type=userpass
username=user2001
password=ast18-opkg-mipsel

[auth2002]
type=auth
auth_type=userpass
username=user2002
password=ast18-opkg-mipsel

[auth2003]
type=auth
auth_type=userpass
username=user2003
password=ast18-opkg-mipsel

[auth2004]
type=auth
auth_type=userpass
username=user2004
password=ast18-opkg-mipsel

[auth2005]
type=auth
auth_type=userpass
username=user2005
password=ast18-opkg-mipsel

[auth2006]
type=auth
auth_type=userpass
username=user2006
password=ast18-opkg-mipsel

[auth2007]
type=auth
auth_type=userpass
username=user2007
password=ast18-opkg-mipsel

[auth2008]
type=auth
auth_type=userpass
username=user2008
password=ast18-opkg-mipsel

[auth2009]
type=auth
auth_type=userpass
username=user2009
password=ast18-opkg-mipsel





;=============== Внешняя линия ================
;===== SIPNET (tls srtp) prefix *1 =====
;--
[sipnet]
type=registration
transport=transport-tls
outbound_auth=sipnet
retry_interval=60
expiration=600
auth_rejection_permanent=yes
server_uri=sip:sipnet.ru
client_uri=sip:sip-uid@sipnet.ru

[sipnet]
type=auth
auth_type=userpass
username=sip-uid
password=sip-pwd

[sipnet]
type=aor
qualify_frequency=60
contact=sip:sip-uid@sipnet.ru

[sipnet]
type=endpoint
transport=transport-tls
context=external-incoming
language=ru
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
direct_media=no
disallow=all
allow=ulaw
media_encryption_optimistic=yes
outbound_auth=sipnet
aors=sipnet
from_domain=sipnet.ru
from_user=sip-uid

[sipnet]
type=identify
endpoint=sipnet
match=sipnet.ru
--;



;===== Префикс YOUMAGIC (udp) *2 =====
;--
[youmagic]
type=registration
transport=transport-udp
outbound_auth=youmagic
retry_interval=60
expiration=3600
auth_rejection_permanent=yes
server_uri=sip:voip.mtt.ru
client_uri=sip:sip-uid@voip.mtt.ru

[youmagic]
type=auth
auth_type=userpass
username=sip-uid
password=sip-pwd

[youmagic]
type=aor
qualify_frequency=60
contact=sip:sip-uid@voip.mtt.ru

[youmagic]
type=endpoint
transport=transport-udp
context=external-incoming
language=ru
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
direct_media=no
disallow=all
allow=ulaw
outbound_auth=youmagic
aors=youmagic
from_domain=voip.mtt.ru
from_user=sip-uid

[youmagic]
type=identify
endpoint=youmagic
match=voip.mtt.ru
--;



;===== Префикс MULTIFON (udp) *3 =====
;--
[multifon]
type=registration
transport=transport-udp
outbound_auth=multifon
retry_interval=60
expiration=3600
auth_rejection_permanent=yes
server_uri=sip:multifon.ru
client_uri=sip:sip-uid@multifon.ru

[multifon]
type=auth
auth_type=userpass
username=sip-uid
password=sip-pwd

[multifon]
type=aor
qualify_frequency=60
contact=sip:sip-uid@multifon.ru

[multifon]
type=endpoint
transport=transport-udp
context=external-incoming
language=ru
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
direct_media=no
disallow=all
allow=ulaw
outbound_auth=multifon
aors=multifon
from_domain=multifon.ru
from_user=sip-uid

[multifon]
type=identify
endpoint=multifon
match=multifon.ru
--;



;===== Префикс ZADARMA (udp) *4 =====
;--
[zadarma]
type=registration
transport=transport-udp
outbound_auth=zadarma
retry_interval=60
expiration=600
auth_rejection_permanent=yes
server_uri=sip:zadarma.com
client_uri=sip:sip-uid@zadarma.com

[zadarma]
type=auth
auth_type=userpass
username=sip-uid
password=sip-pwd

[zadarma]
type=aor
qualify_frequency=60
contact=sip:sip-uid@zadarma.com

[zadarma]
type=endpoint
transport=transport-udp
context=external-incoming
language=ru
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
direct_media=no
disallow=all
allow=ulaw
outbound_auth=zadarma
aors=zadarma
from_domain=sip.zadarma.com
from_user=sip-uid

[zadarma]
type=identify
endpoint=zadarma
match=zadarma.com
--;



;===== Префикс NONOH (udp) *5 =====
;--
[nonoh]
type=registration
transport=transport-udp
outbound_auth=nonoh
retry_interval=60
expiration=600
auth_rejection_permanent=yes
server_uri=sip:sip.nonoh.net:5060
client_uri=sip:sip-uid@sip.nonoh.net:5060

[nonoh]
type=auth
auth_type=userpass
username=sip-uid
password=sip-pwd

[nonoh]
type=aor
qualify_frequency=60
contact=sip:sip-uid@sip.nonoh.net

[nonoh]
type=endpoint
transport=transport-udp
context=external-incoming
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
direct_media=no
disallow=all
allow=ulaw
outbound_auth=nonoh
aors=nonoh
from_domain=sip.nonoh.net
from_user=sip-uid

[nonoh]
type=identify
endpoint=nonoh
match=sip.nonoh.net
--;

количество слов: 2463
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 802
Стаж: 5 лет
Откуда: Вологодская область
Поблагодарили: 32 раза
Контактная информация:

Установка на Wi Fi маршрутизатор Keenetic ОС Entware Asterisk

Сообщение Артём Мамзиков »

/opt/etc/asterisk/pjsip.default

Код: Выделить всё

; Примеры конфигурации PJSIP и краткая справка
;
; В этом файле есть несколько очень простых примеров конфигурации, которые служат в качестве краткой
; ссылки, чтобы освежить вашу память, когда вам нужно записать новую конфигурацию.
; Он не предназначен для обучения настройке PJSIP или служит исчерпывающим
; справочником вариантов и потенциальных сценариев.
;
; Этот файл состоит из двух основных разделов.
; Во-первых, примеры, написанные вручную, чтобы служить удобным справочником.
; Во-вторых, список всех возможных параметров конфигурации PJSIP по разделам. Это
; извлечено из справки по конфигурации XML. В нем отображается только краткое описание каждого элемента.
; Если вы хотите увидеть более подробную информацию, пожалуйста, ознакомьтесь с источниками документации
; упомянутыми в верхней части этого файла.

; ============================================================================
; УВЕДОМЛЕНИЕ ОБ УВЕДОМЛЕНИИ, УВЕДОМЛЕНИЕ ОБ УВЕДОМЛЕНИИ, УВЕДОМЛЕНИЕ ОБ УВЕДОМЛЕНИИ
;
; В этом файле не содержится полной документации по опции.
; ============================================================================

; Документация
;
; Официальная документация находится по адресу http://wiki.asterisk.org
; Вы можете прочитать справку по конфигурации XML через командную строку Asterisk с помощью
; "config show help res_pjsip", затем вы можете детализировать различные
; разделы и их параметры.
;

;========!!!!!!!!!!!!!!!!!!!  УВЕДОМЛЕНИЕ О БЕЗОПАСНОСТИ  !!!!!!!!!!!!!!!!!!!!===========
;
; Как минимум, пожалуйста, прочтите файл "README-SERIOUSLY.bestpractices.txt ",
; находится в исходном каталоге Asterisk перед запуском Asterisk.
; В противном случае вы рискуете подвергнуть риску безопасность системы Asterisk.
; Кроме того, пожалуйста, посетите и ознакомьтесь с информацией о
; безопасности на вики-странице по адресу: https://wiki.asterisk.org/wiki/x/EwFB
;
; Несколько основных моментов, на которые следует обратить внимание:
;
; Анонимные звонки
;
; По умолчанию анонимные входящие вызовы через PJSIP не разрешены. Если вы хотите
; перенаправлять анонимные вызовы, вам нужно будет определить конечную точку с именем "anonymous".
; res_pjsip_endpoint_identifier_anonymous.so обрабатывает эту функциональность, поэтому она
; должна быть загружена. Не рекомендуется принимать анонимные звонки.
;
; Списки контроля доступа
;
; Смотрите пример конфигурации ACL в этом файле. Прочтите справку по конфигурации
; для этого раздела и всех его опций. Просмотрите образцы в acl.conf
; и документацию по адресу https://wiki.asterisk.org/wiki/x/uA80AQ
; Если возможно, ограничьте доступ только к сетям и адресам, которым вы доверяете.
;
; Контексты диалплана
;
; При определении конфигурации (например, конечной точки), которая подключается к
; конфигурации диалплана, помните о том, что делает этот диалплан. Легко
; случайно предоставить доступ к внутренним или исходящим добавочным номерам, что
; может дорого вам обойтись. Строка "context=" в конфигурации конечной точки
; определяет, в какой контекст диалплана будут входить входящие вызовы.
;
;=============================================================================

; Обзор типов разделов конфигурации, используемых в примерах
;
; * Транспорт "транспортировка"
; * Настраивает взаимодействие транспортного уровня res_pjsip.
; * Конечная точка "конечная точка"
; * Настраивает основные функции SIP, связанные с конечными точками SIP.
; * Аутентификация "auth"
; * Хранит входящие или исходящие учетные данные для проверки подлинности для использования магистралями,
; конечными точками, регистрациями.
; * Адрес записи "aor"
; * Хранит контактную информацию для использования конечными точками.
; * Идентификация конечной точки "идентифицировать"
; * Сопоставляет узел непосредственно с конечной точкой
; * Список контроля доступа "acl"
; * Определяет список разрешений или ссылается на список, хранящийся в acl.conf
; * Регистрация "registration"
; * Содержит информацию об исходящей регистрации SIP
; * Списки ресурсов
; * Содержит информацию для настройки списков ресурсов.
; * Настройка телефона "phoneprov"
; * Содержит информацию, необходимую res_phoneprov для автоматической подготовки

; В следующих разделах показаны примеры конфигураций для различных сценариев.
; Для большинства из них требуется пара или более типов конфигурации, настроенных совместно.

;=============================================================================

; Присвоение имен разделам конфигурации
;
; Названия разделов конфигурации обозначаются заключительными скобками,
; например [6001]
; В большинстве случаев вы можете назвать раздел так, как вам кажется разумным. Например,
; вы могли бы назвать транспорт [transport-udp-nat], чтобы помочь вам запомнить, как используется этот
; раздел. Однако в некоторых случаях (типы "конечная точка" и "или")
; название раздела имеет отношение к его функции.
;
; В зависимости от загруженных модулей Asterisk может сопоставлять SIP-запросы с
; конечной точкой или aor несколькими способами:
;
; 1) Сопоставьте имя раздела для разделов типа конечной точки с именем пользователя в заголовке
; "From" входящих SIP-запросов.
; 2) Сопоставьте название раздела для разделов типа aor с именем пользователя в поле "To Кому".
; заголовок входящих запросов на регистрацию SIP.
; 3) Настроив раздел идентификации типа, сопоставьте входящий SIP-запрос
; любого типа с конечной точкой или aor на основе IP-адреса источника запроса.
;
; Обратите внимание, что разделы могут иметь одно и то же имя, если для их параметров "type"
; установлены разные значения. В большинстве случаев имеет смысл иметь связанные
; разделы конфигурации, использующие одно и то же имя, как вы увидите в примерах внутри
; этого файла.

;===============ПРИМЕР ТРАНСПОРТИРОВКИ============================================
;
; Несколько примеров потенциальных вариантов транспортировки.
;
; Для примера транспорта NAT имейте в виду, что параметры, начинающиеся с
; префикс "external_" будет применяться только к связи с адресами
; за пределами диапазона, заданного с помощью "local_net=".
;
; У вас может быть более одного транспорта любого типа, если это не так
; используйте те же ресурсы (адрес привязки, порт и т.д.), что и остальные.

; Базовый транспорт UDP
;
;[transport-udp]
;type=transport
;protocol=udp    ;udp,tcp,tls,ws,wss,flow
;bind=0.0.0.0

; Транспорт UDP за NAT
;
;[transport-udp-nat]
;type=transport
;protocol=udp
;bind=0.0.0.0
;local_net=192.0.2.0/24
;external_media_address=203.0.113.1
;external_signaling_address=203.0.113.1

; Базовый транспорт IPv6 UDP
;
;[transport-udp-ipv6]
;type=transport
;protocol=udp
;bind=::

; Пример передачи по протоколу IPv4 TLS
;
;[transport-tls]
;type=transport
;protocol=tls
;bind=0.0.0.0
;cert_file=/path/mycert.crt
;priv_key_file=/path/mykey.key
;cipher=ADH-AES256-SHA,ADH-AES128-SHA
;method=tlsv1

; Пример переноса потока
;
; Передача потока используется для привязки потока сигналов к конкретной
; цели. Все конечные точки или другие объекты, которые ссылаются на транспорт, будут использовать
; один и тот же базовый транспорт и могут совместно использовать обнаруженный во время выполнения транспорт
; конфигурацию (например, служебные маршруты). Используемый протокол будет определен
; на основе URI, используемого для установления соединения. В настоящее время доступны только TCP и TLS
; поддерживаются.
;
;[transport-flow]
;type=transport
;protocol=flow

;===============ИСХОДЯЩАЯ РЕГИСТРАЦИЯ С ИСХОДЯЩЕЙ АУТЕНТИФИКАЦИЕЙ============
;
; Это простая регистрация, которая работает с некоторыми поставщиками транкинговых услуг SIP.
; Вам нужно будет настроить приведенный ниже пример аутентификации "mytrunk_auth", чтобы включить исходящую
; аутентификацию. Обратите внимание, что мы используем "outbound_auth=" для исходящей аутентификации
; вместо "auth=", который предназначен для входящей аутентификации.
;
; Если вы регистрируетесь на сервере из-за NAT, убедитесь, что вы назначили транспорт
; который соответствующим образом настроен с параметрами, связанными с NAT. Смотрите пример переноса NAT.
;
; "contact_user=" устанавливает пользовательскую часть заголовка SIP-контакта в SIP URI
; это повлияет на добавочный номер, доступный в диалплане, когда дальний абонент звонит вам при этой
; регистрации. Значение по умолчанию - "s".
;
; Если вы хотите включить поддержку линии и получать входящие вызовы, связанные с этим
; регистрация автоматически переходит на конечную точку, необходимо установить параметры "линия" и "конечная точка"
; Параметр "Конечная точка" указывает, с какой конечной точкой должен быть связан входящий вызов.

;[mytrunk]
;type=registration
;transport=transport-udp
;outbound_auth=mytrunk_auth
;server_uri=sip:sip.example.com
;client_uri=sip:1234567890@sip.example.com
;contact_user=1234567890
;retry_interval=60
;forbidden_retry_interval=600
;expiration=3600
;line=yes
;endpoint=mytrunk

;[mytrunk_auth]
;type=auth
;auth_type=userpass
;password=1234567890
;username=1234567890
;realm=sip.example.com

;===============КОНЕЧНАЯ ТОЧКА, НАСТРОЕННАЯ КАК МАГИСТРАЛЬНАЯ, ИСХОДЯЩАЯ АУТЕНТИФИКАЦИЯ=======
;
; Это один из способов настроить конечную точку в качестве магистрали. Он настроен с помощью
; "outbound_auth=", чтобы включить аутентификацию при наборе номера через эту
; конечную точку. Входящая аутентификация не настроена, поскольку провайдер обычно
; не выполняет аутентификацию при звонке вам.
;
; Конфигурация идентификации позволяет сопоставлять IP-адреса с этой конечной точкой.
; Для вызовов от транкингового провайдера значение "От пользователя" может каждый раз отличаться,
; поэтому мы хотим сопоставлять с IP-адресом вместо "От пользователя".
;
; Если вы хотите, чтобы провайдер вашей магистрали знал, куда отправлять ваши звонки
; вам нужно будет использовать исходящую регистрацию, как в примере выше этого
; раздела.
;
; NAT
;
; На базовом уровне сконфигурируйте конечную точку с помощью настроенного транспорта
; с соответствующими настройками NAT. Здесь могут потребоваться некоторые дополнительные настройки,
; основанные на вашем сценарии NAT/Firewall. Обратитесь к справке по конфигурации CLI
; "config show help res_pjsip endpoint" или в wiki для получения других
; параметров и конфигурации, связанных с NAT. Мы включили несколько из них ниже.
;
; AOR
;
; Конечные точки используют один или несколько разделов AOR для хранения своих контактных данных.
; Вы можете определить несколько контактных адресов в формате SIP URI в нескольких
; "contact=" entries.
;

;[mytrunk]
;type=endpoint
;transport=transport-udp
;context=from-external
;disallow=all
;allow=ulaw
;outbound_auth=mytrunk_auth
;aors=mytrunk
;                   ;Несколько вариантов, относящихся к NAT, которые могут пригодиться.
;force_rport=yes    ;Рекомендуется ознакомиться со справкой по конфигурации для каждого из них
;direct_media=no    ;из этих вариантов.
;ice_support=yes

;[mytrunk]
;type=aor
;contact=sip:198.51.100.1:5060
;contact=sip:198.51.100.2:5060

;[mytrunk]
;type=identify
;endpoint=mytrunk
;match=198.51.100.1
;match=198.51.100.2
;match=192.168.10.0:5061/24


;=============КОНЕЧНАЯ ТОЧКА, НАСТРОЕННАЯ КАК МАГИСТРАЛЬ, ВХОДЯЩАЯ АВТОРИЗАЦИЯ И РЕГИСТРАЦИЯ===
;
; Здесь мы разрешаем удаленному устройству зарегистрироваться в Asterisk и требуем
, чтобы оно проходило аутентификацию для регистрации и звонков.
; Вы заметите, что эта конфигурация по сути такая же, как настройка
; конечной точки для использования с SIP-телефоном.


;[7000]
;type=endpoint
;context=from-external
;disallow=all
;allow=ulaw
;transport=transport-udp
;auth=7000
;aors=7000

;[7000]
;type=auth
;auth_type=userpass
;password=7000
;username=7000

;[7000]
;type=aor
;max_contacts=1


;===============КОНЕЧНАЯ ТОЧКА, НАСТРОЕННАЯ ДЛЯ ИСПОЛЬЗОВАНИЯ С SIP-ТЕЛЕФОНОМ==================
;
; Этот пример включает в себя конфигурации endpoint, auth и aor. Это
; требует входящей аутентификации и разрешает регистрацию, а также ссылки
; транспорт, который вам нужно будет раскомментировать из предыдущих примеров.
;
; Раскомментируйте одну из транспортных строк, чтобы выбрать, какой транспорт вы хотите. Если
; не указано, то выбранным транспортом по умолчанию является первый совместимый транспорт
; в файле конфигурации для URL-адреса контакта.
;
; Измените строку "max_contacts=", чтобы изменить количество разрешенных уникальных регистраций.
;
; Используйте строку "contact=" вместо max_contacts=, если вы хотите статически
; определить местоположение устройства.
;
; При использовании транспорта с поддержкой TLS вам может потребоваться "media_encryption=sdes"
; возможность дополнительно включить SRTP, хотя они не являются взаимоисключающими.
;
; Если эта конечная точка была удаленной, и она использовала транспорт, настроенный для NAT
; тогда вы, вероятно, захотите использовать "direct_media =no", чтобы предотвратить проблемы со звуком.


;[6001]
;type=endpoint
;transport=transport-udp
;context=from-internal
;disallow=all
;allow=ulaw
;allow=gsm
;auth=6001
;aors=6001
;
; Еще несколько видов транспорта на выбор и некоторые связанные с ними варианты ниже.
;
;transport=transport-tls
;media_encryption=sdes
;transport=transport-udp-ipv6
;transport=transport-udp-nat
;direct_media=no
;
; Параметры, связанные с MWI

;aggregate_mwi=yes
;mailboxes=6001@default,7001@default
;mwi_from_user=6001
;
; Параметры расширения и состояния устройства
;
;device_state_busy_at=1
;allow_subscribe=yes
;sub_min_expiry=30
;
; STIR/SHAKEN поддержка. ПЕРЕМЕШАЙТЕ/ВСТРЯХНИТЕ
;
;stir_shaken=no

;[6001]
;type=auth
;auth_type=userpass
;password=6001
;username=6001

;[6001]
;type=aor
;max_contacts=1
;contact=sip:6001@192.0.2.1:5060

;===============КОНЕЧНАЯ ТОЧКА ЗА NAT ИЛИ БРАНДМАУЭРОМ===============================
;
; В этом примере предполагается, что ваш транспорт настроен с общедоступным IP-адресом, а
; сама конечная точка находится за NAT и, возможно, брандмауэром, вместо того, чтобы иметь
; Звездочка позади NAT. Для простоты мы предположим, что это обычный
; VOIP-телефон. Наиболее важными параметрами для настройки являются:
;
; * direct_media, чтобы гарантировать, что Asterisk останется в пути к носителю
; * параметры rtp_symmetric и force_rport для поддержки удаленного NAT/брандмауэра
;
; В зависимости от настроек вашего удаленного SIP-устройства или устройства NAT/firewall
; возможно, вам придется поэкспериментировать с комбинацией этих настроек.
;
; Если и Asterisk, и удаленные телефоны находятся за NAT/брандмауэром, то вам
; придется убедиться, что вы используете транспорт с соответствующими настройками (как в примере
; transport-udp-nat).
;
;[6002]
;type=endpoint
;transport=transport-udp
;context=from-internal
;disallow=all
;allow=ulaw
;auth=6002
;aors=6002
;direct_media=no
;rtp_symmetric=yes
;force_rport=yes
;rewrite_contact=yes  ; необходимо, если конечная точка не знает/не регистрирует общедоступный ip:port
;ice_support=yes   ;Это специфично для клиентов, поддерживающих обход NAT
                   ; для носителей информации с помощью ЛЬДА, ОГЛУШЕНИЯ, ПОВОРОТА. Смотрите вики по адресу:
                   ;https://wiki.asterisk.org/wiki/x/D4FHAQ
                   ; для более глубокого объяснения этой темы.

;[6002]
;type=auth
;auth_type=userpass
;password=6002
;username=6002

;[6002]
;type=aor
;max_contacts=2


;============ПРИМЕР КОНФИГУРАЦИИ ACL==========================================
;
; Раздел ACL или Список контроля доступа определяет набор разрешений для разрешения
; или запрета доступа к различным адресам. В качестве альтернативы он ссылается на конфигурацию
; ACL, уже установленную в acl.conf.
;
; Конфигурация ACL не зависит от конфигурации отдельной конечной точки и
; работает со всеми входящими SIP-сообщениями с использованием res_pjsip.

; Ссылайтесь на ACL, определенный в acl.conf.
;
;[acl]
;type=acl
;acl=example_named_acl1

; Конкретно ссылайтесь на contactacl.
;
;[acl]
;type=acl
;contact_acl=example_contact_acl1

; Определите свой собственный ACL здесь, в pjsip.conf и
; разрешите или запретите по IP-адресу или диапазону.
;
;[acl]
;type=acl
;deny=0.0.0.0/0.0.0.0
;permit=209.16.236.0/24
;deny=209.16.236.1

; Ограничение основано на заголовках контактов, а не на IP.
; Определите параметры несколько раз для разных адресов или используйте строку, разделенную запятыми.
;
;[acl]
;type=acl
;contact_deny=0.0.0.0/0.0.0.0
;contact_permit=209.16.236.0/24
;contact_permit=209.16.236.1
;contact_permit=209.16.236.2,209.16.236.3

; Ограничивать на основе заголовков контактов, а не IP и использовать
; расширенный синтаксис. Обратите внимание на символ взрыва, используемый для обозначения "НЕ NOT", чтобы мы могли отрицать
; 209.16.236.12/32 within the permit= statement в рамках инструкции.
;
;[acl]
;type=acl
;contact_deny=0.0.0.0/0.0.0.0
;contact_permit=209.16.236.0
;permit=209.16.236.0/24, !209.16.236.12/32


;============ПРИМЕР КОНФИГУРАЦИИ RLS==========================================
;
; Asterisk обеспечивает поддержку подписок на список ресурсов RFC 4662. Это позволяет
; конечной точке с помощью одной подписки подписываться на состояния
; нескольких ресурсов. Списки ресурсов настраиваются в pjsip.conf с использованием
; объекта конфигурации ;resource_list. Ниже приведен пример списка ресурсов, который
; позволяет конечной точке подписываться на присутствие Алисы, Боба и Кэрол.

;[my_list]
;type=resource_list
;list_item=alice
;list_item=bob
;list_item=carol
;event=presence

;Параметр "событие" в списке ресурсов соответствует пакету событий SIP,
; к которому принадлежат подписанные ресурсы. Список ресурсов может содержать только состояния
; для ресурсов, которые принадлежат к одному и тому же пакету событий. Это означает, что вы не можете,
; например, создать список, представляющий собой комбинацию ресурсов присутствия и сводки сообщений.
; Любой пакет событий, поддерживаемый Asterisk, может быть использован в списке ресурсов
; (присутствие, диалоговое окно и сводка сообщений). Всякий раз, когда в Asterisk добавляется поддержка нового пакета event-
; поддержка этого пакета event-package ; в списках ресурсов
; будет поддерживаться автоматически.

; Параметры "list_item" указывают названия ресурсов, на которые нужно подписаться. Способ
; их интерпретации зависит от конкретного пакета событий. Например, с помощью presence
; list_items просматриваются подсказки в диалплане. С помощью message-summary list_items,
; поиск почтовых ящиков осуществляется с помощью установленного вами поставщика голосовой почты (app_voicemail
; по умолчанию). Обратите внимание, что в приведенном выше примере были указаны параметры list_item
; по одному на строку. Однако также допустимо указывать несколько параметров list_item
; в одной строке (например, list_item = алиса, Боб, Кэрол).

; В дополнение к параметрам, представленным в приведенной выше конфигурации, есть еще два
; дополнительных параметра конфигурации, которые можно задать.
; * full_state: определяет, всегда ли Asterisk должен отправлять состояния
;  всех ресурсов в списке одновременно. По умолчанию установлено значение "нет". Вы должны установить
;  для этого значение "да" только в том случае, если вы взаимодействуете с конечной точкой, которая не
;  ведет себя корректно, когда ей отправляются уведомления о частичном состоянии.
; * notification_batch_interval: По умолчанию Asterisk отправит запрос на уведомление
;  немедленно, когда состояние ресурса изменится. Этот параметр приводит к тому, что Asterisk
;  начать пакетную обработку изменений состояния ресурса в течение указанного количества миллисекунд
;  после того, как ресурс изменит состояние. Таким образом, если несколько ресурсов изменяют состояние
;  в течение короткого промежутка времени, Asterisk может отправить один запрос на уведомление со всеми
;  отраженными в нем изменениями состояния.

;В Asterisk существует ограничение на размер списков ресурсов. Если созданное
; уведомление от Asterisk превысит 64000 байт, то сообщение считается
; слишком большим для отправки. Если вы обнаружите, что видите сообщения об ошибках, связанных с тем, что запросы SIP
;NOTIFY слишком велики для отправки, рассмотрите возможность разделения ваших списков на
; подсписки.

;============ПРИМЕР КОНФИГУРАЦИИ ТЕЛЕФОНАPROV================================

; Прежде чем настраивать подготовку здесь, ознакомьтесь с документацией по res_phoneprov
; и соответствующим образом настройте phoneprov.conf.

; Для автоматической настройки каждого пользователя необходимо создать раздел конфигурации [phoneprov]
; Как минимум, должны быть установлены переменные 'type', 'PROFILE' и 'MAC'
; Все остальные переменные являются необязательными.
; Пример:

;[1000]
;type=phoneprov               ; должно быть указано как "phoneprov"
;endpoint=1000                ; Требуется только при автоматической настройке
							  ; USERNAME, SECRET, DISPLAY_NAME и CALLERID / ИМЯ ПОЛЬЗОВАТЕЛЯ, СЕКРЕТ, ОТОБРАЖАЕМОЕ_ИМЯ и ИДЕНТИФИКАТОР ВЫЗЫВАЮЩЕГО АБОНЕНТА
                              ; необходимы.
;PROFILE=digium               ; требуемый
;MAC=deadbeef4dad             ; требуемый
;SERVER=myserver.example.com  ; Стандартная переменная
;TIMEZONE=America/Denver      ; Стандартная переменная
;MYVAR=somevalue              ; Переменная, настроенная пользователем

; Если разделы phoneprov имеют общие переменные, лучше всего создать шаблон
; phoneprov.  В приведенном ниже примере будет создана та же конфигурация
; что и указанная выше, за исключением того, что MYVAR будет переопределен для
; конкретного пользователя.
; Пример:

;[phoneprov_defaults](!)
;type=phoneprov               ; должно быть указано как "phoneprov"
;PROFILE=digium               ; требуемый
;SERVER=myserver.example.com  ; Стандартная переменная
;TIMEZONE=America/Denver      ; Стандартная переменная
;MYVAR=somevalue              ; Переменная, настроенная пользователем

;[1000](phoneprov_defaults)
;endpoint=1000               ; Требуется только при автоматической настройке
							 ; USERNAME, SECRET, DISPLAY_NAME и CALLERID
                             ; необходимы.
;MAC=deadbeef4dad             ; required
;MYVAR=someOTHERvalue         ; Переменная, настроенная пользователем

; Чтобы автоматически установить имя пользователя и СЕКРЕТ, указанная здесь конечная точка,
; в свою очередь, должна иметь определенный раздел outbound_auth.

; Более полный пример:

;[1000]
;type=endpoint
;outbound_auth=1000-auth
;callerid=My Name <8005551212>
;transport=transport-udp-nat

;[1000-auth]
;type=auth
;auth_type=userpass
;username=myname
;password=mysecret

;[phoneprov_defaults](!)
;type=phoneprov               ; должно быть указано как "phoneprov"
;PROFILE=someprofile          ; требуемый
;SERVER=myserver.example.com  ; Стандартная переменная
;TIMEZONE=America/Denver      ; Стандартная переменная
;MYVAR=somevalue              ; Настраиваемая пользователем переменная

;[1000](phoneprov_defaults)
;endpoint=1000                ; Требуется только при автоматической настройке
							  ; USERNAME, SECRET, DISPLAY_NAME и CALLERID
                              ; необходимы.
;MAC=deadbeef4dad             ; требуемый
;MYVAR=someUSERvalue          ; Переменная, настроенная пользователем
;LABEL=1000                   ; Стандартная переменная

; В предыдущих разделах была бы создана карта замены шаблона следующим образом:

;MAC=deadbeef4dad               ;добавлено pp1000
;USERNAME=myname                ;автоматически добавляется по имени пользователя с 1000 авторизацией
;SECRET=mysecret                ;автоматически добавляется по паролю 1000-аутентификации
;PROFILE=someprofile            ;добавлено по умолчанию
;SERVER=myserver.example.com    ;добавлено по умолчанию
;SERVER_PORT=5060               ;добавлено по умолчанию
;MYVAR=someUSERvalue            ;добавлено по умолчанию, но переопределено пользователем
;CALLERID=8005551212            ;автоматически добавляется по 1000 идентификатору вызывающего абонента
;DISPLAY_NAME=My Name           ;автоматически добавляется по 1000 идентификатору вызывающего абонента
;TIMEZONE=America/Denver        ;добавлено по умолчанию
;TZOFFSET=252100                ;автоматически вычисляется с помощью res_phoneprov
;DST_ENABLE=1                   ;автоматически вычисляется с помощью res_phoneprov
;DST_START_MONTH=3              ;автоматически вычисляется с помощью res_phoneprov
;DST_START_MDAY=9               ;автоматически вычисляется с помощью res_phoneprov
;DST_START_HOUR=3               ;автоматически вычисляется с помощью res_phoneprov
;DST_END_MONTH=11               ;автоматически вычисляется с помощью res_phoneprov
;DST_END_MDAY=2                 ;автоматически вычисляется с помощью res_phoneprov
;DST_END_HOUR=1                 ;автоматически вычисляется с помощью res_phoneprov
;ENDPOINT_ID=1000               ;автоматически добавляется этим модулем
;AUTH_ID=1000-auth              ;автоматически добавляется этим модулем
;TRANSPORT_ID=transport-udp-nat ;автоматически добавляется этим модулем
;LABEL=1000                     ;добавлено пользователем

;МОДУЛЬ, ПРЕДОСТАВЛЯЮЩИЙ НИЖЕПРИВЕДЕННЫЙ РАЗДЕЛ(ы): res_pjsip
;==========================ПАРАМЕТРЫ РАЗДЕЛА КОНЕЧНОЙ ТОЧКИ=========================
;[endpoint]
;  SYNOPSIS: Endpoint
;100rel=yes     ; Разрешить поддержку временных тегов подтверждения RFC 3262 (по умолчанию: "да/yes")
;aggregate_mwi=yes      ;  (по умолчанию: "да/yes")
;allow= ; Разрешаемые медиакодеки (по умолчанию: "")
;allow_overlap=yes ; Включите поддержку дублирующего набора по RFC 3578. (по умолчанию: "да/yes")
;aors=  ; AORS, которые будут использоваться с конечной точкой (по умолчанию: "")
;auth=  ; Объекты аутентификации, связанные с конечной точкой (по умолчанию: "")
;callerid=      ; Информация об идентификаторе вызывающего абонента для конечной точки (по умолчанию: "")
;callerid_privacy=allowed_not_screened      ; Уровень конфиденциальности по умолчанию (по умолчанию: "allowed_not_screened")
;callerid_tag=  ; Внутренний идентификатор_тега для конечной точки (по умолчанию: "")
;context=default        ; Контекст диалплана для входящих сеансов (по умолчанию: "по умолчанию")
;direct_media_glare_mitigation=none     ; Уменьшение прямых отражений от носителя (по умолчанию: "нет/none")
;direct_media_method=invite     ; Тип метода прямой передачи данных (по умолчанию: "пригласить/invite")
;trust_connected_line=yes       ; Принимать обновления подключенной линии с этой конечной точки (по умолчанию: "да/yes")
;send_connected_line=yes        ; Отправляйте обновления подключенной линии на эту конечную точку (по умолчанию: "да/yes")
;connected_line_method=invite   ; Тип метода подключенной линии.
                                ; Если установлено значение "пригласить/invite", проверьте настройки пульта дистанционного управления
                                ; Разрешить заголовок и, если обновление разрешено, отправить
                                ; ОБНОВЛЯТЬ/UPDATE вместо ПРИГЛАШЕНИЯ INVITE, чтобы избежать SDP
                                ; повторные переговоры.  Если ОБНОВЛЕНИЕ не разрешено, отправьте ПРИГЛАШЕНИЕ.
                                ; Если установлено значение "обновить/update", отправляйте ОБНОВЛЕНИЕ независимо
                                ; из того, что позволяет пульт дистанционного управления.
                                ; (по умолчанию: "пригласить/invite")
;direct_media=yes       ; Определяет, может ли носитель передаваться непосредственно между конечными точками (по умолчанию: "да/yes")
;disable_direct_media_on_nat=no ; Отключить прямое обновление сеанса мультимедиа, когда
                                ; NAT блокирует медиасеанс (по умолчанию: "нет/no")
;disallow=      ; Media Codec s to disallow (default: "")
;dtmf_mode=rfc4733      ; Режим DTMF (по умолчанию: "rfc4733")
;media_address=         ; IP-адрес, используемый в SDP для обработки мультимедиа (по умолчанию: "")
;bind_rtp_to_media_address=     ; Привязать сеанс RTP к media_address.
                                ; Это приводит к отправке всех RTP-пакетов с
                                ; указанный адрес. (по умолчанию: "нет/no")
;force_rport=yes        ; Принудительное использование обратного порта (по умолчанию: "да/yes")
;ice_support=no ; Включите механизм ICE, чтобы помочь пройти NAT (по умолчанию: "нет/no")
;identify_by=username   ; Разделенный запятыми список способов, которыми конечная точка или ИЛИ может быть
                        ; идентифицирована.
                        ; "имя пользователя": Идентифицируется по имени пользователя From или To и домену
                        ; "auth_username": Идентификация по имени пользователя для авторизации и области
                        ; "ip": Идентификация по исходному IP-адресу
                        ; "заголовок": Идентификация по настроенному значению заголовка SIP.
                        ; В случаях username и auth_username, если точное совпадение
                        ; как при сбое имени пользователя, так и при сбое домена/области, совпадение равно
                        ; повторная попытка только с именем пользователя.
                        ; (по умолчанию: "имя пользователя,ip")
;redirect_method=user   ; Как обрабатываются перенаправления, полученные от конечной точки (по умолчанию: "пользователь/user")
;mailboxes=     ; УВЕДОМЛЯТЬ конечную точку при изменении состояния любого из указанных почтовых ящиков.
                ; Asterisk отправит незапрошенные сообщения MWI NOTIFY на конечную точку, когда состояние
                ; изменения происходят для любого из указанных почтовых ящиков. (по умолчанию: "")
;voicemail_extension= ; Добавочный номер голосовой почты для отправки в заголовке уведомляющего сообщения-Учетная запись
                      ; (по умолчанию: глобальное global/default_voicemail_extension по умолчанию)
;mwi_subscribe_replaces_unsolicited=no
                      ; Подписка на MWI заменит незапрашиваемые уведомления
                      ; (по умолчанию: "нет/no")
;moh_suggest=default    ; Класс "Музыка в режиме ожидания" по умолчанию (по умолчанию: "default")
;moh_passthrough=yes    ;Передача музыки на удержание с помощью повторных приглашений SIP с помощью sendonly
                        ; при постановке на удержание и отправке сообщения при снятии с удержания
;outbound_auth= ; Объект проверки подлинности, используемый для исходящих запросов (по умолчанию: "")
;outbound_proxy=        ; Прокси, через который можно отправлять запросы, должен быть предоставлен полный SIP URI (по умолчанию: "")
;rewrite_contact=no     ; Разрешить перезапись заголовка контакта с использованием порта исходного IP-адреса (по умолчанию: "нет/no")
;rtp_symmetric=no       ; Убедитесь, что протокол RTP должен быть симметричным (по умолчанию: "нет/no")
;send_diversion=yes     ; Отправьте заголовок переадресации, передающий переадресацию
                        ; информация для вызываемого пользовательского агента (по умолчанию: "да/yes")
;send_pai=no    ; Отправьте заголовок P Asserted Identity (по умолчанию: "нет/no")
;send_rpid=no   ; Отправьте заголовок идентификатора удаленной стороны (по умолчанию: "нет/no")
;rpid_immediate=no      ; Немедленно отправляйте обновления по подключенной линии о неотвеченных входящих вызовах. (по умолчанию: "нет/no")
;timers_min_se=90       ; Минимальный срок истечения таймеров сеанса (по умолчанию:"90")
;timers=yes     ; Таймеры сеанса для SIP-пакетов (по умолчанию: "да/yes")
;timers_sess_expires=1800       ; Максимальный срок истечения таймера сеанса (по умолчанию: "1800")
;transport=     ; Используемая явная конфигурация транспорта (по умолчанию: "")
                ; Это заставит конечную точку использовать указанный транспорт
                ; конфигурация для отправки SIP-сообщений.  Вы должны уже знать
                ; какой тип транспорта (UDP/TCP/IPv4/etc) использует конечное устройство
                ; будет использовать.

;trust_id_inbound=no    ; Принимать идентификационную информацию, полученную от этого
                        ; конечная точка (по умолчанию: "нет/no")
;trust_id_outbound=no   ; Отправить личные идентификационные данные в конечную точку
                        ; (по умолчанию: "нет/no")
;type=  ; Должен иметь тип endpoint (по умолчанию: "")
;use_ptime=no   ; Используйте запрошенный конечной точкой интервал пакетизации (по умолчанию: "нет/no")
;use_avpf=no    ; Определяет, будет ли res_pjsip использовать и принудительно использовать
                ; AVPF для этой конечной точки (по умолчанию: "нет/no")
;media_encryption=no    ; Определяет, будет ли res_pjsip использовать и применять принудительно
                        ; использование шифрования мультимедиа для этой конечной точки (по умолчанию: "нет/no")
;media_encryption_optimistic=no ; Используйте шифрование, если это возможно, но не прерывайте вызов, если это невозможно.
;g726_non_standard=no   ; Если установлено значение "да/yes" и конечная точка согласовывает g.726
                        ; аудио, тогда g.726 для порядка упаковки AAL2 используется наоборот
                        ; к тому, что рекомендовано в RFC 3551. Обратите внимание, что 'g726aal2' также
                        ; должен быть указан в списке разрешенных кодеков
                        ; (по умолчанию: "нет/no")
;inband_progress=no     ; Определяет, будет ли chan_pjsip указывать на вызов
                        ; использование внутриполосного прогресса (по умолчанию: "нет/no")
;call_group=    ; Числовые группы датчиков для канала (по умолчанию: "")
;pickup_group=  ; Числовые группы захвата, которые может получать канал (по умолчанию: "")
;named_call_group=      ; Именованные группы захвата для канала (по умолчанию: "")
;named_pickup_group=    ; Именованные группы приема, которые может принимать канал (по умолчанию: "")
;device_state_busy_at=0 ; Количество используемых каналов, которые приведут к занятости
                        ; возвращается как состояние устройства (по умолчанию: "0")
;t38_udptl=no   ; Включена ли поддержка T 38 UDPTL или нет (по умолчанию: "нет/no")
;t38_udptl_ec=none      ; T 38 Метод исправления ошибок UDPTL (по умолчанию: "нет/none")
;t38_udptl_maxdatagram=0        ; T 38 Максимальный размер дейтаграммы UDPTL (по умолчанию:"0")
;fax_detect=no  ; Включено ли определение тонального сигнала CNG (по умолчанию: "нет/no")
;fax_detect_timeout=30  ; Сколько секунд длится вызов, прежде чем
                        ; функция fax_detect будет отключена для вызова.
                        ; Ноль отключает тайм-аут.
                        ; (по умолчанию: "0")
;t38_udptl_nat=no       ; Включена ли поддержка NAT в сеансах UDPTL
                        ; (по умолчанию: "нет/no")
;tone_zone=     ; Установите, указания какой страны использовать для созданных каналов
                ; для этой конечной точки (по умолчанию: "")
;language=      ; Установите язык по умолчанию, который будет использоваться для каналов, созданных для этого
                ; конечная точка (по умолчанию: "")
;one_touch_recording=no ; Определяет, разрешена ли запись в одно касание для этой конечной точки (по умолчанию: "нет/no")
;record_on_feature=automixmon   ; Функция, активируемая при включении записи в одно касание (по умолчанию: "automixmon")
;record_off_feature=automixmon  ; Функция, включаемая при отключении записи в одно касание (по умолчанию: "automixmon")
;rtp_engine=asterisk    ; Имя механизма RTP, который будет использоваться для каналов, созданных для этой конечной точки (по умолчанию: "звездочка/asterisk")
;allow_transfer=yes     ; Определяет, разрешены ли для этой конечной точки передачи по протоколу SIP (по умолчанию: "да/yes")
;sdp_owner=-    ; Строка, помещенная в качестве части имени пользователя исходной строки SDP o
                ; (по умолчанию: "-")
;sdp_session=Asterisk   ; Строка, используемая для строки сеанса SDP (по умолчанию:
                        ; "Asterisk")
;tos_audio=0    ; Биты DSCP TOS для аудиопотоков (по умолчанию: "0")
;tos_video=0    ; Биты DSCP TOS для видеопотоков (по умолчанию: "0")
;cos_audio=0    ; Приоритет для аудиопотоков (по умолчанию: "0")
;cos_video=0    ; Приоритет для видеопотоков (по умолчанию: "0")
;allow_subscribe=yes    ; Определяет, разрешено ли конечной точке инициировать
                        ; подписки со звездочкой (по умолчанию: "да/yes")
;sub_min_expiry=0       ; Минимально допустимый срок действия подписки
                        ; инициируется конечной точкой (по умолчанию: "0")
;from_user=     ; Имя пользователя, которое будет использоваться в заголовке From для запросов к этой конечной точке
                ; (по умолчанию: "")
;mwi_from_user= ; Имя пользователя для использования в заголовке From для незапрошенных уведомлений MWI
                ; эта конечная точка (по умолчанию: "")
;from_domain=   ; Домен пользователю в заголовке From для запросов к этой конечной точке
                ; (по умолчанию: "")
;dtls_verify=no ; Убедитесь, что предоставленный одноранговый сертификат действителен (по умолчанию: "нет/no")
;dtls_rekey=0   ; Интервал, с которым необходимо повторно согласовать сеанс TLS и повторно включить сеанс SRTP (по умолчанию: "0")
;dtls_auto_generate_cert= ; Включить генерацию эфемерного сертификата TLS (по умолчанию: "нет/no")
;dtls_cert_file=          ; Путь к файлу сертификата для представления одноранговому узлу (по умолчанию: "")
;dtls_private_key=        ; Путь к закрытому ключу для файла сертификата (по умолчанию: "")
;dtls_cipher=   ; Шифр, используемый для согласования DTLS (по умолчанию: "")
;dtls_ca_file=  ; Путь к сертификату центра сертификации (по умолчанию: "")
;dtls_ca_path=  ; Путь к каталогу, содержащему сертификаты центра сертификации (по умолчанию: "")
;dtls_setup=    ; Независимо от того, готовы ли мы принимать соединения, подключайтесь к другой стороне или к обоим (по умолчанию: "")
;dtls_fingerprint= ; Хэш, который будет использоваться для отпечатка пальца, помещенного в SDP (по умолчанию: "SHA-256")
;srtp_tag_32=no ; Определяет, следует ли использовать 32-байтовые теги вместо 80-байтовых (по умолчанию: "нет/no")
;set_var=       ; Переменная, установленная на канале, связанном с конечной точкой. Для нескольких
                ; переменные канала определяют несколько 'set_var'(ов)
;rtp_keepalive= ; Интервал в секундах между пакетами RTP с комфортным шумом, если
                ; RTP не передается. Этот параметр полезен для обеспечения того,
                ; чтобы дыры в NATS и брандмауэрах оставались открытыми на протяжении всего вызова.
;rtp_timeout=      ; Прервать канал, если RTP не получен для указанного
                   ; количество секунд, в течение которых канал отключен при удержании (по умолчанию:
                   ; "0" или не включено)
;rtp_timeout_hold= ; Прервать канал, если RTP не получен для указанного
                   ; количество секунд, в течение которых канал находится в режиме ожидания (по умолчанию:
                   ; "0" или не включено)
;contact_user= ; При исходящих запросах принудительно вводите пользовательскую часть контакта
               ; заголовок для этого значения (по умолчанию: "")
;incoming_call_offer_pref= ; На основе этого параметра создается объединенный список
                           ; предпочтительных кодеков между теми, которые получены во
                           ; входящем предложении SDP (удаленном), и теми, которые указаны
                           ; в параметре "разрешить" конечной точки (локальном)
                           ; создается и передается в ядро Asterisk.
                           ;
                           ; local - включить все кодеки в локальный список, которые
                           ; также находятся в удаленном списке, сохраняя локальный
                           ; порядок. (по умолчанию).
                           ; local_first - включить только первый кодек в
                           ; локальный список, который также находится в удаленном списке.
                           ; remote - включить все кодеки в удаленный список, которые
                           ; также находятся в локальном списке, сохраняя удаленный список
                           ; порядок.
                           ; remote_first - Включить только первый кодек в
                           ; удаленный список, который также находится в локальном списке.
;outgoing_call_offer_pref= ; На основе этого параметра составляется общий список
                           ; предпочтительных кодеков между теми, которые получены от
                           ; Asterisk core (удаленный), и теми, которые указаны в
                           ; параметре "разрешить/allow" конечной точки (локальный).
                           ; создан и используется для создания исходящего SDP
                           ; предложение.
                           ;
                           ; local - включить все кодеки в локальный список, которые
                           ; также находятся в удаленном списке, сохраняя локальный
                           ; порядок.
                           ; local_merge - Включить все кодеки в локальный список
                           ; сохранение местного порядка.
                           ; local_first - включить только первый кодек в
                           ; локальный список.
                           ; remote - включить все кодеки в удаленный список, которые
                           ; также находятся в локальном списке, сохраняя удаленный список
                           ; порядок.
                           ; remote_merge - Включить все кодеки в локальный список
                           ; сохранение порядка удаленного списка. (по умолчанию)
                           ; remote_first - включить только первый кодек в
                           ; удаленный список, который также находится в локальном списке.
;preferred_codec_only=no   ; Ответьте на приглашение SIP с помощью единственного наиболее
                           ; предпочтительный кодек, а не реклама всех совместных
                           ; возможности кодека. Это ограничивает возможности другой стороны
                           ; выбор кодека именно такой, какой мы предпочитаем.
                           ; значение по умолчанию - нет.
                           ; ПРИМЕЧАНИЕ: Этот вариант устарел в пользу
                           ; из incoming_call_offer_pref.  Установка обоих параметров
                           ; не поддерживается.
;asymmetric_rtp_codec= ; Разрешить, чтобы отправляющий и принимающий кодеки отличались и
                       ; не совпадали автоматически (по умолчанию: "нет/no")
;refer_blind_progress= ; Следует ли уведомлять обо всех деталях прогресса на blind
                       ; передача (по умолчанию: "да/yes"). Значение "нет/no" является полезным
                       ; для некоторых SIP-телефонов (Mitel/Aastra, Snom), которые ожидают
                       ; глоток/фрагмент sip/frag "200 ОК" после того, как ССЫЛКА/REFER была принята.
;notify_early_inuse_ringing = ; Следует ли уведомлять диалоговую информацию "заблаговременно"
                              ; в состоянии НЕИСПОЛЬЗОВАНИЯ/INUSE && ВЫЗОВА/RINGING (по умолчанию: "нет/no").
                              ; Значение "да/yes" полезно для некоторых SIP-телефонов
                              ; (Cisco SPA), чтобы иметь возможность указывать и принимать
                              ; звонящие устройства.
;max_audio_streams= ; Максимальное количество разрешенных согласованных аудиопотоков (по умолчанию: 1)
;max_video_streams= ; Максимальное количество разрешенных согласованных видеопотоков (по умолчанию: 1)
;webrtc= ; Если установлено значение "да/yes", это также позволяет использовать следующие необходимые значения
         ; для webrtc: rtcp_mux, use_avpf, ice_support и use_received_transport.
         ; Следующие параметры конфигурации также устанавливаются по умолчанию следующим образом:
         ; media_encryption=dtls
         ; dtls_verify=fingerprint ;(отпечаток пальца)
         ; dtls_setup=actpass
         ; По-прежнему необходимо указать dtls_cert_file и dtls_ca_file.
         ; Значение по умолчанию для этого параметра - "нет/no"
;incoming_mwi_mailbox = ; Имя почтового ящика, используемое при получении входящих уведомлений MWI.
                        ; Если уведомление MWI получено с этой конечной точки,
                        ; этот почтовый ящик будет использоваться при уведомлении других модулей
                        ; об изменениях статуса MWI.  Если не задано, входящий MWI
                        ; Уведомления игнорируются.
;follow_early_media_fork = ; При исходящих вызовах, если UAS отвечает с
                           ; различные атрибуты SDP на последующих 18X или 2XX
                           ; ответы (например, обновление порта) И тег To
                           ; в последующем ответ отличается от этого
                           ; в предыдущем следуйте ему.  Это обычно
                           ; происходит, когда приглашение разветвляется на несколько UASs
                           ; и более 1 отправляет ответ SDP.
                           ; Эта опция также должна быть включена в системе
                           ; раздел.
                           ; (по умолчанию: да/yes)
;accept_multiple_sdp_answers =
                           ; При исходящих вызовах, если UAS отвечает с
                           ; различные атрибуты SDP для не-100rel 18X или 2XX
                           ; ответы (например, обновление порта) И тег To на
                           ; последующий ответ такой же, как и на
                           ; предыдущий, обработайте его. Это может произойти, когда
                           ; UAS по какой-либо причине необходимо сменить порты, например
                           ; используя отдельный порт для пользовательского обратного вызова.
                           ; Эта опция также должна быть включена в системе
                           ; раздел.
                           ; (по умолчанию: нет/no)
;suppress_q850_reason_headers =
                           ; Подавить заголовки причин Q.850 для этой конечной точки.
                           ; Некоторые устройства не могут принимать заголовки с несколькими причинами
                           ; и запутаться, когда и "SIP", и "Q.850" приводят к
                           ; получены заголовки.  Этот параметр позволяет отключить заголовок причины 'Q.850'.
                           ; (по умолчанию: нет)
;ignore_183_without_sdp =
                           ; Не пересылайте 183, если он не содержит SDP.
                           ; Некоторые сценарии межсетевой работы SS7 могут привести к
                           ; 183 генерируется по причинам, отличным от ранних
                           ; средства массовой информации.  Переадресация этого номера 183 может привести к потере
                           ; сигнала обратного вызова.  Этот флаг эмулирует поведение
                           ; chan_sip и предотвращает получение этих 183 ответов от
                           ; пересылается.
                           ; (по умолчанию: нет/no)
;stir_shaken =
                           ; Если это включено, операции ПЕРЕМЕШИВАНИЯ/ВСТРЯХИВАНИЯ STIR/SHAKEN будут
                           ; выполняться на этой конечной точке. Это включает в себя входящие
                           ; и исходящие приглашения. При входящем приглашении Asterisk
                           ; проверит наличие идентификационного заголовка и попытается
                           ; подтвердить вызов. При исходящем приглашении Asterisk будет
                           ; добавьте идентификационный заголовок, который другие пользователи могут использовать для проверки
                           ; вызовы с этой конечной точки. Дополнительная конфигурация - это
                           ; сделано в stir_shaken.conf.
                           ; Функция диалплана STIR_SHAKEN должна использоваться для получения
                           ; результаты проверки по входящим приглашениям. Ничего
                           ; происходит с вызовом, если проверка завершается неудачей
                           ; вам решать, что делать с результатами.
                           ; (по умолчанию: нет/no)
;allow_unauthenticated_options =
                           ; По умолчанию chan_pjsip будет вызывать входящий
                           ; ПАРАМЕТРЫ запроса учетных данных для проверки подлинности просто
                           ; как это было бы с запросом на приглашение. Это согласуется
                           ; с RFC 3261.
                           ; Есть много UAS, которые используют запрос параметров в качестве
                           ; "ping", и они ожидают ответа 200, указывающего на то, что
                           ; удаленная сторона запущена без необходимости
                           ; аутентификации.
                           ; Установка значения allow_unauthenticated_options в 'yes' приведет к
                           ; проинструктируйте chan_pjsip пропустить шаг аутентификации
                           ; когда он получает запрос параметров для этого
                           ; конечная точка.
                           ; Включение этого имеет последствия для безопасности
                           ; настройка, поскольку она может разрешить раскрытие информации
                           ; происходит - в частности, если включено, внешней стороне
                           ; можно было бы перечислить и найти имя конечной точки с помощью
                           ; отправка запросов на варианты и изучение
                           ; ответов.
                           ; (по умолчанию: нет/no)

;==========================ПАРАМЕТРЫ РАЗДЕЛА АУТЕНТИФИКАЦИИ=========================
;[auth]
; КРАТКОЕ ОПИСАНИЕ: Тип аутентификации
;
; Примечание: Использование одного и того же раздела аутентификации для входящих и исходящих сообщений
; аутентификация не рекомендуется.  Существует разница в
; значении для параметра пустой области между входящим и исходящим
; использованием аутентификации.  Посмотрите на справку по конфигурации CLI
; "config show help res_pjsip auth realm" или на wiki
, чтобы узнать разницу.
;
;auth_type=userpass  ; Тип аутентификации.  Может быть
                     ; "userpass" для обычных текстовых паролей или
                     ; "md5" для предварительно хэшированных учетных данных.
                     ; (по умолчанию: "userpass")
;nonce_lifetime=32   ; Время жизни одноразового значения, связанного с этим
                     ; конфигурация аутентификации (по умолчанию: "32")
;md5_cred=     ; В качестве альтернативы указанию обычного текстового пароля
               ; вы можете хэшировать имя пользователя, область и пароль
               ; объедините один раз и поместите здесь хэш-значение.
               ; Входные данные для хэш-функции должны быть в следующем формате:
               ; <имя пользователя>:<область>:<пароль>
               ; Для входящей аутентификации (asterisk - это сервер),
               ; область должна соответствовать либо области, заданной в этом объекте
               ; или значение по умолчанию, установленное в "глобальном" объекте.
               ; Для исходящей аутентификации (asterisk является клиентом)
               ; область должна соответствовать тому, что будет отправлять сервер
               ; в их заголовке WWW-Authenticate.  Оно не может быть пустым
               ; если только вы не ожидаете, что сервер отправит пустую область
               ; в заголовке.
               ; Вы можете сгенерировать хэш с помощью следующей оболочки
               ; команда:
               ; $ echo -n "мое имя:myrealm:мой пароль" | md5sum
               ; Обратите внимание на '-n'.  Вы же не хотите, чтобы новая строка была частью
               ; из хэша.  (по умолчанию: "")
;password=     ; Текстовый пароль, используемый для аутентификации (по умолчанию: "")
;realm=        ; Для входящей аутентификации (asterisk - это сервер),
               ; это область, которая будет отправлена по WWW-Authenticate
               ; заголовки.  Если не указано, то глобальный объект
               ; будет использоваться "default_realm".
               ; Для исходящей аутентификации (asterisk является клиентом) это
               ; должен быть либо областью , которую сервер, как ожидается , отправит,
               ; или пустым, чтобы автоматически использовать область, отправленную сервером.
               ; Если у вас есть несколько объектов аутентификации для конечной точки, область
               ; также используется для сопоставления объекта auth с областью, которую отправляет
               ; сервер.  (по умолчанию: "")
;type=         ; Должен быть auth (по умолчанию: "")
;username=     ; Имя пользователя для учетной записи (по умолчанию: "")


;==========================ПАРАМЕТРЫ/ОПЦИИ РАЗДЕЛА ПСЕВДОНИМОВ ДОМЕНА DOMAIN_ALIAS=========================
;[domain_alias]
;  КРАТКОЕ ОПИСАНИЕ: Псевдоним домена
;type=         ; Должно быть типа domain_alias (по умолчанию: "")
;domain=       ; Домен, которому будет присвоен псевдоним (по умолчанию: "")


;==========================ВАРИАНТЫ/ОПЦИИ ТРАНСПОРТНОЙ СЕКЦИИ=========================
;[transport]
;  КРАТКОЕ ОПИСАНИЕ: SIP-транспорт
;
;async_operations=1     ; Количество одновременных асинхронных операций (по умолчанию: "1")
;bind=  ; IP-адрес и необязательный порт для привязки к этому транспорту (по умолчанию: "")
; Обратите внимание, что для транспорта Websocket конфигурация TLS настроена
; в http.conf и применяется для всего HTTPS-трафика.
;ca_list_file=  ; Файл, содержащий список сертификатов только для чтения TLS (по умолчанию: "")
;ca_list_path=  ; Путь к каталогу, содержащему сертификаты только для чтения TLS.
                ; Для использования этой опции требуется PJProject версии 2.4 или выше. (по умолчанию: "")
;cert_file=     ; Файл сертификата только для TLS конечной точки
                ; Будет считывать файл .crt или .pem, но использует только сертификат,
                ; файл .key должен быть указан через priv_key_file.
                ; Начиная с версии PJProject 2.5: Если имя файла заканчивается на _rsa,
                ; например "asterisk_rsa.pem", файлы "asterisk_dsa.pem"
                ; и/или загружаются "asterisk_ecc.pem" (сертификат,
                ; промежуточные данные, закрытый ключ) для поддержки нескольких алгоритмов для
                ; аутентификация сервера (RSA, DSA, ECDSA). Если цепи будут
                ; отличается, требуется, по крайней мере, OpenSSL 1.0.2.
                ; (по умолчанию: "")
;cipher=        ; Предпочтительные имена криптографических шифров ТОЛЬКО TLS (по умолчанию: "")
;method=        ; Метод передачи SSL ТОЛЬКО TLS (по умолчанию: "")
;priv_key_file= ; Файл закрытого ключа ТОЛЬКО TLS (по умолчанию: "")
;verify_client= ; Требуется проверка ТОЛЬКО клиентского сертификата TLS (по умолчанию: "")
;verify_server= ; Требуется проверка только сертификата сервера TLS (по умолчанию: "")
;require_client_cert=   ; Требуется только сертификат клиента TLS (по умолчанию: "")
;domain=        ; Домен, из которого поступает транспорт (по умолчанию: "")
;external_media_address=        ; Внешний IP-адрес, используемый при обработке RTP (по умолчанию: "")
;external_signaling_address=    ; Внешний адрес для передачи сигналов SIP (по умолчанию: "")
;external_signaling_port=0      ; Внешний порт для передачи сигналов SIP (по умолчанию: "0")
;local_net=     ; Сеть считать локальной, используемой для целей NAT (по умолчанию: "")
;password=      ; Пароль, необходимый для транспортировки (по умолчанию: "")
;protocol=udp   ; Протокол, используемый для SIP-трафика (по умолчанию: "udp")
;type=  ; Должен быть типа transport (по умолчанию: "")
;tos=0  ; Включите TOS для сигнализации, отправляемой по этому транспорту (по умолчанию: "0")
;cos=0  ; Включите COS для сигнализации, отправляемой по этому транспорту (по умолчанию: "0")
;websocket_write_timeout=100    ; Тайм-аут записи по умолчанию для установки в websocket
                                ; транспортирует. Возможно, потребуется скорректировать это значение
                                ; для соединений, в которых Asterisk должен записать
                                ; значительный объем данных и получение
                                ; клиенты медленно обрабатывают полученную информацию
                                ; информация. Значение указано в миллисекундах; по умолчанию
                                ; составляет 100 мс.
;allow_reload=no    ; Хотя транспорты теперь можно перегружать, это может
                    ; быть нежелательно из-за небольшой вероятности выпадения
                    ; звонки. Чтобы убедиться в отсутствии непреднамеренных сбросов, если
                    ; для этой опции установлено значение "нет/no" (по умолчанию), изменения в
                    ; конкретном транспорте будут проигнорированы. Если установлено значение "да/yes",
                    ; будут применены изменения (если таковые имеются).
;symmetric_transport=no ; Когда запрос от динамического контакта поступает на
                        ; транспортировка, если для этого параметра установлено значение "да/yes", транспортировка
                        ; имя будет сохранено и использовано для последующих исходящих
                        ; запросы типа OPTIONS, NOTIFY и INVITE.  Это сохранено
                        ; в качестве параметра uri контакта с именем 'x-ast-txp' и будет
                        ; отображать с uri контакта в CLI, AMI и ARI
                        ; вывод.  По исходящему запросу, если транспортный
                        ; не был явно задан для конечной точки И запроса
                        ; URI не является именем хоста, будет использоваться сохраненный транспорт,
                        ; а параметр 'x-ast-txp' удален из
                        ; исходящего пакета.


количество слов: 1834
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 802
Стаж: 5 лет
Откуда: Вологодская область
Поблагодарили: 32 раза
Контактная информация:

Установка на Wi Fi маршрутизатор Keenetic ОС Entware Asterisk

Сообщение Артём Мамзиков »

Продолжение файла конфигурации
/opt/etc/asterisk/pjsip.default

Код: Выделить всё

;==========================ОПЦИИ РАЗДЕЛА AOR=========================
;[aor]
;  КРАТКОЕ ОПИСАНИЕ: Конфигурация для определения местоположения конечной точки
;contact=       ; Постоянные контакты, назначенные AoR (по умолчанию: "")
;default_expiration=3600        ; Время истечения срока действия по умолчанию в секундах для
                                ; контакты, динамически привязанные к AoR
                                ; (по умолчанию: "3600")
;mailboxes=           ; Разрешить подписки на указанные почтовые ящики
                      ; Этот параметр применяется, когда внешний объект подписывается на AoR
                      ; для индикации ожидания сообщения. (по умолчанию: "")
;voicemail_extension= ; Добавочный номер голосовой почты для отправки в заголовке уведомляющего сообщения-Учетная запись
                      ; (по умолчанию: global/default_voicemail_extension)
;maximum_expiration=7200        ; Максимальное время сохранения AoR (по умолчанию: "7200")
;max_contacts=0 ; Максимальное количество контактов, которые могут быть привязаны к AoR (по умолчанию: "0")
;minimum_expiration=60  ; Минимальное время ожидания для AoR (по умолчанию: "60")
;remove_existing=no     ; Разрешить успешную регистрацию, заменив любую существующую
                        ; контакты, количество которых теперь превышает значение max_contacts.  Любые
                        ; срок действия удаленных контактов истекает следующим.  Поведение таково
                        ; полезно, когда включен rewrite_contact и max_contacts
                        ; больше единицы.  Удаленный контакт, скорее всего, является старым
                        ; контакт, созданный с помощью rewrite_contact, которым является устройство
                        ; освежающий.
                        ; (по умолчанию: "нет/no")
;type=  ; Должен быть типа aor (по умолчанию: "")
;qualify_frequency=0    ; Интервал, с которым можно квалифицировать AoR с помощью запросов опций. (по умолчанию: "0")
;qualify_timeout=3.0      ; Установленный тайм-аут в долях секунды (по умолчанию: "3.0")
;authenticate_qualify=no        ; Проверяет подлинность соответствующего запроса, если это необходимо (по умолчанию: "нет/no")
;outbound_proxy=        ; Прокси-сервер, через который можно отправлять запросы параметров, полный SIP URI
                        ; должно быть указано (по умолчанию: "")


;==========================ПАРАМЕТРЫ СИСТЕМНОГО РАЗДЕЛА=========================
;[system]
;  КРАТКОЕ ОПИСАНИЕ: Параметры, которые применяются к стеку SIP, а также другие общесистемные настройки
;timer_t1=500   ; Установите значение таймера транзакции T1 в миллисекундах (по умолчанию: "500")
;timer_b=32000  ; Установите значение таймера транзакции B в миллисекундах (по умолчанию: "32000")
;compact_headers=no     ; Используйте краткие формы распространенных имен заголовков SIP (по умолчанию: "нет/no")
;threadpool_initial_size=0      ; Начальное количество потоков в пуле потоков res_pjsip (по умолчанию: "0")
;threadpool_auto_increment=5    ; Величина , на которую увеличивается количество потоков
                                ; увеличивается при необходимости (по умолчанию: "5")
;threadpool_idle_timeout=60     ; Количество секунд до завершения незанятого потока
                                ; следует утилизировать (по умолчанию: "60")
;threadpool_max_size=0  ; Максимальное количество потоков в пуле потоков res_pjsip
                        ; Значение 0 указывает на отсутствие максимума (по умолчанию: "0")
;disable_tcp_switch=yes ; Отключить автоматическое переключение с UDP на TCP-транспорты
                        ; если исходящий запрос слишком велик.
                        ; Смотрите раздел 18.1.1 RFC 3261.
                        ; Известно, что отключение этой опции приводит к нарушению функциональной совместимости
                        ; проблемы, поэтому отключайте на свой страх и риск.
                        ; (по умолчанию: "да/yes")
;follow_early_media_fork = ; При исходящих вызовах, если UAS отвечает с
                           ; различные атрибуты SDP на последующих 18X или 2XX
                           ; ответы (например, обновление порта) И тег To
                           ; в последующем ответ отличается от этого
                           ; в предыдущем следуйте ему.  Это обычно
                           ; происходит, когда приглашение разветвляется на несколько UASs
                           ; и более 1 отправляет ответ SDP.
                           ; Эта опция также должна быть включена на конечных точках, которые
                           ; требуется эта функциональность.
                           ; (по умолчанию: да/yes)
;accept_multiple_sdp_answers =
                           ; При исходящих вызовах, если UAS отвечает с
                           ; различные атрибуты SDP для не-100rel 18X или 2XX
                           ; ответы (например, обновление порта) И тег To на
                           ; последующий ответ такой же, как и на
                           ; предыдущий, обработайте его. Это может произойти, когда
                           ; UAS по какой-либо причине необходимо сменить порты, например
                           ; используя отдельный порт для пользовательского обратного вызова.
                           ; Эта опция также должна быть включена на конечных точках, которые
                           ; требуется эта функциональность.
                           ; (по умолчанию: нет/no)
;disable_rport=no ; Отключите использование "rport" в исходящих запросах.
;type=  ; Должен иметь тип system (по умолчанию: "")

;==========================ПАРАМЕТРЫ ГЛОБАЛЬНОГО РАЗДЕЛА=========================
;[global]
;  КРАТКОЕ ОПИСАНИЕ: Опции, которые применяются глобально ко всем SIP-коммуникациям
;max_forwards=70        ; Значение, используемое в заголовке Max Forwards(пересылки/переадресации) для SIP-запросов (по умолчанию: "70")
;type=  ; Должен иметь тип глобальный (по умолчанию: "")
;user_agent=Asterisk PBX        ; Позволяет изменить строку пользовательского агента
                                ; Строка пользовательского агента по умолчанию также содержит
                                ; версия Asterisk. Если вы не хотите
                                ; раскрывать это, измените строку user_agent.
;default_outbound_endpoint=default_outbound_endpoint    ; Конечная точка для использования при
                                                        ; отправка исходящего
                                                        ; запрос к URI
                                                        ; без указанного
                                                        ; конечная точка (по умолчанию: "default_outbound_endpoint")
;debug=no ; Включить/отключить Enable/Disable ведение журнала отладки SIP.  Допустимые параметры включают "да/yes"| "нет/no" или адрес хоста (по умолчанию: "нет/no")
;keep_alive_interval=90 ; Интервал (в секундах), с которым следует отправлять (двойной CRLF)
                        ; поддерживать работоспособность на всех активных транспортных средствах, ориентированных на подключение;
                        ; для безсоединений, подобных UDP, смотрите раздел qualify_frequency.
                        ; (по умолчанию: "90")
;contact_expiration_check_interval=30
                        ; Интервал (в секундах) для проверки наличия просроченных контактов.
;disable_multi_domain=no
            ; Отключите поддержку нескольких доменов.
            ; Если он отключен, это может улучшить производительность в реальном времени за счет уменьшения
            ; количество запросов к базе данных
            ; (по умолчанию: "нет/no")
;endpoint_identifier_order=ip,username,anonymous
            ; Порядок, в котором идентификаторам конечных точек присваивается приоритет.
            ; В настоящее время "ip", "заголовок/header", "имя пользователя/username", "auth_username" и "anonymous"
            ; являются действительными идентификаторами, зарегистрированными с помощью res_pjsip_endpoint_identifier_*
            ; модули.  Некоторые модули, такие как res_pjsip_endpoint_identifier_user регистрируют
            ; более одного идентификатора.  Используйте команду CLI "pjsip show identifiers"
            ; чтобы просмотреть доступные в данный момент идентификаторы.
            ; (по умолчанию: ip,username,anonymous)
;max_initial_qualify_time=4 ; Максимальное количество времени (в секундах) с момента
                            ; запуск, соответствующий требованиям, должен быть предпринят на всех
                            ; контакты.  Если больше, чем qualify_frequency
                            ; для aor вместо этого будет использоваться qualify_frequency.
;regcontext=sipregistrations  ; Если указан regcontext, Asterisk будет динамически
                              ; создать и уничтожить расширение NoOp priority 1 для
                              ; указанная конечная точка, которая регистрируется или отменяет регистрацию у нас.
                              ; Добавленное расширение - это имя конечной точки.
;default_voicemail_extension=asterisk
                   ; Добавочный номер голосовой почты для отправки в заголовке уведомляющего сообщения-Учетная запись
                   ; если не задано для конечной точки или aor.
                   ; (по умолчанию: "")
;
; Следующие параметры unidentified_request используются только в том случае, если "auth_username"
; сопоставление включено в "endpoint_identifier_order".
;
;unidentified_request_count=5   ; Количество неидентифицированных запросов , которые могут быть
                                ; получены с одного IP-адреса за
                                ; неидентифицированный_запрос_период unidentified_request_period секунд до срабатывания системы безопасности
                                ; событие сгенерировано. (по умолчанию: 5)
;unidentified_request_period=5  ; Смотрите выше.  (по умолчанию: 5 секунд)
;unidentified_request_prune_interval=30
                                ; Интервал , с которым неопознанные запросы
                                ; проверяют, можно ли их обрезать.  Если они
                                ; старше, чем в два раза больше неидентифицированного периода запроса,
                                ; они обрезаются.
                                ;
;default_from_user=asterisk     ; Когда Asterisk генерирует исходящий SIP-запрос,
                                ; для имени пользователя в заголовке
                                ; From будет установлено это значение, если
                                ; нет лучшего варианта (такого как CallerID или
                                ; endpoint/from_user) для использования
;default_realm=asterisk         ; Когда Asterisk генерирует вызов, область дайджеста
                                ; будет установлено это значение, если нет лучшего варианта
                                ; (например, auth/realm), который будет использоваться.

                    ; Размер очереди процессора задач Asterisk
                    ; В сильно загруженной системе с хранилищем базы данных вам может потребоваться увеличить
                    ; очередь taskprocessor.
                    ; Если размер очереди taskprocessor достиг высокого уровня загрузки,
                    ; срабатывает предупреждение.
                    ; Если установлено оповещение, распределитель pjsip прекращает обработку входящих
                    ; запрашивает до тех пор, пока предупреждение не будет снято.
                    ; Предупреждение снимается, когда размер очереди taskprocessor падает до
                    ; низкого уровня очистки источника.
                    ; Следующие параметры задают уровни очереди taskprocessor для MWI.
;mwi_tps_queue_high=500 ; Уровень срабатывания предупреждения о высоком уровне воды в процессоре задач.
;mwi_tps_queue_low=450  ; Taskprocessor предупреждает о низком уровне очистки воды.
                        ; Значение по умолчанию равно -1 для 90% высокого уровня вод.

                    ; Незапрошенный MWI
                    ; Если есть конечные точки, настроенные с помощью незапрошенного MWI
                    ; затем модуль res_pjsip_mwi пытается отправить MWI на все конечные точки при запуске.
;mwi_disable_initial_unsolicited=no ; Отключите отправку незапрашиваемого mwi на все конечные точки при запуске.
                    ; Если отключено, то начнется обработка незапрошенного mwi
                    ; при следующем обновлении контакта конечной точки.

;ignore_uri_user_options=no ; Включить/отключить Enable/Disable игнорирование параметров пользовательского поля SIP URI.
                    ; Если у вас включена эта опция и есть точки с запятой
                    ; в пользовательском поле SIP URI, то поле усекается
                    ; после первой точки с запятой.  Это эффективно превращает точку с запятой в
                    ; неиспользуемый символ для имен конечных точек PJSIP, расширений
                    ; и AORS.  Это может быть полезно для улучшения совместимости с
                    ; ITSP, которому нравится использовать пользовательские настройки по какой-либо причине.
                    ; Пример:
                    ; URI: "sip:1235557890;phone-context=national@x.x.x.x ;пользователь=телефон"
                    ; Поле пользователя - "1235557890;phone-context=nationa телефон-контекст=национальный"
                    ; Который становится таким: "1235557890"
                    ;
                    ; Примечание: Получены строки идентификатора вызывающего абонента и перенаправляющего номера
                    ; из входящего SIP URI пользовательские поля всегда усекаются в
                    ; первой точке с запятой.

;send_contact_status_on_update_registration=no ; Включить отправку AMI ContactStatus
                    ; событие, когда устройство обновляет свою регистрацию
                    ; (по умолчанию: "нет/no")

;taskprocessor_overload_trigger=global
                ; Установите триггер, который дистрибьютор будет использовать для обнаружения
                ; taskprocessor перегружается.  При срабатывании распределитель
                ; не будет принимать никаких новых запросов до тех пор, пока перегрузка не будет
                ; устранена.
                ; "глобальный/global": (по умолчанию) Сработает любая перегрузка taskprocessor.
                ; "pjsip_only": будут запускаться только перегрузки pjsip taskprocessor.
                ; "нет/none":  Обнаружение перегрузки выполняться не будет.
                ; ПРЕДУПРЕЖДЕНИЕ/WARNING: Следует использовать параметры "none" и "pjsip_only"
                ; с особой осторожностью и только для смягчения конкретных проблем.
                ; При определенных условиях они могли бы усугубить ситуацию.

;norefersub=yes     ; Включить отправку тега опции norefersub в поддерживаемом заголовке для рекламы
                    ; что пользовательский агент способен принять запрос на ссылку с помощью
                    ; создание неявной подписки (см. RFC 4488).
                    ; (по умолчанию: "да/yes")

; МОДУЛЬ, ПРЕДОСТАВЛЯЮЩИЙ НИЖЕПРИВЕДЕННЫЙ РАЗДЕЛ(ы): res_pjsip_acl
;==========================ПАРАМЕТРЫ РАЗДЕЛА ACL=========================
;[acl]
;  КРАТКОЕ ОПИСАНИЕ: Список контроля доступа
;acl=   ; Список имен разделов IP ACL в acl conf (по умолчанию: "")
;contact_acl=   ; Список имен разделов списка контроля доступа контактов в acl conf (по умолчанию: "")
;contact_deny=  ; Список адресов заголовка контакта, в которых должно быть отказано (по умолчанию: "")
;contact_permit=        ; Список разрешенных адресов заголовка контакта (по умолчанию: "")
;deny=  ; Список IP-адресов, с которых следует запретить доступ (по умолчанию: "")
;permit=        ; Список IP-адресов, с которых разрешен доступ (по умолчанию: "")
;type=  ; Должен иметь тип acl (по умолчанию: "")




; МОДУЛЬ, ПРЕДОСТАВЛЯЮЩИЙ НИЖЕПРИВЕДЕННЫЙ РАЗДЕЛ(ы): res_pjsip_outbound_registration
;==========================ПАРАМЕТРЫ РАЗДЕЛА РЕГИСТРАЦИИ=========================
;[registration]
;  КРАТКОЕ ОПИСАНИЕ: Конфигурация для исходящей регистрации
;auth_rejection_permanent=yes   ; Определяет, завершилась ли неудачная аутентификация
                                ; проблемы рассматриваются как постоянные неудачи
                                ; (по умолчанию: "да/yes")
;client_uri=    ; SIP-URI клиента, используемый при попытке исходящей регистрации (по умолчанию: "")
;contact_user=  ; Контакт пользователя для использования в запросе (по умолчанию: "")
;expiration=3600        ; Время истечения срока действия регистраций в секундах (по умолчанию: "3600")
;max_retries=10 ; Максимальное количество попыток регистрации (по умолчанию: "10")
;outbound_auth= ; Объект аутентификации, который будет использоваться для исходящих регистраций (по умолчанию: "")
;outbound_proxy=        ; Прокси-сервер, через который можно отправлять регистрации, полный SIP URI
                        ; должно быть указано (по умолчанию: "")
;retry_interval=60      ; Интервал в секундах между повторными попытками, если исходящий
                        ; регистрация не выполнена (по умолчанию: "60")
;forbidden_retry_interval=0     ; Интервал, используемый при получении запрещенного 403
                                ; ответ (по умолчанию: "0")
;fatal_retry_interval=0 ; Интервал, используемый при получении фатального ответа.
                        ; (по умолчанию: "0") Фатальной реакцией является любая постоянная
                        ; сбой (временный 4xx, 5xx, 6xx) ответа
                        ; получено от регистратора. ПРИМЕЧАНИЕ - если также установлен
                        ; 'forbidden_retry_interval' имеет приоритет
                        ; поверх этого, когда будет получено сообщение 403. Кроме того, если
                        ; 'auth_rejection_permanent' равно 'yes', то 401 и
                        ; 407 подпадают под действие этого интервала повторных попыток.
;server_uri=    ; SIP URI сервера для регистрации (по умолчанию: "")
;transport=     ; Транспорт, используемый для исходящей аутентификации (по умолчанию: "")
;line=          ; При включении этой опции параметр "строка/line"
                ; будет добавлен в заголовок контакта, помещенный в исходящий
                ; запрос на регистрацию. Если удаленный сервер отправляет вызов
                ; этот параметр строки будет использоваться для установления связи
                ; к исходящей регистрации, что в конечном итоге приводит к использованию
                ; сконфигурированной конечной точки (по умолчанию: "нет/no")
;endpoint=      ; Когда включена поддержка линии, это настроенное имя конечной точки
                ; используется для входящих вызовов, связанных с исходящим
                ; регистрация (по умолчанию: "")
;type=  ; Должен иметь тип registration (по умолчанию: "")




; МОДУЛЬ, ПРЕДОСТАВЛЯЮЩИЙ НИЖЕПРИВЕДЕННЫЙ РАЗДЕЛ(ы): res_pjsip_endpoint_identifier_ip
;==========================ОПРЕДЕЛИТЕ ПАРАМЕТРЫ РАЗДЕЛА=========================
;[identify]
;  КРАТКОЕ ОПИСАНИЕ: Идентифицирует конечные точки с помощью некоторых критериев.
;
; ПРИМЕЧАНИЕ: Если указано несколько критериев соответствия, то входящий запрос будет
; сопоставлен с конечной точкой, если он соответствует любому из критериев.
;endpoint=      ; Имя идентифицированной конечной точки (по умолчанию: "")
;srv_lookups=yes        ; Выполните поиск в SRV для предоставленных имен хостов. (по умолчанию: yes)
;match= ; Список IP-адресов, сетей или имен хостов, разделенных запятыми, для сопоставления (по умолчанию: "")
;match_header= ; Заголовок SIP с указанным значением для сопоставления (по умолчанию: "")
;type=  ; Должен иметь тип identify (по умолчанию: "")




;========================ПАРАМЕТРЫ РАЗДЕЛА PHONEPROV_USER=======================
;[phoneprov]
;  КРАТКОЕ ОПИСАНИЕ: Содержит переменные для автоматической настройки каждого пользователя
;endpoint=      ; Конечная точка, с которой можно получить имя пользователя, секрет и т.д. (по умолчанию: "")
;PROFILE=       ; Имя профиля, настроенного в phoneprov.conf (по умолчанию: "")
;MAC=           ; Mac-адрес для этого пользователя (по умолчанию: "")
;OTHERVAR=      ; Любая другая пара имя-значение, которая будет использоваться в шаблонах (по умолчанию: "")
                ; Общие переменные включают строку, LINEKEYS и т.д.
                ; Смотрите phoneprov.conf.sample для других.
;type=          ; Должен быть типа phoneprov (по умолчанию: "")



; МОДУЛЬ, ПРЕДОСТАВЛЯЮЩИЙ НИЖЕПРИВЕДЕННЫЙ РАЗДЕЛ(ы): res_pjsip_outbound_publish
;======================ПАРАМЕТРЫ РАЗДЕЛА OUTBOUND_PUBLISH=====================
; Смотреть https://wiki.asterisk.org/wiki/display/AST/Publishing+Extension+State
; для получения дополнительной информации.
;[outbound-publish]
;type=outbound-publish     ; Должно быть типа "исходящая публикация"/'outbound-publish'.

;expiration=3600           ; Время истечения срока действия публикаций в секундах

;outbound_auth=            ; Объекты аутентификации, которые будут использоваться для исходящих
                           ; опубликовано.
                           ; Это разделенный запятыми список разделов аутентификации
                           ; определен в pjsip.conf, используется для ответа на исходящие
                           ; проблемы с аутентификацией.
                           ; Использовать один и тот же раздел аутентификации для входящей и
                           ; исходящей аутентификации не рекомендуется.  Там
                           ; это разница в значении для пустой области
                           ; настройка между входящей и исходящей аутентификацией
                           ; использует. Подробности смотрите в описании области аутентификации.

;outbound_proxy=           ; SIP URI исходящего прокси-сервера, используемого для отправки публикаций

;server_uri=               ; SIP URI сервера и объекта для публикации.
                           ; Это URI, по которому можно найти объект и
                           ; сервер для отправки исходящей публикации.
                           ; Этот URI используется в качестве URI запроса исходящего
                           ; Запрос на публикацию от Asterisk.

;from_uri=                 ; SIP URI для использования в заголовке From.
                           ; Это URI, который будет помещен в файл From
                           ; заголовок исходящих сообщений о публикации. Если URI не
                           ; указан, то URI, указанный в server_uri, будет
                           ; быть использованным.

;to_uri=                   ; SIP URI для использования в заголовке To.
                           ; Это URI, который будет помещен в заголовок To
                           ; исходящих сообщений для публикации. Если URI не указан, то URI,
						   ; указанный в server_uri, будет
                           ; быть использованным.

;event=                    ; Тип события ПУБЛИКАЦИИ/PUBLISH.

;max_auth_attempts=        ; Максимальное количество попыток аутентификации перед
                           ; остановкой pub.

;transport=                ; Транспорт, используемый для исходящей публикации.
                           ; Транспорт, сконфигурированный в pjsip.conf. Как и в случае с другими
                           ; модули res_pjsip, при этом будет использоваться первый
                           ; доступный транспорт соответствующего типа, если
                           ; неконфигурированный.

;multi_user=no             ; Включить многопользовательскую поддержку (только Asterisk 14+)



; МОДУЛЬ, ПРЕДОСТАВЛЯЮЩИЙ НИЖЕПРИВЕДЕННЫЙ РАЗДЕЛ(ы): res_pjsip_pubsub
;=============================СПИСОК РЕСУРСОВ===================================
; Смотреть https://wiki.asterisk.org/wiki/pages/viewpage.action?pageId=30278158
; для получения дополнительной информации.
;[resource_list]
;type=resource_list        ; Должно быть типа 'resource_list'.

;event=                    ; Пакет событий SIP, который содержит ресурс списка.
                           ; принадлежит.  Пакет событий SIP описывает
                           ; типы ресурсов, о состоянии которых Asterisk сообщает
                           ; из.

;list_item=                ; Название ресурса, о состоянии которого будет сообщаться отчет.
                           ; В общем случае Asterisk выполняет поиск элементов списка
                           ; следующим образом:
                           ; 1. Проверьте, ссылается ли элемент списка на другой
                           ; настроенный список ресурсов.
                           ; 2. Передайте имя ресурса
                           ; обработчикам, зависящим от пакета событий, чтобы найти
                           ; указанный ресурс.
                           ; Вторая часть означает, что способ, которым элемент списка
                           ; указывается в зависимости от того, к какому типу относится этот список.
                           ; Например, если для события установлено значение
                           ; присутствие, то элементы списка должны быть в форме
                           ; dialplan_extension@dialplan_context. Для
                           ; сообщение-краткое содержание, должны быть указаны имена почтовых ящиков.

;full_state=no             ; Указывает, должно ли быть отправлено состояние всего списка
.
                           ; Если эта опция включена и ресурс изменяется
                           ; укажите, затем Asterisk создаст уведомление
                           ; который содержит состояние всех ресурсов в списке.
                           ; Если эта опция отключена, Asterisk будет
                           ; создайте уведомление, содержащее только
                           ; состояния ресурсов, которые изменились.
                           ; ПРИМЕЧАНИЕ: Даже при отключенной этой опции существуют
                           ; определенные ситуации, когда Asterisk вынужден отправлять
                           ; уведомление с указанием состояний всех ресурсов в
                           ; списке. Когда подписчик возобновляет или прекращает действие
                           ; свою подписку на список Asterisk ДОЛЖНА отправить
                           ; полное уведомление государства.

;notification_batch_interval=0
                           ; Время ожидания Asterisk в миллисекундах
                           ; перед отправкой уведомлений.

;==========================ВНУТРЕННЯЯ ПУБЛИКАЦИЯ================================
; Смотреть https://wiki.asterisk.org/wiki/display/AST/Exchanging+Device+and+Mailbox+State+Using+PJSIP
; для получения дополнительной информации.
;[inbound-publication]
;type=                     ; Должно быть типа "входящая публикация"/'inbound-publication'.

;endpoint=                 ; Необязательное имя конечной точки, которое разрешено только
                           ; для публикации на этом ресурсе.


; МОДУЛЬ, ПРЕДОСТАВЛЯЮЩИЙ НИЖЕПРИВЕДЕННЫЙ РАЗДЕЛ(ы): res_pjsip_publish_asterisk
;==========================ASTERISK_ПУБЛИКАЦИЯ===============================
; Смотреть https://wiki.asterisk.org/wiki/display/AST/Exchanging+Device+and+Mailbox+State+Using+PJSIP
; для получения дополнительной информации.
;[asterisk-publication]
;type=asterisk-publication ; Должно быть типа "asterisk-публикация"/'asterisk-publication'.

;devicestate_publish=      ; Необязательное имя элемента публикации, который можно использовать
                           ; опубликовать запрос.

;mailboxstate_publish=     ; Необязательное имя элемента публикации, который можно использовать
                           ; опубликовать запрос.

;device_state=no           ; Должны ли мы разрешать входящее состояние устройства
                           ; события.

;device_state_filter=      ; Необязательное регулярное выражение, используемое для фильтрации того, что
                           ; устройства, для которых мы принимаем события.

;mailbox_state=no          ; Должны ли мы разрешать входящее состояние почтового ящика
                           ; события.

;mailbox_state_filter=     ; Необязательное регулярное выражение, используемое для фильтрации того, что
                           ; почтовые ящики, для которых мы принимаем события.

/opt/etc/asterisk/pjsip_notify.conf

Код: Выделить всё

; rfc3842
; поставьте пустой "Content=>" в конце, чтобы после последней основной строки был CRLF

[clear-mwi]
Event=>message-summary
Content-type=>application/simple-message-summary
Content=>Messages-Waiting: no
Content=>Message-Account: sip:asterisk@127.0.0.1
Content=>Voice-Message: 0/0 (0/0)
Content=>

; Aastra

[aastra-check-cfg]
Event=>check-sync

[aastra-xml]
Event=>aastra-xml

; Digium

[digium-check-cfg]
Event=>check-sync

; Linksys

[linksys-cold-restart]
Event=>reboot_now

[linksys-warm-restart]
Event=>restart_now

; Polycom

[polycom-check-cfg]
Event=>check-sync

; Sipura

[sipura-check-cfg]
Event=>resync

[sipura-get-report]
Event=>report

; snom

[snom-check-cfg]
Event=>check-sync\;reboot=false

[snom-reboot]
Event=>check-sync\;reboot=true

; Cisco

[cisco-check-cfg]
Event=>check-sync
/opt/etc/asterisk/pjsip_wizard.conf

Код: Выделить всё

; Примеры конфигурации мастера PJSIP и краткая справка
;
; В этом файле есть несколько очень простых примеров конфигурации, которые служат в качестве краткой
; ссылки, чтобы освежить вашу память, когда вам нужно записать новую конфигурацию.
; Он не предназначен для обучения настройке PJSIP или служит исчерпывающим
; справочником вариантов и потенциальных сценариев.
;
; Этот файл состоит из двух основных разделов.
; Во-первых, примеры, написанные вручную, чтобы служить удобным справочником.
; Во-вторых, список всех возможных параметров конфигурации PJSIP по разделам. Это
; извлечено из справки по конфигурации XML. В нем отображается только краткое описание каждого элемента.
; Если вы хотите увидеть более подробную информацию, пожалуйста, ознакомьтесь с источниками документации
; упомянутыми в верхней части этого файла.

; ============================================================================
; УВЕДОМЛЕНИЕ УВЕДОМЛЕНИЕ УВЕДОМЛЕНИЕ УВЕДОМЛЕНИЕ УВЕДОМЛЕНИЕ УВЕДОМЛЕНИЕ
;
; В этом файле не содержится полной документации по опции.
; ============================================================================

; Документация
;
; Официальная документация находится по адресу http://wiki.asterisk.org
; Вы можете прочитать справку по конфигурации XML через командную строку Asterisk с помощью
; "config show help res_pjsip_config_wizard", затем вы можете детализировать различные разделы и их параметры.
;


;============ПРИМЕР НАСТРОЙКИ МАСТЕРА ДЛЯ ТЕЛЕФОНА=======================

; Эта конфигурация создаст конечную точку, aor с динамическим контактом, входящий
; auth, объект phoneprov и подсказку диалплана для добавочного номера 1000.

;[myphone]
;type = wizard
;accepts_auth = yes
;accepts_registrations = yes
;has_phoneprov = yes
;transport = ipv4
;has_hint = yes
;hint_exten = 1000
;inbound_auth/username = testname
;inbound_auth/password = test password
;endpoint/allow = ulaw
;endpoint/context = default
;phoneprov/MAC = 001122aa4455
;phoneprov/PROFILE = profile1


;============ПРИМЕР НАСТРОЙКИ МАСТЕРА ДЛЯ МАГИСТРАЛИ ITSP=================

; Этот ITSP имеет 2 доступных сервера и требует регистрации.

; Эта конфигурация создаст конечную точку, aor с 2 статическими контактами
, исходящую аутентификацию, идентификатор с 2 совпадениями и 2 регистрациями.

;[mytrunk]
;type = wizard
;sends_auth = yes
;sends_registrations = yes
;transport = ipv4
;remote_hosts = sip1.myitsp.com:5060,sip2.myitsp.com:5060
;outbound_auth/username = testname
;outbound_auth/password = test password
;endpoint/allow = ulaw
;endpoint/context = default


;========================ПАРАМЕТРЫ РАЗДЕЛА МАСТЕРА===============================
;[wizard]
;  КРАТКОЕ ОПИСАНИЕ: Предоставляет мастер настройки для распространенных сценариев.
;sends_auth=    ; Создаст исходящий объект аутентификации для конечной точки и
                ; регистрация.
                ; Если да, то необходимо указать исходящий/имя пользователя.
                ; (по умолчанию = "нет/no")

;accepts_auth=  ; Создаст входящий объект аутентификации для конечной точки.
                ; Если да, то необходимо указать входящий/имя пользователя.
                ; (по умолчанию = "нет/no")

;sends_registrations=    ; Создаст объект исходящей регистрации и
                         ; идентифицирует соответствие для каждого хоста в remote_hosts (который
                         ; должно быть указано).
                         ; также должен быть указан sends_auth.
                         ; (по умолчанию: "нет/no")

;sends_line_with_registrations=  ; Установка этого значения в true приведет к тому, что мастер
                         ; пропустит создание идентифицируемого объекта для соответствия
                         ; входящие запросы к конечной точке и вместо этого добавьте параметры
                         ; строка и конечная точка к исходящему
                         ; объект регистрации.
                         ; (по умолчанию: "нет/no")

;accepts_registrations=  ; Создаст aor с динамическими контактами, которые будут
                         ; принимайте заявки на регистрацию.
                         ; также должен быть указан accepts_auth.
                         ; (по умолчанию: "нет/no")

;remote_hosts=   ; Список удаленных хостов, разделенный запятыми, в виде
                 ; <ipaddress | hostname>[:порт] [,<ipaddress | hostname>[:порт] ] ...
                 ; Если указано, будет создан статический контакт для каждого хоста
                 ; в aor.  Если accepts_registrations равно no, идентификатор
                 ; объект также создается со строкой соответствия для каждого удаленного хоста.
                 ; Если явно указан aor/contact или match/identify,
                 ; remote_hosts не будет использоваться для автоматического создания контактов
                 ; или соответствует соответственно.
                 ; (по умолчанию: "")

;outbound_proxy= ; Настройка это ярлык для настройки
                 ; конечная точка/outbound_proxy
                 ; aor/outbound_proxy
                 ; регистрация/outbound_proxy

;transport=      ; Транспорт, который будет использоваться для конечной точки и регистраций
                 ; (по умолчанию: pjsip по умолчанию)

;server_uri_pattern= ; Шаблон, используемый для построения регистрационного
                     ; server_uri. Заменяемый параметр ${REMOTE_HOST} isa
                     ; доступен для использования.
                     ; (по умолчанию: "sip:${REMOTE_HOST}")

;client_uri_pattern= ; Шаблон, используемый для построения регистрационного client_uri.
                     ; Заменяемые параметры ${REMOTE_HOST} и ${USERNAME}
                     ; доступны для использования.
                     ; (по умолчанию: "sip:${USERNAME}@${REMOTE_HOST}")

;contact_pattern=    ; Шаблон, используемый для построения контакта aor.
                     ; Доступен заменяемый параметр ${REMOTE_HOST}
                     ; для использования.
                     ; (по умолчанию: "sip:${REMOTE_HOST}")

;has_phoneprov=      ; Создаст объект phoneprov.
                     ; Если да, то необходимо указать phoneprov/MAC.
                     ; (по умолчанию: "нет/no")

;has_hint=           ; Создайте подсказку и, при необходимости, приложение по умолчанию.
                     ; (по умолчанию: "нет/no")

;hint_context        ; Все подсказки, созданные для этого мастера, будут размещены в этом
                     ; контекст.
                     ; (по умолчанию: конечная точка/контекст endpoint/context)

;hint_exten          ; Если указано, будет создана подсказка PJSIP/<wizard_id>
                     ; для этого расширения в 'hint_context'.
                     ; контекст.
                     ; (по умолчанию: нет/none)

;hint_application    ; Если указано, расширение будет помещено в 'hint_context'
                     ; с приоритетом 1, который вызывает это приложение.  Может быть любым
                     ; допустимое выражение диалплана, подобное
					 ; "Gosub(stdexten,${EXTEN},1(${HINT}))"
                     ; (default: "Dial(${HINT})")

;endpoint/<param>      ; Любые параметры, которые должны быть переданы непосредственно и проверены
;aor/<param>           ; по их соответствующим объектам.
;inbound_auth/<param>
;outbound_auth/<param>
;identify/<param>
;registration/<param>
;phoneprov/<param>

;type=          ; Должен иметь тип wizard (по умолчанию: "")
/opt/etc/asterisk/res_config_sqlite3.conf

Код: Выделить всё

; Определите имя базы данных реального времени для использования в extconfig.conf
;
;[asterisk]
;dbfile => /var/lib/asterisk/realtime.sqlite3
;
; отладка - Включение отладочной информации
;debug=yes
;
; требования - при запуске каждое семейство realtime будет предъявлять требования
; к серверной части.  Существует несколько стратегий обработки требований:
;   warn - Предупреждать, если требуемый столбец не существует.
;   createclose - создавать столбцы, максимально приближенные к требованиям.
;   createchar  - Создавать только столбцы символов
;
;requirements=warn
;
; производительность пакетной записи в SQLite 3 может быть значительно улучшена за счет переноса
; многократных записей в транзакциях. Этот параметр определяет продолжительность
; автоматически генерируемых транзакций в миллисекундах. Любые изменения, внесенные во
; время незавершенной транзакции, будут немедленно доступны для того же
; подключения к базе данных, но при любых внешних подключениях может наблюдаться задержка вплоть до значения
; этого параметра. Также возможно, что в случае сбоя asterisk какие-либо изменения
; сделанные за это время записи могут быть утеряны. Благодаря почти 100-кратной производительности
; преимущество, значение по умолчанию равно 100 мс. Установите значение 0, чтобы отключить пакетную обработку.
;
; ПОЖАЛУЙСТА, обратите внимание: если вам нужно выполнить запись в базу данных из другого подключения
; вам нужно будет установить batch=0, так как транзакции приведут к блокировке базы данных
; для записи.
;
;batch=1000
;
; тайм-аут занятости - тайм-аут в миллисекундах для прекращения ожидания заблокированной базы данных.
; Более подробная информация по адресу https://www.sqlite.org/c3ref/busy_timeout.html
;
;busy_timeout=1000
/opt/etc/asterisk/rtp.conf

Код: Выделить всё

;
; Конфигурация RTP
;
[general]
;
; RTP start и RTP end настраивают начальный и конечный адреса
;
; Значения по умолчанию - rtpstart=5000 и rtpend=31000
;
rtpstart=10000
rtpend=10100
;
; Включать или отключать контрольные суммы UDP для RTP-трафика
;
;rtpchecksums=no
;
; Количество времени, в течение которого цифре DTMF без маркера "end" должно быть
; разрешено продолжать (в "выборках/samples", 1/8000 секунды)
;
;dtmftimeout=3000
; rtcpinterval = 5000 	; Миллисекунды между отчетами rtcp
			;(минимум 500, максимум 60000, по умолчанию 5000)
;
; Включите строгую защиту по протоколу RTP.  Это приведет к отбрасыванию пакетов RTP, которые не приходят
; из распознанного источника потока RTP.  Строгий протокол RTP квалифицирует RTP
; источники потока пакетов перед их принятием при первоначальном подключении и
; при повторном согласовании соединения (например, передача данных и прямые носители).
; Первоначальное подключение и повторное согласование запускает режим обучения для определения
; адреса источника потоковой передачи.  Как только Asterisk распознает поток,
; он позволит другим потокам пройти квалификацию и заменить текущий поток в течение 5
; секунд после запуска режима обучения.  Как только режим обучения завершится,
; текущий поток заблокирован и не может измениться до следующего
; повторного согласования.
; Допустимыми параметрами являются "no" для отключения strictrtp, "yes" для включения strictrtp,
; и "seqno", который выполняет то же самое, что и strictrtp=yes, но только проверяет
; чтобы убедиться, что порядковый номер правильный, а не проверяет время
; интервал.
; Эта опция включена по умолчанию.
; strictrtp=yes
;
; Требуется количество пакетов, содержащих последовательные значения последовательности
; для изменения адреса исходного сокета RTP. Эта опция включается только
; при использовании strictrtp=yes. Рассмотрите возможность изменения этого значения
; если пакеты rtp отбрасываются с одного или обоих концов после подключения вызова.
; По умолчанию для этого параметра установлено значение 4.
; probation=8
;
; Включить защиту от воспроизведения sRTP. Ошибочные пользовательские агенты SIP (UAS) сбрасывают
; порядковый номер (RTP-SEQ) при повторном приглашении, например, с помощью таймеров сеанса
; или при удержании/возобновлении вызова, но сохраняют источник синхронизации (RTP-SSRC). Если
; новый RTP-SEQ выше предыдущего, вызов продолжается,
; если счетчик повторных вызовов (sRTP-ROC) равен нулю (вызов длился менее 22 минут).
; Во всех остальных случаях при вызове используется односторонний звук или даже вообще отсутствует звук.
; "проверка воспроизведения не выполнена (индекс слишком старый)" печатается непрерывно. Это
; ошибка программного обеспечения. Вы должны сообщить об этом создателю этого UA. Пока это
; не исправлено, вы можете отключить защиту от воспроизведения sRTP (см. RFC 3711, раздел 3.3.2).
; Эта опция включена по умолчанию.
; srtpreplayprotection=yes
;
; Включать или отключать поддержку ICE. Эта опция включена по умолчанию.
; icesupport=false
;
; Имя хоста или адрес сервера STUN, используемые при определении внешнего
; IP-адреса и порта, по которому может быть достигнут сеанс RTP. Номер порта является
; необязательным. Если этот параметр опущен, то будет использоваться значение по умолчанию 3478. По умолчанию эта опция
; отключена.
;
; например, stundaddr=mystun.server.com:3478
;
; stunaddr=
;
; Некоторые серверы с несколькими доменами имеют IP-интерфейсы, которые не могут подключиться к серверу STUN,
; указанному stunaddr.  Внесите в черный список те интерфейсные подсети, из которых
; пытаюсь отправить пакет STUN, чтобы найти внешний IP-адрес.
; Попытка отправить пакет STUN без необходимости задерживает обработку входящих
; и исходящих SIP-приглашений, потому что мы будем ждать ответа, который может
; никогда не прийти, пока мы не откажемся от ответа.
; * Может быть перечислено несколько подсетей.
; * Внесение в черный список применяется только к IPv4.  STUN не требуется для IPv6.
; * Внесение в черный список применяется при привязке RTP к определенным IP-адресам, а не
; подстановочный знак 0.0.0.0 адреса.  например, конечная точка PJSIP привязывает RTP к определенному
; адресу, используя параметры bind_rtp_to_media_address и media_address
; Или конечная точка PJSIP указывает явный транспорт, который привязывается
; к определенному IP-адресу.  Внесение в черный список осуществляется с помощью инфраструктуры ACL
; таким образом, возможно также внесение в белый список.
;
; stun_acl = named_acl
; stun_deny = 0.0.0.0/0
; stun_permit = 1.2.3.4/32
;
; По историческим причинам stun_blacklist является псевдонимом для stun_deny.
;
; Имя хоста или адрес сервера TURN, который будет использоваться в качестве ретранслятора. Порт
; номер необязателен. Если этот параметр опущен, то будет использоваться значение по умолчанию 3478.
; По умолчанию эта опция отключена.
;
; например, turnaddr=myturn.server.com:34780
;
; turnaddr=
;
; Имя пользователя, используемое для аутентификации на сервере TURN relay.
; turnusername=
;
; Пароль, используемый для аутентификации на сервере TURN relay.
; turnpassword=
;
; Список управления доступом может использоваться для определения того, какие обнаруженные адреса следует включить для
; ICE, srflx и relay discovery.  Это полезно для оптимизации процесса ICE
; когда система имеет несколько диапазонов адресов хоста и/или физических интерфейсов
; и ожидается, что некоторые из них не будут использоваться для RTP. Например, VPN
; и локальные соединения могут быть неподходящими или необходимыми для ICE. Несколько
; подсетей могут быть перечислены. Если оставить это значение неконфигурированным, будут использоваться все обнаруженные адреса хостов.
;
; ice_acl = named_acl
; ice_deny = 0.0.0.0/0
; ice_permit = 1.2.3.4/32
;
; По историческим причинам ice_blacklist является псевдонимом для ice_deny.
;
; MTU, используемый для фрагментации пакетов DTLS. По умолчанию для этого параметра установлено значение 1200.
; Минимальное значение MTU равно 256.
; dtls_mtu = 1200
;
[ice_host_candidates]
;
; Когда Asterisk находится за статическим NAT "один к одному"/one-to-one и используется ICE,
; ICE предоставит внутренний IP-адрес сервера в качестве одного из возможных хостов.
; Хотя использование STUN (см. параметр конфигурации 'stunaddr') обеспечит
; общедоступный IP-адрес, внутренний IP-адрес все равно будет отправлен удаленному
; одноранговому узлу. Чтобы скрыть топологию вашей внутренней сети, вы можете переопределить
; хост-кандидаты, которые Asterisk отправит удаленному узлу.
;
; ВАЖНО: используйте эту функциональность только в том случае, если ваш сервер Asterisk находится за
; NAT "один к одному", и вы знаете, что делаете. Если вы действительно определяете что-либо
; здесь, вы почти наверняка не захотите указывать 'stunaddr' или 'turnaddr'
; выше.
;
; Формат для этих переопределений следующий:
;
;    <local address> => <advertised address>,[include_local_address]
;
; Следующее заменит 192.168.1.10 на 1.2.3.4 во время согласования ICE :
;
;192.168.1.10 => 1.2.3.4
;
; Следующее будет включать как 192.168.1.10, так и 1.2.3.4 во время ICE
; согласование вместо замены 192.168.1.10.  Это может упростить
; обслуживание как локальных, так и удаленных клиентов.
;
;192.168.1.10 => 1.2.3.4,include_local_address
;
; Вы можете определить переопределение для более чем 1 интерфейса, если у вас многоуровневый
; сервер. Любой локальный интерфейс, который не соответствует, будет пропущен
; без изменений. Поддерживаются как IPv4, так и IPv6-адреса.
/opt/etc/asterisk/sorcery.conf

Код: Выделить всё

; Пример конфигурационного файла для уровня доступа к данным Sorcery

;
; Волшебники
;
; Мастера - это механизм сохранения объектов. Они загружаются как модули Asterisk
; и самостоятельно регистрируются в ядре sorcery. Все специфичные для реализации сведения о том, как сохраняются объекты, изолированы
; внутри wizards.
;

;
; Кэширование
;
; Мастер необязательно может быть помечен как кэш объектов, добавив "/cache" к типу объекта в сопоставлении.
; Если объект возвращается из кэша, не являющегося объектом, он немедленно передается в создаваемый кэш. Множественный
; кэши объектов могут быть сконфигурированы для одного типа объектов.
;

;
; Сопоставления типов объектов
;
; Чтобы разрешить настройку того, где и как сохраняется объект, в этом файле могут быть определены сопоставления объектов
; для каждого модуля. Сопоставление состоит из типа объекта, параметров, имени мастера и конфигурации мастера
; данных. Это имеет следующий формат:
;
; тип объекта [/параметры] = имя мастера, данные конфигурации мастера
;
; Например, для настройки мастера в памяти для типа объекта "bob":
;
; bob = memory
;
; Или настроить тип объекта 'joe' из файла конфигурации:
;
; joe = config,joe.conf
;
; Обратите внимание, что для типа объекта может быть определено несколько сопоставлений. С каждым отображением можно ознакомиться в том порядке, в котором
; оно указано в файле конфигурации. Это означает, что если вы настраиваете мастер как кэш, он должен
; отображаться как первое сопоставление, чтобы к кэшу обращались перед всеми другими сопоставлениями.
;

;
; Следующие сопоставления объектов используются модульным тестом для проверки определенных функциональных возможностей sorcery.
;
[test_sorcery_section]
test=memory

[test_sorcery_cache]
test/cache=test
test=memory

;
; Следующее сопоставление объектов является сопоставлением по умолчанию для внешнего почтового ящика MWI
; объекты для придания постоянства количеству сообщений.
;
;[res_mwi_external]
;mailboxes=astdb,mwi_external

;
; Следующие сопоставления объектов настраивают объекты PJSIP на использование сопоставлений базы данных в реальном времени из extconfig
; с именами таблиц, используемыми при автоматической генерации конфигурации из сценария перегонного куба.
;
;[res_pjsip]
;endpoint=realtime,ps_endpoints
;auth=realtime,ps_auths
;aor=realtime,ps_aors
;domain_alias=realtime,ps_domain_aliases

;[res_pjsip_endpoint_identifier_ip]
;identify=realtime,ps_endpoint_id_ips

;[res_pjsip_outbound_publish]
;outbound-publish=realtime,ps_outbound_publishes

;[res_pjsip_pubsub]
;inbound-publication=realtime,ps_inbound_publications

;[res_pjsip_publish_asterisk]
;asterisk-publication=realtime,ps_asterisk_publications
количество слов: 1486
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 802
Стаж: 5 лет
Откуда: Вологодская область
Поблагодарили: 32 раза
Контактная информация:

Установка на Wi Fi маршрутизатор Keenetic ОС Entware Asterisk

Сообщение Артём Мамзиков »

/opt/etc/asterisk/stasis.conf

Код: Выделить всё

[threadpool]
;initial_size = 5          ; Начальный размер пула потоков.
                           ; 0 означает, что в пуле потоков изначально нет потоков
                           ; до тех пор, пока задаче не понадобится поток.
;idle_timeout_sec = 20     ; Количество секунд, в течение которых поток должен находиться в режиме ожидания, прежде чем
                           ; умрет. 0 означает, что время ожидания потоков никогда не истекает.
;max_size = 50             ; Максимальное количество потоков в Stasis threadpool.
                           ; 0 означает отсутствие ограничений на количество потоков в пуле потоков.

[declined_message_types]
; Этот раздел конфигурации содержит имена типов сообщений, создание которых должно быть предотвращено.
; По умолчанию разрешено создавать сообщения всех типов.
;
; Использование этой функциональности требует знания имен внутренних stasis
; типов сообщений, которые обычно совпадают с именем функции доступа.
;
; Использование этой функции может нарушить работу более сложных функций Asterisk
; таких как CEL, CDR, переводы и т.д. и, вероятно, приведет к отсутствию соответствующих сообщений в ARI
; и AMI.
; decline=stasis_app_recording_snapshot_type
; decline=stasis_app_playback_snapshot_type
; decline=stasis_test_message_type
; decline=confbridge_start_type
; decline=confbridge_end_type
; decline=confbridge_join_type
; decline=confbridge_leave_type
; decline=confbridge_start_record_type
; decline=confbridge_stop_record_type
; decline=confbridge_mute_type
; decline=confbridge_unmute_type
; decline=confbridge_talking_type
; decline=cel_generic_type
; decline=ast_bridge_snapshot_type
; decline=ast_bridge_merge_message_type
; decline=ast_channel_entered_bridge_type
; decline=ast_channel_left_bridge_type
; decline=ast_blind_transfer_type
; decline=ast_attended_transfer_type
; decline=ast_endpoint_snapshot_type
; decline=ast_endpoint_state_type
; decline=ast_device_state_message_type
; decline=ast_test_suite_message_type
; decline=ast_mwi_state_type
; decline=ast_mwi_vm_app_type
; decline=ast_format_register_type
; decline=ast_format_unregister_type
; decline=ast_manager_get_generic_type
; decline=ast_parked_call_type
; decline=ast_channel_snapshot_type
; decline=ast_channel_dial_type
; decline=ast_channel_varset_type
; decline=ast_channel_hangup_request_type
; decline=ast_channel_dtmf_begin_type
; decline=ast_channel_dtmf_end_type
; decline=ast_channel_hold_type
; decline=ast_channel_unhold_type
; decline=ast_channel_chanspy_start_type
; decline=ast_channel_chanspy_stop_type
; decline=ast_channel_fax_type
; decline=ast_channel_hangup_handler_type
; decline=ast_channel_moh_start_type
; decline=ast_channel_moh_stop_type
; decline=ast_channel_monitor_start_type
; decline=ast_channel_monitor_stop_type
; decline=ast_channel_mixmonitor_start_type
; decline=ast_channel_mixmonitor_stop_type
; decline=ast_channel_agent_login_type
; decline=ast_channel_agent_logoff_type
; decline=ast_channel_talking_start
; decline=ast_channel_talking_stop
; decline=ast_security_event_type
; decline=ast_named_acl_change_type
; decline=ast_local_bridge_type
; decline=ast_local_optimization_begin_type
; decline=ast_local_optimization_end_type
; decline=stasis_subscription_change_type
; decline=ast_multi_user_event_type
; decline=stasis_cache_clear_type
; decline=stasis_cache_update_type
; decline=ast_network_change_type
; decline=ast_system_registry_type
; decline=ast_cc_available_type
; decline=ast_cc_offertimerstart_type
; decline=ast_cc_requested_type
; decline=ast_cc_requestacknowledged_type
; decline=ast_cc_callerstopmonitoring_type
; decline=ast_cc_callerstartmonitoring_type
; decline=ast_cc_callerrecalling_type
; decline=ast_cc_recallcomplete_type
; decline=ast_cc_failure_type
; decline=ast_cc_monitorfailed_type
; decline=ast_presence_state_message_type
; decline=ast_rtp_rtcp_sent_type
; decline=ast_rtp_rtcp_received_type
; decline=ast_call_pickup_type
; decline=aoc_s_type
; decline=aoc_d_type
; decline=aoc_e_type
; decline=dahdichannel_type
; decline=mcid_type
; decline=session_timeout_type
; decline=cdr_read_message_type
; decline=cdr_write_message_type
; decline=cdr_prop_write_message_type
; decline=corosync_ping_message_type
; decline=agi_exec_start_type
; decline=agi_exec_end_type
; decline=agi_async_start_type
; decline=agi_async_exec_type
; decline=agi_async_end_type
; decline=queue_caller_join_type
; decline=queue_caller_leave_type
; decline=queue_caller_abandon_type
; decline=queue_member_status_type
; decline=queue_member_added_type
; decline=queue_member_removed_type
; decline=queue_member_pause_type
; decline=queue_member_penalty_type
; decline=queue_member_ringinuse_type
; decline=queue_agent_called_type
; decline=queue_agent_connect_type
; decline=queue_agent_complete_type
; decline=queue_agent_dump_type
; decline=queue_agent_ringnoanswer_type
; decline=meetme_join_type
; decline=meetme_leave_type
; decline=meetme_end_type
; decline=meetme_mute_type
; decline=meetme_talking_type
; decline=meetme_talk_request_type
; decline=appcdr_message_type
; decline=forkcdr_message_type
; decline=cdr_sync_message_type
/opt/etc/asterisk/udptl.conf

Код: Выделить всё

;
; Конфигурация UDPTL (UDPTL является одним из транспортных средств для T.38)
;
[general]
;
; UDPTL start и UDPTL end настраивают начальный и конечный адреса
;
udptlstart=4000
udptlend=4999
;
; Включать или отключать контрольные суммы UDP для трафика UDPTL
;
;udptlchecksums=no
;
; Количество записей для исправления ошибок в пакете UDPTL
;
udptlfecentries = 3
;
; Интервал, в течение которого вычисляется четность для FEC в пакете UDPTL
;
udptlfecspan = 3
;
; Некоторые провайдеры VoIP примут предложение только с четным номером
; Порт UDPTL. Установите этот параметр таким образом, чтобы Asterisk пытался использовать только
; порты с четными номерами при согласовании T.38. Значение по умолчанию - no.
use_even_ports = no
/opt/etc/asterisk/users.conf

Код: Выделить всё

;
; Пользовательская конфигурация
;
; Создание записей в users.conf - это "сокращение/shorthand" для создания отдельных
; записей в каждом файле конфигурации.  Использование users.conf не предназначено для
; того, чтобы предоставить вам такую же гибкость, как при использовании отдельных конфигурационных
; файлов (например, sip.conf, iax.conf и т.д.), Но предназначено для ускорения
; простой задачи добавления пользователей.  Обратите внимание, что создание отдельных элементов (например,
; пользовательских узлов SIP, друзей IAX и т.д.) позволит вам переопределить определенные
; параметры в этом файле.  Имена параметров здесь такие же, как у них
; отображаются в других конфигурационных файлах.  Здесь нет способа изменить значение параметра
; только для одной подсистемы.
;

[general]
;
; Полное имя пользователя
;
fullname = New User
;
; Отправная точка выделения расширений
;
userbase = 6000
;
; Создайте почтовый ящик голосовой почты и используйте use macro-stdexten
;
hasvoicemail = yes
;
; Установите пароль для почтового ящика голосовой почты 6000 равным 1234
;
vmsecret = 1234
;
; Создать одноранговый узел SIP
;
hassip = yes
;
; Создайте нового друга IAX
;
hasiax = yes
;
; Создать нового друга H.323
;
;hash323 = yes
;
; Создать запись менеджера
;
hasmanager = no
;
; Установите разрешения для входа в менеджер (документацию смотрите в manager.conf.sample)
; (по умолчанию используются *все*/*all* разрешения)
;managerread = system,call,log,verbose,command,agent,user,config
;managerwrite = system,call,log,verbose,command,agent,user,config
;
;
; MAC-адрес для res_phoneprov
;
;macaddress = 112233445566
;
; Автоматическое предоставление телефону res_phoneprov
;
;autoprov = yes
;
; Линейные клавиши для стационарного телефона
;
;LINEKEYS = 1
;
; Номер линии для стационарного телефона
;
;linenumber = 1
;
; Локальный идентификационный номер вызывающего абонента, используемый в res_phoneprov и Asterisk GUI
;
;cid_number = 6000
;
; Остальные параметры не являются специфичными для записей users.conf, но являются общими.
;
callwaiting = yes
threewaycalling = yes
callwaitingcallerid = yes
transfer = yes
canpark = yes
cancallforward = yes
callreturn = yes
callgroup = 1
pickupgroup = 1
;nat = no

;[6000]
;fullname = Joe User ; ;полное имя = пользователь Joe
;description = Courtesy Phone In Lobby ;описание = Бесплатный телефон в вестибюле
; Used to provide a description of the ; Используется для предоставления описания
                                      ; peer in console output ; однорангового узла в консольном выводе
;email = joe@foo.bar
;secret = 1234
;dahdichan = 1
;hasvoicemail = yes
;vmsecret = 1234
;hassip = yes
;hasiax = no
;hash323 = no
;hasmanager = no
;callwaiting = no
;context = international
;
; Некоторые администраторы выбирают буквенно-цифровые расширения, но все же хотят, чтобы их
; пользователи были доступны с помощью традиционных цифровых расширений, указанных в записи
; alternateexts.
;
;alternateexts = 7057,3249
;macaddress = 112233445566
;autoprov = yes
;LINEKEYS = 1
;linenumber = 1
;cid_number = 6000
/opt/etc/asterisk/voicemail.conf

Код: Выделить всё

;
; Настройка голосовой почты
;

; ********* УВЕДОМЛЕНИЕ ************************************************************
;
; ПРИМЕЧАНИЕ: Asterisk должен отредактировать этот файл, чтобы изменить пароль пользователя. 
; В настоящее время это не работает с директивой "#include <file>" для
; файлов конфигурации Asterisk, а также при использовании статической конфигурации в реальном времени.
; Не используйте их с этим конфигурационным файлом.
;
; ПРИМЕЧАНИЕ: На почтовые ящики, определенные app_voicemail, ДОЛЖНЫ ссылаться остальные
; системы как mailbox@context.  Остальная часть системы больше не может добавлять
; @default к идентификаторам почтовых ящиков для app_voicemail, которые не указывают
; контекст.  Это формат идентификатора почтового
; ящика, который должен интерпретироваться только app_voicemail.
;
; ********* УВЕДОМЛЕНИЕ ************************************************************

[general]
; Форматы для записи голосовой почты.  Обратите внимание, что при использовании хранилища IMAP для
; голосовой почты будет использоваться только первый указанный формат.
;format=g723sf|wav49|wav
format=gsm|wav
;
; ПРЕДУПРЕЖДЕНИЕ:
; Если вы изменяете список форматов, в которые вы записываете голосовую почту
; если у вас есть почтовые ящики, содержащие сообщения, вы обязательно должны
; вручную просмотреть эти почтовые ящики и преобразовать / удалить / добавить convert/delete/add
; файлы сообщений таким образом, чтобы они выглядели так, как будто они были сохранены с использованием
; вашего нового списка форматов. Если вы этого не сделаете,
; с вашими пользователями могут произойти очень неприятные вещи, пока они извлекают
; свою голосовую почту и манипулируют ею.
;
; Другими словами: не меняйте список форматов в производственной системе
; если только вы не уверены, что знаете, что делаете, и
; готовы к последствиям.
;
; От кого, по-видимому, должно прийти уведомление по электронной почте
serveremail=asterisk
;serveremail=asterisk@linux-support.net
; Должно ли электронное письмо содержать голосовое сообщение в качестве вложения
attach=yes
; Максимальное количество сообщений в папке.  Если не указано, используется значение по умолчанию
; (100).  Максимальное значение для этого параметра равно 9999.  Если установлено значение 0, почтовый ящик a
; будет доступен только для приветствий.
;maxmsg=100
; Максимальная длина сообщения голосовой почты в секундах
;maxsecs=180
; Минимальная продолжительность сообщения голосовой почты в секундах для сохранения сообщения
; Значение по умолчанию не равно минимуму.
;minsecs=3
; Максимальная продолжительность приветствий в секундах
;maxgreet=60
; Сколько миллисекунд нужно пропустить вперед/ назад при перемотке назад/ff при воспроизведении сообщения
skipms=3000
; How many seconds of silence before we end the recording
maxsilence=10
; Порог тишины (то, что мы считаем тишиной: чем ниже, тем чувствительнее)
silencethreshold=128
; Максимальное количество неудачных попыток входа в систему
maxlogins=3
;
; Автоматически перемещать прослушанные сообщения в папку "Old".  По умолчанию включено.
;moveheard=yes
;
; Переслать срочное сообщение как срочное сообщение.  Значение по умолчанию - no so
; отправитель может указать срочность на конверте пересылаемого сообщения.
;forward_urgent_auto=no
;
; Пользовательский контекст - это место, где регистрируются записи из users.conf.  Значение
; по умолчанию - 'default'
;
;userscontext=default
;
; Псевдонимы/ позволяют ссылаться на почтовый ящик с помощью псевдонима.  Псевдонимы
; указаны в специальном контексте, названном здесь.  Значения по умолчанию не существует.
;aliasescontext=myaliases
;
; Если вам нужно, чтобы внешняя программа, т.е. /usr/bin/myapp
; вызывалась, когда голосовое сообщение оставлено, доставлено или ваш голосовой почтовый ящик
; отмечен, раскомментируйте это.
;externnotify=/usr/bin/myapp

; Если вы также хотите включить уведомление SMDI, установите для параметра smdienable значение yes.
; Вам также нужно будет убедиться, что для smdiport установлен допустимый порт, как указано в
; smdi.conf.
;smdienable=yes
;smdiport=/dev/ttyS0

; Если вам нужно, чтобы внешняя программа, например /usr/bin/myapp
; вызывалась при смене пароля голосовой почты, раскомментируйте это. Аргументы,
; передаваемые приложению, следующие: <контекст> <почтовый ящик> <новый пароль>
; Примечание: Если этот параметр установлен, пароль НЕ будет изменен в voicemail.conf
; Если вы хотите также изменить пароль в voicemail.conf, используйте
; вместо этого параметр externpassnotify, приведенный ниже.
;externpass=/usr/bin/myapp
;externpassnotify=/usr/bin/myapp

; Если вы хотите, чтобы внешняя программа вызывалась, когда пользователь меняет
; пароль голосовой почты, с целью проверки нового пароля,
; тогда используйте эту опцию.  Скрипт может решить, использовать новый пароль или нет
; соответствует минимальным требованиям к надежности пароля перед запуском приложения голосовой почты
; принимает пароль.  Если скрипт решит, что пароль неприемлем,
; пользователю будет сообщено, что новый пароль не соответствует минимальным
; требованиям к паролю, и ему будет предложено ввести другой пароль.
;
; Аргументами, передаваемыми этому скрипту, являются <почтовый ящик> <контекст> <старый pw> <новый pw>.
;
; Скрипт должен вывести "VALID" в стандартный вывод, чтобы указать, что новый пароль
; приемлем.  Если пароль считается слишком слабым, скрипт должен вывести
; "INVALID" в стандартный вывод.
;
; В каталоге contrib/scripts/ есть пример скрипта, voicemailpwcheck.py ,
; который реализует некоторую базовую проверку пароля и может быть использован в качестве отправной точки
; для использования с этой опцией.
;
;externpasscheck=/usr/local/bin/voicemailpwcheck.py

; Для каталога вы можете переопределить вводный файл, если хотите
;directoryintro=dir-intro
; Здесь можно указать набор символов для сообщений голосовой почты
; по умолчанию: ISO-8859-1
;charset=UTF-8
; Номер дескриптора функции ADSI для загрузки в
;adsifdn=0000000F
; Код защитного замка ADSI
;adsisec=9BDBF7AC
; Номер версии приложения голосовой почты ADSI.
;adsiver=1
; Пропустите строку "[PBX]:" из заголовка сообщения
;pbxskip=yes
; Измените From: string
;fromstring=The Asterisk PBX
; Разрешает поиск записей для пересылки/компоновки из каталога
;usedirectory=yes
; Голосовая почта может быть сохранена в базе данных с помощью драйвера ODBC.
; Значение odbcstorage - это настроенное подключение к базе данных
; in res_odbc.conf.
;odbcstorage=asterisk
; Таблицей по умолчанию для хранилища голосовой почты ODBC являются голосовые сообщения.
;odbctable=voicemessages
;
; Измените переменные from, body и/или subject:
;     VM_NAME, VM_DUR, VM_MSGNUM, VM_MAILBOX, VM_CALLERID, VM_CIDNUM,
;     VM_CIDNAME, VM_DATE
; Кроме того, в переадресованных сообщениях у вас есть переменные:
;     ORIG_VM_CALLERID, ORIG_VM_CIDNUM, ORIG_VM_CIDNAME, ORIG_VM_DATE
; Вы можете выбрать одну из двух переменных, используя функции диалплана, например
;     ${IF(${ISNULL(${ORIG_VM_DATE})}?${VM_DATE}:${ORIG_VM_DATE})}
;
; Примечание: Строка конфигурации emailbody может содержать не более 8190 символов из-за
; ограничения в подсистеме конфигурации Asterisk.  При компиляции с помощью
; LOW_MEMORY ограничение составляет 510 символов.
;emailsubject=[PBX]: Новое сообщение ${VM_MSGNUM} в почтовом ящике ${VM_MAILBOX}
; Следующее определение очень близко к значению по умолчанию, но по умолчанию отображается
; просто CIDNAME, если оно не равно null, в противном случае просто CIDNUM или "неизвестный
; вызывающий абонент", если они оба равны null.
;emailbody=Уважаемый ${VM_NAME}:\n\n\я просто хотел сообщить вам, что вам только что оставили длинное сообщение ${VM_DUR} (номер ${VM_MSGNUM}) в почтовом ящике ${VM_MAILBOX} от ${VM_CALLERID}, на ${VM_DATE}, так что вы могли бы\ хочу проверить это, когда у тебя будет возможность.  Спасибо!\n\n\t\t\t\t--Asterisk\n
;
; Примечание: ${IF()} удаляет интервал в начале и конце значений true и false,
; поэтому новая строка не может быть помещена ни в одно из местоположений.  Слово "so"
; следовательно, дублируется, чтобы новая строка была правильно интерпретирована.
;emailbody=Уважаемый ${VM_NAME}:\n\n\t просто хотел сообщить вам, что вы только что получили ${IF($["${VM_CIDNUM}" = "${ORIG_VM_CIDNUM}"]?оставлено:переадресовано)} длинное сообщение ${VM_DUR} (номер ${VM_MSGNUM})\n в почтовом ящике ${VM_MAILBOX} из ${VM_CALLERID}, на ${VM_DATE},\n${IF($["${VM_CIDNUM}" = "${ORIG_VM_CIDNUM}"]?итак:(первоначально отправлено ${ORIG_VM_CALLERID} на ${ORIG_VM_DATE})\nso)} возможно, вы захотите проверить это, когда у вас будет возможность.  Спасибо!\n\n\t\t\t\t--Asterisk\n
;
; Вы также можете изменить пейджер с помощью: string, тела пейджера и/или темы.
; Здесь также могут быть использованы указанные выше переменные
;pagerfromstring=The Asterisk PBX
;pagersubject=New VM
;pagerbody=Новое ${VM_DUR} длинное сообщение в поле ${VM_MAILBOX}\n из ${VM_CALLERID}, на ${VM_DATE}
;
; Установите формат даты для исходящих сообщений. Допустимые аргументы можно найти на
; справочной странице ; strftime(3)
;
; По умолчанию
emaildateformat=%A, %B %d, %Y at %r
; формат даты 24
;emaildateformat=%A, %d %B %Y at %H:%M:%S
;
; По умолчанию для использования пейджера
pagerdateformat=%A, %B %d, %Y at %r
; Короткий 24-часовой формат даты для использования на пейджере
;pagerdateformat=%T %D
;
; Используя параметр mailcmd, вы можете указать, какая команда вызывается для
; исходящей электронной почты. Значение по умолчанию показано ниже.
;
;mailcmd=/usr/sbin/sendmail -t
;
;pollmailboxes=no    ; Если почтовые ящики изменяются где-либо за пределами app_voicemail,
;                    ; то эта опция должна быть включена для работы MWI.  Это
;                    ; позволяет опрашивать почтовые ящики на предмет изменений.  Обычно ожидается,
;                    ; что изменения будут внесены только тогда, когда кто-то позвонил в
;                    ; одно из приложений голосовой почты.
;                    ; Примерами ситуаций, в которых потребуется эта опция, являются
;                    ; веб-интерфейсы для голосовой почты или почтовый клиент в случае
;                    ; использования хранилища IMAP.
;                    ; По умолчанию: нет
;pollfreq=30         ; Если включена опция "опрос почтовых ящиков/pollmailboxes", эта опция
;                    ; устанавливает частоту опроса.  Значение по умолчанию - один раз в
;                    ; 30 секунд.
;

; -----------------------------------------------------------------------------
; Только параметры конфигурации IMAP
; Эти параметры применимы только в том случае, если Asterisk скомпилирован с поддержкой IMAP.
;
;imapgreetings=no        ; Если используется хранилище IMAP, укажите, следует ли отправлять приветствия голосовой почтой
                         ; должно храниться через IMAP. Если нет, то приветствия сохраняются
                         ; как если бы хранилище IMAP не было включено.
;greetingsfolder=INBOX   ; Если imapgreetings=yes, то укажите, в какой папке хранить
                         ; ваши приветствия. Если вы не указали папку, то почтовый ящик
                         ; будет использоваться
;imapparentfolder=INBOX  ; Некоторые реализации сервера IMAP хранят папки в папке "Входящие"
                         ; вместо использования папки верхнего уровня (напр. ПОЧТОВЫЙ ЯЩИК/Друзья).  В
                         ; этом случае пользователь imapparentfolder задает родительскую папку. Для
                         ; например, Cyrus IMAP НЕ использует INBOX в качестве родительского. По умолчанию
                         ; заключается в том, чтобы родительская папка не была установлена.
;imapserver=localhost    ; Адрес сервера IMAP
;imapport=143            ; Порт сервера IMAP
;imapflags=ssl           ; Необязательные флаги для передачи на сервер IMAP в почтовом ящике IMAP
                         ; имя.  Например, установив значение "ssl", вы включите OpenSSL
                         ; шифрование, предполагая, что библиотеки IMAP были скомпилированы с использованием
                         ; Поддержка OpenSSL.
;imapfolder=INBOX        ; Папка, в которой будут храниться сообщения голосовой почты по протоколу IMAP
                         ; сервер.  По умолчанию они хранятся в папке "Входящие".
;authuser=user           ; Главный пользователь, который будет использоваться для подключения к серверу IMAP, если
                         ; сервер настроен для одного пользователя, имеющего доступ ко
                         ; всем почтовым ящикам
;authpassword=password   ; Пароль для авторизатора, если он используется
;imapopentimeout=60      ; Время ожидания открытия TCP (в секундах)
;imapclosetimeout=60     ; Время ожидания закрытия TCP (в секундах)
;imapreadtimeout=60      ; Время ожидания чтения TCP (в секундах)
;imapwritetimeout=60     ; Время ожидания записи TCP (в секундах)
;imap_poll_logout=no     ; Если pollmailboxes=yes, то укажите, нужно ли
                         ; отключаться от сервера IMAP после опроса.
                         ; По умолчанию: нет

; -----------------------------------------------------------------------------

; Каждый почтовый ящик указан в виде <почтовый ящик>=<пароль>,<имя>,<электронная почта>,<pager_email>,<параметры>
; Если указан адрес электронной почты, то при получении голосовой почты будет отправлено сообщение
; на указанный почтовый ящик для каждого указанного адреса (разделенного символом |, напр. alice@foo.com/bob@foo.com ).
; Если указан пейджер, то сообщение будет отправлено и туда. Если пароль
; имеет префикс '-', то он считается неизменяемым.
;
; Примером расширенных опций является расширение 4069
; ПРИМЕЧАНИЕ: Все параметры могут быть выражены глобально в разделе общие и
; переопределены в настройках для каждого почтового ящика, если не указано иное.
;
; tz=central 		; Часовой пояс из приведенных ниже сообщений zonemessages. Неуместно, если envelope=no.
; locale=de_DE.UTF-8	; установите языковой стандарт для генерации строк даты/времени (сделайте
			; убедитесь, что языковые стандарты установлены в вашей операционной системе; например
			; в Debian Linux вы можете использовать "dpkg-перенастроить локали").
			; Если вы используете языки UTF-8, обязательно установите параметр "charset".
			; и в UTF-8 тоже. Если вы смешиваете разные языки для разных пользователей
			; вам следует избегать слов в спецификации emaildateformat, например:
			; emaildateformat=%A, %d %B %Y, %H:%M:%S
; attach=yes 		; Прикрепите голосовое сообщение к уведомлению по электронной почте *NOT* к сообщению на пейджер
; attachfmt=wav49	; Какой формат прикрепить к электронному письму.  Обычно это
                    ; первый формат, указанный в параметре format выше, но этот
                    ; параметр позволяет настроить формат, отправляемый в определенные почтовые ящики.
			; Полезно, если пользователям Windows нужен wav49, но пользователям Linux нужен gsm.
			; [только для каждого почтового ящика] [per-mailbox only]
; saycid=yes 		; Произнесите информацию об идентификаторе вызывающего абонента перед сообщением. Если не описано,
            ; или установлено значение "нет", оно будет в конверте. Когда включено, если записанный файл
			; с тем же именем , что и идентификатор вызывающего абонента , существует в
			; <astspooldir>/recordings/callerids, тогда этот файл будет воспроизводиться как имя
			; вместо того, чтобы произносить каждую цифру как номер телефона.
; cidinternalcontexts=intern	; Внутренний контекст для воспроизведения имени вместо
                                ; добавочных цифр при произнесении идентификатора вызывающего абонента.
; sayduration=no 	; Включите/выключите on/off информацию о продолжительности перед сообщением. [ВКЛЮЧЕНО по умолчанию]
; saydurationm=2        ; Укажите минимальную продолжительность произнесения. Значение по умолчанию - 2 минуты
; dialout=fromvm ; Контекст для набора номера из [опция 4 из расширенного меню почтового ящика].
                 ; Если не указано, опция 4 не будет указана в списке, и набор завершится
                 ; из VoiceMailMain() не будет разрешен.
sendvoicemail=yes ; Разрешить пользователю создавать и отправлять голосовое сообщение, находясь внутри
                  ; VoiceMailMain() [опция 5 из расширенного меню почтового ящика].
                  ; Если установлено значение "нет", опция 5 не будет указана в списке.
; searchcontexts=yes	; Текущее поведение по умолчанию заключается в поиске только по контексту по умолчанию
			; если таковой не указан.  Прежнее поведение заключалось в поиске по всем контекстам.
			; Этот параметр восстанавливает старое поведение [ПО УМОЛЧАНИЮ=нет] [DEFAULT=no]
			; Примечание: Если у вас включена эта опция, то вам потребуется иметь
			; уникальные имена почтовых ящиков во всех контекстах. В противном случае создается двусмысленность
			; поскольку невозможно узнать, какой почтовый ящик извлекать при его запросе.
; callback=fromvm 	; Контекст для обратного вызова из
			; если его нет в списке, перезвон отправителю будет запрещен
; exitcontext=fromvm    ; Контекст, к которому нужно перейти при выходе пользователя, например * или 0
                        ; По умолчанию используется текущий контекст.
; review=yes 		; Разрешить отправителю просмотреть/перезаписать свое сообщение перед его сохранением [По умолчанию отключено
; operator=yes      ; Разрешить отправителю нажимать 0 до / после/во время отправки голосового сообщения
                    ; связаться с оператором.  Для этого параметра требуется расширение 'o' в том
                    ; же контексте (или в exitcontext, если задано), поскольку именно туда вам будет отправлен ключ
                    ; 0.  [По умолчанию выключено]
; envelope=no 		; Включите/выключите воспроизведение конверта перед воспроизведением сообщения. [ВКЛЮЧЕНО по умолчанию]
			; Это не влияет на опцию 3,3 в меню дополнительных параметров
; delete=yes		; После уведомления голосовая почта удаляется с сервера. [только для каждого почтового ящика]
			; Это предназначено для использования пользователями, которые хотят получить свои
			; голосовая почта ТОЛЬКО по электронной почте. Примечание: "удалить голосовую почту/deletevoicemail" предоставляется в качестве
			; эквивалентный вариант для настройки в реальном времени.
; alias=Bongo       ; Используйте эту дополнительную строку для сравнения при поиске
                    ; для поиска совпадения в приложении Directory.  Этот вариант
                    ; может быть указано несколько раз для указания дополнительных
                    ; строки [только для каждого почтового ящика]
; volgain=0.0		; Электронные письма с голосовой почтой также могут поступать в большом объеме
			; тихо, чтобы быть услышанным.  Этот параметр позволяет вам указать, как
			; много полезного можно добавить к сообщению при отправке голосовой почты.
			; ПРИМЕЧАНИЕ: для работы этой опции должен быть установлен sox.
; nextaftercmd=yes	; Переходит к следующему сообщению после нажатия 7 или 9, чтобы удалить / сохранить текущее сообщение.
; forcename=yes		; Заставляет нового пользователя записать свое имя.  Новый пользователь - это
			; определяется тем, что пароль совпадает с
			; номер почтового ящика.  Значение по умолчанию - "нет".
; forcegreetings=no	; Это то же самое, что и forcename, за исключением записи
			; приветствую вас.  Значение по умолчанию - "нет/no".
; hidefromdir=yes	; Скрыть этот почтовый ящик из каталога, созданного app_directory
                    ; Значение по умолчанию - "нет/no".
; tempgreetwarn=yes	; Напомните пользователю, что установлено его временное приветствие

; passwordlocation=spooldir
                    ; Обычно пароль голосовой почты (vmsecret) хранится в
                    ; этом файле конфигурации.  Установив этот параметр, вы можете
                    ; указать, где Asterisk должен считывать/записывать vmsecret.
                    ; Поддерживаемые опции:
                    ; голосовая почта.conf:
                    ; Это параметр по умолчанию.  Секрет считывается с
                    ; и записывается в voicemail.conf (или users.conf).
                    ; spooldir:
                    ; Секрет хранится в отдельном файле в личном кабинете пользователя.
                    ; каталог очереди голосовой почты в файле с именем secret.conf.
                    ; Пожалуйста, убедитесь, что обычные пользователи Linux не
                    ; разрешен доступ к каталогу spool Asterisk, поскольку
                    ; секрет хранится в виде обычного текста.  Если секрета нет
                    ; найденный в этом каталоге, будет использоваться пароль из
                    ; voicemail.conf (или users.conf).
                    ; Обратите внимание, что этот параметр не влияет на хранение паролей для
                    ; пользователи реального времени, которые все еще хранятся в режиме реального времени
                    ; серверная часть.
; messagewrap=no    ; Включить перенос следующего/последнего next/last сообщения на
                    ; первое (из последнего) и последнее (из первого) сообщение
                    ; Значение по умолчанию - "нет/no".
; minpassword=0 ; Установите минимальную длину пароля

; vm-login=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; подсказка, в которой говорится: "Почта комика. Почтовый ящик?"
; vm-newuser=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; подсказка, в которой говорится: "Добро пожаловать в Comedian Mail. Во-первых, я буду
			;     проведет вас через краткий процесс настройки."
; vm-password=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; запрос с надписью: "пароль"
; vm-newpassword=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; приглашение, в котором говорится: "Пожалуйста, введите ваш новый пароль, за которым следует
            ; клавиша pound".
; vm-passchanged=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; запрос с надписью: "Ваш пароль был изменен".
; vm-reenterpassword=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; приглашение, в котором говорится: "Пожалуйста, повторно введите свой пароль, за которым следует
            ; ключ pound".
; vm-mismatch=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; запрос, в котором говорится: "Пароли, которые вы ввели и повторно ввели
			; не совпало."
; vm-invalid-password=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; подсказка, в которой говорится: ...
; vm-pls-try-again=custom_sound
                        ; Настройте, какой звуковой файл используется вместо
                        ; приглашения по умолчанию с надписью "Пожалуйста, попробуйте еще раз".
; vm-prepend-timeout=custom_sound
                        ; Настроить, какой звуковой файл используется, когда пользователь
                        ; время ожидания при записи предварительного сообщения вместо этого истекает
                        ; из приглашения по умолчанию, в котором говорится "затем нажмите pound".
                        ; обратите внимание, что в настоящее время это будет следовать за vm-pls-try-again.
                        ; это поведение может быть изменено в ближайшем будущем.
; listen-control-forward-key=#	; Настройте клавишу для быстрой перемотки воспроизведения сообщения
; listen-control-reverse-key=*	; Настройте клавишу, которая перематывает воспроизведение сообщения
; listen-control-pause-key=0	; Настройте клавишу, которая приостанавливает/отменяет воспроизведение сообщения
; listen-control-restart-key=2	; Настройте клавишу, которая перезапускает воспроизведение сообщения
; listen-control-stop-key=13456789	; Настройте клавиши, прерывающие воспроизведение сообщений, вероятно, все клавиши, не заданные выше

; Максимальное количество сообщений, разрешенных в папке "Удаленные". Если установлено значение 0
; или нет, то удаленные сообщения перемещены не будут. Если ненулевое значение (максимум 9999), то до
; этого количества сообщений будет автоматически сохранено, когда они будут
; "удалены" на основе FIFO.
; по умолчанию значение выключено/off
; backupdeleted=100 ; резервное копирование удалено=100

; Размер очереди процессора задач Asterisk
; В сильно загруженной системе вам может потребоваться увеличить очередь процессора задач app_voicemail.
; Если размер очереди taskprocessor достиг высокого уровня загрузки, срабатывает предупреждение.
; Если оповещение установлено, то некоторые модули (например, pjsip) замедляют его создание
; до тех пор, пока оповещение не будет снято.
; Предупреждение снимается, когда размер очереди taskprocessor/процессора задач падает до низкого уровня очистки воды.
; Следующие параметры задают уровни очереди taskprocessor для этого модуля.
; tps_queue_high=500 ; Уровень срабатывания предупреждения Taskprocessor о высоком уровне воды.
; tps_queue_low=450 ; Уровень предупреждения Taskprocessor о низком уровне очистки воды.
			; Значение по умолчанию равно -1 для 90% высокого уровня воды.

[zonemessages]
; Пользователи могут находиться в разных часовых поясах или иметь разные
; анонсы сообщений для их вводного сообщения при входе
; система голосовой почты. Установите сообщение и часовой пояс, которые каждый пользователь
; слышит здесь. Установите пользователя в одну из этих зон с атрибутом tz=
; в поле параметров почтового ящика. Конечно, замена языка
; здесь все еще применяется, так что у вас может быть несколько деревьев каталогов, которые имеют
; альтернативный выбор языка.
;
; Посмотрите в /usr/share/zoneinfo/ названия часовых поясов.
; Посмотрите на страницу руководства по strftime для получения краткого руководства о том, как выполняется
; подстановка переменной ; в приведенных ниже значениях.
;
; Поддерживаемые значения:
; 'filename' имя файла звукового файла (одиночные галочки вокруг имени файла
; обязательно)
; ${VAR}        замена переменной
; A или a       День недели (суббота, воскресенье, ...)
; B или b или h   Название месяца (январь, февраль, ...)
; d или e       числовой день месяца (первый, второй, ..., тридцать первый)
; Y             Год
; I или l       Час, 12-часовые часы
; H             Час, 24-часовые часы (однозначные часы, которым предшествует "oh")
; k             Час, 24-часовые часы (однозначные часы, которым не предшествует "oh")
; M             Минута, при этом 00 произносится как "часы".
; N             Минута, где 00 произносится как "сто/hundred" (военное время США)
; P или p        AM 12 или PM/24
; Q             "today/сегодня", "yesterday/вчера" или ABdY
;               (*примечание: нестандартное значение strftime)
; q             "" (на сегодня), "вчера/yesterday", в будний день или в любое другое/ABdY время
;               (*примечание: нестандартное значение strftime)
; R             24-часовое время, включая минуты
;
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM



[default]
; Примечание: Остальная часть системы должна ссылаться на почтовые ящики, определенные здесь как mailbox@default.

1000 => 1000
1001 => 1001
1002 => 1002
1003 => 1003
1004 => 1004
1005 => 1005
1006 => 1006
1007 => 1007
1008 => 1008
1009 => 1009

2000 => 2000
2001 => 2001
2002 => 2002
2003 => 2003
2004 => 2004
2005 => 2005
2006 => 2006
2007 => 2007
2008 => 2008
2009 => 2009

1234 => 4242,Example Mailbox,root@localhost
;4200 => 9855,Mark Spencer,markster@linux-support.net,mypager@digium.com,attach=no|serveremail=myaddy@digium.com|fromstring=MySystem|tz=central|maxmsg=10
;4300 => 3456,Ben Rigas,ben@american-computer.net
;4310 => -5432,Sales,sales@marko.net
;4069 => 6522,Matt Brooks,matt@marko.net,,|tz=central|attach=yes|saycid=yes|dialout=fromvm|callback=fromvm|review=yes|operator=yes|envelope=yes|moveheard=yes|sayduration=yes|saydurationm=1
;4073 => 1099,Bianca Paige,bianca@biancapaige.com,,delete=1|emailsubject=You have a new voicemail.|emailbody=Click on the attachment to listen.|rip=2010-06-04
;4110 => 3443,Rob Flynn,rflynn@blueridge.net
;4235 => 1234,Jim Holmes,jim@astricon.ips,,Tz=european

;
; Псевдонимы допускают альтернативные ссылки на почтовые ящики.  Смотрите раздел "aliasescontext".
; параметр в разделе "общие/general".
;
[myaliases]
1234@devices => 1234@default
;6200@devices => 4200@default

;
; Почтовые ящики могут быть организованы в несколько контекстов для
; виртуального хостинга голосовой почты
;

[other]
; Вступление может быть настроено в зависимости от контекста
;directoryintro=dir-company2
1234 => 5678,Company2 User,root@localhost

; пример для нашей разветвленной компании acme
;
; Пит работает удаленно из Чикаго, поэтому мы настроим временные метки для него.
;
;[acme]
;111 => 7383,Pete,pete@acme-widgets.com,,tz=central
;112 => 6262,Nancy,nancy@acme-widgets.com
;

; ---------------------------------------------------------------------------
; Пользовательские настройки и переопределения IMAP.  Они применимы только в том случае, если Asterisk
; скомпилирован с поддержкой IMAP.
;
; imapuser=username                ; Имя пользователя IMAP почтового ящика для доступа
; imappassword=password            ; Пароль IMAP пользователя
; imapvmshareid=xxxx               ; Идентификатор общего почтового ящика, который будет использоваться для почтового ящика IMAP
                                   ; войдите в систему, в отличие от набранного почтового ящика
; imapfolder                       ; Переопределяет глобальный параметр imapfolder
; imapserver                       ; Переопределяет глобальный параметр imapserver
; imapport                         ; Переопределяет глобальный параметр imapport
; imapflags                        ; Переопределяет глобальный параметр imapflags

;
;[imapvm]
;4324 => 7764,Ellis Redding,red@buxton.us,,imapuser=eredding|imappassword=g3tbusy|imapfolder=notinbox
;4325 => 2392,Andrew Dufresne,andy@dufresne.info,,imapuser=adufresne|imappassword=rockh@mmer

количество слов: 1834
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 802
Стаж: 5 лет
Откуда: Вологодская область
Поблагодарили: 32 раза
Контактная информация:

Установка на Wi Fi маршрутизатор Keenetic ОС Entware Asterisk

Сообщение Артём Мамзиков »

/opt/etc/asterisk/voicemail.default

Код: Выделить всё

;
; Настройка голосовой почты
;

; ********* УВЕДОМЛЕНИЕ ************************************************************
;
; ПРИМЕЧАНИЕ: Asterisk должен отредактировать этот файл, чтобы изменить пароль пользователя. 
; В настоящее время это не работает с директивой "#include <file>" для
; файлов конфигурации Asterisk, а также при использовании статической конфигурации в реальном времени.
; Не используйте их с этим конфигурационным файлом.
;
; ПРИМЕЧАНИЕ: На почтовые ящики, определенные app_voicemail, ДОЛЖНЫ ссылаться остальные
; системы как mailbox@context.  Остальная часть системы больше не может добавлять
; @default к идентификаторам почтовых ящиков для app_voicemail, которые не указывают
; контекст.  Это формат идентификатора почтового
; ящика, который должен интерпретироваться только app_voicemail.
;
; ********* УВЕДОМЛЕНИЕ ************************************************************

[general]
; Форматы для записи голосовой почты.  Обратите внимание, что при использовании хранилища IMAP для
; голосовой почты будет использоваться только первый указанный формат.
;format=g723sf|wav49|wav
format=wav49|gsm|wav
;
; ПРЕДУПРЕЖДЕНИЕ:
; Если вы изменяете список форматов, в которые вы записываете голосовую почту
; если у вас есть почтовые ящики, содержащие сообщения, вы обязательно должны
; вручную просмотреть эти почтовые ящики и преобразовать / удалить / добавить convert/delete/add
; файлы сообщений таким образом, чтобы они выглядели так, как будто они были сохранены с использованием
; вашего нового списка форматов. Если вы этого не сделаете,
; с вашими пользователями могут произойти очень неприятные вещи, пока они извлекают
; свою голосовую почту и манипулируют ею.
;
; Другими словами: не меняйте список форматов в производственной системе
; если только вы не уверены, что знаете, что делаете, и
; готовы к последствиям.
;
; От кого, по-видимому, должно прийти уведомление по электронной почте
serveremail=asterisk
;serveremail=asterisk@linux-support.net
; Должно ли электронное письмо содержать голосовое сообщение в качестве вложения
attach=yes
; Максимальное количество сообщений в папке.  Если не указано, используется значение по умолчанию
; (100).  Максимальное значение для этого параметра равно 9999.  Если установлено значение 0, почтовый ящик a
; будет доступен только для приветствий.
;maxmsg=100
; Максимальная длина сообщения голосовой почты в секундах
;maxsecs=180
; Минимальная продолжительность сообщения голосовой почты в секундах для сохранения сообщения
; Значение по умолчанию не равно минимуму.
;minsecs=3
; Максимальная продолжительность приветствий в секундах
;maxgreet=60
; Сколько миллисекунд нужно пропустить вперед/ назад при перемотке назад/ff при воспроизведении сообщения
skipms=3000
; How many seconds of silence before we end the recording
maxsilence=10
; Порог тишины (то, что мы считаем тишиной: чем ниже, тем чувствительнее)
silencethreshold=128
; Максимальное количество неудачных попыток входа в систему
maxlogins=3
;
; Автоматически перемещать прослушанные сообщения в папку "Old".  По умолчанию включено.
;moveheard=yes
;
; Переслать срочное сообщение как срочное сообщение.  Значение по умолчанию - no so
; отправитель может указать срочность на конверте пересылаемого сообщения.
;forward_urgent_auto=no
;
; Пользовательский контекст - это место, где регистрируются записи из users.conf.  Значение
; по умолчанию - 'default'
;
;userscontext=default
;
; Псевдонимы/ позволяют ссылаться на почтовый ящик с помощью псевдонима.  Псевдонимы
; указаны в специальном контексте, названном здесь.  Значения по умолчанию не существует.
;aliasescontext=myaliases
;
; Если вам нужно, чтобы внешняя программа, т.е. /usr/bin/myapp
; вызывалась, когда голосовое сообщение оставлено, доставлено или ваш голосовой почтовый ящик
; отмечен, раскомментируйте это.
;externnotify=/usr/bin/myapp

; Если вы также хотите включить уведомление SMDI, установите для параметра smdienable значение yes.
; Вам также нужно будет убедиться, что для smdiport установлен допустимый порт, как указано в
; smdi.conf.
;smdienable=yes
;smdiport=/dev/ttyS0

; Если вам нужно, чтобы внешняя программа, например /usr/bin/myapp
; вызывалась при смене пароля голосовой почты, раскомментируйте это. Аргументы,
; передаваемые приложению, следующие: <контекст> <почтовый ящик> <новый пароль>
; Примечание: Если этот параметр установлен, пароль НЕ будет изменен в voicemail.conf
; Если вы хотите также изменить пароль в voicemail.conf, используйте
; вместо этого параметр externpassnotify, приведенный ниже.
;externpass=/usr/bin/myapp
;externpassnotify=/usr/bin/myapp

; Если вы хотите, чтобы внешняя программа вызывалась, когда пользователь меняет
; пароль голосовой почты, с целью проверки нового пароля,
; тогда используйте эту опцию.  Скрипт может решить, использовать новый пароль или нет
; соответствует минимальным требованиям к надежности пароля перед запуском приложения голосовой почты
; принимает пароль.  Если скрипт решит, что пароль неприемлем,
; пользователю будет сообщено, что новый пароль не соответствует минимальным
; требованиям к паролю, и ему будет предложено ввести другой пароль.
;
; Аргументами, передаваемыми этому скрипту, являются <почтовый ящик> <контекст> <старый pw> <новый pw>.
;
; Скрипт должен вывести "VALID" в стандартный вывод, чтобы указать, что новый пароль
; приемлем.  Если пароль считается слишком слабым, скрипт должен вывести
; "INVALID" в стандартный вывод.
;
; В каталоге contrib/scripts/ есть пример скрипта, voicemailpwcheck.py ,
; который реализует некоторую базовую проверку пароля и может быть использован в качестве отправной точки
; для использования с этой опцией.
;
;externpasscheck=/usr/local/bin/voicemailpwcheck.py

; Для каталога вы можете переопределить вводный файл, если хотите
;directoryintro=dir-intro
; Здесь можно указать набор символов для сообщений голосовой почты
; по умолчанию: ISO-8859-1
;charset=UTF-8
; Номер дескриптора функции ADSI для загрузки в
;adsifdn=0000000F
; Код защитного замка ADSI
;adsisec=9BDBF7AC
; Номер версии приложения голосовой почты ADSI.
;adsiver=1
; Пропустите строку "[PBX]:" из заголовка сообщения
;pbxskip=yes
; Измените From: string
;fromstring=The Asterisk PBX
; Разрешает поиск записей для пересылки/компоновки из каталога
;usedirectory=yes
; Голосовая почта может быть сохранена в базе данных с помощью драйвера ODBC.
; Значение odbcstorage - это настроенное подключение к базе данных
; in res_odbc.conf.
;odbcstorage=asterisk
; Таблицей по умолчанию для хранилища голосовой почты ODBC являются голосовые сообщения.
;odbctable=voicemessages
;
; Измените переменные from, body и/или subject:
;     VM_NAME, VM_DUR, VM_MSGNUM, VM_MAILBOX, VM_CALLERID, VM_CIDNUM,
;     VM_CIDNAME, VM_DATE
; Кроме того, в переадресованных сообщениях у вас есть переменные:
;     ORIG_VM_CALLERID, ORIG_VM_CIDNUM, ORIG_VM_CIDNAME, ORIG_VM_DATE
; Вы можете выбрать одну из двух переменных, используя функции диалплана, например
;     ${IF(${ISNULL(${ORIG_VM_DATE})}?${VM_DATE}:${ORIG_VM_DATE})}
;
; Примечание: Строка конфигурации emailbody может содержать не более 8190 символов из-за
; ограничения в подсистеме конфигурации Asterisk.  При компиляции с помощью
; LOW_MEMORY ограничение составляет 510 символов.
;emailsubject=[PBX]: Новое сообщение ${VM_MSGNUM} в почтовом ящике ${VM_MAILBOX}
; Следующее определение очень близко к значению по умолчанию, но по умолчанию отображается
; просто CIDNAME, если оно не равно null, в противном случае просто CIDNUM или "неизвестный
; вызывающий абонент", если они оба равны null.
;emailbody=Уважаемый ${VM_NAME}:\n\n\я просто хотел сообщить вам, что вам только что оставили длинное сообщение ${VM_DUR} (номер ${VM_MSGNUM}) в почтовом ящике ${VM_MAILBOX} от ${VM_CALLERID}, на ${VM_DATE}, так что вы могли бы\ хочу проверить это, когда у тебя будет возможность.  Спасибо!\n\n\t\t\t\t--Asterisk\n
;
; Примечание: ${IF()} удаляет интервал в начале и конце значений true и false,
; поэтому новая строка не может быть помещена ни в одно из местоположений.  Слово "so"
; следовательно, дублируется, чтобы новая строка была правильно интерпретирована.
;emailbody=Уважаемый ${VM_NAME}:\n\n\t просто хотел сообщить вам, что вы только что получили ${IF($["${VM_CIDNUM}" = "${ORIG_VM_CIDNUM}"]?оставлено:переадресовано)} длинное сообщение ${VM_DUR} (номер ${VM_MSGNUM})\n в почтовом ящике ${VM_MAILBOX} из ${VM_CALLERID}, на ${VM_DATE},\n${IF($["${VM_CIDNUM}" = "${ORIG_VM_CIDNUM}"]?итак:(первоначально отправлено ${ORIG_VM_CALLERID} на ${ORIG_VM_DATE})\nso)} возможно, вы захотите проверить это, когда у вас будет возможность.  Спасибо!\n\n\t\t\t\t--Asterisk\n
;
; Вы также можете изменить пейджер с помощью: string, тела пейджера и/или темы.
; Здесь также могут быть использованы указанные выше переменные
;pagerfromstring=The Asterisk PBX
;pagersubject=New VM
;pagerbody=Новое ${VM_DUR} длинное сообщение в поле ${VM_MAILBOX}\n из ${VM_CALLERID}, на ${VM_DATE}
;
; Установите формат даты для исходящих сообщений. Допустимые аргументы можно найти на
; справочной странице ; strftime(3)
;
; По умолчанию
emaildateformat=%A, %B %d, %Y at %r
; формат даты 24
;emaildateformat=%A, %d %B %Y at %H:%M:%S
;
; По умолчанию для использования пейджера
pagerdateformat=%A, %B %d, %Y at %r
; Короткий 24-часовой формат даты для использования на пейджере
;pagerdateformat=%T %D
;
; Используя параметр mailcmd, вы можете указать, какая команда вызывается для
; исходящей электронной почты. Значение по умолчанию показано ниже.
;
;mailcmd=/usr/sbin/sendmail -t
;
;pollmailboxes=no    ; Если почтовые ящики изменяются где-либо за пределами app_voicemail,
;                    ; то эта опция должна быть включена для работы MWI.  Это
;                    ; позволяет опрашивать почтовые ящики на предмет изменений.  Обычно ожидается,
;                    ; что изменения будут внесены только тогда, когда кто-то позвонил в
;                    ; одно из приложений голосовой почты.
;                    ; Примерами ситуаций, в которых потребуется эта опция, являются
;                    ; веб-интерфейсы для голосовой почты или почтовый клиент в случае
;                    ; использования хранилища IMAP.
;                    ; По умолчанию: нет
;pollfreq=30         ; Если включена опция "опрос почтовых ящиков/pollmailboxes", эта опция
;                    ; устанавливает частоту опроса.  Значение по умолчанию - один раз в
;                    ; 30 секунд.
;

; -----------------------------------------------------------------------------
; Только параметры конфигурации IMAP
; Эти параметры применимы только в том случае, если Asterisk скомпилирован с поддержкой IMAP.
;
;imapgreetings=no        ; Если используется хранилище IMAP, укажите, следует ли отправлять приветствия голосовой почтой
                         ; должно храниться через IMAP. Если нет, то приветствия сохраняются
                         ; как если бы хранилище IMAP не было включено.
;greetingsfolder=INBOX   ; Если imapgreetings=yes, то укажите, в какой папке хранить
                         ; ваши приветствия. Если вы не указали папку, то почтовый ящик
                         ; будет использоваться
;imapparentfolder=INBOX  ; Некоторые реализации сервера IMAP хранят папки в папке "Входящие"
                         ; вместо использования папки верхнего уровня (напр. ПОЧТОВЫЙ ЯЩИК/Друзья).  В
                         ; этом случае пользователь imapparentfolder задает родительскую папку. Для
                         ; например, Cyrus IMAP НЕ использует INBOX в качестве родительского. По умолчанию
                         ; заключается в том, чтобы родительская папка не была установлена.
;imapserver=localhost    ; Адрес сервера IMAP
;imapport=143            ; Порт сервера IMAP
;imapflags=ssl           ; Необязательные флаги для передачи на сервер IMAP в почтовом ящике IMAP
                         ; имя.  Например, установив значение "ssl", вы включите OpenSSL
                         ; шифрование, предполагая, что библиотеки IMAP были скомпилированы с использованием
                         ; Поддержка OpenSSL.
;imapfolder=INBOX        ; Папка, в которой будут храниться сообщения голосовой почты по протоколу IMAP
                         ; сервер.  По умолчанию они хранятся в папке "Входящие".
;authuser=user           ; Главный пользователь, который будет использоваться для подключения к серверу IMAP, если
                         ; сервер настроен для одного пользователя, имеющего доступ ко
                         ; всем почтовым ящикам
;authpassword=password   ; Пароль для авторизатора, если он используется
;imapopentimeout=60      ; Время ожидания открытия TCP (в секундах)
;imapclosetimeout=60     ; Время ожидания закрытия TCP (в секундах)
;imapreadtimeout=60      ; Время ожидания чтения TCP (в секундах)
;imapwritetimeout=60     ; Время ожидания записи TCP (в секундах)
;imap_poll_logout=no     ; Если pollmailboxes=yes, то укажите, нужно ли
                         ; отключаться от сервера IMAP после опроса.
                         ; По умолчанию: нет

; -----------------------------------------------------------------------------

; Каждый почтовый ящик указан в виде <почтовый ящик>=<пароль>,<имя>,<электронная почта>,<pager_email>,<параметры>
; Если указан адрес электронной почты, то при получении голосовой почты будет отправлено сообщение
; на указанный почтовый ящик для каждого указанного адреса (разделенного символом |, напр. alice@foo.com/bob@foo.com ).
; Если указан пейджер, то сообщение будет отправлено и туда. Если пароль
; имеет префикс '-', то он считается неизменяемым.
;
; Примером расширенных опций является расширение 4069
; ПРИМЕЧАНИЕ: Все параметры могут быть выражены глобально в разделе общие и
; переопределены в настройках для каждого почтового ящика, если не указано иное.
;
; tz=central 		; Часовой пояс из приведенных ниже сообщений zonemessages. Неуместно, если envelope=no.
; locale=de_DE.UTF-8	; установите языковой стандарт для генерации строк даты/времени (сделайте
			; убедитесь, что языковые стандарты установлены в вашей операционной системе; например
			; в Debian Linux вы можете использовать "dpkg-перенастроить локали").
			; Если вы используете языки UTF-8, обязательно установите параметр "charset".
			; и в UTF-8 тоже. Если вы смешиваете разные языки для разных пользователей
			; вам следует избегать слов в спецификации emaildateformat, например:
			; emaildateformat=%A, %d %B %Y, %H:%M:%S
; attach=yes 		; Прикрепите голосовое сообщение к уведомлению по электронной почте *NOT* к сообщению на пейджер
; attachfmt=wav49	; Какой формат прикрепить к электронному письму.  Обычно это
                    ; первый формат, указанный в параметре format выше, но этот
                    ; параметр позволяет настроить формат, отправляемый в определенные почтовые ящики.
			; Полезно, если пользователям Windows нужен wav49, но пользователям Linux нужен gsm.
			; [только для каждого почтового ящика] [per-mailbox only]
; saycid=yes 		; Произнесите информацию об идентификаторе вызывающего абонента перед сообщением. Если не описано,
            ; или установлено значение "нет", оно будет в конверте. Когда включено, если записанный файл
			; с тем же именем , что и идентификатор вызывающего абонента , существует в
			; <astspooldir>/recordings/callerids, тогда этот файл будет воспроизводиться как имя
			; вместо того, чтобы произносить каждую цифру как номер телефона.
; cidinternalcontexts=intern	; Внутренний контекст для воспроизведения имени вместо
                                ; добавочных цифр при произнесении идентификатора вызывающего абонента.
; sayduration=no 	; Включите/выключите on/off информацию о продолжительности перед сообщением. [ВКЛЮЧЕНО по умолчанию]
; saydurationm=2        ; Укажите минимальную продолжительность произнесения. Значение по умолчанию - 2 минуты
; dialout=fromvm ; Контекст для набора номера из [опция 4 из расширенного меню почтового ящика].
                 ; Если не указано, опция 4 не будет указана в списке, и набор завершится
                 ; из VoiceMailMain() не будет разрешен.
sendvoicemail=yes ; Разрешить пользователю создавать и отправлять голосовое сообщение, находясь внутри
                  ; VoiceMailMain() [опция 5 из расширенного меню почтового ящика].
                  ; Если установлено значение "нет", опция 5 не будет указана в списке.
; searchcontexts=yes	; Текущее поведение по умолчанию заключается в поиске только по контексту по умолчанию
			; если таковой не указан.  Прежнее поведение заключалось в поиске по всем контекстам.
			; Этот параметр восстанавливает старое поведение [ПО УМОЛЧАНИЮ=нет] [DEFAULT=no]
			; Примечание: Если у вас включена эта опция, то вам потребуется иметь
			; уникальные имена почтовых ящиков во всех контекстах. В противном случае создается двусмысленность
			; поскольку невозможно узнать, какой почтовый ящик извлекать при его запросе.
; callback=fromvm 	; Контекст для обратного вызова из
			; если его нет в списке, перезвон отправителю будет запрещен
; exitcontext=fromvm    ; Контекст, к которому нужно перейти при выходе пользователя, например * или 0
                        ; По умолчанию используется текущий контекст.
; review=yes 		; Разрешить отправителю просмотреть/перезаписать свое сообщение перед его сохранением [По умолчанию отключено
; operator=yes      ; Разрешить отправителю нажимать 0 до / после/во время отправки голосового сообщения
                    ; связаться с оператором.  Для этого параметра требуется расширение 'o' в том
                    ; же контексте (или в exitcontext, если задано), поскольку именно туда вам будет отправлен ключ
                    ; 0.  [По умолчанию выключено]
; envelope=no 		; Включите/выключите воспроизведение конверта перед воспроизведением сообщения. [ВКЛЮЧЕНО по умолчанию]
			; Это не влияет на опцию 3,3 в меню дополнительных параметров
; delete=yes		; После уведомления голосовая почта удаляется с сервера. [только для каждого почтового ящика]
			; Это предназначено для использования пользователями, которые хотят получить свои
			; голосовая почта ТОЛЬКО по электронной почте. Примечание: "удалить голосовую почту/deletevoicemail" предоставляется в качестве
			; эквивалентный вариант для настройки в реальном времени.
; alias=Bongo       ; Используйте эту дополнительную строку для сравнения при поиске
                    ; для поиска совпадения в приложении Directory.  Этот вариант
                    ; может быть указано несколько раз для указания дополнительных
                    ; строки [только для каждого почтового ящика]
; volgain=0.0		; Электронные письма с голосовой почтой также могут поступать в большом объеме
			; тихо, чтобы быть услышанным.  Этот параметр позволяет вам указать, как
			; много полезного можно добавить к сообщению при отправке голосовой почты.
			; ПРИМЕЧАНИЕ: для работы этой опции должен быть установлен sox.
; nextaftercmd=yes	; Переходит к следующему сообщению после нажатия 7 или 9, чтобы удалить / сохранить текущее сообщение.
; forcename=yes		; Заставляет нового пользователя записать свое имя.  Новый пользователь - это
			; определяется тем, что пароль совпадает с
			; номер почтового ящика.  Значение по умолчанию - "нет".
; forcegreetings=no	; Это то же самое, что и forcename, за исключением записи
			; приветствую вас.  Значение по умолчанию - "нет/no".
; hidefromdir=yes	; Скрыть этот почтовый ящик из каталога, созданного app_directory
                    ; Значение по умолчанию - "нет/no".
; tempgreetwarn=yes	; Напомните пользователю, что установлено его временное приветствие

; passwordlocation=spooldir
                    ; Обычно пароль голосовой почты (vmsecret) хранится в
                    ; этом файле конфигурации.  Установив этот параметр, вы можете
                    ; указать, где Asterisk должен считывать/записывать vmsecret.
                    ; Поддерживаемые опции:
                    ; голосовая почта.conf:
                    ; Это параметр по умолчанию.  Секрет считывается с
                    ; и записывается в voicemail.conf (или users.conf).
                    ; spooldir:
                    ; Секрет хранится в отдельном файле в личном кабинете пользователя.
                    ; каталог очереди голосовой почты в файле с именем secret.conf.
                    ; Пожалуйста, убедитесь, что обычные пользователи Linux не
                    ; разрешен доступ к каталогу spool Asterisk, поскольку
                    ; секрет хранится в виде обычного текста.  Если секрета нет
                    ; найденный в этом каталоге, будет использоваться пароль из
                    ; voicemail.conf (или users.conf).
                    ; Обратите внимание, что этот параметр не влияет на хранение паролей для
                    ; пользователи реального времени, которые все еще хранятся в режиме реального времени
                    ; серверная часть.
; messagewrap=no    ; Включить перенос следующего/последнего next/last сообщения на
                    ; первое (из последнего) и последнее (из первого) сообщение
                    ; Значение по умолчанию - "нет/no".
; minpassword=0 ; Установите минимальную длину пароля

; vm-login=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; подсказка, в которой говорится: "Почта комика. Почтовый ящик?"
; vm-newuser=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; подсказка, в которой говорится: "Добро пожаловать в Comedian Mail. Во-первых, я буду
			;     проведет вас через краткий процесс настройки."
; vm-password=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; запрос с надписью: "пароль"
; vm-newpassword=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; приглашение, в котором говорится: "Пожалуйста, введите ваш новый пароль, за которым следует
            ; клавиша pound".
; vm-passchanged=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; запрос с надписью: "Ваш пароль был изменен".
; vm-reenterpassword=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; приглашение, в котором говорится: "Пожалуйста, повторно введите свой пароль, за которым следует
            ; ключ pound".
; vm-mismatch=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; запрос, в котором говорится: "Пароли, которые вы ввели и повторно ввели
			; не совпало."
; vm-invalid-password=custom_sound
			; Настройте, какой звуковой файл используется вместо используемого по умолчанию
			; подсказка, в которой говорится: ...
; vm-pls-try-again=custom_sound
                        ; Настройте, какой звуковой файл используется вместо
                        ; приглашения по умолчанию с надписью "Пожалуйста, попробуйте еще раз".
; vm-prepend-timeout=custom_sound
                        ; Настроить, какой звуковой файл используется, когда пользователь
                        ; время ожидания при записи предварительного сообщения вместо этого истекает
                        ; из приглашения по умолчанию, в котором говорится "затем нажмите pound".
                        ; обратите внимание, что в настоящее время это будет следовать за vm-pls-try-again.
                        ; это поведение может быть изменено в ближайшем будущем.
; listen-control-forward-key=#	; Настройте клавишу для быстрой перемотки воспроизведения сообщения
; listen-control-reverse-key=*	; Настройте клавишу, которая перематывает воспроизведение сообщения
; listen-control-pause-key=0	; Настройте клавишу, которая приостанавливает/отменяет воспроизведение сообщения
; listen-control-restart-key=2	; Настройте клавишу, которая перезапускает воспроизведение сообщения
; listen-control-stop-key=13456789	; Настройте клавиши, прерывающие воспроизведение сообщений, вероятно, все клавиши, не заданные выше

; Максимальное количество сообщений, разрешенных в папке "Удаленные". Если установлено значение 0
; или нет, то удаленные сообщения перемещены не будут. Если ненулевое значение (максимум 9999), то до
; этого количества сообщений будет автоматически сохранено, когда они будут
; "удалены" на основе FIFO.
; по умолчанию значение выключено/off
; backupdeleted=100 ; резервное копирование удалено=100

; Размер очереди процессора задач Asterisk
; В сильно загруженной системе вам может потребоваться увеличить очередь процессора задач app_voicemail.
; Если размер очереди taskprocessor достиг высокого уровня загрузки, срабатывает предупреждение.
; Если оповещение установлено, то некоторые модули (например, pjsip) замедляют его создание
; до тех пор, пока оповещение не будет снято.
; Предупреждение снимается, когда размер очереди taskprocessor/процессора задач падает до низкого уровня очистки воды.
; Следующие параметры задают уровни очереди taskprocessor для этого модуля.
; tps_queue_high=500 ; Уровень срабатывания предупреждения Taskprocessor о высоком уровне воды.
; tps_queue_low=450 ; Уровень предупреждения Taskprocessor о низком уровне очистки воды.
			; Значение по умолчанию равно -1 для 90% высокого уровня воды.

[zonemessages]
; Пользователи могут находиться в разных часовых поясах или иметь разные
; анонсы сообщений для их вводного сообщения при входе
; система голосовой почты. Установите сообщение и часовой пояс, которые каждый пользователь
; слышит здесь. Установите пользователя в одну из этих зон с атрибутом tz=
; в поле параметров почтового ящика. Конечно, замена языка
; здесь все еще применяется, так что у вас может быть несколько деревьев каталогов, которые имеют
; альтернативный выбор языка.
;
; Посмотрите в /usr/share/zoneinfo/ названия часовых поясов.
; Посмотрите на страницу руководства по strftime для получения краткого руководства о том, как выполняется
; подстановка переменной ; в приведенных ниже значениях.
;
; Поддерживаемые значения:
; 'filename' имя файла звукового файла (одиночные галочки вокруг имени файла
; обязательно)
; ${VAR}        замена переменной
; A или a       День недели (суббота, воскресенье, ...)
; B или b или h   Название месяца (январь, февраль, ...)
; d или e       числовой день месяца (первый, второй, ..., тридцать первый)
; Y             Год
; I или l       Час, 12-часовые часы
; H             Час, 24-часовые часы (однозначные часы, которым предшествует "oh")
; k             Час, 24-часовые часы (однозначные часы, которым не предшествует "oh")
; M             Минута, при этом 00 произносится как "часы".
; N             Минута, где 00 произносится как "сто/hundred" (военное время США)
; P или p        AM 12 или PM/24
; Q             "today/сегодня", "yesterday/вчера" или ABdY
;               (*примечание: нестандартное значение strftime)
; q             "" (на сегодня), "вчера/yesterday", в будний день или в любое другое/ABdY время
;               (*примечание: нестандартное значение strftime)
; R             24-часовое время, включая минуты
;
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM



[default]
; Примечание: Остальная часть системы должна ссылаться на почтовые ящики, определенные здесь как mailbox@default.

1234 => 4242,Example Mailbox,root@localhost
;4200 => 9855,Mark Spencer,markster@linux-support.net,mypager@digium.com,attach=no|serveremail=myaddy@digium.com|fromstring=MySystem|tz=central|maxmsg=10
;4300 => 3456,Ben Rigas,ben@american-computer.net
;4310 => -5432,Sales,sales@marko.net
;4069 => 6522,Matt Brooks,matt@marko.net,,|tz=central|attach=yes|saycid=yes|dialout=fromvm|callback=fromvm|review=yes|operator=yes|envelope=yes|moveheard=yes|sayduration=yes|saydurationm=1
;4073 => 1099,Bianca Paige,bianca@biancapaige.com,,delete=1|emailsubject=You have a new voicemail.|emailbody=Click on the attachment to listen.|rip=2010-06-04
;4110 => 3443,Rob Flynn,rflynn@blueridge.net
;4235 => 1234,Jim Holmes,jim@astricon.ips,,Tz=european

;
; Псевдонимы допускают альтернативные ссылки на почтовые ящики.  Смотрите раздел "aliasescontext".
; параметр в разделе "общие/general".
;
[myaliases]
1234@devices => 1234@default
;6200@devices => 4200@default

;
; Почтовые ящики могут быть организованы в несколько контекстов для
; виртуального хостинга голосовой почты
;

[other]
; Вступление может быть настроено в зависимости от контекста
;directoryintro=dir-company2
1234 => 5678,Company2 User,root@localhost

; пример для нашей разветвленной компании acme
;
; Пит работает удаленно из Чикаго, поэтому мы настроим временные метки для него.
;
;[acme]
;111 => 7383,Pete,pete@acme-widgets.com,,tz=central
;112 => 6262,Nancy,nancy@acme-widgets.com
;

; ---------------------------------------------------------------------------
; Пользовательские настройки и переопределения IMAP.  Они применимы только в том случае, если Asterisk
; скомпилирован с поддержкой IMAP.
;
; imapuser=username                ; Имя пользователя IMAP почтового ящика для доступа
; imappassword=password            ; Пароль IMAP пользователя
; imapvmshareid=xxxx               ; Идентификатор общего почтового ящика, который будет использоваться для почтового ящика IMAP
                                   ; войдите в систему, в отличие от набранного почтового ящика
; imapfolder                       ; Переопределяет глобальный параметр imapfolder
; imapserver                       ; Переопределяет глобальный параметр imapserver
; imapport                         ; Переопределяет глобальный параметр imapport
; imapflags                        ; Переопределяет глобальный параметр imapflags

;
;[imapvm]
;4324 => 7764,Ellis Redding,red@buxton.us,,imapuser=eredding|imappassword=g3tbusy|imapfolder=notinbox
;4325 => 2392,Andrew Dufresne,andy@dufresne.info,,imapuser=adufresne|imappassword=rockh@mmer


/opt/etc/asterisk/scripts/callback-802.sh

Код: Выделить всё

#!/bin/sh
NUMBER=$1

sleep 10

echo ${NUMBER}

echo "Channel: PJSIP/${NUMBER}
CallerID: CallBack <1234567890>
MaxRetries: 0
RetryTime: 5
WaitTime: 30
Account: 802
Context: echo-test
Extension: 802
Priority: 1
Application: Playback
Data: /opt/share/asterisk/sounds/moh/manolo_camp-morning_coffee
AlwaysDelete: Yes" >/opt/var/spool/asterisk/outgoing/${NUMBER}

exit 0
/opt/etc/asterisk/keys/scripts/ast_tls_cert

Код: Выделить всё

#!/bin/sh
DEFAULT_ORG="MyPBX"
DEFAULT_CA_CN="MyPBX"
DEFAULT_CLIENT_CN="ipphone"
DEFAULT_SERVER_CN=`hostname -f`

# аргументы
# $1 "ca", если мы хотим сгенерировать сертификат CA
# $2 альтернативное имя конфигурационного файла (для центра сертификации)
# $3 альтернативное распространенное имя
# $4 альтернативное название организации
create_config () {
        if [ "$1" = "ca" ]
        then
castring="
[ext]
basicConstraints=CA:TRUE"
        fi

cat > ${2:-"${CONFIG_FILE}"} << EOF
[req]
distinguished_name = req_distinguished_name
prompt = no

[req_distinguished_name]
CN=${3:-"${COMMON_NAME}"}
O=${4:-"${ORG_NAME}"}
${castring}
EOF
}

create_ca () {
        echo "Создание ключа центра сертификации ${CAKEY}"
        openssl genrsa -des3 -out ${CAKEY} 4096 > /dev/null
        if [ $? -ne 0 ];
        then
                echo "Неудачно"
                exit 1
        fi
        echo "Создание сертификата центра сертификации ${CACERT}"
        openssl req -new -config ${CACFG} -x509 -days 3650 -key ${CAKEY} -out ${CACERT} > /dev/null
        if [ $? -ne 0 ];
        then
                echo "Неудачно"
                exit 1
        fi
##############################################################
        echo "Объединение ключа и ЭЛТ в ca.pem"
        cat ${CACERT} > ${CAPEM}
        cat ${CAKEY} >> ${CAPEM}
##############################################################	
}

create_cert () {
        local base=${OUTPUT_DIR}/${OUTPUT_BASE}
        echo "Создание сертификата ${base}.key"
        openssl genrsa -out ${base}.key 1024 > /dev/null
        if [ $? -ne 0 ];
        then
                echo "Неудачно"
                exit 1
        fi
        echo "Создание запроса на подпись ${base}.csr"
        openssl req -batch -new -config ${CONFIG_FILE} -key ${base}.key -out ${base}.csr > /dev/null
        if [ $? -ne 0 ];
        then
                echo "Неудачно"
                exit 1
        fi
        echo "Создание сертификата ${base}.crt"
        openssl x509 -req -days 3650 -in ${base}.csr -CA ${CACERT} -CAkey ${CAKEY} -set_serial 01 -out ${base}.crt > /dev/null
        if [ $? -ne 0 ];
        then
                echo "Неудачно"
                exit 1
        fi
        echo "Объединение ключа и ЭЛТ в ${base}.pem"
        cat ${base}.key > ${base}.pem
        cat ${base}.crt >> ${base}.pem
}

usage () {
cat << EOF
Этот скрипт полезен для быстрого создания самозаверяющих сертификатов центра сертификации, сервера и клиента
для использования с Asterisk. По-прежнему рекомендуется получать
сертификаты от признанного центра сертификации и развивать
понимание того, как работают SSL-сертификаты. Настоящая безопасность - это тяжелая работа.

опции:
  -h Показать это сообщение
  -m Тип сертификата "клиент" или "сервер". По умолчанию используется значение server.
  -f имя файла конфигурации (формат файла конфигурации openssl)
  -c CA имя файла сертификата CA (создает новый сертификат/ключ CA как ca.crt/ca.key, если он не передан)
  -k CA имя файла ключа
  -C Общее имя (поле сертификата)
        Это должно быть полное доменное имя или IP-адрес для
        клиент или сервер. Убедитесь, что ваши сертификаты имеют уникальные общие
        имена.
  -O Название организации (поле сертификата)
        Информационная строка (название компании)
  -o База выходных имен файлов (по умолчанию используется звездочка)
  -d общий выходной каталог (по умолчанию используется текущий каталог)

Пример:

Чтобы создать центр сертификации и сервер (pbx.mycompany.com ) сертификат с выводом в /tmp:
  ast_tls_cert -C pbx.mycompany.com -O "Моя компания" -d /tmp

Это создаст сертификат CA и ключ, а также asterisk.pem и два
файлы, из которых он создан: asterisk.crt и asterisk.key. Скопируйте asterisk.pem
и ca.crt куда-нибудь (например, в /etc/asterisk) и установите tlscertfile=/etc/asterisk.pem
и tlscafile=/etc/ca.crt. Поскольку это самозаверяющий ключ, многие устройства
потребуют от вас импортировать файл ca.crt в качестве доверенного сертификата.

Чтобы создать клиентский сертификат, используя сертификат CA, созданный в приведенном выше примере:
  ast_tls_cert -m клиент -c /tmp/ca.crt -k /tmp/ca.ключ -C phone1.mycompany.com \\
    -O "Моя компания" -d /tmp -o joe_user

Это создаст client.crt/key/pem в /tmp. Используйте это, если ваше устройство поддерживает
клиентский сертификат. Убедитесь, что у вас есть файл ca.crt, настроенный как
tlscafile в необходимых конфигурациях Asterisk. Сделайте резервные копии всего .файлы ключей
на случай, если они понадобятся вам позже.
EOF
}

if ! type openssl >/dev/null 2>&1
then
        echo "Этот скрипт требует, чтобы openssl находился в пути"
        exit 1
fi

OUTPUT_BASE=asterisk # Наше базовое имя сертификата по умолчанию
CERT_MODE=server
ORG_NAME=${DEFAULT_ORG}

while getopts "hf:c:k:o:d:m:C:O:" OPTION
do
        case ${OPTION} in
                h)
                        usage
                        exit 1
                        ;;
                f)
                        CONFIG_FILE=${OPTARG}
                        ;;
                c)
                        CACERT=${OPTARG}
                        ;;
                k)
                        CAKEY=${OPTARG}
                        ;;
                o)
                        OUTPUT_BASE=${OPTARG}
                        ;;
                d)
                        OUTPUT_DIR=${OPTARG}
                        ;;
                m)
                        CERT_MODE=${OPTARG}
                        ;;
                C)
                        COMMON_NAME=${OPTARG}
                        ;;
                O)
                        ORG_NAME=${OPTARG}
                        ;;
                ?)
                        usage
                        exit
                        ;;
        esac
done

if [ -z "${OUTPUT_DIR}" ]
then
        OUTPUT_DIR=.
else
        mkdir -p "${OUTPUT_DIR}"
fi

umask 177

case "${CERT_MODE}" in
        server)
                COMMON_NAME=${COMMON_NAME:-"${DEFAULT_SERVER_CN}"}
                ;;
        client)
                COMMON_NAME=${COMMON_NAME:-"${DEFAULT_CLIENT_CN}"}
                ;;
        *)
                echo
                echo "Неизвестный режим. Выходящий."
                exit 1
                ;;
esac

if [ -z "${CONFIG_FILE}" ]
then
        CONFIG_FILE="${OUTPUT_DIR}/tmp.cfg"
        echo
        echo "Конфигурационный файл не указан, создается '${CONFIG_FILE}'"
        echo "Вы можете использовать этот конфигурационный файл для создания дополнительных сертификатов без"
        echo "повторный ввод информации для полей в сертификате"
        create_config
fi

if [ -z ${CACERT} ]
then
        CAKEY=${OUTPUT_DIR}/ca.key
        CACERT=${OUTPUT_DIR}/ca.crt
        CACFG=${OUTPUT_DIR}/ca.cfg
##############################################################
        CAPEM=${OUTPUT_DIR}/ca.pem
##############################################################
        create_config ca "${CACFG}" "${DEFAULT_CA_CN}" "${DEFAULT_CA_ORG}"
        create_ca
else
        if [ -z ${CAKEY} ]
        then
                echo "-k должно быть указано, если -c является"
                exit 1
        fi
fi

create_cert


/opt/etc/asterisk/keys/scripts/create_ca_ast_cert.sh

Код: Выделить всё

#!/bin/sh
/opt/etc/asterisk/keys/scripts/ast_tls_cert -C keenetic -O "MyPBX" -d /opt/etc/asterisk/keys

/opt/etc/asterisk/keys/scripts/create_client_cert.sh

Код: Выделить всё

#!/bin/sh
/opt/etc/asterisk/keys/scripts/ast_tls_cert -m client -c /opt/etc/asterisk/keys/ca.crt -k /opt/etc/asterisk/keys/ca.key -C ipphone -O "keentic_entware_ast18_client" -d /opt/etc/asterisk/keys -o pbxclient

количество слов: 1618
Ответить Вложения 19 Пред. темаСлед. тема

Вернуться в «Keenetic»