Quantcast
Channel: IP АТС Asterisk
Viewing all 1135 articles
Browse latest View live

Call Center на Asterisk

$
0
0

Наши контакты


info@asterisk-pbx.ru

Skype:asterisk-pbx.ru


+7 (812) 998-11-38

+7 (921) 998-11-38


Неотек Инжиниринг

194021,Санкт-Петербург
2-й Муринский пр-т, 49, оф. 225

время работы офиса 10-00 до 17-30

Call Center на Asterisk

Колл Центр или Центр Обработки Вызовов (ЦОВ)

Стоимость установки и настройки Колл Центра на Asterisk
за безналичный расчет включая НДС - 25 000 рублей

Asterisk прекрасно справляется с организацией как небольших колл центров, так и более мощных систем. Приложение queue обеспечивает постановку абонента в очередь по принципу FIFO (первый вошел, первый вышел).

Агенты могут быть статическим (закрепленными за определенными очередями) и динамическими (подключатся к обслуживанию очереди набором сервис кода).

Call Center на Asterisk

Базовые функции:

  • голосовое меню (IVR);
  • маршрутизация вызовов по времени;
  • очередь центра обработки вызовов
  • группы приема вызовов;
  • переадресации на внутренних или внешних абонентов;
  • голосовые конференции;
  • запись переговоров;
  • статистика звонков.

ПО

  • Asterisk 13.xx
  • FreePBX 13 - Русифицированный, интуитивно понятный веб-интерфейс для настройки Asterisk.
    • Asterisk CDR viewer - Детализированный отчет о звонках, прослушивание записанных разговоров
  • Call Center Stats - Статистика очередей колл-центра
  • FOP2 - Панель оператора

Работы:

  • Инсталляция и базовые наcтройки безопасности.
  • Настройка по согласованному ТЗ.

Реализацию функционала колл-центра в Asterisk можно условно разделить на уровень АТС, уровень приложений АТС и уровень приложений 3-й стороны (3rd party) :

Базовые функции маршрутизации и обработки вызовов реализованы непосредственно в Asterisk:

  • Организация очереди (обработка вызовов в порядке поступления).
  • Маршрутизация вызова по номеру абонента.
  • Интерактивные Голосовые Сообщения / IVR.
  • Распределение вызовов среди агентов по занятости или по порядку.

asterisk freepbx queue

Гибкое распределение вызовов между агентами колл центра в соответствии с заданной политикой.

  • Звонят все агенты
  • Звонят наименее занятые
  • Вызываются по кругу с последнего ответившего.
  • Линейно (в порядке перечисления)
  • Случайным образом

asterisk freepbx queue strategy

Параметры времени и операторов

Так же «очередь» имеет множество опций обработки вызова и работы агентов:

  • Приветствие оператору — проигрывается агенту прежде чем, тот соединиться с позвонившим из очереди (например: «звонок из очереди «Продажи» - при обработке одним агентом звонков из нескольких очередей).
  • Приветствие позвонившему — проигрывается один раз при попадании в очередь.
  • Музыка на удержании — проигрывается при ожидании в очереди, можно заменить на рекламную информацию.
  • Максимальное время ожидания в очереди или неограниченно.
  • Максимальная длина очереди - максимальное количество позвонивших или неограниченно.
  • Стратегия дозвона (смотри выше: тип выбора свободного агента)
  • Таймаут — время вызова свободного оператора или неограниченно
  • Повтор — время повторения вызова операторов.
  • Передышка — пауза для оператора завершившего разговор вызов.
  • Сообщение о позиции в очереди
  • Сообщение о среднем времени ожидания в очереди.
  • Вставка сообщения авто-секретаря с возможностями прямого набора номера или системы голосовых меню.

asterisk freepbx timers

Рассчитывается среднее время ожидания в очереди и ожидающий абонент информируется о номере в очереди и оставшемся времени ожидания.

Параметры ёмкости очереди

Все разговоры могут быть записаны в формате wav или gsm, с возможностью последующего поиска и скачивания записи в детализированном отчете о звонках (CDR) Детализированный отчет о звонках (CDR) храниться в базе данных MySQL. Доступ к отчетам осуществляется через веб-интерфейс и предоставляет возможности для поиска, сортировки и сравнения вызовов за разные периоды времени.

В информации о входящем вызове сохраняются

  • Дата и время звонка
  • Продолжительность вызова
  • Номер позвонившего
  • Номер оператора или агента.
  • Номер очереди
  • Ссылка на запись разговора.

Функции регистрации вызовов, информации о состоянии вызовов и агентов и запись переговоров, также реализованы средствами АТС, но требуют взаимодействия базами данных для хранения информации и последующего извлечения для создания отчетов:

  • Регистрация всех входящих и исходящих вызовов
  • Запись переговоров
  • Статус оператора (свободен, занят, пауза)

Веб-интерфейс для статистики очередей и агентов.

  • Количество принятых вызовов за указанный период времени
  • Количество отвеченных вызовов
  • Количество не отвеченных вызовов
  • Среднее время разговора

Следующие отчеты интегрированы в Asternic Call Center Stats :

Распределение: по очередям, по месяцам, по неделям, по дням, по часам.

Отвеченные вызовы: по очередям, по времени ожидания, по агентам, Причина разъединения, продолжительность вызова (в том числе средняя продолжительность по очередям и агентам).

Неотвеченные вызовы: по очередям, по времени ожидания, по агентам, Причина разъединения, продолжительность вызова (в том числе средняя продолжительность по очередям и агентам).

Текущее состояние агентов: продолжительность работы или простоя, состояние текущего вызова, текущее кол-во вызовов в очереди)

Приложения использующие информацию о вызовах сохраненную в БД и логах (CDRстатистика, Статистика очереди ):

  • Приложения для создания отчетов о входящих/исходящих вызовах и поиска записей.
  • Приложения для создания отчетов о качестве работы операторов(качество обслуживания.

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

  • Real Time статус операторов, очередей и каналов.

FOP2 - Flash Operator Panel

Приложения контроля интеллектуального набора. Хотя набор номеров и маршрутизацию осуществляет сам Asterisk, для интеллектуального дозвона требуется приложение которое инициировало бы вызовы по заданному списку и управляло алгоритмом набора.

  • Автоматизированный набор номера (predictive dialer)

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

  • Визуализация данных о клиенте (карточка клиента) на основании номера абонента (CallerID)

Услуги по установке и настройке IP АТС Asterisk.

 

Asterisk Realtime Extensions with MySQL

$
0
0

~~DISCUSSION~~

Asterisk Realtime Extensions with MySQL

Маршрутизация в реальном времени MySQL

Asterisk setup

/etc/asterisk/modules.conf

autoload=yes


load => res_config_mysql.so
load => app_realtime.so
load => func_realtime.so
load => pbx_realtime.so 

/etc/asterisk/res_mysql.conf

[general]
dbhost = localhost
dbname = asterisk
dbuser = myuser
dbpass = mypass
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock

/etc/asterisk/extconfig.conf

[settings]
extensions => mysql,general,extensions
Формат - family ⇒ database type, контекст в res_mysql.conf :!:, table name

extensions.conf

[default]
switch => Realtime/mycontext@extensions 

Формат - switch ⇒ Realtime/контекст-в-mysql@family

MySQL setup

Создайте базу данных MYSQL (если не создана) и требуемую таблицу:

CREATE DATABASE IF NOT EXISTS asterisk;
use asterisk;
CREATE TABLE extensions (
id int(11) NOT NULL auto_increment,
context varchar(20) NOT NULL default "",
exten varchar(20) NOT NULL default "",
priority tinyint(4) NOT NULL default "0",
app varchar(20) NOT NULL default "",
appdata varchar(128) NOT NULL default "",
PRIMARY KEY  (context,exten,priority),
KEY id (id)
) TYPE=MyISAM; 


GRANT ALL ON ASTERISK.* TO myuser@localhost IDENTIFIED BY "mypass";
Добавление данных
USE asterisk;
INSERT INTO extensions VALUES (1, 'mycontext', '_8921.', 1, 'Dial', 'SIP/sipnet/${EXTEN}');
INSERT INTO extensions VALUES (NULL, 'mycontext', '_8911.', 2, 'Dial', 'SIP/sipnet/${EXTEN}');
REBOOT

Тестирование установки

asterisk*CLI> realtime mysql status
Connected to asterisk@localhost, port 3306 with username myuser for 1 minutes, 1 seconds.

Команды mysql

AsteriskNOW установка и настройка с нуля

$
0
0

AsteriskNOW установка и настройка с нуля

Asterisk NOW FreePBX GUI CDR Distro

Данный дистрибьютив Linux настроен и протестирован для Asterisk. Он устанавливает все пакеты, необходимые для использования Asterisk. Это официально рекомендуемая сборка,как для Asterisk,так и для Digium аппаратного обеспечения, включая Digium телефоны. Это руководство дает краткий обзор установки, настройки и обслуживания вашей системы.

AsteriskNOW Установка

Запишите образ AsteriskNOW DVD на DVD диск, а затем загрузитесь с DVD, чтобы начать процесс установки. После загрузки с AsteriskNow DVD, вам будет представлен с следующего вида экран и варианты установки с веб-интерфейсом FreePBX или без. Это описание предполагает, что веб-интерфейс FreePBX будет установлен. Для этого, выберете опцию 1 и нажмите <ВВОД>:

Загрузочное меню

Запустится автоматизированный графический вариант установки. Во время установки, во первых вам будет представлен экран с возможностью выбора Часового пояса:

  • Выберите место, которое соответствует вашему часовому поясу и перейдите к следующему экрану.

Часовой пояс

  • Далее, вам будет предложено установить пароль администратора (root):

Пользователь 'root' полноправный хозяин Linux системы.
Большинство настроек требуют доступа с правами 'root'.
Если этот пароль утерян, его практически невозможно восстановить.Рекомендуется использовать в пароле строчные и заглавные буквы, цифры и символы.

Пароль root

  • Далее выберете раздел жесткого диска.

Рекомендуется, выбрать «Use All Space»

hdd

и перейти к следующему экрану.

  • Подождите когда система будет установлена, это может занять 15-30 минут.

Установка пакетов

После завершения установки, вам будет предложено перезагрузить компьютер:

перезагрузка

  • После перезагрузки системы вы увидите этот экран:

Логин

Поздравляем! Вы успешно установили AsteriskNow.

  • Авторизуйтесь с логином 'root' и паролем заданным вами при установке.

Обратите внимание на текст, который говорит «Чтобы настроить AsteriskNow с FreePBX, введите в ​​браузере адрес HTTP: xx.xx.xx.xx » Это понадобится нам в следующем разделе.

  • Теперь, прежде чем двигаться дальше, важно обновить систему AsteriskNOW последними пакетами Linux.

Чтобы сделать это, используйте утилиту «Yum». Выполните «yum update»

  • Если новые пакеты доступны для установки, утилита просит разрешения на их установку - 'y'.
  • Также утилита может попросить разрешения принять ключ ним. Вы должны разрешить и это, для успешного обновления.

Обновление

FreePBX Настройка AsteriskNOW

Для настройки системы с помощью FreePBX, откройте ваш любимый веб-браузер на другом компьютере, Введите http адрес указанный во время загрузки: «To configure AsteriskNOW with FreePBX, point your web browser to http://xx.xx.xx.xx/.» (По умолчанию, сетевой интерфейс настроен для получения ip адреса по DHCP. Если в вашей сети настроен dhcp и вы подключили сетевой кабель, адрес будет отображен как указано на скриншоте загрузки.) Итак откроем указанный адрес в браузере, если все в порядке отобразится следующее:

freepbx старт

  • Отсюда, зайдем по «FreePBX Administration» ссылке. Нажмите ее, и вы увидите экран входа в FreePBX:

FreePBX Логин

  • Имя пользователя по умолчанию: admin
  • Пароль по умолчанию: admin

После успешного входа вы увидите панель FreePBX:

FreePBX Панель

Обратите внимание на красную кнопку Apply Config. Она будет появляться каждый раз, после внесения любых изменений на странице. Если вы видите это, она должна быть нажата, будут применены любые изменения сделанные в системе FreePBX. Это руководство предполагает, что всякий раз, когда вы видите Apply Config, вы нажимаете это.
Далее, поменяем пароль администратора по умолчанию. Это необходимо! Если этого не сделать может случится катастрофа. Важность этого нельзя недооценивать.

  • В первую очередь посетим инструмент Admin>Administrators

Администратор

  • Далее, выберите adminв правой колонке:

Администратор

  • И измените пароль администратора

Администратор пароль

Обновление модулей FreePBX

  • Наконец, следует обновить устаревшие модули в системе FreePBX.

Чтобы сделать это, посетим инструмент Admin>Module Asministration:

Модуль Администратор

Нажмите кнопку Check Online и вы увидите все доступные для обновления модули:

Модуль Администратор

  • Для обновления модуля, щелкните по нему, а затем выберите опцию загрузки

Модуль Администратор

  • Наконец, нажмите кнопку Process и следуйте инструкциям для завершения обновления модуля.

Обновление, Поиск и Удаление пакетов

После завершения установки AsteriskNOW, все пакеты для работы Asterisk установлены. Однако часто доступны системные обновления . AsteriskNOW содержит несколько Yum репозиториев в дополнение к тем, которые есть в CentOS. Это asterisk-current/asterisk-testedи digium-current/digium-tested. В asterisk- репозитории содержат пакеты для Digium- открытого программного обеспечения (например, Asterisk, libpri и DAHDI). В digium- репозитории содержится несвободное или коммерческое программное обеспечение (например, Digium Phone модуль для Asterisk, G.729 для Asterisk, Факс для Asterisk, и HPEC модуль эхоподавления). Это позволяет устанавливать дополнительное программное обеспечение, чтобы оставаться в курсе последних изменений. Пакеты могут быть установлены или удалены с помощью `yum install <package>` и`yum remove <package>` соответственно. Обновления рекомендуется регулярно устанавливать с помощью `yum update`. Для получения полного списка доступных и установленных пакетов, вы можете использовать `yum list | less`.

Spoiler

http://www.asterisk-pbx.ru/downloads/asterisknow_install_dummy.pdf

FreePBX

Услуги по установке и настройке IP АТС Asterisk.

$
0
0

Услуги по установке и настройке IP АТС Asterisk.

Мы находимся в Санкт-Петербурге, но работаем по всему миру!

Наша организация предлагает услуги по установке, настройке и обслуживанию IP АТСAsterisk.

Установка IP АТС на открытом программном обеспечении включает в себя следующие этапы:

  1. Разработка технического задания с учетом требований заказчика и возможностей IP АТС.
  2. Подготовка договора на установку и настройку и, если требуется, поставку оборудования.
  3. Подготовка счета на оплату с учетом технического задания, согласование сроков и порядка оплаты.
  4. Удаленная установка IP АТС в любой точке мира.
  5. Установка IP АТС с выездом на объект (Санкт Петербург).
  6. Предварительная настройка оборудования в нашем сервисном центре.
  7. Сдача проекта. Проверка работоспособности всех компонентов и алгоритмов работы IP АТС.
  8. Обучение для дальнейшей самостоятельной эксплуатации IP АТС сотрудниками заказчика.
  9. Бесплатная техническая поддержка в течении месяца с момента запуска в эксплуатацию.
Свяжитесь с нами для получения подробной информации!
Офисная АТС

Only edit this fieldset if “Функционал” is set to “Офисная АТС”.

Колл Центр

Only edit this fieldset if “Функционал” is set to “Колл Центр”.

Кастомные решения

Only edit this fieldset if “Функционал” is set to “Все сложно”.

Контакты

$
0
0

Контакты

Наши контакты


info@asterisk-pbx.ru


hdi@asterisk-pbx.ru


+7 (812) 998-11-38

+7 (921) 998-11-38


Обратная связь

Услуги по установке и настройке IP АТС Asterisk.

ForkCDR

$
0
0

ForkCDR

[Synopsis]

Forks the current Call Data Record for this channel.

[Description]

Causes the Call Data Record engine to fork a new CDR starting from the time the application is executed. The forked CDR will be linked to the end of the CDRs associated with the channel.

[Syntax]

ForkCDR([options])

[Arguments]

options

 options
* a - Update the answer time on the NEW CDR just after it's been inited. The new CDR may have been answered already. The reset that forkcdr does will erase the answer time. This will bring it back, but the answer time will be a copy of the fork/start time. It will only do this if the initial cdr was indeed already answered.
* A - Lock the original CDR against the answer time being updated. This will allow the disposition on the original CDR to remain the same.
* d - Copy the disposition forward from the old cdr, after the init.
* D - Clear the dstchannel on the new CDR after reset.
* e - End the original CDR. Do this after all the necessary data is copied from the original CDR to the new forked CDR.
* r - Do NOT reset the new cdr.
* s(name=val) - Set the CDR var name in the original CDR, with value val.
* T - Mark the original CDR with a DONT_TOUCH flag. setvar, answer, and end cdr funcs will obey this flag; normally they don't honor the LOCKED flag set on the original CDR record.
* v - When the new CDR is forked, it gets a copy of the vars attached to the current CDR. The vars attached to the original CDR are removed unless this option is specified.

[See Also]

function 'CDR', NoCDR(), ResetCDR()

cdr_*.conf

Команды диалплана Asterisk12 в алфавитном порядке

FreePBX

$
0
0

FreePBX

Настройка FreePBX Asterisk GUI Документация Мануал

FreePBX это полнофункциональный веб-интерфейс для конфигурации Asterisk PBX.

Если Вы знакомы с Asterisk, то знаете, настройка ATCосуществляется при помощи конфигурационных файлов. FreePBX предлагает простой, интуитивно понятный интерфейс для настройки и управления Asterisk PBX.
FreePBX также поставляется со многими дистрибьютивами:
AsteriskNOW, FreePBX Distro, Trixbox, Elastix
Документация Мануал FreePBX Asterisk Gui

Скачать FreePBX

Документация

Общее

Уязвимости

Admin modules

Документация по административным модулям FreePBX

Applications

Документация по модулям приложений FreePBX

Connectivity

Документация по модулям входящих исходящих соединений FreePBX.

  • Inbound Routes - Наведение входящих вызовов , DID.
  • Outbound Routes - Маршрутизирует исходящие вызовы по требуемым транкам.
  • Zap Channel DIDs - Назначение DIDдля конкретных ZAP каналов.
  • Trunks - Управляет ZAP (Dahdi), SIPпротокол, IAXканалами для выхода в общую телефонную сеть, или соединения АТС.

Settings Modules

Документация по модулям глобальных настроек каналов и приложений FreePBX

UCP

Примеры

Устаревшее

Каналы в Asterisk

$
0
0

Каналы в Asterisk

Что такое каналы в Asterisk?
Каналы в asterisk - это внешние или внутренние соединения, по которым производиться доставка вызовов в АТС Asterisk. Каналом может быть соединение с обычным телефонным аппаратом или с обычной телефонной линией, или он может быть виртуальным (логическим) каналом для совершения вызовов (как, например, совершение телефонных вызовов через Интернет). Сервер Asterisk не делает различий между классами каналов «FXO» и «FXS» (это значит, что он не делает различий между телефонными линиями и телефонными аппаратами). Каждый совершаемый или принимаемый вызов производиться через какой-либо определенный канал.

Типы каналов

Сервер Asterisk поддерживает следующие типы каналов в стандартной поставке:

Драйверы каналов, которые поддерживают другие технологии и могут быть дополнительно установлены в Asterisk:

  • Bluetooth: Позволяет использовать устройства bluetooth для изменения маршрута вызовов - см. SVN.
  • CAPI: канал для ISDN CAPI.
  • Конфиг chan_mobileПозволяет использовать устройства bluetooth (версии 1.4+)
  • mISDN: канал для mISDN.
  • vISDN: канал для vISDN (нативный BRI канал для HFC чипсета).
  • SCCP: Альтернативный драйвер канала для Skinny/SCCP.
  • Sirrix: Канал ISDN BRI для карт от Sirrix (с возможностью ISDN шифрования).
  • Конфиг chan_unistim: Канал для «Nortel Unistim».
  • SS7: Канал SS7 (ISUP на MTP2/3).

Настройка Asterisk


Asterisk Dialplan - extensions.conf

$
0
0

Asterisk Dialplan - extensions.conf

Диалплан направляет каждый звонок от его источника, с помощью приложений (Dial, Voicemail, Background, ConfBridge и тд), в пункт назначения.

Наиболее важным для понимания Asterisk является план набора (dialplan). Все вызовы, будь-то голосовая почта, конференция, меню автосекретаря или вызов телефона, определяются логикой и концепцией диалплана.

Настройка производится в файле /etc/asterisk/extensions.conf .

Введение в расширения (extensions) и контексты (context)

Каналам назначаются контексты. Контексты определяют правила набора для каналов
План набора состоит из одного или нескольких контекстов. Каждый контекст это просто набор расширений (екстеншенов). Каждый екстеншен в контексте имеет уникальное имя.

Контексты ипользуются для выполнения основных функций АТС:

  • Безопасность: Можно разрешить междугородные/международные вызовы только конкретным абонентам.
  • Маршрутизация вызовов: Маршрутизация вызовов в зависимости от номера абонента.
  • Автосекретарь: Проигрывание приветствия и приглашение ввести добавочный номер.
  • Многоуровневые голосовые меню: Голосовые меню для службы поддержки, отдела продаж и т.д.
  • Авторизация: Запрос пароля для доступа к некоторым екстеншенам.
  • Обратный вызов: Позволяет уменьшить затраты на междугородние/международные вызовы.
  • Списки доступа: Занесение в черные списки надоедливых абонентов, не давая им возможности связаться с Вами.
  • Виртуальные АТС: Вы можете создать «виртуальную АТС» в пределах Вашей основной АТС.
  • Дневной/Ночной режим работы: Вы можете изменять поведение Вашей АТС в зависимости от времени суток.
  • Макросы: Можно создавать скрипты для решения повторяющихся задач в плане набора.

Что такое екстеншен?

В традиционных АТС екстеншен связан с интерфейсом (портом). В Asterisk екстеншен определяется как перечень приложений (applications) и их аргументов, выполняемых в определённом порядке, Порядок выполнения определяется приоритетами (priority). Когда екстеншен набран приоритеты выполняются до разъединения вызова, или перенаправления на другой екстеншен. Каждый шаг записывается следующим образом:

exten => <exten>,<priority>,<application>, [(<args>)]

Пример простого екстеншена

exten => 100,1,Wait(5)
exten => 100,2,Answer
exten => 100,3,Playback(demo-congrats)
exten => 100,n,Hangup

Этот екстеншен состоит из 4-х действий.

Первым выполняется приложение Wait c приоритетом 1 - ждать 5 секунд (время задаётся аргументом (5).
Вторым приложение Answer - поднять трубку.
Затем Playback - проиграть звуковой файл; аргумент задает имя файла (demo-congrats) в директории по умолчанию.
Последним выполняется приложение Hangup - повесить трубку. Приоритет 'n' означает next (следующий) и может использоваться вместо любого приоритета кроме 1-го.

Например:

[default]
exten => 100,1,Wait(5)
exten => 100,n,Answer
exten => 100,n,Playback(demo-congrats)
exten => 100,n,Hangup

Использование приоритета 'n' позволяет легко редактировать отдельные строки не переписывая все приоритеты.

Набор номера

Чаще всего вызывается другой интерфейс. Вызов осуществляется командой Dial().

[default]
exten => 100,1,Dial(DAHDI/1,20)
exten => 100,2,Voicemail(u100@default)
exten => 100,102,Voicemail(b100@default)

Этот пример иллюстрирует разные варианты действий в случае, если на вызов не ответили. Сначала вызывается канал DAHDI/1, если через 20 секунд никто не ответил вызов пренаправляется на VoiceMail()с объявлением «абонент не отвечает»(u100), Если же абонент занят, вызов перейдет на приоритет N+101, в нашем случае это приоритет 102.

Маршрутизация по CallerID

Пример маршрутизации по номеру вызывающего абонента.

[default]
exten => 100/1234567,1,Congestion
exten => 100,1,Dial(DAHDI/1,20)
exten => 100,2,Voicemail(u100)
exten => 100,102,Voicemail(b100)

Если вызывается екстеншен 100 вызов направляется на интерфейс DAHDI/1, кроме случая если вызов осуществляет абонент 1234567. В этом случае вызов отклоняется. На примере видно, что идентификатор вызывающего абонента задается формой '/1234567'.

Ещё один пример маршрутизации, теперь по отсутствию CallerID.

[default]
exten => 100/,1,Zapateller
exten => 100,1,Wait(0)
exten => 100,2,Dial(DAHDI/1)

В данном примере если поступает звонок без CallerID, вызов блокируется с помощью приложения Zapateller()

Вызов группы телефонов

Часто требуется чтобы вызов по неответу перешел на другой телефон. Рассмотрим как это сделать на примере «оператор».

[operator]
exten => 0,1,Dial(DAHDI/1,15)
exten => 0,2,Dial(DAHDI/1&DAHDI/2&DAHDI/3,15)
exten => 0,3,Playback(companymailbox)
exten => 0,4,Voicemail(100)
exten => 0,5,Hangup

Вызов поступает на DAHDI/1, в случае если телефон занят или не отвечает в течении 15 секунд, звонок переходит на группу телефонов, включая и DAHDI/1. Если и на этот раз никто не поднимает трубку, вызов переходит на голосовую почту.



Интерактивное Голосовое меню

Голосовое меню как правило задается в собственном контексте.

[sales]
exten => s,1,Background(welcome-sales)
exten => 1,1,Goto(default,100,1)
exten => 2,1,Goto(default,101,1)
[mainmenu]
exten => s,1,Background(welcome-mainmenu)
exten => 1,1,Goto(sales,s,1)
exten => 2,1,Dial,DAHDI/2
exten => 9,1,Directory(default)
exten => 0,1,Dial,DAHDI/3

Объявление проигрывается на расширении 's' (смотри Стандартные расширения). В объявлении предлагается набрать '1' для вызова отдела продаж (производится переход в контекст 'sales'). Набрать '2' - вызов DAHDI/2. Набор '9' - вызов каталога (смотри Directory ) и '0' вызов DAHDI/3


Использование переменных

В Asterisk существуют глобальные и специфичные для каналов переменные, используемые в качестве аргументов для команд. Переменные записываются в диалплане в виде ${foo}, где 'foo' это имя переменной. Имена должны начинаться с буквы и могут состоять из любых цифр и букв, но существуют предопределенные имена, вот некоторые из них:

${CONTEXT}Текущий контекст.
${EXTEN}Текущий екстеншен.
${EXTEN:x}Текущий екстеншен с удалением первых цифр(где х кол-во удаляемых цифр)
${PRIORITY}Текущий приоритет
${CALLERID}Текущий CallerID (имя и номер)
${CALLERIDNUM}Текущий номер Caller ID
${CALLERIDNAME}Текущее имя Caller ID
${RDNIS}перенаправление DNIS

Глобальные переменные назначаются в секции [globals] диалплана. Рассмотрим следующий пример:

[globals]
MARK => DAHDI/1
GREG => DAHDI/2&SIP/telephone
WIL => DAHDI/3
JUDY => DAHDI/4
[mainmenu]
exten => 1,1,Dial(${GREG}&${MARK})
exten => 2,1,Dial(${WIL}&${JUDY})
exten => 3,1,Dial(${JUDY}&${MARK})

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

смотри подробнее Использование переменных в плане набора Asterisk

Вложенные контексты

Один контекст может включать другие контексты, обрабатываемые в порядке перечисления. Смотри также Порядок выбора нужного екстеншена при использовании шаблонов.

include => <context>[|<hours>|<weekdays>|<monthdays>|<months>]
Где <context> - включаемый контекст
опционально:
<hours> - часы в которые действителен контекст (например рабочее время 9:00-17:00)
<weekdays> -дни недели (mon-fri)
<monthdays> - дни
<month> - месяцы

Пример:

[local]
exten => _[0-79].,1,Dial(SIP/trunk/${EXTEN})
[long]
exten => _8.,1,Dial(SIP/trunk/${EXTEN})
[local_long]
include => local
include => long
[local_only]
include => local
В этом примере контекст 'local_long'' включает два других контекста для городской и междугородней связи, а контекст 'local_only' только для городской.

Дневной / Ночной режимы. Маршрутизация по времени

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

[newyears]
exten => s,1,Playback(happy-new-years)
[daytime]
exten => s,1,Dial(DAHDI/1,20)
[nighttime]
exten => s,1,Playback(after-hours-msg)
[default]
include => newyears||||1|jan
include => daytime|9:00-17:00|mon-fri
include => nighttime
В этом примере заданы дневной, ночной и праздничный режимы прихода звонков.

Исходящие вызовы

Направление исходящей связи можно реализовать определением короткого кода доступа (например '9'), или определить полностью шаблон набираемых номеров.

[international]
ignorepat => 9
exten => _9810.,1,Dial(DAHDI/g2/${EXTEN:1})
exten => _9810.,2,Congestion
include => longdistance

[longdistance]
ignorepat => 9
exten => _98[02-9]XXXXXXXXX,1,Dial(DAHDI/g2/${EXTEN:1})
exten => _98[02-9]XXXXXXXXX,2,Congestion
include => local

[local]
ignorepat => 9
exten => _9[02-79]XXXXXX,1,Dial(DAHDI/g2/${EXTEN:1})
exten => _9[02-79]XXXXXX,2,Congestion
include => default

В этом примере рассматриваются 3 контекста с различными правами доступа к Телефонной сети Общего Пользования .

Конструкция 'ignorepat ⇒ 9 ' говорит Астериску не отключать тон готовности после набора заданной цифры.

  • Контекст [international] позволяет набрать международный номер с любым количеством цифр.
  • Контекст [longdistance] - междугородний номер до 11-ти цифр.
  • Контекст [local] - городской номер длинной до 7-ми цифр.

Переменная ${EXTEN:1} удаляет префикс:

${123456789:1} - возвращает строку 23456789
${123456789:-4} - возвращает строку 6789
${123456789:0:3} - возвращает строку 123
${123456789:2:3} - возвращает строку 345
${123456789:-4:3} - возвращает строку 678

Шаблоны Patterns

Екстеншены могут сопоставляться шаблону, вместо однозначно заданных цифр. Шаблон должен начинаться с символа подчеркивания ( _ ) и может использовать любой из следующих символов:

  • X– любая цифра от 0-9
  • N– любая цифра от 2-9
  • [14-6]– цифры 1,4, 5 и 6
  • .– любые возможные символы.

Резервные транки и LCR (выбор направления с наименьшей стоимостью)

Весьма полезно настроить LCR (Least Coast Routing) и перенаправление в случае отказа внешней линии.

[tolllongdistance]
exten => _98XXXXXXXXXX,1,Dial(DAHDI/g2/${EXTEN:1})
exten => _98XXXXXXXXXX,2,Congestion
[low_rate_moscow]
exten => _98495XXXXXXX,1,Dial(IAX/trunk/${EXTEN:1})
exten => _98495XXXXXXX,2,Dial(DAHDI/g2/${EXTEN:1})
exten => _98495XXXXXXX,3,Congestion
[longdistance]
include => low_rate_moscow
include => tolllongdistance

В этом примере междугородние вызовы направляются на DAHDIинтерфейс, но звонки в Москву направляются через более выгодного провайдера на IAXтранк. В случае же недоступности IAXтранка, вызовы перенаправляются через DAHDI.

Использование Макросов

Вам может потребоваться создать множество екстеншенов (расширений) очень похожих друг на друга. Чтобы упростить работу с диалпланом используются Макросы. Для создания макроса используется контекст имя которого начинается с «macro-» и далее уникальное имя макроса. Выполнение макроса начинается с ектеншена 's'. В макросах используются локальные переменные:

${MACRO_EXTEN} – Екстеншен вызываемый макросом ${MACRO_CONTEXT} – Контекст вызываемый макросом ${MACRO_PRIORITY} – активный приоритет вызываемый макросом ${MACRO_OFFSET} – если установлено вызывает смещение n + ${MACRO_OFFSET} ${ARGn} – аргумент 'n' в макросе.

[macro-oneline]
;
; Однолинейный телефон
;
; ${ARG1} – Телефон
;
exten => s,1,Dial(${ARG1},20)
exten => s,2,Voicemail(u${MACRO_EXTEN})
exten => s,3,Hangup
exten => s,102,Voicemail(b${MACRO_EXTEN})
exten => s,103,Hangup
[macro-twoline]
;
; Двухлинейный телефон
;
; ${ARG1} – Телефон (линия) 1
; ${ARG2} – Телефон (линия) 2
;
exten => s,1,Dial(${ARG1},20)
exten => s,2,Voicemail(u${MACRO_EXTEN})
exten => s,102,Dial(${ARG2},20)
exten => s,103,Voicemail(b${MACRO_EXTEN})

[default]
exten => 1000,1,Macro(oneline,DAHDI/1)
exten => 1001,1,Macro(oneline,SIP/1001)
exten => 1002,1,Macro(twoline,DAHDI/3,DAHDI/4)

Когда макросы [macro-oneline] и [macro-twoline] созданы, в контексте [default] надо написать только одну сроку для выполнения нескольких стандартных действий.

[from-phones1]
exten => _X.,1,Dial(SIP/sip_trunk/${EXTEN},180,)
exten => _X.,n,Macro(dialstatus,s,1)

exten => _X.,1,Dial(DAHDI/g2/${EXTEN},180,)
exten => _X.,n,Macro(dialstatus,s,1)

[macro-dialstatus]
exten => s,1,Answer
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Hangup
exten => s-CONGESTION,1,Congestion
exten => s-CANCEL,1,Hangup
exten => s-BUSY,1,Playtones(425/375,0/375)
exten => s-BUSY,n,Busy(7)
exten => s-BUSY,n,Hangup
exten => s-CHANUNAVAIL,1,Hangup

Приложение Macro объявлено устаревшим, вместо него рекоммендуется использовать GoSub.

Синтаксис Gosub

  Gosub([[context,]exten,]priority[(arg1[,...][,argN])])

[sub-test]
exten => _X.,1,Dial(${ARG1}/${ARG2},20,)
exten => _X.,n,Playback(tt-weasels)
exten => _X.,n,Hangup

[test]
exten => _X.,1,Gosub(sub-test,${EXTEN},1(SIP/trunk,${EXTEN}))

Запись разговоров

[macro-mixmonitor]
exten => s,1,Set(RECORD_FILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)})
        same => n,MixMonitor(${RECORD_FILENAME}.wav,b)
        same =>  n,Dial(${ARG1},180,) 
[outbound_route1]
exten => _9.,1,Macro(mixmonitor,PJSIP/sipprovider/${EXTEN:1})

В данном примере вызов с префиксом '9', должен быть скоммутирован через SIPтранк ITSP. Разговор будет записан в формате 'wav' и сохранен в директорию по умолчанию «/var/lib/asterisk/monitor/ГодМесяцДень-ЧасыМинутыСекунды-НомерВызывающего Абонента.wav

Структура same ⇒ позволяет сократить код, избежав многочисленных повторений «exten ⇒ s,» в данном случае.

Хорошая мысль поэкспериментировать и с другими переменными в имени файла, например ${UNIQUEID}.

Настройка Asterisk

Настройка Asterisk

$
0
0

Настройка Asterisk

Документация по настройке Asterisk на русском языке.
Диалплан, SIPи DAHDIканалы, очереди, конференции, CDRи др.

Asterisk Настройка - Диалплан, Контексты, Екстеншены

Для понимания Asterisk очень важен - план набора (диалплан). Диалплан направляет каждый звонок от его источника, с помощью различных приложений, в пункт назначения. Все вызовы, будь-то голосовая почта, конференция, меню автосекретаря или вызов телефона, определяются логикой и концепцией диалплана. Русская документация мануал по dialplan Asterisk

* Asterisk Dialplan - extensions.conf

* Использование переменных в плане набора Asterisk

Команды или по другому приложения (applications) диалплана Asterisk

Функции диалплана Астериск

Asterisk Dialplan functions

Функции Asterisk используются в диалплане. Это не командыдиалпланаи не могут быть использованы прямо. Функции возвращают значение для дальнейшего использования в логике диалплана.

NAT

Конфигурационные файлы Asterisk

Большинство настроек Asterisk контролируются с помощью конфигурационных файлов, расположеных в директории /etc/asterisk. Синтаксис конфигурационных файлов был разработан для упрощенного взаимодействия с ПО (например FreePBX) или же редактирования вручную.

Каналы SIP, IAX2, DAHDI и H.323 и др.

Каналы в asterisk - это внешние или внутренние соединения, по которым производиться доставка вызовов в АТС Asterisk. Каналом может быть соединение с обычным телефонным аппаратом или с обычной телефонной линией, или он может быть виртуальным (логическим) каналом для совершения вызовов (как, например, совершение телефонных вызовов через Интернет). Сервер Asterisk не делает различий между классами каналов «FXO» и «FXS» (это значит, что он не делает различий между телефонными линиями и телефонными аппаратами). Каждый совершаемый или принимаемый вызов производиться через какой-либо определенный канал.

Шифрование в Asterisk

Очереди и Агенты Asterisk

В Asterisk поддерживается несколько очередей вызовов. Их определения находятся в файле Настройка очереди в Asterisk - queues.conf, имена очередей вызовов используются в качестве аргумента команды Queue в файле конфигурации плана набора extensions.conf. Агенты, которые обрабатывают вызовы, поступающие в очередь, описываются в файле /etc/asterisk/agents.conf.

Конференции

Asterisk позволяет организовать телеконференции с неограниченным числом пользователей.

Коды Asterisk - Абонентские функции и их свойства - feartures.conf

В файле features.conf назначаются пользовательские коды абонентских функций Asterisk и опции абонентских функций, такие как:
Переадресация вызова(transfer), перехват вызова (pickup), запись по требованию (record on demand), таймауты между набора и переадресации (digit timeout), паркинг (park) и др.

CDR

Детализированный отчет о звонках (CDR) backend для сохранения данных о входящих, исходящих и внутренних вызовах Asterisk. Полное описание на русском языке CDR, MySQL, ODBC etc.

CLI - интерфейс командной строки Asterisk.

Командная строка является мощным инструментом для мониторинга и управления работой Asterisk PBX

Asterisk AMI

Asterisk manager Interface - интерфейс управления.

Asterisk ARI

FreeSWITCH

$
0
0

FreeSWITCH

Установка и настройка FreeSWITCH

FreeSWITCH

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

Установка FreeSWITCH

Настройка FreeSWITCH

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

  • Сервер маршрутизации.
  • Сервер B2BUA.
  • Сервер IVR
  • Сервер Конференций
  • Сервер Голосовой почты
  • SBCСервер
  • Fax сервер
  • И, конечно, АТС!

FusionPBX

FS:Назначение CallerID из параметров User Directory

$
0
0

FS:Назначение CallerID из параметров User Directory

FreeSWITCH outbound_caller_id_number effective_caller_id_number sip_profile gateway

extensions

../freeswitch/conf/directory/…/2666.xml

<include>
  <user id="2666">
    <params>
      <param name="password" value="$${default_password}"/>
      <param name="vm-password" value="2666"/>
    </params>
    <variables>
      <variable name="toll_allow" value="domestic,international,local"/>
      <variable name="accountcode" value="2666"/>
      <variable name="user_context" value="default"/>
      <variable name="effective_caller_id_name" value="Phone Dwarf 2666"/>
      <variable name="effective_caller_id_number" value="2666"/>
      <variable name="outbound_caller_id_name" value="8129981138"/>
      <variable name="outbound_caller_id_number" value="8129981138"/>
      <variable name="callgroup" value="it"/>
    </variables>
  </user>
</include>

dialplan

../freeswitch/conf/dialplan/…/dp.xml

Используйте outbound_caller_id_numberдля вызовов через SIP gateway.

<include>
  <extension name="external_call">
    <condition field="destination_number" expression="^9(\d+)$">
        <action application="set" data="outbound_caller_id_name=${user_data(${caller_id_number}@${domain_number} var outbound_caller_id_number)}"/> 
	<action application="set" data="outbound_caller_id_number=${user_data(${caller_id_number}@${domain_name} var outbound_caller_id_name)}"/>
      <action application="bridge" data="sofia/gateway/[sip_gateway]/$1"/>
    </condition>
  </extension>
</include>

а effective_caller_id_numberдля внутренних вызовов.

<include>
  <extension name="internal_call">
    <condition field="destination_number" expression="^(2\d{3})$">
        <action application="set" data="effective_caller_id_name=${user_data(${caller_id_number}@${domain_number} var effective_caller_id_number)}"/> 
	<action application="set" data="effective_caller_id_number=${user_data(${caller_id_number}@${domain_name} var effective_caller_id_number)}"/>
      <action application="bridge" data="user/$1@{domain_name}"/>
    </condition>
  </extension>
</include>

user_data

Для получения значений переменных и параметров из директории используется команда user_data.

Использование: user_data <user>@<domain> [attr|var|param] <name>

Где <user>@<domain>идентификатор пользователя, данные которого мы хотим получить.

В нашем примере использована переменная ${caller_id_number}@${domain_name}
т.е. мы идентифицируем вызывающего по его CallerID и получаем переменные (var) по имени effective_caller_id_numи effective_caller_id_name, которые могут отличаться от ${caller_id_number}.

gateway

../freeswitch/conf/sip_profiles/internal/sip_gateway.xml

Но все вышеописанное игнорируется если в настройка gateway указано: <param name="caller-id-in-from" value="true"/>

<include>
    <gateway name="sip_gateway">
      <param name="username" value=""/>
      <param name="password" value="register:false"/>
      <param name="proxy" value="192.168.252.252"/>
      <param name="expire-seconds" value="800"/>
      <param name="register" value="false"/>
      <param name="register-transport" value="udp"/>
      <param name="retry-seconds" value="60"/>
      <param name="context" value="public"/>
      <param name="caller-id-in-from" value="true"/>
    </gateway>
</include>

SIP header

а берется из From: … <sip:2666 …

From: «2666»<sip:2666@192.168.0.231>;tag=…

  SIP/2.0 100 Trying
   From: "2666"<sip:2666@192.168.0.231>;tag=pNyyD5yytBQ5j
   To: <sip:2230@192.168.0.252>
   Call-ID: fff56bcc-edd3-1233-b8bc-bcaec51dca30
   CSeq: 82118469 INVITE
   Via: SIP/2.0/UDP 192.168.0.231:5070;rport=5070;branch=z9hG4bKmy1QNemeF117c
   Supported: replaces
   User-Agent: Avaya IP Office r_9.1
   Contact: <sip:2230@192.168.0.252:5060>
   Content-Length: 0

FreeSWITCH

Asterisk

$
0
0

Asterisk

Услуги по установке, настройке и обслуживанию IP АТСAsteriskи FreeSWITCH

Установка IP АТС на открытом программном обеспечении включает в себя следующие этапы:

  1. Разработка технического задания с учетом требований заказчика и возможностей IP АТС.
  2. Подготовка договора на установку и настройку и, если требуется, поставку оборудования.
  3. Подготовка счета на оплату с учетом технического задания, согласование сроков и порядка оплаты.
  4. Удаленная установка IP АТС в любой точке мира.
  5. Установка IP АТС с выездом на объект.
  6. Предварительная настройка оборудования.
  7. Сдача проекта. Проверка работоспособности всех компонентов и алгоритмов работы IP АТС.
  8. Обучение для дальнейшей самостоятельной эксплуатации IP АТС сотрудниками заказчика.
  9. Бесплатная техническая поддержка в течении месяца с момента запуска в эксплуатацию.

Asterisk как IP АТС

IP АТС Asterisk

Приложение работает на операционных системах

VOIP протоколы:

и др. см. Каналы в Asterisk, а также поддерживаются ISDNи ОКС-7.

Asterisk совместим с VOIP оборудованием через вышеперечисленные протоколы. Компания Digium выпускает платы в PCI и PCIe исполнении, с аналоговыми FXO/FXSи цифровыми E1, T1 и т.д. интерфейсами. Существуют также аналоги от других производителей: Sangoma, OpenVox, Parabel

Asterisk IP PBXможет использоваться в качестве учрежденческой АТС,
коммутируя вызовы, управляя маршрутами,
используя различные опции и соединяя абонентов с миром
через IP, аналоговые (ТФОП) и цифровые (Т1/Е1) каналы связи (DAHDI).
VoIPТелефония Asterisk - это свободно распространяемая (Open Source) программная IP АТС.

Asterisk PBXобладает всеми возможностями классической АТС и предоставляет функции:

Asterisk как Call center

(Call Center на Asterisk)

Факс Сервер Asterisk - Fax Over IP

Asterisk в качестве факс сервера -Asterisk + Hylafax (факс сервер)

  • Прием факсов на емайл(fax-to-email)
  • Отправка факсов через емайл(emai-to-fax)
  • Отправка факсов через драйвер виртуального принтера.
  • Сохранение в сетевой директории.

Asterisk WebRTC

  • Asterisk реализует коммуникации в реальном времени WebRTC

Звонки из браузера в браузер, звонки с сайта, новый этап развития IP коммуникаций.

Asterisk как медиа-сервер

  • Интерактивные голосовые меню любой сложности.(IVR)
  • Голосовая почта с управлением через веб-интерфейс и уведомлением по e-mail.(Voicemail)
  • Конференции с большим количеством участников. Asterisk Конференц-мост
  • Система CDRи записи разговоров.Asterisk-CDR-Viewer

Asterisk как шлюз

Asterisk может быть использован в качестве универсального медиа-шлюза, соединяя старую телефонную сеть общего пользования с VOIP. Передавать цифровые линии E1/T1 через IP(TDM overIP). VOIP в GSM. и т.д., и т.п.

Asterisk GUI

AsteriskNOW, FreePBX Distro, Trixbox, Elastix, Vicidial Call Center Suite, AsterCRM, PBX in a Flash

Asterisk настраивается с помощью конфигурационных файлов. Существует также веб интерфейсы, такие как FreePBX. Asterisk GUIFreePBXиспользуется многими сборками, предлагающими готовые дистрибьютивы Asteriskсо множеством дополнительных приложений. AsteriskNOW, FreePBX Distro, Trixbox, Elastix, Vicidial Call Center Suite, AsterCRM, PBX in a Flash, только некоторые из них.

Asterisk CRM

Asterisk может быть интегрирован с CRMсистемами (VTiger, SugarCRM, 1C Предприятие и др.).

Asterisk billing

Dial

$
0
0

Dial

Команда плана набора Asterisk "Dial"

Краткий обзор

Приложение Asterisk 'Dial', пытается установить соединение, одного устройства с другим.

Описание

Данное приложение направляет вызовы на один или несколько назначенных каналов. Как только один из запрашиваемых каналов отвечает, происходит соединение. Эти два канала и составляют активное соединение. Вызовы на остальные запрашиваемые каналы прекращаются (hangup).
Если тайм-аут не назначен, вызов будет ждать бесконечно, пока кто-то из пользователей не произведет отбой, или все вызываемые каналы получат статус «занят» или «недоступен»(busy or unavailable).

Если ${OUTBOUND_GROUP}переменная установлена, все каналы созданные этим приложением будут группированы, как (Set(GROUP()=…).

При использовании переменной ${OUTBOUND_GROUP_ONCE}все каналы созданные этим приложением будут также сгруппированы, как (Set(GROUP()=…),
но в отличии от ${OUTBOUND_GROUP}, после использование значение не сохранится и будет удалено.

Приложение «Dial» также возвращает следующие переменные:

${DIALEDTIME}: Время с начала набора до разъединения вызова.

${ANSWEREDTIME}: Фактическое время соединения (разговора).

${DIALSTATUS}: Состояние вызова.

  • CHANUNAVAIL
  • CONGESTION
  • NOANSWER
  • BUSY
  • ANSWER
  • CANCEL
  • DONTCALL: Для Privacy и Screening Modes. Будет установлен, если вызываемый абонент выбирает для отправки вызывающему абоненту сценария «Go Away».
  • TORTURE: Для Privacy и Screening Modes. Будет установлен, если вызываемый абонент выбирает для отправки вызывающему абоненту сценария «Torture».
  • INVALIDARGS

Синтаксис

Dial(Technology/Resource[&Technology2/Resource2[&…]][,timeout[,options[,URL]]])

Аргументы

Technology/Resource - Определение устройств для вызова в формате 'Technology/Resource', где <Technology> означает специфическую технологию драйвера канала, а <Resource> доступные для заданной технологии каналы.

  • DAHDI/1 - Вызов устройства DAHDI.
  • DAHDI/g0/${EXTEN} - Вызов через группу каналов DAHDI
  • SIP/100 - Вызов SIPпира.
  • PJSIP/${EXTEN}@pjsip_trunk - вызов через PJSIP транк.
  • Local/100@from-internal - вызов через локальный прокси драйвер Asterisk.
core show channeltypes

Technology2/Resource2 - Параллельный вызов дополнительных устройств. Если требуется вызвать более одного устройства используйте синтаксис: Technology2/Resource2&Technology3/Resourse3&…..

timeout - Время подачи вызова на указанные устройства. Если не задано, время по умолчанию 136 лет.

 exten => _1XXX,1,Dial(PJSIP/${EXTEN},60,)

Опции

  • A(x): Воспроизведение голосового сообщения для вызывающей стороны. Где (х) звуковой файл.
 exten => _1XXX,1,Dial(PJSIP/${EXTEN},60,A(demo-congrats))
  • a: Ответить на вызов, вне зависимости от состояния вызываемого канала. Обычно ответ на вызовпроисходит, когда отвечает вызываемый канал, но иногда требуется ответить до того, как поднимут трубку. Например при использовании опций A() и M().
  • b([[context^]exten^]priority[(arg1[^...][^argN])]): Перед началом исходящего вызова создается новый канал и выполняется GoSub. Gosub будет выполняться для каждого канала назначения.

[icoming]
exten => _9981138,1,Dial(SIP/666&PJSIP/89219981138@siptrunk,,b(option-b,s,1))

[option-b]
exten => s,1,Verbose(*option b*)
exten => s,n,return
  • B([[context^]exten^]priority[(arg1[^...][^argN])]): Выполнить переход, аналогичный GoSub до того, как будет вызван канал указанный в Technology/Resource
example option "B"

Таким образом, опция 'b' работает для нескольких каналов, перечисленных в Technology/Resource, 'B' - для одного.

  • C: Не создавать запись детализированного отчета о звонках (CDR) для этого вызова.
  • c: Если приложение Dial() отменяет этот вызов, всегда устанавливать HANGUPCAUSE в 'answered elsewhere'
  • d: Позволяет вызывающему абоненту набрать одну цифру, во время ожидания ответа. Расширение должно быть назначено в текущем контексте ил и в контексте определенном переменной EXITCONTEXT.
  • D([called][:calling[:progress]]): Отправить DTMFстроку набора, после ответа на вызов, но до того как каналы будут соединены.

DTMFможет быть отправлен как вызываемой стороне, так и вызывающей. Оба аргумента могут быть использованы отдельно. Если указан PROGRESS, его DTMFпосылается к вызываемой стороне сразу после получения сообщения PROGRESS message. (пример: использовать для автоматического донабора пин-кода в карточных системах).

  • e: Выполнить расширение 'h' после завершения вызова.
  • f([x]): If <x> is not provided, force the CallerID sent on a call-forward or deflection to the dialplan extension of this Dial() using a dialplan 'hint'. For example, some PSTNs do not allow CallerID to be set to anything other than the numbers assigned to you.

Если <x> задано, принудительно подставить значение в качестве CallerID.

  • F(context,exten,priority) - Когда вызывающийабонент завершает вызов, переадресовать вызываемого абонента аналогично GoTo по указанному назначению и выполнить.
    • F - если вызывающийабонент завершает вызов а параметры не заданы, перейти на 'n' следующий приоритет в текущем контексте.
  • g - Когда вызов завершен вызываемойстороной (в отличии от опции F), выполнить следующий приоритет в текущем контексте.
  • G - Если вызов отвечен, переадресовать вызывающую сторону на указанный приоритет(context,exten,priority), а вызываемую на указанный приоритет плюс 1.
example option "G"
  • h - Разрешить вызывающейстороне послать сигнал завершения вызова DTMFкодом из features.conf.
  • H - Разрешить вызываемойстороне послать сигнал завершения вызова DTMFкодом из features.conf.
  • i - Asterisk will ignore any forwarding requests it may receive on this dial attempt.
  • I - Asterisk will ignore any connected line update requests or any redirecting party update requests it may receive on this dial attempt.
  • k - Allow the called party to enable parking of the call by sending the DTMF sequence defined for call parking in features.conf.
  • K - Allow the calling party to enable parking of the call by sending the DTMF sequence defined for call parking in features.conf.
  • L - Limit the call to x milliseconds. Play a warning when y milliseconds are left. Repeat the warning every z milliseconds until time expires.

This option is affected by the following variables:
LIMIT_PLAYAUDIO_CALLER - If set, this variable causes Asterisk to play the prompts to the caller.
YES default: (true)
NO
LIMIT_PLAYAUDIO_CALLEE - If set, this variable causes Asterisk to play the prompts to the callee.
YES
NO default: (true)
LIMIT_TIMEOUT_FILE - If specified, filename specifies the sound prompt to play when the timeout is reached. If not set, the time remaining will be announced.
FILENAME
LIMIT_CONNECT_FILE - If specified, filename specifies the sound prompt to play when the call begins. If not set, the time remaining will be announced.
FILENAME
LIMIT_WARNING_FILE - If specified, filename specifies the sound prompt to play as a warning when time x is reached. If not set, the time remaining will be announced. FILENAME
x - Maximum call time, in milliseconds
y - Warning time, in milliseconds
z - Repeat time, in milliseconds

  • m - Provide hold music to the calling party until a requested channel answers. A specific music on hold class (as defined in musiconhold.conf) can be specified.

class

  • M - Execute the specified macro for the called channel before connecting to the calling channel. Arguments can be specified to the Macro using ^ as a delimiter. The macro can set the variable MACRO_RESULT to specify the following actions after the macro is finished executing:

MACRO_RESULT - If set, this action will be taken after the macro finished executing.
ABORT - Hangup both legs of the call
CONGESTION - Behave as if line congestion was encountered
BUSY - Behave as if a busy signal was encountered
CONTINUE - Hangup the called party and allow the calling party to continue dialplan execution at the next priority
GOTO:[[<CONTEXT>^]<EXTEN>^]<PRIORITY> - Transfer the call to the specified destination.
macro - Name of the macro that should be executed.
arg - Macro arguments

  • n - This option is a modifier for the call screening/privacy mode. (See the p and P options.) It specifies that no introductions are to be saved in the priv-callerintros directory.

delete - With delete either not specified or set to 0, the recorded introduction will not be deleted if the caller hangs up while the remote party has not yet answered.
With delete set to 1, the introduction will always be deleted.

  • N - This option is a modifier for the call screening/privacy mode. It specifies that if Caller*ID is present, do not screen the call.
  • o - If x is not provided, specify that the CallerID that was present on the calling channel be stored as the CallerID on the called channel. This was the behavior of Asterisk 1.0 and earlier. If x is provided, specify the CallerID stored on the called channel. Note that o(${CALLERID(all)}) is similar to option o without the parameter.

x

  • O - Enables operator services mode. This option only works when bridging a DAHDI channel to another DAHDI channel only. if specified on non-DAHDI interfaces, it will be ignored. When the destination answers (presumably an operator services station), the originator no longer has control of their line. They may hang up, but the switch will not release their line until the destination party (the operator) hangs up.

mode - With mode either not specified or set to 1, the originator hanging up will cause the phone to ring back immediately. With mode set to 2, when the operator flashes the trunk, it will ring their phone back.

  • p - This option enables screening mode. This is basically Privacy mode without memory.
  • P - Enable privacy mode. Use x as the family/key in the AstDB database if it is provided. The current extension is used if a database family/key is not specified.

x

  • r - Default: Indicate ringing to the calling party, even if the called party isn't actually ringing. Pass no audio to the calling party until the called channel has answered.

tone - Indicate progress to calling party. Send audio 'tone' from the indications.conf tonezone currently in use.

  • R - Default: Indicate ringing to the calling party, even if the called party isn't actually ringing. Allow interruption of the ringback if early media is received on the channel.
  • S(x) - Hang up the call x seconds after the called party has answered the call.
  • s - Force the outgoing callerid tag parameter to be set to the string x.

Works with the f option.

  • t - Allow the called party to transfer the calling party by sending the DTMF sequence defined in features.conf. This setting does not perform policy enforcement on transfers initiated by other methods.
  • T - Allow the calling party to transfer the called party by sending the DTMF sequence defined in features.conf. This setting does not perform policy enforcement on transfers initiated by other methods.
  • U - Execute via Gosub the routine x for the called channel before connecting to the calling channel. Arguments can be specified to the Gosub using ^ as a delimiter. The Gosub routine can set the variable GOSUB_RESULT to specify the following actions after the Gosub returns.
    • GOSUB_RESULT
      • ABORT - Hangup both legs of the call.
      • CONGESTION - Behave as if line congestion was encountered.
      • BUSY - Behave as if a busy signal was encountered.
      • CONTINUE - Hangup the called party and allow the calling party to continue dialplan execution at the next priority.
      • GOTO:[[<CONTEXT>^]<EXTEN>^]<PRIORITY> - Transfer the call to the specified destination.
    • x - Name of the subroutine to execute via Gosub
    • arg - Arguments for the Gosub routine
  • u - Works with the f option.
    • x - Force the outgoing callerid presentation indicator parameter to be set to one of the values passed in x:
      • allowed_not_screened allowed_passed_screen
      • allowed_failed_screen allowed
      • prohib_not_screened prohib_passed_screen
      • prohib_failed_screen prohib unavailable
  • w - Allow the called party to enable recording of the call by sending the DTMF sequence defined for one-touch recording in features.conf.
  • W - Allow the calling party to enable recording of the call by sending the DTMF sequence defined for one-touch recording in features.conf.
  • x - Allow the called party to enable recording of the call by sending the DTMF sequence defined for one-touch automixmonitor in features.conf.
  • X - Allow the calling party to enable recording of the call by sending the DTMF sequence defined for one-touch automixmonitor in features.conf.
  • z - On a call forward, cancel any dial timeout which has been set for this call.

URL - The optional URL will be sent to the called party if the channel driver supports it.

function 'CALLERID'

$
0
0

function 'CALLERID'

[Synopsis]
Gets or sets Caller*ID data on the channel.
 
[Description]
Gets or sets Caller*ID data on the channel. Uses channel callerid by default
or optional callerid, if specified.
The allowable values for the <name-charset> field are the following:
    unknown - Unknown
    iso8859-1 - ISO8859-1
    withdrawn - Withdrawn
    iso8859-2 - ISO8859-2
    iso8859-3 - ISO8859-3
    iso8859-4 - ISO8859-4
    iso8859-5 - ISO8859-5
    iso8859-7 - ISO8859-7
    bmp - ISO10646 Bmp String
    utf8 - ISO10646 UTF-8 String
 
[Syntax]
CALLERID(datatype[,CID]) 
[Arguments]
datatype
    The allowable datatypes are:
    all
    name
    name-valid
    name-charset
    name-pres
    num
    num-valid
    num-plan
    num-pres
    subaddr
    subaddr-valid
    subaddr-type
    subaddr-odd
    tag
    priv-all
    priv-name
    priv-name-valid
    priv-name-charset
    priv-name-pres
    priv-num
    priv-num-valid
    priv-num-plan
    priv-num-pres
    priv-subaddr
    priv-subaddr-valid
    priv-subaddr-type
    priv-subaddr-odd
    priv-tag
    ANI-all
    ANI-name
    ANI-name-valid
    ANI-name-charset
    ANI-name-pres
    ANI-num
    ANI-num-valid
    ANI-num-plan
    ANI-num-pres
    ANI-tag
    RDNIS
    DNID
    dnid-num-plan
    dnid-subaddr
    dnid-subaddr-valid
    dnid-subaddr-type
    dnid-subaddr-odd
CID
    Optional Caller*ID to parse instead of using the Caller*ID from the
    channel. This parameter is only optional when reading the Caller*ID.

example

set CallerID

  exten => s,1,Set(CALLERID(num)=812991138)

get CallerID

  exten => s,1,Set(_callidvar=${CALLERID(num)}

Функции Asterisk


asterisk:cmd:vmauthenticate

$
0
0

Команда VMAuthenticate

Авторизация пользователя, используя пароли из конфигурации голосовых ящиков.

Описание и использование:

VMAuthenticate([mailbox][@context][|options]):

Эта команда ведет себя аналогично приложению Authenticate(), за тем исключением, что пароли для проверки берутся из файла voicemail.conf. Если задан аргумент mailbox, то только пароль для данного голосового ящика будет правильным. Если название голосового ящика не задано, тогда будет установлена переменная канала AUTH_MAILBOX в значение, которое соответствует имени голосового ящика, для которого подошел пароль. Если опции содержат символ 's', тогда голосовое приглашение проигрываться не будет.

Команды диалплана Asterisk12 в алфавитном порядке

VMAuthenticate

$
0
0

VMAuthenticate

Авторизация пользователя, используя пароли из конфигурации голосовых ящиков.

Описание и использование:

VMAuthenticate([mailbox][@context][|options]):

Эта команда ведет себя аналогично приложению Authenticate(), за тем исключением, что пароли для проверки берутся из файла voicemail.conf. Если задан аргумент mailbox, то только пароль для данного голосового ящика будет правильным. Если название голосового ящика не задано, тогда будет установлена переменная канала AUTH_MAILBOX в значение, которое соответствует имени голосового ящика, для которого подошел пароль. Если опции содержат символ 's', тогда голосовое приглашение проигрываться не будет.

This application behaves the same way as the Authenticate application, but the passwords are taken from «voicemail.conf». If the <mailbox> is specified, only that mailbox's password will be considered valid. If the <mailbox> is not specified, the channel variable ${AUTH_MAILBOX} will be set with the authenticated mailbox. The VMAuthenticate application will exit if the following DTMF digit is entered as Mailbox or Password, and the extension exists:

  • - Jump to the 'a' extension in the current dialplan context.

[Syntax]

VMAuthenticate([mailbox][@context][,options])

[Arguments]

options

  s: Skip playing the initial prompts.

[See Also]

Not available

Команды диалплана Asterisk12 в алфавитном порядке

Команды плана набора (диалплана) Asterisk ...

$
0
0

Команды плана набора (диалплана) Asterisk сгруппированные по свойствам

Asterisk Dialplan Applications

Основные команды

  • Authenticate: Авторизация пользователя.
  • VMAuthenticate: Авторизация пользователя, используя настройки из файла voicemail.conf
  • Bridge: Соединение двух произвольных каналов.
  • ChannelRedirect: Переадресация существующего канала в другую точку плана набора.
  • CURL()
  • DUNDiLookup: Попробовать получить номер, через систему DUNDi.
  • Log: Вносит произвольный текст в файл(ы) лога сервера Asterisk.
  • JabberSend: Отправка текстового сообщения через Jabber.
  • PAGE: Передать голосовое сообщение через несколько телефонов (Paging)
  • SendDTMF: Отправка в канал произвольной последовательности DTMFцифр
  • SendImage: Отправка файла с изображением
  • SendText: Отправка текстового сообщения абоненту
  • SendURL: Отправка (url) на дисплей клиента
  • System: Выполнить команду операционной системы
  • Transfer: Перевод звонка на другой екстеншен
  • TrySystem: Выполнить команду операционной системы. Всегда возвращает 0
  • Wait: Пауза на заданное время
  • WaitExten: Ждать набора заданное время
  • WaitForRing: Ждать состояния «вызова абонента» (звонка)
  • WaitMusicOnHold: Ожидание с проигрышом музыки (Music On Hold) (1.6)

Билинг

  • ForkCDR: Получить из одной CDRзаписи две раздельных.
  • NoCDR(): Указывает Asterisk'у не сохранять CDRзапись для вызова.
  • ResetCDR: Сброс данных CDR.
  • SetAMAFlags: Установка флага AMA для билинга.
  • CDR(): Добавить пользовательские данные к существующим в записи CDR.

Управление вызовами (окончание связи, ответ на вызов, набор номера, и т.д.)

  • Answer(): Ответ на звонок, если по каналу поступает вызов
  • Busy(): Установить состояние «занято» и ждать окончания соединения
  • ChanIsAvail: Проверка на доступность канала связи
  • Congestion(): Установить состояние «перегрузки канала» и ждать окончания соединения
  • Dial(): Совершить вызов и, в случае успеха, соединить вызываемого с текущим каналом
  • DISA: Система DISA (Direct Inward System Access)
  • Hangup: Безусловное разъединение соединения
  • RetryDial: Совершить вызов заданного екстеншена, повторять при неудачной попытке вызова, вызывающий пользователь может закончить процедуру вызова, нажав кнопку на dtmf клавиатуре.
  • Ringing: Установить состояние «вызова абонента» (звонка)

Манипуляции с информацией о "звонящем" пользователе (ID, Имя и т.д.)

  • LookupBlacklist: Поиск имени/номера Caller*ID в черном списке
  • LookupCIDName: Поиск Имени CallerID в локальной базе данных
  • PrivacyManager: Требует ввода номера телефона, если CallerID не получен
  • CALLERID: Установка CallerID.
  • SetCallerPres: Изменяет режим публикации для callerid (используя текстовые значения)
  • CALLERID(name): Установка имени в CallerID.
  • CALLERID(number): Установка только номера в Caller ID (не имени).
  • SoftHangup: Требует разрыва связи на заданном канале
  • Zapateller(): Блокировка «telemarketers'a» с использованием SIT

ADSI

  • ADSIProg: Загрузка ADSI скрипта Asterisk в телефон
  • GetCPEID: Получить ADSI CPE ID

Работа с встроенной базой данных.

  • DB_DELETE: Удаление ключа из базы данных.
  • DBdeltree: Удаление дерева ключей из базы данных.
  • mysql: Команда позволяет работать с базой данных mySQL.

Смотри Asterisk database для получения подробной информации.

Интеграция с приложениями

  • AGI: Выполнение AGI скрипта
  • DeadAGI: Выполнение AGI для разьедененного канала
  • EAGI: Выполнение приложения AGI на локальной или удаленной машине
  • EnumLookup: Удалена в версии 1.4.x. Используйте: ENUMLOOKUP().
  • Macro: Выполнение макроса
  • NoOp: Нет операции. Может печатать значение переменных в консоли для отладки плана набора.
  • Perl: res_perl типа mod_perl для Apache, только в данном случае для Asterisk
  • PHP: res_php интеграция PHP в Asterisk без применения AGI
  • Read: Считывает полученные DTMFсимволы
  • TXTCIDName: Поиск имени звонящего в DNSзаписях TXT
  • UserEvent: Отправка произвольного события в интерфейс управления (manager interface)

Управление потоками и таймаутами

  • TIMEOUT (absolute): Установка абсолютно максимального времени для вызова.
  • TIMEOUT (digit): Установка максимального таймаута между набираемыми цифрами.
  • Gosub: Перейти к выполнению подпрограммы и вернуться (новое в v1.2).
  • GosubIf: Условный переход к выполнению подпрограммы и возврат из нее (новое в v1.2).
  • Goto: Переход на заданный приоритет, екстеншен или контекст в плане набора.
  • GotoIf: Переход по условию.
  • GotoIfTime: Условный переход зависящий от текущего времени.
  • Random: Переход в плане набора с определенной вероятностью. (1.4~~, ~~red:1.6+)
  • TIMEOUT (response): Установка максимального времени ожидания ввода пользователя.
  • ReturnВозврат из подпрограммы, выполненой по команде Gosub или из GosubIf (новое в v1.2)
  • StackPop: Удалить адрес точки возврата не совершая сам возврат (новое в v1.2)
  • While: Начать выполнение цикла While - *1.2beta
  • EndWhile: Закончить выполнение цикла While - *1.2beta
  • ExecIf: Выполнение внешней программы по заданному условию - *1.2beta

Манипуляции со строками и переменными

  • MATH():
  • SetGlobalVar: Установка значения глобальной переменной
  • Set: Установка значения (или значений) переменной канала или функции
  • SORT: Функция обработки строк..

Звук: Запись и Воспроизведение

  • BackGround: Проигрывает звуковой файл, в это время могут исполняться другие команды.
  • BackgroundDetect: Аналогично команде Background с возможностью определения разговора.
  • ControlPlayback: Проигрывает звуковой файл с возможностью перемотки вперед, назад и останова.
  • Echo: Воспроизвести, то что говорит абонент (эхо).
  • Festival: Проговаривает текст, используя систему синтеза речи Festival.
  • Flite: Проговаривает текст, используя систему синтеза речи Festival Lite (более быстрый отклик, чем при использовании синтезатора Festival).
  • Milliwatt: Генерация чистого тона 1000Hz с уровнем 0dbm (mu-law).
  • MP3Player: Проигрывает MP3 файл или поток.
  • MusicOnHold: Проигрыш музыки ожидания (Music On Hold), неопределенно долго.
  • Playback: Проигрывает звуковой файл.
  • PlayTones: Проигрывает список тонов, в это время могут исполняться другие команды.
  • Progress: Функция, дающая возможность проигрывания звукового файла вызывающему абоненту до момента ответа на вызов (перевода линии в отвеченное состояние).
  • SayUnixTime: Проговаривает дату и/или время.
  • SayAlpha: Проговаривает буквы.
  • SayDigits: Проговаривает цифры.
  • SayNumber: Проговаривает номер.
  • SayPhonetic: Проговаривает буквы фонетическим алфавитом.
  • SetMusicOnHold: Установка класса по умолчанию для музыки ожидания (Music On Hold).
  • SetLanguage: Изменение языка для проигрываемых звуков.
  • StopPlayTones: Останавливает проигрыш списка тонов.

Смотри Asterisk sound files для более детальной информации.

Звук: Запись и мониторинг (прослушивание) разговоров

  • ALSAMonitor: Мониторинг консоли ALSA
  • ChangeMonitor: Изменения имени файла для записи разговора
  • ChanSpy: Универсальный «встреватель в разговоры»
  • Dictate: Запись и воспроизведение надиктованного текста (диктанта)
  • MixMonitor: Запись и миксирование обоих сторон телефонного разговора (в отличии от команды Monitor) v1.2.x
  • Monitor: Запись телефонного разговора в звуковой файл
  • Record: Запись телефонного разговора в звуковой файл
  • StopMonitor: Остановить запись телефонного разговора

Команды канала SIP

  • SIPDtmfMode: Изменение режима DTMFсигнализации в процессе вызова по SIPканалу
  • SIPGetHeader: Получение заголовка из SIPсообщения «invite» (заменена на SIP_HEADER() )
  • SIPAddHeader: Добавление заголовка в исходящее SIPсообщение «invite»

Команды канала DAHDI (бывший канал ZAP)

  • Flash: Отправка сигнала «Flash» через DAHDI (Zap) транк.
  • DAHDIBarge: Прослушивание вызовов, проходящих через каналы DAHDI. (ранее называлась ZapBarge)
  • DAHDISendKeypadFacility?: Отправка OOB (out of band) номера через интерфейс PRI.
  • DAHDIRAS: Предоставляет доступ к сервису передачи данных ISDN интерфейса. (ранее называлась ZapRAS)
  • DAHDIScan: Сканирование и мониторинг вызовов через DAHDIканалы. (ранее называлась ZapScan)

Смотри Asterisk zap channels, zapata.conf для более детальной информации.

Команды для голосовых ящиков и конференций

  • Directory: Сервис справочника по номерам голосовой почты.
  • HasNewVoicemail: Условное ветвление на приоритет + 101
  • MailboxExists: Начиная с версии 1.6 это функция MAILBOX_EXISTS. Проверка на существование голосового ящика
  • MeetMe: Вход в конференцию MeetMe?
  • MeetMeAdmin: Команда администрирования конференций MeetMe?
  • MeetMeCount: Количество участников в конференции MeetMe?
  • VoiceMail: Оставить голосовое сообщение
  • VoiceMailMain: Вход в систему голосовых сообщений
  • VMAuthenticate: Авторизация пользователя, используя настройки из файла voicemail.conf

Смотри voicemail.conf для более детальной информации.

Управление очередями вызовов и ACD

  • AddQueueMember: Динамическое добавление агента для обработки очереди.
  • AgentCallbackLogin: Авторизация агента с обратным вызовом.
  • AgentLogin: Авторизация агента.
  • AgentMonitorOutgoing: Запись исходящих вызовов агентов.
  • ParkAndAnnounce: Парковка и Анонс (вызова наверно).
  • ParkedCall: Ответ на «запаркованный» вызов.
  • PauseQueueMember: Временная остановка работы участника, обрабатывающего очередь вызовов.
  • Queue: Помещение вызова в очередь.
  • RemoveQueueMember: Динамическое удаление агента из участников обрабоки очереди.
  • UnpauseQueueMemeber: Возобновление работы участника, обрабатывающего очередь вызовов

Alarm Monitoring/Central Station

  • AlarmReceiver: Emulate an Ademco Contact ID Alarm Receiver

Радиолюбительская связь/Связь с радио ретрансляторами и базовыми станциями

  • Rpt: Поддержка коммуникации с радио ретрансляторами и базовыми станциями.

Интеграция с внешними приложениями (которых нет в CVS)

  • Asterisk app_dbodbc: Модификатор плана набора, использующий unixODBC?
  • DynExtenDB: Хранение екстеншенов в базе
  • Iconv: Конвертор кодировок символов.
  • LDAPget: Получение значений от LDAP сервера
  • app Prepaid: Предназначено для Postgres
  • PPPD?: PPP коннектор

Bristuff applications

  • Pickup: Mostly channel independent; part of bristuff? patch
  • PickupChan: Pick up the specified channel
  • PickDown: Hang up on a remotely ringing call
  • Steal: Take over a bridged call (leg)
  • DEVICE_STATE(): Generate a device state change event (inuse, busy, ringing …)
  • Segfault: Crash Asterisk with segfault
  • ZapEC: Enable or disable echo cancellation for Zap
  • Autoanswer: Autoanswer a call for a specified extension
  • AutoanswerLogin: Login to the autoanswer application

vISDN applications

  • VISDNOverlapDial()

Команды приложения для Sirrix каналов?

  • SrxEchoCan: Включить/выключить Подавление Эха
  • SrxDeflect: Перенаправить входящий вызов
  • SrxMWI: Установка/Сброс MessageWaitingIndication? (MWI) для групп Sirrix

Настройка Asterisk

How To

$
0
0

How To

Решения Asterisk

В этом разделе собраны пошаговые инструкции по настройке приложений, непосредственно взаимодействующих с Asterisk. Программы для отправки и приема факсов; веб-приложения по обработке статистики вызвовов (CDR) и очередей (queues); CRMсистемы; панели оператора; запись разговоров в Asterisk; настройки БД; скрипты bash и php; приложения безопасности и др..

Настройки оборудования

Настройки операционной системы и приложений

Asterisk pjsip.conf

$
0
0

Asterisk pjsip.conf

PJSip - драйвер канала SIP в Asterisk 12.

Что такое PJSIP

PJSIP мультимедийная библиотека с открытым кодом, для реализации протоколов SIP, SDP, RTP, STUN, TURNи ICE. Она сочетает лучшие возможности SIPсигнализации, хорошую проходимость NATи высокий уровень взаимодействия с приложениями. Подходит практически для любого типа систем, начиная от компьютеров и заканчивая встраиваемыми системами (embedded systems) и мобильными телефонами.

Формат файла pjsip.conf

Pjsip.conf обычный текстовый файл, как и все конфигурационные файлы Asterisk, состоит из секций. Каждая секция (раздел) определяет конфигурацию объекта res_pjsip.

Секции отделены друг от друга именами, заключенными в квадратные скобки [какая неожиданность]

и содержат одну или более конфигурационную опцию и её значение отделенное знаком равно.

[ SectionName ] 
ConfigOption = Value 
ConfigOption = Value

Имена секций pjsip.conf

В большинстве случаев имена секций могут быть произвольными, однако в случае с типами ENDPOINT и AORимена должны

совпадать со заголовком SIPURI«To» для идентификации входящих SIPзапросов.

Каждая секция имеет обязательную опцию type=, которой определяется назначение секции в конфигурации объектов res_pjsip.

Типы секций pjsip.conf

Ниже перечислены типы секций res_pjsipи простейшие примеры конфигурации.

Варианты и значения по умолчанию

Как узнать возможные варианты значений и параметры по умолчанию?

В этом поможет встроенная справка интерфейса командной строки (CLI).

«config show help res_pjsip <configobject> <configoption>»

config show help res_pjsip aor

ENDPOINT

Модуль ENDPOINT определяет многочисленные параметры SIP, а также связь с другими модулями - AUTH, AORи TRANSPORT.
Секция ENDPOINT должна быть обязательно связана с одной или несколькими секциями AOR.
По сути дела, ENDPOINT является основным профилем SIPтелефона или SIPтранка в res_pjsip, аналогично пиру в sip.conf.
Только если там определялись почти все параметры, то здесь часть ключевых свойств вынесены в специальные секции (модули), которые и будут рассмотрены ниже.

config show help res_pjsip endpoint
Простой пример конфигурации секции ENDPOINT

[777]
type=endpoint
context=from-internal
disallow=all
allow=alaw
transport=udp-transport
auth=auth777
aors=777
В данном примере мы видим тип секции: type=endpoint
контекст, разрешенные кодеки и также ассоциацию с другими секциями
transport=udp-transport, auth=auth777и aors=777.
Насколько я понимаю, опции typeи aorsявляются обязательными для работоспособности точки.
Для назначения Caller ID этому пиру(ENDPOINT), потребуется задать следующие параметры:
trust_id_outbound=yes
callerid=V Pupkin <777>

TRANSPORT

Настройка транспортного уровня res_pjsip. Используются протоколы UDP, TCP, WebSockets и методы шифрования TLS/SSL. Можно настроить одну транспортную секцию для использования множеством точек (ENDPOINT), или создать уникальный транспортный уровень для конкретной точки. Условно, можно сравнить TRANSPORT, с секцией [general] sip.conf.

config show help res_pjsip transport

По умолчанию, для применения настроек транспортного уровня недостаточно перечитать конфиги. Потребуется рестартовать Asterisk, если не задано allow_reload=true

простой пример конфигурации секции TRANSPORT

[udp-transport]
type=transport
protocol=udp
bind=0.0.0.0

или TLS транспорт:

[tls-transport]
type=transport
protocol=tls
bind=0.0.0.0
;various TLS specific options below:
cert_file=
privkey_file=
ca_list_file=
cipher=
method=
Каждый транспорт в вашей системе должен иметь уникальный порт (также как и в sip_profilesво FreeSWITCH)

localhost*CLI> pjsip show transports

Transport:  <TransportId........>  <Type>  <cos>  <tos>  <BindAddress....................>
 =========================================================================================

Transport:  udp-transport             udp      0      0  0.0.0.0:5080
Transport:  udp-transport-infra       udp      0      0  192.168.1.110:5081
Transport:  udp-transport-megafon     udp      0      0  0.0.0.0:5060

AUTH

Секция аутентификации содержит опции и полномочия для входящих и исходящих регистраций. С этой секцией ассоциируются такие секции как ENDPOINT и REGISTRATIONS. Множество точек и регистраций могут использовать одну и ту же секцию аутентификации, если требуется.

config show help res_pjsip auth
Простой пример секции AUTH

[auth777]
type=auth
auth_type=userpass
password=password
username=777
с использованием MD5
[auth6001]
type=auth
auth_type=md5
md5_cred=5f4dcc3b5aa765d61d8327deb882cf99
username=777

AOR

Главная функция AoR (Address of Record) указать Asterisk, как связаться с ENDPOINT. Без соответствующей AORсекции, точка ENDPOINT будет недоступна для вызова. Здесь также задаются соответствия голосовой почте, MWI, продолжительность действия регистрации -expiration и настройки qualify (периодической отправки SIPсообщений OPTONS для мониторинга состояния устройств)

Когда Asterisk получает запрос на регистрацию от устройства, он в первую очередь ищет соответствующую SIPзаголовку To: «777»<sip:777@192.168.1.21;transport=UDP> запись в именах секций AOR– в нашем прмере [777]

config show help res_pjsip aor
Простейший пример секции AOR

[777]
type=aor
max_contacts=1
Опция max_contact=1 значит, что только один SIP User Agent может быть одновременно зарегистрирован через эту запись AOR, можно указать и 10, если потребуется.
[777]
type=aor
contact=sip:777@192.168.1.21:5060
Во втором примере мы не ожидаем запроса на регистрацию от SIP UA, а указываем вручную постоянный контакт для этой записи. Можно не беспокоится о кол-ве подключений, адрес все равно один.
[siptrunk]
type=aor
contact=sip:123.123.1.1:5060
В последнем примере пропущен username, что позволяет использовать данную запись для исходящей связи, определяя вызываемый номер при помощи диалплана «Dial(PJSIP/${EXTEN}@siptrunk)».

REGISTRATION

Секция регистраций отвечает за исходящие регистрации. Используется для регистрации в удаленных системах, будь то другой Asterisk или транк от провайдера.

config show help res_pjsip_outbound_registration registration
Пример секции REGISTRATION

[siptrunk]
type=registration
transport=udp-transport
outbound_auth=siptrunk
server_uri=sip:123.123.1.1:5060
client_uri=sip:username@192.168.1.1:5060
retry_interval=60
Для регистрации понадобится определить используемый транспорт и секцию аутентификации. Помимо этого, наверняка, потребуется указать контакт для входящих вызовов.

[providertrunk]
type=registration
transport=udp-transport
outbound_auth=providertrunk
server_uri=sip:sip.example.com
client_uri=sip:1234567890@sip.example.com
retry_interval=60
Пример регистрации транка провайдера.

DOMAIN_ALIAS

Псевдоним домена. [Имя] данной секции является псевдонимом, а конфигурационная опция domain=, доменным именем, которому сопоставлен псевдоним.

config show help res_pjsip domain_alias
Пример секции DOMAIN_ALIAS

[example2.com]
type=domain_alias
domain=example.com

ACL

Модуль не привязан к какой-либо точке ENDPOINTs и управляет всеми входящими SIPкоммуникациями с использованием res_pjsip. Установки ACl (Access Control Lis) могут быть назначены в самой секции, или в файле acl.confна который будет ссылаться секция.

config show help res_pjsip_acl acl
Простые примеры ACL

Asterisk 12 res_pjsip_acl

Настройки берутся из файла acl.conf:

[acl]
type=acl
acl=example_named_acl1
Настройки непосредственно в секции:
[acl]
type=acl
deny=0.0.0.0/0.0.0.0
permit=123.12.123.0
permit=123.12.123.1
Конфиг разрешающий регистрацию на основе SIPзаголовка, а не IP адреса.
[acl]
type=acl
contactdeny=0.0.0.0/0.0.0.0
contactpermit=123.12.123.0
contactpermit=123.12.123.1

IDENTIFY

Определяет конечные точки с помощью IP-адреса источника.

config show help res_pjsip_endpoint_identifier_ip identify
Пример identity

[777]
type=identify
endpoint=777
match=123.0.112.1

CONTACT

Контакты являются одним из способов не указывать явно SIPURIв плане набора (диалплане).

config show help res_pjsip contact

Отношения объектов конфигурации pjsip.conf

ENDPOINT

  • Множество ENDPOINTs связываются с множеством AORs
  • Ноль или больше ENDPOINTs связаны с ноль или одной AUTHs
  • Ноль или больше ENDPOINTs связаны с как минимум одним TRANSPORT
  • Ноль или одна ENDPOINTs связана с определенной IDENTIFY

REGISTRATION

  • Ноль или больше REGISTRATIONs связаны с ноль или одной AUTHs
  • Ноль или больше REGISTRATIONs связаны с как минимум одним TRANSPORT

AOR

  • Множество ENDPOINTs связываются с множеством AORs
  • Множество AORs связаны с множеством CONTACTs

CONTACT

  • Множество CONTACTs связываются с множеством AORs

IDENTIFY

  • Ноль или больше ENDPOINTs связаны с определенным IDENTIFY объектом.

ACL, DOMAIN_ALIAS

  • Эти объекты не имеют направленных связей с другими объектами.

Примеры

Пример ENDPOINT для одного SIP телефона с регистрацией на Asterisk.

;===============TRANSPORT
 
[udp-transport]
type=transport
protocol=udp
bind=0.0.0.0
 
;===============EXTENSION 777
 
[777]
type=endpoint
context=from-internal
disallow=all
allow=alaw
transport=udp-transport
auth=auth777
aors=777
 
[auth777]
type=auth
auth_type=userpass
password=777
username=777
 
[777]
type=aor
max_contacts=1
  • auth= используется для входящей аутентификации
  • max_contacts= установите кол-во регистраций, одну или более, разрешенных для этой учетной записи.
Пример SIP транка с исходящей регистрацией

;==============TRANSPORTS
 
[udp-transport]
type=transport
protocol=udp
bind=0.0.0.0
 
;===============TRUNK
 
[siptrunk]
type=registration
transport=udp-transport
outbound_auth=siptrunk
server_uri=sip:sip.example.com
client_uri=sip:1234567890@sip.example.com
retry_interval=60
 
[siptrunk]
type=auth
auth_type=userpass
password=1234567890
username=1234567890
 
[siptrunk]
type=aor
contact=sip:123.0.112.1:5060
 
[siptrunk]
type=endpoint
transport=udp-transport
context=from-trunk
disallow=all
allow=ulaw
outbound_auth=siptrunk
aors=siptrunk
 
[siptrunk]
type=identify
endpoint=siptrunk
match=123.0.112.1
Пример регистрации множественных ENDPOINTs с использованием шаблонов

;===============TRANSPORT
 
[udp-transport]
type=transport
protocol=udp
bind=0.0.0.0
 
;===============ENDPOINT TEMPLATES
 
[endpoint-basic](!)
type=endpoint
transport=udp-transport
context=from-internal
disallow=all
allow=alaw
 
[auth-userpass](!)
type=auth
auth_type=userpass
 
[aor-single-reg](!)
type=aor
max_contacts=1
 
;===============EXTENSION 777
 
[777](endpoint-basic)
auth=auth777
aors=777
 
[auth777](auth-userpass)
password=777
username=777
 
[777](aor-single-reg)
 
;===============EXTENSION 778
 
[778](endpoint-basic)
auth=auth778
aors=778
 
[auth778](auth-userpass)
password=778
username=778
 
[778](aor-single-reg)
 
;===============EXTENSION 779
 
[779](endpoint-basic)
auth=auth779
aors=779
 
[auth779](auth-userpass)
password=779
username=779
 
[779](aor-single-reg) 
Диалплан extensions.conf
 exten => _6XXX,1,Dial(PJSIP/${EXTEN})
 exten => _9NXXNXXXXXX,1,Dial(PJSIP/mytrunk/sip:${EXTEN:1}@203.0.113.1:5060)
 exten => _9NXXNXXXXXX,1,Dial(PJSIP/${EXTEN:1}@mytrunk)

От старого к новому - sip.conf к pjsip.conf сравнение примеров.

Сравнение конфигурации ENDPOINT

  • Два SIPтелефона должны звонить и принимать вызовы через Asterisk.
  • В обоих случаях для аутентификации используются username и password.
  • 777 регистрируется с динамического IP, 778 со статического IP адреса.

1

sip.confpjsip.conf
[general]
udpbindaddr=0.0.0.0
 
[777]
type=friend
host=dynamic
disallow=all
allow=alaw
context=from-internal
secret=1234
 
[778]
type=friend
host=192.168.1.2
disallow=all
allow=alaw
context=from-internal
secret=1234
[udp-transport]
type=transport
protocol=udp
bind=0.0.0.0
 
[777]
type = endpoint
transport = sudp-transport
context = from-internal
disallow = all
allow = alaw
aors = 777
auth = auth777
 
[777]
type = aor
max_contacts = 1
 
[auth777]
type=auth
auth_type=userpass
password=1234
username=777
 
[778]
type = endpoint
transport = udp-transport
context = from-internal
disallow = all
allow = alaw
aors = 778
auth = auth778
 
[778]
type = aor
contact = sip:778@192.168.1.2:5060
 
[auth778]
type=auth
auth_type=userpass
password=1234
username=778

Сравнение конфигурации trunk

sip.confpjsip.conf
[general]
udpbindaddr=0.0.0.0
 
register => myaccountname:1234567890@203.0.113.1:5060

[mytrunk]
type=friend
secret=1234567890
username=myaccountname
host=123.0.112.1
disallow=all
allow=alaw
context=from-trunk
[simpletrans]
type=transport
protocol=udp
bind=0.0.0.0 
[mytrunk]
type=registration
transport=simpletrans
outbound_auth=mytrunk
server_uri=sip:@123.0.112.1:5060
client_uri=sip:myaccountname@123.0.112.1:5060
 
[mytrunk]
type=auth
auth_type=userpass
password=1234567890
username=myaccountname
 
[mytrunk]
type=aor
contact=sip:123.0.112.1:5060
 
[mytrunk]
type=endpoint
transport=simpletrans
context=from-trunk
disallow=all
allow=alaw
outbound_auth=mytrunk
aors=mytrunk
 
[mytrunk]
type=identify
endpoint=mytrunk
match=123.0.112.1

Каналы в Asterisk

Настройка Asterisk

Viewing all 1135 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>