Команда Authenticate
Авторизировать пользователя по набранному коду
Описание:
Authenticate(password[|options])
Authenticate(/passwdfile|[|options])
Authenticate(/db-keyfamily|doptions)
Параметры:
Строка options может содержать комбинацию из любых, нижеприведенных символов:
- a - Установка account code в значение введенного пароля. Этот пароль будет сохранен в поле «accountcode» CDR записи и будет установлено в значении переменной канала ${ACCOUNTCODE}.
- d - Заставляет рассматривать первый аргумент, как название семейства ключей базы данных
- r - Удалять ключ базы данных, после успешной авторизации по нему (используется только совместно с опцией 'd')
В CVS версии Asterisk, эта команда имеет еще одну дополнительную опцию:
- j - перейти на приоритет n+101 при неудачной авторизации, если существует команда с таким приоритетом
Команда требует от пользователя ввода пароля для продолжения выполнения последующих команд.
Если в первый аргумент команды Authenticate начинается с символа '/', То этот аргумент будет рассматриваться как имя файла, содержащего список допустимых паролей (по одному паролю на строку). Имя пользователя или название канала не может быть задано в этом файле.
Если строка с параметрами содержит опцию 'd', тогда первый аргумент команды - это семейство ключей базы данных, с ключами, которые используются для проверки введенного пароля. пример:
/FEATURE/1234 = любая строка.
Тут: FEATURE - имя семейства ключей и '1234' (ключ) - пароль, на соответствие с которым проверяем ввод пользователя. Значением ключа может быть любая строка по Вашему желанию.
Обратите внимание: Что такой метод использования базы данных полностью противоречит здравому смыслу, т.к., по идее, должно быть так: /FEATURE/TYPE = password, тогда значение проверяемого пароля извлекается из базы данных, записи которых имеют ключи (а не пароли), а заданные значение можно было бы удалить без удаления в базе семейства ключей или дерева ключей (dbdeltree).
Коды возврата:
Возвращает 0, если пользователь ввел правильный пароль в течении трех попыток, иначе возвращает -1 (то же и для случая разрыва связи).
См. также