The Sipwise C5 CE Handbook mr6.2.2


Table of Contents

1. Introduction
1.1. About this Handbook
1.2. What is the Sipwise C5 CE?
1.3. The Advantages of the Sipwise C5 CE
1.4. Who is the Sipwise C5 CE for?
1.5. Getting Help
1.5.1. Community Support
1.5.2. Commercial Support
2. Architecture
2.1. SIP Signaling and Media Relay
2.1.1. SIP Load-Balancer
2.1.2. SIP Proxy/Registrar
2.1.3. SIP Back-to-Back User-Agent (B2BUA)
2.1.4. SIP App-Server
2.1.5. Media Relay
2.2. Redis Database
3. Initial Installation
3.1. Prerequisites
3.2. Using Sipwise C5 install CD (recommended)
3.3. Using the Sipwise C5 installer
3.3.1. Installing the Operating System
3.3.2. Installing the Sipwise C5
3.4. Using a pre-installed virtual machine
3.4.1. Vagrant box for VirtualBox
3.4.2. VirtualBox image
3.4.3. VMware image
3.4.4. Amazon EC2 image
4. Initial System Configuration
4.1. Network Configuration
4.2. Apply Configuration Changes
4.3. Start Securing Your Server
4.4. Configuring the Email Server
4.5. Advanced Network Configuration
4.5.1. Audiocodes devices workaround
4.6. What’s next?
5. VoIP Service Administration Concepts
5.1. Contacts
5.2. Resellers
5.3. SIP Domain
5.3.1. Additional SIP Domains
5.4. Contracts
5.5. Customers
5.5.1. Residential and SOHO customers
5.5.2. Business customers with the Cloud PBX service
5.5.3. SIP Trunking
5.5.4. Mobile subscribers
5.5.5. Pre-paid subscribers who use your calling cards
5.6. Subscribers
5.7. SIP Peerings
6. VoIP Service Configuration Scenario
6.1. Creating a SIP Domain
6.2. Creating a Customer
6.3. Creating a Subscriber
6.4. Domain Preferences
6.5. Subscriber Preferences
6.6. Creating Peerings
6.6.1. Creating Peering Groups
6.6.2. Creating Peering Servers
6.6.3. Authenticating and Registering against Peering Servers
6.7. Configuring Rewrite Rule Sets
6.7.1. Inbound Rewrite Rules for Caller
6.7.2. Inbound Rewrite Rules for Callee
6.7.3. Outbound Rewrite Rules for Caller
6.7.4. Outbound Rewrite Rules for Callee
6.7.5. Emergency Number Handling
6.7.6. Assigning Rewrite Rule Sets to Domains and Subscribers
6.7.7. Creating Dialplans for Peering Servers
6.7.8. Call Routing Verification
7. Features
7.1. Managing System Administrators
7.1.1. Configuring Administrators
7.1.2. Access Rights of Administrators
7.2. Access Control for SIP Calls
7.2.1. Block Lists
7.2.2. NCOS Levels
7.2.3. IP Address Restriction
7.3. Call Forwarding and Call Hunting
7.3.1. Setting a simple Call Forward
7.3.2. Advanced Call Hunting
7.4. Local Number Porting
7.4.1. Local LNP Database
7.5. Emergency Mapping
7.5.1. Emergency Mapping Description
7.5.2. Emergency Mapping Configuration
7.6. Emergency Priorization
7.6.1. Call-Flow with Emergency Mode Enabled
7.6.2. Configuration of Emergency Mode
7.6.3. Activating Emergency Mode
7.7. Header Manipulation
7.7.1. Header Filtering
7.7.2. Codec Filtering
7.7.3. Enable History and Diversion Headers
7.8. SIP Trunking with SIPconnect
7.8.1. User provisioning
7.8.2. Inbound calls routing
7.8.3. Number manipulations
7.8.4. Registration
7.9. Trusted Subscribers
7.10. Peer Probing
7.10.1. Introduction to Peer Probing Feature
7.10.2. Configuration of Peer Probing
7.10.3. Monitoring of Peer Probing
7.10.4. Further Details for Advanced Users
7.11. Voicemail System
7.11.1. Accessing the IVR Menu
7.11.2. IVR Menu Structure
7.11.3. Type Of Messages
7.11.4. Folders
7.11.5. Voicemail Languages Configuration
7.11.6. Flowcharts with Voice Prompts
7.12. Configuring Subscriber IVR Language
7.13. Sound Sets
7.13.1. Configuring Early Reject Sound Sets
7.14. Conference System
7.14.1. Configuring Call Forward to Conference
7.14.2. Configuring Conference Sound Sets
7.14.3. Joining the Conference
7.14.4. Conference Flowchart with Voice Prompts
7.15. Malicious Call Identification (MCID)
7.15.1. Setup
7.15.2. Usage
7.15.3. Advanced configuration
7.16. Subscriber Profiles
7.16.1. Subscriber Profile Sets
7.17. SIP Loop Detection
7.18. Invoices and Invoice Templates
7.18.1. Invoices Management
7.18.2. Invoice Management via REST API
7.18.3. Invoice Templates
7.19. Email Reports and Notifications
7.19.1. Email events
7.19.2. Initial template values and template variables
7.19.3. Password reset email template
7.19.4. New subscriber notification email template
7.19.5. Invoice email template
7.19.6. Email templates management
7.20. The Vertical Service Code Interface
7.20.1. Configuration of Vertical Service Codes
7.20.2. Voice Prompts for Vertical Service Code Configuration
7.21. Handling WebRTC Clients
7.22. XMPP and Instant Messaging
7.23. Call Recording
7.23.1. Introduction to Call Recording Function
7.23.2. Information on Files and Directories
7.23.3. Configuration
7.23.4. REST API
7.24. SMS (Short Message Service) on Sipwise C5
7.24.1. Configuration
7.24.2. Monitoring, troubleshooting
7.24.3. REST API
8. Customer Self-Care Interface and Menus
8.1. The Customer Self-Care Web Interface
8.1.1. Login Procedure
8.1.2. Site Customization
8.2. The Voicemail Menu
9. Billing Configuration
9.1. Billing Profiles
9.1.1. Creating Billing Profiles
9.1.2. Creating Billing Fees
9.1.3. Creating Off-Peak Times
9.2. Fraud Detection and Locking
9.2.1. Fraud Lock Levels
9.3. Billing Data Export
9.3.1. Glossary of Terms
9.3.2. File Name Format
9.3.3. File Format
9.3.4. File Transfer
10. Provisioning REST API Interface
10.1. API Workflows for Customer and Subscriber Management
10.2. API performance considerations
11. Configuration Framework
11.1. Configuration templates
11.1.1. .tt2 and .customtt.tt2 files
11.1.2. .prebuild and .postbuild files
11.1.3. .services files
11.2. config.yml, constants.yml and network.yml files
11.3. ngcpcfg and its command line options
11.3.1. apply
11.3.2. build
11.3.3. commit
11.3.4. decrypt
11.3.5. diff
11.3.6. encrypt
11.3.7. help
11.3.8. initialise
11.3.9. pull
11.3.10. push
11.3.11. services
11.3.12. status
12. Network Configuration
12.1. General Structure
12.1.1. Available Host Options
12.1.2. Interface Parameters
12.2. Advanced Network Configuration
12.2.1. Extra SIP Sockets
12.2.2. Extra SIP and RTP Sockets
12.2.3. Alternative RTP Interface Selection Using ICE
12.2.4. Extended RTP Port Range Using Multiple Interfaces
13. Licenses
14. Software Upgrade
14.1. Release Notes
14.2. Overview
14.3. Preparing the software upgrade
14.3.1. Log into the C5 server
14.4. Upgrade from previous versions to mr6.2.2
14.4.1. Preparing for maintenance mode
14.4.2. Set the proper software repositories
14.4.3. Switch to new repositories
14.4.4. Upgrade Sipwise C5
14.5. Post-upgrade tasks
14.5.1. Migrate location entries from Mysql to Redis DB
14.5.2. Disabling maintenance mode
14.5.3. Post-upgrade checks
14.6. Applying the Latest Hotfixes
14.6.1. Apply hotfixes
15. Backup, Recovery and Database Maintenance
15.1. Sipwise C5 Backup
15.1.1. What data to back up
15.2. Recovery
15.3. Reset Database
15.4. Accounting Data (CDR) Cleanup
15.4.1. Cleanuptools Configuration
15.4.2. Accounting Database Cleanup
15.4.3. Exported CDR Cleanup
16. Platform Security, Performance and Troubleshooting
16.1. Sipwise SSH access to Sipwise C5
16.2. Firewalling
16.2.1. Firewall framework
16.2.2. Sipwise C5 firewall configuration
16.2.3. IPv4 System rules
16.2.4. Custom rules
16.2.5. Example firewall configuration section
16.3. Password management
16.3.1. The "root" account
16.3.2. The "administrator" account
16.3.3. The "cdrexport" account
16.3.4. The MySQL "root" user
16.3.5. The "ngcpsoap" account
16.4. SSL certificates.
16.5. Securing your Sipwise C5 against SIP attacks
16.5.1. Denial of Service
16.5.2. Bruteforcing SIP credentials
16.6. Topology Hiding
16.6.1. Introduction to Topology Hiding on NGCP
16.6.2. Configuration of Topology Hiding
16.6.3. Considerations for Topology Hiding
16.7. System Requirements and Performance
16.8. Troubleshooting
16.8.1. Collecting call information from logs
16.8.2. Collecting SIP traces
17. Monitoring and Alerting
17.1. Internal Monitoring
17.1.1. System monitoring via Telegraf
17.1.2. Sipwise C5 specific monitoring via ngcp-witnessd
17.1.3. Monitoring data in InfluxDB
17.2. Statistics Dashboard
A. Basic Call Flows
1. General Call Setup
2. Endpoint Registration
3. Basic Call
4. Session Keep-Alive
5. Voicebox Calls
B. Sipwise C5 configs overview
1. config.yml Overview
1.1. apps
1.2. asterisk
1.3. autoprov
1.4. backuptools
1.5. cdrexport
1.6. checktools
1.7. cleanuptools
1.8. cluster_sets
1.9. database
1.10. faxserver
1.11. general
1.12. heartbeat
1.13. intercept
1.14. kamailio
1.15. mediator
1.16. modules
1.17. nginx
1.18. ntp
1.19. ossbss
1.20. pbx (only with additional cloud PBX module installed)
1.21. prosody
1.22. pushd
1.23. qos
1.24. rate-o-mat
1.25. redis
1.26. reminder
1.27. rsyslog
1.28. rtpproxy
1.29. security
1.30. sems
1.31. sms
1.32. snmpagent
1.33. sshd
1.34. sudo
1.35. www_admin
2. constants.yml Overview
3. network.yml Overview
C. NGCP Internals
1. Pending reboot marker
2. Redis id constants
2.1. InfluxDB monitoring keys
3. Enum preferences

1. Introduction

1.1. About this Handbook

This handbook describes the architecture and the operational steps to install, operate and modify the Sipwise C5 CE.

In various chapters, it describes the system architecture, the installation and upgrade procedures and the initial configuration steps to get your first users online. It then dives into advanced preference configurations such as rewrite rules, call blocking, call forwarding, etc.

There is a description of the customer self-care interface, how to configure the billing system and how to provision the system via the API.

Finally, it describes the internal configuration framework, the network configuration and gives hints about tweaking the system for better security and performance.

1.2. What is the Sipwise C5 CE?

Sipwise C5 (also known as NGCP - the Next Generation Communication Platform) is a SIP-based Open Source Class 5 VoIP soft-switch platform that allows you to provide rich telephony services. It offers a wide range of features (e.g. call forwarding, voicemail, conferencing etc.) that can be configured by end users in the self-care web interface. For operators, it offers a web-based administrative panel that allows them to configure subscribers, SIP peerings, billing profiles, and other entities. The administrative web panel also shows the real-time statistics for the whole system. For tight integration into existing infrastructures, Sipwise C5 provides a powerful REST API interface.

Sipwise C5 has three solutions that differ in call capacity and service redundancy: CARRIER, PRO and CE. The current handbook describes the CE solution.

The Sipwise C5 CE can be installed in a few steps within a couple of minutes and requires no knowledge about configuration files of specific software components.

1.3. The Advantages of the Sipwise C5 CE

Opposed to other free VoIP software, Sipwise C5 is not a single application, but a complete software platform based on Debian GNU/Linux.

Using a highly modular design approach, Sipwise C5 leverages popular open-source software like MySQL, NGINX, Kamailio, SEMS, Asterisk, etc. as its core building blocks. These blocks are glued together using optimized and proven configurations and workflows and are complemented by functionality developed by Sipwise to provide fully-featured and easy-to-operate VoIP services.

After downloading and starting the installer, it will fetch and install all the required Debian packages from the relevant Debian repositories. The installed applications are managed by the Sipwise C5 Configuration Framework. This configuration framework makes it possible to change low-level system parameters in a single place, so Sipwise C5 administrators don’t need to have any knowledge of dozens of different configuration files from different packages. This provides a very easy and bullet-proof way of operating, changing and tweaking an otherwise quite complex system.

Once configured, integrated web interfaces are provided for both end users and Sipwise C5 administrators. Provisioning and billing API allows companies to tightly integrate Sipwise C5 into existing OSS/BSS infrastructures to optimize workflows.

1.4. Who is the Sipwise C5 CE for?

The Sipwise C5 CE is specifically tailored to companies and engineers trying to start or experiment with a fully-featured SIP-based VoIP service without having to go through the steep learning curve of SIP signalling. It integrates the different building blocks to make them work together in a reasonable way and implements the missing components to build a business on top of that.

In the past, creating a business-ready VoIP service included installation and configuration of SIP software like Asterisk, OpenSER, Kamailio, etc., which can get quite difficult when it comes to implementing advanced features. It required implementing different web interfaces, billing engines and connectors to existing OSS/BSS infrastructure. These things are now obsolete due to the Sipwise C5 CE, which covers all these requirements.

1.5. Getting Help

1.5.1. Community Support

We have set up the spce-user mailing list, where questions are answered on a best-effort basis and discussions can be started with other community users.

1.5.2. Commercial Support

If you need professional help setting up and maintaining the Sipwise C5 CE, send an email to sales@sipwise.com.

Sipwise also provides training and commercial support for the platform. Additionally, we offer a migration path to the Sipwise C5 PRO or CARRIER appliance, which is the commercial, carrier-grade version of the Sipwise C5 CE. If the user base grows on the Sipwise C5 CE, this will allow operators to migrate seamlessly to a highly available and scalable platform with defined service level agreements, phone support and on-call duty. Please visit www.sipwise.com for more information on commercial offerings.