It's unlikely to happen as long as all TCH_DATA_IOF_* variants are
handled in the switch statements, but still gcc does complain.
Change-Id: I0a81d5c4f11feb7cf73771c23848dee9ce6ec620
We already have VTY commands to configure data call parameters at
run-time, but so far there was no way to save and restore them.
This commit adds the respective commands to TCH_DATA_NODE.
Change-Id: I4453f2e7e048b3f3ebb1727f6d26f018c792c92d
Related: OS#4396
Currently we unconditionally expect the rate adaption (octet 5) in
the Bearer Capability IE to be GSM48_BCAP_RA_V110_X30. This is
correct for UDI (GSM48_BCAP_ITCAP_UNR_DIG_INF), but not for 3.1 kHz
audio (GSM48_BCAP_ITCAP_3k1_AUDIO) and fax (GSM48_BCAP_ITCAP_FAX_G3)
calls. For the later two it should be GSM48_BCAP_RA_NONE.
Change-Id: I70d36b3540ed2469068e050809a17ed07b434ad7
Related: OS#4396
So far we supported the Texas Instruments format (TCH_DATA_IOF_TI),
which is used by Calypso based phones (e.g. Motorola C1xx), but not
the format that trxcon speaks/understands (TCH_DATA_IOF_OSMO).
Change-Id: Ib17e800e91ad536db53aa55661076089f0ce34b0
Related: OS#4396
We cannot initiate V.34 data calls because gsm48_encode_bearer_cap()
does not support octet 6d. This variant should not be selectable.
Change-Id: Ibafb9a693654672fb9a6abf665c500a27c87bf22
Related: OS#4396, OS#6344
We will need to know the current Bearer Capability of a CC
transaction in the upcoming patches adding CSD support.
Change-Id: Ifc3ecf832a552c65444f49711ac836b6cd984715
Related: OS#4396
This allows driving logic in other modules based on transaction
related events, such as allocation, deallocation, or a state change.
These new signals will be used in the upcoming CSD implementation.
Change-Id: Idae5da24cb517878a26cc14b2ba6976e60f0b31b
Related: OS#4396
Fix a regression: check if Location Area Information IE fits.
Change-Id: I51e2ae1be1c51a6359f8b0faad56f654251f1413
Fixes: bb0ac02e "mobile: always check return value of tlv_parse()"
Fixes: CID#341618
A similar check was recently added to gsm48_cc_data_ind().
Change-Id: Ibc5153df41e2c6365a3c65b1906d440a1074514b
Related: 273d412a "mobile: gsm48_cc_data_ind(): check if struct gsm48_hdr fits"
The L1 PHY may emit empty TRAFFIC.ind in case of decoding errors.
Abort execution of pq_audio_sink early, otherwise we hit an assert.
Change-Id: Ice11b72ddfd51fbfb17a4c609c664b86a8f69591
* Migrate from deprecated gsm48_mi_to_string() API.
* Take a chance to unfify printing of mobile identity.
* Use osmo_load32be() for printing TMSI - this is what
the osmo_mobile_identity API does internally.
Change-Id: Ida67adaa61689c55505a89e1a1bebde041c91139
Depends: libosmocore.git If4f7be606e54cfa1c59084cf169785b1cbda5cf5
After adding the strongest cell to the measurement report, the variables
'strongest' and 'strongest_i' are used to prevent that already added
cells are added again.
Please note that there are no neighbor cell measurements available,
because current layer 1 does not report BSIC of neighbor cells. This
means that there is no neighbor cell reported.
Related: OS#6280
Change-Id: Iaeeaf978da31611c47a20af41790bfa6640dcffd
A wrong index was used, causing the first neighbor cell to be
uninitialized. This uninitialized neighbor cell was reported by
MEASUREMENT REPORT.
Related: OS#6280
Change-Id: I192c0777450cbe24abb3c7c8736c678b97725e9f
While it is correct to use the band indicator from SI1 rest octets,
it may only be applied for ARFCN values in the range 512..810.
The function gsm_refer_pcs() is used to determine, if the cell (which
'talks' about ARFCNs) refers to them PCS or DCS channels. It returns
true, if it refers to PCS, but this only means that ARFCNs in the range
512..810 are PCS channels, not all ARFCNs.
The new function gsm_arfcn_refer_pcs() is used to add the PCS flag to an
ARFCN, if the given cell refers to PCS and the given ARFCN is in the PCS
range 512..810.
Change-Id: Id99c8534bf853f4f24f99364790c1ac1df6cc007
Related: OS#6078
Setting the flag was not required in earlier versions of libosmogsm,
because this feature was enabled by default.
The roundtrip delay for a LAPD link must be less than T200.
Osmocom-bb runs LAPDm on the host machine via serial interface and USB
interface that may cause a roundtrip delay that exceeds T200. Also
osmo-bts may have that problem, due to latency between physical
interface and osmo-bts software.
What may happen:
An I frame gets lost.
The sending side transmits the next I frame. The receiving side detects
the send-sequence error and responds with a REJ frame.
Due to the round trip delay, the T200 expires on the sending side and
causes the I frame to be retransmitted with the P bit set, it enters
the timer recovery state. The receiving side detects the send-sequence
error and responds with a REJ frame with the F bit set.
The sending side will then receive two REJ frames. The first REJ frame
will clear the timer recovery state. The second REJ frame (with F bit
set) is received when not in timer recovery state, causing an
MDL-ERROR-INDICATION.
The layer 2 connection is broken.
Early tests with osmocom-bb in a real network showed exactly this
problem.
The solution is to suppress every second REJ frame at the receiving
side, until the sequence error condition is cleared. If the first REJ
frame gets lost, the sending side would retransmit the I frame again
after another expiry of T200. Then the receiving side would respond
with a REJ frame again.
Relates: OS#5969
Depends: libosmocore.git I93994dbbd1fc2c9edb8f3015c6b18ecd0fce0565
Change-Id: Iaa1645fb1970fe513d71bc1b03f7c5eac62f35d7
Not only this function can be used to transmit a voice frame,
but also a data frame during a CSD call.
Change-Id: I920300ae477e3c3d7c413cd1a35f2bc385266960
Related: OS#4396
Before we add handling of TCH I/O for data calls, let's rename the
existing voice related symbols and struct fields to have 'voice'
in their names.
Change-Id: If6c799d11e225ad00ca5da5ae63dca20568a0ce0
Related: OS#4396
This patch implements the signalling part for mobile originating
and mobile terminating CSD calls. The user plane interface is
to be implemented in follow-up patches.
Change-Id: I1995fa0a7a68d9b980852b664d472d4633777ac6
Related: OS#4396
This option must be enabled in the VTY and is disabled by default.
Calls can be joined when service is limited or normal. With that option
enabled, calls can be joined even with invalid SIM.
Talking is allowed when service is normal. With that option enabled,
talking is always allowed. It depends on the network, if it accepts the
talker.
Change-Id: I6ea851a8cb015ff685b985335968c6184beca816
Related: OS#5364
Use TMSI only if valid in the current location area. If the MS moves to
a different location area and joins a group call before location update,
TMSI is not valid. Then use IMSI instead. If no IMSI/TSMI is available,
send mobile identity without IMSI/TMSI.
Change-Id: I299604a0e12d91e9133b70757826ac9637da0e3e
Related: OS#5364
If joining a call gets rejected, the call must not be released, instead
it must return to U3 state (incoming call), because the call still
exists in the cell and it might possible to join it later.
If a call notification is gone, a new event is used in the state machine
to release incoming call.
Change-Id: I605387c6be409ef0e67caf7b9e2a83e1032b45f1
Related: OS#5364
This patch prepares for adding MT data call support:
* Move handling of the Bearer Capability IE into a function.
* Check transfer mode and coding standard in the received BCap.
Change-Id: I3a5cac8c35ba6b7bdc5fcb077690b32848747756
Related: OS#4396