Age | Commit message (Collapse) | Author | Files | Lines |
|
LCR requires IMSI to correlate calls for MPTY (multi party conference)
and ECT (call transfer).
|
|
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.
|
|
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.
|
|
|
|
Since we use late assignment now, we must assign requested channel after
paging response.
|
|
If handover is triggered without a BTS given, the handover logic will
use assignment instead of handover.
|
|
If the initial assignment to the TCH channel fails, the call is released
and the MNCC application receives cause 41 (Temporary Failure).
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
This is required for individual BTS configuration.
|
|
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
|
|
|
|
Since codec negotiation is done automatically, there is no need to define
codec for TCH/F and TCH/H via VTY anymore.
|
|
|
|
Traffic cannot sent to BTS, if there is (currently) no logical channel
associated with the transaction.
|
|
|
|
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.
|
|
The codes is not yet tested.
AMR rate is currently fixed to 5.9k.
|
|
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.
|
|
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.
|
|
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.
|
|
Change-Id: I8f6dd67b53c1ecff88e17baa4f7417a68466990f
|