FreeCalypso > hg > themwi-system-sw
annotate doc/Number-database @ 275:def9f6e4f49e default tip
doc/Use-outside-USA: Fake-NANP-numbers article is here
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 27 Nov 2023 21:49:19 -0800 |
parents | c78b8d6ce885 |
children |
rev | line source |
---|---|
269
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 Database of locally owned numbers |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 ================================= |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 The database of locally owned phone numbers is a ThemWi-invented ad hoc data |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 structure that is absolutely required for ThemWi system sw to work. The human- |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 edited ASCII source form of this database resides in /var/gsm/number-db2 and |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 its compiled binary form resides in /var/gsm/number-db2.bin, compiled with |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 themwi-update-numdb2 utility. (The "db2" in file and utility names refers to |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 database version 2, which is the current version.) This database contains two |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 types of entries: |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 1) Locally owned 10-digit NANP numbers; |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 2) Internally defined 4-digit short numbers. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 NANP number ownership information |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 ================================= |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 ThemWi system sw is written with the assumption that the local instance operator |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 obtains (rents) real NANP phone numbers from a provider such as BulkVS and |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 assigns these numbers to individual GSM subscribers in OsmoHLR. However, in |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 order for ThemWi system sw to work correctly, there is one more step needed: |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 each locally owned number (i.e., each NANP number you rent from BulkVS or |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 whoever your upstream is) needs to be entered into ThemWi local number database. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 The step of obtaining (a batch of) NANP phone numbers from your SIP trunk |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 provider and the step of assigning individual numbers to specific GSM |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 subscribers (by way of OsmoHLR subscriber database) are almost always separated |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 in time: as an operator, you will typically obtain a batch of TNs (telephone |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 numbers) in one go, and from the perspective of your upstream, all of these TNs |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 route to your server. How you then assign them to GSM subscribers (make them |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 into MSISDNs associated with IMSIs) is your own business, and you can change |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 these associations any time you like, without affecting your interconnection |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 with your PSTN upstream. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 ThemWi local number database needs to list all TNs (10-digit NANP numbers) that |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 are currently owned by your local fiefdom, irrespective of whether or not they |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 are assigned to a GSM subscriber. If a given TN belongs to your local fiefdom |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 in the sense that the global worldwide PSTN will direct any incoming calls to |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 this TN to your server, but you haven't assigned it to a GSM subscriber yet, |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 ThemWi system sw still needs to know that this number is locally owned: call |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 attempts to that TN should never be sent to the outbound gateway, in particular. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 Owned NANP number entry syntax |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 ------------------------------ |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 By way of example, suppose that a set of telephone numbers in the range |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 310-555-01XX is yours - how do you enter them into /var/gsm/number-db2? You |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 have a choice of two syntax forms: |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 1) If you have many numbers in the same NPA-NXX prefix (as in the present |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 example), you can enter them using this syntax: |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 prefix 310-555 [allow-abbrev] |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 suffix 0101 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 suffix 0102 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 suffix 0103 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 ... |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 In this form, all owned TNs under the same prefix are clearly grouped together, |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 and you have the option of allowing abbreviations - if you wish to allow |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 abbreviated 4-digit dialing, add 'allow-abbrev' keyword to the prefix line. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 When abbreviations are enabled, each suffix line not only creates an entry in |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 the owned-NANP portion of the local number database, but also adds an entry to |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 the list of defined 4-digit short dialing numbers, mapping to the corresponding |
272
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
66 full number - see Local-short-numbers article. |
269
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 2) If you have individual 10-digit NANP numbers that don't form a neat group |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 under a single NPA-NXX prefix, you can enter them using this alternative |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 syntax for single numbers: |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 full10 310-123-5678 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 full10 216-555-0166 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 full10 949-011-1234 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 ... |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 (The example uses invalid NANP numbers, whereas in actual usage you have to |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 enter real valid ones - but the syntax is the same.) With this number entry |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 method, there is no possibility of allow-abbrev: no 4-digit short dialing number |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 is created, and the owned NANP number in question can only be dialed in full |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 10-digit form. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 The given syntax examples for prefix and full10 lines use hyphens. These |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 hyphens are optional and can be placed anywhere in the number - but we recommend |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 following the standard notation for NANP numbers. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 NANP number usage information |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 ============================= |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 The entry formats given above provide only number ownership information: they |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 tell ThemWi system sw which NANP numbers belong in the local fiefdom (all listed |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 numbers) and which ones don't (the remaining space of all other possible NANP |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 numbers outside listed ones). However, this number ownership information does |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 not include any usage or assignment information, and this additional info needs |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 to be provided via number attributes. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 If number ownership information is entered exactly as shown in the examples |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 above, without any additional attributes, ThemWi system sw will treat each of |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 its owned numbers as being unassigned: any call attempts to that number, from |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 the inside or from the outside, will return "unassigned number" error to the |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 caller in the form of GSM CC cause value or SIP error code. When locally owned |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 numbers are assigned to GSM subscribers, a 'gsm-sub' attribute needs to be added |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 to each thus-assigned number; following the already given examples, the new |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 syntax becomes: |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 prefix 310-555 [allow-abbrev] |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 suffix 0101 gsm-sub |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 suffix 0102 gsm-sub |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 suffix 0103 gsm-sub |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 full10 310-123-5678 gsm-sub |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 full10 216-555-0166 gsm-sub |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 full10 949-011-1234 gsm-sub |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 ... |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 Note the absence of indication as to which GSM subscriber each number is |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 assigned to: when ThemWi system sw sees that the called number is assigned to |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 gsm-sub usage, it sends the call to OsmoMSC, which will then look for a |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 connected subscriber whose MSISDN equals the called party number. The mapping |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 from phone numbers to specific subscribers as in IMSIs thus happens by way of |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 OsmoHLR subscriber database, just like in "bare" Osmocom CNI setups without |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 ThemWi system sw. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 Alias numbers |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 ------------- |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 ThemWi system sw supports the notion of alias or redirecting numbers. Suppose |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 you have a single GSM subscriber who needs to be reachable at more than one NANP |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 number - for example, someone who got a native ThemWi number (from BulkVS etc) |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 at one point in time, but then ported their number from some national carrier |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 (of evil 2G-killing kind) to BulkVS/ThemWi - how to make the same GSM subscriber |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 reachable via both numbers? Each GSM subscriber has a primary MSISDN (phone |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 number) that is configured in OsmoHLR: this number is returned by *#100# query, |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 and appears as the "from" number on all outgoing calls. Any additional numbers |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 that should route to the same subscriber need to be handled via ThemWi alias |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 number facility, i.e., handled at ThemWi system sw level rather than at OsmoCNI |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 level. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 The syntax for entering alias numbers is as follows (using example fake numbers |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 from above): |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 prefix 310-555 [allow-abbrev] |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 suffix 0123 map-to 216-555-0166 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 or |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 full10 310-555-0123 map-to 216-555-0166 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 In this example the "native" number of the GSM subscriber is 216-555-0166, but |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 alias number 310-555-0123 is configured to route to the same subscriber. In the |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 case of full10 number lines, the map-to target number must always be entered in |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 full 10-digit notation just like the alias number; in the case of prefix and |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 suffix lines, the map-to target number can be either a full 10-digit number or |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 a 4-digit number in the same prefix. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 Irrespective of entry notation used, every map-to target number must be a |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 locally owned NANP number (cannot be an outside number) of gsm-sub usage type, |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 i.e., some local GSM subscriber's primary number. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 Additional number flags for SMS and E911 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 ======================================== |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 The following additional flags can be set on each locally owned NANP number's |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 suffix or full10 line: |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 e911 This flag indicates that the number in question is provisioned for E911 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 at the level of BulkVS or whoever is the upstream provider from whom |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 the number is rented. Having a number provisioned for E911 (which costs |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 additional money every month) means that emergency 911 calls can be sent |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 to that PSTN-via-SIP provider with this number as source or "from", |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 without paying a hefty fine for an unprovisioned E911 call. |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 sms This flag indicates that the number in question is provisioned for |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 outside SMS connectivity, meaning that it is possible to send SMS to |
ff1ed366c84d
doc/Number-database: first draft written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 the outside world with this number as source or "from". |
272
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
177 |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
178 Local short number entries |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
179 ========================== |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
180 |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
181 In addition to entries that list locally owned NANP numbers, there are other |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
182 types of entry in the master number database source file that list ITNs |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
183 (internal test numbers) and test sinks. These entries are described in |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
184 Local-short-numbers article. |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
185 |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
186 Compiled binary format and updates |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
187 ================================== |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
188 |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
189 The human-edited ASCII source form of the just-described number database, |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
190 located in /var/gsm/number-db2 master file, is read only by themwi-update-numdb2 |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
191 utility and no other programs. This utility reads the ASCII source form of the |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
192 number database, parses it with some basic validation, and compiles it into a |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
193 binary format that is designed for fast lookups and read by long-running ThemWi |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
194 processes. The compiled binary form of the number database resides in |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
195 /var/gsm/number-db2.bin, and the latter file is always updated via an atomic |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
196 rename mechanism: themwi-update-numdb2 first writes out a temporary file named |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
197 number-db2.newbin, then renames it to number-db2.bin, making the new version |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
198 live. |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
199 |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
200 Long-running ThemWi server processes perform stat(2) checks on this file as part |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
201 of call setup or SMS admission processing, and if they notice that the binary |
c78b8d6ce885
doc/Number-database: should be complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
202 database file has changed, they read the new version. |