معماری نرم‌افزار

معماری سیستم‌های تلفنی Asterisk؛ جداسازی تماس، رویداد و CRM

راهنمای معماری Asterisk و VoIP: مرز رسانه و کنترل، پردازش امن رویدادهای تماس، اتصال CRM، مشاهده‌پذیری و کاربرد AI در عملیات زیرساخت.

در یک سیستم تلفنی، کیفیت تماس و ثبت اطلاعات کسب‌وکار هر دو مهم‌اند، اما نیازهای یکسانی ندارند. جریان صدا به اختلال لحظه‌ای حساس است؛ ثبت فعالیت در CRM معمولاً می‌تواند با کمی تأخیر انجام شود. طراحی باید مانع شود خرابی یک اتصال سازمانی، تجربهٔ تماس را هم مختل کند.

سه مسئولیت را از هم جدا کنیم

مسیر رسانه، کنترل تماس و پردازش رویدادهای کسب‌وکار سه مسئولیت متفاوت‌اند. هر کدام به سیاست ظرفیت، خطا و بازیابی خود نیاز دارند. این جداسازی الزاماً به معنای ایجاد تعداد زیادی سرویس نیست؛ ابتدا مرز مسئولیت را روشن کنید و سپس روش استقرار را انتخاب کنید.

Asterisk و رویدادهای تماس

رابط ARI در Asterisk امکان کار با کانال‌ها، پل‌ها و دیگر اجزای ارتباطی را فراهم می‌کند و رویدادها را از طریق WebSocket در اختیار برنامه می‌گذارد. در طراحی یکپارچه‌سازی، رویداد را به قرارداد داخلی قابل پیگیری تبدیل کنید تا تغییر یک رابط، همهٔ مصرف‌کننده‌ها را تحت تأثیر قرار ندهد.

اتصال CRM را از مسیر تماس دور نگه داریم

رویداد پایان تماس می‌تواند وارد صف پردازش شود و سپس فعالیت متناظر در CRM را به‌روز کند. شناسهٔ تماس و شناسهٔ رویداد را از هم تشخیص دهید؛ یک تماس چند رویداد دارد. برای هر اثر کسب‌وکار، کلید تشخیص تکرار، ترتیب معتبر و روش رسیدگی به خطا تعریف کنید.

وب‌سوکت به‌تنهایی صف پایدار یا تضمین بازپخش نیست. پس از قطع و اتصال دوباره، برای شناسایی فاصلهٔ اطلاعات و تطبیق وضعیت به یک سیاست مشخص نیاز دارید. این سیاست به امکانات منبع و نیاز سامانه وابسته است.

مرز دسترسی و دادهٔ حساس

اعتبارنامهٔ مدیریت تلفن و اتصال CRM را در مرورگر قرار ندهید. دسترسی کنترل تماس را محدود کنید و برای گزارش‌ها نیز سطح دسترسی تعریف کنید. ضبط مکالمه، نگه‌داری فایل و استفاده از داده برای تحلیل باید تصمیم‌های صریح محصول باشند؛ قابلیت فنی به‌تنهایی به معنای فعال‌بودن آن‌ها نیست.

مشاهده‌پذیری و AI در زیرساخت

اختلال رسانه، تأخیر پردازش رویداد و خطای سرویس سازمانی را جدا پایش کنید. زمان رخداد را از زمان دریافت و پردازش متمایز کنید تا علت تأخیر روشن‌تر شود. AI می‌تواند در خلاصه‌سازی رخدادها و پیشنهاد مسیر بررسی کمک کند؛ پیشنهاد باید به شواهد قابل مشاهده متصل باشد و اقدام عملیاتی حساس، مسیر کنترل مشخص داشته باشد.

چه سناریوهایی را آزمایش کنیم؟

  • CRM را موقتاً از دسترس خارج کنید و اثر آن بر تماس و صف را ببینید.
  • رویداد تکراری یا خارج از ترتیب ارسال کنید؛ نتیجهٔ کسب‌وکار نباید دو بار ثبت شود.
  • اتصال دریافت رویداد را قطع کنید و روند بازیابی اطلاعات را بررسی کنید.
  • بار تماس و سرعت پردازش رویداد را مستقل افزایش دهید.

برای مرزبندی داده و تلاش مجدد، راهنمای Outbox و Idempotency مفید است. سوابق و حوزه‌های کاری من نیز تجربهٔ تلفن، زیرساخت و یکپارچه‌سازی را معرفی می‌کند.