BetterVoice / freeswitch-container

This project can be used to deploy a FreeSWITCH server inside a Docker container. The container currently uses the latest stable release version 1.6.x. An effort was made to build many modules so the container can be generic enough to serve many purposes.
https://www.bettervoice.com
237 stars 128 forks source link

freeswitch use private address for rtp ( osx + docker + x-lite ) #9

Open edwinfound opened 6 years ago

edwinfound commented 6 years ago

Environment

OSX: 10.12.2 (16C68)
Docker: Version 17.03.1-ce-mac12 (17661)
freeswitch container: https://hub.docker.com/r/bettervoice/freeswitch-container/

Network

Docker container IP: 172.17.0.2
Docker host IP: 192.168.1.121

Docker setup

docker run -d \
        --name freeswitch \
        -p 5060:5060/tcp \
        -p 5060:5060/udp \
        -p 5066:5066/tcp \
        -p 5080:5080/tcp \
        -p 5080:5080/udp \
        -p 8021:8021/tcp \
        -p 7443:7443/tcp \
        -p 60535-60635:60535-60635/udp \
        -v /my/docker/freeswitch/conf:/usr/local/freeswitch/conf:rw \
        -v /my/docker/freeswitch/default_freeswitch:/etc/default/freeswitch \
        bettervoice/freeswitch-container:1.6.16

Only change the follow settings:

vars.xml

<X-PRE-PROCESS cmd="set" data="external_sip_ip=192.168.1.121"/>
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=192.168.1.121"/>

sip_profiles/internal.xml:

<param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
<param name="ext-sip-ip" value="$${external_sip_ip}"/>

sip_profiles/external.xml:

<param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
<param name="ext-sip-ip" value="$${external_sip_ip}"/>

switch.conf.xml

<param name="rtp-start-port" value="60535"/>
<param name="rtp-end-port" value="60635"/>

default_freeswitch

# /etc/default/freeswitch
DAEMON_OPTS="-rp"

When I call X-Lite A (1000) -> X-Lite B(1001) , it use the private address 172.17.0.2 for rtp address. Actually I want these two X-Lite use 192.168.1.121 for rtp.

Could anyone give me some help ?

thomasquintana commented 6 years ago

The FreeSWITCH instance inside the container will not see the host's IP address. There are a few options: