# Asterisk 22 LTS compilado a partir do fonte oficial. # Debian não distribui mais o pacote `asterisk` em seus repositórios, então # compilamos aqui com controle total dos módulos: PJSIP (chan_sip não existe # mais a partir do Asterisk 21), AMI, ARI, Realtime ODBC (Postgres), CDR, CEL. FROM debian:trixie-slim ARG ASTERISK_VERSION=22.10.1 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential wget ca-certificates git subversion patch \ pkg-config autoconf automake libtool \ libxml2-dev libsqlite3-dev uuid-dev libjansson-dev libedit-dev \ unixodbc unixodbc-dev odbc-postgresql \ libsrtp2-dev libssl-dev libncurses-dev libnewt-dev \ libspeex-dev libspeexdsp-dev libogg-dev libvorbis-dev \ libcurl4-openssl-dev libsystemd-dev gettext-base \ odbc-postgresql \ && rm -rf /var/lib/apt/lists/* WORKDIR /usr/src RUN wget -q "https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-${ASTERISK_VERSION}.tar.gz" \ && tar xzf asterisk-${ASTERISK_VERSION}.tar.gz \ && rm asterisk-${ASTERISK_VERSION}.tar.gz \ && mv asterisk-${ASTERISK_VERSION} asterisk WORKDIR /usr/src/asterisk # Instala dependências adicionais específicas da distro (detectadas pelo # próprio script oficial do Asterisk) sem prompts interativos. RUN contrib/scripts/install_prereq install --yes || true RUN ./configure --with-jansson-bundled --with-pjproject-bundled --with-crypto --with-ssl=ssl RUN make menuselect.makeopts \ && menuselect/menuselect \ --enable res_odbc \ --enable res_config_odbc \ --enable cdr_odbc \ --enable cdr_pgsql \ --enable cel_odbc \ --enable cel_pgsql \ --enable app_queue \ --enable res_pjsip \ --enable res_pjsip_session \ --enable res_ari \ --enable res_ari_applications \ --enable res_ari_channels \ --enable res_ari_bridges \ --enable CORE-SOUNDS-EN-WAV \ --enable MOH-OPSOUND-WAV \ menuselect.makeopts RUN make -j"$(nproc)" RUN make install RUN make samples RUN ldconfig RUN groupadd -r asterisk && useradd -r -g asterisk -d /var/lib/asterisk asterisk \ && mkdir -p /etc/asterisk /var/lib/asterisk /var/log/asterisk /var/spool/asterisk /var/run/asterisk \ && chown -R asterisk:asterisk /etc/asterisk /var/lib/asterisk /var/log/asterisk /var/spool/asterisk /var/run/asterisk /usr/lib/asterisk EXPOSE 5060/udp 5060/tcp 5061/tcp 8088/tcp 8089/tcp 5038/tcp EXPOSE 10000-20000/udp COPY infrastructure/docker/asterisk-entrypoint.sh /usr/local/bin/asterisk-entrypoint.sh RUN chmod +x /usr/local/bin/asterisk-entrypoint.sh ENTRYPOINT ["/usr/local/bin/asterisk-entrypoint.sh"] CMD ["asterisk", "-f", "-vvv", "-U", "asterisk", "-G", "asterisk"]