Читаем Asterisk™: будущее телефонии Второе издание полностью

Пользователи могут извлекать свои сообщения голосовой почты, менять опции и записывать приветствия голосовой почты с помощью приложения VoiceMailMain(). В своей типовой форме приложение VoiceMailMain() вызывается без аргументов. Добавим в контекст [internal] диалплана добавочный номер 700, чтобы внутренние пользователи могли выполнять звонки для доступа к своим сообщениям голосовой почты: exten => 700,1,VoiceMailMain()

Создание телефонного справочника для набора номера по имени

Осталась последняя заслуживающая внимания функция системы голосовой почты Asterisk - телефонный справочник для набора номера по имени. Создается он с помощью приложения Directory(). Это приложение, используя имена, заданные в описаниях почтовых ящиков в файле voicemail.conf, предоставляет абоненту телефонный справочник абонентов АТС для набора номеров по имени.

Directory() принимает три аргумента: контекст голосовой почты, из которого считываются имена, контекст диалплана, в котором вызывается пользователь (необязательный), и строку опций (также необязательный). По умолчанию Directory() ведет поиск пользователя по фамилии. Если передается опция f, поиск осуществляется по имени. Добавим два справочника для набора номера по имени в контекст [incoming] нашего образца диалплана, чтобы абоненты могли выполнять поиск или по имени, или по фамилии:

exten => 8,1,Directory(default,incoming,f) exten => 9,1,Directory(default,incoming)

Если абоненты нажмут кнопку 8, они получат справочник, составленный по именам. Если они наберут 9, то получат справочник, составленный по фамилиям.

Макрос

Макросы[76] - очень полезная структура, разработанная во избежание повторов в диалплане. Также они облегчают задачу по внесению изменений в диалплан. Чтобы проиллюстрировать это, снова вернемся к нашему примеру диалплана. Если вы помните, при внесении изменений для голосовой почты мы остановились на следующем варианте добавочного номера для Джона: exten => 101,1,Dial(${J0HN},10)

exten => 101,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail) exten => 101,n(unavail),Voicemail(101@default,u) exten => 101,n,Hangup()

exten => 101,n(busy),VoiceMail(101@default,b) exten => 101,n,Hangup()

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

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

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

Лучший способ оценить макрос - увидеть его в деле, так что прямо сейчас и приступим.

Описание макроса

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

Описание макроса очень похоже на контексты. (По сути, можно даже утверждать, что это действительно небольшие контексты с ограниченной функциональностью.) Для описания макроса используется служебное слово macro-, за которым следует имя макроса, и вся эта конструкция заключается в квадратные скобки: [macro-voicemail]

Имена макросов должны начинаться со служебного слова macro-. Это отличает их от обычных контекстов. Команды внутри макроса формируются практически аналогично всем остальным элементам диалпла- на; единственное ограничение - макросы используют только добавочный номер s. Введем логику голосовой почты в макрос, заменяя по ходу добавочные номера на s:

[macro-voicemail]

exten => s,1,Dial(${JOHN},10)

exten => s,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)

exten => s,n(unavail),Voicemail(101@default,u)

exten => s,n,Hangup()

exten => s,n(busy),VoiceMail(101@default,b)

exten => s,n,Hangup()

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

Вызов макроса из диалплана

Использовать макрос в диалплане нам поможет приложение Macro(). Оно вызывает заданный макрос и передает в него необходимые аргументы. Например, чтобы вызвать наш макрос голосовой почты из диал- плана, можно сделать следующее:

Перейти на страницу:

Похожие книги

Недокументированные и малоизвестные возможности Windows XP
Недокументированные и малоизвестные возможности Windows XP

Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. Р' ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows. Тем более что довольно часто эти возможности позволяют обойти ограничения на те или иные функции Windows, установленные администратором. Р

Роман Александрович Клименко

ОС и Сети, интернет / ОС и Сети / Книги по IT
Веб-аналитика: анализ информации о посетителях веб-сайтов
Веб-аналитика: анализ информации о посетителях веб-сайтов

Компании в веб-пространстве тратят колоссальные средства на веб-аналитику и оптимизацию своих веб-сайтов, которые, в свою очередь, приносят миллиарды долларов дохода. Если вы аналитик или работаете с веб-данными, то эта книга ознакомит вас с новейшими точками зрения на веб-аналитику и то, как с ее помощью сделать вашу компанию весьма успешной в веб. Вы изучите инструментальные средства и показатели, которые можно использовать, но что важнее всего, эта книга ознакомит вас с новыми многочисленными точками зрения на веб-аналитику. Книга содержит много советов, приемов, идей и рекомендаций, которые вы можете взять на вооружение. Изучение веб-аналитики по этой уникальной книге позволит познакомиться с проблемами и возможностями ее современной концепции. Написанная практиком, книга охватывает определения и теории, проливающие свет на сложившееся мнение об этой области, а также предоставляет поэтапное руководство по реализации успешной стратегии веб-аналитики.Эксперт в данной области Авинаш Кошик в присущем ему блестящем стиле разоблачает укоренившиеся мифы и ведет по пути к получению действенного понимания аналитики. Узнайте, как отойти от анализа посещаемости сайта, почему основное внимание следует уделять качественным данным, каковы методы обретения лучшего понимания, которое поможет выработать мировоззрение, ориентированное на мнение клиента, без необходимости жертвовать интересами компании.- Изучите все преимущества и недостатки методов сбора данных.- Выясните, как перестать подсчитывать количество просмотренных страниц, получить лучшее представление о своих клиентах.- Научитесь определять ценность показателей при помощи тройной проверки "Ну и что".- Оптимизируйте организационную структуру и выберите правильный инструмент аналитики.- Изучите и примените передовые аналитические концепции, включая анализ SEM/PPC, сегментацию, показатели переходов и др.- Используйте решения с быстрым началом для блогов и электронной торговли, а также веб-сайтов мелкого бизнеса.- Изучите ключевые компоненты платформы экспериментирования и проверки.- Используйте анализ конкурентной разведки для обретения понимания и принятия мер.Здесь также находятся:- Десять шагов по улучшению веб-аналитики.- Семь шагов по созданию управляемой данными культуры в организации.- Шесть способов замера успеха блога.- Три секрета создания эффективной веб-аналитики.- Десять признаков великого веб-аналитика.

Авинаш Кошик

ОС и Сети, интернет