9
0
Fork 0
Commit Graph

5186 Commits

Author SHA1 Message Date
Philipp Maier 8761c965ff mgcp: Fix missing call id in DLCX
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-28 18:22:46 +02:00
Philipp Maier 40703dd1f4 a_iface: use vty to configure BSC/MSC connections
Use the VTY to configure the connections between BSC and MSC
on both sides.

We now can add new connections, we also can write the config,
removing existing connections is implemented on the MSC side,
but not yet on the BSC side.
2017-06-28 13:35:10 +02:00
Philipp Maier 030312043a wip: vty: make msc sccp addressesconfigurable
Currently all sccp addresses on the msc (and bsc)
side are hardcoded.

Prepare the msc code to make the associated BSCs
configurble. Make the compiler link libosmo-sccp
properly and start using the sccp addressbook
feature of libosmoc-sccp.
2017-06-23 10:23:43 +02:00
Philipp Maier e1257c75a6 fixup: rename gsm0808_extrapolate_speech_codec()
Libosmocore renames gsm0808_extrapolate_speech_codec() to
gsm0808_speech_codec_from_chan_type()
2017-06-23 10:23:43 +02:00
Philipp Maier b5b809da0b reset: fixup for reset
We now perform the reset procedure on both sides. Also both sides
will clear now their open SCCP connections.
2017-06-21 13:18:07 +02:00
Philipp Maier c621464e11 wip: a_iface: MSC sided reset 2017-06-20 14:32:51 +02:00
Philipp Maier bbd32cddf8 a_iface: fix typo in function name 2017-06-20 14:32:51 +02:00
Philipp Maier 3c8f08c787 a_iface: Check if channel type and speech codec list are successful
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-20 14:32:51 +02:00
Philipp Maier 804e2d5d2c rsl: fix stray line break in logtext
The log output from the rsl layer injects line breaks at wrong
places in the log. This messes up the logtext. This commit fixes
the problem.
2017-06-20 14:32:51 +02:00
Philipp Maier 8185a941f8 mgcp: fix line-break problem in log
When the mgcp_client prints MGCP strings in the log text, it does
not remove the line break before printing. This will mess up
the log text. This patch removes the line break characters before
printing properly.
2017-06-20 14:32:51 +02:00
Philipp Maier 51d2a33542 osmo-bsc: react on reset requests from MSC
The bsc side currently can not receive reset commands from an
MSC. This patch adds required functionality to receive a reset
command and acknowlege it properly. The effects are the same
as with when sending resets (all drop all ongoing calls and
sccp connections)
2017-06-18 17:50:09 +02:00
Philipp Maier 738cc1106c libcommon-cs: genralize a interface reset fsm
The AoIP standard also describes an MSC->BSC reset procedure. We
currently do not implement it. However, the fsm that is used to
issue the reset request from the bsc side is not generalized. This
patch generalizes the code in order to be able to use the same
code on the MSC side to perform a reset procedure from there.
2017-06-18 17:50:09 +02:00
Philipp Maier 2abf6b0200 fixup: remove unused counter
Forgot to remove the counter struct osmo_timer_list msc_reset_timer;
Needs to be fixuped into the reset handling patches
2017-06-18 17:50:09 +02:00
Philipp Maier 5cb12d0a2c sccp-lite: remove old sccp-lite code
in osmo_bsc_sccp.c all code is commented out. There is no point
in keeping the file. This commit deletes it.
2017-06-18 17:50:09 +02:00
Philipp Maier 151feb99c3 osmo-bsc: Send USSD notification when an MSC loss is detected
the old sccp-lite based imlementation offered support for sending
an USSD notification as soon as a loss of the MSC connection is
detected. This is done before forcefully dropping the affected
connection.

This commit ports the feature to the new libosmo-sigtran
implementation.

NOTE: I do not know if this works and I also do not really
understand how this is even possible. Sending an USSD notification
would rquire the subscriber to be properly attached? When the MSC
is lost this almost not possible since no backend to authenticate
against is available.
2017-06-18 17:50:09 +02:00
Philipp Maier b64c23440e cosmetic: make function names in a_iface_bssap more expressive.
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-18 17:50:09 +02:00
Philipp Maier 0f82438059 cosmetic: more expressive function names in a_iface
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-18 17:50:09 +02:00
Philipp Maier 7d98e0058c fixup: return with value in void function 2017-06-18 17:50:09 +02:00
Philipp Maier 39f3b1109d mgcp: make bts base port configurable
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-18 17:50:09 +02:00
Philipp Maier 778e14a51e Revert "mgcp: make sure all endpoints are closed on startup"
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-18 17:50:09 +02:00
Philipp Maier 7a36bbad99 mgcp: Make sure endpoint is free on CRCX
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-18 17:50:09 +02:00
Philipp Maier 41c0e21364 a_iface_bssap: clear lingering subscriber connections on reset
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-18 17:50:09 +02:00
Philipp Maier 456d3c44d1 cosmetic: fix typo 2017-06-18 17:50:09 +02:00
Philipp Maier 9b5dee4e33 mgcp: make sure all endpoints are closed on startup
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-18 17:50:09 +02:00
Philipp Maier 21521acd3f mgcp: make structs accessible from outside
struct mgcpgw_client and struct mgcp_inuse_endpoint are not
accessible from outside, making it difficult to look in the
mgcp client properties and status. The commit moves the
structs into the header file.
2017-06-18 17:50:09 +02:00
Philipp Maier cf04ac42b1 mgcp: release no longer used endpoint identifiers
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-18 17:50:08 +02:00
Philipp Maier d7bf0dcae8 mgcp: improve endpoint management
Currently the assignment of endpoint identifiers works by just
incrementing a counter. The mgcpgw only has a limited amount
of endpoint identifiers avaliable, this means we will run out
of endpoints after only a few calls.

This commit adds a mechanism to keep track of used endpoint
identifiers so unused endpoint identifiers can be re-used
2017-06-18 17:50:08 +02:00
Philipp Maier b8012aad09 mgcp: use mgcp DLCX command to terminate endpoint after call is done
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-18 17:50:08 +02:00
Philipp Maier 188a804f6d mgcp: add DLCX command to mgcpgw client
The mgcpgw client currently lacks support for DLCX. This patch
adds a generator function to generate a DLCX command as well.
2017-06-18 17:50:08 +02:00
Philipp Maier 1728a6eb18 cosmetic: fixing coding style 2017-06-18 17:50:08 +02:00
Philipp Maier 277ccecb67 fixup: in osmo-bsc-sigtran.h header (bsc_msc_data.h) was missing 2017-06-18 17:50:08 +02:00
Philipp Maier 8b0d8a97fb osmo-bsc: Handle RESET/RESET-ACK properly
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-18 17:50:08 +02:00
Philipp Maier fabe468dd4 sccp: Use osmo-stp instead of direct server/client connection
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-18 17:50:08 +02:00
Philipp Maier 926f84a2a3 fixup for: aoip: signal channel type to BSC
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-18 17:50:08 +02:00
Philipp Maier 9f15ac5ba0 aoip: signal channel type to BSC
obtain the permitted speech and the prefered channel parameters
and signal it to the MSC with the channel type field.
2017-06-18 17:50:08 +02:00
Philipp Maier dfe085d979 osmo-msc: Integrate A interface into existing call control
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-18 17:50:08 +02:00
Philipp Maier e818b91729 osmo-bsc: Negotiate rtp ip address/port with BTS
This patch adds the support for the RTP IP-Address/Port assignment.
The post communicated via the assignment request is now transmitted
via RSL/IPACC to the BTS. The Response containing the RX-Port at
the BTS side is communicated back to the MSC.

Since we plan to add a private MGCPGW to each BSC, this has to
be extended. Currently it only creates a direct connection to
the BTS. This will be introduced with a future patch.
2017-06-18 17:50:08 +02:00
Philipp Maier 805b83a1ef fixup: Hexdump for incoming unit data was missing 2017-06-18 17:50:08 +02:00
Neels Hofmeyr 8ac978bd64 comment: fixme to cleanup MGCP ports
Related: OS#2279
Change-Id: Iaf4877ad1c6446609715094d785e9be93c9e0429
2017-06-18 17:50:08 +02:00
Neels Hofmeyr 23b5ace90e msc: enable basic CTRL commands
So far CTRL was not used by anyone, and was still disabled from the initial
implementation of the OsmoMSC. Now we need it in osmo-gsm-tester.

Only add the MSC specific CTRL commands, the bsc_base_ctrl_cmds_install() still
needs to be split up.

Change-Id: Id8f72000e0f4dea081bfce94fde8cd54290dfa7d
2017-06-18 17:50:08 +02:00
Neels Hofmeyr 8d49f40280 sgsn: add missing osmo_ss7_init()
Change-Id: I7abe7a96fc4f46757605a75334a3bd240f54faf3
2017-06-18 17:50:08 +02:00
Neels Hofmeyr 832a69181b drop libosmo-ranap from sms_queue test
Change-Id: I0afd8e4db3c84fd1265d3903e389c5164ea73335
2017-06-18 17:50:08 +02:00
Neels Hofmeyr 50f36fe409 wip iudummy struct osmo_sccp_addr -- drop this?
Change-Id: I90b807b1c6f2a3e86c81c0906168f8c0fc5440b3
2017-06-18 17:50:08 +02:00
Philipp Maier 76174d9dd9 WIP: Integrate AoIP into MSC 2017-06-18 17:50:08 +02:00
Philipp Maier e3aca93630 libmsc: make pitfall in gsm0408_dispatch() more obvious
The function gsm0408_dispatch() accepts a message buffer pointer
and accesses the l3h pointer. Even in a properly allocated
message buffer, this may lead into a segfault if the user forgets
to set the l3h pointer. This commit adds assertions to popup a
more expressive error message.
2017-06-18 17:50:08 +02:00
Philipp Maier 0923fc6707 WIP: Integrate AoIP into OsmoBSC 2017-06-18 17:50:08 +02:00
Harald Welte 22593b2cef WIP: Port to new libosmo-sigtran API (with proper M3UA for Iuh)
This changes over to the new libosmo-sigtran API with support for
proper SCCP/M3UA/SCTP stacking, as mandated by 3GPP specifications for
the IuCS and IuPS interfaces.

Only the ASP (client) is used, assuming that both the HNB-GWs and RNCs
as well as the MSCs and SGSNs are all connecting as ASP to some STP/SGW
which offers M3UA server functionality as well as point-code and/or
global title based routing.

Tweaked-by: nhofmeyr (test expectation)
Change-Id: If0ff956fbf1484899d59ae1a5885543bca31645b
2017-06-18 17:50:08 +02:00
Daniel Willmann 99d3a8836d examples/sgsn: Use osmo-hlr with auth-policy remote by default
Change-Id: I28502ab88cb73d407c8b503d8b28491e909ad194
2017-06-18 17:50:08 +02:00
Daniel Willmann 139bbb9ff7 contrib: Change systemd requirements so the services connect properly
Change-Id: Id5bfbcd0d906d1aa9c2de9cb7a0e7d0053ea2375
2017-06-18 17:50:08 +02:00
Daniel Willmann 463123d5b3 examples: Change IP address of config files
This helps in providing 3G software packages for the sysmoNITB hardware.

Change-Id: I99ba316be1088c10496025325dfe03035892d394
2017-06-18 17:49:00 +02:00