ظاهر
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-Call | CRM دستور 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نکتههای حیاتی:
- پورت SIP
5060برای رجیستر مرورگر کافی نیست. مرورگر از WebSocket Asterisk استفاده میکند، نه UDP خام به5060. - فیلد پورت SIP در پنل (مثلاً
5060) برای شناسایی peer است؛ مسیر سیگنالینگ مرورگر جدا و امن است. - پورت
8088را به اینترنت باز نکنید. فقط روی localhost Issabel بماند. - فیلد IP در تنظیمات Soft Phone باید IP/دامنه قابلدسترس Issabel باشد (نه
127.0.0.1) تا صدا قطع نشود.
۳) ستآپ سمت Issabel (HTTP / WebSocket)
۳.۱ تنظیمات Advanced Settings
| کلید | مقدار پیشنهادی | توضیح |
|---|---|---|
HTTPENABLED | 1 | روشن بودن HTTP Asterisk |
HTTPBINDADDRESS | 127.0.0.1 | فقط localhost — امن |
HTTPBINDPORT | 8088 | پورت WS/HTTP |
HTTPENABLESTATIC | 1 | مطابق نیاز 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.confini
; 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 خاموش شد:
- مقادیر Advanced Settings بالا را دوباره
1/127.0.0.1/8088کنید. - فایل
http_custom.confرا نگه دارید. - در صورت نیاز
localnet=127.0.0.0/8را از تنظیمات NAT SIP حذف کنید تا صدا لوپبک نشود. - برای مانیتورینگ دائمی میتوانید یک cron ساده روی Issabel بنویسید که
http show status/ پورت8088را چک کند — جزئیات را با پشتیبانی فنی هماهنگ کنید.
۳.۴ ساخت داخلی Soft Phone روی Issabel
- در Issabel یک Extension بسازید (مثلاً
1001). - در Device Options رمز SIP (Secret) را یادداشت کنید.
- codecهای رایج (
ulaw/alaw) معمولاً کافیاند. - همان داخلی را همزمان روی تلفن رومیزی و مرورگر رجیستر نکنید مگر 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 تأیید کنید. سپس از صفحه تلفن یک شماره تست بگیرید.
۶) استفاده روزمره در صفحه تلفن
- VoIP → تلفن را باز کنید.
- اگر Soft Phone فعال باشد، تب سافتفون را میبینید.
- اجازه میکروفن مرورگر را بدهید (HTTPS لازم است).
- شماره را وارد یا از مخاطبین / داخلیها / صفها انتخاب کنید و تماس بگیرید.
- در تماس فعال: قطع، بیصدا (mute)، و کارتهای مخاطب/یادداشت در دسترساند.
- اگر صدا نمیآید ولی تماس وصل است، یکبار روی صفحه کلیک کنید — بعضی مرورگرها پخش صدا را تا تعامل کاربر بلاک میکنند.
پاپآپ زنده تماس ورودی وقتی Webhook + داخلی Soft Phone درست باشد، پرونده مشتری مرتبط را نشان میدهد.
جزئیات UI صفحه: تلفن.
۷) چکلیست راهاندازی Soft Phone (به ترتیب)
- Issabel AMI + داخلی آماده باشد.
- روی Issabel: HTTP روشن، bind روی
127.0.0.1:8088،http_custom.conf. - در پنل: VoIP فعال + AMI تست سبز.
- تب Soft Phone: داخلی، Secret، IP واقعی Issabel، پورت
5060→ ذخیره → رجیستر الان. - وضعیت = registered؛ بررسی Issabel = آنلاین.
- تماس تست؛ دو طرفه بودن صدا را چک کنید.
- تماس ورودی تست + پاپآپ (نیاز به Webhook طبق سند Issabel).
- اگر WebSocket خطا داد → پشتیبانی فنی.
۸) عیبیابی Soft Phone
| علامت | علتهای محتمل | اقدام |
|---|---|---|
| خطای websocket / timeout | زیرساخت اتصال CRM↔Issabel، HTTP Asterisk خاموش، 8088 گوش نمیدهد | Issabel را چک کنید؛ در صورت ادامه به پشتیبانی فنی |
| رجیستر rejected / Auth failed | Secret غلط یا داخلی اشتباه | Secret را دوباره وارد و ذخیره کنید |
| CRM registered ولی بررسی Issabel آفلاین | peer اشتباه، AMI ضعیف، تأخیر | sip show peer / pjsip show endpoint روی Issabel |
| زنگ میخورد ولی هیچ صدایی نیست | IP فیلد Soft Phone لوپبک، NAT، بلاک میکروفن، autoplay | IP عمومی 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 و CRM | AMI، 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 برگردید.