path: root/openbsc/src/libmsc/a_iface.c
AgeCommit message (Collapse)AuthorFilesLines
2017-08-23osmo-msc: point codes in human readable formPhilipp Maier1-8/+21
use osmo_sccp_addr_name() instead of osmo_sccp_addr_dump()
2017-07-14fixup: fix typoPhilipp Maier1-1/+1
2017-07-07a_iface: fix missing clear commandPhilipp Maier1-0/+11
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 Maier1-0/+6
2017-07-07a_iface: add missing staticPhilipp Maier1-1/+1
2017-07-03a_iface: remove unused variablePhilipp Maier1-1/+1
2017-07-03osmo-msc/a_iface/reset: add missing constPhilipp Maier1-9/+10
2017-07-03osmo-msc/a_iface: add missing assertionsPhilipp Maier1-0/+12
2017-07-03osmo-msc: remove orphanned struct membersPhilipp Maier1-8/+2
2017-07-03osmo-msc: rename called/calling address in struct a_conn_infoPhilipp Maier1-5/+5
2017-06-30osmo-msc: finish msc-sided resetPhilipp Maier1-27/+187
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-28aoip: don't use iu struct: move rtp ports from .iu to new subscr_conn.rtpNeels Hofmeyr1-1/+1
Change-Id: I2ec2ecc2e3dcf0493168de6091d7fa4cfa028645
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 Maier1-3/+3
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 Maier1-5/+5
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-18osmo-bsc: Handle RESET/RESET-ACK properlyPhilipp Maier1-0/+28
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 Maier1-6/+106
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 Maier1-8/+14
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 Maier1-21/+197
2017-06-18Implement IuCS (large refactoring and addition)Neels Hofmeyr1-0/+8
osmo-nitb becomes osmo-msc add DIUCS debug log constant add iucs.[hc] add msc vty, remove nitb vty add libiudummy, to avoid linking Iu deps in tests Use new msc_tx_dtap() instead of gsm0808_submit_dtap() libmgcp: add mgcpgw client API bridge calls via mgcpgw mgcp: hack RAB success from nano3G: patch first RTP payload The ip.access nano3G needs the first RTP payload's first two bytes to read hex 'e400', or it will reject the RAB assignment. Add flag patched_first_rtp_payload to mgcp_rtp_state to detect the first RTP payload on a stream, and overwrite its first bytes with e400. This should probably be configurable, but seems to not harm other femto cells (as long as we patch only the first RTP payload in each stream). Only do this when sending to the BTS side. Change-Id: Ie13ff348117e892d41b8355ab6c24915301eaeaf
2017-06-18mscsplit: various preparations to separate MSC from BSCNeels Hofmeyr1-0/+45
Disable large parts of the code that depend on BSC presence. Don't set msg->lchan nor msg->dst. Don't use lchan in libmsc. Decouple lac from bts. Prepare entry/exit point for MSC -> BSC and MSC -> RNC communication: Add msc_ifaces.[hc], a_iface.c, with a general msc_tx_dtap() to redirect to different interfaces depending on the actual subscriber connection. While iu_tx() is going to be functional fairly soon, the a_tx() is going to be just a dummy for some time (see comment). Add Iu specific fields in gsm_subscriber_connection: the UE connection pointer and an indicator for the Integrity Protection status on Iu (to be fully implemented in later commits). Add lac member to gsm_subscriber_connection, to allow decoupling from bts->location_area_code. The conn->lac will actually be set in iu.c in an upcoming commit ("add iucs.[hc]"). move to libcommon-cs: gsm48_extract_mi(), gsm48_paging_extract_mi(). libmsc: duplicate gsm0808 / gsm48 functions (towards BSC). In osmo-nitb, libmsc would directly call the functions on the BSC level, not always via the bsc_api. When separating libmsc from libbsc, some functions are missing from the linkage. Hence duplicate these functions to libmsc, add an msc_ prefix for clarity, also add a _tx to gsm0808_cipher_mode(): * add msc_gsm0808_tx_cipher_mode() (dummy/stub) * add msc_gsm48_tx_mm_serv_ack() * add msc_gsm48_tx_mm_serv_rej() Call these from libmsc instead of * gsm0808_cipher_mode() * gsm48_tx_mm_serv_ack() * gsm48_tx_mm_serv_rej() Also add a comment related to msc_gsm0808_tx_cipher_mode() in two places. Temporarily disable all paging to be able to link libmsc without libbsc. Skip the paging part of channel_test because the paging is now disabled. In osmo-nitb, paging is done on BSC level and MSC level "at the same time". When the new MSC is fully operational, paging will be controlled separately on the MSC level, and the BSC (RNC) level will be instructed over an IuCS or A-interface to negotiate paging with the MS (UE). This MSC level paging does not yet exist and will be added in subsequent commits. msc_compl_l3(): publish in .h, tweak return value. Use new libmsc enum values for return val, to avoid dependency on libbsc headers. Make callable from other scopes: publish in osmo_msc.h and remove 'static' in osmo_msc.c add gsm_encr to subscr_conn move subscr_request to gsm_subscriber.h subscr_request_channel() -> subscr_request_conn() move to libmsc: osmo_stats_vty_add_cmds() gsm_04_08: remove apply_codec_restrictions() gsm0408_test: use NULL for root ctx move to libbsc: gsm_bts_neighbor() move to libbsc: lchan_next_meas_rep() move vty config for t3212 to network level (periodic lu) remove unneccessary linking from some tests remove handle_abisip_signal() abis_rsl.c: don't use libvlr from libbsc Change-Id: I9cf80f9c2c8a53a29e42f000029e680a9922cb41