comparison tmo/CSD-tests @ 71:ed314cc25b8d

tmo/CSD-tests: additional experiments and historical notes
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 26 Nov 2024 20:56:33 +0000
parents 47947e25f922
children afebef67e8d4
comparison
equal deleted inserted replaced
70:47947e25f922 71:ed314cc25b8d
1 A series of experiments seeking to test CSD on the extant network of T-Mobile 1 A series of experiments seeking to test CSD on the extant network of T-Mobile
2 USA, to be performed while this network is still alive. The main objective is 2 USA, to be performed while this network is still alive. The main objective is
3 to test CSD calls between a single MS and analog (or PCMU-speaking) PSTN, rather 3 to test CSD calls between a single MS and analog (or PCMU-speaking) PSTN, rather
4 than mobile to mobile. 4 than mobile to mobile.
5
6 All experiments detailed in the following sections were performed in 2024-11
7 at the Mother's home base.
5 8
6 Test setup 9 Test setup
7 ========== 10 ==========
8 11
9 The test MS is an FCDEV3B with a legacy T-Mobile SIM. The AT command session 12 The test MS is an FCDEV3B with a legacy T-Mobile SIM. The AT command session
56 * NT mode was only tested with AT+CBST=7,0,1 default, i.e., 9600 baud and asking 59 * NT mode was only tested with AT+CBST=7,0,1 default, i.e., 9600 baud and asking
57 the IWF for V.32 modem. As revealed by L1 and CC traces, the network does 60 the IWF for V.32 modem. As revealed by L1 and CC traces, the network does
58 everything it should - but the MS returns NO CARRIER. However, further 61 everything it should - but the MS returns NO CARRIER. However, further
59 analysis of CC traces reveals that the DISCONNECT at CC level is initiated by 62 analysis of CC traces reveals that the DISCONNECT at CC level is initiated by
60 the MS and not by the network! My current working hypothesis is that the MS 63 the MS and not by the network! My current working hypothesis is that the MS
61 is unhappy about something it sees at RLP level. 64 is unhappy about something it sees at RLP level. [See further updates in
65 Experiment 6.]
62 66
63 Additional observations: 67 Additional observations:
64 68
65 * The MS issues a single SETUP message with BC indicating ITC of 3.1 kHz and the 69 * The MS issues a single SETUP message with BC indicating ITC of 3.1 kHz and the
66 selected CSD mode. The network responds with CALL PROCEEDING, ALERTING and 70 selected CSD mode. The network responds with CALL PROCEEDING, ALERTING and
169 and data calls dialed from the other TMO subscriber line. It appears that all 173 and data calls dialed from the other TMO subscriber line. It appears that all
170 MO CSD calls were treated by the network in "convert to modem emulation" mode 174 MO CSD calls were treated by the network in "convert to modem emulation" mode
171 despite the dialed number being another T-Mobile line; the MT leg always 175 despite the dialed number being another T-Mobile line; the MT leg always
172 received incoming voice calls. 176 received incoming voice calls.
173 177
174 It thus appears that a change has happened in TMO's network in this regard. 178 Experiment 5
175 Many years ago, before I learned about T vs NT distinction and other critical 179 ============
176 CSD parameters set with AT+CBST, when I would blindly dial ATDnumber, I was 180
177 sometimes able to make a data call from a proper FreeCalypso test MS to a 181 In this experiment I sought to capture TCH DL bits from the DSP in CSD modes in
178 Pirelli phone running its official fw: the destination phone would ring and 182 the same way how we do it in non-AMR speech modes. I added what seemed like
179 display an incoming call screen, but it said "data call". For this feat to 183 the necessary support in FC Tourmaline fw (Hg commit 304:58c7961bd0b0) and in
180 have happened, there must have been a BC IE in the MT SETUP message when the 184 fc-shell TCH handling code (freecalypso-tools Hg commit 1014:961efadd530a), and
181 MO leg made a data call - hence the change between past and present bahaviour. 185 made captures of CSD call sessions with +CBST set to (7,0,0), (6,0,0) and
186 (2,0,0). However, as soon as I looked at the captured recordings, I was
187 immediately disappointed: while the beginning of each capture shows what look
188 like DL bits constituting idle frames (mostly all 1s, except where disturbed by
189 FACCH stealing), as soon as the IDS block kicks in, we read nothing but all 0s.
190 Is the IDS part of DSP ROM code overwriting the buffer with zeros after it groks
191 those bits?
192
193 Also in this experiment session I tried setting AT+CBST=14,0,0 to see if TMO
194 supports TCH/F14.4. The network responded to SETUP with CALL PROCEEDING, but
195 whereas in other modes channel assignment happens almost immediately afterward,
196 here it stayed on SDCCH for several seconds, and then the network sent CC
197 DISCONNECT message with cause 34. This cause value means "No circuit/channel
198 available" - so it looks like TMO's unloved GSM network does not support
199 TCH/F14.4.
200
201 Experiment 6
202 ============
203
204 As I was writing up notes regarding what seemed like non-working state of NT
205 mode while all Transparent modes up to 9600 bps work great, I decided to test
206 with an older version of FC firmware, namely Magnetite l1reconst. In the
207 earlier years of FreeCalypso, I would frequently make CSD calls just for fun,
208 calling NIST ACTS, and it would always work - and being ignorant of T vs NT
209 and other mode settings, I never set AT+CBST and just dialed ATDnumber. Since
210 we now know that TI's firmware default is AT+CBST=7,0,1 and has always been
211 this way, we know that I was unknowingly exercising NT mode in those happy
212 years - hence I decided to try an older fw version from those years just to see
213 if it would have working NT mode. Tested - it worked!
214
215 But then things got more interesting. I tested with Magnetite hybrid instead
216 of l1reconst - using the new source-enabled version of G23M PS. Result: it
217 seemed a little flaky, but it worked. Then I went back to current Tourmaline
218 fw, the same with which I started in Experiment 1. Did a call with
219 AT+CBST=7,0,0 serving as a control - it worked. Tried AT+CBST=7,0,1 - got a
220 NO CARRIER response; subsequent log analysis shows that the MS initiated CC
221 DISCONNECT just like in Experiment 1. Then I made another attempt, still with
222 AT+CBST=7,0,1 - and this time it worked beautifully: I got CONNECT followed by
223 the full 40 s of ACTS output.
224
225 Thus we now know that NT mode working or not is not a question of firmware
226 version, but some kind of law of chance: time of day, space weather, phase of
227 the moon...
228
229 NT mode: need for further debugging
230 ===================================
231
232 The flaky nature of NT mode calls for further debugging: since we see
233 MS-initiated DISCONNECT on those tries when it fails, we really need to know
234 exactly what is making the MS unhappy. But this debugging is made difficult by
235 the misfeature of TI's DSP: in Experiment 5 I tried capturing TCH DL bits, but
236 all we get is zero fill once the IDS block is active. As next steps, we will
237 need to study the code that interfaces with this IDS block, and see what we can
238 observe at that interface level.
239
240 T vs NT mode: utility vs complexity
241 ===================================
242
243 Consider the IWF provided by the network, speaking CSD frame formats toward GSM
244 RAN and emulating analog modem signals toward 64 kbit/s PSTN, and consider the
245 work it has to do in T vs NT modes. It should be evident that NT mode is much
246 more complex: all of the work implementing V-series modulations is still needed
247 for both T and NT, but whereas T mode provides a direct path between the
248 emulated-modem "bit pump" and CSD V.110 frame bits, in NT mode the IWF has to
249 implement RLP on the GSM side, V.42 on the analog modem side, and make a high-
250 level data connection between these two engines of reliable transmission based
251 on acks, retries etc. Hence the "bug surface", the number of things that can
252 go wrong, is much greater for IWF in NT mode.
253
254 OTOH, utility considerations traditionally called for NT mode. There are
255 *some* applications for which non-buffering, fixed-delay Transparent mode is
256 the right choice: precision time distribution as in NIST ACTS, train engine
257 communication in GSM-R etc - but such applications are more on the boutique
258 side. Instead consider the more typical application of a business user dialing
259 into his/her mainframe or UNIX minicomputer etc account while on the go: here
260 you have a user with a text terminal, and a server/service somewhere that prints
261 text for the user to read and expects text commands. In this case the user
262 would certainly appreciate if his/her session is *not* disturbed by dropouts or
263 garbage insertions from radio errors, from handover events or from line noise
264 on the PSTN leg - such users would certainly benefit from NT mode. Outside of
265 railways or other special environments, considering ordinary public GSM networks
266 intended for consumers and business users, in the days when CSD was a feature
267 of real user significance, NT mode was likely the more desired one for reasons
268 just explained. Yet it is the one which is much more onerous to implement...
269
270 Lack of data-call indication from one T-Mobile MS to another
271 ============================================================
272
273 Looking at the specs for GSM CSD, the intent of the original Creators seems
274 clear: they intended CSD to run between an MS and services on the fixed network,
275 perhaps going through an IWF. In contrast, the case of mobile-to-mobile CSD
276 calls was NOT the canonical configuration - it was probably considered, but only
277 as a rather contrived and unlikely use case. But if someone does make a CSD
278 call addressed to another mobile, how should it work?
279
280 In order for a CSD call to be directly through-connected from Alice to Bob,
281 Osmocom-style, without complex conversions and translations in the middle, two
282 conditions would have to be met:
283
284 1) The connection element setting would have to be Transparent;
285 2) ISDN/UDI mode would need to be selected, rather than 3.1 kHz modem emulation.
286
287 In this case the MO call will be turned into V.110 by the TRAU, no further IWF
288 would be applied at the MSC, the ISDN call would connect from Alice to Bob, the
289 destination MSC serving Bob would see that it's a data call, and it would
290 indicate so to Bob's MS. So far, so good. But the moment you add NT mode or
291 analog modem emulation, the above pass-through model breaks down:
292
293 1) If the bearer cap IE on the MO call indicates ITC of 3.1 kHz audio instead
294 of UDI, Alice's MSC is supposed to pass the call through an IWF that does
295 modem emulation. Once that modem emulation is applied, the call going out
296 on ISDN is in 3.1 kHz audio mode, not digital data!
297
298 2) NT mode does not seem to have ever been intended to carry from mobile user
299 Alice to mobile user Bob - instead it appears to have been intended to run
300 between a single MS and a network IWF only. The IWF then converts to V.42
301 in the case of 3.1 kHz modem emulation, or to V.1xx/X.75/etc protocols in
302 the case of ISDN UDI, with or without V.42-like reliability through acks and
303 retransmissions.
304
305 However, the above considerations stem from the architectural model _assumed_
306 in ETSI GSM specs - whereas the question of what real-world GSM networks have
307 actually implemented needs to be asked separately. In the case of T-Mobile USA,
308 the behavior of the network upon own-subscriber Alice making a CSD call to own-
309 subscriber Bob appears to have changed over the years:
310
311 * In my earlier years of FreeCalypso work, when I made CSD calls from FC GSM MS
312 just for fun while being ignorant of T vs NT modes and other +CBST settings,
313 I would call NIST ACTS to get a truly successful session. But I also
314 experimented a little with mobile-to-mobile CSD. Unfortunately, I never put
315 together a proper setup with two FC GSM MS boards powered up and connected to
316 my laptop at the same time, fitted with two active T-Mobile SIMs, one calling
317 the other - but I did dial CSD a few times from a single "proper" GSM MS
318 (probably FCDEV3B, although I don't remember exactly) to my main personal-use
319 T-Mobile line whose SIM sat in a Pirelli DP-L10 running its official fw.
320 I don't remember if I got this degree of success reliably every time or if it
321 was intermittent - but I did get an incoming call indication on the Pirelli
322 that said "incoming data" or something to that effect. I don't remember
323 exactly what happened afterward, but my vague recollection (subject to the
324 caveats about wetware memory after many years of attention being shifted in
325 very different directions) is that the phone would ring with this "incoming
326 data" indication on the screen, but once I pressed the Answer button, the
327 call attempt would drop - and curiously enough, turn into a "missed call"
328 indication. I don't have good memory of what the call-originating FC GSM MS
329 would show: I seem to recall it going directly to NO CARRIER upon me pressing
330 Answer on the Pirelli, but I also seem to recall at least once getting a
331 CONNECT response, presumably followed by NO CARRIER shortly afterward.
332
333 * In terms of memory reliability, the only part I do remember for certain is
334 that the call-receiving Pirelli phone (running its official fw) _did_ display
335 a "ringing" screen that said something along the lines of "incoming data" -
336 IOW, it very clearly indicated the presence of an incoming call that was data
337 rather than voice, even though of course this phone has no official Terminal
338 Adaptor Function and no ability to meaningfully accept such calls. This
339 indication implies that the MT SETUP message from the network must have
340 included a bearer cap IE that indicated non-speech - although unfortunately
341 I have no logs (back then I wasn't looking at CC or any other air interface
342 messages), thus we don't know if it was a pass-through of BC from the MO leg
343 or altered in some way. The remaining memories of everything else that
344 happened after this logically-deduced MT SETUP should be treated as
345 unreliable.
346
347 * When I tried replicating in the present time (2024-11) the just-described
348 result from many years ago, I had no success: see description of Experiment 4
349 above. Now when I dial a CSD call from one of my legacy T-Mobile SIMs to
350 another, the receiving MS gets an MT SETUP message that contains no BC IE at
351 all, same as with calls coming from outside PSTN, the call rings as voice,
352 and gets assigned TCH/AHS like other speech calls. And because the modem-
353 emulating CSD IWF in the MO direction initially emits silence while waiting
354 for the answering modem, silence is what the receiving phone hears in this
355 errant setup.