aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmsc
AgeCommit message (Collapse)AuthorFilesLines
2017-12-01MNCC: Add IMSI to CALL CONFIRM messageAndreas Eversberg1-0/+4
LCR requires IMSI to correlate calls for MPTY (multi party conference) and ECT (call transfer).
2017-12-01nitb: Add a test command for stress testing all BTSsHolger Hans Peter Freyther1-0/+31
Add a VTY command that will attempt to all allocate all lchans that can provide a SDCCH. This can be used to stress-test a BTS and the radio link timeout and activation/release of it.
2017-12-01HO: New improved handover algorithmAndreas Eversberg1-1/+2
The handover algorithm selects the best cell, tries to solve congestion of cells and forces handover in case of bad radio link: Handover shall ensure that the mobile station is always on the best cell during a call. This results in best speech quality and allows a lower TX level (up-link) to save battery and reduce interference. Sometimes this is not desirable, especially if a cell with large coverage becomes congested after handover. In this situation it makes sense to balance the usage between cells to prevent congestion. If a cell is congested, one or several mobile stations need to be handovered to a different cell, even if that cell is not the best cell for these mobile station. In case that a mobile station needs to handover to prevent a loss of radio link, it makes sense to handover it to a cell that is congested afterwards. In this situation, a different mobile station on the congested target cell can be handovered to a non-congested neighbor cell, to solve or balance the congestion. Because congestion of TCH/F and TCH/H is handled individually or bad quality might require change from TCH/H to TCH/F, assignment instead of handover might be used to change the channel within the same BTS. This new algorithm handles both assigment and handover depending on the target BTS.
2017-12-01Debug messages show which unsupported codecs are removed from bcap and whyAndreas Eversberg1-17/+62
2017-12-01HO: Improve silent call featureAndreas Eversberg2-17/+52
Since we use late assignment now, we must assign requested channel after paging response.
2017-12-01HO: Allow assignment trigger via VTY commandAndreas Eversberg1-9/+12
If handover is triggered without a BTS given, the handover logic will use assignment instead of handover.
2017-12-01HO: In case of assignment failure, release all call control transactionsAndreas Eversberg2-0/+15
If the initial assignment to the TCH channel fails, the call is released and the MNCC application receives cause 41 (Temporary Failure).
2017-12-01HO: Bultin MNCC application ignores lchan_type and uses selected codecAndreas Eversberg1-29/+33
The lchan_type depends on selected codec, but in case of AMR, this can be any lchan_type (TCH/F or TCH/H). The actual rate of both peers are not relevant for ARM, because voice data is compatible.(*) *: The rates must match. This is not yet considered.
2017-12-01HO: MNCC interface uses lchan_mode and lchan_type to modify channelAndreas Eversberg1-2/+68
The MNCC application must provide the lchan_type with the lchan_mode, since FR and HR codec depends on given lchan_type. In case of AMR, the lchan_type is ignored and an available channel type is selected. In case of EFR, the given lchan_type (must be full rate) is used.
2017-12-01HO: Remove all TCH rates from bearer capability that are not availableAndreas Eversberg1-0/+11
When the MNCC application negotiates the codec, it must be sure that the TCH rates of the neotiation results can be assigned to the MS. Therefore not only the codecs that are unsupported by BTS are removed, but also the codecs that require channels that are not available.
2017-12-01HO: Store bearer capabilities of MS at connection structure for later useAndreas Eversberg1-0/+10
Handover might require change in codec, especially when switching between AFS (AMR on TCH/F) and AHS (AMR on TCH/H). In this case the handover decision must know if a different target rate is supported by the MS or not.
2017-12-01HO: Move handover config from GSMNET to BTS nodeAndreas Eversberg1-15/+8
This is required for individual BTS configuration.
2017-12-01Fix: Handle CM service request on already secured channel correctlyAndreas Eversberg1-0/+5
A CM service request must be acknowledged also, when encryption is already enabled. Without encryption enabled, the security status is GSM_SECURITY_NOTAVAIL, which causes a CM service acknowledge. On initial CM service request, the security status is GSM_SECURITY_SUCCEED, if encryption is enabled. This will not lead to an acknowledge, because the cyphering command implies an acknowlege. An additional CM service request requires an acknowledge, so I added a new security status: GSM_SECURITY_ALREADY
2017-12-01Allow handling of TCH/F and TCH/H frames from layer 4Andreas Eversberg1-2/+3
2017-12-01osmo-nitb support for codec negotiationAndreas Eversberg3-63/+105
Since codec negotiation is done automatically, there is no need to define codec for TCH/F and TCH/H via VTY anymore.
2017-12-01Fix: If half rate channel is used, indicate hr when modifying channel modeAndreas Eversberg1-1/+2
2017-12-01Add check for non existing lchan at tch_frame_down()Andreas Eversberg1-0/+4
Traffic cannot sent to BTS, if there is (currently) no logical channel associated with the transaction.
2017-12-01Use helper function to check is an MNCC frame is data (speech/traffic)Andreas Eversberg2-19/+3
2017-12-01Each BTS can be configured for speech support (other than GSM full rate)Andreas Eversberg1-0/+28
Speech codings which are not supported by BTS will be removed from the bearer capability information element after parsing. This way it is not required for the MNCC application to consider support of each BTS. Only GSM full rate is supported by default.
2017-12-01Finished support for all codecs (RTP bridge and MNCC interface)Andreas Eversberg4-8/+16
The codes is not yet tested. AMR rate is currently fixed to 5.9k.
2017-12-01Allow dynamic RTP payload types between application and MNCC interfaceAndreas Eversberg1-0/+2
Since EFR/AMR/HR codecs use dynamic RTP payload, the payload type can be set. If it is set, the frame type must be set also, so OpenBSC knows what frame types are received via RTP. This modification only affects traffic beween application and MNCC interface, not the RTP traffic between OpenBSC and BTS.
2017-12-01Adding handling of BFI (Bad Frame Indicatior) of received TRAU framesAndreas Eversberg1-2/+4
If a bad TRAU frame is received, it is forwarded to MNCC application as GSM_TCHF_BAD_FRAME. The application can now handle the GAP of missing audio. (e.g. with extrapolation) If TRAU frames are forwarded via RTP, bad frames are dropped, but frame counter and timestamp of RTP sender state is increased.
2017-12-01Adding traffic forwarding via RTP to remote applicationAndreas Eversberg4-38/+161
Instead of forwarding traffic through MNCC interface, traffic can now be forwarded to a given RTP destination. A special MNCC message is used for that. The traffic can still be forwarded through MNCC interface when this special MNCC message is not used. It also works with E1 based BTSs. In conjunction with LCR's "rtp-bridge" feature, the RTP traffic can be directly exchanged with a remote SIP endpoint, so that the traffic is not forwarded by LCR itself. This way the performance of handling traffic only depends on OpenBSC and the remote SIP endpoint. Also the traffic is exchanged with the SIP endpoint without transcoding, to have maximum performance.
2017-12-01DROP openbsc PATH ELEMENT FOR MERGINGNeels Hofmeyr23-0/+11920
Change-Id: I8f6dd67b53c1ecff88e17baa4f7417a68466990f