Project

General

Profile

CSD » History » Version 8

fixeria, 01/26/2024 10:08 PM
add more ticket references

1 1 fixeria
h1. CSD (Circuit Switched Data)
2
3
{{>toc}}
4
5
This page documents Circuit Switched Data support in the [[mobile]] application (see #4396).
6 2 fixeria
7
h2. L1 PHY support
8
9
At the time of writing this wiki page, CSD support is implemented for the following L1 PHYs:
10
11
* [[Layer1bin]] firmware for [[Phones#TI-Calypso-based|Calypso based phones]]
12
* SDR PHY ([[osmotrx:|osmo-trx-ms]]) + [[TRX_Interface#The-trxcon-application|trxcon]] application
13
* SDR PHY ([[osmocom-bb-sdr-phy:|grgsm_trx]]) + [[TRX_Interface#The-trxcon-application|trxcon]] application
14
* [[FakeTRX]] (virtual Um) + [[TRX_Interface#The-trxcon-application|trxcon]] application
15 3 fixeria
16
h2. L23 support state
17
18
* async (soft-UART) transparent V.110 calls
19
* [not tested] sync transparent V.110 calls
20
** [not tested] including fax calls
21
* TCH/F9.4, TCH/F4.8, TCH/F2.4 (only @ 2400 bps)
22
* [not tested] TCH/H4.8, TCH/H2.4 (only @ 2400 bps)
23
24
h3. TODO/limitations
25
26
* non-transparent calls (V.110 RLP, V.120)
27 8 fixeria
* TCH/F14.4 (see #6346 and #6167)
28
* TCH/F2.4 and TCH/H2.4 @ 300 bps, 1200/75 bps (see #6347)
29 3 fixeria
* ECSD (multi-TCH support)
30
* "CUSE (Character devices in user space)":https://lwn.net/Articles/308445/
31 4 fixeria
32
h2. VTY configuration
33
34
Below is an example configuration snippet (only relevant params):
35
36
<pre>
37
ms 1
38
 support
39
  no full-data-14400
40
  full-data-9600
41
  full-data-4800
42
  half-data-4800
43
  full-data-2400
44
  half-data-2400
45
 tch-data
46
  io-handler unix-sock
47
! 'ti' is valid for Calypso PHY, change to 'osmo' for trxcon
48
  io-tch-format ti
49
  unix-socket /tmp/ms_data
50
  call-params type-rate 71
51
  call-params ce transparent
52
  call-params async
53
  call-params async nr-stop-bits 1
54
  call-params async nr-data-bits 8
55
  call-params async parity none
56
</pre>
57
58 5 fixeria
(you can use @osmo-config-merge@ from [[libosmocore]] to merge this snippet into your mobile.cfg)
59 4 fixeria
60
h3. Call parameters
61
62
You can configure data call parameters either using @call MS_NAME params@ command:
63
64
<pre>
65
OsmocomBB(mobile)> enable
66
OsmocomBB(mobile)# call 1 params ?
67
  data  Parameters for data calls
68
OsmocomBB(mobile)# call 1 params data ?
69
  type-rate  Type and rate (values like in AT+CBST; see 3GPP TS 27.007, section 6.7)
70
  ce         Connection element (does not apply to FAX calls)
71
  sync       Synchronous connection (always used for FAX calls)
72
  async      Asynchronous connection (does not apply to FAX calls)
73
</pre>
74
75
... or by entering the configuration node:
76
77
<pre>
78
OsmocomBB(mobile)> enable 
79
OsmocomBB(mobile)# configure terminal 
80
OsmocomBB(mobile)(config)# ms 1
81
OsmocomBB(mobile)(ms)# tch-data 
82
OsmocomBB(mobile)(tch-data)# list
83
...
84
  io-handler (none|unix-sock|loopback)
85
  no io-handler
86
  io-tch-format (osmo|ti)
87
  unix-socket PATH
88
  call-params type-rate (4|5|6|7|68|70|71)
89
  call-params ce (transparent|non-transparent) [prefer]
90
  call-params (sync|async)
91
  call-params async nr-stop-bits <1-2>
92
  call-params async nr-data-bits <7-8>
93
  call-params async parity (none|even|odd|mark|space)
94
</pre>
95
96
Below is the list of supported bearer type/rate combinations:
97
98
<pre>
99
OsmocomBB(mobile)# call 1 params data type-rate?
100
  type-rate  Type and rate (values like in AT+CBST; see 3GPP TS 27.007, section 6.7)
101
OsmocomBB(mobile)# call 1 params data type-rate ?
102
  4   2400 bps (V.22bis)
103
  5   2400 bps (V.26ter)
104
  6   4800 bps (V.32)
105
  7   9600 bps (V.32)
106
  68  2400 bps (V.110 or X.31 flag stuffing)
107
  70  4800 bps (V.110 or X.31 flag stuffing)
108
  71  9600 bps (V.110 or X.31 flag stuffing)
109
</pre>
110 6 fixeria
111
This list may be extended in the future, e.g. after adding support for TCH/[FH]2.4 @ 300 bps, 1200/75 bps.
112 7 fixeria
113
h2. Making calls
114
115
Making a data call is as easy as making a regular voice call:
116
117
<pre>
118
OsmocomBB(mobile)# call 1 MSISDN ?
119
  [voice]  Initiate a regular voice call (default)
120
  [data]   Initiate a data call (UDI or 3.1 kHz audio)
121
  [fax]    Initiate a data call (Facsimile group 3)
122
</pre>
123
124
An incoming data call is answered just like a voice call:
125
126
<pre>
127
OsmocomBB(mobile)# call 1 answer
128
</pre>
129
130
After the call is connected (i.e. answered either locally or remotely), you can connect to the UNIX socket.
131
132
An ongoing call can be terminated just like a regular voice call:
133
134
<pre>
135
OsmocomBB(mobile)# call 1 hangup
136
</pre>
137
138
An incoming call can also be rejected using this command.
139
140
h3. Example: sending text using @socat@
141
142
<pre><code class="shell">
143
socat UNIX-CONNECT:/tmp/ms_data STDIO,echo=0,icanon=0
144
</code></pre>
145
146
h3. Example: sending files using @socat@ and @[xyz]modem@
147
148
On the receiving side:
149
150
<pre><code class="shell">
151
socat UNIX-CONNECT:/tmp/ms_data EXEC:"lrzsz-rz -v"
152
</code></pre>
153
154
On the sending side:
155
156
<pre><code class="shell">
157
socat UNIX-CONNECT:/tmp/ms_data EXEC:"lrzsz-sz -v /usr/share/licenses/spdx/GPL-2.0-or-later.txt"
158
</code></pre>
Add picture from clipboard (Maximum size: 48.8 MB)