#!/bin/bash set -e PATH=/usr/local/bin:$PATH case $CLOUD in gcp) LOCAL_IP=$(curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip) PUBLIC_IP=$(curl -s -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip) ;; aws) LOCAL_IP=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4) PUBLIC_IP=$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4) ;; scaleway) LOCAL_IP=$(curl -s --local-port 1-1024 http://169.254.42.42/conf | grep PRIVATE_IP | cut -d = -f 2) PUBLIC_IP=$(curl -s --local-port 1-1024 http://169.254.42.42/conf | grep PUBLIC_IP_ADDRESS | cut -d = -f 2) ;; digitalocean) LOCAL_IP=$(curl -s http://169.254.169.254/metadata/v1/interfaces/private/0/ipv4/address) PUBLIC_IP=$(curl -s http://169.254.169.254/metadata/v1/interfaces/public/0/ipv4/address) ;; azure) LOCAL_IP=$(curl -H Metadata:true "http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/privateIpAddress?api-version=2017-08-01&format=text") PUBLIC_IP=$(curl -H Metadata:true "http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2017-08-01&format=text") ;; *) ;; esac if [ -n "$PUBLIC_IP" ]; then MY_IP="$LOCAL_IP"!"$PUBLIC_IP" elif [ -n "$LOCAL_IP" ]; then MY_IP="$LOCAL_IP" else MY_IP=$(hostname -I | cut -f1 -d' ') LOCAL_IP="$MY_IP" fi sed -i -e "s:\(interface=.*\)MY_IP:\1$MY_IP:g" rtpengine.conf sed -i -e "s/MY_IP/$LOCAL_IP/g" rtpengine.conf if [ "$1" = 'rtpengine' ]; then shift exec rtpengine --config-file rtpengine.conf "$@" fi exec "$@"