alpine-2.6-11.6.1 | ||
alpine-2.7-11.x | ||
alpine-3.6-14.x | ||
alpine-3.7-15.x | ||
alpine-3.8-15.x | ||
alpine-edge | ||
alpine-latest | ||
debian-jessie-slim-10.12.4 | ||
debian-jessie-slim-11.25.3 | ||
debian-jessie-slim-12.8.2 | ||
debian-stretch-slim-13-current | ||
debian-stretch-slim-14-current | ||
debian-stretch-slim-15-current | ||
debian-stretch-slim-16.0.0-rc3 | ||
build.sh | ||
check-docker-hub.sh | ||
LICENSE | ||
README.md |
Asterisk PBX Docker image
The smallest Docker image with Asterisk PBX https://hub.docker.com/r/andrius/asterisk/
This image is based on Alpine Linux image, which is only a 5MB image, and contains Asterisk PBX.
Total size of this image for latest
tag (based on Alpine linux) is:
And for debian-stretch-slim-15-current
.
Custom UID/GID
By default, Asterisk will run as default user (asterisk) with UID and GID assigned by alpine linux, but it's possible to specify then through environment variables:
ASTERISK_UID
ASTERISK_GID
(note, GID is not supported in debian releases)
Default asterisk user will be re-created with new UID and GID
In given example, ID's of current host user will be used to start, that will fix permissions issues on logs volume:
docker run -ti --rm \
-e ASTERISK_UID=`id -u` \
-e ASTERISK_GID=`id -g` \
-v ${PWD}/logs:/var/log/asterisk \
andrius/asterisk
Alternative user
It is possible to specifty other than asterisk user to start through environment variable ASTERISK_USER
:
docker run -ti --rm -e ASTERISK_USER=root andrius/asterisk
Versions
Based on Alpine linux:
docker pull andrius/asterisk:11.6.1
for Asterisk 11.x (stable release), Alpine 2.6docker pull andrius/asterisk:11
for Asterisk 11.x (stable release), Alpine 2.7docker pull andrius/asterisk:14
for Asterisk 14.x, Alpine 3.6docker pull andrius/asterisk:15.2.2
for Asterisk 15.2.2, Alpine 3.7docker pull andrius/asterisk:15
for Asterisk 15.x, Alpine 3.8docker pull andrius/asterisk:latest
for Asterisk 15.x, Alpine latestdocker pull andrius/asterisk:edge
for latest Asterisk 15.x, based on Alpine edge
What's missing
Only base Asterisk packages installed. If you want to add sounds, it's recommended to mount them as volume or data container, however you may install additional packages with apk
command:
- asterisk-alsa - ALSA channel;
- asterisk-cdr-mysql - MySQL CDR;
- asterisk-chan-dongle - chan_dongle, to manage calls and SMS through Huawei USB dongle;
- asterisk-curl - curl integration with Asterisk;
- asterisk-dahdi - DAHDI channel (ISDN BRI/PRI, FXO and FXS cards integration);
- asterisk-fax - support faxing
- asterisk-mobile - Use Bluetooth mobile phones as FXO devices;
- asterisk-odbc - ODBC support;
- asterisk-pgsql - PostgreSQL support;
- asterisk-sounds-en - sounds
- asterisk-sounds-moh - music on hold;
- asterisk-speex - Speex codec;
- asterisk-srtp - SRTP encryption;
- asterisk-tds - MS SQL support.
Database support
By default, Asterisk PBX store CDR's to the CSV file, but also support databases. Refer Asterisk PBX documentation for ODBC support.
For Postgre SQL include following lines to your Dockerfile:
RUN apk add --update less psqlodbc asterisk-odbc asterisk-pgsql \
&& rm -rf /var/cache/apk/*
And For MySQL:
For MySQL, mysql-connector-odbc
should be downloaded from the official site and compiled
Based on Debian linux:
Debian Jessie:
docker pull andrius/asterisk:debian-11.25.3
docker pull andrius/asterisk:debian-12.8.2
Debian Stretch:
docker pull andrius/asterisk:debian-13-current
docker pull andrius/asterisk:debian-14-current
docker pull andrius/asterisk:debian-15-current