Project

General

Profile

Bug #1802

AMR DTX Downlink: We are not sending ONSET ?!?

Added by laforge over 1 year ago. Updated over 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
08/20/2016
Due date:
% Done:

100%

Spec Reference:

Description

When we first receive valid (non-SID) RTP AMR frames again in downlink, we need to start the proper ONSET procedure, both for AMR/HR and AMR/FR. The L1 API of osmo-bts-sysmo and osmo-bts-litecell15 provides GsmL1_TchPlType_Amr_Onset for that.


Related issues

Related to OsmoBTS - Bug #1803: osmo-bts-litecell15: AMR FR: some RTP buffers are never released Closed 08/20/2016
Related to OsmoBTS - Bug #1801: AMR DTX: downlink logic flawed Closed 08/20/2016

History

#1 Updated by laforge over 1 year ago

  • Related to Bug #1803: osmo-bts-litecell15: AMR FR: some RTP buffers are never released added

#2 Updated by laforge over 1 year ago

  • Assignee changed from sysmocom to msuraev

#3 Updated by msuraev over 1 year ago

  • Status changed from New to Stalled

Fix is waiting for review in gerrit #691.

#4 Updated by msuraev over 1 year ago

  • Status changed from Stalled to In Progress
  • % Done changed from 0 to 10

Note to self: FACCH should also trigger onset event followed by actual data.

#5 Updated by msuraev over 1 year ago

Gerrit #691 has been merged to master but in dsp trace there are still missing onset frames - most likely due to some issue with libosmoabis which leads to marker bit not being propagated to callback function. Investigation is in progress.

#6 Updated by msuraev over 1 year ago

  • % Done changed from 10 to 80

Should be fixed by gerrit # 1030, 1031. Waiting for test confirmation.

#7 Updated by msuraev over 1 year ago

  • Related to Bug #1801: AMR DTX: downlink logic flawed added

#8 Updated by msuraev over 1 year ago

The reason ONSET is not sent on talkspurt is broken metadata (markbit) from ortp:

The macros like rtp_get_markbit() are defined as follows:

#define rtp_get_markbit(mp)»····(((rtp_header_t*)((mp)->b_rptr))->markbit)

so they use mp->b_rptr as a pointer to the header of the RTP packet.

However, the current code, you first use something like
rtp_get_payload(mp, &mp->b_rptr);

Which usee b_rptr as an output value and actually advances it to the
start of the packet payload.

I strongly suggest that you use something like
uint8_t *payload;
int payload_size;
payload_size = rtp_get_payload(mp, &payload);

which will keep b_rptr pointing to the header and thus make the
above-mentioend macros still work.

#9 Updated by msuraev over 1 year ago

  • Status changed from In Progress to Resolved
  • Assignee changed from msuraev to laforge
  • % Done changed from 80 to 100

With latest fix to libosmo-abis we're no getting marker bit and hence sending onset.

#10 Updated by laforge over 1 year ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF