Skip to content

Deploying Wazo

Introduction

Wazo is an open-source unified communication platform built on Asterisk that provides enterprise-grade VoIP, video conferencing, instant messaging, and collaboration features. It offers a comprehensive solution for businesses looking to deploy their own communication infrastructure.

Wazo Platform is designed to be developer-friendly with extensive APIs, enabling integration with existing business applications and customization to meet specific requirements.

Key features of Wazo include:

  • VoIP Phone System: Full-featured PBX with call routing, IVR, voicemail, and call recording
  • Video Conferencing: Built-in video meeting capabilities
  • Unified Communications: Integrate voice, video, messaging, and presence
  • WebRTC Support: Browser-based calling without plugins
  • Mobile Apps: iOS and Android clients available
  • REST APIs: Comprehensive APIs for integration and customization
  • Multi-Tenant: Support multiple organizations on a single platform
  • Call Center Features: Queues, agents, and supervisor dashboards
  • SIP Trunking: Connect to external PSTN providers
  • High Availability: Clustering support for enterprise deployments
  • Open Source: AGPLv3 license with active community

This guide walks you through deploying Wazo components on Klutch.sh using Docker for unified communications.

Prerequisites

Before deploying Wazo on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your Wazo configuration
  • A PostgreSQL database (managed or deployed separately)
  • Understanding of VoIP and SIP concepts
  • (Optional) SIP trunk provider credentials

Repository Structure

Create a GitHub repository with the following structure:

wazo-deploy/
├── Dockerfile
└── .dockerignore

Dockerfile

Create a Dockerfile in your repository for the Wazo Platform components:

FROM wazoplatform/wazo-platform:latest
# Web interface and API
EXPOSE 443
EXPOSE 9497
# The base image handles the entrypoint

Environment Variables

VariableRequiredDefaultDescription
POSTGRES_HOSTYes-PostgreSQL host
POSTGRES_PORTNo5432PostgreSQL port
POSTGRES_DBYes-Database name
POSTGRES_USERYes-Database user
POSTGRES_PASSWORDYes-Database password

Deployment on Klutch.sh

  1. Push your Dockerfile to your GitHub repository.
  2. Log in to Klutch.sh and create a new project.
  3. Create a new app within your project and connect your GitHub repository containing the Dockerfile.
  4. Configure the deployment settings: - Select **HTTP** as the traffic type - Set the internal port to **443**
  5. Add environment variables: - `POSTGRES_HOST`: Your database host - `POSTGRES_DB`: Your database name - `POSTGRES_USER`: Your database username - `POSTGRES_PASSWORD`: Your database password (mark as sensitive)
  6. Attach persistent volumes: - Mount path: `/var/lib/wazo` - Recommended size: 20 GB - Purpose: Call recordings, voicemails, and configuration
  7. Click **Deploy** and wait for the build to complete.
  8. Access the Wazo admin interface at the provided URL.

Important Notes

Wazo is a full-featured telephony platform that typically requires:

  • SIP/RTP Ports: VoIP functionality requires UDP ports for SIP signaling and RTP media, which may need additional configuration beyond HTTP
  • Static IP: Many VoIP configurations work best with a static IP address
  • SIP Trunk: For external calling, you need a SIP trunk provider

For full telephony functionality, consider deploying Wazo on dedicated infrastructure with proper network configuration for VoIP traffic.

Post-Deployment Configuration

After deployment:

  1. Access the web admin interface
  2. Configure your SIP trunk(s) for external connectivity
  3. Create extensions and users
  4. Set up IVR menus and call routing
  5. Configure voicemail settings

Troubleshooting

VoIP Audio Issues

VoIP audio issues are typically related to NAT traversal and firewall configuration. Ensure RTP ports are properly configured.

Registration Failures

Verify SIP trunk credentials and network connectivity to your VoIP provider.

Additional Resources