aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libmsc
AgeCommit message (Collapse)AuthorFilesLines
2017-07-31mgcp: remove proactive DLCXPhilipp Maier1-13/+0
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
2017-07-22fix release upon IMSI DetachNeels Hofmeyr2-20/+34
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
2017-07-22cosmetic: add debug log to msc_subscr_conn_close()Neels Hofmeyr1-3/+15
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
2017-07-22cosmetic: tweak IMSI Detach log outputNeels Hofmeyr1-2/+1
Match the log message for known subscriber to the one for unknown subscriber. Change-Id: I73871089036c9fd301e818eaaf48142aaf295d09
2017-07-22fix handling of paging response: use conn->lacNeels Hofmeyr1-1/+1
Change-Id: Ieba69e4014213b18c18282dd724e202cce85a047
2017-07-22gsm04_08.c patches from neels (remove when committed properly)Philipp Maier1-14/+14
0001-imsi-detach-improve-error-logging.patch 0002-imsi-detach-always-close-connection-explicitly.patch
2017-07-22a-iface: move clear command to subscriber_conn.cPhilipp Maier2-4/+7
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
2017-07-22msc-vty-completePhilipp Maier1-0/+28
2017-07-14osmo_msc: only clear A-Interface connections for GSM callsPhilipp Maier1-2/+3
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
2017-07-14fixup: fix typoPhilipp Maier1-1/+1
2017-07-14mncc: make external mncc workPhilipp Maier2-91/+130
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.
2017-07-10fixup for: a_iface: fix missing clear commandPhilipp Maier1-1/+3
2017-07-07a_iface: fix missing clear commandPhilipp Maier2-0/+13
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
2017-07-07a_iface: fix missing log outputPhilipp Maier2-0/+8
2017-07-07a_iface: fix missing constPhilipp Maier1-1/+1
2017-07-07a_iface: add missing staticPhilipp Maier2-2/+2
2017-07-05msc_ifaces: add checks for nullpointersPhilipp Maier1-5/+44
2017-07-05fixup: remove allocation/usage of iu struct again.Neels Hofmeyr1-9/+5
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
2017-07-03a_iface: remove unused variablePhilipp Maier1-1/+1
2017-07-03osmo-msc/a_iface/reset: add missing constPhilipp Maier2-27/+32
2017-07-03osmo-msc/a_iface: add missing assertionsPhilipp Maier2-0/+22
2017-07-03osmo-msc: remove orphanned struct membersPhilipp Maier1-8/+2
2017-07-03osmo-msc: rename called/calling address in struct a_conn_infoPhilipp Maier2-13/+13
2017-06-30osmo-msc: finish msc-sided resetPhilipp Maier2-80/+223
finish the implementation for msc sided reset, automatically register connecting BSCs. Ensure that all sccp connections are cleared when the reset procedure executes.
2017-06-30mgcp: Fix missing call id in DLCXPhilipp Maier1-4/+7
The call id field in the DLCX message is missing. Use the endpoint id as call id in all CRCX and DLCX messages.
2017-06-28aoip: don't use iu struct: move rtp ports from .iu to new subscr_conn.rtpNeels Hofmeyr3-7/+7
Change-Id: I2ec2ecc2e3dcf0493168de6091d7fa4cfa028645
2017-06-28aoip: don't use iu struct: do not allocate unnecessary ue_conn_ctxNeels Hofmeyr1-8/+4
Change-Id: I6430d4704f5caf33275d403df93c222848b5b3ff
2017-06-23AoIP+3G: use one common SCCP client for A and IuCSNeels Hofmeyr1-12/+2
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
2017-06-23a_init: use name arg for sccp client and user bindNeels Hofmeyr1-2/+2
Change-Id: I10e899777e21bf1dbfba1e7e692d7017593e5f38
2017-06-23a_iface: fix typo in function namePhilipp Maier1-2/+2
2017-06-23a_iface: Check if channel type and speech codec list are successfulPhilipp Maier1-4/+17
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.
2017-06-23apply function renames in merged libosmocore patchesNeels Hofmeyr1-1/+1
Change-Id: Ic659d6d79a6284732e1837f8b0947e8a128ddd87
2017-06-18cosmetic: make function names in a_iface_bssap more expressive.Philipp Maier2-31/+31
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.
2017-06-18cosmetic: more expressive function names in a_ifacePhilipp Maier4-12/+15
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.
2017-06-18fixup: return with value in void functionPhilipp Maier1-1/+2
2017-06-18mgcp: make bts base port configurablePhilipp Maier1-3/+9
Currently the rtp base port of the BTS is hardcoded (4000) and not configurable. This patch adds VTY configuration options to make it adjustable.
2017-06-18Revert "mgcp: make sure all endpoints are closed on startup"Philipp Maier1-18/+0
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.
2017-06-18mgcp: Make sure endpoint is free on CRCXPhilipp Maier1-0/+11
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.
2017-06-18a_iface_bssap: clear lingering subscriber connections on resetPhilipp Maier1-2/+26
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.
2017-06-18mgcp: make sure all endpoints are closed on startupPhilipp Maier1-0/+18
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
2017-06-18mgcp: release no longer used endpoint identifiersPhilipp Maier1-1/+4
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.
2017-06-18mgcp: use mgcp DLCX command to terminate endpoint after call is donePhilipp Maier2-0/+17
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.
2017-06-18cosmetic: fixing coding stylePhilipp Maier1-3/+3
2017-06-18osmo-bsc: Handle RESET/RESET-ACK properlyPhilipp Maier2-1/+30
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
2017-06-18sccp: Use osmo-stp instead of direct server/client connectionPhilipp Maier1-12/+14
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.
2017-06-18fixup for: aoip: signal channel type to BSCPhilipp Maier1-5/+30
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
2017-06-18aoip: signal channel type to BSCPhilipp Maier2-6/+136
obtain the permitted speech and the prefered channel parameters and signal it to the MSC with the channel type field.
2017-06-18osmo-msc: Integrate A interface into existing call controlPhilipp Maier3-13/+72
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.
2017-06-18fixup: Hexdump for incoming unit data was missingPhilipp Maier1-0/+1
2017-06-18WIP: Integrate AoIP into MSCPhilipp Maier5-35/+857