Asterisk. Команда Authenticate.

Authenticate() - Требует от вызывающего абонента введения правильного пароля  для продолжения выполнения следующего приоритета диалплана.

Authenticate(пароль[,опции[,максимумсимволов]])

Варианты:

Authenticate(password[|options])
Authenticate(/passwdfile|[|options])
Authenticate(/db-keyfamily|doptions)

Требует от вызывающего абонента ввести заданный пароль, для продолжения выполнения следующего приоритета диалплана.

Вызывающему абоненту дается три попытки для правильного введения пароля. Если все три попытки неудачны, происходит разрыв соединения.

Если пароль начинается с символа /, он трактуется как файл, содержащий список действительных паролей (по одному в строке). Пароли также могут храниться в базе данных Asterisk (AstDB); см. опцию d ниже.

Параметр максимумсимволов задает максимальное число символов, которое может ввести вызывающий абонент. Если этот параметр не задан, будет приниматься  неограниченное кол-во символов и при этом будет ожидать от вызывающего абонента нажатия кнопки # после введения кода аутентификации.

Опции:
a - Присваивает CDR-полю accountcode, а переменной канала ACCOUNTCODE – значение введенного пароля.
d - Указывает путь  как ключ базы данных, в которой находится пароль. При использовании ключа базы данных значением, ассоциированным с ключом, может быть все что угодно.
j - Поддерживает переход к приоритету n + 101 в случае неудачной аутентификации.
m - Указывает заданный путь как файл, содержащий список кодов учетных записей и хешей паролей, разделенных символом : (двоеточие), по одному в строке. При совпадении одного из паролей для канала будет задан код учетной записи, соответствующий коду, указанному в файле.
r - Удаляет ключ базы данных после успешного входа (действительна только с опцией d).

Пример:

; Заставляем вызывающего абонента ввести пароль, прежде чем выполнять остальные действия после чего сохраняем введенный пароль в CDR-поле 'accountcode'
exten => 123,1,Answer()
exten => 123,n,Authenticate(1234,a)
exten => 123,n,Playback(pin-number-accepted)
exten => 123,n,SayDigits(${ACCOUNTCODE})   - устарело 

exten => 123,n,SayDigit(${CDR(accountcode)})

 

 

См. также: VMAuthenticate(), DISA()