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

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

Жанры

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

<tr><td>Challenge</td><td>113543555</td></tr>

</table>

</body>

Аналогично, если используется представление mxml, будет получен ответ в формате XML:

<Ajax-response>

<response type='object' id='unknown'>

<generic response='Success' challenge='113543555' /> </response> </Ajax-response>

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

rawman или mxml.

Передача вызова

Действие REDIRECT может использоваться

для передачи вызова. Просто сформируйте такой URL:

http://localhost:8088/ asterisk / rawman? action=redirect&channel=SIP / John-ae201e78&priority=1&exten=6001

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

Response: Success Message: Redirect Successful

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

Команда GETCONFIG возвращает содержимое конфигурационного файла или его часть. HTTP-запрос

http://localhost:8088/asterisk/rawman?action=getconfig&filename= users.conf

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

Response: Success

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=yesLine-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
Category-000001: 6007
Line-000001-000000: fullname=Bill Savage
Line-000001-000001: secret=1234
Line-000001-000002: [email protected]
Line-000001-000003: cid_number=6001
Line-000001-000004: zapchan=
Line-000001-000005: context=numberplan-custom-1
Line-000001-000006: hasvoicemail=yes
Line-000001-000007: hasdirectory=no
Line-000001-000008: hassip=yes
Line-000001-000009: hasiax=yes
Line-000001-000010: hasmanager=no
Line-000001-000011: callwaiting=yes
Line-000001-000012: threewaycalling=yes
Line-000001-000013: mailbox=6007
Line-000001-000014: hasagent=yes
Line-000001-000015: group=

Обновление конфигурационных файлов с помощью UPDATECONFIG

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

необходимо выполнить такой HTTP-запрос: http://localhost:8088/asterisk/rawman?action=updateconfig&reload= yes&srcfilename=users.conf&dstfilename=users.conf&Action-000000= delcat&Cat-000000=6003& Var-000000=&Value-000000=

Ответ, свидетельствующий об ошибке

Чтобы формировать все остальные команды, пользователь должен зарегистрироваться на веб-сервере. Если пользователь не аутентифици- рован, любая из обсуждаемых выше команд будет возвращать ошибку. Если он отправлен пользователем, не прошедшим аутентификацию, URIhttp://localhost:8088/asterisk/rawman?action=ping возвращает такой свидетельствующий об ошибке ответ: Response: Error

Message: Authentication Required

Ajax, AJAM и Asterisk

Аббревиатура Ajax расшифровывается как Asynchronous JavaScript and XML (Асинхронный JavaScript и XML). Хотя этот термин включает слова «асинхронный» и «XML», это не означает ни то, что можно делать только асинхронные запросы, ни то, что должен обязательно использоваться XML. Некоторые авторы описывают Ajax просто как комбинацию HTML, JavaScript, DHTML и DOM. Следующее поколение броузеров, таких как Mozilla/Firefox, для отправки асинхронного запроса на сервер используют XMLHttpRequest (объект JavaScript). Запрос выполняется в фоновом режиме и обрабатывается сервером. Назад в броузер результат передается посредством обратного вызова: все, что возвращает сервер, может сохраняться и использоваться для обновления отображаемой страницы. Для Internet Explorer 5 или более поздних версий той же цели служит объект ActiveX XMLHttp.

Обработка форм в традиционном веб-приложении

HTML-формы обычно передаются посредством кнопки SUBMIT (ПЕРЕДАТЬ) (type=submit). После щелчка пользователем по кнопке SUBMIT (ПЕРЕДАТЬ) обработка веб-приложения останавливается и не возобновляется до тех пор, пока сервер не возвратит новую страницу полностью:

<FORM action="login.php" method="POST"> <input type=text name="username"> <input type=password name="password"> <input type=submit> </FORM>

Прежде чем переходить к Ajax или JavaScript, давайте рассмотрим, как работает традиционное веб-приложение. Для описания формы, где определяются все параметры, которые пользователь хочет отправить на сервер, традиционные веб-приложения используют элемент <FORM>. Кроме того, атрибут action="login.php" информирует броузер, куда отправлять все эти переменные. method="POST" указывает броузеру, как отправлять эти переменные на сервер.

Обработка форм в приложении Ajax

Приложение Ajax для отправки содержимого формы на сервер использует JavaScript. Если выполнен асинхронный запрос, JavaScript-код не ожидает ответа сервера. Это также означает, что пользователи могут продолжать работать со страницей даже в том случае, если в фоновом режиме выполняется запрос. Это может представлять опасность, из-за чего, возможно, до завершения запроса потребуется ограничить некоторые действия. Броузер по умолчанию не обеспечивает визуальной индикации выполнения запроса в фоновом режиме. За информирование пользователя о выполнении запроса отвечаете вы. Вот код для передачи содержимого полей имени пользователя (username) и пароля (password) через Ajax:

<script language="javascript" type="text/javascript"> function submitform{

var uname = document.getElementById("username").value; var pwd = document.getElementById("password").value; // xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); // IE 7 // xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); // IE 5 xmlHttp = new XMLHttpRequest; // Mozilla или Firefox

var url = "/rawman9action=login&username=" + escape(uname) + "&secret=" + escape(pwd);

xmlHttp.open("GET", url, true); xmlHttp.onreadystatechange = dosomething; // вместо dosomething использовалась бы функция JavaScript xmlHttp.send(null);

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

Инвестиго, из медика в маги 2

Рэд Илья
2. Инвестиго
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Инвестиго, из медика в маги 2

Конструктор

Семин Никита
1. Переломный век
Фантастика:
попаданцы
альтернативная история
4.50
рейтинг книги
Конструктор

Блуждающие огни 4

Панченко Андрей Алексеевич
4. Блуждающие огни
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Блуждающие огни 4

Ох уж этот Мин Джин Хо 1

Кронос Александр
1. Мин Джин Хо
Фантастика:
попаданцы
5.00
рейтинг книги
Ох уж этот Мин Джин Хо 1

Черный Маг Императора 11

Герда Александр
11. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Черный Маг Императора 11

Кодекс Крови. Книга ХIV

Борзых М.
14. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХIV

Девочка для Генерала. Книга первая

Кистяева Марина
1. Любовь сильных мира сего
Любовные романы:
остросюжетные любовные романы
эро литература
4.67
рейтинг книги
Девочка для Генерала. Книга первая

Ты не мой Boy 2

Рам Янка
6. Самбисты
Любовные романы:
современные любовные романы
короткие любовные романы
5.00
рейтинг книги
Ты не мой Boy 2

Брачный сезон. Сирота

Свободина Виктория
Любовные романы:
любовно-фантастические романы
7.89
рейтинг книги
Брачный сезон. Сирота

Вор (Журналист-2)

Константинов Андрей Дмитриевич
4. Бандитский Петербург
Детективы:
боевики
8.06
рейтинг книги
Вор (Журналист-2)

Наследник павшего дома. Том IV

Вайс Александр
4. Расколотый мир
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том IV

Адвокат Империи 2

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

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Барон Дубов 4

Карелин Сергей Витальевич
4. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов 4