pespin has submitted this change. (
https://gerrit.osmocom.org/c/docker-playground/+/37125?usp=email )
Change subject: ttcn3-asterisk: Add extra IP addr in ttcn3 docker for IMS Core
......................................................................
ttcn3-asterisk: Add extra IP addr in ttcn3 docker for IMS Core
TTCN-3 docker container is emulating both the SIP UAs and the IMS Core.
So far all the components being emulated there were running under the
only local IP address available in the docker container.
This means, both the SIP UAs and the IMS Core were using the same IP
address.
This is actually causing problems for Asterisk, since on the VoLTE side
it needs to be configured to identify the endpoint based on the IMS Core
domain name.
Since the default identify matching ordered in Asterisk is:
"endpoint_identifier_order=ip,username,anonymous"
That means it always first checks the source IP address, which means
messages coming from local SIP UAs are misunderstood to be coming from
the IMS Core (since
ims.mnc001.mcc238.3gppnetwork.org resolves to same
IP address).
The issue can be fixed by swapping the order to "username,ip", because
then the well-known 50X extensions are matched before attempting to
match by IP address.
However, this is all deviating config for the expected usual network
configuration, since the local IP network will be different than the IP
address coming from VoLTE.
Hence, let's instead properly separate the local SIP and VoLTE networks
with different IP addresses, which then solves the issue.
Change-Id: I6e5a261748ec61bb1cfa4aafee8c748d0f46aa9e
---
M ttcn3-asterisk-ims-ue-test/Asterisk_Tests.cfg
M ttcn3-asterisk-ims-ue-test/asterisk/asterisk.sh
M ttcn3-asterisk-ims-ue-test/asterisk/pjsip.conf
M ttcn3-asterisk-ims-ue-test/dnsmasq/dnsmasq.conf
M ttcn3-asterisk-ims-ue-test/jenkins.sh
A ttcn3-asterisk-ims-ue-test/ttcn3.sh
6 files changed, 71 insertions(+), 12 deletions(-)
Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
diff --git a/ttcn3-asterisk-ims-ue-test/Asterisk_Tests.cfg
b/ttcn3-asterisk-ims-ue-test/Asterisk_Tests.cfg
index a7576e6..35eb420 100644
--- a/ttcn3-asterisk-ims-ue-test/Asterisk_Tests.cfg
+++ b/ttcn3-asterisk-ims-ue-test/Asterisk_Tests.cfg
@@ -9,7 +9,7 @@
Asterisk_Tests_LOCAL_SIP_EMU.SIP.local_sip_port := "5061"
Asterisk_Tests_LOCAL_SIP_EMU.SIP.default_dest_address := "172.18.11.10"
Asterisk_Tests_LOCAL_SIP_EMU.SIP.default_dest_port := "5094"
-Asterisk_Tests_IMS_SIP_EMU.SIP.default_local_address := "172.18.11.103"
+Asterisk_Tests_IMS_SIP_EMU.SIP.default_local_address := "172.18.11.104"
Asterisk_Tests_IMS_SIP_EMU.SIP.local_sip_port := "5060"
# Disabled for Server mode:
#Asterisk_Tests_IMS_SIP_EMU.SIP.default_dest_address := "172.18.11.10"
@@ -20,7 +20,7 @@
Asterisk_Tests.mp_remote_sip_host := "172.18.11.10"
Asterisk_Tests.mp_local_sip_port := 5061
Asterisk_Tests.mp_remote_sip_port := 5094
-Asterisk_Tests.mp_local_ims_host := "172.18.11.103"
+Asterisk_Tests.mp_local_ims_host := "172.18.11.104"
Asterisk_Tests.mp_local_ims_port := 5060
Asterisk_Tests.mp_ims_domain := "ims.mnc001.mcc238.3gppnetwork.org"
Asterisk_Tests.mp_ims_imsi := "238010000090828"
diff --git a/ttcn3-asterisk-ims-ue-test/asterisk/asterisk.sh
b/ttcn3-asterisk-ims-ue-test/asterisk/asterisk.sh
index 0629e20..fb5e82e 100755
--- a/ttcn3-asterisk-ims-ue-test/asterisk/asterisk.sh
+++ b/ttcn3-asterisk-ims-ue-test/asterisk/asterisk.sh
@@ -2,10 +2,14 @@
set +e
set -x
-ASTERISK_CFG_PATH="/etc/asterisk"
-DNSMASQ_IPADDR="172.18.11.200"
+if [[ -z "${DNS_IPADDR}" ]]; then
+ echo "env var DNS_IPADDR undefined!"
+ exit 1
+fi
-echo "nameserver $DNSMASQ_IPADDR" > /etc/resolv.conf
+ASTERISK_CFG_PATH="/etc/asterisk"
+
+echo "nameserver $DNS_IPADDR" > /etc/resolv.conf
#rm -rf "${ASTERISK_CFG_PATH}"
#mkdir -p "${ASTERISK_CFG_PATH}"
diff --git a/ttcn3-asterisk-ims-ue-test/asterisk/pjsip.conf
b/ttcn3-asterisk-ims-ue-test/asterisk/pjsip.conf
index 4f292c2..f3ac374 100644
--- a/ttcn3-asterisk-ims-ue-test/asterisk/pjsip.conf
+++ b/ttcn3-asterisk-ims-ue-test/asterisk/pjsip.conf
@@ -128,5 +128,5 @@
[volte_ims]
type=identify
endpoint=volte_ims
-;match=ims.mnc001.mcc238.3gppnetwork.org
-match=172.18.11.10
+match=ims.mnc001.mcc238.3gppnetwork.org
+;match=172.18.11.10
diff --git a/ttcn3-asterisk-ims-ue-test/dnsmasq/dnsmasq.conf
b/ttcn3-asterisk-ims-ue-test/dnsmasq/dnsmasq.conf
index b2430ff..8aea943 100644
--- a/ttcn3-asterisk-ims-ue-test/dnsmasq/dnsmasq.conf
+++ b/ttcn3-asterisk-ims-ue-test/dnsmasq/dnsmasq.conf
@@ -9,7 +9,7 @@
server=8.8.8.8
# PCSCF IP!
-host-record=ims.mnc001.mcc238.3gppnetwork.org,172.18.11.103
+host-record=ims.mnc001.mcc238.3gppnetwork.org,172.18.11.104
srv-host=_sip._tcp.ims.mnc001.mcc238.3gppnetwork.org,ims.mnc001.mcc238.3gppnetwork.org,5060
srv-host=_sip._udp.ims.mnc001.mcc238.3gppnetwork.org,ims.mnc001.mcc238.3gppnetwork.org,5060
diff --git a/ttcn3-asterisk-ims-ue-test/jenkins.sh
b/ttcn3-asterisk-ims-ue-test/jenkins.sh
index 7e94fa5..a5da1d0 100755
--- a/ttcn3-asterisk-ims-ue-test/jenkins.sh
+++ b/ttcn3-asterisk-ims-ue-test/jenkins.sh
@@ -15,6 +15,7 @@
mkdir $VOL_BASE_DIR/asterisk-ims-ue-tester
mkdir $VOL_BASE_DIR/asterisk-ims-ue-tester/unix
+cp ttcn3.sh $VOL_BASE_DIR/asterisk-ims-ue-tester/
cp Asterisk_Tests.cfg $VOL_BASE_DIR/asterisk-ims-ue-tester/
write_mp_osmo_repo "$VOL_BASE_DIR/asterisk-ims-ue-tester/Asterisk_Tests.cfg"
@@ -23,11 +24,16 @@
network_create
network_replace_subnet_in_configs
+SUBNET_IP_PREFIX="172.18.$SUBNET"
+ASTERISK_IP_SUFFIX="10"
+TTCN3_IP_SUFFIX="103"
+IMSCORE_IP_SUFFIX="104"
+DNS_IP_SUFFIX="200"
echo Starting container with dnsmasq
docker run --rm \
--cap-add=NET_ADMIN \
- $(docker_network_params $SUBNET 200) \
+ $(docker_network_params $SUBNET $DNS_IP_SUFFIX) \
--ulimit core=-1 \
-v $VOL_BASE_DIR/dnsmasq:/data \
--name ${BUILD_TAG}-dnsmasq -d \
@@ -38,7 +44,8 @@
docker run --rm \
--cap-add=NET_ADMIN \
--cap-add=SYS_RESOURCE \
- $(docker_network_params $SUBNET 10) \
+ $(docker_network_params $SUBNET $ASTERISK_IP_SUFFIX) \
+ -e "DNS_IPADDR=${SUBNET_IP_PREFIX}.${DNS_IP_SUFFIX}" \
--ulimit core=-1 \
-v $VOL_BASE_DIR/asterisk:/data \
--name ${BUILD_TAG}-asterisk -d \
@@ -53,10 +60,12 @@
docker run --rm \
--cap-add=NET_ADMIN \
--cap-add=SYS_RESOURCE \
- $(docker_network_params $SUBNET 103) \
+ $(docker_network_params $SUBNET $TTCN3_IP_SUFFIX) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
+ -e "EXTRA_IPADDR=${SUBNET_IP_PREFIX}.${IMSCORE_IP_SUFFIX}/24" \
-v $VOL_BASE_DIR/asterisk-ims-ue-tester:/data \
--name ${BUILD_TAG}-ttcn3-asterisk-ims-ue-test \
$DOCKER_ARGS \
- $REPO_USER/ttcn3-asterisk-ims-ue-test
+ $REPO_USER/ttcn3-asterisk-ims-ue-test \
+ /data/ttcn3.sh
diff --git a/ttcn3-asterisk-ims-ue-test/ttcn3.sh b/ttcn3-asterisk-ims-ue-test/ttcn3.sh
new file mode 100755
index 0000000..6c50af0
--- /dev/null
+++ b/ttcn3-asterisk-ims-ue-test/ttcn3.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+set +e
+set -x
+
+if [[ -z "${EXTRA_IPADDR}" ]]; then
+ echo "env var EXTRA_IPADDR undefined!"
+ exit 1
+fi
+
+ip addr add "${EXTRA_IPADDR}" dev eth0
+
+ttcn3-docker-run asterisk Asterisk_Tests
--
To view, visit
https://gerrit.osmocom.org/c/docker-playground/+/37125?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: docker-playground
Gerrit-Branch: master
Gerrit-Change-Id: I6e5a261748ec61bb1cfa4aafee8c748d0f46aa9e
Gerrit-Change-Number: 37125
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged