Age | Commit message (Collapse) | Author | Files | Lines |
|
To prevent a situation where one ore more seized enpoints stay
seized after an MSC crash (information loss, endpoints can not
be released) we send a DLCX command before making new connections
on the MGCP-GW. This method is loud and hackish.
Remove all functionality that sends a DLCX before making a new
connection.
Enable force_realloc functionality in the MGCP code in order to
have seized enpoints automatically released on new connections,
in case they are seized
|
|
In case of an IMSI Detach, we don't have a conn_fsm, yet we still need to send
release messages. Hence directly release the conn in msc_subscr_conn_close()
when there is no conn_fsm present.
Move the conn release actions from the conn_fsm cleanup function to new
function msc_subscr_conn_release_all(). From the FSM cleanup, call
msc_subscr_conn_close(), and invoke msc_subscr_conn_release_all() from there.
Document msc_subscr_conn_close() behavior.
Change-Id: Ied6981099605ad803f8ffed38f23ed8203a97727
|
|
Adjust test expectations.
Note: this marks all the places where we are so far failing to send a
Clear/Release, where during an IMSI Detach the log now says "no conn fsm,
ignore".
In msc_vlr_test_reject_concurrency, the places are marked "already in release"
because these tests for simplicity have a rather peculiar sequence of sending
an IMSI Detach right after a CM Service Request, on an open connection.
Change-Id: I1c4dc4e5afce3bcb98237e3506300c78d7e4584f
|
|
Match the log message for known subscriber to the one for unknown subscriber.
Change-Id: I73871089036c9fd301e818eaaf48142aaf295d09
|
|
Change-Id: Ieba69e4014213b18c18282dd724e202cce85a047
|
|
0001-imsi-detach-improve-error-logging.patch
0002-imsi-detach-always-close-connection-explicitly.patch
|
|
The clear command is currently triggered from the wrong place.
This is a fixup that corrects that. However, it will introduce
another problem: The clear command is not sent on detach.
Adjust test expectations.
Change-Id: Ia27d7e94cb11adf351457b3b0e98a5c9d5070fbf
|
|
|
|
The clear command is sent via the A-Interface for both,
A and IuCS connections. This is wrong.
Only send the clear command for connections related to
the A-Interface, which means only for connections where
the RAN is set to GERAN
|
|
|
|
The external mncc currently does not work properly since the
MNCC_RTP_CREATE commands are removed due to the MSC-Split. It
is possible to operate without these commands, but then it is
not possible to route the RTP streams to an outside leg. Only
internal bridging is currenlty possible. This method is used
when the internal MNCC is enabled.
Add the missing MNCC_RTP_CREATE implementation.
Add logic to keep the old bridging mode working.
|
|
|
|
When a subscriber connection is freed on the MSC side (the
conversion is over) the MSC should send a clear command to
the BSC in order to inform the BSC that the connection is
over. Currently this step is missing. Instead we wait for
the BSC to issue a clear request. This is not as it should
be, connections should be actively cleared by the MSC.
Add the missing clear command
|
|
|
|
|
|
|
|
|
|
The allocation and usage of the iu struct was accidentally
re-introduced into a_iface_bssap.c.
Remove the allocation and the usage of iu struct.
Related to:
aoip: don't use iu struct: do not allocate unnecessary ue_conn_ctx
|
|
|
|
|
|
|
|
|
|
|
|
finish the implementation for msc sided reset, automatically
register connecting BSCs.
Ensure that all sccp connections are cleared when the reset
procedure executes.
|
|
The call id field in the DLCX message is missing. Use the endpoint
id as call id in all CRCX and DLCX messages.
|
|
Change-Id: I2ec2ecc2e3dcf0493168de6091d7fa4cfa028645
|
|
Change-Id: I6430d4704f5caf33275d403df93c222848b5b3ff
|
|
Move osmo_sccp_simple_client() setup out of iu_init() and a_init().
In msc_main.c and sgsn_main.c, initialize the STP connection first and then
pass to iu_init() and a_init().
This allows serving 3G (IuCS) and 2G (A) from one and the same MSC instance.
Since both OsmoHNBGW and OsmoBSC are using PC 23 by default now, move BSC to PC
42 (because OsmoBSC typically has vty port 4242, bla).
Also:
a_iface.c: remove now unused defines
a_init(): remove osmo_ss7_init() call that duplicated msc_main.c
Change-Id: Ib1fb13ea756655f7e9d43636d497a54e6ae9c032
|
|
Change-Id: I10e899777e21bf1dbfba1e7e692d7017593e5f38
|
|
|
|
Currently we do not check for errors during the generation of
channel type and speech codec list. This might blow an assertion
in gsm0808_create_ass if the generated data is invalid. So
we need to check beforehand.
|
|
Change-Id: Ic659d6d79a6284732e1837f8b0947e8a128ddd87
|
|
The function names in a_iface_bssap.c are not very expressive.
The problem not only exists on the API side, but also for static
functions. This patch replaces the function names with more
expressive names.
|
|
The function names if the API function in a_iface.c are not
very expressive. Besides of that, the prototypes are in the
wrong header file. This commit gives the function more
expressive names and moves the prototypes in the right header
file.
|
|
|
|
Currently the rtp base port of the BTS is hardcoded (4000) and not
configurable. This patch adds VTY configuration options to make
it adjustable.
|
|
Clearing all endpoints by sending a DLCX on startup has ben found
to be a bit too offensive. It also will not help against
inconsitancies that may occour during runtime (e.g. an overheard
DLCX during regular call teardown).
This reverts commit b669ea94cb78fd9b56ee8dd9392538151349f8ba.
|
|
The MSC is aware of the assigned endpoints at all times, so it
will not assign an occupied endpoint to someone else. However,
if it has just restarted, there maybe lingering open endpoints.
This patch introduces a fairly simple soultion. Before a new
endpoint is seized (CRCX), a DLCX is send in advance. If the
endpoint was still occupied with a dead connection, it will
be freed. If it was free anyway, the DLCX will just have no
effect.
|
|
When the BSC is vanishing, the subscriber connections will stay
active until the MSC is instructed via tha A interface to clear
the connections. Unfortunately, this will most likely not be
the case because the BSC will most likeley have lost all its
state and does not know about the old connections anymore.
This patch fixes the problem by looping through the list with
the active gsm subscriber connections and clearing them manually
when the reset from the BSC is received. Only connections by the
bsc who actually executes the reset are affected. Connections
from other BSCs will not be touched.
|
|
If the MSC is crashing and restarting, it may leave some endpoints
open. The endpoints can not be re-used until they are deleted
(DLCX). This patch sends a DLCX to all possible endpoints (usually
this is in a countable range) in order to clear possible open
endpoints from a previous run
|
|
When an MGCP endpoint is deleted, we need to mark its endpoint
id as unused, so other calls can used it. This is currently not
happening. This patch fixes that.
|
|
Currently no DLCX command is sent to the mgcpgw when a call is over,
this leaves the endpoint open. This means that the endpoint can not
never be reused by other calls. This patch adds a DLCX that
terminates the the endpoint when the call is done.
|
|
|
|
Improve the way the BSC executes its RESET/RESET-ACK sequence.
Currently only a simple bool variable serves as a state holder.
We set this variable to true when we receive the RESET-ACK
message. Unfortunately no further checking is done. This
patch replaces the old mechanism with a more elaborated
implementation which also detects a loss of the connection
and makes sure to reconnect properly afterwards. Also the
all open connections are closed on connection loss
|
|
This patch adjusts the code to use osmo-stp. This is only an
intermediate solution, since we still have hardcoded parameter.
Next step is to use the VTY options from libosmo-sigtran to
issue the configurations.
|
|
The channel type and the speech codec element is now
signalled to the BSC. The BSC checks both fields and
select a codec by its preference. The choosen speech
codec and the choosen channel (type) is returned to
the MSC. Currently the MSC ignores the return values
|
|
obtain the permitted speech and the prefered channel parameters
and signal it to the MSC with the channel type field.
|
|
The MSC already has some basic call control handling mechanism, that
was primarily used with 3G before. However, the already existing
code that handles the 3G calls is also perfectly fine for handling
2G calls. This commit integrates the A interface without breaking
it for 3G.
|
|
|
|
|