ثبت نشدن تماس خروجی VoIP یکی از مشکلاتی است که میتواند گزارشگیری، نظارت بر تماسها و مدیریت سیستم تلفنی سازمان را مختل کند. سیستمهای VoIP معمولاً اطلاعات تماس را در بخشی به نام CDR یا Call Detail Record نگهداری میکنند. این اطلاعات شامل شماره تماسگیرنده، شماره مقصد، زمان شروع تماس، مدت مکالمه و وضعیت نهایی تماس است.
گاهی کاربران بدون مشکل تماس خروجی برقرار میکنند، اما مدیر سیستم اطلاعات آن تماس را در گزارشها نمیبیند. در چنین شرایطی باید بخشهایی مانند CDR، دیتابیس، Asterisk، SIP Trunk و مسیرهای خروجی تماس را بررسی کرد.
در این راهنما دلایل ثبت نشدن تماس خروجی VoIP را بررسی میکنیم و مراحل عیبیابی بخشهای مختلف سیستم را توضیح میدهیم. با یک بررسی مرحلهای میتوان مشخص کرد که مشکل از فرآیند ثبت تماس، دیتابیس، مسیر تماس یا پنل گزارشگیری ناشی میشود.
ثبت نشدن تماس خروجی VoIP به چه معناست؟
در حالت عادی، زمانی که کاربر از یک داخلی سازمان با شمارهای خارج از مجموعه تماس میگیرد، سیستم تلفنی اطلاعات مربوط به آن تماس را ثبت میکند. مدیر شبکه بعداً میتواند این اطلاعات را از طریق گزارش تماسها مشاهده کند.
اگر تماس برقرار شود اما رکورد آن در CDR وجود نداشته باشد، باید فرآیند ایجاد و ذخیره اطلاعات تماس را بررسی کرد.
این مشکل میتواند بخشهای مختلف مدیریت سیستم را تحت تأثیر قرار دهد:
- گزارشگیری تماسهای کاربران
- بررسی مدت مکالمات
- تحلیل تماسهای خروجی
- محاسبات مرتبط با تماسها
- عیبیابی سیستم تلفنی
- نظارت بر عملکرد داخلیها
- بررسی تماسهای ناموفق
البته نبودن یک تماس در پنل گزارشگیری همیشه به معنای ثبت نشدن آن در دیتابیس نیست. ممکن است دیتابیس اطلاعات تماس را ذخیره کرده باشد، اما پنل مدیریتی به دلیل فیلتر اشتباه، بازه زمانی نامناسب یا یک مشکل نرمافزاری آن را نمایش ندهد.
CDR چیست و چه نقشی در ثبت تماسها دارد؟
CDR مخفف Call Detail Record است. سیستم تلفنی از CDR برای نگهداری اطلاعات مربوط به تماسها استفاده میکند.
بسته به سیستم مورد استفاده، یک رکورد CDR میتواند اطلاعات زیر را در خود نگه دارد:
- شماره مبدأ
- شماره مقصد
- زمان شروع تماس
- زمان پاسخ
- زمان پایان تماس
- مدت تماس
- مدت مکالمه پاسخدادهشده
- وضعیت تماس
- کانال مورد استفاده
- اطلاعات مربوط به مسیر تماس
مدیران شبکه از CDR برای گزارشگیری، تحلیل تماسها و عیبیابی سیستم استفاده میکنند. اگر سیستم در تولید، ذخیره یا نمایش این رکوردها با مشکل روبهرو شود، گزارش تماسها نیز اطلاعات کامل را نشان نمیدهد.
برای بررسی تخصصیتر ساختار و عملکرد CDR میتوانید مستندات رسمی Asterisk را نیز بررسی کنید.
دلایل ثبت نشدن تماس خروجی در سیستم تلفنی
برای پیدا کردن علت مشکل نباید فقط یک قسمت از سیستم را بررسی کرد. تماس ممکن است از داخلی، Dialplan، Outbound Route، SIP Trunk و چند سرویس دیگر عبور کند. سیستم نیز اطلاعات CDR را در مرحلهای جداگانه مدیریت میکند.
به همین دلیل بهتر است فرآیند عیبیابی را مرحلهبهمرحله انجام دهید.
اختلال در تنظیمات CDR
یکی از اولین بخشهایی که هنگام ثبت نشدن تماس خروجی VoIP باید بررسی کنید، CDR است.
اگر مدیر سیستم Backend مربوط به CDR را فعال یا پیکربندی نکرده باشد، سیستم ممکن است اطلاعات تماس را در محل مورد انتظار ذخیره نکند.
در این مرحله موارد زیر را بررسی کنید:
- آیا CDR فعال است؟
- سیستم از کدام Backend استفاده میکند؟
- اطلاعات CDR در کجا قرار میگیرند؟
- آیا سیستم هنگام ذخیره رکوردها خطایی ثبت میکند؟
همچنین بررسی کنید که مشکل فقط تماسهای خروجی را درگیر کرده است یا تماسهای داخلی و ورودی نیز در گزارشها وجود ندارند.
مشکل در Backend ثبت تماس
CDR برای ذخیره اطلاعات به Backend مناسب نیاز دارد. اگر این بخش درست کار نکند، سیستم نمیتواند اطلاعات تماس را مطابق تنظیمات نگهداری کند.
در چنین شرایطی ابتدا وضعیت Backend را بررسی کنید و سپس Logهای مربوط به CDR را بخوانید. این روش اطلاعات دقیقتری درباره علت مشکل در اختیار شما قرار میدهد.
مشکلات دیتابیس و ثبت تماسهای VoIP
در بسیاری از پیادهسازیها، سیستم VoIP اطلاعات گزارش تماس را در یک دیتابیس ذخیره میکند. بسته به پلتفرم و معماری سیستم، ممکن است از MySQL، MariaDB یا راهکار دیگری استفاده شود.
اگر ارتباط سیستم تلفنی با دیتابیس دچار اختلال شود، فرآیند ذخیره رکوردهای جدید نیز ممکن است با مشکل روبهرو شود.
قطع شدن سرویس دیتابیس
ابتدا وضعیت سرویس دیتابیس را بررسی کنید. اگر سرویس متوقف شده باشد یا سیستم تلفنی نتواند با آن ارتباط برقرار کند، امکان ذخیره اطلاعات جدید وجود نخواهد داشت.
Restart کردن سرویس را بهعنوان اولین و تنها راهکار در نظر نگیرید. ابتدا Logها را بررسی کنید تا علت توقف یا اختلال مشخص شود.
پر شدن فضای دیسک
کمبود فضای ذخیرهسازی یکی دیگر از دلایل احتمالی بروز مشکل است.
زمانی که فضای دیسک سرور پر میشود، دیتابیس و سایر سرویسها ممکن است فضای کافی برای ذخیره اطلاعات جدید نداشته باشند.
موارد زیر را بررسی کنید:
- فضای آزاد دیسک
- پارتیشن دیتابیس
- حجم فایلهای Log
- میزان رشد اطلاعات CDR
- فضای موردنیاز سرویسهای سیستم
مدیریت منظم فضای ذخیرهسازی میتواند از بسیاری از مشکلات سرور جلوگیری کند.
مشکل در جدولهای CDR
خطاهای دیتابیس نیز میتوانند عملکرد جدول مربوط به CDR را مختل کنند.
قبل از Repair یا ایجاد تغییرات ساختاری، از اطلاعات مهم نسخه پشتیبان تهیه کنید. سپس Logهای دیتابیس را بررسی کنید تا علت واقعی خطا مشخص شود.
انجام تغییرات بدون بررسی خطا میتواند عیبیابی را دشوارتر کند.
سطح دسترسی دیتابیس
کاربری که سرویس VoIP برای اتصال به دیتابیس استفاده میکند باید مجوزهای لازم را داشته باشد.
تغییر Password، Permission یا تنظیمات اتصال ممکن است دسترسی سرویس را محدود کند. در چنین شرایطی، سرویس VoIP نمیتواند اطلاعات جدید را در جدول موردنظر بنویسد.
چگونه لاگ تماسهای خروجی VoIP را بررسی کنیم؟
بررسی Log یکی از مهمترین مراحل عیبیابی است. Logها نشان میدهند تماس چگونه وارد سیستم شده، از چه مسیری عبور کرده و در کدام مرحله پایان یافته است.
در یک سیستم VoIP مبتنی بر Asterisk میتوانید Logهای سیستم و پیامهای مربوط به پردازش تماس را بررسی کنید.
برای شروع، یک تماس آزمایشی برقرار کنید و زمان دقیق آن را یادداشت کنید. سپس Logهای مربوط به همان بازه زمانی را بررسی کنید.
هنگام بررسی به موارد زیر توجه داشته باشید:
- داخلی تماسگیرنده
- شماره مقصد
- Route انتخابشده
- Trunk مورد استفاده
- پاسخ SIP
- وضعیت نهایی تماس
- خطاهای CDR
- خطاهای دیتابیس
این روش باعث میشود بهجای بررسی حجم زیادی از اطلاعات، مسیر یک تماس مشخص را دنبال کنید.
نقش SIP Trunk در عیبیابی تماس خروجی
SIP Trunk مسیر ارتباطی سیستم تلفنی با سرویسدهنده تماس را فراهم میکند. به همین دلیل هنگام بروز مشکل در تماسهای خروجی باید وضعیت Trunk را نیز بررسی کرد.
بااینحال، بین «برقرار نشدن تماس» و «ثبت نشدن CDR» تفاوت مهمی وجود دارد.
اگر تماس از طریق SIP Trunk با موفقیت برقرار میشود اما گزارش آن وجود ندارد، بهتر است تمرکز اصلی عیبیابی را روی CDR، Dialplan، Backend ذخیرهسازی و پنل گزارشگیری قرار دهید.
بررسی احراز هویت SIP Trunk
اطلاعاتی مانند Username، Password، آدرس سرور و سایر پارامترهای موردنیاز اپراتور باید صحیح باشند.
اطلاعات احراز هویت اشتباه معمولاً روی برقراری تماس تأثیر میگذارند. بااینحال، هنگام عیبیابی کامل سیستم باید وضعیت Trunk را نیز کنترل کنید.
بررسی Outbound Route
Outbound Route مشخص میکند که سیستم تماس خروجی را براساس شماره مقصد از کدام مسیر ارسال کند.
اگر چند Route یا Trunk در سیستم دارید، ممکن است تماس از مسیری متفاوت با مسیر مورد انتظار عبور کند.
هنگام ایجاد تماس آزمایشی مشخص کنید سیستم دقیقاً کدام Route و Trunk را انتخاب کرده است.
آیا Codec و NAT باعث ثبت نشدن CDR میشوند؟
Codec و NAT نقش مهمی در عملکرد VoIP دارند، اما معمولاً نباید آنها را عامل مستقیم نبودن رکورد CDR در نظر گرفت.
مشکلات Codec بیشتر روی سازگاری رسانه و کیفیت صدا اثر میگذارند. تنظیمات NAT نیز میتوانند Signaling یا انتقال RTP را تحت تأثیر قرار دهند.
اگر سیستم نتواند تماس را بهدرستی پردازش یا تکمیل کند، وضعیت رکورد تماس نیز ممکن است تغییر کند. اما زمانی که تماس کاملاً برقرار میشود و فقط گزارش آن وجود ندارد، ابتدا CDR و Backend ذخیرهسازی را بررسی کنید.
اگر تماسها با مشکلات صوتی نیز روبهرو هستند، راهنمای قطع و وصل شدن صدا در تماس VoIP میتواند برای بررسی مشکلات شبکه مفید باشد.
تفاوت مشکل CDR با مشکل پنل گزارشگیری
قبل از تغییر تنظیمات سرور باید مشخص کنید که آیا سیستم واقعاً رکورد تماس را ایجاد نکرده یا فقط پنل مدیریتی آن را نمایش نمیدهد.
گاهی دیتابیس اطلاعات تماس را در اختیار دارد، اما پنل گزارشگیری به دلایل زیر آنها را نمایش نمیدهد:
- انتخاب بازه زمانی اشتباه
- فعال بودن فیلتر شماره یا داخلی
- اختلاف Time Zone
- مشکل Cache
- خطای رابط مدیریتی
- مشکل Query گزارشگیری
- محدودیت سطح دسترسی کاربر
بنابراین وجود رکورد را مستقیماً در منبع اصلی داده بررسی کنید.
اگر رکورد در دیتابیس وجود دارد اما پنل آن را نشان نمیدهد، احتمالاً باید بخش گزارشگیری، فیلترها یا رابط مدیریتی را عیبیابی کنید.
چگونه مشکل ثبت تماسهای خروجی را عیبیابی کنیم؟
بهترین روش، ایجاد یک تماس آزمایشی و دنبال کردن مسیر آن در سیستم است. با این کار میتوانید بخش مشکلدار را سریعتر پیدا کنید.
۱. یک تماس آزمایشی ایجاد کنید
یک داخلی مشخص انتخاب کنید و با آن یک تماس خروجی برقرار کنید.
زمان تماس، داخلی مبدأ و شماره مقصد را یادداشت کنید. این اطلاعات برای پیدا کردن همان تماس در Log و CDR کاربرد دارند.
۲. گزارش CDR را بررسی کنید
پنل گزارش تماسها را باز کنید و تماس آزمایشی را جستوجو کنید.
فیلترها و بازه زمانی را نیز بررسی کنید تا مطمئن شوید تنظیمات نمایش، تماس موردنظر را پنهان نکردهاند.
۳. لاگ Asterisk را بررسی کنید
اگر تماس را در CDR پیدا نکردید، Logهای Asterisk مربوط به همان زمان را بررسی کنید.
مشخص کنید تماس وارد سیستم شده است یا خیر و کدام Route و Trunk را طی کرده است.
۴. Backend مربوط به CDR را کنترل کنید
روش ذخیره اطلاعات CDR را مشخص کنید و وضعیت Backend را کنترل کنید.
Logهای این بخش میتوانند خطاهای مربوط به ذخیره رکوردهای جدید را نشان دهند.
۵. وضعیت دیتابیس را کنترل کنید
اگر سیستم از دیتابیس استفاده میکند، وضعیت سرویس، اتصال، Permissionها و فضای ذخیرهسازی را بررسی کنید.
همچنین زمان آخرین رکورد موفق را پیدا کنید. با این کار میتوانید زمان تقریبی شروع مشکل را مشخص کنید.
۶. Outbound Route را بررسی کنید
مسیر تماس خروجی را کنترل کنید و مطمئن شوید سیستم تماس را از Route مورد انتظار ارسال میکند.
این بررسی در سیستمهایی که چند Trunk یا Route دارند اهمیت بیشتری پیدا میکند.
۷. تماسهای ورودی و داخلی را مقایسه کنید
بررسی کنید که آیا مشکل فقط تماسهای خروجی را درگیر کرده است یا تماسهای ورودی و داخلی نیز CDR ندارند.
اگر سیستم هیچ نوع تماسی را ثبت نمیکند، CDR یا Backend احتمالاً با یک مشکل عمومی روبهرو است.
اگر فقط گروه خاصی از تماسها در گزارش وجود ندارند، مسیر همان گروه را دقیقتر بررسی کنید.
اشتباهات رایج هنگام رفع مشکل
یکی از اشتباهات رایج، تغییر همزمان چند تنظیم است. این کار پیدا کردن علت واقعی مشکل را دشوار میکند.
Restart کردن Asterisk یا دیتابیس بدون بررسی Logها نیز ممکن است مشکل را برای مدت کوتاهی پنهان کند، اما علت اصلی همچنان باقی بماند.
برای عیبیابی دقیقتر این ترتیب را دنبال کنید:
- یک تماس آزمایشی مشخص ایجاد کنید.
- Log همان تماس را بررسی کنید.
- وجود CDR را در منبع اصلی داده کنترل کنید.
- بخش مرتبط با خطا را مشخص کنید.
- فقط تنظیمات همان بخش را تغییر دهید.
- دوباره تماس آزمایشی برقرار کنید.
- نتیجه را با تست قبلی مقایسه کنید.
این روش به شما کمک میکند تغییرات سیستم را کنترل کنید و علت مشکل را سریعتر پیدا کنید.
پرسشهای متداول درباره ثبت نشدن تماس خروجی
چرا تماس خروجی برقرار میشود اما در CDR نیست؟
Backend مربوط به CDR، دیتابیس، Dialplan یا فرآیند ذخیرهسازی رکورد ممکن است با مشکل مواجه شده باشد. ابتدا بررسی کنید که آیا رکورد در منبع اصلی وجود دارد یا فقط پنل گزارشگیری آن را نمایش نمیدهد.
آیا SIP Trunk میتواند باعث این مشکل شود؟
SIP Trunk بیشتر در مسیر برقراری تماس نقش دارد. اگر تماس با موفقیت برقرار میشود اما CDR آن وجود ندارد، ابتدا بخش ثبت و ذخیره اطلاعات تماس را بررسی کنید.
آیا پر شدن هارد سرور باعث ثبت نشدن تماس میشود؟
بله. کمبود فضای ذخیرهسازی میتواند جلوی نوشتن اطلاعات جدید توسط دیتابیس یا سایر سرویسها را بگیرد. فضای آزاد سرور و حجم Logها را بررسی کنید.
آیا Restart کردن Asterisk مشکل را حل میکند؟
Restart ممکن است برخی اختلالات موقت را برطرف کند، اما علت اصلی مشکل را مشخص نمیکند. بهتر است قبل از Restart، Logهای سیستم را بررسی کنید.
چگونه بفهمیم مشکل از CDR است یا پنل گزارشگیری؟
رکورد تماس را مستقیماً در منبع اصلی ذخیرهسازی بررسی کنید. اگر رکورد وجود دارد اما پنل آن را نمایش نمیدهد، بخش گزارشگیری، فیلترها یا رابط مدیریتی احتمالاً به بررسی نیاز دارد.
سخن آخر شارن
ثبت نشدن تماس خروجی VoIP میتواند دلایل مختلفی داشته باشد. بنابراین نباید از همان ابتدا SIP Trunk، دیتابیس یا Asterisk را مقصر دانست. مدیر شبکه باید CDR، Backend ذخیرهسازی، Outbound Route، دیتابیس و پنل گزارشگیری را بهترتیب بررسی کند.
برای شروع، یک تماس آزمایشی مشخص ایجاد کنید و مسیر آن را در Logها دنبال کنید. سپس وجود رکورد تماس را در منبع اصلی CDR بررسی کنید. این روش کمک میکند قبل از ایجاد تغییرات گسترده، بخش مشکلدار را شناسایی کنید.
برای طراحی، راهاندازی، عیبیابی و پشتیبانی سیستمهای تلفنی سازمانی میتوانید از خدمات VoIP شارن استفاده کنید.