GNUnet debian-0.24.3-29-g453fda2cf
 
Loading...
Searching...
No Matches
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
33extern "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
89
90
95{
100
106
110 uint32_t key_len;
111
115};
116
117
134
135
152
153
170
171
189
190
195{
200
206
207 /* followed by audio data */
208};
209
210
245
246
264
265
293
294
331
332
343
344
355
356
367
368
379
380
385{
390
391 /* followed by audio data */
392};
393
394
396
397
398#if 0 /* keep Emacsens' auto-indent happy */
399{
400#endif
401#ifdef __cplusplus
402}
403#endif
404
405/* ifndef GNUNET_PROTOCOLS_CONVERSATION_H */
406#endif
407/* end of gnunet_protocols_conversation.h */
Identity service; implements identity management for GNUnet.
#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).
struct GNUNET_MessageHeader header
Type is GNUNET_MESSAGE_TYPE_CONVERSATION_AUDIO.
Cadet message to transmit the audio.
struct GNUNET_MessageHeader header
Type is GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_AUDIO.
Cadet message for hanging up.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_HANG_UP.
Cadet message for picking up.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_PICK_UP.
Cadet message for phone resumed.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_RESUME.
Information signed in a struct CadetPhoneRingMessage whereby the caller self-identifies to the receiv...
struct GNUNET_PeerIdentity target_peer
Which peer is the call for?
struct GNUNET_TIME_AbsoluteNBO expiration_time
When does the signature expire?
struct GNUNET_CRYPTO_EccSignaturePurpose purpose
Purpose for the signature, must be GNUNET_SIGNATURE_PURPOSE_CONVERSATION_RING.
struct GNUNET_HashCode line_port
Which port did the call go to?
Cadet message to make a phone ring.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_RING.
uint32_t key_len
The length of the key.
struct GNUNET_TIME_AbsoluteNBO expiration_time
When does the signature expire?
uint32_t reserved
Always zero.
uint32_t sig_len
The length of the signature.
Cadet message for phone suspended.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_SUSPEND.
Message Client <-> Service to transmit the audio.
struct GNUNET_MessageHeader header
Type is GNUNET_MESSAGE_TYPE_CONVERSATION_CS_AUDIO.
uint32_t cid
CID, internal caller ID to identify which active call we are sending data to.
Client -> Service message to call a phone.
struct GNUNET_HashCode line_port
Which phone line to call at the peer?
struct GNUNET_PeerIdentity target
Which peer is hosting the line?
uint32_t key_len
The identity key length.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_CALL.
uint32_t reserved
Always zero.
Client <-> Service hang up phone that may or may not be ringing.
uint32_t cid
CID, internal caller ID to identify which active call we are talking about.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_HANG_UP.
Service -> Client: other peer has picked up the phone, we are now talking.
uint32_t cid
Call ID of the corresponding GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_CALL.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_PICKED_UP.
Client -> Service pick up phone that is ringing.
uint32_t cid
CID, internal caller ID to identify which active call we are talking about.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_PICK_UP.
Client -> Service message to register a phone.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_REGISTER.
struct GNUNET_HashCode line_port
Phone line / CADET port to register.
uint32_t reserved
Always zero.
Service <-> Client message for phone was resumed.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_RESUME.
uint32_t cid
CID, internal caller ID to identify which active call we are talking about.
Service -> Client message for phone is ringing.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_RING.
uint32_t cid
CID, internal caller ID number used in the future to identify which active call we are talking about.
uint32_t key_len
The identity key length.
Service <-> Client message for phone was suspended.
struct GNUNET_MessageHeader header
Type is: GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_SUSPEND.
uint32_t cid
CID, internal caller ID to identify which active call we are talking about.
header of what an ECC signature signs this must be followed by "size - 8" bytes of the actual signed ...
A 512-bit hashcode.
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.