Previously we have successfully installed the Freeswitch. In this blog/tutorial we will learn about Freeswitch configurations, the conf directory structure, and the meaning of different files.

config gif

Freeswitch stores all its configuration in the conf folder (/usr/local/freeswitch/conf)

All the Freeswitch XML files for configuration. By, default Freeswitch installs the vanilla configuration for all the modules with minimal settings enable and a lot of comments about each variable.

Let's have a look at the directory structure of the conf folder

In this blog/tutorial we will learn how to install Freeswitch on an Ubuntu virtual machine. The steps for Freeswitch installation will be almost the same for the supported OS. So let's get your hand dirty.

Note: You can use any VM, a dedicated machine, or any cloud service(AWS, GCP, Azure). I will be using ubuntu 21.04 running on a Vmware workstation with base OS Windows 10.

You can use the precompiled package but compiling from source provides full control over the Freeswitch.

Freeswitch source code is available at Github signalwire/freeswitch

Source code overview

Freeswitch is written in C/C++ and uses cmake for compilation…

If you are working in VOIP / Telecom domain you might have heard and worked on software likes Asterisk, Opensips, Kamailio, etc. All these are used to develop and build VOIP services and are heavily used in the telecommunication domain. If we look at some voice/video chat applications like Skype, Zoom, WhatsApp, Viber they all use some sort of VoIP stack in the backend.


Freeswitch is a software that provides a fully configurable and customizable telecom stack for modern application

Freeswitch is open-source software that provides a production-grade telecom stack that has many applications like PBX, CallCenter Application, Sip Proxy…

This is a series of blogs/tutorials that are created with the sole purpose of sharing my knowledge of Freeswitch.

Freeswitch 101

We will start from stratch …

- Basic knowledge of Networking, SIP/VOIP (better to have but not compulsory)
- Basic experience with Linux (we will use ubuntu in this series)
- Finally, eagerness to learn new things


  1. What is Freeswitch?
  2. Installing Freeswitch on Ubuntu

New things are coming soon …


Every application uses string data type whether it is written in Go, NodeJS, or any other language. Almost every language provides multiple ways of manipulating string.

GoLang has methods like strings.ReplaceAll() , fmt.Sprintf() and simple concatination (+)

Let's See which one is the fastest of all.

Make sure you have GoLang installed, I am using the Go version

Let's create a test package and a test file (any_test.go)

Let's benchmark strings.ReplaceAll() first.

Go (also known as Golang or Go language) is the language developed by Google. Go is an open-source, statically-typed compiled, and explicit programming language. According to Google Developers, Go is a dependable and efficient programming language. Golang also comes with a great debugging tool name Delve.

Let's Go…

Delve comes with an inbuilt client and sever debugger which can be used to debug complex codebase on the go without recompiling and executing a binary. …

Today we are going to learn the basics of developing gRPC based service by creating a simple example login service using NodeJS, and Express.

gRPC Remote Procedure Calls

What is gRPC?

gRPC is an open Source RPC (Remote Procedure Call)framework developed by Google. In the world of REST API, the first question that comes to mind why use gRPC when we have REST API, It is easy to build, It supports many data formats, it is stateless. But when we talk about the microservices architecture, load balancing, high scalability, low latency between service interfaces gRPC comes forward as a better option than REST.

With gRPC, we can…

Recently, I got a use case where I need to submit jobs to AWS Batch in Golang. There are not many examples available online, So I am sharing some insights on it.

GoLang is a popular language for the development of high performance and highly scalable systems.


AWS batch is a very effective and efficient way to run batch computing jobs and decrease the total computational load from your application. AWS Batch plans, schedules, and executes your batch computing workloads across the full range of AWS compute services and features, such as Amazon EC2 and Spot Instances.

Chetan Pandey

A Software Engineer from New Delhi, India with interests in Data Science, GoLang, NodeJS, Python Development, Microservices, APIs, VOIP, Neural Networks, UI/UX

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store