Merge pull request #30 from outis1one/claude/asterisk-vpn-mobile-issue-Nt958
Add Opus codec, show management info after Asterisk startup
This commit is contained in:
+15
@@ -24,6 +24,7 @@ RUN echo "exit 101" > /usr/sbin/policy-rc.d && chmod +x /usr/sbin/policy-rc.d &&
|
|||||||
asterisk-modules \
|
asterisk-modules \
|
||||||
openssl \
|
openssl \
|
||||||
curl \
|
curl \
|
||||||
|
wget \
|
||||||
tcpdump \
|
tcpdump \
|
||||||
sngrep \
|
sngrep \
|
||||||
python3 \
|
python3 \
|
||||||
@@ -38,6 +39,20 @@ RUN echo "exit 101" > /usr/sbin/policy-rc.d && chmod +x /usr/sbin/policy-rc.d &&
|
|||||||
&& ldconfig \
|
&& ldconfig \
|
||||||
&& update-ca-certificates 2>/dev/null || true
|
&& update-ca-certificates 2>/dev/null || true
|
||||||
|
|
||||||
|
# Install Opus codec (not included in Ubuntu 24.04 asterisk-modules, bug #2044135)
|
||||||
|
# Download Digium's precompiled codec_opus for Asterisk 20 (Ubuntu 24.04 ships Asterisk 20)
|
||||||
|
RUN MODULES_DIR=$(find /usr/lib -type d -name modules -path "*/asterisk/*" | head -1) && \
|
||||||
|
if [ -z "$MODULES_DIR" ]; then MODULES_DIR="/usr/lib/x86_64-linux-gnu/asterisk/modules"; fi && \
|
||||||
|
mkdir -p "$MODULES_DIR" /var/lib/asterisk/documentation/thirdparty && \
|
||||||
|
cd /tmp && \
|
||||||
|
wget -q "http://downloads.digium.com/pub/telephony/codec_opus/asterisk-20.0/x86-64/codec_opus-20.0_1.3.0-x86_64.tar.gz" -O codec_opus.tar.gz && \
|
||||||
|
tar -xzf codec_opus.tar.gz && \
|
||||||
|
find /tmp -name "codec_opus.so" -exec cp {} "$MODULES_DIR/" \; && \
|
||||||
|
find /tmp -name "format_ogg_opus.so" -exec cp {} "$MODULES_DIR/" \; && \
|
||||||
|
find /tmp -name "codec_opus_config-en_US.xml" -exec cp {} /var/lib/asterisk/documentation/thirdparty/ \; && \
|
||||||
|
rm -rf /tmp/codec_opus* && \
|
||||||
|
echo "Opus codec installed to $MODULES_DIR"
|
||||||
|
|
||||||
# Create required directories
|
# Create required directories
|
||||||
RUN mkdir -p \
|
RUN mkdir -p \
|
||||||
/etc/easy-asterisk \
|
/etc/easy-asterisk \
|
||||||
|
|||||||
+17
-3
@@ -308,7 +308,6 @@ load => chan_pjsip.so
|
|||||||
load => codec_ulaw.so
|
load => codec_ulaw.so
|
||||||
load => codec_alaw.so
|
load => codec_alaw.so
|
||||||
load => codec_g722.so
|
load => codec_g722.so
|
||||||
load => codec_opus.so
|
|
||||||
load => res_rtp_asterisk.so
|
load => res_rtp_asterisk.so
|
||||||
load => app_dial.so
|
load => app_dial.so
|
||||||
load => app_page.so
|
load => app_page.so
|
||||||
@@ -339,6 +338,20 @@ trap cleanup SIGTERM SIGINT
|
|||||||
|
|
||||||
# ── 12. Start Asterisk ───────────────────────────────────────
|
# ── 12. Start Asterisk ───────────────────────────────────────
|
||||||
log_info "Starting Asterisk PBX..."
|
log_info "Starting Asterisk PBX..."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Start Asterisk in the background, then print management info once ready
|
||||||
|
asterisk -f -U asterisk -G asterisk &
|
||||||
|
ASTERISK_PID=$!
|
||||||
|
|
||||||
|
# Wait for Asterisk to be ready (up to 60 seconds)
|
||||||
|
for i in $(seq 1 60); do
|
||||||
|
if asterisk -rx "core show version" >/dev/null 2>&1; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${CYAN}══════════════════════════════════════════════════════════════${NC}"
|
echo -e "${CYAN}══════════════════════════════════════════════════════════════${NC}"
|
||||||
echo -e "${CYAN} Easy Asterisk (Docker)${NC}"
|
echo -e "${CYAN} Easy Asterisk (Docker)${NC}"
|
||||||
@@ -352,9 +365,10 @@ echo -e "${CYAN}─────────────────────
|
|||||||
echo -e " SIP clients connect to: ${GREEN}${DOMAIN_NAME:-$local_ip}:5061${NC} (TLS)"
|
echo -e " SIP clients connect to: ${GREEN}${DOMAIN_NAME:-$local_ip}:5061${NC} (TLS)"
|
||||||
echo -e " Web Admin: ${GREEN}http://${local_ip}:${WEB_ADMIN_PORT:-8080}/clients${NC}"
|
echo -e " Web Admin: ${GREEN}http://${local_ip}:${WEB_ADMIN_PORT:-8080}/clients${NC}"
|
||||||
echo -e "${CYAN}──────────────────────────────────────────────────────────────${NC}"
|
echo -e "${CYAN}──────────────────────────────────────────────────────────────${NC}"
|
||||||
echo -e " Management: docker exec -it easy-asterisk easy-asterisk"
|
echo -e " Management: ${YELLOW}docker exec -it easy-asterisk easy-asterisk${NC}"
|
||||||
echo -e " Diagnostics: docker exec -it easy-asterisk vpn-diagnostics"
|
echo -e " Diagnostics: docker exec -it easy-asterisk vpn-diagnostics"
|
||||||
echo -e "${CYAN}══════════════════════════════════════════════════════════════${NC}"
|
echo -e "${CYAN}══════════════════════════════════════════════════════════════${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
exec asterisk -f -U asterisk -G asterisk
|
# Wait for Asterisk process (keeps container running)
|
||||||
|
wait $ASTERISK_PID
|
||||||
|
|||||||
Reference in New Issue
Block a user