aboutsummaryrefslogtreecommitdiffstats
path: root/tests/msc_vlr
AgeCommit message (Collapse)AuthorFilesLines
2024-03-28never page for TMSI with 'no assign-tmsi'neels/tmsi_or_notNeels Hofmeyr1-11/+11
With 'no assign-tmsi', regard any TMSI as invalidated at the end of a Location Updating procedure. Hence, avoid paging by TMSI. When 'no assign-tmsi' is set, osmo-msc does not actively assign a new TMSI at the end of the Location Updating. However, it stores any TMSI identity that the MS sends in a Location Updating Request. So far, this caused osmo-msc to use the TMSI that the MS had sent in subsequent Paging, which goes unanswered by the MS. (After the long standing evil twin problem regarding TMSI MI has been fixed in recent Ifdabe0b65bffafbf7b8e5cc10e2d225d1ed1cecd, there is no longer an evil twin risked by clearing out a TMSI.) Related: SYS#6860 OS#4721 Change-Id: I583682d1a35a70b008d7bb2d89ba7c3109a60b21
2024-03-28fix VLR evil twin on LU with unknown TMSINeels Hofmeyr1-1/+0
When a subscriber first attaches by TMSI only, and later tells the IMSI via ID Response, it may turn out that this IMSI already exists in the VLR database. If this happens, the TMSI that the subscriber issued was not known in the existing VLR entry, indicating that the subscriber has in the meantime camped on a different core. Which means we can assume that there cannot be any active connections, and the old subscriber can be discarded, for the benefit of the new one. (We could also discard the new one, but it is more complex to reparent the ongoing FSMs for Compl L3 than to copy some dormant VLR state.) In vlr_subscr_set_imsi(), check for an existing IMSI entry in the VLR. If such exists, copy any pending Paging and auth tuple state to the new subscriber, and discard the old one from the VLR. In order to safely discard a vlr subscriber by force, add a new vlr_ops function: subscr_inval(), to tell the MSC that a vlr_subscr is no longer valid. Upcoming patch I583682d1a35a70b008d7bb2d89ba7c3109a60b21 better clears TMSI state from the VLR, making it more likely to hit the evil twin situation this patch fixes; hence this is, sort of, preparation. Related: SYS#6860 OS#4721 Change-Id: Ifdabe0b65bffafbf7b8e5cc10e2d225d1ed1cecd
2024-03-01libvlr: fix auth_fsm_term(): use proper value-string for causeVadim Yanitskiy3-12/+12
Change-Id: Ia0868dce2da5cb78c30cf518870c3d91144499b9
2024-02-08cosmetic: rename to sdp_audio_codecs_foreach()Neels Hofmeyr1-1/+1
Better match the pattern of sdp_audio_codecs_* instead of having foreach_ in the front. Prepare for prepending osmo_ some day, because I plan to move the SDP API to a separate library. Change-Id: Ia96190e0bdb513886663be1c8c12be3b403b71c9
2024-02-08msc_vlr_test_call.c: fix misleading commentsNeels Hofmeyr1-2/+2
The comments indicating which two "members" are identical are inaccurate. (One of them is a macro pointing at the other.) Change-Id: Ifaa2f361db77cd0ed3ad39d6ca197195b9354ea1
2023-12-13test_call: codecs: test specific PT from MO to MTNeels Hofmeyr2-0/+677
Previously added codecs tests uses non-default PT number sent by MT and adopted by MO. Also test the other direction, i.e. a non-standard PT from MO is adopted by MT. Related: OS#6258 Change-Id: I8fbabe242982441d676d09f4d0ed7557c8349f2c
2023-12-13test_call: codecs: allow specific PT numbers [2/2]Neels Hofmeyr2-26/+55
In msc_vlr_test_call.c, allow to tell MO non-default payload type numbers in the SDP, to verify that it adopts the other call leg's PT numbers. Actually apply the non-default payload type number (AMR=96 instead of the default of 112 from codec_mapping.c) and see the effects in msc_vlr_test_call.err. The diff shows that, as intended, the change in payload type number should result in modifying the MGW endpoint to change the earlier '112' to the modified '96' used in this test. Related: OS#6258 Change-Id: I25df2ed7ad792fbe66dfd0fbf08182c9cf6cfc5b
2023-12-13test_call: codecs: allow specific PT numbers [1/2]Neels Hofmeyr2-0/+676
In msc_vlr_test_call.c, allow to tell MO non-default payload type numbers in the SDP, to verify that it adopts the other call leg's PT numbers. This test differs only slightly from the first codecs test, so in this patch add the test as a 1:1 copy of the first test. The next patch [2/2] will then show only the difference the new test makes. Related: OS#6258 Change-Id: I618e3cf1b412985589a0c63bd76b7a60202f17b9
2023-12-13msc_vlr_test_call: codecs: properly test new codec matchingNeels Hofmeyr2-143/+616
In patch I8760feaa8598047369ef8c3ab2673013bac8ac8a, osmo-msc learns to handle codec mismatches reported by MT. For simplicity, that patch cuts short the msc_vlr codecs tests by validating only the first codec. Now test the full list of codecs properly. This also introduces testing the re-assignment that MO does to match MT's codec limitations, and removes the "EXPECTED FAILURE" markers. Related: OS#6258 Change-Id: Ib933554f826c1b4347dfa3f6c4f6fe086be8b133
2023-12-13msc_vlr_test_call: drop misleading logNeels Hofmeyr2-18/+18
It was true once, but not since "do CN CRCX first" Ie433db1ba0c46d4b97538a969233c155cefac21c Related: OS#6258 Change-Id: I94e430e4e5b5bf18dbb155258d82f599ada453e6
2023-12-13implement re-assignment to match codecsNeels Hofmeyr2-15/+27
This is the last missing piece that allows osmo-msc to make good TFO codecs choices. Since the codec_filter, osmo-msc properly gathers codec options and limitations. But the MO call leg still assigns a voice channel before getting a response from the MT call leg, and is then stuck with that. Add the capability to adjust the MO call leg's codec in case the MT side needs a different codec for TFO. This is only relevant for 2G; on 3G we always have AMR/IuUP. For inter-MSC handover, keep the behavior unchanged: offer only the currently assigned codec to the remote side. Codec-changing HO should be equally trivial to implement, but that is for another day. msc_vlr_test_call's codec tests are adjusted to test the new feature in Ib933554f826c1b4347dfa3f6c4f6fe086be8b133. For now, avoid change in these tests by validating the first codec in SDP lists only. Related: OS#6258 Related: osmo-ttcn3-hacks I402ed0523a2a87b83f29c5577b2c828102005d53 Change-Id: I8760feaa8598047369ef8c3ab2673013bac8ac8a
2023-12-13cc: remove code dup for / fix reading codecs from MNCCNeels Hofmeyr1-6/+7
To parse and handle SDP included in incoming MNCC, use rx_mncc_sdp() everywhere. So now rx_mncc_sdp() is the single implementation for parsing the SDP string and taking action for codecs if needed. One current dup of this code has a fall-back to use legacy bearer cap -- absorb that into rx_mncc_sdp(), so that we now also do that fall-back for all of the incoming MNCC that contains bcap. This is a cosmetic preparation for implementing MO Re-Assignment to match MT's codec limitations. Change-Id: I94ae11654e1f88fbd64361b639a4c583836dc13e
2023-07-09ASCI: Use a unique call-id for RTP streamsAndreas Eversberg2-191/+191
The MGCP protocol features the 'C' (call-id) to identify which connections belong to the same call. They may be used by MGW for accounting or management procedures. So far we sent the MNCC callref as call-id. Instead, add a separate unique call_id number space. Assign a unique call_id to each transaction. Change-Id: I36c5f159fa0b54fb576ff8bd279928b895554793 Related: OS#4854
2023-06-15codec_filter_run: prepare for CSDOliver Smith1-28/+79
Related: OS#4394 Change-Id: I18b396193ad25a3905cc8c1853c9680dab0a2d44
2023-06-14Use new mgcp_client_conf_alloc() API to alloc mgcp_client_confPau Espin Pedrol1-2/+2
Depends: osmo-mgw.git Change-Id Iba0853ed099a32cf1dde78c17e1b34343db41cfc Change-Id: I382046bba67646a7365d9290d604b97c9d886e02
2023-04-053G: decapsulate IuUP to AMR at the MGW; allow 3G<-AMR->2GNeels Hofmeyr1-36/+44
For all 3G calls, convert IuUP <-> plain AMR/RTP on the MSC's MGW hop like this: Before this patch: hNodeB <--IuUP--> MGW@hnbgw <--IuUP--> MGW@msc <--IuUP--> other call leg After this patch: hNodeB <--IuUP--> MGW@hnbgw <--IuUP--> MGW@msc <--AMR--> other call leg ^ This allows, in principle, 2G to 3G calls without expensive transcoding, like this: hNodeB <--IuUP--> MGW@hnbgw <--IuUP--> MGW@msc <--AMR--> MGW@msc <--AMR--> MGW@bsc <--AMR--> 2G-BTS ^ (So far only proven to work with AMR-FR at 12k2.) 3G to 3G calls now look like this: hNodeB <--IuUP--> MGW@hnbgw <--IuUP--> MGW@MSC <--AMR--> MGW@MSC <--IuUP--> MGW@hnbgw <--IuUP--> hNodeB ^ Implementatino: get rid of the shim that was put in place to still send IuUP (VND.3GPP.IUFP) to the CN. So now, for all 3G voice, the IuUP gets decapsulated to plain AMR/RTP at the MSC's MGW hop. What is proven to work with this patch: successful voice call between 2G and 3G with these conditions: - a hNodeB that stubbornly accepts only 12k2 AMR; - a 2G BTS configured to use only TCH/F and only FR3, with only 12k2 as allowed AMR rate. We have not yet seen a call working for TCH/H HR3 <-> 3G, because of the lab hNodeB's limitation to 12k2. Future work we probably need: - properly request and negotiate AMR rates via SDP fmtp:mode-set. - request more RFCIs in our RANAP RAB Assignment requests (see I61e0e9e75e3239662846fd797532acdefa9f73dc). - Convert IuUP to AMR already at the HNBGW's MGW? Solving this is not part of this patch. Related: SYS#5092 Change-Id: I386a6a426c318040b019ab5541689c67e94672a1
2023-03-26fix msc_vlr_test_call SDP mncc_rtpNeels Hofmeyr2-16/+39
In msc_vlr_test_call, we fail to send the right MNCC struct for MNCC_RTP_CREATE. We should pass a struct gsm_mncc_rtp. Fix that. Change-Id: Ia0b3253f85c716e45f925da3f58f025af1f15ec9
2023-03-18[codecs filter] msc_vlr_test_call: test codecs resolutionNeels Hofmeyr4-8/+3669
Show that the codecs filter now works as expected in call messaging. Related: SYS#5066 Change-Id: I879ec61f523ad4ffc69a0b02810591f7c0261ff9
2023-03-18do CN CRCX firstNeels Hofmeyr2-139/+157
In order to send the MSC's RTP endpoint IP address+port in the initial SDP, move the MGCP CRCX up to an earlier point in the sequence of establishing a voice call. Update the voice call sequence chart to show the effects. Though the semantic change is rather simple, the patch is rather huge -- things have to happen in a different order, and async waits have to happen at different times. The new codec filter helps to carry codec resolution information across the newly arranged code paths. Related: SYS#5066 Change-Id: Ie433db1ba0c46d4b97538a969233c155cefac21c
2023-03-18[codecs filter] use codecs filter on crcx okNeels Hofmeyr1-0/+5
Change-Id: I03753df567d1dc24852e6fbb681fbba81d2a545d
2023-03-18msc_vlr_tests: confirm crcx by RAN/CN side separatelyNeels Hofmeyr3-21/+26
Upcoming patch 'do CN CRCX first' changes the ordering of MGCP. To properly show the change in behavior in the msc_vlr_test_call, first clarify which side is expected to do MGCP when. Related: SYS#5066 Change-Id: I972e7426006e5b62f81ccfe4fa224ee9eed7a7ac
2023-03-18[codecs filter] send + receive SDP via MNCCNeels Hofmeyr2-26/+96
Transmit and receive full SDP information via MNCC, to accurately pass codecs choices between the call legs. In msc_vlr_test_call.c test_call_mt(), show that when receiving MNCC, the codec information in SDP overrules the Bearer Cap codec information -- we expect to still receive inaccurate Bearer Cap from e.g. osmo-sip-connector, because we have chosen to add SDP to MNCC instead of trying to fix the codecs represented in Bearer Cap. For internal MNCC, the MT call leg now knows which codec the MO has chosen and assigned. For external MNCC, osmo-sip-connector receives SDP about our codecs choices and sends it in SIP messages, and we also receive the full SDP information from the remote SIP leg. Update the SDP in codec_filter every time it is received, to always have the latest SDP information from the remote leg. CC MNCC | ---ALERTING--> | add local side SDP to MNCC msg | <--ALERTING--- | store remote side SDP | <--SETUP-RESP- | store remote side SDP | --SETUP-CNF--> | add local side SDP to MNCC msg | -RTP-CREATE--> | use codec_filter, add local side SDP to MNCC msg | <-RTP-CONNECT- | store remote side SDP There still is one problem: when initiating MNCC, we do not yet know the RTP address and port to be used for the CN side, because the CN CRCX happens later. So far we send 0.0.0.0:0 as RTP endpoint in the SDP, until the CN CRCX is done. A subsequent patch moves CN CRCX to an earlier time, adding proper RTP information right from the start. Related: SYS#5066 Change-Id: Ie0668c0e079ec69da1532b52d00621efe114fc2c
2023-03-18[codecs filter] use filter result in AssignmentNeels Hofmeyr1-0/+5
So far, patches have set up rtp_stream to allow setting multiple codecs, and collected the codecs information into the codecs filter struct. Now actually use the codecs filter result to choose a codec. Setting up the call leg FSMs and codecs still looks rather confusing in this patch, because this is an incremental step in a larger series. The upcoming patch 'do CN CRCX first' clarifies this substantially. The resulting codecs behavior is tested in upcoming patch I879ec61f523ad4ffc69a0b02810591f7c0261ff9. (The test ideally should have come before this patch, but my time to rework this branch is up.) With the codecs filter in place, we are ready for sending and receiving full SDP via MNCC, see upcoming Ie0668c0e079ec69da1532b52d00621efe114fc2c and Ie433db1ba0c46d4b97538a969233c155cefac21c Related: SYS#5066 Change-Id: I66e7c8c5e401f4f3a7d3d42b9525b2c6e99691d9
2023-03-18[codecs filter] use filter result in MT DTAP CC SetupNeels Hofmeyr2-4/+4
So far, we just forwarded the Bearer Capabilities received in MNCC from the remote MO call leg, and omitted Bearer Cap if the remote call leg did not provide any. Instead, always include Bearer Cap, and compose it from the codecs filter result. Hence the Bearer Cap is now an intersection of MS, BSS and remote call leg, instead of just the remote call leg. Related: SYS#5066 Change-Id: I9586221ef56352b7ce4b2604ae0dc04554145a78
2023-03-18in ran_msg, return gsm0808_speech_codec (intra-MSC)Neels Hofmeyr4-28/+27
Do not convert to enum mgcp_codecs, but directly pass the gsm0808_speech_codec IE from the A interface to codecs handling. For Iu: - RAN side: use ran_infra.force_mgw_codecs_to_ran to keep the MGW endpoint towards RAN on IUFP. - CN side: introduce flag ran_msg.assignment_complete.codec_with_iuup, so to decide whether to forward IUFP towards CN, we don't need to test the RAN type, but use the flag from the ran_msg implementation. In msc_vlr_tests, use the SDP codec string instead of enum mgcp_codecs. So far limit to intra-MSC related messaging, adjusting inter-MSC handover follows in a separate patch. Change-Id: Ia666cb697fbd140d7239089628faed93860ce671
2023-03-18rtp_stream: allow multiple codecs / use codec filter from AssignmentNeels Hofmeyr2-30/+34
Allow configuring MGW conns with multiple codecs. The new codecs filter can have multiple results, and MGCP can configure multiple codecs. Get rid of this bottleneck, that so far limits to a single codec to MGW. On Assignment Complete, set codec_filter.assignment to the assigned codec, and use that to set the resulting codec (possibly multiple codecs in the future) to create the CN side MGW endpoint. Related: SYS#5066 Change-Id: If9c67b298b30f893ec661f84c9fc622ad01b5ee5
2023-03-18add ran_infra.force_mgw_codecs_to_ranNeels Hofmeyr1-0/+10
Indicate in the ran_infra data structure whether a RAN needs specific codecs to be set up on the RAN facing MGW endpoint. This allows setting forced RAN codecs as first-class citizen in the ran_infra data structure, instead of special cases in the code (for IuUP on IuCS). Will be used in subsequent commit I37f65c36af2679ecba1040a11a9aa0eb9481d817, submitted separately for easier readability. Change-Id: I37f65c36af2679ecba1040a11a9aa0eb9481d817
2023-03-14msc_vlr_test_call: include RAN RTP addr in ass complNeels Hofmeyr2-25/+26
I noticed by chance that the Assignment Complete message generated in the test lacks a remote RTP address for the RAN side. Make the test more realistic by adding a remote RTP address and port. It doesn't have any bearing on the tests besides more accurately showing RTP stream setup in the logs. Change-Id: Ia428762a16dcc17f036d725a00e0b3767418289b
2023-03-14[codecs filter] MT call: apply remote call leg codecsNeels Hofmeyr1-0/+2
Collect either the SDP or the Bearer Capabilites in the incoming MNCC in the new codecs filter. So far just collect the info and do not change the behavior, using the filter result will follow in a subsequent patch. Related: SYS#5066 Change-Id: I84d9bbca3e4061da622b1b2fc0bde8868e7e3521
2023-03-14[codecs filter] MT call: apply BSS codec listNeels Hofmeyr1-0/+2
For MT call, initialize the codecs filter and apply the Codec List (BSS Supported) from Compl L3. Related: SYS#5066 Change-Id: I530409a64d11da48518a3dc60aa3a4e47c384663
2023-03-14[codecs filter] MO call: apply BSS codec listNeels Hofmeyr1-0/+3
Related: SYS#5066 Change-Id: I062268406ae3f3a63a7f413db51c509c9eaf9e8a
2023-03-11tests: use -no-install libtool flag to avoid ./lt-* scriptsVadim Yanitskiy1-0/+2
This option should be used for any executables which are used only for testing, or for generating other files and are consequently never installed. By specifying this option, we are telling Libtool that the executable it links will only ever be executed from where it is built in the build tree. Libtool is usually able to considerably speed up the link process for such executables. Also take a chance to add the missing $(COVERAGE_LDFLAGS). Change-Id: I664a9d5abed2777deee302f9d3afd1bbfde7a844
2023-03-09tweak MNCC logging, add RTP infoNeels Hofmeyr1-15/+5
Omit "in state FOO", because LOG_TRANS() already logs the state. Most MNCC "rx" logging was duplicated. Log "rx" only once. If there is RTP information passed with the MNCC message, log it: - if there is SDP, log the SDP information. - if there is no SDP, log the legacy MNCC RTP fields, if any. One motivation to do this is to get RTP information in ladder diagrams generated by msc_log_to_ladder.py without the need to add udtrace MNCC logging to osmo-msc; and also to get RTP info for internal MNCC, where udtrace doesn't apply, because no unix domain socket is involved in internal MNCC operation. Change-Id: I4b916cb482ed441b508c6295de211a21c49cd5c1
2023-01-03rtp_stream: set_remote_addr: do nothing when unchangedNeels Hofmeyr1-5/+5
Change-Id: I15181d84f3eb8a4ab9077cf12fcb138d51733102
2023-01-03rtp_stream_commit: check missing MGW ep only when ready for RTPNeels Hofmeyr1-5/+5
Change-Id: I24a81a926b97c9f0fb31df782d1cf931eaff9db1
2022-11-15log CC timeoutsNeels Hofmeyr1-0/+3
Change-Id: I857b4b15ebf75cf253697e96d358128620923221
2022-10-27vlr: implement fallback to no-authNeels Hofmeyr1-4/+4
When the HLR fails to return auth info and authentication and ciphering are configured to be optional, fall back to no-auth. This patch concludes a series of preparatory patches and implements the actual functional change. Related: OS#4830 Change-Id: I5feda196fa481dd8a46b0e4721c64b7c6600f0d1
2022-10-27vlr_auth_fsm: add result no_auth_info_eventNeels Hofmeyr3-12/+12
Add third outcome of auth_fsm: the no_auth_info_event, which should be dispatched when auth failed because the HLR has no auth info for this subscriber, i.e. not because an actual auth challenge failed. No functional change: Handling no_auth_info_event separately follows in another patch (to allow fallback to no-auth). Feed the same _E_AUTH_FAILURE as no_auth_info_event to still behave unchanged. Related: OS#4830 Change-Id: I5103b1f2727f1729a5517ae359df813d50436ed3
2022-10-27vlr: auth_fsm: rename AUTH_RES to AUTH_SUCCESSNeels Hofmeyr7-39/+39
Previous patch added the AUTH_FAILURE event, which means that the AUTH_RES event now only signals success. Reflect that in the name. No functional change. Related: OS#4830 Change-Id: I7124a3591fcf36cee06d7488eeb94f9b85af5dc2
2022-10-27vlr: auth_fsm: clarify success/failure resultNeels Hofmeyr3-12/+12
Explicitly send distinct parent events on auth success and failure. So far determining success depended only on the data pointer passed on with the event. Distinct events clarify the logging and the FSM code. This prepares for a third FSM outcome to be added in a subsequent patch, to separately signal when the HLR has no auth data. No functional change. Related: OS#4830 Change-Id: I02776dfe6785983f2ebe398f57867f5ceb288ba0
2022-10-19call_leg: Fix EV_MGW_ENDPOINT_GONE not processed in RELEASE statePau Espin Pedrol1-30/+30
Since call_leg_fsm_releasing_onenter() calls immediatelly osmo_fsm_inst_term(), it meant we couldn't receive any event in that state because osmo_fsm disables event dispatching to FSMs being terminated. As a result, CALL_LEG_EV_MGW_ENDPOINT_GONE was never received and hence call_leg_mgw_endpoint_gone() was never called, which means the mgcp_client used in cl->mgw_endpoint was never put back to the pool. By first freeing all the children (rtp_streams), we make sure cl->mgw_endpoint ends up with no conns and sends us the GONE event before we go ourselves into termination state. Related: SYS#5987 Change-Id: I2126578c4e64c9f336e8a1f6ee98de970866b8dc
2022-10-19Introduce support for libosmo-mgcp-client MGW poolingPau Espin Pedrol1-2/+4
Large RAN installations may benefit from distributing the RTP voice stream load over multiple media gateways. libosmo-mgcp-client supports MGW pooling since version 1.8.0 (more than one year ago). OsmoBSC has already been making use of it since then (see osmo-bsc.git 8d22e6870637ed6d392a8a77aeaebc51b23a8a50); lets use this feature in osmo-msc too. This commit is also part of a series of patches cleaning up libosmo-mgcp-client and slowly getting rid of the old non-mgw-pooled VTY configuration, in order to keep only 1 way to configure libosmo-mgcp-client through VTY. Related: SYS#5091 Related: SYS#5987 Change-Id: I7670ba56fe989706579224a364595fdd4b4708ff
2022-08-05Introduce libsmpputilMax1-2/+0
As part of preparation for libosmo-netif migration let's move common SMPP code into separate build-time library and use it for both smpp_mirror and OsmoMSC renaming the files if necessary. While at it we also fix id/password legth limits in smpp_mirror and drop unused fields from ESME struct. Related: OS#5568 Change-Id: I61910651bc7c188dc2fb67d96189a66a47e7e8fb
2022-05-18tests/msc_vlr/Makefile.am: drop -ldbiOliver Smith1-1/+0
Fix for: /usr/bin/ld: cannot find -ldbi Fixes: d43c22 ("switch from libdbi to lbsqlite3") Change-Id: I8dcce119a8121881d56cb18328b5f702763b43ea
2022-05-15switch sqlite3 to single-threaded modeHarald Welte1-0/+2
Looking at 'perf top' of osmo-msc under load shows that there's a significant amount of time spent in terms of locking (mutex,...) which is useless as osmo-msc is a single-threaded application. Unfortunately libdbi doesn't provide a mechanism to perform sqlite3_config(), so we have to do it directly here, introducing an explicit build-time dependency (and linkage) to libsqlite3. Related: OS#5559 Change-Id: I5bbea90d28b6d73b64b9e5124ff59304b90a8a75
2022-05-04fix crash on CM Serv Rej: fix use count mismatchNeels Hofmeyr1-2/+2
With comments, clarify the code paths where a CM Service use count has not yet been placed on the conn (just send CM Service Reject) and where the use count is placed (decrement count on CM Service Reject). Place the CM Service use count slightly earlier: - it is then correctly present when checking the mobile identity in cm_serv_reuse_conn(), avoiding the crash reported in OS#5532. - there is only one place incrementing the use count instead of two. Related: OS#5532 Change-Id: I6c735b79b67108bcaadada3f01c7046e262f939b
2022-04-13tests: use 'check_PROGRAMS' instead of 'noinst_PROGRAMS'Vadim Yanitskiy1-1/+1
When using 'check_PROGRAMS', autoconf/automake generates smarter Makefiles, so that the test programs are not being compiled during the normal 'make all', but only during 'make check'. Change-Id: I13b519e61ca0d9ce038e8c989ddac012de4a6c61
2022-01-07Avoid setting audio codec if not available during assignment_complete (MDCX)Pau Espin Pedrol1-0/+1
RAB Assignment Complete contains no codec info, hence assignment_complete.codec is not set and assignment_complete.codec_present is false. As a result a wrong value is passed to rtp_stream_set_codec. This fixes osmo-msc sending "a=rtpmap:112 AMR/8000/1" during MDCX in the RAT-side connection of the call leg after having properly sent VND.3GPP.IUFP/16000 in CRCX. Change-Id: Ic028d35893d29f7d72f22f82ef89695229c9b01b
2022-01-05Announce IuFP audio codec for UTRAN conns in CRCX towards MGWPau Espin Pedrol1-0/+5
This way the MGW knows it has to handle IuUP in that connection (answer IuUP Initialization, etc.). Depends: osmo-mgw.git 1de5ed6f979bd4c1380789c9a82f8e396f05c5f8 Change-Id: I7aca671e00ed27ac03f0d106b5a6b665a9bed4c1
2021-11-30libvlr: fix is_ciph_required(): always send SecModeCmd for UTRANVadim Yanitskiy2-104/+166
Ciphering is optional in both GERAN and UTRAN, however for the later it's *required* to enable integrity protection for the signalling. Thus we must always send Security Mode Command in UTRAN, even in case if ciphering is disabled (UEA0) in the configuration. The actual decision whether to send CMC/SMC or not is taken in: * vlr_access_req_fsm.c / _proc_arq_vlr_node2(), and * vlr_lu_fsm.c / vlr_loc_upd_post_auth(). depending on the value returned by is_ciph_required(). Let's rename this function to is_cmc_smc_required() and ensure that it always returns true in UTRAN. This change fixes the Iu test cases in ttcn3-msc-test. Change-Id: I6205f13453eff7afbf25e013d72ae98a78fcd31b Fixes: OS#5333