Чтение онлайн

на главную - закладки

Жанры

Asterisk™: будущее телефонии Второе издание
Шрифт:

Чтобы использовать интерфейс Manager, необходимо задать учетную запись в файле /etc/asterisk/manager.conf. Этот файл будет выглядеть примерно так:

[general] enabled = yes port = 5038 bindaddr = 0.0.0.0

[oreilly]

secret = notvery

;deny=0.0.0.0/0.0.0.0

;permit=209.16.236.73/255.255.255.0

read = system,call,log,verbose,command,agent,user

write = system,call,log,verbose,command,agent,user

В разделе [general] необходимо активировать сервис, задав параметр enabled = yes.

Чтобы эти изменения вступили в силу, понадобится перезагрузить интерфейс Manager (команда module reload manager из консоли Asterisk). По умолчанию используется TCP-порт 5038. Далее вы создаете по разделу для каждого пользователя, который будет присылать запрос на аутентификацию в системе. Для пользователя задается имя пользователя в квадратных скобках ([ ]), за которым следует пароль этого пользователя (secret), все IP-адреса, которым вы желаете запретить (deny) доступ, все IP-адреса, которым вы хотите разрешить (permit) доступ, и права на чтение (read) и запись (write) для этого пользователя.

Очень важно понимать, что, кроме незашифрованного пароля и возможности ограничить доступ для определенных IP-адре- сов, в интерфейсе Manager нет других средств обеспечения безопасности. Если вы запускаете Manager в ненадежной сети (или существуют любые другие сложные требования), для обработки всех соединений с API интерфейса Manager следует использовать замечательный пакет AstManProxy Дэвида Троя (David Troy).

Подключение к интерфейсу Manager

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

Команды в интерфейс Manager доставляются в пакетах, имеющих следующий синтаксис (строки завершаются CR+LF) [104] :

Действие: <тип действия> Ключ 1: Значение 1 Ключ 2: Значение 2 и т. д. ... Переменная: Значение Переменная: Значение и т. д. ...

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

104

Возврат каретки с переводом строки (Carriage Return + Line Feed). Как правило, это обеспечивается нажатием клавиши Enter, но может отличаться для различных платформ ОС и языков программирования, поэтому, если имеются какие-то проблемы с передачей команд в интерфейс, вероятно, нелишним будет точно указать необходимое сочетание клавиш. На момент написания данной книги в Википедии имеется подробное описание этой концепции .

Action: login Username: oreilly Secret: notvery <CR+LF>

Дополнительная CR+LF в пустой строке обеспечит передачу в интерфейс Manager пакета целиком.

Пройдя аутентификацию, вы сможете запускать действия, а также видеть события, сформированные Asterisk. В сильно загруженной системе может быть очень сложно или практически невозможно отслеживать все это «невооруженным глазом». Чтобы отключить для Asterisk возможность посылать события, можно добавить параметр Events в команду на регистрацию: Action: login Username: oreilly Secret: notvery Events: off <CR+LF>

Если вы боитесь передавать свой пароль по сети незашифрованным (и

это нормально), можно осуществить аутентификацию, используя систему запрос/ответ и алгоритм MD5, принцип работы которого очень похож на краткую аутентификацию HTTP. Для этого сначала вызывается действие Challenge (Запрос), которое предоставит вам маркер запроса:

Action: Challenge AuthType: MD5

Response: Success Challenge: 840415273

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

Action: Login AuthType: MD5 Username: Admin

Key: e7a056e1488882c6c509bbe71a049978

Response: Success

Message: Authentication accepted

Передача команд

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

Перенаправление вызова

Действие Redirect (Перенаправить) может использоваться для перенаправления вызова. После регистрации необходимо послать такое действие:

Action: Redirect Channel: SIP/John-ae201e78 Context: Lab Exten: 6001 Priority: 1

ActionID: 2340981650981

Каждое действие, передаваемое по интерфейсу Manager, может сопровождаться произвольным значением ActionID. Это позволит распознавать, к какому действию относится ответ Asterisk. Настоятельно рекомендуется передавать уникальный ActionID с каждой командой AMI.

Этот URL переносит заданный канал в другой добавочный номер и приоритет диалплана. Ответ на это действие такой:

Response: Success ActionID: 2340981650981 Message: Redirect Successful

Чтение конфигурационного файла

Чтобы прочитать конфигурационный файл Asterisk через интерфейс Manager, можно использовать действие GetConfig. GetConfig возвращает содержимое конфигурационного файла или его часть. Следующая команда извлекает содержимое файла users.conf:

Action: GetConfig Filename: users.conf ActionID: 9873497149817

После этого Asterisk возвращает содержимое файла users.conf. Ответ

выглядит так:

Response: Success ActionID: 987397149817 Category-000000: general

Line-000000-000000: fullname=New User

Line-000000-000001: userbase=6000

Line-000000-000002: hasvoicemail=yes

Line-000000-000003: hassip=yes

Line-000000-000004: hasiax=yes

Line-000000-000005: hasmanager=no

Line-000000-000006: callwaiting=yes

Line-000000-000007: threewaycalling=yes

Line-000000-000008: callwaitingcallerid=yes

Line-000000-000009: transfer=yes

Line-000000-000010: canpark=yes

Line-000000-000011: cancallforward=yes

Line-000000-000012: callreturn=yes

Line-000000-000013: callgroup=1

Line-000000-000014: pickupgroup=1

Line-000000-000015: host=dynamic

Обновление конфигурационных файлов

Часто полезно иметь возможность обновлять конфигурационный файл Asterisk через интерфейс Manager. Для обновления одной или более настроек конфигурационного файла используется действие Update Config. Например, чтобы удалить из users.conf пользователя под именем 6003, можно использовать следующую команду:

Поделиться:
Популярные книги

Сумеречный стрелок 8

Карелин Сергей Витальевич
8. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Сумеречный стрелок 8

Мимик нового Мира 13

Северный Лис
12. Мимик!
Фантастика:
боевая фантастика
юмористическая фантастика
рпг
5.00
рейтинг книги
Мимик нового Мира 13

Отмороженный 10.0

Гарцевич Евгений Александрович
10. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный 10.0

Бывший муж

Рузанова Ольга
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Бывший муж

Безнадежно влип

Юнина Наталья
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Безнадежно влип

Гром над Академией Часть 3

Машуков Тимур
4. Гром над миром
Фантастика:
фэнтези
5.25
рейтинг книги
Гром над Академией Часть 3

Убийца

Бубела Олег Николаевич
3. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Убийца

По осколкам твоего сердца

Джейн Анна
2. Хулиган и новенькая
Любовные романы:
современные любовные романы
5.56
рейтинг книги
По осколкам твоего сердца

Жена фаворита королевы. Посмешище двора

Семина Дия
Фантастика:
фэнтези
5.00
рейтинг книги
Жена фаворита королевы. Посмешище двора

Последняя Арена 7

Греков Сергей
7. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 7

Возвращение Безумного Бога 4

Тесленок Кирилл Геннадьевич
4. Возвращение Безумного Бога
Фантастика:
фэнтези
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Возвращение Безумного Бога 4

Варлорд

Астахов Евгений Евгеньевич
3. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Варлорд

Авиатор: назад в СССР

Дорин Михаил
1. Авиатор
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Авиатор: назад в СССР

Кодекс Охотника. Книга III

Винокуров Юрий
3. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Кодекс Охотника. Книга III