Commit Graph

1238 Commits

Author SHA1 Message Date
Oliver Smith 42988c542c centos7: use vault.centos.org
The centos7 images try to use mirrorlist.centos.org to determine the
fastest mirror, and then download binary packages from there. But
mirrorlist.centos.org isn't online anymore. Use the vault instead.

Without this patch, the mirrors that can't be reached are ignored, and
later on it fails to properly install packages because of missing
dependencies.

Related: https://serverfault.com/a/1161847
Change-Id: I0a8f93bb16dd9245760b8a1ad53f0642d446b4cf
2024-07-12 09:09:22 +00:00
Pau Espin 89da21a17d asterisk: Wait for dnsmasq resolver ready before starting Asterisk
Otherwise Asterisk wil lfaill to add the identify match at startup:

[2024-07-11 10:35:02.199] ERROR[14]: netsock2.c:303 ast_sockaddr_resolve: getaddrinfo("ims.mnc001.mcc238.3gppnetwork.org", "(null)", ...): Temporary failure in name resolution
[2024-07-11 10:35:02.199] ERROR[14]: res_pjsip_endpoint_identifier_ip.c:553 ip_identify_apply: Identify 'volte_ims' failed when adding resolution results of 'ims.mnc001.mcc238.3gppnetwork.org'
[2024-07-11 10:35:02.199] ERROR[14]: res_sorcery_config.c:422 sorcery_config_internal_load: Could not create an object of type 'identify' with id 'volte_ims' from configuration file 'pjsip.conf'

Related: SYS#7010
Change-Id: I01475c1ed2aa20fb9b8b8722a7b965ea9b63e8a9
2024-07-11 15:14:46 +02:00
Pau Espin ae70933cb4 dnsmasq: Log additional query info with --log-queries=extra
Related: SYS#7010
Change-Id: I445b7900769418d8f3958f37d0613283ca9a7b78
2024-07-11 13:53:28 +02:00
Pau Espin 1678ec21f7 asterisk: pjsip.conf: Forward Hold/Resume SIP UA -> IMS Core
This is needed for forward the a=sendonly when a local SIP UA wishes to
hold a call.

Related: SYS#7002
Change-Id: I70e7e5df2d9c91acdc85c689cf8e48c5a44b2a34
2024-07-10 11:25:11 +00:00
Vadim Yanitskiy f13453bbed ttcn3-s1gw-test: update logging config in osmo-s1gw.config
Bring logging configuration in sync with erlang/osmo-s1gw.git.

Change-Id: I3853c40c94d3ee2bbd5d6f6b345bfd87cce134d0
Related: erlang/osmo-s1gw.git Ib88801b8d38976b98a02ed06e1638e0e9056bafb
2024-07-09 16:11:27 +00:00
Oliver Smith 1287a88d04 seccomp_profile: enable io_uring
Revert 891241e7 ("seccomp: block io_uring_* syscalls in default
profile") from upstream:
891241e7e7

This will be used by osmo-ci Iaeb84627fc1404014e5a8a2e88a02ee66cfb880d.

Related: OS#6405
Change-Id: I27567c2a5d9543c3509c316226c082ab950c5ebc
2024-07-09 14:20:24 +02:00
Oliver Smith 0e47a7206e seccomp_profile: import
Import the current default seccomp profile from docker, commit from
current master branch. The next patch will re-enable the io_uring
syscalls in the profile.

Source:
https: //raw.githubusercontent.com/moby/moby/c4dcaa0d9adb8cc0a0d95393e8cf3e853254eacb/profiles/seccomp/default.json

Related: OS#6405
Change-Id: Ib6f7bc04cb58815190fc2102900e873da301ce95
2024-07-09 14:04:59 +02:00
Pau Espin ec98e21585 ttcn3-asterisk: Allow running testsuite with IPv4 and IPv6 configs
Requires [1] to be able to run SIPmsg_PT in Asterisk_Tests with IPv6
support.

[1] https://gitlab.eclipse.org/eclipse/titan/titan.TestPorts.SIPmsg/-/merge_requests/4

Related: SYS#6982
Change-Id: I1de922c681fef4d308898cd592544aef25901c7b
2024-07-08 08:19:50 +00:00
Pau Espin d6b2bc70dc ttcn3-asterisk: Small improvements to ease introducing IPv6 support
Change-Id: If5200e9ba7774f5ec1037584dcb1f8ca2e45f835
2024-07-05 16:48:14 +00:00
Alexander Couzens f84c203eea osmo-epdg: add support for testing for latest
Create a new osmo-epdg-latest docker image.
Use a different configuration for ttcn3-epdg-test if running the latest.
The latest comes from the obs repository and has different paths for libraries.

Change-Id: Ia31a92446e82a25fb592a2c91d0204db8f265d52
2024-07-04 19:01:42 +00:00
Pau Espin 5bd5f19f71 jenkins-common.sh: Store IP subnet prefix in global variable
Change-Id: Icc492aea1ddb91f672c7a0cec764b42711789fb6
2024-07-04 13:30:26 +00:00
Pau Espin 1e9e69d552 ttcn3-asterisk: Move ttcn3 docker related files to ttcn3/ subdir
Other files belonging to other containers are already placed in subdirs,
so do the same for these ones too.

Change-Id: Ie2b3de22df9ab155f42a717bccf718fccd388fc6
2024-07-04 12:48:27 +00:00
Pau Espin 39c7794978 asterisk: Allow alaw code from IMS until evs is supported
EVS codec is not yet fully supported, specially if no specific
implementation of the EVS API is available. Let's allow using alway
from/to IMS for now, so calls can be made and tests work.

Change-Id: I4835f73ef1b13343ff209f1aba84fab43427aa9d
2024-07-04 12:42:29 +00:00
Pau Espin c2ff1512e6 asterisk: conf: Handle precondition through app_waitforprecondition.so
This module has been introduced recently, which allows handling
precondition FSM during MT calls.

Change-Id: I84eefec6cd38d50e88633ac01f606b1dda06bb43
2024-07-04 12:42:29 +00:00
Oliver Smith bc3772c0ff ttcn3-ggsn-test/jenkins: tweak loop logic
Iterate over TEST_CONFIGS instead of TEST_CONFIGS_ALL and then filtering
with test_config_enabled.

Change-Id: Ie7701abe6ab7cff139766eca9240e0f26af32231
2024-07-03 12:07:38 +00:00
Pau Espin d8cd4d2518 asterisk: pjsip.conf: Set IMEI
Newer asterisk VoLTE code being developed (jolly/work) now has a config
to set the IMEI instead of the whole contact header. Use it.

Change-Id: I5d4584fac309bea4afe3929bdca047c31c93b457
2024-07-02 19:05:18 +02:00
Pau Espin c21808f0d6 ttcn3-asterisk: Fix ICSI value encoding
As seen in TS 24.229 7.2A.8.2 example.

Change-Id: I02b3d54003bb02e999b27b533a651299dbb53503
2024-07-01 14:28:19 +02:00
Pau Espin eb927b7697 asterisk-master: Build from jolly/work branch by default
That one will not be the final branch, but it's the one where most of
the development is happening. Hence, switch to that branch by default
for now, so that jenkins nightly job runs that branch.

Change-Id: Iabf141ae0b997f9707a7dbd555307e052b92d355
2024-06-25 20:37:02 +02:00
Pau Espin caec771293 asterisk-master: Fetch required branch directly
When I added the Dockerfile I initially wrote it in a 2 step fetch &
build, to try to avoid recompiling the whole thing every time some patch
from one of the devs was pushed to our building branch.
This, whoever, creates problems sometimes due to how the build system
for pjproject is generated when building asterisk, so let's drop the
2stage setup to avoid problems fetching from different branches, etc.

Change-Id: Id9fbee9cdb8f9387e0daefd7925df2542d384a91
2024-06-25 20:32:59 +02:00
Pau Espin f1c3daaa7a asterisk: logger.conf: Log milliseconds in timestamps
Change-Id: I4d518547d1e284b18034ae195e6d05da283593de
2024-06-25 17:51:19 +02:00
Pau Espin 09c5598087 ttcn3-asterisk: Set mp_ims_imei matching pjsip.conf
Since recently, the testsuite validates the IMEI received at IMS Core
over REGISTER Contact header matches the one configured at Asterisk
config file.
Hence, add the same value to Asterisk_Tests.cfg so it can match the
value.

Depends: osmo-ttcn3-hacks.git Change-Id I866d89ec137d264e257b05226900b744a93c257e
Related: SYS#6877
Change-Id: Id8bb7886ffcea506348496148e17f71cef1edc90
2024-06-25 17:46:28 +02:00
Pau Espin 947e7841b8 ttcn3-asterisk: pjsip.conf: Use reliable provisional responses if peer supports it
The default 100rel=yes won't use reliable provisional responses unless
the peer "requires" it, while we should instead be using them if the
peer "supports" it.

Related: SYS#6980
Change-Id: I40764e24f2c80ce48d6634e09797fefe97d99e51
2024-06-25 17:46:28 +02:00
Pau Espin 12b59ac2fe ttcn3-asterisk: pjsip.conf: Avoid advertising support for +g.3gpp.smsip
Asterisk doesn't so far support SMS over IMS, so avoid announcing it
during REGISTER.

Related: SYS#6981
Change-Id: I1546b7106d25ebfb1c92c1a27db1f44c51b0413a
2024-06-25 17:46:28 +02:00
Vadim Yanitskiy 7be93fc721 ttcn3-s1gw-test: start osmo-s1gw container with --user=root
For some reason, on Arch with docker 26.1.3 it implicitly starts
with --user=root, while with docker 20.10.5 on Debian bookworm it
starts with --user=build.  This results in permission errors:

  + ip addr add 172.18.74.100/24 dev eth0
  RTNETLINK answers: Operation not permitted
  + true
  + ip addr add 172.18.74.200/24 dev eth0
  RTNETLINK answers: Operation not permitted

Pass --user=root explicitly to bring consistency and fix those.
Hopefully, ttcn3-s1gw-test will be passing on Jenkins with this patch.

Change-Id: I5cc67d1c3192fd55560c16c8cc44b13b2c9b3e98
Fixes: 9ca9bed "ttcn3-s1gw-test: fix using unassigned addr for osmo-s1gw"
2024-06-23 17:26:13 +07:00
Vadim Yanitskiy 9ca9bed0ac ttcn3-s1gw-test: fix using unassigned addr for osmo-s1gw
The S1GW container gets assigned the primary addr 172.18.10.100/24
by docker_network_params().  The secondary addr 172.18.10.200/24,
which is used for eNB connections, needs to be assigned manually.

This patch finally makes ttcn3-s1gw-test pass.

Change-Id: I109a5feaca5acf050008e883cc8b4e1e28beebab
Related: SYS#6772
2024-06-22 03:52:16 +07:00
Vadim Yanitskiy c9ba646255 debian-{bullseye,bookworm}-erlang: install iproute2
Change-Id: I753a8c97c17e6a143dd96b168ddc88400f0fc02d
2024-06-22 02:29:38 +07:00
Vadim Yanitskiy 948645e048 debian-{bullseye,bookworm}-erlang: fix non-alphabetic pkg order
Purely cosmetic change, bringing a bit of consistency.

Change-Id: I956a15304cbdcdc5572e181dcefd0da884b8fc63
2024-06-22 02:29:38 +07:00
Vadim Yanitskiy f5a5304dc5 ttcn3-s1gw-test: fixup: align with the moduleparam naming changes
Change-Id: Ibbc8501b01e4b168c856b6817e5b92bfd9816669
2024-06-19 05:11:11 +07:00
Vadim Yanitskiy 3319f70df0 ttcn3-s1gw-test: align with the moduleparam naming changes
Change-Id: I37b7d91e9e18df463f54cac3e5586942aea21a69
Related: osmo-ttcn3-hacks.git Ice665662c8448c8314d5e6cc1e401e62b635872c
2024-06-19 02:04:06 +07:00
Vadim Yanitskiy 5827006f07 s1gw: add ttcn3-s1gw-test
Change-Id: I95000d7a9d778df1da830cd5059e5b6899391fbe
Related: SYS#6772
2024-06-16 03:37:04 +07:00
Vadim Yanitskiy 450ee7eaad s1gw: add osmo-s1gw-master
Change-Id: Ic732f57940fa41fe21a26af663fea559551b1811
Related: SYS#6772
2024-06-16 03:37:00 +07:00
Daniel Willmann da8b6e46d3 jenkins-common: Treat -asan builds the same as -master
This fixes the jenkins test failures seen in ttcn3-stp-test-asan. TTCN3
tries to connect to stp via TCP, but since the jenkins.sh script doesn't
consider this a build from master the corresponding config is not added
to osmo-stp.cfg.

Also change the function names from image_suffix_is_* to osmo_repo_is_*
to better reflect what they are doing (instead of how).

Related: OS#6486
Change-Id: Ibf93880345f38668f8dc812d1523b985d368dfcc
2024-06-12 18:56:55 +02:00
Oliver Smith bd8038508f debian-bookworm-*: useradd -d -m instead of mkdir
Shorten the logic for adding the user slightly, as suggested by Vadim in
code review.

Change-Id: Ief8837bd9f89f51e66857a453f7fc4645620159f
2024-06-11 12:58:15 +00:00
Pau Espin 8542e153df asterisk: extensions.conf: Forward call from VoLTE to all registered local UAs
Change-Id: Id3e14ca660f0aa4ed685a90f527feb8732a83806
2024-06-11 10:09:06 +00:00
Pau Espin 29f355720d 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
2024-06-11 10:09:06 +00:00
Pau Espin 55d6ae49e1 asterisk: extensions.conf: Route non-local extensions towards IMS side
Previous config had only 1 digit extensions being routed, plus the fact
that the endpoint name was incorrect (now "volte_ims").

Change-Id: Icce5e55ab75c0c9fdacc4d8504e6714b99d385b4
2024-06-11 10:09:06 +00:00
Oliver Smith fcdeba228c debian-bookworm-obs-asan: new container
Copy debian-bookworm-obs-latest and configure it to use the
osmocom:nightly:asan repository. Adjust jenkins-cmmon.sh for running the
testusite against the asan repository.

Related: OS#5301
Change-Id: I4219d927d4617232584d5401debd0be04df67ea0
2024-06-10 15:39:52 +02:00
Pau Espin 68666575ca asterisk: pjsip.conf: Set default p_access_network_info
The value is overwritten if set through AMI PJSIPAccessNetworkInfo
action.

Change-Id: I2bb0b89ec36137bbae613962ff5f5aad56721f34
2024-06-05 13:12:39 +02:00
Pau Espin e832d9d3b6 asterisk: pjsip.conf: Update IMS port asterisk config
The config names changes recently during development.
Adapt to the new range style fields.

Change-Id: I4aceb3b62ce7f446abd02b1a53993a3baecf2f20
2024-06-05 13:12:39 +02:00
Pau Espin 4051e768c1 asterisk: pjsip.conf: identify incoming register started by local SIP UAs
This config section is needed so that Asterisk can figure out the endpoint
when receiving a "REGISTER sip:172.18.248.10". Without it, it will answer with
a 404 Not Found.

Change-Id: I39568c3cebb89fc5a62a8144f448b50c48d79f10
2024-06-05 12:42:25 +02:00
Pau Espin cfc931d302 asterisk: pjsip.conf: Configure Contact field
Change-Id: I0b52407f9e7d1ca7f186c77db8f9e1a0ca272ff7
2024-06-05 12:42:25 +02:00
Pau Espin 93e083599b ttcn3-asterisk: Use dnsmasq to let asterisk resolve IMS DNS
Depends: osmo-ttcn3-hacks.git Change-Id I23afdc8b70132dbd947c280f6e5aadbc84849f01
Change-Id: I2da10c80a81ef5603082e4ee1445a39745c0c24f
2024-06-05 12:42:25 +02:00
Pau Espin 30314d55f0 Introduce dnsmasq docker container
This container will be used by the ttcn3-asterisk testsuite setup, so
that asterisk can resolve NAPTR nameservers for the IMS 3gpp DNS.

Change-Id: Ic1490334375c2a9b11b923a6757e844faf524634
2024-06-05 12:42:21 +02:00
Pau Espin 03dcadd3e3 asterisk: pjsip.conf: Fix msisdn not used in From field during IMS INVITE
Related: SYS#6950
Change-Id: I972e75b36457c532bd7528ffb5a7b80544abba4a
2024-06-04 16:25:28 +02:00
Pau Espin 588f38a70e asterisk-master: Install AMR enc/dec dependencies
Change-Id: Ic5de8ae6ac8ade375b9692427e5865bee49dc01f
2024-06-04 11:57:14 +02:00
Pau Espin c9a787ad1f asterisk: pjsip.conf: Disable remote bridging between local SIP and IMS
While implementing a first ttcn3 test validating the MO call scenario
(SIP-UA -> Asterisk -> IMS-CORE) [1] I was running into the scenario
where, after the first SIP INVITE + 200 OK + ACK, Asterisk was sending
a RE-INVITE to both parties to attempt to remotely bridge them (RTP
traffic flowing directly between them without passing through Asterisk).

This happened in part because I'm so far configure A-LAW on both sides
so asterisk figures out it can do so. I still need to change IMS-core
to EVS only.

In any case, regardless of the codecs used, my understanding is that
asterisk should never attempt remote bridging when using the "volte_ims"
endpoint, since that network segment is separate from the local network
where the local SIP UAs are located.

The "direct_media=no" option just addresses the issue; Asterisk no longer
tries to re-invite after the call is established

Related: SYS#6782
Change-Id: I4edea96151b31f02bf292b43b757922389375429
2024-05-30 13:41:01 +02:00
Pau Espin cc5ec183c0 asterisk: pjsip.conf: Use TCP when forwarding INVITE to IMS core
Change-Id: I67bc01e4d53d47eb805e81736378f292b2834fd2
2024-05-29 14:09:04 +02:00
Pau Espin 570e8cda81 asterisk: pjsip.conf: Enable USIM Auth over AMI interface
Astersik_Tests already implement the related AMI procedures, hence
configure Asterisk to use them.

Depends: osmo-ttcn3-hacks.git ddc4c709e51b92dae4d10f0c71b062e4719da673
Change-Id: Iab2e9ad21ff6271ae51329608658ffe353173f38
2024-05-28 16:46:49 +02:00
Pau Espin 115523644f asterisk: pjsip.conf: Stop Asterisk doing unexpected REGISTER on IMS
REGISTER should only be done when the IMS APN is ready, and baseband
then interface asks it to register.

Change-Id: I56249d4138c0a1f5824e089c14c095badc41dc95
2024-05-28 16:46:49 +02:00
Vadim Yanitskiy f6f9f71be0 ttcn3-bsc-test: also execute tests from BSC_Tests_ASCI
We do have 13 ASCI (VBS/VGCS) testcases in osmo-ttcn3-hacks.git,
but we never executed them on Jenkins so far.  Fix this.

Change-Id: I03f1ac2ed9ca59b90fead73fee3cf333b6146344
2024-05-19 14:32:50 +05:00