GNUnet  0.10.x
conversation.h
Go to the documentation of this file.
1 /*
2  This file is part of GNUnet.
3  Copyright (C) 2013-2016 GNUnet e.V.
4 
5  GNUnet is free software: you can redistribute it and/or modify it
6  under the terms of the GNU Affero General Public License as published
7  by the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  GNUnet is distributed in the hope that it will be useful, but
11  WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Affero General Public License for more details.
14 
15  You should have received a copy of the GNU Affero General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 
18  SPDX-License-Identifier: AGPL3.0-or-later
19 */
20 
27 #ifndef CONVERSATION_H
28 #define CONVERSATION_H
29 
30 #ifdef __cplusplus
31 extern "C"
32 {
33 #if 0 /* keep Emacsens' auto-indent happy */
34 }
35 #endif
36 #endif
37 
38 
39 #define MAX_TRANSMIT_DELAY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 60)
40 
41 
47 #define HIGH_BIT ((uint32_t) (1LL << 31))
48 
50 
51 
56 {
61 
62  /* followed by audio data */
63 
64 };
65 
66 
71 {
75  struct GNUNET_MessageHeader header;
76 
81 
85  struct GNUNET_HashCode line_port;
86 };
87 
88 
93 {
97  struct GNUNET_MessageHeader header;
98 
103  uint32_t cid GNUNET_PACKED;
104 
109 
110 };
111 
112 
117 {
121  struct GNUNET_MessageHeader header;
122 
127  uint32_t cid GNUNET_PACKED;
128 
129 };
130 
131 
136 {
140  struct GNUNET_MessageHeader header;
141 
146  uint32_t cid GNUNET_PACKED;
147 
148 };
149 
150 
155 {
159  struct GNUNET_MessageHeader header;
160 
165  uint32_t cid GNUNET_PACKED;
166 
167 };
168 
169 
175 {
179  struct GNUNET_MessageHeader header;
180 
185  uint32_t cid GNUNET_PACKED;
186 
187 };
188 
189 
194 {
198  struct GNUNET_MessageHeader header;
199 
204  uint32_t cid GNUNET_PACKED;
205 
206  /* followed by audio data */
207 
208 };
209 
210 
215 {
219  struct GNUNET_MessageHeader header;
220 
225 
229  struct GNUNET_PeerIdentity target;
230 
234  struct GNUNET_HashCode line_port;
235 
240 };
241 
242 
248 {
252  struct GNUNET_MessageHeader header;
253 
258  uint32_t cid GNUNET_PACKED;
259 
260 };
261 
262 
268 {
274 
278  struct GNUNET_HashCode line_port;
279 
284 
288  struct GNUNET_TIME_AbsoluteNBO expiration_time;
289 };
290 
291 
297 {
301  struct GNUNET_MessageHeader header;
302 
307 
312 
316  struct GNUNET_TIME_AbsoluteNBO expiration_time;
317 
322 
323 };
324 
325 
330 {
334  struct GNUNET_MessageHeader header;
335 
336 };
337 
338 
343 {
347  struct GNUNET_MessageHeader header;
348 
349 };
350 
351 
356 {
360  struct GNUNET_MessageHeader header;
361 
362 };
363 
364 
369 {
373  struct GNUNET_MessageHeader header;
374 
375 };
376 
377 
382 {
386  struct GNUNET_MessageHeader header;
387 
388  /* followed by audio data */
389 
390 };
391 
392 
394 
395 
396 #if 0 /* keep Emacsens' auto-indent happy */
397 {
398 #endif
399 #ifdef __cplusplus
400 }
401 #endif
402 
403 /* ifndef GNUNET_PROTOCOLS_CONVERSATION_H */
404 #endif
405 /* end of gnunet_protocols_conversation.h */
Client -> Service message to call a phone.
Definition: conversation.h:214
Cadet message to make a phone ring.
Definition: conversation.h:296
struct GNUNET_MessageHeader header
Type is GNUNET_MESSAGE_TYPE_CONVERSATION_AUDIO.
Definition: conversation.h:60
uint32_t purpose
What does this signature vouch for? This must contain a GNUNET_SIGNATURE_PURPOSE_XXX constant (from g...
Information signed in a struct CadetPhoneRingMessage whereby the caller self-identifies to the receiv...
Definition: conversation.h:267
Client -> Service message to register a phone.
Definition: conversation.h:70
Private ECC key encoded for transmission.
Client -> Service pick up phone that is ringing.
Definition: conversation.h:154
Time for absolute time used by GNUnet, in microseconds and in network byte order. ...
#define GNUNET_NETWORK_STRUCT_BEGIN
Define as empty, GNUNET_PACKED should suffice, but this won&#39;t work on W32.
header of what an ECC signature signs this must be followed by "size - 8" bytes of the actual signed ...
Client <-> Service hang up phone that may or may not be ringing.
Definition: conversation.h:174
Message to transmit the audio (between client and helpers).
Definition: conversation.h:55
an ECC signature using ECDSA
A 512-bit hashcode.
Cadet message for phone suspended.
Definition: conversation.h:355
Service <-> Client message for phone was resumed.
Definition: conversation.h:135
static struct GNUNET_PeerIdentity * target_peer
ID of the targeted peer.
Service -> Client: other peer has picked up the phone, we are now talking.
Definition: conversation.h:247
#define GNUNET_NETWORK_STRUCT_END
Define as empty, GNUNET_PACKED should suffice, but this won&#39;t work on W32;.
The identity of the host (wraps the signing key of the peer).
#define GNUNET_PACKED
gcc-ism to get packed structs.
Public ECC key (always for Curve25519) encoded in a format suitable for network transmission and ECDS...
Service -> Client message for phone is ringing.
Definition: conversation.h:92
Cadet message for phone resumed.
Definition: conversation.h:368
Message Client <-> Service to transmit the audio.
Definition: conversation.h:193
Header for all communications.
Cadet message for hanging up.
Definition: conversation.h:329
static unsigned long long reserved
How much space have we currently reserved?
Service <-> Client message for phone was suspended.
Definition: conversation.h:116
Cadet message for picking up.
Definition: conversation.h:342
Cadet message to transmit the audio.
Definition: conversation.h:381