diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2012-01-20 20:33:37 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2017-12-01 03:37:42 +0100 |
commit | 52f0fec05a26cdfff5ce437c741cd46428d9d0bf (patch) | |
tree | 30ab3e41247f8b1470318241bd7198de0bcfceb8 /src/libmsc | |
parent | 3948ede88b65e8d01131cd96b92101d82da1ba49 (diff) |
Adding handling of BFI (Bad Frame Indicatior) of received TRAU frames
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.
Diffstat (limited to 'src/libmsc')
-rw-r--r-- | src/libmsc/mncc_sock.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libmsc/mncc_sock.c b/src/libmsc/mncc_sock.c index ad0f27f63..da69dae34 100644 --- a/src/libmsc/mncc_sock.c +++ b/src/libmsc/mncc_sock.c @@ -56,7 +56,8 @@ int mncc_sock_from_cc(struct gsm_network *net, struct msgb *msg) * otherwise we send it through MNCC interface */ if (msg_type == GSM_TCHF_FRAME || msg_type == GSM_TCHF_FRAME_EFR - || msg_type == GSM_TCHF_FRAME_HR) { + || msg_type == GSM_TCHF_FRAME_HR + || msg_type == GSM_TCHF_BAD_FRAME) { struct gsm_trans *trans = trans_find_by_callref(net, mncc_in->callref); if (trans && trans->cc.rs) { @@ -72,7 +73,8 @@ int mncc_sock_from_cc(struct gsm_network *net, struct msgb *msg) "but socket is gone\n", get_mncc_name(msg_type)); if (msg_type != GSM_TCHF_FRAME && msg_type != GSM_TCHF_FRAME_EFR - && msg_type != GSM_TCHF_FRAME_HR) { + && msg_type != GSM_TCHF_FRAME_HR + && msg_type != GSM_TCHF_BAD_FRAME) { /* release the request */ struct gsm_mncc mncc_out; memset(&mncc_out, 0, sizeof(mncc_out)); |