اگر بخواهید تماس تلفنی را داخل CRM، نرمافزار پشتیبانی، اپ موبایل، پنل مشتریان یا Contact Center اختصاصی خودتان قرار دهید، Wazo دقیقاً برای چنین سناریوهایی جذاب میشود.
در این مقاله بررسی میکنیم Wazo VoIP در سال ۲۰۲۶ دقیقاً چیست، چه معماریای دارد، از چه نسخه Asterisk استفاده میکند، APIهای آن چه کاری انجام میدهند، WebRTC چگونه وارد معماری میشود، تلفنهای IP چگونه Provision میشوند و در نهایت Wazo را با FreePBX، FusionPBX و VitalPBX مقایسه میکنیم.
نسخه بررسیشده: آخرین Release فعلی Wazo Platform در زمان نگارش این مقاله 26.10 است که ۱۲ اکتبر ۲۰۲۶ منتشر شده و در این نسخه Asterisk به 22.11.0 ارتقا یافته است.
Wazo Platform دقیقاً چیست؟
Wazo را بهتر است یک Programmable Telecom Platform بدانیم، نه فقط یک سانترال تحت وب.
در یک PBX سنتی معمولاً Administrator وارد پنل میشود، داخلی میسازد، Trunk تنظیم میکند و Route تعریف میکند.
Wazo همین قابلیتها را دارد، اما فلسفه اصلی آن این است که نرمافزار شما بتواند همین کارها را با API انجام دهد.
برای مثال یک سامانه CRM میتواند بدون ورود Administrator به پنل:
🔹 یک User تلفنی بسازد.
🔹 Line و Extension ایجاد کند.
🔹 تماس برقرار کند.
🔹 تماس را Hold یا Transfer کند.
🔹 وضعیت تماس را بهصورت لحظهای دریافت کند.
🔹 CDR را دریافت کند.
🔹 Recording را نمایش دهد.
🔹 Agentهای Call Center را کنترل کند.
تفاوت اصلی Wazo با یک PBX معمولی چیست؟
در Wazo، API یک قابلیت جانبی نیست.
API بخش اصلی معماری است.
خود مستندات Wazo از عبارت:
API-First
استفاده میکنند.
یعنی بسیاری از قابلیتهای سیستم ابتدا به شکل Service و API طراحی شدهاند و بعد UI یا Application میتواند روی آنها ساخته شود.
مثال ساده: CRM تلفنی اختصاصی
فرض کنید شرکت شما یک CRM دارد.
در PBX معمولی کارمند شماره تلفن مشتری را میبیند، شماره را روی تلفن شمارهگیری میکند و بعد شاید CRM بتواند CDR را Import کند.
در معماری Wazo میتوانید دکمه:
تماس با مشتری
را داخل CRM قرار دهید.
کلیک روی همان دکمه از طریق API تماس را برقرار میکند.
WebSocket وضعیت تماس را به CRM برمیگرداند:
Ringing
Answered
Held
Transferred
Ended
و بعد از پایان تماس CDR و Recording میتواند به همان پرونده مشتری متصل شود.
معماری Wazo چگونه ساخته شده است؟
Wazo معماری خود را به چهار لایه تقسیم میکند.
لایه Application
جایی است که Application شما قرار دارد.
مثلاً:
🔹 Web Softphone
🔹 اپ موبایل
🔹 CRM
🔹 Contact Center اختصاصی
🔹 پنل SaaS تلفنی
Wazo برای این بخش JavaScript SDK و ابزارهای Mobile ارائه میکند.
لایه Business
در این قسمت Serviceهای اصلی Business Logic قرار دارند.
از مهمترین آنها:
wazo-calld برای کنترل تماس
wazo-confd برای Configuration
wazo-agentd برای Agentهای Contact Center
لایه Telecom Engine
در این قسمت موتورهای واقعی ارتباط قرار دارند.
از جمله:
🔹 Asterisk
🔹 Kamailio
🔹 RTPEngine
🔹 wazo-provd
🔹 wazo-amid
لایه Technical
زیرساخت سرویسها در این لایه قرار دارد.
🔹 PostgreSQL
🔹 RabbitMQ
🔹 NGINX
🔹 wazo-auth
🔹 wazo-webhookd
🔹 wazo-websocketd
چرا Wazo از Microservice استفاده میکند؟
در یک PBX یکپارچه، بخش زیادی از منطق داخل یک Application یا Database متمرکز میشود.
Wazo وظایف را بین Daemonهای مختلف تقسیم کرده است.
مثلاً Authentication یک Service مستقل است و Provisioning سرویس دیگری دارد.
این معماری برای توسعهدهنده یک مزیت مهم ایجاد میکند:
لازم نیست برای هر Integration مستقیماً سراغ Database یا فایلهای Asterisk بروید.
با API سرویس مربوطه صحبت میکنید.
نسخه فعلی Wazo در ۲۰۲۶
Wazo از شماره نسخه مبتنی بر سال و Release استفاده میکند.
آخرین نسخه در زمان بررسی:
Wazo Platform 26.10
است.
این نسخه در ۱۲ اکتبر ۲۰۲۶ منتشر شده است.
Asterisk فعلی Wazo چه نسخهای است؟
در Wazo 26.10 موتور Asterisk به:
Asterisk 22.11.0
ارتقا داده شده است.
یعنی Wazo فعلی از شاخه LTS جدید Asterisk استفاده میکند.
Wazo 26.10 چه تغییرهایی داشته است؟
در Release 26.10 چند مورد قابل توجه دیده میشود.
🔹 Sessionهای Authentication اکنون User Agent و زمان ایجاد/انقضا را نمایش میدهند.
🔹 امکان تعیین Caller ID خروجی پیشفرض برای User اضافه شده است.
🔹 پشتیبانی PJSIP Transport از IPv6 بهبود یافته است.
🔹 Header امنیتی HSTS روی API Authentication اضافه شده است.
🔹 Asterisk به 22.11.0 ارتقا یافته است.
🔹 Performance جستوجوی Directory در Deploymentهای بزرگ بهتر شده است.
Wazo API از چه بخشهایی تشکیل شده است؟
Wazo تقریباً برای هر بخش مهم یک API مستقل دارد.
| Service | کاربرد |
|---|---|
| wazo-auth | Authentication، Token، Policy و ACL |
| wazo-calld | کنترل Call و Application |
| wazo-confd | User، Line، Extension، Trunk و Configuration |
| wazo-dird | Contact و Directory |
| wazo-provd | Provisioning تلفن |
| wazo-webhookd | ارسال Event به سرویس خارجی |
| wazo-call-logd | CDR و Call Log |
| wazo-agentd | Agentهای Contact Center |
| wazo-chatd | Presence و Chat |
| wazo-websocketd | Eventهای لحظهای |
REST API چه کاری برای ما انجام میدهد؟
فرض کنید نرمافزار شما میخواهد لیست کاربران تلفنی را دریافت کند.
بعد از گرفتن Token میتوان از API Configuration استفاده کرد.
مثال رسمی Wazo برای دریافت کاربران:
curl \
-H "X-Auth-Token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
https://wazo.example.com/api/confd/1.1/users
دامنه و Token را با مقادیر واقعی جایگزین کنید.
Authentication در API چگونه انجام میشود؟
سرویس `wazo-auth` مسئول Authentication است.
ابتدا Client یک Token دریافت میکند.
سپس Token در Requestهای بعدی از طریق Header زیر ارسال میشود:
X-Auth-Token: TOKEN
Policy و ACL چرا مهماند؟
نباید یک Integration ساده CRM به تمام APIهای PBX دسترسی Administrator داشته باشد.
Wazo برای این کار ACL و Policy دارد.
مثلاً Token یک User میتواند فقط اجازه خواندن Resourceهای مربوط به خودش را داشته باشد.
در Production اصل:
Least Privilege
را رعایت کنید.
Wildcardهایی مثل:
confd.#
auth.#
برای آزمایش سریع مفیدند، اما برای Integration نهایی بهتر است ACL دقیقتر ساخته شود.
WebSocket چه تفاوتی با REST API دارد؟
REST API برای Request/Response مناسب است.
مثلاً:
«این User را بساز.»
اما Application تلفنی به Event لحظهای هم نیاز دارد.
مثلاً:
«همین الآن تلفن کاربر زنگ خورد.»
برای چنین سناریویی Wazo از WebSocket استفاده میکند.
نمونه کاربرد WebSocket
CRM میتواند به Event Stream متصل باشد.
وقتی تماس ورودی میآید:
Wazo → WebSocket Event → CRM
CRM میتواند شماره تماسگیرنده را جستوجو کند و پرونده مشتری را قبل از Answer شدن تماس روی صفحه Agent باز کند.
کنترل دسترسی WebSocket چگونه است؟
اتصال WebSocket نیز با Token احراز هویت میشود.
Eventها بر اساس ACL فیلتر میشوند.
یعنی یک User عادی نباید Event تماس همه کاربران سازمان را دریافت کند مگر Policy چنین اجازهای بدهد.
Webhook چه زمانی بهتر است؟
اگر Application شما نمیخواهد یک WebSocket دائم باز نگه دارد، Webhook گزینه مناسبی است.
مثلاً بعد از پایان هر تماس:
Wazo → HTTP Webhook → سیستم CRM
سپس CRM میتواند:
🔹 زمان تماس را ذخیره کند.
🔹 CDR را دریافت کند.
🔹 Ticket ایجاد کند.
🔹 Workflow بعد از تماس اجرا کند.
WebRTC در Wazo چه کاربردی دارد؟
یکی از جذابترین بخشهای Wazo امکان ساخت تلفن داخل Browser است.
یعنی کاربر لزوماً به تلفن فیزیکی یا Softphone جدا نیاز ندارد.
میتوانید داخل:
🔹 CRM
🔹 Helpdesk
🔹 پنل فروش
🔹 سامانه Call Center
یک Web Phone قرار دهید.
Wazo JavaScript SDK
Wazo JavaScript SDK لایهای برای کار با:
🔹 APIها
🔹 WebSocket
🔹 WebRTC
فراهم میکند.
در نتیجه Front-End Developer لازم نیست تمام Signaling و APIهای Wazo را از ابتدا پیادهسازی کند.
WebRTC فقط تماس صوتی نیست
Wazo از WebRTC برای سناریوهای:
🔹 Voice Call
🔹 Video Call
🔹 Transfer
🔹 Browser Softphone
🔹 Web Meeting
استفاده کرده است.
آیا WebRTC پشت NAT همیشه بدون مشکل کار میکند؟
خیر.
خود WebRTC قابلیتهای NAT Traversal دارد، اما در شبکههای پیچیده ممکن است سرویس خارجی لازم باشد.
دو مفهوم مهم:
STUN برای پیدا کردن آدرس بیرونی Client
TURN برای Relay کردن Media وقتی ارتباط مستقیم ممکن نیست
است.
TURN را چه زمانی لازم داریم؟
اگر Agentها از:
🔹 اینترنت شرکتی محدود
🔹 Double NAT
🔹 Carrier NAT
🔹 Firewall سختگیرانه
استفاده میکنند، Media WebRTC ممکن است نتواند مسیر مستقیم بسازد.
در چنین شرایطی TURN میتواند Media را Relay کند.
Wazo برای اپ موبایل هم مناسب است؟
بله.
مستندات Wazo علاوه بر JavaScript SDK، نمونههای Mobile و کتابخانه Callkeep را معرفی میکنند.
Callkeep برای ادغام با:
iOS CallKit
و:
Android ConnectionService
استفاده میشود.
یک Use Case واقعی: اپ تماس سازمانی اختصاصی
فرض کنید شرکتی نمیخواهد کاربران از Softphone عمومی استفاده کنند.
میتوانید اپ برند خودتان را بسازید که:
🔹 Login سازمانی دارد.
🔹 Contactهای شرکت را نشان میدهد.
🔹 تماس داخلی برقرار میکند.
🔹 تماس PSTN میگیرد.
🔹 Call History دارد.
🔹 Presence نمایش میدهد.
و Back-end Telecom آن Wazo باشد.
Provisioning تلفنهای IP در Wazo چگونه کار میکند؟
سرویس مستقل:
wazo-provd
مسئول Provisioning دستگاهها است.
این Service Config Fileهای تلفن و Gateway را تولید میکند.
Provisioning مبتنی بر Plugin است
هر خانواده Device باید Plugin مناسب `wazo-provd` داشته باشد.
Plugin مشخص میکند:
🔹 فایل Configuration چگونه ساخته شود.
🔹 Firmware چگونه مدیریت شود.
🔹 Keyها و Featureها چگونه تنظیم شوند.
مزیت این معماری این است که Pluginها میتوانند مستقل از کل سیستمعامل Upgrade شوند.
Auto Provisioning چگونه انجام میشود؟
Flow معمول یک تلفن SIP چنین است:
مرحله ۱: Phone روشن میشود.
مرحله ۲: DHCP Request میفرستد.
مرحله ۳: DHCP اطلاعات شبکه و Provisioning URL را میدهد.
مرحله ۴: Phone فایل عمومی و MAC-specific را دریافت میکند.
مرحله ۵: Firmware و Language File نیز در صورت نیاز دریافت میشوند.
مرحله ۶: Phone با Configuration جدید Restart و Register میشود.
برای چند تلفن Provisioning دستی یا DHCP؟
اگر فقط دو Phone برای Lab دارید، Provisioning URL را میتوانید دستی وارد کنید.
اگر دهها یا صدها تلفن دارید، DHCP-based Provisioning منطقیتر است.
Wazo DHCP Server بهطور پیشفرض فعال نیست
Wazo DHCP Server را برای Auto Provisioning فراهم میکند، اما این سرویس بهصورت پیشفرض فعال نیست.
همچنین برای Deviceهای پشتیبانیشده و VoIP Subnet طراحی شده است؛ قرار نیست DHCP عمومی تمام Clientهای شبکه را جایگزین کند.
Remote Provisioning را بدون Authentication روی اینترنت باز نکنید
یکی از نکات مهم مستندات Wazo این است که Authentication Provisioning در حالت پیشفرض میتواند Disabled باشد تا Auto Provisioning داخل LAN ساده باشد.
اما این حالت برای اینترنت عمومی امن نیست.
اگر Provisioning Server از اینترنت قابل دسترسی است، Provisioning Key یا روش Authentication مناسب را فعال کنید.
Provisioning Key by Tenant
Wazo میتواند برای هر Tenant یک Provisioning Key ایجاد کند.
Key داخل URL Provisioning قرار میگیرد و دسترسی به Config Deviceها را محدود میکند.
این روش از قرارگرفتن ساده فایل Configuration تلفنها در یک URL قابل حدس جلوگیری میکند.
Multi-Tenant در Wazo چگونه است؟
Wazo از معماری Multi-Tenant پشتیبانی میکند.
Resourceهای مختلف مثل User، Device و Phone Number میتوانند به Tenant مرتبط باشند.
این قابلیت برای ساخت:
🔹 UCaaS
🔹 Hosted PBX
🔹 Telecom SaaS
🔹 سرویس چندشرکتی
کاربرد دارد.
Tenant در Provisioning هم اهمیت دارد
وقتی Device به Line مرتبط میشود، `wazo-provd` آن Device را به Tenant همان Line منتقل میکند.
نکته مهم این است که تغییر Tenant یک Device بعد از Provision شدن مستقیم نیست؛ طبق مستندات فعلی باید Device حذف و دوباره وارد فرآیند Provisioning شود.
یک محدودیت Provisioning در شبکههای NAPT
مستندات Wazo یک محدودیت مشخص را ذکر میکنند:
اگر چند Device پشت یک NAPT قرار داشته باشند، Device Synchronization ممکن است درست کار نکند و Sync دستی لازم شود.
برای Deployment شعبهای بزرگ این نکته باید قبل از Rollout واقعی آزمایش شود.
آیا Wazo برای Call Center مناسب است؟
بله، اما مزیت اصلی آن زمانی مشخص میشود که Contact Center شما منطق اختصاصی داشته باشد.
Wazo Serviceهایی برای:
🔹 Agent
🔹 Queue
🔹 CDR
🔹 Call Control
🔹 Event
دارد.
در نتیجه میتوانید Dashboard Agent و Supervisor خودتان را بسازید.
مثال: Routing تماس بر اساس CRM
فرض کنید مشتری VIP تماس میگیرد.
Application شما شماره Caller ID را دریافت میکند.
از CRM سطح مشتری را بررسی میکند.
سپس تماس را به Queue مخصوص VIP هدایت میکند.
این همان جایی است که API-first بودن از یک PBX معمولی ارزش بیشتری پیدا میکند.
Wazo و هوش مصنوعی
Wazo خودش مدل Speech-to-Text یا مدل زبانی ارائه نمیکند.
اما API و Event Layer آن میتواند اتصال سیستم تلفنی به AI را ساده کند.
مثلاً میتوانید:
🔹 تماس را Transcribe کنید.
🔹 خلاصه تماس تولید کنید.
🔹 Sentiment Analysis اجرا کنید.
🔹 Voice Agent بسازید.
🔹 تماس را بر اساس Intent Route کنید.
معماری نمونه Voice AI
یک سناریوی ساده:
تماس → Wazo/Asterisk → Event/API → سرویس AI → CRM
Wazo در Use Case رسمی خود نیز AI-assisted Voice Application را بهعنوان سناریوی قابل ساخت معرفی میکند.
نصب Wazo روی VPS در ۲۰۲۶
راهنمای رسمی Unified Communication فعلی نصب روی:
Debian 12 Bookworm
را پیشنهاد میکند.
حداقل منابع برای تست
برای Lab طبق مستند رسمی:
🔹 1 CPU
🔹 حدود 2GB RAM
🔹 حدود 8GB Storage
کف آزمایشی محسوب میشود.
برای Production کوچک
برای حدود ۵۰ User مستند Wazo حداقل:
🔹 2 CPU
🔹 4GB RAM
🔹 50GB Storage
را پیشنهاد میکند.
Recording، Firmware، Call Center، Video و تعداد تماس همزمان میتوانند نیاز Storage و CPU را بسیار بیشتر کنند.
مرحله ۱: Debian 12 را آماده کنید
apt update
apt install -yq sudo git ansible curl
مرحله ۲: Installer رسمی را دریافت کنید
git clone https://github.com/wazo-platform/wazo-ansible.git
cd wazo-ansible
نکته مهم: Installer بهصورت پیشفرض میتواند Development Version نصب کند
مستند رسمی صریحاً میگوید برای نصب Stable باید Tag پایدار را Checkout کنید.
ansible_tag=wazo-$(curl https://mirror.wazo.community/version/stable)
git checkout "$ansible_tag"
برای Production این مرحله را نادیده نگیرید.
مرحله ۳: Dependencyهای Ansible
ansible-galaxy install -r requirements-postgresql.yml
مرحله ۴: Inventory را تنظیم کنید
فایل:
inventories/uc-engine
را متناسب با سرور خود تنظیم کنید.
برای Stable Distribution فعلی Debian 12:
[uc_engine:vars]
wazo_distribution = pelican-bookworm
wazo_distribution_upgrade = pelican-bookworm
اگر Web UI میخواهید
بخش زیر را فعال کنید:
[uc_ui:children]
uc_engine_host
مرحله ۵: Installation
ansible-playbook -i inventories/uc-engine uc-engine.yml
بعد از نصب وضعیت سرویسها را بررسی کنید
wazo-service status
سرویسهایی مثل:
wazo-auth، wazo-confd، wazo-calld و wazo-provd باید وضعیت سالم داشته باشند.
نسخه واقعی Wazo را با API بررسی کنید
پس از دریافت Token:
curl \
-H "X-Auth-Token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
https://wazo.example.com/api/confd/1.1/infos
در Production از Certificate معتبر استفاده کنید و Validation TLS را بیدلیل غیرفعال نکنید.
امنیت API در Wazo
وقتی PBX شما API محور باشد، API خودش بخشی از سطح حمله میشود.
بنابراین:
🔹 API Credential را داخل Front-End عمومی Hardcode نکنید.
🔹 Tokenها Expiration داشته باشند.
🔹 ACL را محدود کنید.
🔹 HTTPS معتبر استفاده کنید.
🔹 APIهای مدیریتی را در صورت امکان با Firewall یا VPN محدود کنید.
🔹 Credential آزمایشی با دسترسی گسترده را بعد از Test حذف کنید.
در Wazo 26.10 Session Visibility بهتر شده است
در نسخه 26.10 Sessionها اکنون اطلاعاتی مثل User Agent، Creation Time و Expiration Time را ارائه میکنند.
این قابلیت برای شناسایی Sessionهای ناشناس یا Applicationهایی که Token ساختهاند مفید است.
Wazo برای چه پروژههایی انتخاب خوبی است؟
CRM با Click-to-Call
کاربر از داخل CRM تماس را آغاز میکند و تماس و CDR به پرونده مشتری متصل میشود.
Contact Center سفارشی
Routing، Agent State، Queue و Dashboard توسط نرمافزار خودتان کنترل میشود.
Web Softphone
کاربر بدون نصب نرمافزار و از داخل Browser تماس میگیرد.
اپ موبایل سازمانی
VoIP داخل اپ Android/iOS خود شرکت قرار میگیرد.
Hosted PBX یا UCaaS
با Tenantها و API میتوانید Provisioning مشتری و ساخت Resource را به پنل فروش خود متصل کنید.
Voice AI
Eventهای تماس، CDR یا Media Workflow به سرویس AI متصل میشوند.
سیستم تلفنی Embedded
کاربر حتی لازم نیست بداند پشت نرمافزار شما PBX وجود دارد؛ قابلیت تماس بخشی از Application اصلی است.
چه زمانی Wazo انتخاب مناسبی نیست؟
اگر فقط میخواهید:
۱۰ داخلی بسازید، یک Trunk اضافه کنید، IVR تنظیم کنید و Administrator همیشه از GUI استفاده کند، Wazo ممکن است پیچیدهتر از نیاز شما باشد.
در چنین سناریویی FreePBX یا VitalPBX احتمالاً سریعتر قابل راهاندازیاند.
قدرت Wazo زمانی ارزشمند میشود که:
Telephony بخشی از Software Product شما باشد.
مقایسه Wazo با FreePBX، FusionPBX و VitalPBX
| ویژگی | Wazo | FreePBX | FusionPBX | VitalPBX |
|---|---|---|---|---|
| فلسفه اصلی | API-first Telecom Platform | PBX مدیریتی | FreeSWITCH PBX | Asterisk PBX |
| موتور اصلی فعلی | Asterisk 22.11 | Asterisk 22 | FreeSWITCH | Asterisk 20 |
| REST API | جزء اصلی معماری | محدودتر نسبت به Wazo | وجود دارد | وجود دارد |
| WebSocket/Event | قوی و طراحیشده برای Application | تمرکز اصلی نیست | قابل توسعه | تمرکز اصلی نیست |
| WebRTC | SDK و معماری مستقیم | قابل پیادهسازی | قابل پیادهسازی | قابل پیادهسازی |
| Provisioning | wazo-provd + Plugin | ماژولهای Provisioning | Plugin-based | Provisioning داخلی/Add-on |
| Multi-Tenant | بومی در معماری | تمرکز اصلی نیست | Domain-based | Commercial Add-on |
| مناسب توسعه محصول | بسیار مناسب | متوسط | مناسب | متوسط |
| سادگی برای Admin غیرتوسعهدهنده | کمتر | بیشتر | بیشتر | بیشتر |
Wazo یا FreePBX؟
اگر Administrator قرار است همهچیز را دستی از GUI مدیریت کند، FreePBX انتخاب سادهتری است.
اگر سیستم CRM یا SaaS شما باید PBX را Programmatically کنترل کند، Wazo معماری مناسبتری ارائه میدهد.
Wazo یا FusionPBX؟
FusionPBX برای Multi-Tenant مبتنی بر FreeSWITCH بسیار مناسب است.
Wazo در سمت دیگر بیشتر بر Programmability و Integration تمرکز دارد و Asterisk را بهعنوان Telecom Engine اصلی استفاده میکند.
اگر تیم شما FreeSWITCH محور است، FusionPBX جذابتر است.
اگر API، SDK و Application Development اولویت اصلی است، Wazo را جدیتر بررسی کنید.
Wazo یا VitalPBX؟
VitalPBX برای ساخت PBX و Hosted PBX با GUI کاملتر و تجربه مدیریتی سنتی سادهتر است.
Multi-Tenant آن یک Add-on تجاری است.
Wazo Multi-Tenancy را در خود معماری Platform و APIها در نظر گرفته است.
آیا Wazo جای SBC را میگیرد؟
نه لزوماً.
Wazo پروژههای:
🔹 C4 Router
🔹 C4 SBC
🔹 RTPEngine
را نیز دارد، اما مستندات فعلی Router و SBC را همچنان با وضعیت Beta نشان میدهند.
برای Carrier-grade Production باید وضعیت نسخه و محدودیت این اجزا را قبل از استفاده بررسی کنید.
برای یک PBX کوچک باید همه Microserviceها را جدا نصب کنیم؟
خیر.
راهنمای Unified Communication نصب All-in-One دارد و برای Deployment کوچک میتوانید همه اجزا را روی یک Server قرار دهید.
وقتی Scale افزایش پیدا کرد، معماری Microservice امکان جداسازی و Scale بخشها را بهتر فراهم میکند.
IP ثابت برای Wazo روی VPS چه فایدهای دارد؟
برای یک Platform تلفنی اینترنتی، Public IP ثابت مدیریت این موارد را سادهتر میکند:
🔹 SIP Trunk
🔹 DNS
🔹 TLS Certificate
🔹 Firewall Allowlist
🔹 WebRTC Endpoint
🔹 API Domain
FQDN را از ابتدا درست طراحی کنید
بهتر است Server از FQDN مشخص استفاده کند.
مثلاً:
wazo.example.com
API، WebSocket، WebRTC و Certificateها بهتر است روی Domain معتبر طراحی شوند.
برای امنیت VPS چه کارهایی انجام دهیم؟
علاوه بر امنیت خود Wazo:
🔹 SSH Key استفاده کنید.
🔹 دسترسی مدیریتی را محدود کنید.
🔹 Firewall را فعال نگه دارید.
🔹 سرویسهای بدون استفاده را Exposure ندهید.
🔹 Update امنیتی Debian را انجام دهید.
🔹 Backup خارج از VPS داشته باشید.
برای امنسازی SSH میتوانید مقاله آموزش کامل امنسازی SSH در لینوکس را نیز ببینید.
Wazo برای چه تیمی بهترین انتخاب است؟
اگر تیم شما ترکیبی از:
VoIP Engineer + Backend Developer + Front-End/Mobile Developer
دارد، Wazo بسیار جذاب میشود.
VoIP Engineer Telecom Core را مدیریت میکند و Developerها بدون دستکاری مستقیم Asterisk از API و SDK استفاده میکنند.
چکلیست راهاندازی یک پروژه واقعی Wazo
مرحله ۱: Debian 12 و VPS با IP ثابت آماده کنید.
مرحله ۲: FQDN و Certificate طراحی کنید.
مرحله ۳: Stable Release Wazo را نصب کنید، نه Development Branch.
مرحله ۴: `wazo-service status` را بررسی کنید.
مرحله ۵: یک User، Line و Extension ساده بسازید.
مرحله ۶: تماس SIP معمولی را تست کنید.
مرحله ۷: API User با ACL محدود بسازید.
مرحله ۸: Token Authentication را تست کنید.
مرحله ۹: WebSocket Event را دریافت کنید.
مرحله ۱۰: WebRTC Client آزمایشی بسازید.
مرحله ۱۱: STUN/TURN را در شبکه واقعی تست کنید.
مرحله ۱۲: Provisioning یک Phone واقعی را تست کنید.
مرحله ۱۳: API را به CRM یا Application متصل کنید.
مرحله ۱۴: Tenant و Permissionها را تست کنید.
مرحله ۱۵: Backup، Monitoring و Rollback طراحی کنید.
پرسشهای رایج
Wazo Platform چیست؟
Wazo یک پلتفرم متنباز و API-first برای ساخت زیرساخت تلفنی و ارتباطی قابلبرنامهریزی است که از REST API، WebSocket، Webhook، WebRTC و Asterisk استفاده میکند.
آخرین نسخه Wazo در اکتبر ۲۰۲۶ چیست؟
آخرین Release فعلی Wazo Platform نسخه 26.10 است که ۱۲ اکتبر ۲۰۲۶ منتشر شده است.
Wazo از چه نسخه Asterisk استفاده میکند؟
در Wazo Platform 26.10، Asterisk به نسخه 22.11.0 ارتقا یافته است.
Wazo روی چه سیستمعاملی نصب میشود؟
راهنمای فعلی Unified Communication نصب Stable را روی Debian 12 Bookworm مستند کرده است.
آیا Wazo رابط گرافیکی دارد؟
بله، Web UI را میتوان در Installation فعال کرد؛ اما طراحی اصلی Wazo API-first است و بسیاری از قابلیتها مستقیماً از REST API مدیریت میشوند.
آیا میتوان با Wazo تلفن تحت وب ساخت؟
بله. JavaScript SDK، WebRTC و WebSocket برای ساخت Web Softphone و Communication Application استفاده میشوند.
آیا WebRTC بدون TURN همیشه کار میکند؟
خیر. WebRTC بسیاری از NATها را مدیریت میکند اما در شبکههای سختگیرانه ممکن است STUN یا TURN لازم شود.
Provisioning تلفن در Wazo چگونه انجام میشود؟
سرویس wazo-provd با Pluginهای مخصوص مدل تلفن فایل Configuration و Firmware موردنیاز را مدیریت میکند و میتواند از DHCP-based Auto Provisioning استفاده کند.
آیا Wazo Multi-Tenant است؟
بله. Tenant در بخشهای مختلف Platform از جمله Resourceها و Provisioning استفاده میشود و Wazo برای ساخت سرویسهای چندمشتری طراحی شده است.
Wazo برای PBX کوچک بهتر است یا FreePBX؟
اگر فقط مدیریت GUI و چند داخلی نیاز دارید، FreePBX سادهتر است. اگر قرار است Telephony را داخل نرمافزار خودتان برنامهریزی کنید، Wazo مزیت معماری بیشتری دارد.
آیا Wazo برای CRM اختصاصی مناسب است؟
بله. Call Control، REST API، WebSocket Event، Webhook، CDR و WebRTC دقیقاً برای چنین Integrationهایی کاربرد دارند.
جمعبندی
Wazo Platform را نباید فقط یک جایگزین دیگر برای FreePBX یا VitalPBX دانست. تفاوت اصلی آن در معماری API-first است.
در Wazo، Asterisk موتور تماس است اما User، Line، Call Control، Agent، CDR، Contact، Provisioning، Authentication و Event Stream از طریق Serviceهای مستقل قابل مدیریت هستند.
این معماری باعث میشود Wazo برای ساخت CRM تلفنی، Web Softphone، اپ موبایل، Contact Center اختصاصی، Hosted PBX و Voice AI بسیار مناسب باشد.
در نسخه فعلی 26.10 نیز Asterisk 22.11.0 استفاده میشود و پروژه همچنان توسعه فعال دارد.
اگر فقط چند داخلی و SIP Trunk میخواهید، یک PBX پنلمحور احتمالاً سادهتر است؛ اما اگر هدف شما ساخت یک محصول نرمافزاری است که تماس و ارتباط بخشی از آن باشد، Wazo یکی از پروژههای متنباز جدی برای بررسی است.
میخواهید تماس را داخل CRM، پنل سازمانی یا اپ خودتان قرار دهید؟ Wazo را ابتدا روی یک VPS آزمایشی مستقل بسازید
Wazo زمانی بیشترین ارزش را دارد که API، WebSocket، WebRTC و SIP همزمان بخشی از نرمافزار شما باشند. برای چنین پروژهای بهتر است Development و Production را از PBX فعلی جدا کنید تا تغییر یک API، WebRTC Client یا Provisioning Plugin باعث اختلال در تلفنهای اصلی شرکت نشود.
میتوانید روی سرور مجازی ایرانیکاسرور یک Wazo مستقل با IP ثابت راهاندازی کنید، FQDN و TLS را تنظیم کنید و ابتدا User، Extension، REST API، WebSocket، WebRTC و Provisioning تلفنهای آزمایشی را بررسی کنید. بعد از عبور Test Plan، SIP Trunk و کاربران Production به سیستم اضافه شوند.
مشاوره زیرساخت VoIP و راهاندازی Wazo: 021-91302467






دیدگاهها (۰)