Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ Voice(Asterisk\Cisco) ⇐

CISCO

Microsoft

Powershell

Python

SQL\T-SQL

FreeBSD and Nix

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Выполнение переходов по условию GOTO


Выполнение переходов по условию    
Приложение GotoIf() GotoIf() использует особый синтаксис, который часто называют услов-
ным:
GotoIf(выражение?местоназначения1:местоназначения2)
Если выражение истинно (возвращает значение true), абонент направ-
ляется на местоназначения1. Если выражение ложно (возвращает значе-
ние false), абонент направляется по второму адресу.
exten => 345,1,Set(TEST=1)
exten => 345,n,GotoIf($[${TEST} = 1]?weasels:iguanas)
exten => 345,n(weasels),Playback(weasels-eaten-phonesys)
exten => 345,n,Hangup()
exten => 345,n(iguanas),Playback(office-iguanas)
exten => 345,n,Hangup()
за каждым приложением Playback() следует
приложение Hangup(). Это делается для того, чтобы при перехо-
де на метку weasels вызов заканчивался до того, как начинает-
ся воспроизведение звукового файла office-iguanas.
В качестве места назначения может быть задано следующее:
Метка приоритета в рамках того же добавочного номера, например
weasels.
Добавочный номер и метка приоритета в рамках того же контекста,
например 123,weasels.
Контекст, добавочный номер и метка приоритета, например
incoming,123,weasels
     
exten => 345,1,Set(TEST=1)
exten => 345,n,GotoIf($[${TEST} = 1]?weasels,1:iguanas,1)
exten => weasels,1,Playback(weasels-eaten-phonesys)
exten => weasels,n,Hangup()
exten => iguanas,1,Playback(office-iguanas)
exten => iguanas,n,Hangup()
теперь переход выполняется к добавочному номеру, приоритету, это НЕ метка. Это другой добавочный номер  
     
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()
Рассмотрим другой пример выполнения переходов по условию. На этот
раз будем использовать оба приложения, и Goto(), и GotoIf(). Выпол-
ним счет в обратном направлении от 10 и повесим трубку
 
     
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()
В этом примере используется функция CALLERID, которая позволяет извлекать информацию о Caller ID (ID звонящего) входящего вызова.
Пусть для данного случая номер телефона жертвы будет 888-555-1212
 

Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект