PortSIP Knowledge Base
  • PortSIP Communications Solution
    • What is PortSIP?
    • The Advantages of PortSIP PBX vs. Other PBXs
    • Cloud PBX Empowering Service Providers
    • Simplifying Unified Communications with WebRTC and SIP
    • What is CPaaS? Communications Platform as a Service Explained
    • UCaaS is Unified Communications as a Service
    • PortSIP PBX Administration Guide
      • Overview
      • PortSIP Security Features
      • Summary of Changes
      • Before Started
      • 1 Installation of the PortSIP PBX
        • Installation of PortSIP PBX v22.x
          • Install PortSIP PBX on Linux
          • Install PortSIP IM Server on Linux
          • Install PortSIP PBX on Windows
          • Upgrade to the Latest Version Within v22.x on Linux
          • Upgrade to the Latest v22.x on Windows
          • Upgrade v16.x to the Latest v22.x on Linux
        • Installation of PortSIP PBX v16.x
          • Upgrade to the Latest v16.x Release
      • 2 Configuring the PortSIP PBX
      • 3 Tenant Management
      • 4 Phone Device Management
        • Managing Phones
        • Auto Provisioning Security
        • Custom IP Phone Template
        • Bulk Importing Users and Auto Provisioning IP Phones
        • Zero Touch Provisioning Phones
        • Provision Phone Using PnP
        • PnP Auto Provisioning IP Phone Multicast Debug
        • Provision Phone Using RPS
        • Provision Phone Using DHCP Option 66
        • Provision Phone Using TFTP
        • Provisioning Cisco 79xx IP Phones
        • Provision Fanvil DECT IP Phones
        • Provision Yealink DECT IP Phones
        • Provision SNOM DECT IP Phones
        • Configuring Private RPS Account
      • 5 User Management
        • Users
        • How to Configure the Endpoints?
        • User Groups
        • DND and Automatic Callback
        • Speed Dial 8
        • Speed Dial 100
      • 6 Transport Management
      • 7 Trunk Management
        • Configuring SIP Trunk
        • Handle Outbound Calls Through SIP Trunk
      • 8 Call Route Management
        • Configuring Inbound Rule
        • Configuring Outbound Rule
      • 9 Configuring PortSIP SBC
        • Topology
        • Summary of Changes
        • Installation PortSIP SBC v11.x
        • Installation PortSIP SBC v10.x
        • Configuring PortSIP SBC for WebRTC
        • Upgrade to the Latest v11.x Release
        • Upgrade to the Latest v10.x Release
      • 10 Configuring SBC for MS Teams
        • Architecture
        • Configuring Microsoft Teams
        • Configuring SBC and PBX
        • Configure an SBC for Multiple Tenants
      • 11 Deploy the SBC Cluster
      • 12 Configuring Virtual Receptionist
        • Managing Virtual Receptionist
        • Visual IVR Editor Guide
        • Direct Inward System Access (DISA)
      • 13 Configuring Ring Group
      • 14 Call Parking
        • PortSIP Call Parking Feature
        • Using Call Parking Feature
        • Using Enhanced Call Park on Fanvil IP Phones
        • Using Enhanced Call Park on Yealink IP Phones
        • Using Enhanced Call Park on Grandstream IP Phones
        • Using Enhanced Call Park on Dinstar IP Phones
      • 15 Shared Voicemail
      • 16 Call Queue
        • Configuring Call Queue
        • Configuring Queue Callback
        • Agent States and Work Modes
        • Skills-Based Routing
        • Silent Monitoring
        • Wallboards
      • 17 Roles and Permissions
      • 18 E164 Number Processing
      • 19 Billing
      • 20 CDR and Call Recordings
        • CDR
        • Call Recordings
        • CDR Field Descriptions
      • 21 Call Reports
      • 22 Dealers
      • 23 Feature Access Codes
      • 24 Call Pickup
      • 25 Meetings
        • Joining a Meeting with the Invite Link
      • 26 Hot Desking
      • 27 STIR/SHAKEN
        • Configuring STIR/SHAKEN
      • 28 Digital Engagement Channels
        • SMS Channel
        • WhatsApp Channel
        • Manage SMS/WhatsApp Message Conversations
      • 29 Integrations
        • Microsoft 365 Integration
        • Google Workspace Integration
      • 30 Office Hours and Holiday Schedule
        • Configuring Office Hours and Holiday Schedule
        • Routing Calls Based on Office Hours and Holidays
      • 31 Configuring Email Notifications
      • PBX and SIP Trunk using PortSIP SBC
      • SIP Header Manipulation
      • Rebranding PortSIP PBX, SBC
      • System Service Extension Numbers
      • Certificates for TLS/HTTPS/WebRTC
        • Preparing TLS Certificates
        • Update Certificates
      • Backup and Restore: An Essential Guide
        • Backup and Restore PortSIP PBX
        • Backup and Restore PortSIP SBC
      • Storing Into AWS S3
      • Storing Into Azure Blob Storage
      • Trace Server - A Better Way to Monitoring SIP Messages and QoS for PortSIP PBX
    • Configuring SIP Trunks
      • QuestBlue SIP Trunk
        • Purchase a DID on QuestBlue Platform
        • Configuring QuestBlue IP Authentication Trunk
        • Configuring QuestBlue Register Authentication Trunk
        • Configuring Outbound & Inbound Calls
        • QuestBlue SMS Integration
      • Twilio SIP Trunk
        • Purchase a DID on the Twilio
        • Configuring Twilio Register Based Trunk
        • Configuring Twilio Interconnect Trunk
        • Configuring Outbound & Inbound Calls
        • Twilio SMS Integration
      • Telnyx SIP Trunk
        • Purchase a DID on Telnyx Platform
        • Configuring Telnyx IP Authentication Trunk
        • Configuring Telnyx Register Authentication Trunk
        • Configuring Outbound & Inbound Calls
        • Telnyx SMS Integration
      • Vonage SIP Trunk
        • Purchase a DID on Vonage Platform
        • Configuring Vonage IP Authentication Trunk
        • Configuring Vonage Register Authentication Trunk
        • Configuring Outbound & Inbound Calls
        • Vonage SMS Integration
      • VoIP.ms SIP Trunk
        • Purchase a DID on VoIP.ms
        • Configuring VoIP.ms Register Based Trunk
        • Configuring Outbound & Inbound Calls
        • VoIP.ms SMS Integration
      • Voxtelesys SIP Trunk
        • Purchase a DID on Voxtelesys Platform
        • Configuring Voxtelesys IP Authentication Trunk
        • Configuring Voxtelesys Register Authentication Trunk
        • Configuring Outbound & Inbound Calls
        • Voxtelesys SMS Integration
      • Wavix SIP Trunk
        • Purchase a DID on Wavix Platform
        • Configuring Wavix IP Authentication Trunk
        • Configuring Wavix Digest Trunk
        • Configuring Outbound & Inbound Calls
        • Wavix SMS Integration
      • VoIP Innovations SIP Trunk
        • Purchase a DID on VoIP Innovations Platform
        • Configuring VoIP Innovations IP Authentication Trunk
        • Configuring Outbound & Inbound Calls
        • VoIP Innovations SMS Integration
      • Bandwidth SIP Trunk
        • Purchase a DID on Bandwidth Platform
        • Configuring Bandwidth IP Authentication Trunk
        • Configuring Outbound & Inbound Calls
        • Bandwidth SMS Integration
      • Flowroute SIP Trunk
        • Purchase a DID on Flowroute Platform
        • Configuring Flowroute IP Authentication Trunk
        • Configuring Outbound & Inbound Calls
        • Flowroute SMS Integration
      • Gamma SIP Trunk
      • Aire Networks SIP Trunk
      • VoiceMeUp SIP Trunk
        • Configuring VoiceMeUp Trunk
        • VoiceMeUp SMS Integration
    • PBX Cluster (v22.x)
      • Topology
      • Preparing Cluster Servers
      • Configuring Cluster Servers
      • Managing Cluster
    • High Availability (v22.x)
      • High Availability and Sclability On-Premise
        • PortSIP PBX High Availability Architecture
        • High Availability Installations on Ubuntu
        • Upgrading High Availability Installation
        • Scaling Servers On-Premise for High Availability
        • Scaling SBC On-Premise for High Availability
        • Scaling IM Server On-Premise for High Availability
      • High Availability and Scalability on AWS
        • PortSIP PBX High Availability Architecture
        • High Availability Installations on AWS
        • Upgrading High Availability Installation
        • Increase Size of EBS Volume
        • Scaling Servers on AWS for High Availability
    • PBX Cluster(v16.x)
      • Topology
      • Preparing Cluster Servers
      • Configuring Cluster Servers
      • Managing Cluster
      • Configuring Cluster Servers for High Availability
    • High Availability (v16.x)
      • High Availability for On-Premise
        • PortSIP PBX High Availability Architecture
        • High Availability Installations on Ubuntu
        • Upgrading High Availability Installation
      • High Availability and Scalability on AWS
        • PortSIP PBX High Availability Architecture
        • High Availability Installations on AWS
        • Upgrading High Availability Installations
        • Increase Size of EBS Volume
        • Scaling Servers on AWS for HA
    • PortSIP UCaaS
    • FAQ
      • Troubleshooting Call Issues
      • How to Activate License key?
      • What is the Multi-Tenant PBX?
      • Is the PortSIP PBX built on Asterisk, FreeSwitch?
      • What is the SBC?
      • What is the PBX? Features, Benefits
      • What File Format Is Required for PortSIP PBX Prompt?
      • What is Direct Inward Dialing (DID)?
      • What is the DID Pool?
      • What are IP Phones Work with PortSIP PBX?
      • Hardware Specifications
      • How to Adjust the REST API Rate Limit?
      • SIP Status Code of Response
      • What is SIP ALG and Why You Need to Disable It?
      • Essential Factors for Choosing a Could PBX Solution
      • Migrate from legacy FCM APIs to HTTP v1 for Android Push Notifications
      • PortSIP SDK License Agreement
      • PortSIP Software End-User License Agreement
  • Apps Guides
    • PortSIP ONE Desktop App
      • Sign in to PBX
      • Calls, Messages, and Voicemails
      • Customize Your Caller ID
      • SMS and WhatsApp Messaging
      • Click to Call
      • Calling from Another Device
      • Change Your Call Queue Status
    • PortSIP ONE Mobile App
      • Sign in to PBX
      • Calls, Messages, and Voicemails
      • Customize Your Caller ID
      • SMS and WhatsApp Messaging
      • Change Your Call Queue Status
    • PortSIP Softphone
  • DEVELOPING WITH PORTSIP
    • Getting Started
    • Calling APIs
      • User Manual for Windows
      • User Manual for iOS
      • User Manual for Android
      • User Manual for macOS
    • REST APIs
      • Version 22.0
        • About
        • API reference
          • Info
          • Login
            • By microsoft
          • Logout
          • Network
          • Sbc
            • Token
              • Destroy
          • Im
            • Token
              • Destroy
          • Dealers
            • Password
            • Destroy
          • Mobile push
            • Destroy
          • Ip filters
            • Destroy
            • Export
          • Transports
            • Destroy
            • Status
          • Tenants
            • Switch
            • Dealers
              • Destroy
            • Destroy
          • Tenant
            • Status
            • Notification
            • Password policy
            • Billing
            • Balance
            • Custom headers
          • Conference servers
            • Status
            • Destroy
          • Media servers
            • Status
            • Destroy
          • License
          • Key
          • Brand
          • Dealer
            • Status
            • Username
            • Password
          • Roles
            • Destroy
          • User
            • Password
            • Extension password
            • Profile
            • Status
            • Presence
            • Balance
            • Greetings
              • Enable
              • Disable
              • Destroy
            • Phones
              • Destroy
            • Cdrs
              • Sync tokens
                • Diff
            • Recordings
              • Destroy
            • Speed dial 8
              • Destroy
            • Speed dial 100
              • Destroy
            • Meetings
              • Destroy
              • Status
              • Mute
              • Unmute
              • Lock
              • Unlock
              • Start
              • Stop
              • Start recording
              • Stop recording
              • Participants
                • Layout
                • Invite
                • Mute
                • Unmute
                • Chairman
                • Position
                • Destroy
            • Holidays
              • Destroy
            • Global holidays
            • Contacts
              • Favorite
              • Unfavorite
              • Destroy
              • Sync tokens
                • Diff
            • Call queues
              • Agent
            • Outbound caller ids
            • Ring groups
            • Business contacts
              • Favorite
              • Unfavorite
              • Sync tokens
                • Diff
            • Extension contacts
              • Favorite
              • Unfavorite
              • Sync tokens
                • Diff
          • Users
            • Profile
            • Password
            • Extension password
            • Role
            • Ms365 binding
              • Destroy
            • Destroy
            • Status
              • Destroy status
            • Balance
            • Greetings
              • Enable
              • Disable
              • Destroy
            • Phones
              • Destroy
            • Holidays
              • Destroy
            • Global holidays
            • Call queues
              • Agent
            • Speed dial 8
              • Destroy
            • Speed dial 100
              • Destroy
          • Extension numbers
          • Groups
            • Destroy
            • Members
              • Destroy
          • Voicemails
            • Set read
            • Set unread
            • Destroy
          • Recordings
            • Destroy
          • Call queue servers
            • Status
            • Destroy
          • Call queues
            • Status
            • Destroy
            • Waiting
              • Pickup
            • Agents
          • Exclusive numbers
            • Destroy
            • Call queues
              • Agents
              • Destroy
            • Export
          • Vip numbers
            • Destroy
            • Export
          • Call queue blacklisted numbers
            • Destroy
            • Export
          • Call queue blacklist prompts
          • Sessions
            • Directly
            • Hold
            • Unhold
            • Refer
            • Attended refer
            • Destroy
          • Conference rooms
            • Destroy
            • Status
            • Mute
            • Unmute
            • Lock
            • Unlock
            • Start recording
            • Stop recording
            • Participants
              • Layout
              • Invite
              • Mute
              • Unmute
              • Chairman
              • Position
              • Destroy
            • Recordings
              • Destroy
              • Set read
              • Set unread
          • Contacts
            • Destroy
            • Export
          • Emergency numbers
            • Destroy
          • Files
            • Destroy
          • Blobs
            • Uploads
              • Append
              • Complete
              • Status
              • Destroy
          • Inbound rules
            • Destroy
            • Export
          • Moh server
            • Musics
              • Destroy
          • Monitor
          • Monitor groups
            • Destroy
            • Members
              • Destroy
            • Managers
              • Destroy
          • Call park
          • Call park groups
            • Destroy
            • Members
              • Destroy
          • Call pickup groups
            • Destroy
            • Members
          • Voicemail
          • Acb
          • Outbound rules
            • Destroy
            • Export
            • Applied groups
              • Destroy
          • Phone models
          • Phones
            • Reprovision
            • Assignee
            • Reboot
            • Reject
          • Dect phone models
          • Dect phones
            • Destroy
            • Members
          • Providers
            • Status
            • Destroy
            • Export
            • Assignees
              • Destroy
          • Ring groups
            • Agents
            • Destroy
          • Shared voicemails
            • Destroy
            • Voicemails
              • Set read
              • Set unread
              • Destroy
            • Greetings
              • Enable
              • Disable
              • Destroy
          • Holidays
            • Destroy
          • Allowed country codes
          • Disallowed codes
            • Destroy
            • Export
          • Blacklisted numbers
            • Destroy
            • Export
          • Call rates
            • Destroy
            • Export
          • Ivr servers
            • Status
            • Destroy
          • Ivrs
            • Status
            • Destroy
            • Action urls
              • Destroy
          • Hotdesking
            • Status
            • Logout
            • Destroy
          • Sms
            • Destroy
          • Whatsapp
            • Destroy
          • Cdrs
          • Call reports
            • Destroy
          • Completed call reports
            • Destroy
          • Feature access codes
          • Default email templates
          • Custom email templates
          • Audit logs
          • Event logs
          • Test email
          • Ms365
            • Certificate
            • Users
          • Admin
            • Status
            • Username
            • Password
            • Settings
            • Notification
          • Templates
            • Phones
              • Destroy
        • Specification
      • Version 22.1
        • About
        • API reference
          • Info
          • Login
            • By microsoft
          • Logout
          • Network
          • Sbc
            • Token
              • Destroy
          • Im
            • Token
              • Destroy
          • Dealers
            • Password
            • Destroy
          • Mobile push
            • Destroy
          • Ip filters
            • Destroy
            • Export
          • Transports
            • Destroy
            • Status
          • Tenants
            • Switch
            • Dealers
              • Destroy
            • Destroy
          • Tenant
            • Status
            • Notification
              • Test email
            • Password policy
            • Billing
            • Balance
            • Custom headers
          • Conference servers
            • Status
            • Destroy
          • Media servers
            • Status
            • Destroy
          • License
          • Key
          • Brand
          • Dealer
            • Status
            • Username
            • Password
          • Roles
            • Destroy
          • User
            • Password
            • Extension password
            • Profile
            • Status
            • Presence
            • Balance
            • Greetings
              • Enable
              • Disable
              • Destroy
            • Phones
              • Destroy
            • Cdrs
              • Sync tokens
                • Diff
            • External messages
            • Recordings
              • Destroy
            • Speed dial 8
              • Destroy
            • Speed dial 100
              • Destroy
            • Meetings
              • Destroy
              • Status
              • Mute
              • Unmute
              • Lock
              • Unlock
              • Start
              • Stop
              • Start recording
              • Stop recording
              • Participants
                • Layout
                • Invite
                • Mute
                • Unmute
                • Chairman
                • Position
                • Destroy
            • Holidays
              • Destroy
            • Global holidays
            • Contacts
              • Favorite
              • Unfavorite
              • Destroy
              • Sync tokens
                • Diff
            • Call queues
              • Agent
            • Outbound caller ids
            • Ring groups
            • Business contacts
              • Favorite
              • Unfavorite
              • Sync tokens
                • Diff
            • Extension contacts
              • Favorite
              • Unfavorite
              • Sync tokens
                • Diff
          • Users
            • Profile
            • Password
            • Extension password
            • Role
            • Ms365 binding
              • Destroy
            • Destroy
            • Status
              • Destroy status
            • Balance
            • Greetings
              • Enable
              • Disable
              • Destroy
            • Phones
              • Destroy
            • Holidays
              • Destroy
            • Global holidays
            • Call queues
              • Agent
            • Speed dial 8
              • Destroy
            • Speed dial 100
              • Destroy
          • Extension numbers
          • Groups
            • Destroy
            • Members
              • Destroy
          • Voicemails
            • Set read
            • Set unread
            • Destroy
          • Recordings
            • Destroy
          • Call queue servers
            • Status
            • Destroy
          • Call queues
            • Status
            • Destroy
            • Waiting
              • Pickup
            • Agents
          • Exclusive numbers
            • Destroy
            • Call queues
              • Agents
              • Destroy
            • Export
          • Vip numbers
            • Destroy
            • Export
          • Call queue blacklisted numbers
            • Destroy
            • Export
          • Call queue blacklist prompts
          • Sessions
            • Directly
            • Hold
            • Unhold
            • Refer
            • Attended refer
            • Destroy
          • Conference rooms
            • Destroy
            • Status
            • Mute
            • Unmute
            • Lock
            • Unlock
            • Start recording
            • Stop recording
            • Participants
              • Layout
              • Invite
              • Mute
              • Unmute
              • Chairman
              • Position
              • Destroy
            • Recordings
              • Destroy
              • Set read
              • Set unread
          • Contacts
            • Destroy
            • Export
          • Emergency numbers
            • Destroy
          • Files
            • Destroy
          • Blobs
            • Uploads
              • Append
              • Complete
              • Status
              • Destroy
          • Inbound rules
            • Destroy
            • Export
          • Moh server
            • Musics
              • Destroy
          • Monitor
          • Monitor groups
            • Destroy
            • Members
              • Destroy
            • Managers
              • Destroy
          • Call park
          • Call park groups
            • Destroy
            • Members
              • Destroy
          • Call pickup groups
            • Destroy
            • Members
          • Voicemail
          • Acb
          • Outbound rules
            • Destroy
            • Export
            • Applied groups
              • Destroy
          • Phone models
          • Phones
            • Reprovision
            • Assignee
            • Reboot
            • Reject
          • Dect phone models
          • Dect phones
            • Destroy
            • Members
          • Providers
            • Status
            • Destroy
            • Export
            • Assignees
              • Destroy
          • Ring groups
            • Agents
            • Destroy
          • Shared voicemails
            • Destroy
            • Voicemails
              • Set read
              • Set unread
              • Destroy
            • Greetings
              • Enable
              • Disable
              • Destroy
          • Holidays
            • Destroy
          • Allowed country codes
          • Disallowed codes
            • Destroy
            • Export
          • Blacklisted numbers
            • Destroy
            • Export
          • Call rates
            • Destroy
            • Export
          • Ivr servers
            • Status
            • Destroy
          • Ivrs
            • Status
            • Destroy
            • Action urls
              • Destroy
          • Hotdesking
            • Status
            • Logout
            • Destroy
          • Sms
            • Destroy
          • Whatsapp
            • Destroy
          • Cdrs
          • Calllogs
          • External messages
          • Call reports
            • Destroy
          • Completed call reports
            • Destroy
          • Feature access codes
          • Default email templates
          • Custom email templates
          • Audit logs
          • Event logs
          • Ms365
            • Certificate
            • Users
          • Google
          • Admin
            • Status
            • Username
            • Password
            • Settings
            • Notification
              • Test email
            • Ms365
              • Certificate
            • Google
          • Templates
            • Phones
              • Destroy
        • Specification
      • Authentication
      • Accessing CDRs and Recordings
    • Call Control APIs
    • Messaging APIs
      • Protocol
      • API Examples
    • WSI: Pub/Sub
    • Webhook Events
      • Registering a Webhook
      • Receiving Events via a Webhook
      • Event Reference
    • Mobile Push Notifications
      • How Do Push Notifications Work with PortSIP PBX?
      • Integrating the Push Notifications in Native iOS APP
      • Integrating the Push Notifications in Android APP
  • PBX v12.x (EOL)
    • PortSIP PBX v12.x is EOL
    • High Availability
      • PortSIP PBX High Availability
      • UCaaS High Availability
      • Deploy the PortSIP PBX HA on AWS
      • Deploy PortSIP PBX HA for CentOS
      • Deploy PortSIP PBX HA for Ubuntu
      • Migrate the HA data
    • Push Notifications
      • How do push notifications work with PortSIP PBX?
      • Implement the PUSH notifications in Xamarin iOS APP with PortSIP PBX 12.x
      • Implement the PUSH notifications in native iOS APP with PortSIP PBX 12.x
      • Implement PUSH notifications in Android APP with PortSIP PBX 12.x
      • Implement PUSH notifications in Xamarin Android APP with PortSIP PBX 12.x
    • Tutorials
      • REST API Examples
      • Trace server - A Better Way to Debug PortSIP UC
      • Setup SSL Certificates for HTTPS/WebRTC
      • Going Real-Time with PortSIP PBX Pub/Sub
      • Upgrade PortSIP PBX for offline
      • PortSIP UC Architecture
      • PortSIP PBX Features
      • PortSIP Security Feature
      • Hardware Specifications
      • Setup PortSIP PBX for Linux
      • Upgrade PortSIP PBX
      • Upgrade PortSIP PBX v12.x to the v12.8.7
      • Add Extended Media Server
      • Store the recording files to AWS S3
      • Configure Notifications for Kubernetes
      • Rebranding PortSIP PBX
Powered by GitBook
On this page
  • Introduction
  • Principle
  • Precautions
  • Installation system
  • Select language and keyboard type
  • Choose minimize installation
  • Disk partition
  • Start installing the system
  • Set root password
  • Boot to check whether the kernel version is consistent with the tutorial
  • Download installation resource package
  • Install ansible
  • Set ansible resource group
  • Resolve the hostname
  • Set password free login
  • Set variables
  • Install resources
  • Restart
  • Start PCs
  • Initialize configuration resources
  • Several common commands
  • View PBX status
  • Restart PBX resource
  • Upgrade PBX
  1. PBX v12.x (EOL)
  2. High Availability

Deploy PortSIP PBX HA for CentOS

Introduction

This manual is for guide deploy the PortSIP HA on CentOS 7.9.

In the examples used in this manual, a total of three servers are used (PBX nodes are used to refer to servers in the following, if three PBX nodes or all PBX nodes refer to three servers, master node and node 1 refer to pbx01, node 2 refer to pbx02, and node 3 refer to pbx03).

To deploy the HA, it requires to have two disk volumes. In this example the hard disk of each server is 98GB, and created two volumes, one is 48G(/dev/sda) for Linux OS we called it as "system volume", another one 50G(/dev/sdb) for store the PBX data, we called it as "data volume".

You are free to decide the disk size, but the size must be same with all servers.

In this example we deploy the HA on three servers which have the IP: 192.168.78.101, 192.168.78.102, 192.168.78.103, the VIP (virtual IP) used in this example is 192.168.78.90.

Please change the hostnames and IP addresses of the three-node machines as follows:

192.168.78.101 pbx01
192.168.78.102 pbx02
192.168.78.103 pbx03

The OS version is required CentOS 7.9.

Principle

PortSIP PBX HA The principle of the scheme is as follows:

  • Three PBX nodes are running at the same time to prevent split-brain during HA switching.

  • Use DRBD to synchronize data between nodes, including current active call information, recording files, logs, call records, and prompt voice files uploaded by users.

  • Use virtual IP (VIP) as the access entry point of the system.

  • Use Pacemaker to monitor the status between servers.

  • The primary node provides services. Once the primary node has a DOWN machine, Pacemaker will immediately drift the VIP to the standby node that takes over after detecting it. User service requests will be automatically routed to the standby node, and the standby node will continue to provide services.

  • The established call on the primary node will be automatically restored by the standby node.

In the actual test process, the main node can be cut off or disconnected to simulate the fault。

Precautions

  1. Unless otherwise specified, the operations mentioned below are only performed on the master node pbx01

  1. Please change the host names of the three nodes to pbx01, pbx02 and pbx03

  1. It is recommended to configure 4 cores CPU and 4G memory hardware. If it is lower than 2-cores CPU or 2G memory, ha handoff will be affected by hardware, and call recovery time will increase

Installation system

Note that you need to follow the same steps described in this section to install and configure the CentOS operating system on all three node servers.

Select language and keyboard type

Choose minimize installation

Disk partition

Choose "Automatically configure partitioning"

Only need to select the disk volume "sda", don't touch the "sdb".

Start installing the system

Set root password

Boot to check whether the kernel version is consistent with the tutorial

Download installation resource package

Perform the following command only at the master node, that is, node pbx01.

[root@pbx01 ~]# cd /root
[root@pbx01 ~]# wget https://www.portsip.com/downloads/ha/lan/portsip-pbx-ha-guide-12-online.tar.gz && \
                tar xf portsip-pbx-ha-guide-12-online.tar.gz && \
                cd portsip-pbx-ha-guide

Install ansible

Perform the following command only at the master node, that is, node pbx01.

[root@pbx01 ~]# yum install epel-release -y  && yum install ansible -y && yum remove epel-release -y

Set ansible resource group

Perform the following command only at the master node, that is, node pbx01.

[root@pbx01 ~]# cat <<EOF >>/etc/ansible/hosts
[master]
pbx01
[node]
pbx02
pbx03
EOF

Resolve the hostname

Perform the following commands at the all nodes: pbx01, pbx02, pbx03. Note: you need to replace the IP and host name in the following command with your actual IP and host name.

[root@pbx01 ~]# cat <<EOF >>/etc/hosts
192.168.78.101 pbx01
192.168.78.102 pbx02
192.168.78.103 pbx03
EOF
[root@pbx02 ~]# cat <<EOF >>/etc/hosts
192.168.78.101 pbx01
192.168.78.102 pbx02
192.168.78.103 pbx03
EOF
[root@pbx03 ~]# cat <<EOF >>/etc/hosts
192.168.78.101 pbx01
192.168.78.102 pbx02
192.168.78.103 pbx03
EOF

Set password free login

In this example, pbx01, pbx02 and pbx03 refer to node 1, node 2 and node 3 respectively. The following command only needs to be executed on the primary node, that is, pbx01, and the certificate is generated according to the prompt:

[root@pbx01 ~]# ssh-keygen -t rsa 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  Enter carriage return
Enter passphrase (empty for no passphrase):  Enter carriage return
Enter same passphrase again:  Enter carriage return
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:zEsSndOuTmwMChtQXPDlMoYHELlIKq5HOxwIR1x+zO4 root@kubernetes01
The key's randomart image is:
+---[RSA 2048]----+
|o*++o .          |
|.o+= = . o       |
|=o. B * + .      |
|*..o = + o       |
|+oo   + S .      |
|..o+ o * o       |
|.o.o. E B        |
|. =    +         |
| . .    .        |
+----[SHA256]-----+
[root@pbx01 ~]# 

Set up pbx01 password free login (executed on pbx01 node):


//Enter the password according to the prompt. If (yes / no)? Appears, you need to enter yes

[root@pbx01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub pbx01

Set up pbx02 password free login (executed on pbx01 node):


//Enter the password according to the prompt. If (yes / no)? Appears, you need to enter yes

[root@pbx01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub pbx02

Set up pbx03 password free login (executed on pbx01 node):


//Enter the password according to the prompt. If (yes / no)? Appears, you need to enter yes

[root@pbx01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub pbx03

Set variables

Please prepare the value for the below Variables.

Name
Type
Description

pbx01_hostname

string

The hostname of node 1, in this case is pbx01

pbx02_hostname

string

The hostname of node 2, in this case is pbx02

pbx03_hostname

string

The hostname of node 2, in this case is pbx02

pbx01_private_ip

string

The private static IP of node 1, in this case is 192.168.78.101

pbx02_private_ip

string

The private static IP of node 2, in this case is 192.168.78.102

pbx03_private_ip

string

The private static IP of node 3, in this case is 192.168.78.103

vip

string

The virtual IP in this case is 192.168.78.90

pcs_hacluster_pwd

string

The HA cluster user password, in this case is 123456

db_pwd

string

The database password in the cluster, in this case is 123456

pbx_image

string

PortSIP PBX docker image in this case is portsip/pbx:12.6

pbx_datapath_disk

string

The disk volume(data volume) for PBX data store in this case is /dev/sdb

pbx_datapath_size

string

The disk volume(data volume, /dev/sdb) size for store the PBX data,in this case is 49G(If use 50G maybe report error) For example if the disk volume size is 500G , suggest set as 490G.

The following command is only executed on the master node, that is, node pbx01. Pay attention to changing the information about pbx01, pbx02, pbx03, VIP and pbx_datapath_size to your own real information.

[root@pbx01 ~]# cd /root/portsip-pbx-ha-guide
[root@pbx01 ~]# cat <<EOF >/root/portsip-pbx-ha-guide/vars.yml
pbx01_hostname: pbx01
pbx02_hostname: pbx02
pbx03_hostname: pbx03
pbx01_private_ip: 192.168.78.101
pbx02_private_ip: 192.168.78.102
pbx03_private_ip: 192.168.78.103
vip: 192.168.78.90
pcs_hacluster_pwd: 123456
db_pwd: 123456
pbx_image: portsip/pbx:12.6
pbx_datapath_disk: /dev/sdb
pbx_datapath_size: 49G
EOF

Install resources

Execute the following command only on the master node, that is, node pbx01.

[root@pbx01 ~]# ansible-playbook install.yml

Restart

Execute the following command only on the master node, that is, node pbx01.

[root@pbx01 ~]# ssh pbx02 "reboot"
[root@pbx01 ~]# ssh pbx03 "reboot"
[root@pbx01 ~]# reboot

Start PCs

After restart, execute the following command only at the primary node, that is, node pbx01:

[root@pbx01 ~]# pcs cluster enable --all
[root@pbx01 ~]# pcs cluster start --all

Initialize configuration resources

Only at the master node, that is, pbx01, execute the following commands (the execution process may be long, just wait patiently, and don't interrupt, restart or shut down in the middle of the process)

[root@pbx01 ~]# cd /root/portsip-pbx-ha-guide/ && ansible-playbook config.yml

After the resource configuration is completed, you can use the browser to open it http://192.168.78.90 : 8888 or https://192.168.78.90 : 8887 to configure your PBX. Subsequent PBX management, configuration and access are carried out through virtual IP 192.168.78.90. The first step of the setup wizard is to fill in the virtual IP. You need to replace it with your actual virtual IP.

After entering the web management interface of PBX, under the menu advanced > Settings > Advanced page, check enable call recovery and click the "apply" button.

Several common commands

Based on /root/portsip-pbx-ha-guide directory

View PBX status

/bin/bash ./bin/pbx-status

The following output shows that all components are running normally. Pbx03 is the master, pbx01 and pbx02 are slave nodes
[root@pbx01 portsip-pbx-ha-guide]# /bin/bash ./bin/pbx-status
 Master/Slave Set: drbd_devpath-clone [drbd_devpath]
     Masters: [ pbx03 ]
     Slaves: [ pbx01 pbx02 ]
 vip  (ocf::heartbeat:IPaddr2):  Started pbx03
 src_pkt_ip  (ocf::heartbeat:IPsrcaddr):  Started pbx03
 datapath_fs  (ocf::heartbeat:Filesystem):  Started pbx03
 pbx  (ocf::portsip:pbx):  Started pbx03
[root@pbx01 portsip-pbx-ha-guide]# 

Restart PBX resource

After the following command is executed, the PBX related resources of the whole cluster will be restarted.

/bin/bash ./bin/pbx-restart


The following is the output of successful execution
[root@pbx01 portsip-pbx-ha-guide]# /bin/bash ./bin/pbx-restart
drbd_devpath_master successfully restarted
vip successfully restarted
src_pkt_ip successfully restarted
datapath_fs successfully restarted
pbx successfully restarted
[root@pbx01 portsip-pbx-ha-guide]# 

Upgrade PBX

Important: Only at the master node, that is, pbx01, perform the following commands.

Download and update the resource package

[root@pbx01 ~] cd /root
[root@pbx01 ~]# wget https://www.portsip.com/downloads/ha/lan/portsip-pbx-ha-guide-12-online.tar.gz && \
                tar xf portsip-pbx-ha-guide-12-online.tar.gz && \
                cd portsip-pbx-ha-guide

Modify the config file

Edit the /root/portsip-pbx-ha-guide/vars.yml to change the PortSIP PBX docker image version.

...
...
pbx_image: portsip/pbx:12.6.5.1042-release
...
...

Upgrade

[root@pbx01 ~]# cd /root/portsip-pbx-ha-guide/ && ansible-playbook update.yml
PreviousDeploy the PortSIP PBX HA on AWSNextDeploy PortSIP PBX HA for Ubuntu

Last updated 3 years ago