FROM docker.io/library/alpine:3.24 # Asterisk 22 (the LTS branch), PJSIP included: Alpine bundles pjproject in the # main package. dnsmasq serves the provisioning files of the phones over TFTP, # and the httpd of busybox-extras their directory over HTTP, from the same # image, so that a single build keeps all three up to date. RUN apk add --no-cache asterisk dnsmasq busybox-extras # busybox httpd sends no Content-Type for .xml files without this line, and # the XML services of the phones expect text/xml. RUN printf '.xml:text/xml; charset=utf-8\n' > /etc/httpd.conf # /etc/asterisk is empty: the sample files are in asterisk-sample-config, which # is not installed. The configuration is mounted read-only there at run time. # SIP signalling. RTP uses 10000-10999/udp, as set in rtp.conf. EXPOSE 5060/udp ENTRYPOINT [ "/usr/sbin/asterisk" ] CMD [ "-f", "-n", "-vv" ]