Bug #6216
closedmobile: MT calls not working anymore
100%
Description
With recent osmocom-bb (22e79a87faaa8137e559908d4f90037603fb377a) mobile originating calls work, but mobile terminated do not.
From what I can see, the mobile fails to send CC messages, likely due to "Message unhandled at this state" errors:
DMNCC INFO mnccms.c:114 half rate v3 not supported DMNCC INFO mnccms.c:127 net suggests unknown speech version 11 DMNCC INFO mnccms.c:104 net suggests full rate v1 DMNCC INFO mnccms.c:439 only supported full rate codec is given, using it DMNCC INFO mnccms.c:455 Incoming call (from 15843 callref 80000001) DMNCC INFO mnccms.c:149 support TCH/F only DCC INFO gsm48_cc.c:894 sending CALL CONFIRMED (proceeding) DCC DEBUG gsm48_cc.c:237 new state CALL_PRESENT -> MO_TERM_CALL_CONF DCC INFO gsm48_cc.c:176 Sending 'CALL_CONF' using MMCC_DATA_REQ (callref=80000001, transaction_id=8) DMM INFO gsm48_mm.c:4424 (ms 1) Received 'MMCC_DATA_REQ' event in state MM connection active DMM INFO gsm48_mm.c:4430 -> callref 80000001, transaction_id 8 DRR INFO gsm48_rr.c:6899 (ms 1) Message 'RR_DATA_REQ' received in state dedicated (sapi 96) DRR NOTICE gsm48_rr.c:6925 Message unhandled at this state. <-- (!) DMNCC INFO mnccms.c:476 Ring! DCC INFO gsm48_cc.c:925 sending ALERTING DCC DEBUG gsm48_cc.c:237 new state MO_TERM_CALL_CONF -> CALL_RECEIVED DCC INFO gsm48_cc.c:176 Sending 'ALERTING' using MMCC_DATA_REQ (callref=80000001, transaction_id=8) DMM INFO gsm48_mm.c:4424 (ms 1) Received 'MMCC_DATA_REQ' event in state MM connection active DMM INFO gsm48_mm.c:4430 -> callref 80000001, transaction_id 8 DRR INFO gsm48_rr.c:6899 (ms 1) Message 'RR_DATA_REQ' received in state dedicated (sapi 96) DRR NOTICE gsm48_rr.c:6925 Message unhandled at this state. <-- (!)
Same happens when I try to answer the call:
DCC INFO gsm48_cc.c:956 sending CONNECT DCC INFO gsm48_cc.c:340 starting timer T313 with 30 seconds DCC DEBUG gsm48_cc.c:237 new state CALL_RECEIVED -> CONNECT_REQUEST DCC INFO gsm48_cc.c:176 Sending 'CONNECT' using MMCC_DATA_REQ (callref=80000001, transaction_id=8) DMM INFO gsm48_mm.c:4424 (ms 1) Received 'MMCC_DATA_REQ' event in state MM connection active DMM INFO gsm48_mm.c:4430 -> callref 80000001, transaction_id 8 DRR INFO gsm48_rr.c:6899 (ms 1) Message 'RR_DATA_REQ' received in state dedicated (sapi 96) DRR NOTICE gsm48_rr.c:6925 Message unhandled at this state. <-- (!)
Please find a PCAP (with GSMTAP logging) attached.
Files
Related issues
Updated by fixeria 7 months ago
- Related to Feature #4396: Circuit Switched Data (CSD) Support in osmocom-bb added
Updated by fixeria 7 months ago
- Category set to OsmocomBB mobile (host)
- Status changed from New to Feedback
- Assignee set to fixeria
- % Done changed from 0 to 100
This is a regression caused by recently merged patch:
https://gerrit.osmocom.org/q/I12454cab06c105ccd9e2495e3a6f0640f2884885
Here is a patch from jolly, which fixes the problem for me:
https://gerrit.osmocom.org/c/osmocom-bb/+/34705 Provide create_conn_and_push_mm_hdr() with correct SAPI [NEW]
The MT calls are still not working and getting dropped immediately, but this is another problem.
Updated by fixeria 7 months ago
fixeria wrote in #note-2:
The MT calls are still not working and getting dropped immediately, but this is another problem.
This time it looks more like a problem on the network side.
As can be seen from the attached PCAP, it's actually the network sending CC Release (see frame 1765).
GSM A-I/F DTAP - Release Protocol Discriminator: Call Control; call related SS messages (3) .... 0011 = Protocol discriminator: Call Control; call related SS messages (0x3) 0... .... = TI flag: allocated by sender .000 .... = TIO: 0 00.. .... = Sequence number: 0 ..10 1101 = DTAP Call Control Message Type: Release (0x2d) Cause - (47) Resources unavailable, unspecified Element ID: 0x08 Length: 2 1... .... = Extension: No Extension .11. .... = Coding standard: Standard defined for the GSM PLMNS (3) ...0 .... = Spare bit(s): 0 .... 0001 = Location: Private network serving the local user (0x1) 1... .... = Extension: No Extension .010 1111 = DTAP Cause: Cause: (47) Resources unavailable, unspecified
Updated by fixeria 7 months ago
What I also noticed is that the Bearer Capability IE (see frame 1586) looks unusual and does not match what the calling side is sending:
Bearer Capability 1 - (MS supports at least full rate speech version 1 and half rate speech version 1. MS has a greater preference for full rate speech version 1 than for half rate speech version 1) Element ID: 0x04 Length: 5 Octet 3 0... .... = Extension: Extended .11. .... = Radio channel requirement: MS supports at least full rate speech version 1 and half rate speech version 1. MS has a greater preference for full rate speech version 1 than for half rate speech version 1 ...0 .... = Coding standard: GSM standardized coding .... 0... = Transfer mode: circuit .... .000 = Information transfer capability: Speech (0x0) Octets 3a - Speech Versions 0... .... = Extension: Extended .0.. .... = Coding: octet used for extension of information transfer capability ..00 .... = Spare bit(s): 0 .... 0100 = Speech version indication: GSM full rate speech version 3(FR AMR) (0x4) 0... .... = Extension: Extended .0.. .... = Coding: octet used for extension of information transfer capability ..00 .... = Spare bit(s): 0 .... 0101 = Speech version indication: GSM half rate speech version 3(HR AMR) (0x5) 0... .... = Extension: Extended .0.. .... = Coding: octet used for extension of information transfer capability ..00 .... = Spare bit(s): 0 .... 1011 = Speech version indication: GSM half rate speech version 6(OHR AMR) (0xb) 1... .... = Extension: No Extension .0.. .... = Coding: octet used for extension of information transfer capability ..00 .... = Spare bit(s): 0 .... 0000 = Speech version indication: GSM full rate speech version 1(GSM FR) (0x0)
The calling SE K800i definitely does not support GSM half rate speech version 6(OHR AMR)
...
Updated by fixeria 7 months ago
The reason why MT call fails is actually codec mismatch:
- the calling phone gets assigned a TCH/AFS (AMR) channel;
- the called phone responds to paging and indicates that only TCH/FS is supported;
- the called phone gets assigned a TCH/FS channel;
- osmo-msc detects codec mismatch and aborts the call.
This is a problem on the core network side, and there's nothing we can do about that here.