هر آنچه از کالر آی دی در استریسک باید بدانید
کالر آی دی (Caller ID) یکی از اجزای مهم در سیستمهای تلفنی است. وقتی از استریسک استفاده میکنید، درک دقیق کالر آی دی و چگونگی پیکربندی آن مزایای متعددی دارد؛ از نمایش دقیق تماسها گرفته تا افزایش امنیت، کاهش سوءاستفاده و بهبود تجربهی کاربری. در این مقاله ضمن معرفی مفهوم کالر آی دی، به جنبههای فنی، پیکربندیها، مشکلات رایج و بهترین روشها در استریسک میپردازم.
تعریف کالر آی دی
کالر آی دی به اطلاعاتی گفته میشود که در فرایند یک تماس تلفنی ارسال میشود و مشخص میکند تماس از چه شمارهای است و گاهی همراه با یک نام. به زبان سادهتر:
-
شماره تماسگیرنده (Caller Number)
-
نام تماسگیرنده (Caller Name)
-
بعضی مواقع دادههای اضافی مثل وضعیت نمایش (آیا نمایش داده شود یا مخفی باشد)
در استریسک، کالر آی دی میتواند برای تماسهای ورودی و خروجی کنترل شود، دستکاری شود، یا حتی از پایگاه داده برای جایگزینی نام استفاده شود.
اهمیت کالر آی دی در استریسک
چند دلیل که کالر آی دی در استریسک حیاتی است:
-
اعتبار و حرفهای بودن
تماسهای خروجی با شماره صحیح و نام مناسب، باعث اعتماد بیشتر مخاطب میشوند. -
مسائل حقوقی و مقرراتی
بعضی کشورها الزام کردهاند که شماره تماس و نام تماسگیرنده باید درست باشند؛ نمایانسازی نادرست میتواند جریمه داشته باشد. -
پیشگیری از سوءاستفاده
امکان جعل کالر آی دی (spoofing) وجود دارد؛ بنابراین کنترل آن در استریسک مهم است — هم برای امنیت داخلی و هم خارج از شبکه. -
بهبود تجربه کاربری
هنگامی که کارمندان یا مشتریان تماس میگیرند، نمایش نام، جلوگیری از سردرگمی و ایجاد نظم میکند.
مفاهیم فنی در استریسک مرتبط با کالر آی دی
توابع و اپلیکیشنها
استریسک چند تابع و متغیر دارد که مخصوص کالر آی دی است:
-
تابع
CALLERID()
برای گرفتن یا تنظیم کامل اطلاعات کالر آی دی. این تابع انواع متغیرهایdatatype
دارد مثلname
,num
,all
و غیره. Asterisk Documentation+2O’Reilly Media+2 -
متغیرهایی مثل
CALLERID(num)
برای شماره تماسگیرنده وCALLERID(name)
برای نام. asteriskguru.com+1 -
امکان ست کردن نمایش یا عدم نمایش Caller ID از طریق تنظیماتی که به نام
pres
,name-pres
,num-pres
و غیره شناخته میشود. Asterisk Documentation
مکانهایی که کالر آی دی قابل تنظیم است
روند معمولی در استریسک شامل این مکانها میشود:
-
در فایلهای پیکربندی ترانکها یا همتای SIP / IAX (مثلاً
sip.conf
,iax.conf
) که نام و شماره تماسگیرنده پیشفرض برای ارتباطات تعریف میشوند. -
در دیالپلن (
extensions.conf
یا فایلهای مشابه) با اپلیکیشنSet
یا دستورات مشابه جهت تغییرCALLERID(...)
قبل ازDial(...)
. Medium+2asteriskguru.com+2 -
در پایگاه داده یا پایگاههایی مشابه (DB در استریسک) برای نگاشت نام افراد به شمارهها (برای تماسهای ورودی نام بهصورت lookup جایگزین میشود). Amit Merchant – Software Engineer
پیکربندی کالر آی دی در استریسک: قدمها
در اینجا روند عمومی برای تنظیم کالر آی دی در استریسک را آوردهام:
1. بررسی تنظیمات ترانک / سرویسدهنده تلفنی
ابتدا باید بدانید ارائهدهندهی سرویس (SIP provider یا ترانک PSTN) چه محدودیتهایی دارد:
-
-
آیا اجازه میدهد کالر آی دی خروجی را خودتان تعیین کنید؟
-
آیا نام تماسگیرنده قابل ارسال است؟
-
آیا فرمت بینالمللی مورد نیاز است؟ مثلاً استفاده از پیششماره + یا 00
-
2. فعالسازی مناسب دستورات در دیالپلن
در extensions.conf
یا فایل مشابه:
exten => _X.,1,Set(CALLERID(num)=+981234567890)
exten => _X.,n,Set(CALLERID(name)=نام_شرکت)
exten => _X.,n,Dial(…rest of dial…)
این باید قبل از دستور Dial()
باشد تا ترانک کالر آی دی منتقل کند.
3. استفاده از تابع CALLERID
برای خواندن یا تغییر کامل یا جزئی کالر آی دی از CALLERID(...)
استفاده کنید. مثلاً:
same => n,NoOp(CID before change: ${CALLERID(all)})
same => n,Set(CALLERID(num)=+981234567890)
same => n,Set(CALLERID(name)=پشتیبانی)
same => n,NoOp(CID after change: ${CALLERID(all)})
4. جایگزینی نام تماسگیرنده برای تماسهای ورودی
اگر شماره آمده باشد اما نامش معلوم نباشد، میتوانید از یک دیتابیس داخل استریسک (ASTDB یا DB مشابه) استفاده کنید:
exten => s,1,GotoIf($[${DB_EXISTS(cidname/${CALLERID(num)})}]?gotname)
exten => s,n,Set(CALLERID(name)=Unknown)
exten => s,n(gotname),Set(CALLERID(name)=${DB(cidname/${CALLERID(num)})})
عکسها/شبیهسازیها
برای درک بهتر، اینجا دو تصویر زایده شامل:
-
نمودار دیالپلن که نحوهی جریان Set کردن کالر آی دی و سپس Dial را نشان میدهد.
-
تصویری از CLI استریسک که متغیرهای CALLERID نمایش داده میشوند قبل و بعد از تغییر.
(عکسها در نسخه نهایی میتوانند گذاشته شوند)
مشکلات رایج و راهکارها
در کار با کالر آی دی در استریسک ممکن است به مشکلات زیر بر بخورید:
مشکل | علت ممکن | راهحل پیشنهادی |
---|---|---|
کالر آی دی خروجی نمایش داده نمیشود یا نام درست نیست | سرویسدهنده اجازه ارسال نام یا شماره دلخواه را نمیدهد؛ یا فرمت ارسال مطابق استاندارد نیست | تماس با سرویسدهنده جهت کسب اطلاعات، تغییر فرمت، یا استفاده از پیششماره بینالمللی |
نمایش متفاوت کالر آی دی برای تماس داخلی و خارجی | تنظیمات داخلی extension یا context متفاوت است؛ Caller ID در دیالپلن یا config ترانک پیش از راهاندازی دیالها تنظیم نشده | استفاده از دیالپلن برای تشخیص اینکه تماس داخلی است یا خارجی و اعمال تنظیمات مناسب قبل از Dial |
استفاده از نام پیشفرض مثل “device <123>” یا چیزی مشابه | تنظیمات sip.conf یا GUI-های FreePBX اشتباه هستند یا جای نام callerid خالی است؛ قالب نام کلی اشتباه ذخیره شده | تصحیح فایل پیکربندی یا تنظیمات GUI، پر کردن فیلد CallerID و reload کردن استریسک |
جعل Caller ID (Spoofing) | این مشکل از شبکه تلفن، ترانکها یا سرویسدهنده است که کنترل کافی ندارند | استفاده از استانداردهایی مثل STIR/SHAKEN (در کشورها یا سرویسهایی که پشتیبانی میکنند)، لاگگیری، محدود کردن امکان تغییر Caller ID برای کاربران ناامن |
استانداردها و مقررات مرتبط
در برخی کشورها الزامات قانونی وجود دارد:
-
STIR/SHAKEN برای تایید مشروع بودن Caller ID در شبکههای VoIP و عمومی در حال توسعه است. این استانداردها کمک میکنند که کد تماسکننده تأیید شود و جعل آن سختتر گردد. Wikipedia+1
-
قوانین مخابراتی کشور ممکن است الزام کنند که شماره تماسدهنده همیشه مشخص باشد، یا نمایش نام نیز باید روشن باشد.
-
بعضی سرویسدهندگان تلفن ممکن است محدودیتهایی روی استفاده از Caller ID داشته باشند.
بهترین روشها برای مدیریت کالر آی دی در استریسک
برای بیشینه کردن بهرهوری و کاهش مشکلات، توصیههای زیر مفیدند:
-
مستندسازی وضعیت سرویسدهنده
بدانید سرویسدهنده شما چه چیزی پشتیبانی میکند؛ چه فرمتهایی قبول میکند، چه محدودیتهایی دارد. -
استفاده از دیالپلن قابل نگهداری
ساختار دیالپلن باید تمیز باشد، تغییر Caller ID قبل از دستور Dial و جداگانه برای تماسهای داخلی و خارجی در نظر گرفته شود. -
پایگاه داده نامها
اگر تعداد تماسهای ورودی زیاد است، داشتن دیتابیس برای نام تماسگیرنده بر اساس شماره بسیار مفید است تا هر تماس با شماره بینام نباشد. -
کنترل دسترسی تغییر Caller ID
برای جلوگیری از سوءاستفاده، تنها کاربران یا contextهایی که صلاحیت دارند، اجازهی تغییر کالر آی دی داشته باشند. -
تست کامل پس از پیکربندی
پس از اعمال تنظیمات، تماسهای آزمایشی انجام دهید: تماس داخلی، تماس خروجی به شبکه عمومی، تماس با فرمت بینالمللی، بررسی CLI و لاگها. -
مراقبت از امنیت و جعل Caller ID
استفاده از پروتکلها و استانداردهای تاییدی اگر در منطقهی شما در دسترساند، و لاگبرداری از تماسها برای مانیتورینگ.
نمونه عملی: یک سناریو
فرض کنید شما یک شرکت با شمارههای داخلی متعدد دارید و میخواهید:
-
هنگام تماس داخلی، نام و داخلی تماسگیرنده نمایش داده شود.
-
هنگام تماس خروجی به شمارهی بیرون، نام شرکت + شماره عمومی شرکت نمایش داده شود.
پیکربندی ممکن است شبیه این باشد:
[internal]
exten => _X.,1,Set(CALLERID(num)=${CALLERID(num)})
same => n,Set(CALLERID(name)=${CALLERID(name)})
same => n,Dial(SIP/${EXTEN},20)
[outbound]
exten => _9X.,1,Set(CALLERID(num)=+981234567890) ; شماره عمومی شرکت
same => n,Set(CALLERID(name)=“شرکت مثال”)
same => n,Dial(SIP/trunk/${EXTEN:1},,r)
در این تنظیمات، کد داخلی تماسهای داخلی را همانگونه حفظ میکند ولی برای تماسهای خروجی قبل از استفاده از ترانک، کالر آی دی را به مقدار مورد نظر شرکت میگذارد.
جمعبندی
کالر آی دی در استریسک یک قابلیت بسیار مهم است که در افزایش شفافیت، حرفهای بودن و امنیت سیستم تلفنی نقش دارد. اگر به درستی پیکربندی شود، میتواند تجربهی کاربری را بهبود دهد و مشکلات قانونی یا سوءاستفاده را کاهش دهد. در عین حال نیاز است که مستمر تست شود، تنظیمات سرویسدهنده مد نظر قرار گیرد و محدودیتها شناسایی شوند.