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 
55 struct AudioMessage {
60 
61  /* followed by audio data */
62 };
63 
64 
72  struct GNUNET_MessageHeader header;
73 
78 
82  struct GNUNET_HashCode line_port;
83 };
84 
85 
93  struct GNUNET_MessageHeader header;
94 
99  uint32_t cid GNUNET_PACKED;
100 
105 };
106 
107 
115  struct GNUNET_MessageHeader header;
116 
121  uint32_t cid GNUNET_PACKED;
122 };
123 
124 
132  struct GNUNET_MessageHeader header;
133 
138  uint32_t cid GNUNET_PACKED;
139 };
140 
141 
149  struct GNUNET_MessageHeader header;
150 
155  uint32_t cid GNUNET_PACKED;
156 };
157 
158 
167  struct GNUNET_MessageHeader header;
168 
173  uint32_t cid GNUNET_PACKED;
174 };
175 
176 
184  struct GNUNET_MessageHeader header;
185 
190  uint32_t cid GNUNET_PACKED;
191 
192  /* followed by audio data */
193 };
194 
195 
203  struct GNUNET_MessageHeader header;
204 
209 
213  struct GNUNET_PeerIdentity target;
214 
218  struct GNUNET_HashCode line_port;
219 
224 };
225 
226 
235  struct GNUNET_MessageHeader header;
236 
241  uint32_t cid GNUNET_PACKED;
242 };
243 
244 
255 
259  struct GNUNET_HashCode line_port;
260 
265 
269  struct GNUNET_TIME_AbsoluteNBO expiration_time;
270 };
271 
272 
281  struct GNUNET_MessageHeader header;
282 
287 
292 
296  struct GNUNET_TIME_AbsoluteNBO expiration_time;
297 
302 };
303 
304 
312  struct GNUNET_MessageHeader header;
313 };
314 
315 
323  struct GNUNET_MessageHeader header;
324 };
325 
326 
334  struct GNUNET_MessageHeader header;
335 };
336 
337 
345  struct GNUNET_MessageHeader header;
346 };
347 
348 
356  struct GNUNET_MessageHeader header;
357 
358  /* followed by audio data */
359 };
360 
361 
363 
364 
365 #if 0 /* keep Emacsens' auto-indent happy */
366 {
367 #endif
368 #ifdef __cplusplus
369 }
370 #endif
371 
372 /* ifndef GNUNET_PROTOCOLS_CONVERSATION_H */
373 #endif
374 /* end of gnunet_protocols_conversation.h */
Client -> Service message to call a phone.
Definition: conversation.h:199
Cadet message to make a phone ring.
Definition: conversation.h:277
struct GNUNET_MessageHeader header
Type is GNUNET_MESSAGE_TYPE_CONVERSATION_AUDIO.
Definition: conversation.h:59
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:249
Client -> Service message to register a phone.
Definition: conversation.h:68
Private ECC key encoded for transmission.
Client -> Service pick up phone that is ringing.
Definition: conversation.h:145
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:163
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:330
Service <-> Client message for phone was resumed.
Definition: conversation.h:128
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:231
#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:89
Cadet message for phone resumed.
Definition: conversation.h:341
Message Client <-> Service to transmit the audio.
Definition: conversation.h:180
Header for all communications.
Cadet message for hanging up.
Definition: conversation.h:308
static unsigned long long reserved
How much space have we currently reserved?
Service <-> Client message for phone was suspended.
Definition: conversation.h:111
Cadet message for picking up.
Definition: conversation.h:319
Cadet message to transmit the audio.
Definition: conversation.h:352