FreeCalypso > hg > themwi-interim
annotate mtctest/sig_handler.c @ 5:e7b192a5dee5
mtctest: initial import from old ThemWi
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 09 Jun 2024 00:58:38 +0000 |
parents | |
children | 33d8b3177540 |
rev | line source |
---|---|
5
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * In this module we handle all incoming messages from MNCC, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * printing all of them and generating protocol-required responses |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * for some. |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 */ |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <sys/types.h> |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <sys/time.h> |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <sys/socket.h> |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <stdio.h> |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include <stdint.h> |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include <stdlib.h> |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #include <string.h> |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 #include <strings.h> |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 #include "../include/mncc.h" |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 #include "../include/gsm48_const.h" |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 extern int disconnect_mode; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 extern struct sockaddr_storage dummy_rtp_endp; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 extern struct timeval cur_event_time; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 print_bearer_cap(bcap) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 struct gsm_mncc_bearer_cap *bcap; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 int i, sv; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 printf("Bearer cap: itcap=%d tmod=%d coding=%d rrq=%d\n", |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 bcap->transfer, bcap->mode, bcap->coding, bcap->radio); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 printf(" speech: CTM=%d sv", bcap->speech_ctm); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 for (i = 0; i < 8; i++) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 sv = bcap->speech_ver[i]; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 if (sv < 0) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 break; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 printf(" %d", sv); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 putchar('\n'); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 printf(" data: ra=%d sig=%d async=%d nstop=%d ndata=%d\n", |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 bcap->data.rate_adaption, bcap->data.sig_access, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 bcap->data.async, bcap->data.nr_stop_bits, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 bcap->data.nr_data_bits); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 printf(" urate=%d par=%d irate=%d transp=%d mtype=%d\n", |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 bcap->data.user_rate, bcap->data.parity, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 bcap->data.interm_rate, bcap->data.transp, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 bcap->data.modem_type); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 print_cc_cap(cc) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 struct gsm_mncc_cccap *cc; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 printf("CC capabilities: DTMF=%d PCP=%d\n", cc->dtmf, cc->pcp); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 print_cause(cause) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 struct gsm_mncc_cause *cause; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 int i; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 printf("Cause: loc=%d coding=%d value=%d", cause->location, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 cause->coding, cause->value); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 if (cause->rec) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 printf(" rec=0x%02X", cause->rec_val); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 for (i = 0; i < cause->diag_len; i++) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 if (!(i & 15)) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 putchar('\n'); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 putchar(' '); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 printf(" %02X", cause->diag[i] & 0xFF); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 putchar('\n'); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 print_progress(prog) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 struct gsm_mncc_progress *prog; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 printf("Progress: loc=%d coding=%d descr=0x%02X", prog->location, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 prog->coding, prog->descr); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 print_useruser(uu) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 struct gsm_mncc_useruser *uu; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 printf("User-User IE: proto=0x%02X\n", uu->proto); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 /* dump to be implemented if and when we actually get a UU somewhere */ |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 print_keypad(kp) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 int kp; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 if (kp >= '!' && kp <= '~') |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 printf("Keypad code: %c\n", kp); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 else |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 printf("Keypad code: 0x%02X\n", kp); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 print_facility(fac) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 struct gsm_mncc_facility *fac; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 int i; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 printf("Facility IE: %d byte(s)", fac->len); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 for (i = 0; i < fac->len; i++) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 if (!(i & 15)) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 putchar('\n'); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 putchar(' '); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 printf(" %02X", fac->info[i] & 0xFF); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 putchar('\n'); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 print_ssver(ssv) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 struct gsm_mncc_ssversion *ssv; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 int i; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 printf("SS version IE: %d byte(s)", ssv->len); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 for (i = 0; i < ssv->len; i++) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 if (!(i & 15)) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 putchar('\n'); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 putchar(' '); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 printf(" %02X", ssv->info[i] & 0xFF); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 putchar('\n'); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 print_fields(msg) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 struct gsm_mncc *msg; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 if (msg->fields & MNCC_F_BEARER_CAP) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 print_bearer_cap(&msg->bearer_cap); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 if (msg->fields & MNCC_F_CCCAP) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 print_cc_cap(&msg->cccap); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 if (msg->fields & MNCC_F_CAUSE) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 print_cause(&msg->cause); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 if (msg->fields & MNCC_F_PROGRESS) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 print_progress(&msg->progress); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 if (msg->fields & MNCC_F_USERUSER) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 print_useruser(&msg->useruser); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 if (msg->more) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 printf("More data flag set\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 if (msg->fields & MNCC_F_KEYPAD) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 print_keypad(msg->keypad); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 if (msg->fields & MNCC_F_FACILITY) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 print_facility(&msg->facility); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 if (msg->fields & MNCC_F_SSVERSION) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 print_ssver(&msg->ssversion); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 print_sdp(sdp) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 char *sdp; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 char *cp, *ep, *np; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 for (cp = sdp; *cp; cp = np) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 ep = index(cp, '\n'); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 if (ep) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 *ep = '\0'; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 np = ep + 1; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 } else |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 np = 0; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 ep = index(cp, '\r'); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 if (ep) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 *ep = '\0'; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 printf("%s %s\n", cp == sdp ? "SDP:" : " ", cp); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 send_connect_ack() |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 struct gsm_mncc ack; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 printf("Sending connect ack\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 bzero(&ack, sizeof(struct gsm_mncc)); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 ack.msg_type = MNCC_SETUP_COMPL_REQ; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 ack.callref = 1; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 send_mncc_to_gsm(&ack, sizeof(struct gsm_mncc)); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 send_rtp_connect() |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 struct gsm_mncc_rtp rtp; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 printf("Sending MNCC_RTP_CONNECT\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 bzero(&rtp, sizeof(struct gsm_mncc_rtp)); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 rtp.msg_type = MNCC_RTP_CONNECT; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 rtp.callref = 1; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 bcopy(&dummy_rtp_endp, &rtp.addr, sizeof(struct sockaddr_storage)); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 send_mncc_to_gsm(&rtp, sizeof(struct gsm_mncc_rtp)); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 handle_dtmf_time() |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 static struct timeval last_dtmf_time; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 struct timeval delta; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 unsigned ms; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 if (timerisset(&last_dtmf_time) && |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 timercmp(&cur_event_time, &last_dtmf_time, >)) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 timersub(&cur_event_time, &last_dtmf_time, &delta); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 if (delta.tv_sec >= 2) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 printf("Time since last DTMF event: %u s\n", |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 (unsigned) delta.tv_sec); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 else { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 ms = delta.tv_sec * 1000 + delta.tv_usec / 1000; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 printf("Time since last DTMF event: %u ms\n", ms); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 bcopy(&cur_event_time, &last_dtmf_time, sizeof(struct timeval)); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 handle_signaling_msg(msg, msglen) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 struct gsm_mncc *msg; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 unsigned msglen; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 if (msglen != sizeof(struct gsm_mncc)) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 fprintf(stderr, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 "error: Rx MNCC message type 0x%x has wrong length\n", |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 msg->msg_type); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 exit(1); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 if (msg->callref != 1) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 fprintf(stderr, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 "error: Rx MNCC message type 0x%x has unexpected callref 0x%x\n", |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 msg->msg_type, msg->callref); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 exit(1); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 switch (msg->msg_type) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 case MNCC_SETUP_CNF: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 printf("MNCC_SETUP_CNF: call is answered\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 print_fields(msg); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 print_sdp(msg->sdp); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 send_rtp_connect(); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 send_connect_ack(); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 case MNCC_CALL_CONF_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 printf("MNCC_CALL_CONF_IND: call is confirmed\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 print_fields(msg); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 print_sdp(msg->sdp); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 case MNCC_ALERT_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 printf("MNCC_ALERT_IND: call is alerting\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 print_fields(msg); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 print_sdp(msg->sdp); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 case MNCC_NOTIFY_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 printf("NNCC_NOTIFY_IND: NOTIFY byte from MS: 0x%02X\n", |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 msg->notify); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 case MNCC_DISC_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 printf("MNCC_DISC_IND: MS initiates disconnect\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 print_fields(msg); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 disconnect_mode = 1; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 printf("Responding with release request\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 msg->msg_type = MNCC_REL_REQ; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 send_mncc_to_gsm(msg, sizeof(struct gsm_mncc)); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 case MNCC_FACILITY_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 printf("MNCC_FACILITY_IND: call-related SS from MS\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 print_fields(msg); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276 case MNCC_START_DTMF_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 printf("MNCC_START_DTMF_IND: MS sending DTMF start\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 print_fields(msg); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 handle_dtmf_time(); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 if (msg->fields & MNCC_F_KEYPAD && |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 is_valid_dtmf_digit(msg->keypad)) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 printf("Responding with ACK\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 msg->msg_type = MNCC_START_DTMF_RSP; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 } else { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 printf("Responding with Reject\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 msg->msg_type = MNCC_START_DTMF_REJ; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 mncc_set_cause(msg, GSM48_CAUSE_LOC_PRN_S_LU, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 GSM48_CC_CAUSE_INVAL_MAND_INF); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 send_mncc_to_gsm(msg, sizeof(struct gsm_mncc)); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 case MNCC_STOP_DTMF_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 printf("MNCC_STOP_DTMF_IND: MS sending DTMF stop\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 handle_dtmf_time(); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 msg->msg_type = MNCC_STOP_DTMF_RSP; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 send_mncc_to_gsm(msg, sizeof(struct gsm_mncc)); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 case MNCC_MODIFY_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 printf("MNCC_MODIFY_IND: MS requests call modification\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 print_fields(msg); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 msg->msg_type = MNCC_MODIFY_REJ; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302 mncc_set_cause(msg, GSM48_CAUSE_LOC_PRN_S_LU, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 GSM48_CC_CAUSE_SERV_OPT_UNIMPL); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 send_mncc_to_gsm(msg, sizeof(struct gsm_mncc)); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 case MNCC_HOLD_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 printf("MNCC_HOLD_IND: MS requests call hold\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 msg->msg_type = MNCC_HOLD_CNF; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309 send_mncc_to_gsm(msg, sizeof(struct gsm_mncc)); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311 case MNCC_RETRIEVE_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 printf("MNCC_RETRIEVE_IND: MS requests call retrieve\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313 send_rtp_connect(); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 msg->msg_type = MNCC_RETRIEVE_CNF; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 send_mncc_to_gsm(msg, sizeof(struct gsm_mncc)); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 case MNCC_USERINFO_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 printf("MNCC_USERINFO_IND: user-user info\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 print_fields(msg); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321 case MNCC_REL_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 printf("MNCC_REL_IND: final release\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 print_fields(msg); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 exit(0); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325 case MNCC_REL_CNF: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 printf("MNCC_REL_CNF: final release in response to request\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 print_fields(msg); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 exit(0); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
329 case MNCC_REJ_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330 printf("MNCC_REJ_IND: MT call rejected\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 print_fields(msg); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332 exit(0); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336 static void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
337 handle_rtp_msg(msg, msglen) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
338 struct gsm_mncc_rtp *msg; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
339 unsigned msglen; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
340 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
341 if (msglen != sizeof(struct gsm_mncc_rtp)) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342 fprintf(stderr, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
343 "error: Rx MNCC message type 0x%x has wrong length\n", |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344 msg->msg_type); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345 exit(1); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
347 if (msg->callref != 1) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
348 fprintf(stderr, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
349 "error: Rx MNCC message type 0x%x has unexpected callref 0x%x\n", |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
350 msg->msg_type, msg->callref); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
351 exit(1); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
352 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353 switch (msg->msg_type) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354 case MNCC_RTP_CREATE: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355 printf("MNCC_RTP_CREATE: RTP info from MSC\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356 printf("payload_type=0x%x payload_msg_type=0x%x\n", |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357 msg->payload_type, msg->payload_msg_type); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
358 print_sdp(msg->sdp); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
359 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
360 case MNCC_RTP_CONNECT: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
361 printf("MNCC_RTP_CONNECT: error response\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
362 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
363 case MNCC_RTP_FREE: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
364 printf("MNCC_RTP_FREE: bogon\n"); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
365 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
366 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
367 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
368 |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
369 void |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
370 msg_from_mncc(msg, msglen) |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
371 union mncc_msg *msg; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
372 unsigned msglen; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
373 { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
374 switch (msg->msg_type) { |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
375 case MNCC_SETUP_CNF: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
376 case MNCC_CALL_CONF_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
377 case MNCC_ALERT_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
378 case MNCC_NOTIFY_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
379 case MNCC_DISC_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
380 case MNCC_FACILITY_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
381 case MNCC_START_DTMF_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
382 case MNCC_STOP_DTMF_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
383 case MNCC_MODIFY_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
384 case MNCC_HOLD_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
385 case MNCC_RETRIEVE_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
386 case MNCC_USERINFO_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
387 case MNCC_REL_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
388 case MNCC_REL_CNF: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
389 case MNCC_REJ_IND: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
390 handle_signaling_msg(msg, msglen); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
391 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
392 case MNCC_RTP_CREATE: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
393 case MNCC_RTP_CONNECT: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
394 case MNCC_RTP_FREE: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
395 handle_rtp_msg(msg, msglen); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
396 return; |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
397 default: |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
398 fprintf(stderr, |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
399 "error: received unexpected MNCC message type 0x%x\n", |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
400 msg->msg_type); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
401 exit(1); |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
402 } |
e7b192a5dee5
mtctest: initial import from old ThemWi
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
403 } |