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 
31 
32 #ifdef __cplusplus
33 extern "C"
34 {
35 #if 0 /* keep Emacsens' auto-indent happy */
36 }
37 #endif
38 #endif
39 
40 
41 #define MAX_TRANSMIT_DELAY GNUNET_TIME_relative_multiply ( \
42  GNUNET_TIME_UNIT_SECONDS, 60)
43 
44 
50 #define HIGH_BIT ((uint32_t) (1LL << 31))
51 
53 
54 
59 {
64 
65  /* followed by audio data */
66 };
67 
68 
73 {
78 
83 
88 };
89 
90 
95 {
100 
105  uint32_t cid GNUNET_PACKED;
106 
111 };
112 
113 
118 {
123 
128  uint32_t cid GNUNET_PACKED;
129 };
130 
131 
136 {
141 
146  uint32_t cid GNUNET_PACKED;
147 };
148 
149 
154 {
159 
164  uint32_t cid GNUNET_PACKED;
165 };
166 
167 
173 {
178 
183  uint32_t cid GNUNET_PACKED;
184 };
185 
186 
191 {
196 
201  uint32_t cid GNUNET_PACKED;
202 
203  /* followed by audio data */
204 };
205 
206 
211 {
216 
221 
226 
230  struct GNUNET_HashCode line_port;
231 
236 };
237 
238 
244 {
249 
254  uint32_t cid GNUNET_PACKED;
255 };
256 
257 
263 {
269 
273  struct GNUNET_HashCode line_port;
274 
279 
284 };
285 
286 
292 {
297 
302 
307 
312 
317 };
318 
319 
324 {
329 };
330 
331 
336 {
341 };
342 
343 
348 {
353 };
354 
355 
360 {
365 };
366 
367 
372 {
377 
378  /* followed by audio data */
379 };
380 
381 
383 
384 
385 #if 0 /* keep Emacsens' auto-indent happy */
386 {
387 #endif
388 #ifdef __cplusplus
389 }
390 #endif
391 
392 /* ifndef GNUNET_PROTOCOLS_CONVERSATION_H */
393 #endif
394 /* end of gnunet_protocols_conversation.h */
#define GNUNET_NETWORK_STRUCT_BEGIN
Define as empty, GNUNET_PACKED should suffice, but this won't work on W32.
#define GNUNET_NETWORK_STRUCT_END
Define as empty, GNUNET_PACKED should suffice, but this won't work on W32;.
#define GNUNET_PACKED
gcc-ism to get packed structs.
Message to transmit the audio (between client and helpers).
Definition: conversation.h:59
struct GNUNET_MessageHeader header
Type is GNUNET_MESSAGE_TYPE_CONVERSATION_AUDIO.
Definition: conversation.h:63
Cadet message to transmit the audio.
Definition: conversation.h:372
struct GNUNET_MessageHeader header
Type is GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_AUDIO.
Definition: conversation.h:376
Cadet message for hanging up.
Definition: conversation.h:324
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_HANG_UP.
Definition: conversation.h:328
Cadet message for picking up.
Definition: conversation.h:336
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_PICK_UP.
Definition: conversation.h:340
Cadet message for phone resumed.
Definition: conversation.h:360
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_RESUME.
Definition: conversation.h:364
Information signed in a struct CadetPhoneRingMessage whereby the caller self-identifies to the receiv...
Definition: conversation.h:263
struct GNUNET_PeerIdentity target_peer
Which peer is the call for?
Definition: conversation.h:278
struct GNUNET_TIME_AbsoluteNBO expiration_time
When does the signature expire?
Definition: conversation.h:283
struct GNUNET_CRYPTO_EccSignaturePurpose purpose
Purpose for the signature, must be GNUNET_SIGNATURE_PURPOSE_CONVERSATION_RING.
Definition: conversation.h:268
struct GNUNET_HashCode line_port
Which port did the call go to?
Definition: conversation.h:273
Cadet message to make a phone ring.
Definition: conversation.h:292
struct GNUNET_IDENTITY_Signature signature
Signature over a struct CadetPhoneRingInfoPS
Definition: conversation.h:316
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_RING.
Definition: conversation.h:296
struct GNUNET_TIME_AbsoluteNBO expiration_time
When does the signature expire?
Definition: conversation.h:311
uint32_t reserved
Always zero.
Definition: conversation.h:301
struct GNUNET_IDENTITY_PublicKey caller_id
Who is calling us? (also who is signing).
Definition: conversation.h:306
Cadet message for phone suspended.
Definition: conversation.h:348
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_SUSPEND.
Definition: conversation.h:352
Message Client <-> Service to transmit the audio.
Definition: conversation.h:191
struct GNUNET_MessageHeader header
Type is GNUNET_MESSAGE_TYPE_CONVERSATION_CS_AUDIO.
Definition: conversation.h:195
uint32_t cid
CID, internal caller ID to identify which active call we are sending data to.
Definition: conversation.h:201
Client -> Service message to call a phone.
Definition: conversation.h:211
struct GNUNET_HashCode line_port
Which phone line to call at the peer?
Definition: conversation.h:230
struct GNUNET_IDENTITY_PrivateKey caller_id
Identity of the caller.
Definition: conversation.h:235
struct GNUNET_PeerIdentity target
Which peer is hosting the line?
Definition: conversation.h:225
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_CALL.
Definition: conversation.h:215
uint32_t reserved
Always zero.
Definition: conversation.h:220
Client <-> Service hang up phone that may or may not be ringing.
Definition: conversation.h:173
uint32_t cid
CID, internal caller ID to identify which active call we are talking about.
Definition: conversation.h:183
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_HANG_UP.
Definition: conversation.h:177
Service -> Client: other peer has picked up the phone, we are now talking.
Definition: conversation.h:244
uint32_t cid
Call ID of the corresponding GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_CALL.
Definition: conversation.h:254
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_PICKED_UP.
Definition: conversation.h:248
Client -> Service pick up phone that is ringing.
Definition: conversation.h:154
uint32_t cid
CID, internal caller ID to identify which active call we are talking about.
Definition: conversation.h:164
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_PICK_UP.
Definition: conversation.h:158
Client -> Service message to register a phone.
Definition: conversation.h:73
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_REGISTER.
Definition: conversation.h:77
struct GNUNET_HashCode line_port
Phone line / CADET port to register.
Definition: conversation.h:87
uint32_t reserved
Always zero.
Definition: conversation.h:82
Service <-> Client message for phone was resumed.
Definition: conversation.h:136
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_RESUME.
Definition: conversation.h:140
uint32_t cid
CID, internal caller ID to identify which active call we are talking about.
Definition: conversation.h:146
Service -> Client message for phone is ringing.
Definition: conversation.h:95
struct GNUNET_IDENTITY_PublicKey caller_id
Who is calling us?
Definition: conversation.h:110
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_RING.
Definition: conversation.h:99
uint32_t cid
CID, internal caller ID number used in the future to identify which active call we are talking about.
Definition: conversation.h:105
Service <-> Client message for phone was suspended.
Definition: conversation.h:118
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_SUSPEND.
Definition: conversation.h:122
uint32_t cid
CID, internal caller ID to identify which active call we are talking about.
Definition: conversation.h:128
header of what an ECC signature signs this must be followed by "size - 8" bytes of the actual signed ...
A 512-bit hashcode.
A private key for an identity as per LSD0001.
An identity key as per LSD0001.
An identity signature as per LSD0001.
Header for all communications.
The identity of the host (wraps the signing key of the peer).
Time for absolute time used by GNUnet, in microseconds and in network byte order.