FreeCalypso > hg > themwi-system-sw
annotate README @ 193:1f9a6cede2c5
sip-manual-out: split user_cmd.c from disc_cmd.c
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Fri, 17 Mar 2023 14:31:54 -0800 | 
| parents | b259e2722485 | 
| children | 
| rev | line source | 
|---|---|
| 29 | 1 This Hg repository contains a work-in-progress named Themyscira Wireless system | 
| 2 software. Themyscira Wireless (ThemWi) is an experimental GSM network operated | |
| 3 by Mother Mychaela of FreeCalypso at a semi-urban/semi-rural location in | |
| 4 Southern California, USA; this GSM network is operated with Osmocom CNI software | |
| 5 components, all running on a single Slackware Linux server. ThemWi system sw | |
| 
88
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
6 is a suite of daemon processes and command line tools that run on the same | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
7 machine as all those Osmocom sw components and provide some additional | 
| 29 | 8 functionality that is not provided "out of the box" by Osmocom, most important | 
| 9 of which is outside connectivity to USA PSTN. | |
| 10 | |
| 11 We are currently experimenting with using bulkvs.com as our USA PSTN | |
| 12 connectivity provider. Like most low-cost PSTN connectivity providers, they | |
| 13 provide the interface to PSTN in the form of a SIP trunk - while I would | |
| 14 absolutely love to get a traditional TDM trunk instead, with SS7 signaling, | |
| 15 such a toy would be far beyond my budget, hence I have to settle for SIP. | |
| 16 Our current status is: | |
| 17 | |
| 18 * We have already obtained a block of USA phone numbers (NANP, chosen numbers | |
| 
88
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
19 from an exchange area local to us) from BulkVS. | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
20 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
21 * These BulkVS-sourced real NANP numbers have been entered as MSISDNs into | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
22 OsmoHLR records for our test SIMs operating on ThemWi GSM. | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
23 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
24 * We can successfully dial calls from one ThemWi GSM phone to another, with our | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
25 themwi-mncc switch understanding all dialing formats that are considered | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
26 standard for cellular phone networks in USA (full international, or 11 digits | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
27 starting with '1' but no '+', or 10 digits only), as well as our own non- | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
28 standard shorthand dialing method with only 4 digits. | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
29 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
30 * Whenever someone dials one of our NANP numbers from the outside world, BulkVS | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
31 servers send UDP SIP INVITE packets to our server. Our inbound call gateway | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
32 process is themwi-sip-in; this daemon process listens on UDP port 5060, | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
33 accepts SIP calls from BulkVS (ultimately coming from global worldwide PSTN) | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
34 and turns them into GSM MT calls in MNCC format, going through themwi-mncc | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
35 and ultimately to OsmoMSC. | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
36 | 
| 
178
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
37 * Our outbound call gateway is themwi-sip-out, serving as a counterpart to | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
38 themwi-sip-in. All GSM MO calls are initially handled by themwi-mncc, which | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
39 decides (based on the dialed number) whether to switch the call locally | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
40 (calling another ThemWi GSM phone) or to pass it to themwi-sip-out. The | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
41 latter process turns outbound calls into SIP and sends them to BulkVS, and we | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
42 are successfully able to call any PSTN destination anywhere in the +1 country | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
43 code. (themwi-sip-out has provisions for international routes too, but we | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
44 haven't set up any yet.) | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
45 | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
46 * These inbound and outbound calls per the previous two bullet points also | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
47 include fully working voice path, with our themwi-mgw transcoding the two RTP | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
48 streams (one in each direction) between the original GSM 06.10 codec or | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
49 GSM 06.60 EFR codec on the GSM side and G.711 PCMU or PCMA on the PSTN-via-SIP | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
50 side. This voice call gateway includes working DTMF support: START DTMF and | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
51 STOP DTMF commands from GSM phones pass through OsmoMSC, themwi-mncc and | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
52 themwi-sip-{in,out} to themwi-mgw, and the latter process injects in-band DTMF | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
53 tones into the G.711 RTP stream that is otherwise generated by transcoding | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
54 from GSM voice codecs. | 
| 
129
 
b7cd66acb123
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
88 
diff
changeset
 | 
55 | 
| 
88
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
56 The following functionality remains to be implemented: | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
57 | 
| 
178
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
58 * The only GSM codecs currently supported are the original FR (GSM 06.10) and | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
59 EFR (GSM 06.60). At some point it would be nice to add support for AMR and | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
60 maybe even HR1, purely for demonstration of its poor voice quality. | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
61 | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
62 * The Presiding High Priestess of Themyscira Wireless has a desire to implement | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
63 in-band GSM 08.62 TFO inside our G.711 RTP interface to outside PSTN. Right | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
64 now if a call is connected between a ThemWi GSM phone on one end and another | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
65 GSM phone on some other network anywhere else in the world, an undesirable | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
66 tandem transcoding takes place: two lossy GSM speech codecs run in tandem, | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
67 one on the ThemWi GSM leg of the call and another on the distant GSM network's | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
68 leg, with a G.711 64 kbps connection in between. If we implement GSM 08.62 | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
69 TFO inside our G.711 RTP interface which we present to the outside world, we | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
70 shall achieve TFO calls at least between ThemWi and any other community GSM | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
71 networks using our software, and maybe even between ThemWi and some legacy | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
72 commercial GSM networks, if any still remain in parts of the world that are | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
73 accessible to us. | 
| 29 | 74 | 
| 
178
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
75 * No work whatsoever has been done on SMS as of yet - all of our ThemWi work so | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
76 far has been in support of voice call functionality only. Adding SMS support | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
77 will require 3 major areas of work: | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
78 | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
79 1) We will need to climb the learning curve and assess the current state of SMS | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
80 support in Osmocom CNI software. | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
81 | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
82 2) We'll have to find a USA PSTN connectivity provider who supports P2P SMS: if | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
83 we are operating a GSM network and providing mobile phone service to human | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
84 end users, any SMS usage in such scenario MUST be classified as P2P rather | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
85 than A2P. However, gaining access to P2P SMS in USA telecom environment is | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
86 currently very difficult (every major provider forcibly imposes A2P | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
87 misclassification with no option of P2P correct classification), in stark | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
88 contrast to very easy and cheap access to voice PSTN with NANP phone numbers. | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
89 | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
90 3) When and if we find that necessary USA PSTN connectivity provider with P2P | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
91 SMS provision, we will need to implement whatever software will be needed to | 
| 
 
b259e2722485
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
129 
diff
changeset
 | 
92 interconnect it with an OsmoCNI GSM network, likely a custom SMSC. | 
| 
88
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
93 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
94 Differences from osmo-sip-connector | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
95 ----------------------------------- | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
96 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
97 In the Osmocom community, the "standard" (or generally accepted) way to connect | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
98 a GSM voice network to the outside world is via osmo-sip-connector, an Osmocom | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
99 process that connects to OsmoMSC's MNCC socket on one end and talks SIP on the | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
100 other end. Our combination of themwi-mncc, themwi-sip-in and themwi-sip-out | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
101 effectively takes the place of osmo-sip-connector. Here are the principal ways | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
102 in which our solution differs from osmo-sip-connector: | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
103 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
104 * o-s-c is designed to connect to a local instance of a SIP PBX such as Asterisk | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
105 or FreeSWITCH, as opposed to interfacing directly to an outside SIP trunk | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
106 from/to a PSTN-via-SIP connectivity provider. themwi-system-sw is different | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
107 in this regard: we do NOT use Asterisk or FreeSWITCH or any other similar | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
108 software of "spaceship" complexity, instead our themwi-sip-in and | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
109 themwi-sip-out processes interface directly to our PSTN-via-SIP connectivity | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
110 provider. | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
111 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
112 * o-s-c has no internal call switching function for calls from one local GSM | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
113 phone to another, instead such switching is punted to the required Asterisk | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
114 or FreeSWITCH etc. With o-s-c, the calling phone's MO call is converted to | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
115 SIP, then Asterisk or other PBX hairpins it back to o-s-c, and then o-s-c | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
116 handles the destination call leg as a separate conversion from SIP back to | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
117 GSM MNCC. In our solution such local calls are switched internally inside | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
118 themwi-mncc, staying native within GSM MNCC land and never turning into SIP. | 
| 29 | 119 | 
| 
88
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
120 * o-s-c is based on Sofia-SIP, which in turn uses glib - a very unpleasant | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
121 dependency in this Mother's opinion. In contrast, our implementation of SIP | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
122 is 100% from scratch, written in plain C in the traditional Falconian coding | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
123 style. | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
124 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
125 The need for RTP voice transcoding | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
126 ---------------------------------- | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
127 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
128 In the context of GSM voice codecs, the term "transcoding" is used in two | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
129 significantly different meanings: | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
130 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
131 * Transcoding from one lossy GSM codec to another effectively constitutes two | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
132 lossy speech codecs running in tandem, and is a highly undesirable condition. | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
133 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
134 * Running a single GSM codec (not two in tandem), decoding from GSM to G.711 in | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
135 one direction and encoding from G.711 in the other direction, is a standard | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
136 required function for traditional voice gateways between GSM and PSTN. | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
137 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
138 In themwi-system-sw, we need to do transcoding in the second sense above. | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
139 BulkVS SIP call interface to PSTN does not support any of GSM codecs, they only | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
140 support G.711 and G.729, and the same situation is expected to hold with other | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
141 PSTN-via-SIP connectivity providers. We certainly don't want to use G.729 - we | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
142 don't want to run two lossy speech codecs in tandem, first GSM and then G.729 - | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
143 hence the only codecs we speak on the PSTN-via-SIP side of our gateway are PCMU | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
144 and PCMA. Therefore, we need to perform RTP transcoding in our themwi-mgw, | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
145 very similar to a traditional GSM TRAU. | 
| 29 | 146 | 
| 
88
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
147 On the GSM side, the two codecs of most interest to us at the present time are | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
148 the original FR and EFR - hence they will be the first to be supported. Note | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
149 the big difference from other Osmocom-using GSM community networks which | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
150 typically prefer or even strictly require AMR instead! Our reasons for focusing | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
151 on FR and EFR instead of AMR are: | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
152 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
153 * Our OsmoBSC time slot configuration is full rate channels only, no half rate | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
154 channels. HR channels are needed only for greater capacity of simultaneous | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
155 calls, but with the total number of people *on the planet* who actively want | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
156 GSM/2G as opposed to LTE or 5G being no more than maybe 10, the thought of | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
157 exceeding the limit of 6 simultaneous call legs per cell (meaning 6 separate | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
158 GSM phone handsets talking *at the same time*) is preposterous. | 
| 29 | 159 | 
| 
88
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
160 * Without any HR channels in OsmoBSC config, AMR means AMR-FR specifically, not | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
161 AMR-HR. The highest level of AMR-FR is identical with EFR - thus if we | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
162 support EFR, do we really need AMR? | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
163 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
164 * The whole point of Themyscira Wireless is to provide service to *vintage* | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
165 mobile phones. Our current collection of vintage phones includes models that | 
| 
129
 
b7cd66acb123
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
88 
diff
changeset
 | 
166 only support FR1 and EFR (Ericsson I888, Nokia 5190 and 6190), as well as | 
| 
 
b7cd66acb123
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
88 
diff
changeset
 | 
167 Calypso C05 which supports FR1, EFR and HR1, but not AMR. | 
| 
88
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
168 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
169 * EFR is desirable because it gives better voice quality than FR1, but we must | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
170 support FR1 too, so we can serve the very oldest of phones which support only | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
171 FR1 and nothing else. | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
172 | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
173 Voice codec restriction (forcing GSM phones to use EFR instead of AMR, or | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
174 forcing all the way down to FR1) is done in OsmoBSC config, with codec-list | 
| 
 
97317ede320a
README: update for current status
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
29 
diff
changeset
 | 
175 setting under 'msc 0'. | 
