GNUnet  0.11.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 ( \
40  GNUNET_TIME_UNIT_SECONDS, 60)
41 
42 
48 #define HIGH_BIT ((uint32_t) (1LL << 31))
49 
51 
52 
57 {
62 
63  /* followed by audio data */
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 
116 {
120  struct GNUNET_MessageHeader header;
121 
126  uint32_t cid GNUNET_PACKED;
127 };
128 
129 
134 {
138  struct GNUNET_MessageHeader header;
139 
144  uint32_t cid GNUNET_PACKED;
145 };
146 
147 
152 {
156  struct GNUNET_MessageHeader header;
157 
162  uint32_t cid GNUNET_PACKED;
163 };
164 
165 
171 {
175  struct GNUNET_MessageHeader header;
176 
181  uint32_t cid GNUNET_PACKED;
182 };
183 
184 
189 {
193  struct GNUNET_MessageHeader header;
194 
199  uint32_t cid GNUNET_PACKED;
200 
201  /* followed by audio data */
202 };
203 
204 
209 {
213  struct GNUNET_MessageHeader header;
214 
219 
223  struct GNUNET_PeerIdentity target;
224 
228  struct GNUNET_HashCode line_port;
229 
234 };
235 
236 
242 {
246  struct GNUNET_MessageHeader header;
247 
252  uint32_t cid GNUNET_PACKED;
253 };
254 
255 
261 {
267 
271  struct GNUNET_HashCode line_port;
272 
277 
281  struct GNUNET_TIME_AbsoluteNBO expiration_time;
282 };
283 
284 
290 {
294  struct GNUNET_MessageHeader header;
295 
300 
305 
309  struct GNUNET_TIME_AbsoluteNBO expiration_time;
310 
315 };
316 
317 
322 {
326  struct GNUNET_MessageHeader header;
327 };
328 
329 
334 {
338  struct GNUNET_MessageHeader header;
339 };
340 
341 
346 {
350  struct GNUNET_MessageHeader header;
351 };
352 
353 
358 {
362  struct GNUNET_MessageHeader header;
363 };
364 
365 
370 {
374  struct GNUNET_MessageHeader header;
375 
376  /* followed by audio data */
377 };
378 
379 
381 
382 
383 #if 0 /* keep Emacsens' auto-indent happy */
384 {
385 #endif
386 #ifdef __cplusplus
387 }
388 #endif
389 
390 /* ifndef GNUNET_PROTOCOLS_CONVERSATION_H */
391 #endif
392 /* end of gnunet_protocols_conversation.h */
Client -> Service message to call a phone.
Definition: conversation.h:208
Cadet message to make a phone ring.
Definition: conversation.h:289
struct GNUNET_MessageHeader header
Type is GNUNET_MESSAGE_TYPE_CONVERSATION_AUDIO.
Definition: conversation.h:61
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:260
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:151
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:170
Message to transmit the audio (between client and helpers).
Definition: conversation.h:56
an ECC signature using ECDSA
A 512-bit hashcode.
Cadet message for phone suspended.
Definition: conversation.h:345
Service <-> Client message for phone was resumed.
Definition: conversation.h:133
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:241
#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:357
Message Client <-> Service to transmit the audio.
Definition: conversation.h:188
Header for all communications.
Cadet message for hanging up.
Definition: conversation.h:321
static unsigned long long reserved
How much space have we currently reserved?
Service <-> Client message for phone was suspended.
Definition: conversation.h:115
Cadet message for picking up.
Definition: conversation.h:333
Cadet message to transmit the audio.
Definition: conversation.h:369