Skip to content

Soft Phone (تلفن نرم‌افزاری مرورگر) ​

خلاصه کاربردی

Soft Phone به اپراتور اجازه می‌دهد بدون تلفن رومیزی جدا، از داخل پنل CRM با مرورگر تماس بگیرد و پاسخ دهد. رجیستر واقعی SIP روی Issabel انجام می‌شود؛ سیگنالینگ از مسیر امن WebSocket و رسانه صوتی از مرورگر است. این صفحه ست‌آپ Issabel، تنظیمات پنل، استفاده روزمره و عیب‌یابی را پوشش می‌دهد.

پیش‌نیاز

قبل از Soft Phone، اتصال AMI و (ترجیحاً) CDR را طبق راه‌اندازی Issabel سبز کنید. بدون داخلی معتبر روی Issabel، رجیستر مرورگر ممکن نیست.

اگر رجیستر با خطای WebSocket شکست خورد

تنظیمات پنل (داخلی، رمز، IP) را کامل کنید. اگر همچنان خطا ماند، زیرساخت اتصال امن مرورگر به Issabel توسط پشتیبانی فنی بررسی می‌شود — ادمین فضای کاری به تنظیمات سرور CRM دسترسی ندارد.


۱) Soft Phone چیست و چه تفاوتی با Click-to-Call دارد؟ ​

حالتچه اتفاقی می‌افتدنیاز
Click-to-CallCRM دستور Originate می‌دهد؛ تلفن/سافت‌فونِ همان داخلی زنگ می‌خورد، بعد مقصدتلفن رومیزی یا اپ SIP جدا روی داخلی
Soft Phoneمرورگر خودش به‌عنوان داخلی SIP روی Issabel رجیستر می‌شود و صدا داخل تب CRM پخش می‌شودمیکروفن مرورگر + HTTPS

وقتی Soft Phone در تنظیمات فعال و کامل باشد:

  • تب سافت‌فون در صفحه تلفن نمایش داده می‌شود.
  • تماس خروجی از همان داخلی Soft Phone برقرار می‌شود (نه فقط Originate به تلفن رومیزی).
  • پاپ‌آپ تماس زنده از داخلی Soft Phone استفاده می‌کند.

۲) تصویر کلی اتصال ​

مرورگر اپراتور
        │
        │  اتصال امن WebSocket از طریق دامنه CRM
        ▼
زیرساخت NikaCRM  ───►  Asterisk HTTP/WS روی Issabel (معمولاً localhost:8088)
        │
        ▼
رجیستر SIP داخلی + صدای RTP به IP عمومی Issabel

نکته‌های حیاتی:

  1. پورت SIP 5060 برای رجیستر مرورگر کافی نیست. مرورگر از WebSocket Asterisk استفاده می‌کند، نه UDP خام به 5060.
  2. فیلد پورت SIP در پنل (مثلاً 5060) برای شناسایی peer است؛ مسیر سیگنالینگ مرورگر جدا و امن است.
  3. پورت 8088 را به اینترنت باز نکنید. فقط روی localhost Issabel بماند.
  4. فیلد IP در تنظیمات Soft Phone باید IP/دامنه قابل‌دسترس Issabel باشد (نه 127.0.0.1) تا صدا قطع نشود.

۳) ست‌آپ سمت Issabel (HTTP / WebSocket) ​

۳.۱ تنظیمات Advanced Settings ​

کلیدمقدار پیشنهادیتوضیح
HTTPENABLED1روشن بودن HTTP Asterisk
HTTPBINDADDRESS127.0.0.1فقط localhost — امن
HTTPBINDPORT8088پورت WS/HTTP
HTTPENABLESTATIC1مطابق نیاز Issabel

سپس Apply Config.

بررسی:

bash
asterisk -rx "http show status"
# انتظار: Server Enabled

ss -lntp | grep 8088
# انتظار: گوش دادن روی 127.0.0.1:8088

۳.۲ فایل پایدار http_custom.conf ​

Issabel گاهی تنظیمات HTTP را بازنویسی می‌کند. override ماندگار:

text
/etc/asterisk/http_custom.conf
ini
; NikaCRM Softphone — durable override
[general](+)
enabled=yes
bindaddr=127.0.0.1
bindport=8088
enablestatic=yes

بعد:

bash
asterisk -rx "core reload"

۳.۳ پایدار ماندن بعد از Apply Config ​

بعد از Apply Config اگر HTTP خاموش شد:

  1. مقادیر Advanced Settings بالا را دوباره 1 / 127.0.0.1 / 8088 کنید.
  2. فایل http_custom.conf را نگه دارید.
  3. در صورت نیاز localnet=127.0.0.0/8 را از تنظیمات NAT SIP حذف کنید تا صدا لوپ‌بک نشود.
  4. برای مانیتورینگ دائمی می‌توانید یک cron ساده روی Issabel بنویسید که http show status / پورت 8088 را چک کند — جزئیات را با پشتیبانی فنی هماهنگ کنید.

۳.۴ ساخت داخلی Soft Phone روی Issabel ​

  1. در Issabel یک Extension بسازید (مثلاً 1001).
  2. در Device Options رمز SIP (Secret) را یادداشت کنید.
  3. codecهای رایج (ulaw / alaw) معمولاً کافی‌اند.
  4. همان داخلی را همزمان روی تلفن رومیزی و مرورگر رجیستر نکنید مگر PBX شما چند contact را پشتیبانی کند.

WARNING

رمز SIP را فقط در CRM (تب Soft Phone) و Device Options ایزابل نگه دارید.


۴) زیرساخت سمت CRM ​

اتصال امن مرورگر به WebSocket Asterisk روی Issabel توسط تیم فنی / پشتیبانی NikaCRM روی سرور محصول برقرار می‌شود. ادمین فضای کاری فقط تنظیمات پنل را پر می‌کند.

اگر بعد از تکمیل پنل، خطای WebSocket دیدید → به پشتیبانی فنی تیکت بزنید.

در تنظیمات اتصال VoIP، در صورت نیاز فیلدهای SSH برای پخش ضبط (و در برخی محیط‌ها همگام‌سازی رمز داخلی) هم پر می‌شود — جزئیات در Issabel Setup و ضبط.


۵) تنظیمات در پنل CRM ​

مسیر: VoIP → تنظیمات → تب Soft Phone

فیلدمعنینکته
فعال‌سازی Soft Phoneروشن/خاموش کل قابلیتخاموش = تب سافت‌فون در تلفن پنهان؛ تماس‌ها به حالت Click-to-Call برمی‌گردند
داخلی (Extension)همان شماره روی Issabelباید دقیقاً با PBX یکی باشد
رمز SIP (Secret)Device Secret داخلیبعد از ذخیره معمولاً ماسک می‌شود؛ برای عوض کردن مقدار جدید تایپ کنید
آدرس سرور (IP)IP/دامنه رسانه Issabelباید عمومی/قابل‌دسترس باشد — نه 127.0.0.1
پورت SIPمعمولاً 5060برای شناسایی peer؛ مسیر WebSocket جدا است

دکمه‌ها:

دکمهکار
ذخیرهتنظیمات فضای کاری را ذخیره می‌کند؛ اگر فعال باشد خودکار سعی در رجیستر می‌کند
رجیستر الانرجیستر SIP را از مرورگر شروع می‌کند
بررسیوضعیت peer را روی Issabel می‌پرسد

وضعیت‌های رایج در UI:

وضعیتمعنی
idleهنوز شروع نشده
connectingدر حال اتصال / REGISTER
registeredرجیستر موفق در مرورگر
unregisteredقطع رجیستر
failedخطا (websocket، reject، secret، …)

نکته کاربردی

اول Soft Phone را ذخیره و رجیستر الان بزنید؛ وضعیت باید registered شود. بعد با دکمه بررسی peer را روی Issabel تأیید کنید. سپس از صفحه تلفن یک شماره تست بگیرید.


۶) استفاده روزمره در صفحه تلفن ​

  1. VoIP → تلفن را باز کنید.
  2. اگر Soft Phone فعال باشد، تب سافت‌فون را می‌بینید.
  3. اجازه میکروفن مرورگر را بدهید (HTTPS لازم است).
  4. شماره را وارد یا از مخاطبین / داخلی‌ها / صف‌ها انتخاب کنید و تماس بگیرید.
  5. در تماس فعال: قطع، بی‌صدا (mute)، و کارت‌های مخاطب/یادداشت در دسترس‌اند.
  6. اگر صدا نمی‌آید ولی تماس وصل است، یک‌بار روی صفحه کلیک کنید — بعضی مرورگرها پخش صدا را تا تعامل کاربر بلاک می‌کنند.

پاپ‌آپ زنده تماس ورودی وقتی Webhook + داخلی Soft Phone درست باشد، پرونده مشتری مرتبط را نشان می‌دهد.

جزئیات UI صفحه: تلفن.


۷) چک‌لیست راه‌اندازی Soft Phone (به ترتیب) ​

  1. Issabel AMI + داخلی آماده باشد.
  2. روی Issabel: HTTP روشن، bind روی 127.0.0.1:8088، http_custom.conf.
  3. در پنل: VoIP فعال + AMI تست سبز.
  4. تب Soft Phone: داخلی، Secret، IP واقعی Issabel، پورت 5060 → ذخیره → رجیستر الان.
  5. وضعیت = registered؛ بررسی Issabel = آنلاین.
  6. تماس تست؛ دو طرفه بودن صدا را چک کنید.
  7. تماس ورودی تست + پاپ‌آپ (نیاز به Webhook طبق سند Issabel).
  8. اگر WebSocket خطا داد → پشتیبانی فنی.

۸) عیب‌یابی Soft Phone ​

علامتعلت‌های محتملاقدام
خطای websocket / timeoutزیرساخت اتصال CRM↔Issabel، HTTP Asterisk خاموش، 8088 گوش نمی‌دهدIssabel را چک کنید؛ در صورت ادامه به پشتیبانی فنی
رجیستر rejected / Auth failedSecret غلط یا داخلی اشتباهSecret را دوباره وارد و ذخیره کنید
CRM registered ولی بررسی Issabel آفلاینpeer اشتباه، AMI ضعیف، تأخیرsip show peer / pjsip show endpoint روی Issabel
زنگ می‌خورد ولی هیچ صدایی نیستIP فیلد Soft Phone لوپ‌بک، NAT، بلاک میکروفن، autoplayIP عمومی Issabel؛ کلیک روی صفحه؛ مجوز mic
فقط یک‌طرفه صدافایروال RTP، codecپورت‌های RTP؛ codec ulaw/alaw
بعد از Apply Config قطع می‌شودIssabel HTTP را خاموش کردهبخش ۳ همین صفحه
تب سافت‌فون دیده نمی‌شودSoft Phone در تنظیمات خاموش استتنظیمات → Soft Phone
پیام «تنظیمات ناقص»داخلی/IP/secret خالیهر سه فیلد را کامل کنید
دو دستگاه با یک داخلیconflict رجیستریک کلاینت را قطع کنید یا داخلی جدا بسازید

دستورات مفید Issabel:

bash
asterisk -rx "http show status"
asterisk -rx "sip show peer 1001"
asterisk -rx "pjsip show endpoint 1001"
tail -f /var/log/asterisk/full

کنسول مرورگر (F12): خطاهای WebSocket / میکروفن.


۹) امنیت و محدودیت‌ها ​

هشدار امنیتی

  • 8088 را public نکنید.
  • Secret SIP و AMI را در تیکت‌های باز ننویسید.
  • Soft Phone فقط روی HTTPS پایدار است.
  • انتقال تماس / کنفرانس پیشرفته از پنل را روی محیط خود تست کنید.
  • Soft Phone در سطح فضای کاری پیکربندی می‌شود؛ برای چند اپراتور همزمان معمولاً داخلی‌های جدا لازم است.
  • قالب پیامک خودکار روی همه رویدادهای تماس تضمین نیست.

۱۰) ارتباط با بقیه اسناد VoIP ​

سندموضوع
راه‌اندازی Issabel و CRMAMI، CDR، Webhook، فایروال، ضبط
تنظیماتتب‌های UI تنظیمات شامل Soft Phone
تلفنشماره‌گیری و پاپ‌آپ روزمره
ضبط مکالمهشنود بعد از تماس
نمای کلی VoIPنقشه ماژول

سوالات متداول ​

  • سوال: چرا با Zoiper روی 5060 وصل می‌شوم ولی Soft Phone CRM نه؟
    پاسخ: Zoiper SIP کلاسیک است؛ Soft Phone CRM از WebSocket Asterisk استفاده می‌کند. باز بودن 5060 به‌تنهایی کافی نیست.

  • سوال: IP را چه چیزی بگذارم؟
    پاسخ: IP (یا دامنه) که رسانه صوتی به آن برسد — معمولاً IP عمومی Issabel. 127.0.0.1 باعث قطع صدا می‌شود.

  • سوال: بعد از ذخیره رمز دیده نمی‌شود؟
    پاسخ: عمدی است (ماسک). برای تغییر، رمز جدید را تایپ و ذخیره کنید.

  • سوال: Soft Phone کار می‌کند ولی لیست تماس خالی است؟
    پاسخ: مشکل CDR/Webhook است، نه Soft Phone — به Issabel Setup برگردید.

راهنمای کاربر NikaCRM — آموزش صفحه‌به‌صفحه برای تیم فروش و عملیات