Администрирование asterisk

Администрирование asterisk Хостинг

IP-АТС Asterisk умеет все то же, что и традиционная АТС, плюс поддерживает актуальные для бизнеса VoIP-протоколы: голосовую почту, конференц-связь, центр обработки звонков, интерактивное меню, хранение записей. Рассказываем, как настроить с нуля базовый функционал «Астериск» АТС и получить рабочий сервер компьютерной телефонии.

Для примера настройки Asterisk возьмем офис с такими характеристиками:

  • 3 отдела, в которых работают 25 сотрудников;
  • используются трехзначные телефонные номера;
  • услуги предоставляет один SIP-провайдер.

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

В разных операционных системах (Cent Os, Ubunty и др.) отличаются команды и необходимые зависимости.

Содержание
  1. Файлы для первоначальной настройки
  2. Установка Asterisk из исходников
  3. Сборка и установка необходимых зависимостей и пакетов.
  4. Установка и установка их исходников
  5. Подключение абонентов
  6. Добавление плана звонков
  7. Настройка транка
  8. Редактирование dialplan
  9. Ошибки в настройке Asterisk
  10. Расширенные настройки Asterisk
  11. Настройка голосового меню (IVR)
  12. Голосовая почта
  13. Очередь входящих звонков (queue)
  14. Статистика звонков (cdr viewer)
  15. Запись разговоров (record)
  16. Музыка на ожидании (hold on)
  17. Конференции
  18. Перевод, перехват и переадресация звонков
  19. Настройка Asterisk с помощью fail2ban
  20. Настройка обратного звонка
  21. <input type=»submit» value=»Позвонить! «> Настройка черного списка Эта настройка Asterisk позволяет запретить нежелательные входящие звонки и оставить линию свободной для приоритетных звонков! Работает следующим образом: сверяет, не содержится ли входящий номер в черном списке внутренней базы данных Asterisk. Для проверки используется astdb, на выходе функция возвращает значение «0» (нет в базе данных) или «1» (есть в базе данных). Для вызова функции используется команда: Допустим, 2000 – наш абонент, 8882888 – CallerID в черном списке. Тогда: same => n,Dial(PJSIP/2000,,tr) exten => black,1,Playback(privacy-you-are-blacklisted) same => n,Hangup() Чтобы добавить новый номер в черный список, используем Asterisk CLI (Command Line Interface): asterisk -rx «database put blacklist 8882888 1» Допустим, нам нужно текущее содержимое черного списка. Как его получить: Чтобы сделать то же самое, но с помощью sqlite cli, выполняем команду: sqlite> select * from astdb where key like ‘%blacklist%’; Настройка умной предустановленной переадресации вызовов music => default context => default number => 1965751234,5 number => 17182025678,20 number => 1234
  22. number => 09253&410,30,2 ; вызываются одновременно 09253 и 410 в течение 30 секунд. number => 525,40,1 ; но сначала вызывается 525 в течение 40 секунд.
  23. Автообзвон
  24. Отправка факсов на e-mail
  25. Не нужно платить за лицензии, минуты и количество пользователей. Легко масштабируется под любое количество сотрудников. После настройки Asterisk вы получаете неограниченный набор функций IP-телефонии: запись и хранение звонков, голосовое меню, интеграцию с CRM и мессенджерами, автообзвон, обратный звонок и прочее.
  26. Установка
  27. Конфигурационные файлы Asterisk
  28. Realtime архитектура Asterisk
  29. Каналы связи в Asterisk
  30. NAT SIP Asterisk
  31. План набора Asterisk
  32. Команды диалплана Asterisk
  33. Функции диалплана Астериск
  34. Очереди и Агенты Asterisk
  35. Шифрование в Asterisk
  36. Конференции Asterisk
  37. Абонентские функции Asterisk
  38. Отчеты о звонках Asterisk
  39. Логи в Asterisk
  40. CLI — интерфейс командной строки Asterisk.
  41. Asterisk AMI
  42. Asterisk Call Files — Автообзвон
  43. Asterisk ARI

Файлы для первоначальной настройки

Настройка Asterisk – это, по сути, редактирование конфигурационных файлов в директории /etc/asterisk/
. К таким файлам относят:

  • pjsip.conf – настройка мультимедийной библиотеки PJSIP;
  • extensions.conf – настройка диалплана: вызовы, переадресация, мелодии на удержании, автосекретарь и прочее;
  • asterisk.conf – настройка путей к используемым папкам Asterisk;
  • cdr.conf – основные настройки отчета о звонках Call Detail Record;
  • rtp.conf – настройки протокола RTP;
  • features.conf – параметры перехвата и парковки вызова, максимальное время набора и переадресации, DTMF-коды абонентских функций;
  • modules.conf – данные о модулях загрузки при старте Asterisk;
  • musiconhold.conf – конфигурации музыки на удержании;
  • iax.conf – соединения по протоколу IAX для объединения между собой двух и более АТС;
  • voicemail.conf – параметры голосовой почты;
  • logger.conf – параметры журналирования работы Asterisk.

Установка Asterisk из исходников

Сборка и установка необходимых зависимостей и пакетов.

Вначале нужно установить дополнительные пакеты, которые необходимы для установки и работы Asterisk. Без части из этих пакетов Asterisk вообще откажется устанавливаться (к примеру, если отсутствует gcc). Без некоторых пакетов Asterisk установится и даже будет работать, однако часть функционала окажется недоступна.

Например, пакет bison необходим для обработки выражений в файле extensions.conf. Еще пример: libnewt необходим для работы интерфейса управления astman. Для сервера Asterisk он не требуется, но без этого пакета у вас не будет приложения astman, которое является отдельной программой.

Приводим пример установки Asterisk 13 в системе Cent OS 6.9:

yum -y install gcc gcc-c++ make ncurses-devel libxml2-devel sqlite-devel bison kernel-headers kernel-devel openssl openssl-devel newt newt-devel flex curl sox binutils

Для 12-13 версии Asterisk требуется установка пакетов uuid и janson. Для установки библиотеки uuid в RHEL / Centos выполните команду:

yum -y install libuuid-devel

. Для установки библиотеки jansson в RHEL / Centos выполните команду:

yum -y install jansson-devel
(предварительно требуется установка репозитория epel): yum install epel-release

После обновляем систему до последней версии командой yum update –y
и перегружаем ее:

Установка и установка их исходников

Настройка Asterisk выполняется в чистом виде, без дополнительных плат расширения и модемов. Так вы получите максимально эффективное и рабочее решение – программную АТС, которую можно легко переносить с одного сервера на другой. Для этого необходимо установить Asterisk с нуля, инсталлировать pjproject с jansson, обновить систему и отключить SELinux.

Для начала отключим Selinux
. Для этого заходим /etc/selinux/config и ставим: SELINUX=DISABLED
.

Также выключаем FireWall (iptables)
:

  1. Проверка статуса: service
  2. Отключение: service
  3. Отключение из автозагрузки: chkconfig iptables off
  4. Перегружаем систему:

git clone git://github.com/asterisk/pjproject pjproject

Для конвертации mp3-файлов необходим пакет Lame. Установим его из репозитория:

rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

— проверка установленных репозиториев

Далее устанавливаем сам пакет: yum install lame

Скачиваем и устанавливаем библиотеку Libpri:

tar xvfz libpri-1.4-*.tar.gz

Если команды wget – не существует, то устанавливаем ее командой yum –y install wget

Далее скачиваем и устанавливаем сам asterisk 13
:

tar xvfz asterisk-13-current.tar.gz

Если при проверки и подготовки сборки необходимых настроек, моделей никаких ошибок нету, то появиться в консоли иконка Asterisk

Настройка Asterisk АТС - изображение 1

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

Выберите модули и звуки (можно оставить по умолчанию). В модулях выбираем только sip. (pjsip не ставим):

Настройка Asterisk АТС - изображение 2

Настройка Asterisk АТС - изображение 3

Настройка Asterisk АТС - изображение 4

Установите озвучку для core и extra (для второй она доступна на русском языке). Рекомендуем кодеки g729, alaw, ulaw, ,gsm. Далее уже на Ваш вкус какие кодеки необходимы.:

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

При успешной установки Asterisk видно в строчках лога эмблему Asterisk (появляется после этапа configure)
.

Добавьте Asterisk в автозапуск и приступайте к работе:

chkconfig asterisk on

service asterisk start

Проверьте корректность запуска через консоль:

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

Читайте также:  Porn hosting

Подключение абонентов

Протестируйте работу ATC Asterisk с помощью программного сервиса звонков. Сделайте базовые настройки в файле конфигурации sip.conf (где лежит – /etc/asterisk/sip.conf). По умолчанию в нем много полезных комментариев, но они загромождают код. Рекомендуем сделать копию файла конфигурации и сохранить ее отдельно, а оригинальную очистить от лишнего текста. Пример типовой конфигурации Asterisk:

context = default

realm = Test Aster

trustrpid = yes

sendrpid = yes

Настройка peer — https://www.voip-info.org/wiki/view/Asterisk+config+sip.conf

Для применения изменений Sip перегружаем SIP в консоли астера (asterisk -r) командой sip reload

Добавление плана звонков

План звонков при настройке Asterisk потребуется для совершения вызовов. Найдите файл конфигурации extensions.conf, сделайте его резервную копию, а оригинальную версию очистите от комментариев и запишите в нее следующее:

extension — http://asterisk.ru/knowledgebase/Asterisk+config+extensions.conf

;для исход. внутренних номеров между собой

Так вы добавите план звонков на трехзначные номера. В нашем случае это номера 101 и 102 (в sip.conf)

Перезагрузите план набора (диалплан):

Не страшно, если на экране появятся сообщения об ошибках – вы еще не завершили настройку и исправите их на следующих шагах.

Проверьте список пользователей командой:

sip show peers

Список пользователей и их пароли

Пользователи, пароли и контекст

Установите любую программную «звонилку» или воспользуйтесь реальным телефоном. В первом варианте вам понадобится настроить софт для работы с АТС. В нашем примере используем Zoiper 5. Пример настроек указан в нашей вики http://wiki.new-tel.net/doku.php?id=Zoiper-PC
:

Рекомендованные настройки для программной «звонилки»

Настройки софтовой «звонилки» для проверки Asterisk

Все дальнейшие настройки звонилки и принцип работы указан в ссылке выше.

Теперь проверьте подключенные пиры с помощью команды:

Sip show peers

Если все верно, вы увидите такую строку:, в котором видно нашу SIP-линию и статус подключения SIP-линии:

Sip-линия IP-address A 5060 OK Cached RT

После настройки Asterisk протестируйте звонки на двух абонентах. Для этого подключите еще один физический или программный телефон. Позвоните от одного абонента другому (набрав с 101 на 102 и наоборот). Проверьте содержимое файла /var/log/asterisk/full.
– там появится запись о последнем вызове. Также там фиксируется все сообщения и ошибки, возникаемые при работе Asterisk
.

Записи обо всех последующих вызовах тоже попадут в этот файл. Позже их можно будет перебросить в базу данных.

Настройка транка

В конец файла sip.conf
добавьте нового пира, как это рекомендует ваш провайдер:

secret=password ;пароль для подключения транка

Пусть Asterisk заново перечитает файл:

Если настройка программы в IP АТС Asterisk прошла успешно, в консоли появится такая строка:

Sip-линия IP-address A 5060 Unmonitored Cached RT

Редактирование dialplan

Чтобы настроить входящие и исходящие звонки в IP-телефонии Asterisk, отредактируйте файл extensions.conf, добавив в конце следующий код (с контекста local)
:

;для исход по транку (пример указан с префиксом 123#).

exten => _123#8XXXXXXXXXX,1,Set(CALLERID(all)=78125000963)

exten => _123#8XXXXXXXXXX,n,Noop( (CALLERID(all) + Boris)

избавление от префикса 123# и заменой цифры 8 на 7. Далее отправляется звонок на хост IP провайдера (указан в sip.conf)

для вход. по транку на 101.

exten => _XXXXXXXXXX,1,Dial(SIP/101,30,r)

Перезагрузите Asterisk командой core restart now
и снова сделайте тестовый звонок. Информация о нем добавится в файле full

Пример лога консоли Asterisk:

Настройка Asterisk АТС - изображение 5

На этом базовая настройка IP-телефонии «Астериск» завершена. Чтобы расширить функционал после того, как Asterisk установлен, настройте приветствие и голосовое меню (ivr), активируйте голосовую почту, настройте очередь (queue) входящих звонков, сбор и просмотр статистики (cdr viewer), запись (record) разговоров, поставьте музыку на ожидание (on hold), настройте конференции, перевод, перехват и переадресацию звонков.

Ошибки в настройке Asterisk

Рассмотрим распространенные ошибки при настройке виртуальной АТС «Астерикс» и дадим инструкции, которые помогут их .

  • Asterisk не регистрируется на сервере и возвращает ответ Forbidden в режиме отладки.

    Причина: некорректно введен пароль, указан SIP ID или домен. Проверьте содержимое файла sip.conf.

  • Сбрасываются входящие звонки.

    Причины: внутренний пользователь не зарегистрирован. Проверьте регистрацию командой sip show registry.

  • Не проходят исходящие вызовы.

    Причина: некорректно задан шаблон номера (пропущен символ «_» перед шаблоном).

  • Звук проходит только в одну сторону.

    Причина
    : вы используете NAT. Включите debug и используйте tcpdump – так вы увидите, куда уходят запросы и аудиотрафик.

Расширенные настройки Asterisk

Дальше нас интересует расширенная настройка Asterisk. Рассказываем, как несколько несложных действий помогут вам добавить новые возможности IP-телефонии для бизнеса.

Настройка голосового меню (IVR)

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

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

Голосовое приветствие должно быть сохранено в формате .waw или .gsm, это можно сделать во многих приложениях для звукозаписи. Если вы используете готовый файл в другом формате, воспользуйтесь пакетом для конвертации sox.

В Asterisk инструкция для изменения или создания IVR выглядит следующим образом:

а) в файл конфигурации добавьте код:

б) перезапустите настройки:

asterisk -x «dialplan reload»

в) настройте возможность выбора отдела:

exten => 333,1,Answer()

exten => 333,2,Background(basic-pbx-ivr-main)

exten => 333,3,WaitExten

exten => 1,1,Goto(managers,s,1)

exten => 2,1,Goto(support,s,1)

Снова перезапустите настройки:

asterisk -x «dialplan reload»

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

При наборе внутреннего номера могут возникнуть проблемы. Если это случилось, проверьте режим DTMF – это аналоговый сигнал для набора телефонного номера. Чтобы настроить sip-пир на определенный способ передачи DTMF, добавьте в файл конфигурации такую строку:

Голосовая почта

Если звонящий долго находится на линии в ожидании ответа оператора, ему можно предложить оставить голосовое сообщение. Для реализации этого функционала откройте файл voicemail.conf и добавьте в него такой код:

Предварительно настройте локальный почтовый сервер или используйте внешний.

Перезапустите модуль голосовой почты и протестируйте его работу:

CLI> voicemail reload

default 130 Number 121 0

default 100 Number 100 0

Добавьте голосовую почту в dialplan:

Номер для записи звуков, окончание записи #

exten => _35X, 1, NoOp()

exten => _35X, n, Wait


exten => _35X, n, Playback(beep)

exten => _35X, n, Wait


exten => _35X, n, Wait


exten => _35X, n, Hangup()

Управление голосовой почтой

exten => 500,1,VoiceMailMain()

Звонок на внутренний номер

Звонок на внешний номер

По умолчанию время ожидания ответа до включения голосовой почты составляет 15 секунд.

Очередь входящих звонков (queue)

Настройка Asterisk с нуля редко предполагает организацию очереди, но мы рассмотрим, как ее реализовать, если ваша компания в этом функционале нуждается. Очередь позволяет управлять потоком звонков и перераспределять их по заданным правилам – например, направлять первому освободившемуся оператору. Для настройки очереди откройте файл queues.conf. Предположим, что у нас два оператора с внутренними номерами 101 и 102. Тогда в конец файла добавьте такой код:

strategy = ringall

member => SIP/100

member => SIP/130

Узнать, какие значения может принимать параметр strategy, который отвечает за принцип распределения вызовов, можно здесь: https://www.voip-info.org/asterisk-call-queues/
.

exten => t,1,Dial(SIP/100,15)

на строку с таким содержимым:

exten => t,1,Queue(secretary,t)

Перезагрузите конфигурацию Asterisk:

Статистика звонков (cdr viewer)

Вы можете попробовать разобрать содержимое файла /var/log/asterisk/cdr-csv/Master.csv, где Asterisk по умолчанию сохраняет собранную статистику звонков, но проще воспользоваться другим инструментом. Предлагаем перенести сбор статистики в базу данных MySQL. Для этого запустите сервер mariadb и введите следующие команды:

# systemctl start mariadb

# systemctl enable mariadb.service

Создайте БД и пользователя:

# mysql -uroot -p

# yum install -y mysql-connector-odbc.x86_64 unixODBC-devel.x86_64

Откройте /etc/asterisk/res_odbc.conf и в конец файла добавьте код:

enabled => yes

dsn => MySQL-asterisk

password => 12345678

Аналогично с файлом /etc/asterisk/cdr_adaptive_odbc.conf:

alias start => calldate

Создайте новый файл /etc/odbc.ini и внесите туда такой фрагмент:

Description = MySQL Asterisk database

Driver = MySQL

Server = localhost

Password = 12345678

Socket = /var/lib/mysql/mysql.sock

Database = asterisk

В инструкции «Астериска» предлагают после этого перезапустить его:

# service asterisk restart

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

# systemctl start httpd

# systemctl enable httpd

Запись разговоров (record)

Есть несколько способов организовать запись разговоров, мы же рассмотрим простейший вариант. Для этого создайте папку, в которую будут складываться записи:

mkdir /records

chmod 777 /records

Откройте файл extensions.conf и внесите туда такие изменения:

Музыка на ожидании (hold on)

Эта настройка Asterisk позволит выбрать мелодию, которая будут звучать на линии во время ожидания звонка в очереди. По умолчанию мелодии воспроизводятся из директории /var/lib/asterisk/moh. Чтобы добавить свою мелодию в формате mp3, скопируйте ее на сервер любым удобным способом, а затем создайте директорию /var/lib/asterisk/mohmp3 и перекодируйте в ней музыку в «понятный» для системы формат wav:

# mkdir /var/lib/asterisk/mohmp3

# lame —decode /root/music.mp3 /var/lib/asterisk/mohmp3/music.wav

Откройте файл /etc/asterisk/musiconhold.conf и в конец добавьте новый класс музыки musiconhold.conf:

К описанию очереди добавьте еще один параметр:

music = mp3

strategy = ringall

member => SIP/100

member => SIP/130

Выполните перезапуск, как сказано в инструкции по настройке Asterisk:

# service asterisk restart

Конференции

Конференции позволяют организовать одновременный разговор между несколькими звонящими. Для их настройки откройте confbridge.conf и добавьте в конец файла:

В начало файла:

exten => 333,1,Answer()

exten => 333,n,ConfBridge(1,confer)

Теперь при наборе номера 333 звонящий попадет в комнату для конференций.

Поздравляем, установка и настройка Asterisk завершена!

Перевод, перехват и переадресация звонков

По умолчанию для перевода звонков используется команда # + номер
, на который нужно перевести звонок. Для успешного перевода нужно, чтобы он был предварительно разрешен в диалплане в команде Dial:

В «Астериске» для перевода звонков используется режим Attended Transfer, который по умолчанию выключен. Чтобы использовать его для перенаправления звонков, в файле features.conf
необходимо раскомментировать строку:

atxfer => *2

Горячую клавишу для перевода можно назначать произвольным образом.

Перехват звонков в Asterisk работает по умолчанию, дополнительные настройки этой функции не требуются. Комбинация кнопок для перехвата задается в уже знакомом файле features.conf.

Например, чтобы реализовать переадресацию на мобильный номер 222, в dialplan следует добавить строку:

Чтобы переадресация действовала только на внутренние номера офиса:

А теперь вариант с переадресацией для звонков извне:

Настройка Asterisk с помощью fail2ban

Для начала необходимо инсталлировать fail2ban:

# dnf install fail2ban

Запись событий будем вести в лог. Откроем файл /etc/asterisk/logger.conf
и раскомментируем такую его строку:

security => security

Считываем параметры хранения логов:

# asterisk -x «logger reload»

После этого в директории /var/log/asterisk
должен появиться файл с названием security,
записи из которого будет анализировать инструмент fail2ban.

logpath = /var/log/asterisk/security

enabled = true

Нужно, чтобы fail2ban запускался автоматически:

# systemctl start fail2ban

# systemctl enable fail2ban

Не забываем, что для корректной работы fail2ban требуется заранее сконфигурированный и запущенный iptables. Учитывайте, что при отключенном firewalld вначале нужно удалить /etc/fail2ban/jail.d/00-firewalld.conf,
после чего перезапустить fail2ban, чтобы он заработал.

Настройка обратного звонка

Настройка Asterisk Callback очень удобна в использовании: клиент вводит свой номер телефона в специальную форму на сайте, а спустя какое-то время ему перезванивает специалист компании. Чтобы воспользоваться Asterisk Web Callback, потребуется веб-сервер с поддержкой PHP. Настройки выполняются в файле manager.conf.

enabled = yes

port = 5038

bindaddr = 0.0.0.0 ;или реальный IP вашего сервера Asterisk

permit=0.0.0.0/0.0.0.0 ;или ip вашего веб-сервера

$strHost = «Asterisk IP Address»;

Назначаем пользовательское имя – то, которое ранее задали в файле /etc/asterisk/manager.conf):

$strSecret = «your_secret»;

Канал, куда будут направлены звонки:

$strChannel = «SIP/107»;

exten = s,1,Goto(from-internal,600,1)

Чтобы защититься от нежелательных звонков:

$strChannel = «SIP/107»;

Теперь следует задать длину номера телефона, которую могут указать клиенты в веб-форме (в нашем случае это 11 символов):

if ($length == 11 && is_numeric($strExten))

<table width=»300″ border=»1″ bordercolor=»#630000″ cellpadding=»3″ cellspacing=»0″>

<font size=»2″ face=»arial,georgia» color=»#630000″>Введите Ваш номер 812XXXXXXX.</font>

<input type=»text» size=»20″ maxlength=»11″ name=»txtphonenumber»><br>

<input type=»submit» value=»Позвонить! «>

$strHost = «127.0.0.1»;

$strSecret = «test2»;

$strContext = «from-script»;

$strWaitTime = «60000»;

$strPriority = «1»;

$strCallerId = «n <$strExten>»;

$length = strlen($strExten);

if ($length == 11 && is_numeric($strExten))

$oSocket = fsockopen($strHost, 5038, $errnum, $errdesc) or die(«Connection to host failed»);

fputs($oSocket, «Action: login\r\n»);

fputs($oSocket, «Events: off\r\n»);

fputs($oSocket, «Secret: $strSecret\r\n\r\n»);

fputs($oSocket, «Action: originate\r\n»);

fputs($oSocket, «Channel: $strChannel\r\n»);

fputs($oSocket, «Timeout: $strWaitTime\r\n»);

fputs($oSocket, «CallerId: $strCallerId\r\n»);

fputs($oSocket, «Exten: $strExten\r\n»);

fputs($oSocket, «Context: $strContext\r\n»);

fputs($oSocket, «Priority: $strPriority\r\n\r\n»);

fputs($oSocket, «Action: Logoff\r\n\r\n»);

<table width=»500″ border=»2″ bordercolor=»#850000″ cellpadding=»3″ cellspacing=»0″>

<table width=»500″ border=»1″ bordercolor=»#850000″ cellpadding=»3″ cellspacing=»0″>

<font size=»2″ face=»verdana» color=»#850000″>Введите номер телефона.</font>

<input type=»text» size=»20″ maxlength=»12″ name=»txtphonenumber»><br>

<input type=»submit» value=»Позвонить! «>


Настройка черного списка

Эта настройка Asterisk позволяет запретить нежелательные входящие звонки и оставить линию свободной для приоритетных звонков! Работает следующим образом: сверяет, не содержится ли входящий номер в черном списке внутренней базы данных Asterisk. Для проверки используется astdb, на выходе функция возвращает значение «0» (нет в базе данных) или «1» (есть в базе данных).

Для вызова функции используется команда:

Допустим, 2000 – наш абонент, 8882888 – CallerID в черном списке. Тогда:

same => n,Dial(PJSIP/2000,,tr)

exten => black,1,Playback(privacy-you-are-blacklisted)

same => n,Hangup()

Чтобы добавить новый номер в черный список, используем Asterisk CLI (Command Line Interface):

asterisk -rx «database put blacklist 8882888 1»

Допустим, нам нужно текущее содержимое черного списка. Как его получить:

Чтобы сделать то же самое, но с помощью sqlite cli, выполняем команду:

sqlite> select * from astdb where key like ‘%blacklist%’;

Настройка умной предустановленной переадресации вызовов

music => default


context => default

number => 1965751234,5

number => 17182025678,20


number => 1234


number => 5678

number => 09253&410,30,2 ; вызываются одновременно 09253 и 410 в течение 30 секунд.

number => 525,40,1 ; но сначала вызывается 525 в течение 40 секунд.

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

Подготовьте голосовое объявление для абонента: предложите или принять, или отказаться от переадресации:

По умолчанию код значения кода DTMF равен двум:

Абонент будет слышать стандартное музыкальное сопровождение:

Автообзвон

Для автоматического обзвона в настройке Asterisk используются call-файлы (Call Files). Список для автообзвона генерируется на основе номеров из заранее подготовленного текстового файла. После выполнения bash-скрипта готовый перечень звонков попадает в каталог /var/spool/asterisk/outgoing.

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

exten => s,1,Wait


exten => s,n,Playback(/var/lib/asterisk/sounds/custom/you_call_your_friends_are_collectors)

exten => s,n,Hangup

Так выглядит bash-скрипт:

while read number; do

cat <<EOF > /var/spool/asterisk/$number

chown asterisk:asterisk /var/spool/asterisk/$number

mv /var/spool/asterisk/$number /var/spool/asterisk/outgoing

number=`expr $number + 1`

done < /var/spool/asterisk/list.txt

Список для автоматического обзвона хранится в файле с названием /var/spool/asterisk/list.txt
. Каждый следующий номер написан с новой строки, например:

Отправка факсов на e-mail

В «Астериск» реализована функция отправки факсов на электронную почту (например, общую или отдельно назначенную). Чтобы реализовать прием факсов в FreePBX 12, в Asterisk должна быть реализована поддержка SpanDSP. Для начала убедимся, что у нас предварительно загружены два важных модуля – res_fax.so
и res_fax_spandsp.so.

localhost*CLI> module show like fax

Module Description Use Count Status

res_fax.so Generic FAX Applications 1 Running

res_fax_spandsp.so Spandsp G.711 and T.38 FAX Technologies 1 Running

2 modules loaded

Переходим в настройки системного факса:

Settings > Fax Configuration

Создаем виртуальный факс командой Add Extension, а затем в настройках включаем поддержку факсов (для этого достаточно поставить галочку напротив Fax Email).

Переходим в модуль FolowMe
. В блоке Destination if no answer
: указываем Fax Recipient
и уже там – номер нашего факса FAX
(например, 2566).

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

Connectivity > Inbound Routes

Активировать автоматическое распознавание факс-сигнала можно в разделе Fax Detected
.

Все входящие факсы по умолчанию сохраняются в каталоге /var/spool/asterisk/fax.

Преимущества Asterisk

У системы Asterisk есть ряд важных преимуществ:

Не нужно платить за лицензии, минуты и количество пользователей.

Легко масштабируется под любое количество сотрудников.

После настройки Asterisk вы получаете неограниченный набор функций IP-телефонии: запись и хранение звонков, голосовое меню, интеграцию с CRM и мессенджерами, автообзвон, обратный звонок и прочее.


Подробные руководства и справочные материалы по настройке Asterisk. Документация постоянно обновляется и дополняется.
Администрирование asterisk

Установка

Asterisk работает под управлением операционных систем Linux и FreeBSD.
Доступны установка из бинарных файлов и компиляция из исходного кода.
Также существует множество дистрибьютивов Linux с уже готовым к работе предустановленным Asterisk и FreePBX.

Инструкции по установке Asterisk для различных дистрибьютивов Linux:

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

Realtime архитектура Asterisk

Реалтайм Архитектура Asterisk — набор драйверов и функций для конфигурации в режиме реального времени.
Существует два типа конфигурации — статический и динамический:
— Статический хранит конфигурации в БД, как конфигурационные файлы и также обновляет данные при перезагрузке модулей.
— Динамический используется для создания и обновления объектов в режиме реального времени, при совершении вызовов

Каналы связи в Asterisk

SIP

Под каналами связи в Asterisk подразумевается набор драйверов для взаимодействия с устройствами и протоколами связи.
Так как Asterisk в первую очередь VoIP
АТС
ключевое значение имеют драйвера взаимодействия с VoIP
протоколами, в частности с SIP
протоколом.
Изначально в Asterisk был один драйвер SIP
протокола chan_sip. Но его реализация была неполной и в конкуренции с FreeSWITCH, который имел более продвинутый SIP
драйвер, в Asterisk начиная с версии 12, был включен новый драйвер SIP
— chan_pjsip.

Поддержка старого драйвера сохраняется и оба драйвера могут действовать совместно.

Однако предпочтительней использовать новый драйвер PJSIP.

IAX

Также в Asterisk реализован собственный VoIP
протокол — IAX
(Inter Asterisk Exchange). Как и следует из названия, он в первую очередь ориентирован на создание каналов связи между серверами Asterisk. IAX
имеет упрощенную структуру, используя один и тот же порт для сигнализации и медиа, что в теории упрощает прохождение NAT
и экономит трафик, однако в современных условиях и с появлением PJSIP его преимущества не завоевали ему популярности.

h323

Поддержка устаревшего VoIP
протокола h323 может понадобиться для интеграции с устаревшими АТС
, например Avaya CSI.

DAHDI

Драйвер DAHDI
поддерживает большую линейку устройств, таких как платы потоков ISDN PRI E1, FXO, FXS и GSM интерфейсов.

Local

Прокси — псевдо канал Asterisk, позволяющий вызывать канал любой технологии без явного ее указания.

NAT SIP Asterisk

Руководства по настройке Asterisk для работы за NAT
.

План набора Asterisk

Для понимания Asterisk очень важен — диалплан (dialplan).

Диалплан направляет каждый звонок от его источника, с помощью различных приложений,

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

или вызов телефона, определяются логикой и концепцией диалплана.

Русская документация мануал по dialplan Asterisk

Команды диалплана Asterisk

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

Asterisk Dialplan functions

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

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

Очередями в Asterisk называется механизм ACD (automated call distribution) для распределения входящих вызовов между агентами колл центра.
Конфигурация очередей осуществляется в файле Asterisk настройка очереди — queues.conf
, имена очередей вызовов используются в качестве аргумента команды Queue
в файле конфигурации плана набора extensions.conf. Интерфейсы операторов назначаются параметром очереди — member
.
Агенты, которые обрабатывают вызовы, поступающие в очередь, могут быть заданы в файле Asterisk: agents.conf
.

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

Конференции Asterisk

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

Абонентские функции Asterisk

В файле features.conf назначаются пользовательские коды абонентских функций Asterisk и опции абонентских функций, такие как:

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

Отчеты о звонках Asterisk

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

Логи в Asterisk

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

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

Asterisk AMI

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

Asterisk Call Files — Автообзвон

Asterisk имеет возможность инициировать вызовы по команде извне при помощи dialplan
, AMI

и Call files
( spooling interface
).
Call files позволяют инициировать вызов, поместив в директорию (по умолчанию /var/spool/asterisk/outgoing
/) файл с определенным содержимым. Этот метод позволяет создавать эффективные системы обзвона абонентов.

Asterisk ARI

Настроим Asterisk, Freeswitch, Call Center

Оцените статью
Хостинги