» » » Джим Меггелен - Asterisk™: будущее телефонии Второе издание


Авторские права

Джим Меггелен - Asterisk™: будущее телефонии Второе издание

Здесь можно скачать бесплатно "Джим Меггелен - Asterisk™: будущее телефонии Второе издание" в формате fb2, epub, txt, doc, pdf. Жанр: Программное обеспечение. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Рейтинг:
Название:
Asterisk™: будущее телефонии Второе издание
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

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

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Asterisk™: будущее телефонии Второе издание"

Описание и краткое содержание "Asterisk™: будущее телефонии Второе издание" читать бесплатно онлайн.








Обычно при такой схеме, когда требуется оградить Asterisk от выполнения следующего приоритета после выполнения перехода, вероятно, лучше в качестве места назначения использовать другие добавочные номера, а не метки приоритетов. Во всяком случае, это делает диал- план несколько понятнее. Предыдущий фрагмент диалплана можно было бы переписать следующим образом: exten => 345,1,Set(TEST=1)

exten => 345,n,GotoIf($[${TEST} = 1]?weasels,1:iguanas,1); теперь переход

; выполняется к добавочному номеру,приоритету

exten => weasels,1,Playback(weasels-eaten-phonesys); это НЕ метка.

Предоставление условного перехода только на случай ложности выражения

Предыдущий пример можно было бы записать следующим образом:

exten => 345,1,Set(TEST=1)

exten => 345,n,GotoIf($[${TEST} = 1]?:iguanas) ; здесь больше нет ; метки weasels, но это будет по-прежнему работать exten => 345,n,Playback(weasels-eaten-phonesys) exten => 345,n,Hangup()

exten => 345,n(iguanas),Playback(office-iguanas) exten => 345,n,Hangup()

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

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

; Это другой добавочный номер

exten => weasels,n,Hangup()

exten => iguanas,1,Playback(office-iguanas)

exten => iguanas,n,Hangup()

При изменении значения, присваиваемого TEST в первой строке, сервер Asterisk должен воспроизводить разные приветствия. Рассмотрим другой пример выполнения переходов по условию. На этот раз будем использовать оба приложения, и Goto(), и GotoIf(). Выполним счет в обратном направлении от 10 и повесим трубку: exten => 123,1,Set(COUNT=10)

exten => 123,n(start),GotoIf($[${COUNT} > 0]?:goodbye)

exten => 123,n,SayNumber(${COUNT})

exten => 123,n,Set(COUNT=$[${COUNT} - 1])

exten => 123,n,Goto(start)

exten => 123,n(goodbye),Hangup()

Проанализируем этот пример. В первом приоритете переменной COUNT присваивается значение 10. Далее COUNT сравнивается с 0. Если ее значение больше нуля, мы переходим к следующему приоритету. (Не забываем, что, если место назначения в приложении GotoIf() опущено, управление передается вниз следующему приоритету.) С этого момента воспроизводится номер, из COUNT вычитается 1 и управление опять возвращается к приоритету start (начало). Если значение COUNT меньше или равно 0, управление передается приоритету goodbye (до свидания) и вызов завершается.

Классический пример выполнения переходов по условию с нежностью называют «логикой для защиты от любимой девушки». Если номер Caller ID (ID звонящего) входящего вызова совпадает с номером телефона бывшей девушки абонента, Asterisk выдает сообщение, отличающееся от того, которым он обычно встречает звонки от других абонентов. Несмотря на простоту и примитивность, это хороший пример для изучения переходов по условию в диалплане Asterisk. В этом примере используется функция CALLERID, которая позволяет извлекать информацию о Caller ID (ID звонящего) входящего вызова. Пусть для данного случая номер телефона жертвы будет 888-555-1212: exten => 123,1,GotoIf($[${CALLERID(num)} = 8885551212]?reject:allow) exten => 123,n(allow),Dial(Zap/4) exten => 123,n,Hangup()

exten => 123,n(reject),Playback(abandon-all-hope) exten => 123,n,Hangup()

В приоритете 1 вызывается приложение GotoIf(). Оно указывает Asterisk перейти к метке приоритета reject (отклонить), если номер Caller ID (ID звонящего) соответствует 8885551212, а в противном случае перейти к метке приоритета allow (можно было бы опустить имя метки, позволяя GotoIf() просто передать управление далее). Если номер Caller ID (ID звонящего) совпадает с указанным, управление вызовом передается приоритету reject, который воспроизводит нежелательному абоненту неприветливое сообщение. В противном случае делается попытка вызова получателя по каналу Zap/4.

Переходы по условию с временным критерием с помощью GotoIfTime()

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

Самое очевидное применение этого приложения - предоставление абонентам разных приветствий до начала рабочего времени и после его окончания.

Приложение GotoIfTime() имеет следующий синтаксис:

GotoIfTime( tlmes,days_of_week,days_of_month,months? label)

Одним словом, GotoIfTime() передает вызов в заданную метку label, если текущие дата и время соответствуют критерию, заданному параметрами times (время), days_of_week (дни недели), days_of_month (дни месяца) и months (месяцы). Рассмотрим каждый аргумент более подробно:

times

Это список из одного или более временных диапазонов, записанных в 24-часовом формате. Например, период с 9:00 утра до 5:00 вечера

будет задан так: 09:00-17:00. День начинается с 0:00 и заканчивается в 23:59.

Следует отметить, что times прекрасно выполняет циклические переходы. Поэтому, если требуется задать период, когда офис закрыт, в параметре times можно указать 18:00-9:00 - и все будет работать, как ожидается. Обратите внимание, что данная техника применима и для других компонентов GotoIfTime(). Например, описать выходные дни можно, задав sat-sun (суббота- воскресенье).

days_of_week

Это список из одного или более дней недели. Дни должны быть заданы как mon, tue, wed, thu, fri, sat и/или sun. Период с понедельника по пятницу можно задать как mon-fri. Вторник и четверг были бы представлены как tue&thu.

Обратите внимание, что можно задавать сочетание диапазонов и отдельных дней, например sun-mon&wed&fri-sat или проще,

wed&fri-mon.

days_of_month

Это список дней месяца. Дни задаются числами от 1 до 31. Период с 7-го до 12-го числа будет представлен как 7-12, а 15-е и 30-е числа месяца будут записаны как 15&30.

months

Это список из одного или более месяцев года. Диапазон месяцев должен быть записан как jan-apr, а если требуется указать месяцы, идущие не по порядку, они записываются через амперсанд, например jan&mar&jun. Также можно комбинировать диапазоны и отдельные месяцы: jan-apr&jun&oct-dec. Если необходимо выбрать все возможные значения для любого из этих аргументов, просто задайте * для него.

В качестве аргумента label может быть задано любое из следующих значений:

• Метка приоритета в рамках того же добавочного номера, например

time_has_passed (время прошло).

• Добавочный номер и приоритет в рамках того же контекста, например 123,time_has_passed.

• Контекст, добавочный номер и приоритет, например incoming,123, time_has_passed.

Теперь, после того как мы ознакомились с синтаксисом, рассмотрим несколько примеров. Следующий пример соответствует промежутку времени с 9:00 утра до 5:59 вечера, с понедельника по пятницу, любого дня месяца, в любой месяц года:

exten => s,1,GotoIfTime(09:00-17:59,mon-fri,*,*?open,s,1)

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

; Если это любой час любого дня недели, который ; является четвертым днем месяца июля, мы закрыты exten => s,1,GotoIfTime(*,*,4,jul?open,s,1)

; В рабочие часы вызовы направляются в контекст open exten => s,n,GotoIfTime(09:00-17:59|mon-fri|*|*?open,s,1) exten => s,n,GotoIfTime(09:00-11:59|sat|*|*?open,s,1)

; В противном случае мы закрыты exten => s,n,Goto(closed,s,1)

Возможна ситуация, когда для интервала задано конечное время 17:58, а текущее время - 17:59, но диалплан не меняет своего поведения. Для такого случая следует заметить, что степень дискретизации приложения GotoIfTime() равна двум минутам. Поэтому, если в качестве времени завершения периода задано 18:00, система изменит свое поведение только в 18:01:59.

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

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

почта. Естественно, Asterisk обладает достаточно гибкой системой голосовой почты. Среди ее возможностей можно упомянуть:

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

• Различные приветствия для состояний «занято» и «недоступен».

• Стандартные и специальные приветствия.

• Возможность связывать телефоны с несколькими почтовыми ящиками, а почтовые ящики - с несколькими телефонами.

• Уведомление о поступлении сообщения голосовой почты по электронной почте с возможностью прикрепления сообщения голосовой почты в виде звукового файла1.


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Asterisk™: будущее телефонии Второе издание"

Книги похожие на "Asterisk™: будущее телефонии Второе издание" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Джим Меггелен

Джим Меггелен - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Джим Меггелен - Asterisk™: будущее телефонии Второе издание"

Отзывы читателей о книге "Asterisk™: будущее телефонии Второе издание", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.