如何创建带有星号 16 的 Docker 容器

How do I create Docker container with asterisk 16

我想创建一个带有星号 16 的 Docker,我可以注册我的 sip 分机,但我什么都不听。

我也可以去8088端口,修改http.conf 我还用

编辑了 rtp.conf
rtpstart=18000
rtpend=18000
[Jun 12 21:25:11] WARNING[60]: chan_sip.c:4119 retrans_pkt: Retransmission timeout reached on transmission OGY2NWY0ODZkZjhlZWRiNzMzOTkxYjhjYmNjMjA4ZTQ. for seqno 2 (Critical Response) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
Packet timed out after 6399ms with no response
[Jun 12 21:25:11] WARNING[60]: chan_sip.c:4143 retrans_pkt: Hanging up call OGY2NWY0ODZkZjhlZWRiNzMzOTkxYjhjYmNjMjA4ZTQ. - no reply to our critical packet (see https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions).
-- Channel SIP/1500-00000005 left 'simple_bridge' basic-bridge <b6ecbabd-22f8-4eef-87fb-18069f13d309>
-- Channel SIP/1500-00000006 left 'simple_bridge' basic-bridge <b6ecbabd-22f8-4eef-87fb-18069f13d309>
== Spawn extension (ejemplo, 1500, 1) exited non-zero on 'SIP/1500-00000005'

Sip.conf

    [1500]
    type=friend
    secret=abc12345
    qualify=yes
    nat=force_rport
    host=dynamic
    canreinvite=no
    context=ejemplo
    disallow=all
    allow=ulaw
    allow=alaw
    allow=gsm

我的docker容器ip是:172.17.0.2

我的Docker文件:

FROM debian:latest
RUN apt -y update && apt -y upgrade && apt -y install git curl wget libnewt-dev libssl-dev libncurses5-dev subversion \
libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev && \
apt-get -y install odbc-postgresql && apt-get -y install libedit-dev && 
apt-get -y install libjansson-dev vim
RUN cd /usr/src && mkdir -p asterisk && curl -O                http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16  current.tar.gz && tar xvfz asterisk-16-current.tar.gz && cd asterisk-16.*/  && ./configure --with-jansson-bundled --with-pjproject-bundled && make menuselect/menuselect menuselect-tree menuselect.makeopts && \
 menuselect/menuselect --disable BUILD_NATIVE \
                         --enable app_confbridge \
                         --enable app_fax \
                         --enable app_macro \
                         --enable codec_opus \
                         --enable codec_silk \
                         --enable BETTER_BACKTRACES \
                         --disable MOH-OPSOUND-WAV \
                         --enable MOH-OPSOUND-GSM \
make && make install && make samples && make config && ldconfig
RUN groupadd asterisk && \
useradd -r -d /var/lib/asterisk -g asterisk asterisk && \
usermod -aG audio,dialout asterisk && \
chown -R asterisk.asterisk /etc/asterisk && \
chown -R asterisk.asterisk /usr/lib/asterisk
RUN touch /etc/asterisk/sip_custom.conf /etc/asterisk/extensions_custom.conf /etc/asterisk/queues_custom.conf && \
echo "#include "sip_custom.conf"" >> /etc/asterisk/sip.conf &&\
echo "#include "extensions_custom.conf"" >> /etc/asterisk/extensions.conf && \
echo "#include "queues_custom.conf"" >> /etc/asterisk/queues.conf && \
echo "pretty = yes" >> /etc/asterisk/ari.conf && \
echo "enabled = yes" >> /etc/asterisk/http.conf && \
echo "bindaddr = 0.0.0.0" >> /etc/asterisk/http.conf
EXPOSE 5060/udp 8088 18000/udp
ENTRYPOINT ["/bin/bash", "-c", "service asterisk start && tail -f /dev/null"]

我运行容器:

docker 运行 -d --rm --name asterisk -p 5060:5060/udp -p 8088:8088 -p 18000:18000/udp ba03a0c54280

不幸的是,一次调用至少需要 2 个端口。

对于两条腿的调用(调用提供商和返回)它已经需要四个端口。

因此您需要更改您的 rtpsettings 并相应地更改 docker。

实际上,如果您对 SIP 的了解为零,运行 sip inside docker 真的是个坏主意。使用一些有经验的人的手册。