- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Asterisk™: будущее телефонии Второе издание - Джим Меггелен
Шрифт:
Интервал:
Закладка:
Отправляет произвольное событие
Отправляет произвольное событие в интерфейс Asterisk Manager.
Параметры
UserEvent
[обязательный] Имя отправляемого произвольного события.
Header
[необязательный] Имя и значение произвольного параметра вашего события. В событие можно ввести неограниченное число дополнительных заголовков (и их значений).
ActionID
[необязательный] Идентификатор, который может использоваться для опознавания ответа на эту команду.
Привилегии
Пример
Action: UserEvent Blah: one
SomethingElse: two ActionID: 63346
Event: UserEvent Privilege: user,all UserEvent: Action: UserEvent Blah: one
SomethingElse: two ActionID: 63346
WaitEvent
Ожидает возникновения события
После вызова этой команды Asterisk отправит сообщение Success, как только интерфейс Asterisk Manager поставит в очередь следующее событие. Если команда WaitEvent вызвана для HTTP-сеанса интерфейса Manager, события будут формироваться и ставиться в очередь.
Параметры
Timeout
[необязательный] Максимальное время ожидания событий.
ActionID
[необязательный] Идентификатор, который может использоваться для опознавания ответа на эту команду.
Привилегии
none
Пример
Action: WaitEvent Timeout: 30
Action: Ping
Response: Success
Message: Waiting for Event...
Event: WaitEventComplete
Response: Pong
ZapDNDoff
Отменяет для Zap-канала состояние «не беспокоить» Отменяет для Zap-канала состояние «не беспокоить».
Параметры
ZapChannel
[обязательный] Номер Zap-канала, для которого необходимо отменить состояние «не беспокоить».
ActionID
[необязательный] Идентификатор, который может использоваться для опознавания ответа на эту команду.
Привилегии
none
Пример
Action: ZapDNDoff ZapChannel: 1
ActionID: 01234567899876543210
Response: Success
ActionID: 01234567899876543210
Message: DND Disabled
ZapDNDon
Устанавливает для Zap-канала состояние «не беспокоить»
Включает для заданного Zap-канала состояние «не беспокоить».
Параметры
ZapChannel
[обязательный] Номер Zap-канала, который необходимо перевести в состояние «не беспокоить».
Привилегии
none
Пример
Action: ZapDNDon ZapChannel: 1
ActionID: 98765432100123456789
Response: Success
ActionID: 98765432100123456789
Message: DND Enabled
ZapDialOffhook
Выполняет набор номера по Zap-каналу, когда телефон подключен к линии
Набирает заданный номер по Zap-каналу, когда телефон подключен к линии.
Параметры
ZapChannel
[обязательный] Zap-канал, по которому выполняется набор номера.
Number
[обязательный] Набираемый номер.
ActionID
[необязательный] Уникальный идентификатор, который может служить для опознавания ответов на эту команду.
Привилегии
none
Пример
Action: ZapDialOffhook ZapChannel: 1 Number: 543215432154321 ActionID: 5676
Response: Success ActionID: 5676 Message: ZapDialOffhook
ZapHangup
Разъединяет Zap-канал
ZapChannel
[обязательный] Zap-канал, который должен быть разъединен.
ActionID
[необязательный] Уникальный идентификатор, который может служить для опознавания ответов на эту команду.
Привилегии
none
Пример
Action: ZapHangup ZapChannel: 1-1 ActionID: 98237892
Response: Success ActionID: 98237892 Message: ZapHangup
ZapRestart
Выполняет полный перезапуск Zaptel-каналов
Полностью перезапускает Zaptel-каналы, завершая все выполняющиеся вызовы.
Привилегии
none
Пример
Action: ZapRestart
Response: Success Message: ZapRestart: Success
ZapShowChannels
Представляет статус Zapata-каналов
Представляет статус всех Zap-каналов.
Параметры
ActionID
Привилегии
none
Пример
Action: ZapShowChannels ActionID: 9999999999
Response: Success ActionID: 9999999999
Message: Zapata channel status will follow
Event: ZapShowChannels Channel: 1
Signalling: FXO Kewlstart Context: incoming DND: Disabled Alarm: No Alarm ActionID: 9999999999
Event: ZapShowChannels Channel: 4
Signalling: FXS Kewlstart Context: incoming DND: Disabled Alarm: No Alarm ActionID: 9999999999
Event: ZapShowChannelsComplete ActionID: 9999999999
ZapTransfer
Выполняет переадресацию Zap-канала
Выполняет переадресацию Zap-канала.
Привилегия
none
Пример
Action: ZapTransfer ZapChannel: 1 ActionID: 4242
Response: Success Message: ZapTransfer ActionID: 4242
G
Пример func_odbc
В этом приложении представлены примеры из реализации функциональности «горячих столов», о которой шла речь в разделе «Ощутим могущество func_odbc: система "горячих столов"» главы 12. Возможно, есть смысл вернуться к главе 12 и рассмотреть этот код данного примера вместе с объяснениями.
Система «горячих столов» (extensions.conf)
Коддиалплана
; Функция "горячих столов"
[hotdesk][hotdesk] ; Регистрация "горячего стола" exten => _11XX,1,NoOp() exten => _11XX,n,Set(E=${EXTEN}) exten => _11XX,n,Verbose(1|Hot Desk Extension ${E} is changing status) exten => _11XX,n,Verbose(1|Checking current status of extension ${E}) exten => _11XX,n,Set(${E}_STATUS=${HOTDESK_INFO(status,${E})}) exten => _11XX,n,Set(${E}_PIN=${HOTDESK_INFO(pin,${E})}) exten => _11XX,n,GotoIf($[${ISNULL(${${E}_STATUS})}]?invalid_user) exten => _11XX,n,GotoIf($[${${E}_STATUS} = 1]?logout,1:login,1) exten => login,1,NoOp() exten => login,n,Set(PIN_TRIES=0) exten => login,n,Set(MAX_PIN_TRIES=3) exten => login,n(get_pin),NoOp() exten => login,n,Set(PIN_TRIES=$[${PIN_TRIES} + 1]) exten => login,n,Read(PIN_ENTERED|enter-password|${LEN(${${E}_PIN})})exten => login,n,GotoIf($[${PIN_ENTERED} = ${${E}_PIN}]?valid_login,1)
exten => login,n,Playback(invalid-pin,1)
exten => login,n,GotoIf($[${PIN_TRIES} <= ${MAX_PIN_TRIES}]?get_pin:login_fail,1)
exten => valid_login,1,NoOp()
exten => valid_login,n,Set(LOCATION=${CUT(CHANNEL,/,2)})
exten => valid_login,n,Set(LOCATION=${CUT(LOCATION,-,1)})
exten => valid_login,n,Set(ARRAY(USERS_LOGGED_IN)=${HOTDESK_CHECK_PHONE_LOGINS
(${LOCATION})})
exten => valid_login,n,GotoIf($[${USERS_LOGGED_IN} > 0]?logout_login,1)
exten => valid_login,n(set_login_status),NoOp()
exten => valid_login,n,Set(HOTDESK_STATUS(${E})=1,${LOCATION})
exten => valid_login,n,GotoIf($[${ODBCROWS} < 1]?error,1)
exten => valid_login,n,Playback(agent-loginok)
exten => valid_login,n,Hangup()
exten => logout_login,1,NoOp()
exten => logout_login,n,Set(ROW_COUNTER=0)
exten => logout_login,n,While($[${ROW_COUNTER} < ${USERS_LOGGED_IN}])
exten => logout_login,n,Set(WHO=${HOTDESK_LOGGED_IN_USER(${LOCATION}, ${ROW_COUNTER})})
exten => logout_login,n,Set(HOTDESK_STATUS(${WHO})=0)
exten => logout_login,n,Set(ROW_COUNTER=$[${ROW_COUNTER} + 1])
exten => logout_login,n,EndWhile()
exten => logout_login,n,Goto(valid_login,set_login_status)
exten => logout,1,NoOp()
exten => logout,n,Set(HOTDESK_STATUS(${E})=0)
exten => logout,n,GotoIf($[${ODBCROWS} < 1]?error,1)
exten => logout,n,Playback(silence/1&agent-loggedoff)
exten => logout,n,Hangup()
exten => login_fail,1,NoOp()
exten => login_fail,n,Playback(silence/1&login-fail)
exten => login_fail,n,Hangup()
exten => error,1,NoOp()
exten => error,n,Playback(silence/1&connection-failed)
exten => error,n,Hangup()
exten => invalid_user,1,NoOp()
exten => invalid_user,n,Verbose(1|Hot Desk extension ${E} does not exist)
exten => invalid_user,n,Playback(silence/2&invalid)
exten => invalid_user,n,Hangup()
include => hotdesk_outbound
[hotdesk_outbound]
exten => _X.,1,NoOp()
exten => _X.,n,Set(LOCATION=${CUT(CHANNEL,/,2)}) exten => _X.,n,Set(LOCATION=${CUT(LOCATION,-,1)})
exten => _X.,n,Set(WHO=${HOTDESK_PHONE_STATUS(${LOCATION})})
exten => _X.,n,GotoIf($[${ISNULL(${WHO})}]?no_outgoing,1)
exten => _X.,n,Set(${WHO}_CID_NAME=${HOTDESK_INFO(cid_name,${WHO})})
exten => _X.,n,Set(${WHO}_CID_NUMBER=${HOTDESK_INFO(cid_number,${WHO})})
exten => _X.,n,Set(${WHO}_CONTEXT=${HOTDESK_INFO(context,${WHO})})
exten => _X.,n,Goto(${${WHO}_CONTEXT},${EXTEN},1)
[international]
exten => _011.,1,NoOp()
exten => _011.,n,Set(E=${EXTEN})
exten => _011.,n,Goto(outgoing,call,1)
exten => i,1,NoOp()
exten => i,n,Playback(silence/2&sorry-cant-let-you-do-that2)
exten => i,n,Hangup()
include => longdistance
[longdistance]
exten => _1NXXNXXXXXX,1,NoOp()
exten => _1NXXNXXXXXX,n,Set(E=${EXTEN})
exten => _1NXXNXXXXXX,n,Goto(outgoing,call,1)
exten => _NXXNXXXXXX,1,Goto(1${EXTEN},1)
exten => i,1,NoOp()
exten => i,n,Playback(silence/2&sorry-cant-let-you-do-that2) exten => i,n,Hangup()
include => local
[local]
exten => _416NXXXXXX,1,NoOp()
exten => _416NXXXXXX,n,Set(E=${EXTEN})
exten => _416NXXXXXX,n,Goto(outgoing,call,1)
exten => i,1,NoOp()
exten => i,n,Playback(silence/2&sorry-cant-let-you-do-that2) exten => i,n,Hangup()
[outgoing]
exten => call,1,NoOp()
exten => call,n,Set(CALLERID(name)=${${WHO}_CID_NAME})
exten => call,n,Set(CALLERID(number)=${${WHO}_CID_NUMBER})
exten => call,n,Dial(SIP/service_provider/${E})
exten => call,n,Playback(silence/2&pls-try-call-later)
exten => call,n,Hangup()
[hotdesk_phones]
exten => _11XX,1,NoOp()
exten => _11XX,n,Set(E=${EXTEN})
exten => _11XX,n,Set(LOCATION=${HOTDESK_LOCATION(${E})}) exten => _11XX,n,GotoIf($[${ISNULL(${LOCATION})}]?voicemail,1) exten => _11XX,n,Dial(SIP/${LOCATION},30) exten => _11XX,n,Goto(voicemail,1)
exten => voicemail,1,NoOp()
exten => voicemail,n,Voicemail(${E}@hotdesk,u)
exten => voicemail,n,Hangup()
Смотрите также
Разделы «Система "горячих столов" (sip.conf)», «Система "горячих столов" (func_odbc.conf)», главу 5, главу 6, Read(), CUT, While(), ISNULL, VoiceMail(), CALLERID, Dial(),GotoIf()
Система «горячих столов» (func_odbc.conf)
Специальные функции диалплана
[INFO]
prefix=HOTDESK dsn=asterisk

