FreeCalypso > hg > themwi-system-sw
annotate mgw/struct.h @ 255:b0bf167bb846
themwi-update-outrt: add route-to-e911 option
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 15 Aug 2023 00:23:03 -0800 |
parents | 0047c4c08d9e |
children |
rev | line source |
---|---|
32
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This header file defines internal data structures for themwi-mgw. |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 */ |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 struct bind_range_cfg { |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 struct in_addr bind_ip; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 unsigned port_range_start; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 unsigned port_range_end; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 unsigned port_next; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 unsigned port_tries; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 }; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 struct rtp_one_end { |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 int rtp_fd; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 int rtcp_fd; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 struct sockaddr_in bound_addr; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 struct sockaddr_in remote_addr; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 }; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 struct endpoint { |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 unsigned ep_type; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 struct rtp_one_end rtp_gsm; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 struct rtp_one_end rtp_pstn; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 unsigned gsm_payload_type; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 unsigned gsm_payload_msg_type; |
205
0047c4c08d9e
mgw: accept the new TRAUlike RTP format
Mychaela Falconia <falcon@freecalypso.org>
parents:
170
diff
changeset
|
26 unsigned gsm_payload_len; |
100
1579ec0e9fb9
mgw internal code: set GSM side RTP packet size in one place
Mychaela Falconia <falcon@freecalypso.org>
parents:
97
diff
changeset
|
27 unsigned gsm_payload_magic; |
32
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 unsigned pstn_payload_type; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 unsigned fwd_mode; |
95
f280328e7e2e
themwi-mgw: initial implementation of PSTN to GSM forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
30 /* gateway functionality */ |
f280328e7e2e
themwi-mgw: initial implementation of PSTN to GSM forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
31 void *gsm_encoder_state; |
f280328e7e2e
themwi-mgw: initial implementation of PSTN to GSM forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
32 void *gsm_decoder_state; |
168
8c28426abef0
mgw: start using the new libgsmfrp dependency
Mychaela Falconia <falcon@freecalypso.org>
parents:
150
diff
changeset
|
33 void *gsm_decoder_extra_state; |
103
3b3f07b112f3
mgw: implement GSM to PSTN forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
100
diff
changeset
|
34 /* GSM to PSTN forwarding */ |
3b3f07b112f3
mgw: implement GSM to PSTN forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
100
diff
changeset
|
35 int g2p_state; |
3b3f07b112f3
mgw: implement GSM to PSTN forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
100
diff
changeset
|
36 uint32_t g2p_ssrc; |
3b3f07b112f3
mgw: implement GSM to PSTN forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
100
diff
changeset
|
37 uint32_t g2p_last_ts; |
3b3f07b112f3
mgw: implement GSM to PSTN forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
100
diff
changeset
|
38 uint16_t g2p_last_seq; |
3b3f07b112f3
mgw: implement GSM to PSTN forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
100
diff
changeset
|
39 uint16_t g2p_out_seq; |
3b3f07b112f3
mgw: implement GSM to PSTN forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
100
diff
changeset
|
40 int g2p_drop_flag; |
3b3f07b112f3
mgw: implement GSM to PSTN forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
100
diff
changeset
|
41 int g2p_err_flags; |
127
f062c32a5116
mgw: implement DTMF
Mychaela Falconia <falcon@freecalypso.org>
parents:
103
diff
changeset
|
42 /* DTMF generation toward PSTN */ |
170
a6eb2de277f6
mgw: massive simplification for continuous RTP stream from BTS
Mychaela Falconia <falcon@freecalypso.org>
parents:
168
diff
changeset
|
43 int16_t *dtmf_sample_ptr; |
127
f062c32a5116
mgw: implement DTMF
Mychaela Falconia <falcon@freecalypso.org>
parents:
103
diff
changeset
|
44 unsigned dtmf_frames_sent; |
103
3b3f07b112f3
mgw: implement GSM to PSTN forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
100
diff
changeset
|
45 /* PSTN to GSM forwarding */ |
95
f280328e7e2e
themwi-mgw: initial implementation of PSTN to GSM forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
46 int p2g_state; |
f280328e7e2e
themwi-mgw: initial implementation of PSTN to GSM forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
47 uint32_t p2g_ssrc; |
f280328e7e2e
themwi-mgw: initial implementation of PSTN to GSM forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
48 uint32_t p2g_last_ts; |
f280328e7e2e
themwi-mgw: initial implementation of PSTN to GSM forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
49 uint16_t p2g_last_seq; |
96
f24bbfd23c9d
mgw p2g: outgoing seq numbers, forwarding control
Mychaela Falconia <falcon@freecalypso.org>
parents:
95
diff
changeset
|
50 uint16_t p2g_out_seq; |
97
9aed16c30622
mgw p2g: set M bit when restarting forwarding after no-forward
Mychaela Falconia <falcon@freecalypso.org>
parents:
96
diff
changeset
|
51 int p2g_drop_flag; |
95
f280328e7e2e
themwi-mgw: initial implementation of PSTN to GSM forwarding
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
52 int p2g_err_flags; |
32
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 /* linked list management */ |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 unsigned ep_id; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 struct endpoint *next; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 }; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 struct ctrl_conn { |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 struct endpoint *endp_list; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 unsigned next_ep_id; |
b3f74df7b808
beginning of themwi-mgw
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 }; |