aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-11-03 14:21:03 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2018-11-27 17:54:20 +0100
commitdbb4c0389eccf68ad0a1d3f08f81c1fc07bdab1a (patch)
tree81db941ce63423463319ba92f35e8f9e2cb99827 /doc
parent932f6753d147ab584de92de682a442527303850f (diff)
rtp-amr.adoc: Fixes to Message Sequence Charts
Nutaq added these clarifications/extensions/fixes tothe message sequence charts. Change-Id: Ic699bda828947ff616c3d80783026e21d853f962
Diffstat (limited to 'doc')
-rw-r--r--doc/manuals/abis/rtp-amr.adoc259
1 files changed, 188 insertions, 71 deletions
diff --git a/doc/manuals/abis/rtp-amr.adoc b/doc/manuals/abis/rtp-amr.adoc
index 889a032c..f6013036 100644
--- a/doc/manuals/abis/rtp-amr.adoc
+++ b/doc/manuals/abis/rtp-amr.adoc
@@ -65,11 +65,11 @@ msc {
...;
--- [label="Last AMR Speech (end of talk-spurt) and SID"];
- ms => phy [label="L1 burst (sub-block 5 of speech frame N-1, sub-block 1 of SID_FIRST)"];
- ms => phy [label="L1 burst (sub-block 6 of speech frame N-1, sub-block 2 of SID_FIRST)"];
- ms => phy [label="L1 burst (sub-block 7 of speech frame N-1, sub-block 3 of SID_FIRST)"];
- ms => phy [label="L1 burst (sub-block 8 of speech frame N-1, sub-block 4 of SID_FIRST)", id="ULSF2"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (N-1)"];
+ ms => phy [label="L1 burst (sub-block 5 of speech frame N, sub-block 1 of SID_FIRST)"];
+ ms => phy [label="L1 burst (sub-block 6 of speech frame N, sub-block 2 of SID_FIRST)"];
+ ms => phy [label="L1 burst (sub-block 7 of speech frame N, sub-block 3 of SID_FIRST)"];
+ ms => phy [label="L1 burst (sub-block 8 of speech frame N, sub-block 4 of SID_FIRST)", id="ULSF2"];
+ phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (N)"];
bts => mgw [label="RTP (AMR FT=0..7,Q=1)"];
ms -x phy [label="Suppressed L1 burst"];
@@ -79,28 +79,36 @@ msc {
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_FIRST)"];
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
- ms -x phy [label="Suppressed L1 burst"];
- ms -x phy [label="Suppressed L1 burst"];
- ms -x phy [label="Suppressed L1 burst"];
- ms -x phy [label="Suppressed L1 burst"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_NA"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
bts -x mgw [label="Suppressed RTP frame"];
ms => phy [label="L1 burst (sub-block 1+2 of SID_UPDATE)", id="ULSU2"];
ms => phy [label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
ms => phy [label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
ms => phy [label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr"];
- bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
+ bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
}
----
-ULSF2:: The sub-blocks 5-8 of SID_FIRST are not transmitted, as all
-information bits are contained in sub-blocks 1-4 only.
+ULSF2:: As per 3GPP TS 05.03 section 3.9.2.4 The last 4 bursts shall not be transmitted unless
+the SID_FIRST frame is immediately followed by a speech frame. It has been observed that some phone
+does not transmit the last 4 bursts even if it is not followed by a speech frame.
-ULSU2:: There must be exactly two suppressed voice frames between the
-SID_FIRST and the SID_UPDATE, i.e. 60ms between SID_FIRST and
+ULSU2:: There must be exactly two supressed voice frames between the
+SID_FIRST and the SID_UPDATE, i.e. there's 60ms between SID_FIRST and
SID_UPDATE.
==== TCH/AFS Uplink: During Silence
@@ -125,7 +133,70 @@ msc {
ms => phy [label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
ms => phy [label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
ms => phy [label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
+ bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms => phy [label="L1 burst (sub-block 1+2 of SID_UPDATE)"];
+ ms => phy [label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
+ ms => phy [label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
+ ms => phy [label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
}
----
@@ -480,14 +551,15 @@ msc {
bts <= mgw [label="RTP (AMR FT=0..7,Q=1) MARKER=1"];
phy => bts [label="PH-RTS.ind (TCH)"];
- phy <= bts [label="PH-DATA.req GsmL1_TchPlType_Amr_Onset", id="DLOS2"];
- ms <= phy [label="L1 burst (sub-block 5 of SID_ONSET + sub-block 1 of speech frame N)"];
- ms <= phy [label="L1 burst (sub-block 6 of SID_ONSET + sub-block 2 of speech frame N)"];
- ms <= phy [label="L1 burst (sub-block 7 of SID_ONSET + sub-block 3 of speech frame N)"];
- ms <= phy [label="L1 burst (sub-block 8 of SID_ONSET + sub-block 4 of speech frame N)"];
+ phy <= bts [label="PH-DATA.req GsmL1_TchPlType_Amr_Onset"];
+ phy <= bts [label="PH-DATA.req GsmL1_TchPlType_Amr (N)"];
+ ms <= phy [label="L1 burst (block 1 of SID_ONSET + sub-block 1 of speech frame N)"];
+ ms <= phy [label="L1 burst (block 2 of SID_ONSET + sub-block 2 of speech frame N)"];
+ ms <= phy [label="L1 burst (block 3 of SID_ONSET + sub-block 3 of speech frame N)"];
+ ms <= phy [label="L1 burst (block 4 of SID_ONSET + sub-block 4 of speech frame N)"];
bts <= mgw [label="RTP (AMR FT=0..7,Q=1)"];
phy => bts [label="PH-RTS.ind (TCH)"];
- phy <= bts [label="PH-DATA.req GsmL1_TchPlType_Amr"];
+ phy <= bts [label="PH-DATA.req GsmL1_TchPlType_Amr (N+1)"];
ms <= phy [label="L1 burst (sub-block 5 of speech frame N + sub-block 1 of speech frame N+1)"];
ms <= phy [label="L1 burst (sub-block 6 of speech frame N + sub-block 2 of speech frame N+1)"];
ms <= phy [label="L1 burst (sub-block 7 of speech frame N + sub-block 2 of speech frame N+1)"];
@@ -603,10 +675,14 @@ msc {
ms => phy [label="L1 burst (sub-block 3 of speech frame N-1 + sub-block 1 of speech frame N)"];
ms => phy [label="L1 burst (sub-block 4 of speech frame N-1 + sub-block 2 of speech frame N)"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (N-1)"];
+ phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (N-2)"];
bts => mgw [label="RTP (AMR FT=0..7,Q=1)"];
ms => phy [label="L1 burst (sub-block 3 of speech frame N + sub-block 1 of speech frame N+1)"];
ms => phy [label="L1 burst (sub-block 4 of speech frame N + sub-block 2 of speech frame N+1)"];
+ phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (N-1)"];
+ bts => mgw [label="RTP (AMR FT=0..7,Q=1)"];
+ ms => phy [label="L1 burst (sub-block 3 of speech frame N+1 + sub-block 1 of speech frame N+2)"];
+ ms => phy [label="L1 burst (sub-block 4 of speech frame N+1 + sub-block 2 of speech frame N+2)"];
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (N)"];
bts => mgw [label="RTP (AMR FT=0..7,Q=1)"];
}
@@ -636,43 +712,44 @@ msc {
...;
--- [label="Last AMR Speech (end of talk-spurt) and SID P1/P2"];
- ms => phy [label="L1 burst (sub-block 3 of speech frame N-1, sub-block 1 of SID_FIRST_P1)"];
- ms => phy [label="L1 burst (sub-block 4 of speech frame N-1, sub-block 2 of SID_FIRST_P1)"];
+ ms => phy [label="L1 burst (sub-block 3 of speech frame N, sub-block 1 of SID_FIRST_P1)"];
+ ms => phy [label="L1 burst (sub-block 4 of speech frame N, sub-block 2 of SID_FIRST_P1)"];
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (N-1)"];
bts => mgw [label="RTP (AMR FT=0..7,Q=1)"];
+
ms => phy [label="L1 burst (sub-block 3 of SID_FIRST_P1, sub-block 1 of SID_FIRST_P2)"];
ms => phy [label="L1 burst (sub-block 4 of SID_FIRST_P1, sub-block 2 of SID_FIRST_P2)"];
+ phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (N)"];
+ bts => mgw [label="RTP (AMR FT=0..7,Q=1)"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr_SidFirstP1", id="ULSF1"];
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
- ms -x phy [label="Suppressed L1 burst"];
- ms -x phy [label="Suppressed L1 burst"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr_SidFirstP2"];
- bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
-
- ms -x phy [label="Suppressed L1 burst"];
- ms -x phy [label="Suppressed L1 burst"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_NA"];
ms => phy [label="L1 burst (sub-block 1+2 of SID_UPDATE)", id="ULSU1"];
ms => phy [label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_NA"];
+ phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr_SidFirstP2", id="NOTE"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
ms => phy [label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
ms => phy [label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr"];
- bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
+ bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
}
----
-ULSF1:: There are two separate indications for P1 and P2, despite both
-P1 and P2 being multiplexed together in one batch of four bursts. Not
-sure why they result in two separate PH-DATA.ind. Based on what we
-know: If the MS sends P1 and P2, the PHY should receive SidFirstP1 and
-SidFirstP2 indications immediately after each other, both for the same
-GSM frame number.
+ULSF1:: Only SID_FIRST_P1 contains information so it must be the only one transmitted over RTP.
+
+NOTE:: It has been observed that not all phones transmit SID_FIRST_P2 so the PH-DATA.ind GsmL1_TchPlType_Amr_SidFirstP2 is not guaranteed to be sent to the BTS.
-ULSU1:: There must be exactly two suppressed voice frames between the
-SID_FIRST and the SID_UPDATE, i.e. 60ms between SID_FIRST and
+ULSU1:: There must be exactly two supressed voice frames between the
+SID_FIRST and the SID_UPDATE, i.e. there's 60ms between SID_FIRST and
SID_UPDATE.
==== TCH/AFS Uplink: During Silence
@@ -695,10 +772,55 @@ msc {
ms => phy [label="L1 burst (sub-block 1+2 of SID_UPDATE)"];
ms => phy [label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_NA"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
ms => phy [label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
ms => phy [label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
+ bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms => phy [label="L1 burst (sub-block 1+2 of SID_UPDATE)"];
+ ms => phy [label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+ ms => phy [label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
+ ms => phy [label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms -x phy [label="Supressed L1 burst"];
+ ms -x phy [label="Supressed L1 burst"];
+ phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
}
----
@@ -822,26 +944,27 @@ msc {
ms [label="MS"], phy [label="BTS-PHY"], bts [label="BTS"], mgw [label="MGW"];
...;
- ms .. mgw [label="pre-empted SID Update (during silence period)"];
+ ms .. mgw [label="Inhibited SID Update (during silence period)"];
ms => phy [label="L1 burst (sub-block 1+2 of SID_UPDATE)"];
ms => phy [label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_NA"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
bts -x mgw [label="Suppressed RTP frame"];
- ms => phy [label="L1 burst (sub-block 3 of SID_UPD_INH + sub-block 1 of speech frame N-1)", id="SFU1"];
- ms => phy [label="L1 burst (sub-block 4 of SID_UPD_INH + sub-block 2 of speech frame N-1)"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr_SidUpdateInH", id="SFU2"];
- bts => bts [label="lchan_set_marker() and store CMI from SID_UPD_INH"];
+ ms => phy [label="L1 burst (block 1 of SID_UPD_INH + sub-block 1 of speech frame N)", id="SFU1"];
+ ms => phy [label="L1 burst (block 2 of SID_UPD_INH + sub-block 2 of speech frame N)"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
bts -x mgw [label="Suppressed RTP frame"];
- ms => phy [label="L1 burst (sub-block 3 of speech frame N-1 + sub-block 1 of speech frame N)"];
- ms => phy [label="L1 burst (sub-block 4 of speech frame N-1 + sub-block 2 of speech frame N)"];
- phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (N-1)"];
- bts => mgw [label="RTP (AMR FT=0..7,Q=1), MARKER=1"];
-
ms => phy [label="L1 burst (sub-block 3 of speech frame N + sub-block 1 of speech frame N+1)"];
ms => phy [label="L1 burst (sub-block 4 of speech frame N + sub-block 2 of speech frame N+1)"];
+ phy -x bts [label="No PH-DATA.ind sent[BFI]"];
+ bts -x mgw [label="Suppressed RTP frame"];
+
+ ms => phy [label="L1 burst (sub-block 3 of speech frame N+1 + sub-block 1 of speech frame N+2)"];
+ ms => phy [label="L1 burst (sub-block 4 of speech frame N+1 + sub-block 2 of speech frame N+2)"];
+ phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr_SidUpdateInH", id="SFU2"];
+ bts => bts [label="lchan_set_marker() and store CMI from SID_UPD_INH"];
phy => bts [label="PH-DATA.ind GsmL1_TchPlType_Amr (N)"];
bts => mgw [label="RTP (AMR FT=0..7,Q=1) MARKER=1"];
}
@@ -925,7 +1048,7 @@ msc {
ms <= phy [label="L1 burst (sub-block 4 of speech frame N-1 + sub-block 2 of speech frame N)"];
mgw => bts [label="RTP (AMR FT=0..7,Q=1)"];
phy => bts [label="PH-RTS.ind (TCH)"];
- bts => phy [label="PH-DATA.req GsmL1_TchPlType_Amr (N)"];
+ bts => phy [label="PH-DATA.req GsmL1_TchPlType_Amr (N+1)"];
ms <= phy [label="L1 burst (sub-block 3 of speech frame N + sub-block 1 of speech frame N+1)"];
ms <= phy [label="L1 burst (sub-block 4 of speech frame N + sub-block 2 of speech frame N+1)"];
}
@@ -985,11 +1108,12 @@ msc {
ms x- phy [label="Suppressed burst"];
ms x- phy [label="Suppressed burst"];
+ bts <= mgw [label="RTP (AMR FT=SID,Q=1)"];
phy => bts [label="PH-RTS.ind (TCH)"];
bts => phy [label="PH-DATA.req GsmL1_TchPlType_Amr (SID_UPDATE)", id="ULSU2"];
ms <= phy [label="L1 burst (sub-block 1+2 of SID_UPDATE)"];
ms <= phy [label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
- phy => bts [label="PH-RTS.ind (TCH)", id="RTDSU1"];
+ phy => bts [label="PH-RTS.ind (TCH)"];
phy <= bts [label="PH-EMPTY-FRAME.req"];
ms <= phy [label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
ms <= phy [label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
@@ -1005,9 +1129,6 @@ ULSU2:: The SID_UPDATE must be sent exactly three voice frames (60ms)
after the SID_FIRST, resulting in two suppressed voice frame periods of
empty bursts in between.
-RTDSU1:: Not sure whether BTS-PHY actually sends PH-RTS.ind during the
-"double-length" SID-UPDATE?
-
==== TCH/AHS Downlink: During Silence
During Silence periods, the BTS may at any time receive RTP AMR SID
@@ -1039,21 +1160,16 @@ msc {
bts => phy [label="PH-DATA.req GsmL1_TchPlType_Amr (SID_UPDATE)"];
ms <= phy [label="L1 burst (sub-block 1+2 of SID_UPDATE)"];
ms <= phy [label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
- phy => bts [label="PH-RTS.ind (TCH)", id="RTDSU2"];
+ phy => bts [label="PH-RTS.ind (TCH)"];
phy <= bts [label="PH-EMPTY-FRAME.req"];
ms <= phy [label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
ms <= phy [label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
- phy => bts [label="PH-DATA.req GsmL1_TchPlType_Amr"];
- bts => mgw [label="RTP (AMR FT=SID,Q=1)"];
}
----
8VF:: This happens every 8 *voice frames* (160ms), not every 8 GSM
TDMA frames!
-RTDSU2:: Not sure whether BTS-PHY actually sends PH-RTS.ind during the
-"double-length" SID-UPDATE?
-
[[ahs-dl-onset]]
==== TCH/AHS Downlink: End of Silence; Start of Voice
@@ -1076,12 +1192,13 @@ msc {
bts <= mgw [label="RTP (AMR FT=0..7,Q=1) MARKER=1"];
phy => bts [label="PH-RTS.ind (TCH)"];
- phy <= bts [label="PH-DATA.req GsmL1_TchPlType_Amr_Onset", id="DLOS2"];
+ phy <= bts [label="PH-DATA.req GsmL1_TchPlType_Amr_Onset"];
+ phy <= bts [label="PH-DATA.req GsmL1_TchPlType_Amr (N)"];
ms <= phy [label="L1 burst (sub-block 3 of SID_ONSET + sub-block 1 of speech frame N)"];
ms <= phy [label="L1 burst (sub-block 4 of SID_ONSET + sub-block 2 of speech frame N)"];
bts <= mgw [label="RTP (AMR FT=0..7,Q=1)"];
phy => bts [label="PH-RTS.ind (TCH)"];
- phy <= bts [label="PH-DATA.req GsmL1_TchPlType_Amr"];
+ phy <= bts [label="PH-DATA.req GsmL1_TchPlType_Amr (N+1)"];
ms <= phy [label="L1 burst (sub-block 3 of speech frame N + sub-block 1 of speech frame N+1)"];
ms <= phy [label="L1 burst (sub-block 4 of speech frame N + sub-block 2 of speech frame N+1)"];
}