Using the fs_cli tool again after setting an ESL password
Category Archives: FreeSWITCH
HOMER API in Python
Interacting with Homer SIP capture vai the API
Sangoma Transcoding Cards Setup
Updated documentation for managing D150 transcoding cards
Get all the FreeSWITCH Folder Paths
A simple trick to find all the system paths used in FreeSWITCH
CGrates – FreeSWITCH Interaction
Linking FreeSWITCH and CGrates for realtime credit control and billing
FreeSWITCH mod_python3 – Python Dialplans
Using Python3 inside the FreeSWITCH Dialplan
FreeSWITCH – Incompatible Destination
A quick look at a possible cause for “INCOMPATIBLE DESTINATION” errors in FreeSWITCH.
FreeSWITCH, Kamailio & IMS Extensions
Recently I’ve been doing some work with FreeSWITCH as an IMS Conference Factory, I’ve written a bit about it before in this post on using FreeSWITCH with the AMR codec.
Pretty early on in my testing I faced a problem with subsequent in-dialog responses, like re-INVITEs used for holding the calls.
Every subsequent message, was getting a “420 Bad Extension” response from FreeSWITCH.


So what didn’t it like and why was FreeSWITCH generating 420 Bad Extension Responses to these subsequent messages?
Well, the “Extensions” FreeSWITCH is referring to are not extensions in the Telephony sense – as in related to the Dialplan, like an Extension Number to identify a user, but rather the Extensions (as in expansions) to the SIP Protocol introduced for IMS.
The re-INVITE contains a Require header with sec-agree which is a SIP Extension introduced for IMS, which FreeSWITCH does not have support for, and the re-INVITE says is required to support the call (Not true in this case).
Using a Kamailio based S-CSCF means it is easy to strip these Headers before forwarding the requests onto the Application Server, which is what I’ve done, and bingo, no more errors!
FreeSWITCH as an IMS Application Server
Using FreeSWITCH as an IMS Application Server
Originating calls in FreeSWITCH
Starting calls from FreeSWITCH
HTTP PUT call recordings from FreeSWITCH
Using mod_httpapi to HTTP POST call recordings to a remote server
Adding support for AMR Codec in FreeSWITCH
Adding support for AMR Codec in FreeSWITCH