Public | Automated Build

Last pushed: 8 days ago
Short Description
Basic FreeSWITCH Docker image
Full Description


Dockerfile for running FreeSWITCH in a Docker container.

  • Base image: debian:jessie
  • Exposed ports: None
  • Volumes: None


You should generally run the container with host networking. Something like:

docker run -d --net host --name freeswitch praekeltfoundation/freeswitch

If you want to use FreeSWITCH's CLI, you can use Docker's exec command to connect to the running container:

docker exec -it freeswitch fs_cli


This is NOT a complete FreeSWITCH installation - the Docker image only contains the "meta-vanilla" packages as well as a couple of extra modules. FreeSWITCH is a very large software project with many submodules. We install only the features that we need. Still, this may be a useful starting point for anybody looking to run FreeSWITCH under Docker.

We install the following FreeSWITCH packages:

  • freeswitch-meta-vanilla
  • freeswitch-mod-flite (for text-to-speech)
  • freeswitch-mod-shout (for playing audio from files)


It is not recommended that you use Docker's bridge networking mode for FreeSWITCH as some of the protocols (namely, SIP) make use of a very large number of ports and it is not feasible to forward all of these ports to the host. Instead, consider using Docker's host networking mode or, in Docker 1.9+, the virtual overlay networking mode.


For the most part we use the default "vanilla" configuration that FreeSWITCH installs in /usr/share/freeswitch/conf/vanilla. However, we do override some of the configuration options. The changes are as follows:

  • autoload_configs/console.conf.xml:
    • Disable console colorizing as this seems to break some logging systems.
  • autoload_configs/modules.conf.xml:
    • Disable mod_logfile as the container logs are consumed from stdout/stderr, not a file.
    • Enable mod_h26x for H.263/4 CODEC support.
    • Enable mod_flite.
    • Enable mod_shout.
  • directory/default/
    • This file is renamed to prevent FreeSWITCH from setting up an example (and non-functional) SIP gateway.
Docker Pull Command