The Sipwise C5 PRO Handbook mr6.2.1


Table of Contents

1. Introduction
1.1. About this Handbook
1.2. What is the Sipwise C5 PRO?
1.3. The Advantages of the Sipwise C5 PRO
1.4. Who is the Sipwise C5 PRO for?
1.5. Getting Help
1.5.1. Phone Support
1.5.2. Ticket System
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. MySQL Database
2.3. Redis Database
2.4. High Availability and Fail-Over
2.4.1. Overview
2.4.2. Core Concepts and Configuration
2.4.3. Administration
3. Platform Deployment
3.1. Hardware Specifications
3.1.1. Dimensions and Weight
3.1.2. Front View
3.1.3. Rear View
3.1.4. Power Supply Units (PSU)
3.2. Installation Prerequisites
3.3. Rack-Mount Installation
3.4. Power Supply Cabling
3.5. Network Cabling
3.5.1. Internal Communication
3.5.2. External Communication
4. VoIP Service Administration Concepts
4.1. Contacts
4.2. Resellers
4.3. SIP Domain
4.3.1. Additional SIP Domains
4.4. Contracts
4.5. Customers
4.5.1. Residential and SOHO customers
4.5.2. Business customers with the Cloud PBX service
4.5.3. SIP Trunking
4.5.4. Mobile subscribers
4.5.5. Pre-paid subscribers who use your calling cards
4.6. Subscribers
4.7. SIP Peerings
5. VoIP Service Configuration Scenario
5.1. Creating a SIP Domain
5.2. Creating a Customer
5.3. Creating a Subscriber
5.4. Domain Preferences
5.5. Subscriber Preferences
5.6. Creating Peerings
5.6.1. Creating Peering Groups
5.6.2. Creating Peering Servers
5.6.3. Authenticating and Registering against Peering Servers
5.7. Configuring Rewrite Rule Sets
5.7.1. Inbound Rewrite Rules for Caller
5.7.2. Inbound Rewrite Rules for Callee
5.7.3. Outbound Rewrite Rules for Caller
5.7.4. Outbound Rewrite Rules for Callee
5.7.5. Emergency Number Handling
5.7.6. Assigning Rewrite Rule Sets to Domains and Subscribers
5.7.7. Creating Dialplans for Peering Servers
5.7.8. Call Routing Verification
6. Features
6.1. Managing System Administrators
6.1.1. Configuring Administrators
6.1.2. Access Rights of Administrators
6.2. Access Control for SIP Calls
6.2.1. Block Lists
6.2.2. NCOS Levels
6.2.3. IP Address Restriction
6.3. Call Forwarding and Call Hunting
6.3.1. Setting a simple Call Forward
6.3.2. Advanced Call Hunting
6.4. Local Number Porting
6.4.1. Local LNP Database
6.4.2. External LNP via LNP API
6.5. Emergency Mapping
6.5.1. Emergency Mapping Description
6.5.2. Emergency Mapping Configuration
6.6. Emergency Priorization
6.6.1. Call-Flow with Emergency Mode Enabled
6.6.2. Configuration of Emergency Mode
6.6.3. Activating Emergency Mode
6.7. Header Manipulation
6.7.1. Header Filtering
6.7.2. Codec Filtering
6.7.3. Enable History and Diversion Headers
6.8. SIP Trunking with SIPconnect
6.8.1. User provisioning
6.8.2. Inbound calls routing
6.8.3. Number manipulations
6.8.4. Registration
6.9. Trusted Subscribers
6.10. Peer Probing
6.10.1. Introduction to Peer Probing Feature
6.10.2. Configuration of Peer Probing
6.10.3. Monitoring of Peer Probing
6.10.4. Further Details for Advanced Users
6.11. Fax Server
6.11.1. Fax2Mail Architecture
6.11.2. Sendfax and Mail2Fax Architecture
6.12. Voicemail System
6.12.1. Accessing the IVR Menu
6.12.2. IVR Menu Structure
6.12.3. Type Of Messages
6.12.4. Folders
6.12.5. Voicemail Languages Configuration
6.12.6. Flowcharts with Voice Prompts
6.13. Configuring Subscriber IVR Language
6.14. Sound Sets
6.14.1. Configuring Early Reject Sound Sets
6.15. Conference System
6.15.1. Configuring Call Forward to Conference
6.15.2. Configuring Conference Sound Sets
6.15.3. Joining the Conference
6.15.4. Conference Flowchart with Voice Prompts
6.16. Malicious Call Identification (MCID)
6.16.1. Setup
6.16.2. Usage
6.16.3. Advanced configuration
6.17. Subscriber Profiles
6.17.1. Subscriber Profile Sets
6.18. SIP Loop Detection
6.19. Call-Through Application
6.19.1. Administrative Configuration
6.19.2. Call Flow
6.20. Calling Card Application
6.20.1. Administrative Configuration
6.20.2. Call Flow
6.21. Invoices and Invoice Templates
6.21.1. Invoices Management
6.21.2. Invoice Management via REST API
6.21.3. Invoice Templates
6.22. Email Reports and Notifications
6.22.1. Email events
6.22.2. Initial template values and template variables
6.22.3. Password reset email template
6.22.4. New subscriber notification email template
6.22.5. Invoice email template
6.22.6. Email templates management
6.23. The Vertical Service Code Interface
6.23.1. Vertical Service Codes for PBX customers
6.23.2. Configuration of Vertical Service Codes
6.23.3. Voice Prompts for Vertical Service Code Configuration
6.24. Handling WebRTC Clients
6.25. XMPP and Instant Messaging
6.26. Call Recording
6.26.1. Introduction to Call Recording Function
6.26.2. Information on Files and Directories
6.26.3. Configuration
6.26.4. REST API
6.27. SMS (Short Message Service) on Sipwise C5
6.27.1. Configuration
6.27.2. Monitoring, troubleshooting
6.27.3. REST API
7. Customer Self-Care Interface and Menus
7.1. The Customer Self-Care Web Interface
7.1.1. Login Procedure
7.1.2. Site Customization
7.2. The Voicemail Menu
8. Billing Configuration
8.1. Billing Profiles
8.1.1. Creating Billing Profiles
8.1.2. Creating Billing Fees
8.1.3. Creating Off-Peak Times
8.2. Peak Time Call Rating Modes
8.2.1. Introduction to Call Rating Modes
8.2.2. Typical Use Cases for Call Rating Modes
8.2.3. Configuration of Call Rating Modes
8.3. Prepaid Accounting
8.4. Fraud Detection and Locking
8.4.1. Fraud Lock Levels
8.5. Billing Customizations
8.5.1. Billing Networks
8.5.2. Profile Mapping Schedule
8.5.3. Profile Packages
8.5.4. Vouchers
8.5.5. Top-up
8.5.6. Balance Overviews
8.5.7. Usage Examples
8.6. Billing Data Export
8.6.1. Glossary of Terms
8.6.2. File Name Format
8.6.3. File Format
8.6.4. File Transfer
9. Provisioning REST API Interface
9.1. API Workflows for Customer and Subscriber Management
9.2. API performance considerations
10. Configuration Framework
10.1. Configuration templates
10.1.1. .tt2 and .customtt.tt2 files
10.1.2. .prebuild and .postbuild files
10.1.3. .services files
10.2. config.yml, constants.yml and network.yml files
10.3. ngcpcfg and its command line options
10.3.1. apply
10.3.2. build
10.3.3. commit
10.3.4. decrypt
10.3.5. diff
10.3.6. encrypt
10.3.7. help
10.3.8. initialise
10.3.9. pull
10.3.10. push
10.3.11. services
10.3.12. status
11. Network Configuration
11.1. General Structure
11.1.1. Available Host Options
11.1.2. Interface Parameters
11.2. Advanced Network Configuration
11.2.1. Extra SIP Sockets
11.2.2. Extra SIP and RTP Sockets
11.2.3. Alternative RTP Interface Selection Using ICE
11.2.4. Extended RTP Port Range Using Multiple Interfaces
12. Licenses
12.1. What is Subject to Licensing?
12.2. How Licensing Works
12.3. How to Configure Licenses
12.4. How to Monitor License Client
13. Software Upgrade
13.1. Release Notes
13.2. Overview
13.3. Planning a software upgrade
13.4. Preparing the software upgrade
13.4.1. Log into the C5 standby node
13.5. Upgrading Sipwise C5
13.5.1. Preparing for maintenance mode
13.5.2. Switch to the new repositories
13.5.3. Download the new packages into the approx cache (on standby node only)
13.5.4. Install the package used to upgrade C5
13.5.5. Upgrade the first PRO node
13.5.6. The customtt files handling (if necessary)
13.5.7. Promote the upgraded standby node to active
13.5.8. Upgrade the second PRO node
13.6. Post-upgrade tasks
13.6.1. Migrate location entries from Mysql to Redis DB
13.6.2. Disabling maintenance mode
13.6.3. Post-upgrade checks
13.7. Applying the Latest Hotfixes
13.7.1. Update the approx cache on the standby node
13.7.2. Apply hotfixes on the standby node
13.7.3. Promote the standby node to active
13.7.4. Apply hotfixes on the second node
14. Backup, Recovery and Database Maintenance
14.1. Sipwise C5 Backup
14.1.1. What data to back up
14.1.2. The built-in backup solution
14.2. Recovery
14.3. Reset Database
14.4. Synchronize database
14.5. Accounting Data (CDR) Cleanup
14.5.1. Cleanuptools Configuration
14.5.2. Accounting Database Cleanup
14.5.3. Exported CDR Cleanup
15. Platform Security, Performance and Troubleshooting
15.1. Sipwise SSH access to Sipwise C5
15.2. Firewalling
15.2.1. Firewall framework
15.2.2. Sipwise C5 firewall configuration
15.2.3. IPv4 System rules
15.2.4. Custom rules
15.2.5. Example firewall configuration section
15.3. Password management
15.3.1. The "root" account
15.3.2. The "administrator" account
15.3.3. The "cdrexport" account
15.3.4. The MySQL "root" user
15.3.5. The "ngcpsoap" account
15.4. SSL certificates.
15.5. Securing your Sipwise C5 against SIP attacks
15.5.1. Denial of Service
15.5.2. Bruteforcing SIP credentials
15.6. Topology Hiding
15.6.1. Introduction to Topology Hiding on NGCP
15.6.2. Configuration of Topology Hiding
15.6.3. Considerations for Topology Hiding
15.7. System Requirements and Performance
15.8. Troubleshooting
15.8.1. Collecting call information from logs
15.8.2. Collecting SIP traces
16. Monitoring and Alerting
16.1. Internal Monitoring
16.1.1. Service monitoring
16.1.2. System monitoring via Telegraf
16.1.3. Sipwise C5 specific monitoring via ngcp-witnessd
16.1.4. Monitoring data in InfluxDB
16.2. Statistics Dashboard
16.3. External Monitoring Using SNMP
16.3.1. Overview and Initial Setup
16.3.2. Details
17. Extensions and Additional Modules
17.1. Cloud PBX
17.1.1. PBX Device Provisioning
17.1.2. Preparing PBX Rewrite Rules
17.1.3. Creating Customers and Pilot Subscribers
17.1.4. Creating Regular PBX Subscribers
17.1.5. Assigning Subscribers to a Device
17.1.6. Configuring Sound Sets for the Customer PBX
17.1.7. Auto-Attendant Function
17.1.8. Cloud PBX Groups with Busy Members
17.1.9. Configuring Call Queues
17.1.10. Device Auto-Provisioning Security
17.1.11. Device Bootstrap and Resync Workflows
17.1.12. Device Provisioning and Deployment Workflows
17.1.13. List of available pre-configured devices
17.1.14. Phone features
17.1.15. Shared line appearance
17.2. Sipwise sip:phone App (SIP client)
17.2.1. Zero Config Launcher
17.2.2. Mobile Push Notification
17.3. Lawful Interception
17.3.1. Introduction
17.3.2. Architecture and Configuration of LI Service
17.3.3. X1, X2 and X3 Interface Specification
17.4. 3rd Party Call Control
17.4.1. Introduction
17.4.2. Details of Call Processing with PCC
17.4.3. Voicemail Notification
17.4.4. Incoming Short Message Acceptance
17.4.5. Configuration of PCC
17.4.6. Troubleshooting of PCC
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. lnpd
1.16. mediator
1.17. modules
1.18. nginx
1.19. ntp
1.20. ossbss
1.21. pbx (only with additional cloud PBX module installed)
1.22. prosody
1.23. pushd
1.24. qos
1.25. rate-o-mat
1.26. redis
1.27. reminder
1.28. rsyslog
1.29. rtpproxy
1.30. security
1.31. sems
1.32. sms
1.33. snmpagent
1.34. sshd
1.35. sudo
1.36. voisniff
1.37. www_admin
2. constants.yml Overview
3. network.yml Overview
C. NGCP-Faxserver Configuration
1. Faxserver Components
2. Enabling Faxserver
3. Fax Templates Configuration
4. Fax Services Configuration per Subscriber
5. Fax2Mail and SendFax Settings
6. Mail2Fax Settings
7. Sending Fax from Web Panel
8. Faxserver Mail2Fax Configuration
9. Sending Fax Using E-mail Clients
10. Managing Faxes via the REST API
10.1. Configuring Fax Settings
10.1.1. Retrieving Fax Settings
10.1.2. Updating Fax Settings
10.2. Sending a Fax
10.3. Receiving a Fax
10.4. Configuring Mail2Fax Settings
10.4.1. Retrieving Mail2Fax Configuration
10.4.2. Updating Mail2Fax Configuration
10.5. Using Advanced Faxserver and Mail2Fax Settings via the REST API
11. Troubleshooting
11.1. Session ID (SID)
11.2. Fax Storage Location
12. Adjusting the PBX Devices Configuration
12.1. Setting up Device Models
12.2. Uploading Device Firmwares
12.3. Creating Device Configurations
12.4. Creating Device Profiles
D. RTC:engine
1. Overview
2. RTC:engine enabling
2.1. Enabling services via CLI
2.2. Enabling via Panel for resellers and subscribers
2.3. Create RTC:engine session
2.3.1. Create sessions
2.3.2. Receive sessions
3. RTC:engine protocol details
3.1. Terminology
3.1.1. Connector
3.1.2. Router
3.1.3. User
3.1.4. App
3.1.5. Network
3.1.6. Session
3.1.7. Account
3.1.8. Browser SDK
3.2. Messages
3.2.1. Fields
3.2.2. method
3.2.3. from
3.2.4. to
3.2.5. session
3.2.6. body
3.3. Account
3.3.1. Flow
3.3.2. Messages
3.3.3. account.connect
3.3.4. account.state
3.3.5. State reasons
3.3.6. States
3.4. Call
3.4.1. Flow
3.4.2. call.start
3.4.3. Body properties
3.4.4. id
3.4.5. gcid
3.4.6. account
3.4.7. replace
3.4.8. trickle
3.4.9. target
3.4.10. sdp
3.4.11. call.alive
3.4.12. call.ringing
3.4.13. call.accept
3.4.14. call.ack.accept
3.4.15. call.candidate
3.4.16. call.fullsdp
3.4.17. call.change….
3.4.18. call.change.lock.reset
3.4.19. call.change.lock
3.4.20. call.change.lock.ok
3.4.21. call.change.offer
3.4.22. call.change.answer
3.4.23. call.dtmf
3.4.24. call.end
3.4.25. call.ack.end
3.5. Session
3.5.1. Flow
3.5.2. Messages
3.5.3. session.open
3.5.4. session.validated
3.5.5. Reason types
E. comx-fileshare-service
1. Overview
2. Configuration and Usage
2.1. Change authentication method
2.2. Database Structure
3. Activation of Filesharing Service on NGCP
4. Message Sequence Chart
4.1. Simple Message Sequence
4.2. Detailed Message Sequence
5. API of Filesharing Service
5.1. HTTP Authentication
5.2. Upload and Download with Simple Identification
5.3. Upload and Download with Session Identification
5.4. Curl Example for Simple Upload Request
5.5. Upload Parameters
5.5.1. file
5.5.2. user
5.5.3. TTL
5.6. Number of Possible Downloads
F. 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 PRO.

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 PRO?

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 PRO solution.

The Sipwise C5 PRO can be pre-installed on two hardware servers or deployed in a customer virtual environment. Apart from your product specific configuration, there is no initial configuration or installation to be done to get started.

1.3. The Advantages of the Sipwise C5 PRO

Opposed to 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.

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 PRO for?

The Sipwise C5 PRO is specifically tailored to companies who want to provide 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. The Sipwise C5 PRO is already deployed all around the world by all kinds of VoIP operators, using it as Class5 soft-switch, as Class4 termination platform or even as Session Border Controller with all kinds of access networks, like Cable, DSL, WiFi and Mobile networks.

1.5. Getting Help

1.5.1. Phone Support

Depending on your support contract, you are eligible to contact our Support Team by phone either during business hours or around the clock. Business hours refer to the CET/CEST time zone (Europe/Vienna). Please check your support contract to find out the type of support you’ve purchased.

Before calling our Support Team, please also open a ticket in our Ticket System and provide as much detail as you can for us to understand the problems, fix them and investigate the cause. Please provide the number of your newly created ticket when asked by our support personnel on the phone.

You can find phone numbers, Ticket System URL, and account information in your support contract. Please make this information available to the persons in your company maintaining Sipwise C5.

1.5.2. Ticket System

Depending on your support contract, you can create either a limited or an unlimited amount of support tickets on our Web-based Ticket System. Please provide as much information as possible when opening a ticket, especially the following:

  • WHAT is affected (e.g. the whole system is unreachable, or customers can’t register or place calls)
  • WHO is affected (e.g. all customers, only parts of it, and WHICH parts - only customers in a particular domain or customers with specific devices, etc.)
  • WHEN did the problem occur (time frames, or after the firmware of specific devices types have been updated, etc.)

Our Support Team will ask further questions via the Ticket System along the way of troubleshooting your issue. Please provide the information as soon as possible to solve your issue promptly.