Feature #2487
openMSC side of LCLS (local call local switching) as per the 3GPP specs
30%
Description
3GPP LCLS allows the media stream of a call to remain locally at the BTS, if both legs of a call are within the same BTS. We should implement this in OsmoMSC, if not only to test the OsmoBSC side which we want to implement, too.
Checklist
- LCLS implementation in OsmoMSC
- test suite for LCLS in MSC
- jenkins integration of test suite
Related issues
Updated by laforge over 6 years ago
- Related to Feature #1602: BSC side of LCLS (local call local switching) as per the 3GPP specs added
Updated by laforge about 6 years ago
- Checklist item LCLS implementation in OsmoMSC added
- Checklist item test suite for LCLS in MSC added
- Checklist item jenkins integration of test suite added
Updated by msuraev about 5 years ago
- Related to Feature #3659: handover during LCLS directly between BTSs added
Updated by msuraev about 5 years ago
Shall I take this as well? Seems like next logical step to be able to test LCLS with actual hw.
Updated by laforge about 5 years ago
On Fri, Nov 02, 2018 at 02:39:15PM +0000, msuraev [REDMINE] wrote:
Shall I take this as well? Seems like next logical step to be able to test LCLS with actual hw.
yes, please. Thanks!
Updated by msuraev about 5 years ago
- Status changed from New to In Progress
- Assignee changed from 4368 to msuraev
Updated by msuraev about 5 years ago
- Related to Feature #3691: Implement GCR parsing in wireshark added
Updated by msuraev almost 5 years ago
- % Done changed from 0 to 10
Corresponding libosmocore changes are mostly merged, there're 4 more pending patches for OsmoMSC.
N. B: current implementation is only suitable for testing due to issues with CallRef handling by transactions. This part is going to be heavily changed by intra-BSC handover work.
Updated by msuraev almost 5 years ago
- Related to Feature #3618: Inter-MSC hand-over support added
Updated by msuraev almost 5 years ago
- Related to Bug #3294: transaction: refactor callref allocation added
Updated by msuraev over 4 years ago
- Status changed from In Progress to Stalled
- % Done changed from 10 to 20
Experimental implementation available in:
https://gerrit.osmocom.org/c/osmo-msc/+/13421/
https://gerrit.osmocom.org/c/osmo-msc/+/11746/
https://gerrit.osmocom.org/c/osmo-msc/+/13422/
It's already useful enough for testing BSC-side but needs more work to properly handle HO and correctly construct GCR for all interfaces/transaction variants.
Updated by laforge about 3 years ago
- Assignee set to keith
assigning to keith, who wanted to have a look at this.
I think there's nothing fundamentally wrong with the three linked patches. There were smaller review issues about coding style, and the fact that the VTY command should not be introdcued first in a separate patch (without any logic). So if they were rebased on top of master, and they can be shown to work with OsmoBSC, they are good to go.
Updated by keith about 3 years ago
- % Done changed from 20 to 30
(Things changed so much that it is more like a rewrite than a rebase....)
Some progress:
I have submitted some patchsets to the above gerrit commits, needs clean-up but 'works', - confirmed seeing LCLS params on the SCTP in wireshark* and also received by the BSC
but, noted in the BSC log:
20201115042002382 DLCLS DEBUG LCLS[0x55ff7b7612e0]{NO_LCLS}: Allocated (fsm.c:461) 20201115042002382 DLCLS DEBUG LCLS[0x55ff7b7612e0]{NO_LCLS}: is child of SUBSCR_CONN[0x55ff7b75bd20] (fsm.c:491) 20201115042005209 DLCLS DEBUG LCLS[0x55ff7b7612e0]{NO_LCLS}: Received Event UPDATE_CFG_CSC (osmo_bsc_lcls.c:226) 20201115042005209 DLCLS DEBUG LCLS[0x55ff7b7612e0]{NO_LCLS}: LCLS update Config Not available -> Connect both-way (osmo_bsc_lcls.c:180) 20201115042005209 DLCLS DEBUG LCLS[0x55ff7b7612e0]{NO_LCLS}: LCLS update Control Not available -> Connect (osmo_bsc_lcls.c:188) 20201115042005911 DLCLS DEBUG LCLS[0x55ff7b7612e0]{NO_LCLS}: Received Event APPLY_CFG_CSC (osmo_bsc_lcls.c:232) 20201115042005911 DLCLS DEBUG LCLS[0x55ff7b7612e0]{NO_LCLS}: Unsuccessful correlation (osmo_bsc_lcls.c:149) 20201115042005911 DLCLS DEBUG LCLS[0x55ff7b7612e0]{NO_LCLS}: state_chg to NOT_POSSIBLE_LS (osmo_bsc_lcls.c:397)
BSC shows during call:
OsmoBSC# show conns Active subscriber connections: conn ID=134, MSC=0, hodec2_fail=0, mgw_ep=rtpbridge/9@mgw LCLS GCR: 0362f2240200b9058000000065 LCLS Config: Connect both-way, LCLS Control: Connect, LCLS BSS Status: NOT_POSSIBLE_LS BTS 0, TRX 0, Timeslot 1, Lchan 0: Type TCH_H Connection: 1, State: ESTABLISHED BS Power: 4294967295 dBm, MS Power: 5 dBm Channel Mode / Codec: SPEECH_AMR Subscriber: IMSI: 262420000000333 Use count: 1 (conn) Bound IP: 172.16.0.15 Port 16486 RTP_TYPE2=0 CONN_ID=0 Conn. IP: 172.16.0.1 Port 4370 RTP_TYPE=98 SPEECH_MODE=0x05 Measurement Report: Flags: MS Timing Offset: 0 L1 MS Power: 5 dBm, Timing Advance: 0 RXL-FULL-dl: -84 dBm, RXL-SUB-dl: -84 dBm RXQ-FULL-dl: 4, RXQ-SUB-dl: 3 RXL-FULL-ul: -55 dBm, RXL-SUB-ul: -55 dBm RXQ-FULL-ul: 0, RXQ-SUB-ul: 0 conn ID=135, MSC=0, hodec2_fail=0, mgw_ep=rtpbridge/b@mgw LCLS GCR: 0362f2240200b9050000000065 LCLS Config: Connect both-way, LCLS Control: Connect, LCLS BSS Status: NOT_POSSIBLE_LS BTS 0, TRX 0, Timeslot 1, Lchan 1: Type TCH_H Connection: 1, State: ESTABLISHED BS Power: 4294967295 dBm, MS Power: 5 dBm Channel Mode / Codec: SPEECH_AMR Subscriber: IMSI: 262423203000396 Use count: 1 (conn) Bound IP: 172.16.0.15 Port 16488 RTP_TYPE2=0 CONN_ID=0 Conn. IP: 172.16.0.1 Port 4378 RTP_TYPE=98 SPEECH_MODE=0x05 Measurement Report: Flags: MS Timing Offset: -1 L1 MS Power: 5 dBm, Timing Advance: 0 RXL-FULL-dl: -65 dBm, RXL-SUB-dl: -65 dBm RXQ-FULL-dl: 0, RXQ-SUB-dl: 0 RXL-FULL-ul: -47 dBm, RXL-SUB-ul: -47 dBm RXQ-FULL-ul: 0, RXQ-SUB-ul: 0 OsmoBSC#
*my wireshark does not decode the GCR
Updated by keith about 3 years ago
Hmm, the call refs are in fact different.. I did not spot it at a glance.
Updated by keith almost 3 years ago
https://gerrit.osmocom.org/c/osmo-msc/+/13421/
and
https://gerrit.osmocom.org/c/osmo-msc/+/13422/
are now ready for review.
I did not deal with what Max points out in #2487#note-15,
Folowing #2487#note-19, What I have done is to "forward port" and rebase Max's patches with minimal amount of change to the orginal work, opening the way for further improvements, including responding correctly to external MNCC commands from the SIP Agent on the other side of that. The SIP agent has to be able to put itself in and take itself out of the audio path during a call.
Updated by laforge over 2 years ago
For the record: The latest patch related to this is https://gerrit.osmocom.org/c/osmo-msc/+/24236 which is still marked as work-in-progress.
Updated by keith over 2 years ago
- Blocked by Feature #5164: Implement Serialised Global Call Reference as "X-" Header added
Updated by keith about 2 years ago
- Status changed from Stalled to In Progress
https://gerrit.osmocom.org/c/osmo-msc/+/24236 is published for review.
Updated by keith about 1 year ago
I did some further work in https://gerrit.osmocom.org/plugins/gitiles/osmo-msc/+/refs/heads/keith/LCLS_SIP
Some of which could become candidates for merge to master, probably the MSC needs a FSM to process confirmations/information from the BSS on LCLS state.
Updated by keith about 1 year ago
- Related to Bug #5712: LCLS FSM; Not possible to get out from NO_LONGER_LS added