The sip:provider CE Handbook mr6.0.1


Table of Contents

1. Introduction
1.1. About this Handbook
1.2. What is the sip:provider CE?
1.3. The Advantages of the sip:provider CE
1.4. Who is the sip:provider 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 the NGCP install CD (recommended)
3.3. Using the NGCP installer
3.3.1. Installing the Operating System
3.3.2. Installing the sip:provider CE
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 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.5. Emergency Mapping
6.5.1. Emergency Mapping Description
6.5.2. Emergency Mapping Configuration
6.6. Header Manipulation
6.6.1. Header Filtering
6.6.2. Codec Filtering
6.6.3. Enable History and Diversion Headers
6.7. SIP Trunking with SIPconnect
6.7.1. User provisioning
6.7.2. Inbound calls routing
6.7.3. Number manipulations
6.7.4. Registration
6.8. Trusted Subscribers
6.9. Peer Probing
6.9.1. Introduction to Peer Probing Feature
6.9.2. Configuration of Peer Probing
6.9.3. Monitoring of Peer Probing
6.9.4. Further Details for Advanced Users
6.10. Voicemail System
6.10.1. Accessing the IVR Menu
6.10.2. IVR Menu Structure
6.10.3. Type Of Messages
6.10.4. Folders
6.10.5. Voicemail Languages Configuration
6.10.6. Flowcharts with Voice Prompts
6.11. Configuring Subscriber IVR Language
6.12. Sound Sets
6.12.1. Configuring Early Reject Sound Sets
6.13. Conference System
6.13.1. Configuring Call Forward to Conference
6.13.2. Configuring Conference Sound Sets
6.13.3. Joining the Conference
6.13.4. Conference Flowchart with Voice Prompts
6.14. Malicious Call Identification (MCID)
6.14.1. Setup
6.14.2. Usage
6.14.3. Advanced configuration
6.15. Subscriber Profiles
6.15.1. Subscriber Profile Sets
6.16. SIP Loop Detection
6.17. Invoices and Invoice Templates
6.17.1. Invoices Management
6.17.2. Invoice Management via REST API
6.17.3. Invoice Templates
6.17.4. Invoices Generation
6.18. Email Reports and Notifications
6.18.1. Email events
6.18.2. Initial template values and template variables
6.18.3. Password reset email template
6.18.4. New subscriber notification email template
6.18.5. Invoice email template
6.18.6. Email templates management
6.19. The Vertical Service Code Interface
6.19.1. Configuration of Vertical Service Codes
6.19.2. Voice Prompts for Vertical Service Code Configuration
6.20. Handling WebRTC Clients
6.21. XMPP and Instant Messaging
6.22. Call Recording
6.22.1. Introduction to Call Recording Function
6.22.2. Information on Files and Directories
6.22.3. Configuration
6.22.4. REST API
6.23. SMS (Short Message Service) on Sipwise NGCP
6.23.1. Configuration
6.23.2. Monitoring, troubleshooting
6.23.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. Fraud Detection and Locking
8.2.1. Fraud Lock Levels
8.3. Billing Data Export
8.3.1. Glossary of Terms
8.3.2. File Name Format
8.3.3. File Format
8.3.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
12. Licenses
13. Software Upgrade
13.1. Release Notes
13.2. Upgrade from previous versions to mr6.0.1
13.2.1. Set the proper software repositories
13.2.2. Preparing for maintenance mode
13.2.3. Switch to new repositories
13.2.4. Upgrade the sip:provider CE
13.3. Post-upgrade tasks
13.3.1. Disabling maintenance mode
13.3.2. Post-upgrade checks
13.4. Applying the Latest Hotfixes
13.4.1. Apply hotfixes
14. Backup, Recovery and Database Maintenance
14.1. sip:provider CE Backup
14.1.1. What data to back up
14.2. Recovery
14.3. Reset Database
14.4. Accounting Data (CDR) Cleanup
14.4.1. Cleanuptools Configuration
14.4.2. Accounting Database Cleanup
14.4.3. Exported CDR Cleanup
15. Platform Security, Performance and Troubleshooting
15.1. Sipwise SSH access to sip:provider CE
15.2. Firewalling
15.2.1. Firewall framework
15.2.2. NGCP 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 sip:provider CE 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. System monitoring via Telegraf
16.1.2. NGCP-specific monitoring via ngcp-witnessd
16.1.3. Monitoring data in InfluxDB
16.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. NGCP 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 sip:provider 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 blockings, call forwards, 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 provided APIs.

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

1.2. What is the sip:provider CE?

The sip:provider CE is a SIP based Open Source Class5 VoIP soft-switch platform providing rich telephony services. It offers a wide range of features to end users (call forwards, voicemail, conferencing, call blocking, click-to-dial, call-lists showing near-realtime accounting information, etc.), which can be configured by them using the customer-self-care web interface. For operators, it offers a fully web-based administrative panel, allowing them to configure users, peerings, billing profiles, etc., as well as viewing real-time statistics of the system. For tight integration into existing infrastructures, it provides a powerful REST API.

The sip:provider 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 sip:provider CE

Opposed to other free VoIP software, the sip:provider CE is not a single application, but a whole software platform, the Sipwise NGCP (Sipwise Next Generation Communication Platform), which is based on Debian GNU/Linux.

Using a highly modular design approach, the NGCP 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 NGCP Configuration Framework, which makes it possible to change system parameters in a single place, so administrators don’t need to have any knowledge of the dozens of different configuration files of the different packages. This provides a very easy and bullet-proof way of operating, changing and tweaking the otherwise quite complex system.

Once configured, integrated web interfaces are provided for both end users and administrators to use the sip:provider CE. By using the provided provisioning and billing APIs, it can be integrated tightly into existing OSS/BSS infrastructures to optimize workflows.

1.4. Who is the sip:provider CE for?

The sip:provider 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, integrating the different building blocks to make them work together in a reasonable way and implementing 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 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 sip:provider CE, send an email to support@sipwise.com.

Sipwise also provides training and commercial support for the platform. Additionally, we offer a migration path to the sip:provider PRO appliance, which is the commercial, carrier-grade version of the sip:provider CE. If the user base grows on the 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.