VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Функция EXISTS в базе знаний asterisk.

Вопросы и предложения писать сюда

Модераторы: stas2k, april22, Zavr2008

Ответить
angrom
Сообщения: 1
Зарегистрирован: 17 апр 2019, 08:04

Функция EXISTS в базе знаний asterisk.

Сообщение angrom »

Здравствуйте, заметил, что в базе знаний по функции EXISTS как-то не очень профессионально написана справка.
http://asterisk.ru/knowledgebase/Asterisk+func+exists

Проверяется существования чего? Файла? Переменной? Екстеншена? Или левой ноги?

Да, вполне можно проверить как минимум значение и переменной и файла. И даже переменную, содержащую путь к файлу

Например она может проверить наличие файла в каталоге, прежде чем воспроизвести звук. Это удобно использовать, когда контент динамически меняется, например:
same => n,Set(filename=/temp/file123) ; Назначаем переменной filename какой-нибудь путь к файлу
same => n,Gotoif($[${EXISTS(${filename})}]?yes:no) ; Проверяем наличие файла (переменной) и если он есть, то воспроизводим этот файл, если нет, то сообщаем пользователю об ошибке.
same => n(yes),Playback(${filename})
same => n(no),Playback(error-message)

Так же, подобный пример существует на voip-info
https://www.voip-info.org/asterisk-func-exists/

Несмотря на скудную справку эта переменная довольно полезна :)
ded
Сообщения: 15620
Зарегистрирован: 26 авг 2010, 19:00

Re: Функция EXISTS в базе знаний asterisk.

Сообщение ded »

Привет!

Хотите помочь? Профессионально писать документацию по Астериск? Попробуйте сначала off-line, напишите этот раздел и перешлите через личные сообщения.
Если выше желание не пропадёт со временем - дадим аккаунт в on-line.
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Функция EXISTS в базе знаний asterisk.

Сообщение zzuz »

Во-первых, EXISTS() не переменная , а функция.
Во-вторых, если сделать same => n,Set(filename=no_exists_file) , то ничего вам не проиграется, хотя условие Gotoif($[${EXISTS(${filename})}]?yes:no) отработает. Включаем голову и делаем выводы.

Когда наиграетесь в супер критика , откройте функцию STAT() для разнообразия.
Линия24 - Системы Массового Телефонного Обслуживания
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH