annotate doc/Local-short-numbers @ 270:6f28a4377a99

doc/Local-short-numbers: first draft written
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 26 Nov 2023 17:08:10 -0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
270
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 Network-internal short dialing numbers
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 ======================================
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 In addition to obviously necessary support for standard E.164 phone numbers
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 (assigning real NANP numbers to local subscribers, calling any other NANP
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 numbers whether they are local or not, calling international numbers outside of
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 NANP), ThemWi system sw implements an additional, entirely private and network-
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 internal, numbering space for 4-digit short dialing numbers. Any time a ThemWi
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 GSM subscriber dials a number that consists of only (exactly) 4 digits, that
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 short number is looked up in this private ThemWi-defined numbering space.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 In the present implementation, three different types of numbers can exist in
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 this private, network-internal short 4-digit number space, each described in
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 its own section below.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 Abbreviated NANP numbers
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 ------------------------
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 If you have a bunch of real NANP numbers from the same NPA-NXX prefix, you can
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 enter them into the master database of locally owned numbers (see
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 Number-database article) using this notation:
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 prefix NPA-NXX allow-abbrev
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 If the 'allow-abbrev' flag keyword is included, each NANP number entered under
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 this prefix (each following suffix line) gets added to the short 4-digit number
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 space: in addition to the standard option of dialing all 10 digits, the same
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 number can be reached by dialing only the last 4 digits, considered to be the
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 "station" part of the number (under a given "exchange") per NANP rules.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 You do need to be careful with this facility, as conflicting numbers are not
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 allowed. Enabling allow-abbrev mode makes sense under the following conditions:
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 1) You have one preferred NPA-NXX prefix, presumably corresponding to your
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 geographic locality, and you reserve all of your native numbers (via BulkVS
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 portal or equivalent from other providers) from that one preferred prefix.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 In this case you should set allow-abbrev on your "home" prefix, but whenever
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 you have to add non-native numbers to your network (customer port-ins etc),
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 those don't get the abbreviated dialing option, only full10.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 2) You may enable allow-abbrev for more than one prefix if you reserve your
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 numbers from multiple prefixes in a judicious manner, selecting 4-digit
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 suffixes that don't overlap across your two (or more) prefixes.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 Internal test numbers (ITNs)
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 ----------------------------
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 An ITN is a 4-digit short dialing number (meaningful only inside your local GSM
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 network) that is assigned to a GSM subscriber and entered as such (4 digits
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 only) into OsmoHLR subscriber database. When ITNs are used, a GSM subscriber
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 who gets an ITN is *not* given a real NANP telephone number, and thus cannot
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 make any calls to or receive any calls from the outside world.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 Our own Themyscira Wireless operation does not presently use any ITNs. This
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 facility was invented before we realized how cheap NANP numbers can be when they
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 are ordered "raw" or "bare": a basic reservation of a real 10-digit NANP number
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 from BulkVS *without* E911 provision and without SMS capability (regular,
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 non-emergency calls only) costs only $0.06 (6 cents) per number per month. At
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 this insanely cheap price, it makes no sense to introduce ITNs, it is easier to
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 give a real NANP number to every GSM subscriber including lab-use-only test
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 SIMs - but the Mother does not believe in removing implemented functionality
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 without extremely strong justification, hence support for ITNs remains in our
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 software.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 To define an ITN, enter a line like this into your master database of locally
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 owned numbers:
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 itn XXXX
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 where XXXX is the 4-digit number to be defined as an ITN.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 Test sink numbers
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 -----------------
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 A test sink number is a private, network-internal 4-digit number that is
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 intended to serve as a destination or "sink" for test calls and test SMS. Any
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 calls dialed to a test sink number will be handled by a special process which
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 only exists for that purpose (remains to be implemented), and any SMS sent to a
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 test sink number will be simply written into log-structured storage without any
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 further delivery to anywhere. The purpose of test sink numbers is to exercise
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 outgoing call and outgoing SMS functions of GSM MS without needing a "real"
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 second party to serve as the recipient.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 To define a test sink number, enter a line like this into your master database
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 of locally owned numbers:
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 test-sink XXXX
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 where XXXX is the 4-digit number to be defined as a test sink.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 Historical perspective
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 ======================
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 In the original design of ThemWi system sw, 4-digit short dialing numbers were
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 intended to be ITNs only, forming an internal-only numbering space that is
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 entirely disjoint from public E.164 numbers. Operating on the assumption that
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 external NANP numbers would be expensive, the design model was that every GSM
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 subscriber would have an ITN, and then additionally some subscriber lines (those
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 belonging to human users, rather than lab test SIMs) would be given real
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 external phone numbers in NANP. The fixed 4-digit length for internal short
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 numbers was chosen, contrary to the apparent custom in Osmocom community of
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 using 5-digit numbers for such internal "extensions", because a 5-digit number
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 can be a valid SMS short code in USA, and human users of Themyscira Wireless GSM
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 service need to be able to access these SMS short-code public services just like
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 customers of any other cell carrier in this country.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 Shortly after beginning to implement the initial design described above, we
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 discovered how cheap real NANP numbers actually are, and got a batch of numbers
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 from our choice of NPA-NXX prefix. We were then sitting on a batch of numbers
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 that had the same 6-digit prefix, but different 4-digit suffixes, and that was
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 how we got the idea of abbreviated dialing numbers: instead of completely
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 made-up ITNs, allow "home block" NANP numbers to be dialed (from one local GSM
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 phone to another) by just the last 4 digits of the external, globally valid
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 E.164 number.
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 Test sink numbers are our latest-so-far addition to the network-internal 4-digit
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 dialing number space, and we have yet to implement them beyond mere definition
6f28a4377a99 doc/Local-short-numbers: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 in the local number database.