How to Connect VICIdial with a Grandstream UCM Trunk

If you have a Grandstream UCM PBX and want to send all outbound or inbound calls to your VICIdial server, you can easily do it by creating a SIP trunk between the two systems.
In this guide, we’ll show how to configure both sides — the Grandstream and VICIdial — to communicate successfully.


🧩 Step 1: Create an Extension on Grandstream UCM

  1. Log in to your Grandstream UCM web interface.
  2. Go to Extension / Trunk > Extensions.
  3. Create a new SIP extension (for example, 5101).
    • Password: Admin!1234
    • Host: set as dynamic (default)
    • Transport: UDP
  4. Save and apply the changes.

This extension will act as the “gateway” between UCM and VICIdial.


⚙️ Step 2: Configure the Trunk in VICIdial

Go to your VICIdial Admin Interface:
Admin → Carriers → Add A New Carrier

Fill in the details as shown below:

Carrier ID: jio
Carrier Name: jioucm trunk
Registration String:

register => 5101:Admin!1234@172.16.10.222/5101

Account Entry:

[JIO]
type=friend
host=172.16.10.222
username=5101
secret=Admin!1234
fromuser=5101
context=trunkinbound
insecure=port,invite
disallow=all
allow=ulaw
qualify=yes
dtmfmode=rfc2833
nat=force_rport,comedia
canreinvite=no
directmedia=no

Protocol: SIP
Globals String:

jiosip = SIP/JIO

Dialplan Entry:

exten => _91XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91XXXXXXXXXX,2,Dial(${jiosip}/${EXTEN:2},${CAMPDTO},To)
exten => _91XXXXXXXXXX,3,Hangup

Click Submit and then Apply Changes.


📡 Step 3: Allow Incoming Calls on VICIdial

To receive calls from the Grandstream UCM, make sure VICIdial’s Inbound DID or Call Menu is configured under:

Admin → Inbound → DIDs
Map the DID or inbound route to a specific campaign, agent, or call menu as per your requirement.


🧱 Step 4: Configure the Trunk on Grandstream (Outbound to VICIdial)

On your Grandstream UCM:

  1. Go to Extension / Trunk > VoIP Trunks.
  2. Click Add SIP Trunk → Choose Peer SIP Trunk.
  3. Enter:
    • Type: Peer SIP Trunk
    • Host Name: IP of your VICIdial server (e.g., 172.16.10.10)
    • Username/Password: (leave blank for peer trunk)
    • From User: 5101
    • Authentication: Disabled
  4. Under Advanced Settings, enable:
    • NAT: Yes
    • Qualify: Yes
  5. Save and Apply.

🚀 Step 5: Create an Outbound Route on Grandstream

  1. Go to PBX > Outbound Routes.
  2. Add a new rule — e.g., _91XXXXXXXXXX
  3. Set Use Trunk = the SIP trunk you created (to VICIdial).
  4. Set Strip Prefix = 0 if needed.
  5. Apply the changes.

Now, when you dial from a Grandstream phone, calls will be routed to VICIdial for processing, campaign logic, or further call routing.


✅ Step 6: Verify the Connection

On VICIdial CLI (Asterisk console), run:

asterisk -rvvv
sip show peers

You should see your Grandstream trunk listed as “OK”.

Make a test call to confirm that audio and routing are working both ways.


🧠 Summary

DeviceSettingDescription
Grandstream UCMExtension 5101Acts as SIP account for VICIdial
VICIdialSIP Trunk (JIO)Connects to UCM using extension credentials
Registrationregister => 5101:Admin!1234@172.16.10.222/5101Registers VICIdial with UCM
ProtocolSIPStandard communication protocol
Dialplan_91XXXXXXXXXXPattern for outbound dialing

📞 Final Tip

If you face registration or call issues, check:

  • sip show registry on VICIdial CLI
  • asterisk -rvvv logs for authentication or codec errors
  • Ensure both sides are using ulaw/alaw codecs and UDP transport

Posted in Vicidial | Leave a comment

How to Update VICIdial IP After Restoring Backup on a New Server

If you’ve taken a VICIdial backup from one server and restored it on another machine with a different IP address, you’ll need to update the server IP inside VICIdial’s configuration and database tables. Without doing this, agents, phones, and campaigns won’t function correctly.

In this post, I’ll explain how I updated my VICIdial IP after moving from 192.168.0.10 to 172.16.11.10.


🔧 Scenario

  • Old Server IP: 192.168.0.10
  • New Server IP: 172.16.11.10
  • VICIdial Version: ViciBox 11
  • Database: Restored from backup

After restoring the database, the system was still pointing to the old IP. To fix this, we must run the VICIdial IP update script.


🪄 Step-by-Step Process

1️⃣ Run the Update Script

Open a terminal on your new VICIdial server and run the following command:

/usr/share/astguiclient/ADMIN_update_server_ip.pl

This script automatically updates all VICIdial tables and configuration files to use your new IP address.


2️⃣ Choose Interactive Mode

You’ll see a prompt like this:

Previous astGUIclient configuration file found at: /etc/astguiclient.conf

Would you like to use interactive mode (y/n): [y]

Type y and press Enter.


3️⃣ Enter Old and New IP Addresses

When asked for the Old Server IP, enter your previous IP (192.168.0.10).
Then, for the New Server IP, enter the current IP (172.16.11.10).

Example:

Old server IP address or press enter for default: [172.16.11.10] 192.168.0.10
server IP address or press enter for default: [] 172.16.11.10

You’ll see a summary like this:

old server_ip:      192.168.0.10
new server_ip:      172.16.11.10
Are these settings correct?(y/n): [y] y

Press y to confirm.


4️⃣ Script Updates All VICIdial Tables

The script will update several MySQL tables automatically:

  • servers
  • system_settings
  • phones
  • vicidial_conferences
  • vicidial_inbound_dids
  • vicidial_server_carriers
  • and more…

Sample output:

Updating servers table: server_ip...
|1|UPDATE servers SET server_ip='172.16.11.10' where server_ip='192.168.0.10';|
Updating phones table...
|43|UPDATE phones SET server_ip='172.16.11.10' where server_ip='192.168.0.10';|
Updating vicidial_conferences table...
|249|UPDATE vicidial_conferences SET server_ip='172.16.11.10' where server_ip='192.168.0.10';|

5️⃣ Reboot the Server

Once all updates are complete, reboot your VICIdial server:

reboot

This ensures all services load with the new configuration.


✅ Final Verification

After reboot:

  1. Log in to the VICIdial Admin Interface.
  2. Go to Admin → Servers.
  3. Confirm that your new IP address 172.16.11.10 is shown correctly.
  4. Rebuild configuration files if needed:
    • Admin → Servers → [Your Server] → Rebuild conf files → Yes

🧩 Conclusion

That’s it!
You’ve successfully updated your VICIdial server IP after restoring a backup from another host.
This method ensures all VICIdial components — database tables, phone configurations, campaigns, and trunks — are correctly updated to your new server IP.


Tags: vicidial, vicibox, call center, asterisk, server migration, how-to

Posted in IP Telephony | Tagged , , , , | Leave a comment

How to Check Linux Version

If you’re managing a Linux server or desktop, knowing which version of the operating system you’re running is essential. Whether you’re troubleshooting, installing compatible software, or updating your system, identifying your Linux version helps you make the right decisions.

In this post, we’ll show you how to check your Linux version in Ubuntu 24.04 (Noble Numbat) and other distributions using simple commands.


🔹 1. Check Ubuntu Version Using /etc/os-release

The most reliable and recommended way to check your Ubuntu version is by viewing the /etc/os-release file.
Run this command in your terminal:

cat /etc/os-release

Example output:

PRETTY_NAME="Ubuntu 24.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.2 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo

From this output, you can clearly see that the system is running:

Ubuntu 24.04.2 LTS (Noble Numbat)

This file also provides links to Ubuntu’s homepage, support, and bug report resources.


🔹 2. Check Version Using the lsb_release Command

If lsb-release is installed, you can use this simple command:

lsb_release -a

Example output:

Distributor ID: Ubuntu
Description:    Ubuntu 24.04.2 LTS
Release:        24.04
Codename:       noble

This method gives you the distribution name, release version, and codename in a clean format.

💡 Tip: If you get “command not found,” install it using
sudo apt install lsb-release -y


🔹 3. Check Kernel Version

To check the Linux kernel version, use:

uname -r

Example output:

6.8.0-35-generic

You can also use this command for more details about your system:

uname -a

🔹 4. Check Version Using hostnamectl

If you’re using a system with systemd, another easy way is:

hostnamectl

Example output:

Operating System: Ubuntu 24.04.2 LTS
Kernel: Linux 6.8.0-35-generic
Architecture: x86-64

This command also shows information about your kernel, architecture, and hostname.


✅ Conclusion

Checking your Linux version is simple but extremely useful for system management, compatibility checks, and software installation.

For Ubuntu 24.04 and other Debian-based distributions, the /etc/os-release file provides the most accurate and detailed information.


📌 Quick Summary:

CommandPurpose
cat /etc/os-releaseShows full OS information
lsb_release -aDisplays version and codename
uname -rShows Linux kernel version
hostnamectlShows OS, kernel, and architecture

Tags: Ubuntu 24.04, Linux Commands, System Administration, Noble Numbat, DevOps, Linux Basics

Posted in Linux | Tagged , , , , , , , , , , , , , , , , , , , | Leave a comment

How to Check Disk Usage in Ubuntu 24.04 Server

Keeping an eye on your server’s disk usage is an essential part of system administration. Running out of disk space can cause application crashes, database corruption, and other serious problems.
In this guide, we’ll cover several ways to check disk usage on an Ubuntu 24.04 Server, from quick commands to interactive tools.


🔹 1. Check Overall Disk Usage

The simplest way to view disk usage is by using the df command:

df -h

What it does:

  • df displays information about the file system’s disk space usage.
  • The -h flag shows sizes in a human-readable format (MB/GB).

Example output:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   10G   38G  21% /
tmpfs           1.9G     0  1.9G   0% /dev/shm

This gives a quick overview of all mounted partitions and how much space is used and available.


🔹 2. Check Disk Usage by Directory

If you want to see which directories are consuming the most space, use:

du -sh /*

Explanation:

  • du stands for “disk usage”.
  • -s summarizes each directory’s total.
  • -h makes the output human-readable.

You’ll get a list of directories (like /var, /home, /usr, etc.) along with their total sizes.


🔹 3. Find the Largest Directories or Files

To quickly locate what’s eating up space, you can combine du with sort:

du -h / | sort -rh | head -n 10

This command lists the top 10 largest directories starting from the root (/).
You can also use it on a specific folder, for example:

du -h /var | sort -rh | head -n 10

🔹 4. Use an Interactive Disk Usage Viewer (Recommended)

For an easy, interactive way to browse disk usage, install ncdu:

sudo apt install ncdu -y
sudo ncdu /

Use the arrow keys to navigate through directories and identify which ones are taking up the most space.
This tool is especially useful on servers without a GUI.


🔹 5. Check Usage of a Specific Filesystem

If you just want to check how much space a specific mount point (like /home) is using:

df -h /home

💡 Bonus Tip: Set Up Disk Usage Alerts

You can automate disk monitoring by setting up email or script-based alerts when disk usage crosses a certain limit. This helps prevent system downtime and keeps your server running smoothly.


✅ Final Thoughts

Monitoring disk usage is a simple yet crucial habit for server health. Whether you prefer basic commands like df and du or interactive tools like ncdu, Ubuntu 24.04 offers everything you need to stay in control of your storage space.


Tags: Ubuntu 24.04, Linux Server, Disk Management, System Administration, DevOps

Posted in Linux | Tagged , , , , , , , , , , , , , | Leave a comment

How to install Wireguard on Vicidial 11

Vicidial 11 is installed on openSUSE Leap 15 .

Let’s go step-by-step to install WireGuard on openSUSE Leap 15, openSUSE uses zypper .


🧩 Step 1: Update your system

Run this first:

sudo zypper refresh
sudo zypper update -y

⚙️ Step 2: Install WireGuard package

WireGuard is included in the Kernel:HEAD or official repositories from Leap 15.2+.

Try installing directly:

sudo zypper install wireguard-tools

If you get an error (package not found), add the correct repository:

For openSUSE Leap 15.x:

sudo zypper addrepo https://download.opensuse.org/repositories/network:utilities/openSUSE_Leap_15.5/network:utilities.repo
sudo zypper refresh
sudo zypper install wireguard-tools

(Replace 15.5 with your actual version if needed — check with cat /etc/os-release.)


🔑 Step 3: Generate WireGuard keys

sudo mkdir -p /etc/wireguard
cd /etc/wireguard
sudo umask 077
sudo wg genkey | tee privatekey | wg pubkey > publickey

🧾 Step 4: Create the WireGuard configuration file

Create /etc/wireguard/wg0.conf:

sudo nano /etc/wireguard/wg0.conf

Add the following (example for server):

[Interface]
Address = 10.10.20.1/24
ListenPort = 51820
PrivateKey = <server-private-key>

# NAT rules (optional for internet routing)
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Replace:

  • eth0 with your WAN interface (ip a will show it)
  • <server-private-key> with content from /etc/wireguard/privatekey

👥 Step 5: Add a peer (client)

Add this block to wg0.conf for each client:

[Peer]
PublicKey = <client-public-key>
AllowedIPs = 10.10.20.2/32

📡 Step 6: Enable IP forwarding

Enable forwarding permanently:

sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf

🔥 Step 7: Allow WireGuard in firewall

For firewalld (default in openSUSE):

sudo firewall-cmd --permanent --add-port=51820/udp
sudo firewall-cmd --reload

For SuSEfirewall2 (older versions):

sudo yast firewall

→ Add UDP port 51820 under “Allowed Services”.


🚀 Step 8: Start and enable WireGuard

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

Check status:

sudo systemctl status wg-quick@wg0

✅ Step 9: Verify connection

Run:

sudo wg

You’ll see your interface and peers.


💡 Optional: Client example

Example client /etc/wireguard/wg0.conf:

[Interface]
Address = 10.10.20.2/24
PrivateKey = <client-private-key>

[Peer]
PublicKey = <server-public-key>
Endpoint = <server-public-ip>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Working Example as Vicidial as client

[Interface]
PrivateKey = KLqd0EmF48k8ij44UZnFUnABGGpoIqINDcjN+3Zs4XU=
Address = 10.34.203.3/32

[Peer]
PublicKey = WV+3XLuwHoRe4ivRiBoC8d2UjVqQSnfW53PCA9k0=
AllowedIPs = 10.34.203.0/24, 172.16.60.0/24
Endpoint = 11.11.11.11:13231

Then start on the client:

sudo wg-quick up wg0

start on reboot

crontab -e

@reboot /etc/wireguard/wg0.conf
@reboot /etc/wireguard/keepalive.sh

vicibox11:~ # cat /etc/wireguard/keepalive.sh
#!/bin/bash

TARGET="10.34.202.1"   # replace with your WireGuard peer IP

while true; do
    ping -c 10 $TARGET
    sleep 60
done

Done!
WireGuard is now running on your openSUSE Leap 15 VICIdial server.

Posted in Linux, Vicidial | Tagged , , , , , , , , , , | Leave a comment

How to Connect Your Telco SIP/PRI to a Cloud PBX (Azure/AWS/Datacenter)

How to Connect Your Telco SIP/PRI to a Cloud PBX (Azure/AWS/Datacenter)

sbc
sbc

In many countries, telecom operators provide SIP trunks as a PSTN replacement service, typically delivered over fiber or wireless links. These SIP trunks are usually bound to a private subnet at customer premises, meaning you cannot directly register them from a Cloud PBX in Azure, AWS, or other datacenters.

So, how can you securely connect your cloud PBX to your provider’s SIP trunk? Let’s explore two practical options.


⚠️ Disclaimer

This post is for informational purposes only. Telecom regulations and licensing differ by country and provider. Always:

  • Verify with your service provider before implementing.
  • Follow your local telecom laws and licensing requirements.
  • Ensure proper security to avoid toll fraud.
  • Kingston IT Solution assumes no liability for misuse or financial loss.

The Problem

Telecom SIP trunks are typically delivered to your premises using a private IP subnet. For example:

  • Telco SBCPrivate SubnetYour Premises

Since your Cloud PBX is not in the same subnet, it cannot directly connect.

📌 Solution: Introduce a bridge between your telco and your Cloud PBX.


Two Possible Options

1. Deploy an SBC (Session Border Controller)

An SBC sits between the telco and your cloud PBX.

Architecture:

  • Telco SIPSBC (private side)
  • SBC ⇄ Cloud PBX (public IP or VPN)

Features of SBCs:

  • SIP normalization
  • TLS/SRTP encryption
  • Topology hiding
  • Call admission control
  • DoS/DDoS protection

Pros: Enterprise-grade, reliable, telco-approved.
Cons: Costly and requires expertise.


2. Use an Asterisk Server as a Mediator

The cost-effective approach is to use Asterisk on-premises as a B2BUA (Back-to-Back User Agent).

Architecture:

  • Telco SIPAsterisk (private side)
  • Asterisk ⇄ Cloud PBX (public IP or VPN)

Benefits:

  • Low-cost, flexible, quick to deploy
  • Acts as signaling and media bridge
  • Supports SIP-TLS, SRTP, and ACLs

Pros: Budget-friendly, easy to set up
Cons: Needs strong security hardening

Security Checklist ✅

No matter which option you use, implement these protections:

  • Restrict SIP access by IP allowlists
  • Strong SIP passwords (disable guest access)
  • Use SIP-TLS + SRTP whenever possible
  • GeoIP firewall rules (block unused regions)
  • Outbound dialing restrictions (avoid premium/international fraud)
  • Fail2ban or IDS to block SIP scanners
  • Call rate limits and monitoring alerts

Network Paths to Cloud PBX

You can connect your Cloud PBX to your premises in three ways:

  1. Public IP with ACLs — Lock down access to specific IPs.
  2. Site-to-Site VPN — IPSec/WireGuard tunnel.
  3. Private connectivity — MPLS, ExpressRoute, or AWS Direct Connect.

Call Flow Example (Asterisk Mediator)

  1. Telco SBC → Asterisk (private LAN)
  2. Asterisk → Trunk to Cloud PBX
  3. Cloud PBX → Extension anywhere (softphone, IP phone, WebRTC)
  4. Outbound calls → Cloud PBX → Asterisk → Telco

Final Thoughts

  • SBC: Best for enterprises needing compliance and high-scale features.
  • Asterisk: Perfect for SMBs that want a secure and affordable bridge.

At Kingston IT Solution, we help businesses design SIP trunk connectivity to Cloud PBX solutions—whether on Azure, AWS, or hybrid datacenters.


Call to Action

👉 Need help bridging your SIP trunk to the cloud? Contact Kingston IT Solution today.

Posted in IP Telephony | Tagged , , , , , , , , , , , , , , , , , , | Leave a comment

Connect Your Offices with VPN | Kingston IT Solution | Secure Cloud Router Services

Kingston IT Solution helps businesses connect their branch offices securely using VPN solutions. Whether you have a public IP or not, our cloud router services make it easy to connect your offices and run all your applications smoothly.

✅ Access your office applications from anywhere:

  • Tally | Marg | Busy | ERP Systems
  • Biometric Attendance Systems
  • IP Phones & Communication Systems
  • Web-based Applications

With our secure VPN connectivity, your teams can work as if they are in the same office – fast, reliable, and secure.

📞 Contact us today to know how we can set up VPN connectivity for your business.

🌐 Visit: kingstonits.com


Posted in Mikrotik, Network | Tagged , , , , , , , , , , , , , , , , , , , , , , , | 1 Comment

Secure Office-to-Office VPN | Connect Your Business Anywhere

Connect your offices over the internet securely with our encrypted VPN tunnel. Even without a public IP, our Cloud MikroTik Router provides safe office-to-office communication. Run all your applications—Tally, Busy, ERP, IP PBX, phones, biomatrix attendance & web servers—just like MPLS.

Posted in Mikrotik, Network | Tagged , , , , , , , , , , , , , , , | Leave a comment

How to Delete Issabel Call Recording Files

Issabel PBX, a popular open-source Unified Communication solution, saves call recordings in the directory /var/spool/asterisk/monitor/. Over time, these call recordings can consume significant disk space, leading to storage issues. To ensure your server continues to operate efficiently, it is necessary to manage and delete old or unnecessary call recordings periodically.

This article explains how to locate and delete Issabel call recording files safely.

1. Understanding the Default Location

By default, Issabel PBX stores all call recordings in the following directory:

/var/spool/asterisk/monitor/

Within this folder, call recordings are often saved with filenames containing the call date, time, and extension number. For example:

exten-101-107-20241211-122032-1733899832.3410.wav

Continue reading

Posted in IP Telephony | Tagged | Leave a comment

How to Create IVR Prompt Audio Files Using Online Tools

Interactive Voice Response (IVR) systems are essential for businesses looking to automate customer interactions. A professional and clear IVR prompt ensures that customers can navigate options effectively. If you already have a WAV file for your IVR prompts, you might need to convert it into a specific format compatible with your VoIP system or if you dont have wav files you can create using website Text to WAV converter  https://www.narakeet.com/create/text-to-wav.html .

In this article, we’ll guide you through creating and converting IVR prompt audio files using two online tools: g711.org and 3CX Audio Converter.


Step 1: Understanding IVR Prompt Requirements

Before we dive into the tools, it’s important to understand that most IVR systems require audio files in a specific format. Common formats include:

  • G.711 u-law (ULAW) or G.711 a-law (ALAW) codecs
  • 8 kHz sample rate
  • Mono channel (not stereo)

Having audio in the correct format ensures compatibility with VoIP systems, such as Asterisk, FreePBX, Grandstream, or 3CX.

If your existing IVR audio files are not in this format, you’ll need to convert them.

Continue reading

Posted in IP Telephony | Tagged , | Leave a comment