Age | Commit message (Collapse) | Author | Files | Lines |
|
Detect if a SIP UE (probably a pbx) is re-INVITING itself out of the audio loop
by checking the media endpoint ip/port.
If thr PBX is going out of the Loop, send LCLS CONNECT, otherwise, RELEASE
Change-Id: I83e1ff7c1523b6c6e53ee37a1b3967cd0dc194e1
|
|
I used this info in looging later on while debugging this,
I guess we can still clear it, not sure why.
Change-Id: I2df8d1f53bff47b32938496998c4eb0e64db3524
|
|
I originally placed this code in the paging callback,
probably only because trans_lcls_compose() wants
to check the msc_a for OSMO_RAT_GERAN_A and get LAC/CI
etc for GCR generation. but we don't need any of that
here.
Change-Id: I32ac4e3da8bb6d44c4aa69fe8a67eedbe20a1c25
|
|
Change-Id: I6a4df44099a23530839180047f2436b3d74887b5
|
|
Change-Id: I69fab402b7e02fa5de39ca288c42df0f9e50f483
|
|
Change-Id: Ib30ee53ded8f09e819eae770489a92cc60b2c9a3
|
|
Change-Id: I2ea164bf540c96503ea543864ad2755e563a9d17
|
|
There are various places in the code that retrigger the SMS -> In Memory pending queue
mechanism. The default was to trigger the queue in one second, which could result in
running the queue every second.
This parameter can ease the queue run interval in case one second is causing too
much load. Sms _SHOULD_ be delivered anyway without these queue runs, due to for
example, MS becoming available or due to being notified by the call back of a new SMS.
Change-Id: I43d88342436d654afd6d955e304e7f85fbc4840f
|
|
Don't resumbit to the queue on MEM_EXCEEDED or on SMS_SMMA
Also, don't try to submit more pending SMS in sms_send_next()
There should be enough other places that are checking
the database. Also, increase the 'sanity' check in
smsq_take_next_sms()
Change-Id: I085d75472cf63709391b12f2fcf15ba9f67f64d0
|
|
After RX of an SMPP Submit, send the SMS we just received.
Previously, after we have stored the new SMS in the db, we then
signalled the queue to run, but this is not good enough.
The queue may not pick up this new SMS on the next run,
if there are sufficient older messages in the queue. So let's
specifically send the message that was just submitted.
when fetching from the DB, Prioritise SMS with least number of delivery attempts
Try to send ALL pending SMS for subscriber in sub_ready_for_sms() callback
Change-Id: I9af51ef0d9c2e6c5acc5128efd6195df881b680c
|
|
There is no need to mark an SMS as sent before deleting it.
Avoid the extra database overhead involved in doing this.
Change-Id: I777155c0f818b979c636bb59953719e472771603
|
|
There's really no need to convert to/from human readable
dateformat (YYYY-MM-DD HH:MM:SS) everytime we access a record in
the SMS database.
sqlite3 has pseudo column types. In fact this means the column type
in the database schema is meaningless and anything will be accepted
and stored. See (Flexible Typing) [1]
It appears that more processing than might be expected
is happening internally on such things as date conversions, as
the database engine has to actually do verifications on the data.
(Is this INT really an INT etc...)
[1] https://www.sqlite.org/quirks.html
Change-Id: I599a57666da22adf806b01ff095c8672d523a737
|
|
Avoid calling sms_from_result() if the subscriber is not attached.
In this case just search for SMS for the next msisdn.
Change-Id: Ibd07b9d200b48108d705ed4c461cc4ddfa421fd2
|
|
Change-Id: Ic6f6d893025acff60df33cbfda980100e492e1c6
|
|
Make sure we wait for Assignment responses before dispatching an
Assignment Request towards RAN.
In particular, when the remote call leg sends its codecs, we may trigger
Re-Assignment to match that codec. Make sure this is done only once:
when receiving another SDP message, wait for the first Assignment.
Implement as an osmo_timer, since there still is no osmo_fsm
implementation for Assignment nor for CC trans FSM. Also it doesn't
belong in the msc_a FSM (it should remain in state COMMUNICATING).
Without this patch, new ttcn3 test TC_lu_and_mo_call_reass_for_mt_codec
sporadically fails, if MNCC with SDP falls in-between Assignment Request
and Assignment Complete.
Related: osmo-msc d767c73a1f93253a54d6a8650a4cf2143353bba0 == I8760feaa8598047369ef8c3ab2673013bac8ac8a
Related: osmo-ttcn3-hacks I402ed0523a2a87b83f29c5577b2c828102005d53
Change-Id: I0f1e1a551aed545b555b9f236fc5967b1e4cc940
|
|
Change-Id: Ib1f2395798010381d67d79c46778bb0caef17046
|
|
This patch fixes a warning printed by gcc 14.1.1:
CC smpp_mirror-smpp_mirror.o
CCLD smpp_mirror
In function 'snprintf',
inlined from 'bind_transceiver' at smpp_mirror.c:121:2,
inlined from 'smpp_esme_init' at smpp_mirror.c:258:9,
inlined from 'main' at smpp_mirror.c:299:7:
/usr/include/bits/stdio2.h:54:10: warning: '__builtin___snprintf_chk'
specified bound 16 exceeds destination size 9
[-Wstringop-overflow=]
54 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
| ^
Take a chance to replace all snprintf() calls with OSMO_STRLCPY_ARRAY.
Change-Id: If1df370fbfbca0953abf83ea1840d8bf8a0118be
|
|
Change-Id: I07e7193460580a3c972a24700e75c925d1e50411
|
|
Change-Id: I3f8d9a8e3739679995ddb037a8f3d58a627d36bc
|
|
Change-Id: I07bea7a7eedb70edb8dd124a3a6167eb35344b81
|
|
Change-Id: I5380035294d2fca481620638b59eae779670e9f8
|
|
We don't want to delay the BSSAP/RANAP connection release any longer
than it takes to submit or deliver an SMS. Thus, whenever a new SMS
transaction is being allocated, drop the LU token.
Change-Id: Iad4ace6038be4b6037e341e7d9d187bef2917d80
Related: osmo-ttcn3-hacks.git I74fa174ea649adb2112c8e471c0e339a2197a08d
Related: SYS#6913
|
|
The idea is to allow re-using the radio channel that was used for
Location Updating to deliver MT SMS over GSUP. This is achieved
by delaying release of a BSSAP/RANAP connection and thus delaying
the release of the radio channel. The delay can be configured
using new timer X36 (default 0 ms), separately for GERAN and UTRAN.
Change-Id: Ic519cab55d65e47b2636124427dab1a1d80fab78
Related: osmo-ttcn3-hacks.git I74fa174ea649adb2112c8e471c0e339a2197a08d
Related: SYS#6913
|
|
Change-Id: I3414953d2aa7b075fcee1cf6e5e76c527ae7b507
|
|
Do not attempt to change permissions/ownership if the package gets
upgraded from a version higher than the next release.
Do not fail if the user deleted the config file.
Be verbose when changing permissions.
Related: OS#4107
Change-Id: I2b01a7625cf66fbb7d203f939ddcc1cbab43cf33
|
|
Related: https://osmocom.org/news/255
Related: OS#6446
Change-Id: I703e115a426ac1012c80d2e1576ee6dcfbe191a5
|
|
* Explicitly chown /var/lib/osmocom to osmocom:osmocom, instead of
relying on systemd to do it when the service starts up. This does not
work with the systemd versions in debian 10 and almalinux 8.
* deb: Use "useradd" instead of the interactive "adduser" perl script
from Debian. This makes it consistent with how we do it in rpm, and
avoids the dependency on "adduser".
* deb: Consistently use tabs through the file, instead of mixing tabs
and spaces.
* deb: Remove support for the "dpkg-statoverride --list" logic. This
seems to be a rather obscure feature to override permissions for
certain files or directories, for which it does not seem to be a good
idea to make the postinst script less maintainable. Something similar
can be achieved by using your own Osmocom config file in a different
path with different permissions.
Related: OS#4107
Change-Id: I406ff0d625b02991d580c8382aa4be04dba45a00
|
|
Created osmocom user & group during package installation.
Fix the configuration dir/files permission to match.
Related: OS#4107
Tweaked-By: Oliver Smith <osmith@sysmocom.de>
Change-Id: I41d47c0884d09d4674ec806d77e43bc8f08d9b64
|
|
Fix a bug introduced in commit
implement CM Re-Establish for voice calls
ae98b97382285420ba81549bc874b9fea5e7daa9
Neels Hofmeyr <neels@hofmeyr.de>
Thu Jul 29 22:40:59 2021 +0200
I6fa37d6ca9fcb1637742b40e37b68d67664c9b60
We should only succeed when conn_accepted == true!
Related: SYS#5130
Change-Id: I3679162143e8d7d8c0878de2102faa11eadfccfc
|
|
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
|
|
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
|
|
We have an msc_conn_ref pointer from vlr_subscr to an active msc_a
instance. So far, we just keep it pointing at discarded memory. Instead,
make sure it goes back to NULL when the msc_a instance deallocates.
This way the VLR can reliably tell whether a given VLR entry still has
an active connection or is just inactively caching the subscriber.
Related: SYS#6860 OS#4721
Change-Id: Ic63d01d220b63453976fe06a7c6b606f97172c99
|
|
Change-Id: I1cad803af112241cef1c83a5ab7c19ae36c439df
|
|
Change-Id: Ic7e64d157969d466b3e1d423e20be5513a7c17fd
|
|
see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository
Change-Id: Id0aeb6d5c9a6bf0019eb96f25eb119fa0b5e583e
|
|
Change-Id: I92f7ab11ebc2e53700b27c38e91679c2c6f72050
|
|
* 'sizeof(sms->user_data)' evaluates to 256
* 'ud_len' is of type 'uint8_t' and cannot be greater than 256
Change-Id: Ia71a0b6b9421911dc5113782d2f555a640fd90ed
|
|
This commit simply fixes a -Wenum-conversion thrown by clang.
No idea why are we using the SM (GPRS Session Management) cause values.
msc_a_release_mo() does not even use the given SM cause value.
Change-Id: Iade6bf97466ab2b3b39e9ea123fc90d06c0f6a9b
|
|
Change-Id: Ia0868dce2da5cb78c30cf518870c3d91144499b9
|
|
This was found thanks to clang (-Wenum-conversion):
warning: implicit conversion from enumeration type
'enum gsm48_gmm_cause' to different enumeration type
'enum gsm48_reject_value' [-Wenum-conversion]
Change-Id: I0b820bb2a8e561682a8158fc51bd9565f5912d56
|
|
Change-Id: Iaa2962bfe67902f6b4aa944b73fa97db46bc9c54
|
|
I'm not sure why so many files (particularly written by Neels)
did contain a GPLv2+ header, instead of the AGPLv3+ which is the
actual overall project license. I consider it a mistake.
In any case, any copyrightable contribution to those files was done by
sysmocom employees, so I as managing directory can legally make a
license change, whther or not it was a mistake early on or not.
The only GPLv2-or-later file remaining is mncc_internal.c, as it has
more contributors and a longer history.
Change-Id: I8650697592b3160c4d0a7c61ae9c46d4aacb3bef
|
|
(Same as osmo-bsc I47c9011b5e0e2886d221e34e6aa281d1dd0495c7)
*.vty tests are picked up by the Makefile.am by means of a wildcard --
they are run when they are there. So when you forget to add it to
EXTRA_DIST, it will be run in your local build tree, but it will be
silently omitted from a distribution tar, and nothing will complain
about it gone missing.
Instead, also use a *.vty wildcard in EXTRA_DIST. So any *.vty test
added to the git source will both be run *and* included in distribution
tars implicitly.
So far, test_neighbor_ident.vty was missing from the distribution.
Change-Id: Id28e020fc59b83d1b4cd0e5b72314a46bea62259
|
|
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
|
|
When we get the codec filter result logged, it is most interesting to
know the caller. So wrap a file-line macro around trans_cc_filter_run().
Change-Id: I243404487c1871e921b08098086ef2fc78a5561d
|
|
The comments indicating which two "members" are identical are
inaccurate. (One of them is a macro pointing at the other.)
Change-Id: Ifaa2f361db77cd0ed3ad39d6ca197195b9354ea1
|
|
Change-Id: I1d281f61497336783126aef39165426523b22112
|
|
No functional change, only more readable code.
Change-Id: I3c4e29cb240e2a9a00bc9dd065ec85a5e8d8fe38
|
|
Currently the CSD check is in the middle of figuring out the voice codec
for normal voice calls. Rather do the CSD check first, and then do voice
in one coherent section.
(prep for upcoming change in this code, to support AMR rate selection.)
Change-Id: Ibd21f0bb46c66a406904105564ce961a8760cbe7
|
|
Before the codec filter, it would have been the CN side codec, but now
it is only the codec that the RAN reports as assigned, fed into the
codecs filter.
(prep for upcoming change in this code, to support AMR rate selection.)
Change-Id: Ie7966099c5565013018734b0c2028484c24341a7
|