Authenticate App در Asterisk
- تاریخ ارسال: 1401/07/06
- تعداد نمایش: 2901
- گروه:
گاهی اوقات برای ادامه روند Diaplan نیاز به اعتبارسنجی داریم با استفاده از دستور Authenticate می توانیم این کار را در Asterisk انجام دهیم.
امضای این App
Authenticate(password[,options[,maxdigits[,prompt]]])
پارامتر اول پسورد قرار می گیرد
پارامتر دوم:گزینه های زیر را می توان وارد کرد:
a:استفاده از account code داخلی به عنوان پسورد
d: به معنی پسورد در دیتابیس قرار دارد
m:به معنی پسورد در یک فایل است.
پارامتر سوم:حداکثر تعداد ورودی های کاربر را مشخص می کند.
پارامتر چهارم:یک پیام صوتی است که زمانی که دایال پلن به این دستور برسد ابتدا این فایل را برای تماس گیرنده پخش می کند.
با Authenticate app می توانیم پسورد را در سه حالت ثابت متنی ، در دیتابیس استریسک و یا یک فایل قرار دهیم.
حالت اول:قرار دادن پسورد بصورت ثابت متنی مثلا
exten=>1545,1,authenticate(1234)
exten=>1545,2,playback(welcome)
تماس گیرنده اگر پسورد را صحیح وارد کند دایال پلن به خط بعدی می رود.
در این حالت همیشه پسورد ثابت می ماند.در صورتی که پسورد اشتباه وارد شود استریسک تا 3 مرتبه درخواست پسورد را تکرار می کند و پس از 3 بار اشتباه وارد کردن تماس قطع می شود.
حالت دوم پسورد در دیتابیس استریسک
در این روش پسورد را در دیتابیس استریسک ذخیره می کنیم و این app پسورد را از دیتابیس می خواند.
نکته:قسمت key در دیتابیس به عنوان پسورد قرار می گیرد و از قسمت value صرف نظر می شود و در App کافیست قسمت family ذکر شود:
به عنوان مثال در دیتابیس استریسک یک Value به صورت زیر
alborzvoip 1234 1111 داریم که قسمت اول family قسمت دوم key و قسمت سوم value است.در اینجا پسورد ما قسمت key یعنی 1234 می شود.
دستور ما بصورت زیر می شود:
exten=>1545,1,authenticate(/alborzvoip,d,4,enterYourPassword-voice)
زمانی که از روش دیتابیس استفاده می کنیم باید قسمت پسورد را با اسلش شروع کنیم و فقط نام family را وارد کنیم.
حالت سوم ، پسورد در فایل
در این حالت پسورد باید هش شده باشد و هر خط برای یک پسورد است.برای تفکیک پسورد باید هر پسورد جلوی account code قرار بگیرد و با : از هم جدا شده باشند به عنوان مثال برای account code با مقدار 026 ، هش شده پسورد 1234 تنظیم شده است:
026:81dc9bdb52d04dc20036dbd8313ed055
این پسورد را در فایلی در مسیر /var/lib/asterisk/ و به نام pass ذخیره کرده ایم:
دستور ما بصورت زیر می شود:
exten=1545,1,authenticate(/var/lib/asterisk/pass,m,4,enterYourPassword-voice)