Stefan Weil 6609ce9510 Fix some typos (most found by codespell) | 4 سال پیش | |
---|---|---|
.. | ||
Dockerfile | 7 سال پیش | |
README.md | 3 سال پیش | |
docker-entrypoint.sh | 3 سال پیش | |
freeswitch-config.patch | 7 سال پیش | |
healthcheck.sh | 7 سال پیش | |
make_min_archive.sh | 7 سال پیش | |
sounds_version.txt | 7 سال پیش |
This is minimized official FreeSwitch docker container. Container designed to run on host network. Size of container decreased to 120MB (54MB compressed) Significantly increased security: 1) removed all libs except libc, busybox, freeswitch and dependent libs. 2) removed 'system' API command from vanila config 3) updated FreeSwitch default SIP password to random value
1) SOUND_RATES
- rates of sound files that must be downloaded and installed. Available values 8000
, 16000
, 32000
, 48000
. May defined multiply values using semicolon as delimiter. Example SOUND_RATES=8000:16000
;
2) SOUND_TYPES
- types of sound files that must be downloaded and installed. Available values music, en-us-callie
, en-us-allison
, ru-RU-elena
, en-ca-june
, fr-ca-june
, pt-BR-karina
, sv-se-jakob
, zh-cn-sinmei
, zh-hk-sinmei
. Example SOUND_TYPES=music:en-us-callie
;
3) EPMD
- start epmd daemon, useful when you use mod_erlang and mod_kazoo FreeSwitch modules. Available values true
, false
.
1) Creating volume for sound files. This may be skipped if you not use freeswitch MOH and other sound files.
docker volume create --name freeswitch-sounds
2) Stating container
docker run --net=host --name freeswitch \
-e SOUND_RATES=8000:16000 \
-e SOUND_TYPES=music:en-us-callie \
-v freeswitch-sounds:/usr/share/freeswitch/sounds \
-v /etc/freeswitch/:/etc/freeswitch \
safarov/freeswitch
You can use this systemd unit file on your hosts.
$ cat /etc/systemd/system/freeswitch-docker.service
[Unit]
Description=freeswitch Container
After=docker.service network-online.target
Requires=docker.service
[Service]
Restart=always
TimeoutStartSec=0
#One ExecStart/ExecStop line to prevent hitting bugs in certain systemd versions
ExecStart=/bin/sh -c 'docker rm -f freeswitch; \
docker run -t --net=host --name freeswitch \
-e SOUND_RATES=8000:16000 \
-e SOUND_TYPES=music:en-us-callie \
-v freeswitch-sounds:/usr/share/freeswitch/sounds \
-v /etc/kazoo/freeswitch/:/etc/freeswitch \
freeswitch'
ExecStop=-/bin/sh -c '/usr/bin/docker stop freeswitch; \
/usr/bin/docker rm -f freeswitch;'
[Install]
WantedBy=multi-user.target
Unit file can be placed to /etc/systemd/system/freeswitch-docker.service
and enabled by command
systemd start freeswitch-docker.service
systemd enable freeswitch-docker.service
To simplify freeswitch management you can add alias for fs_cli
to .bashrc
file as example bellow.
alias fs_cli='docker exec -i -t freeswitch /usr/bin/fs_cli'
This container created from scratch image by addiding required freeswitch files packaged to tar.gz archive. To create custom container: 1) install required FreeSwitch packages. Now supported debian dist
apt-get install freeswitch-conf-vanilla
2) clone freeswitch repo
git clone https://github.com/signalwire/freeswitch.git
3) execute make_min_archive.sh
script
cd freeswitch/docker/base_image
./make_min_archive.sh
4) build custom container
docker build -t freeswitch_custom .