-fixed _clear() in peers "helper"
[oweals/gnunet.git] / src / conversation / conversation.h
index 4b42277a55fcf6fb3437d5c98f12079ef56735ea..da7bb53c8500af416ae40225aaf7fee68c478aef 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2013 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2013 Christian Grothoff (and other contributing authors)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
@@ -82,28 +82,54 @@ struct ClientPhoneRingMessage
   struct GNUNET_MessageHeader header;
 
   /**
-   * Always zero.
+   * CID, internal caller ID to identify which active call we are
+   * talking about.
    */
-  uint32_t reserved GNUNET_PACKED;
+  uint32_t cid GNUNET_PACKED;
 
   /**
    * Who is calling us?
    */
-  struct GNUNET_CRYPTO_EccPublicSignKey caller_id;
+  struct GNUNET_CRYPTO_EcdsaPublicKey caller_id;
 
 };
 
 
 /**
- * Service -> Client message for phone is busy.
+ * Service <-> Client message for phone was suspended.
  */
-struct ClientPhoneBusyMessage
+struct ClientPhoneSuspendMessage
 {
   /**
-   * Type is: #GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_BUSY
+   * Type is: #GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_SUSPEND
    */
   struct GNUNET_MessageHeader header;
 
+  /**
+   * CID, internal caller ID to identify which active call we are
+   * talking about.
+   */
+  uint32_t cid GNUNET_PACKED;
+
+};
+
+
+/**
+ * Service <-> Client message for phone was resumed.
+ */
+struct ClientPhoneResumeMessage
+{
+  /**
+   * Type is: #GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_RESUME
+   */
+  struct GNUNET_MessageHeader header;
+
+  /**
+   * CID, internal caller ID to identify which active call we are
+   * talking about.
+   */
+  uint32_t cid GNUNET_PACKED;
+
 };
 
 
@@ -117,7 +143,11 @@ struct ClientPhonePickupMessage
    */
   struct GNUNET_MessageHeader header;
 
-  /* followed by variable length 0-terminated string with meta data */
+  /**
+   * CID, internal caller ID to identify which active call we are
+   * talking about.
+   */
+  uint32_t cid GNUNET_PACKED;
 
 };
 
@@ -133,7 +163,11 @@ struct ClientPhoneHangupMessage
    */
   struct GNUNET_MessageHeader header;
 
-  /* followed by variable length 0-terminated string with meta data */
+  /**
+   * CID, internal caller ID to identify which active call we are
+   * talking about.
+   */
+  uint32_t cid GNUNET_PACKED;
 
 };
 
@@ -148,6 +182,12 @@ struct ClientAudioMessage
    */
   struct GNUNET_MessageHeader header;
 
+  /**
+   * CID, internal caller ID to identify which active call we are
+   * sending data to.
+   */
+  uint32_t cid GNUNET_PACKED;
+
   /* followed by audio data */
 
 };
@@ -176,7 +216,7 @@ struct ClientCallMessage
   /**
    * Identity of the caller.
    */
-  struct GNUNET_CRYPTO_EccPrivateKey caller_id;
+  struct GNUNET_CRYPTO_EcdsaPrivateKey caller_id;
 };
 
 
@@ -191,18 +231,16 @@ struct ClientPhonePickedupMessage
    */
   struct GNUNET_MessageHeader header;
 
-  /* followed by variable length 0-terminated string with meta data */
-
 };
 
 
 /**
- * Mesh message for phone is ringing.
+ * Cadet message for phone is ringing.
  */
-struct MeshPhoneRingMessage
+struct CadetPhoneRingMessage
 {
   /**
-   * Type is: #GNUNET_MESSAGE_TYPE_CONVERSATION_MESH_PHONE_RING
+   * Type is: #GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_RING
    */
   struct GNUNET_MessageHeader header;
 
@@ -219,7 +257,7 @@ struct MeshPhoneRingMessage
   /**
    * Who is calling us? (also who is signing).
    */
-  struct GNUNET_CRYPTO_EccPublicSignKey caller_id;
+  struct GNUNET_CRYPTO_EcdsaPublicKey caller_id;
 
   /**
    * Who are we calling?
@@ -239,7 +277,7 @@ struct MeshPhoneRingMessage
   /**
    * Signature on the above.
    */
-  struct GNUNET_CRYPTO_EccSignature signature;
+  struct GNUNET_CRYPTO_EcdsaSignature signature;
 
   /**
    * Source line for audio data in the other direction.
@@ -250,40 +288,38 @@ struct MeshPhoneRingMessage
 
 
 /**
- * Mesh message for hanging up.
+ * Cadet message for hanging up.
  */
-struct MeshPhoneHangupMessage
+struct CadetPhoneHangupMessage
 {
   /**
-   * Type is: #GNUNET_MESSAGE_TYPE_CONVERSATION_MESH_PHONE_HANG_UP
+   * Type is: #GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_HANG_UP
    */
   struct GNUNET_MessageHeader header;
 
-  /* followed by variable-size 0-terminated reason string */
 };
 
 
 /**
- * Mesh message for picking up.
+ * Cadet message for picking up.
  */
-struct MeshPhonePickupMessage
+struct CadetPhonePickupMessage
 {
   /**
-   * Type is: #GNUNET_MESSAGE_TYPE_CONVERSATION_MESH_PHONE_PICK_UP
+   * Type is: #GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_PICK_UP
    */
   struct GNUNET_MessageHeader header;
 
-  /* followed by variable-size 0-terminated metadata string */
 };
 
 
 /**
- * Mesh message for phone busy.
+ * Cadet message for phone suspended.
  */
-struct MeshPhoneBusyMessage
+struct CadetPhoneSuspendMessage
 {
   /**
-   * Type is: #GNUNET_MESSAGE_TYPE_CONVERSATION_MESH_PHONE_BUSY
+   * Type is: #GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_SUSPEND
    */
   struct GNUNET_MessageHeader header;
 
@@ -291,19 +327,37 @@ struct MeshPhoneBusyMessage
 
 
 /**
- * Mesh message to transmit the audio.
+ * Cadet message for phone resumed.
  */
-struct MeshAudioMessage
+struct CadetPhoneResumeMessage
 {
   /**
-   * Type is #GNUNET_MESSAGE_TYPE_CONVERSATION_MESH_AUDIO
+   * Type is: #GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_RESUME
+   */
+  struct GNUNET_MessageHeader header;
+
+};
+
+
+/**
+ * Cadet message to transmit the audio.
+ */
+struct CadetAudioMessage
+{
+  /**
+   * Type is #GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_AUDIO
    */
   struct GNUNET_MessageHeader header;
 
   /**
    * Target line on the receiving end.
    */
-  uint32_t remote_line;
+  uint32_t remote_line GNUNET_PACKED;
+
+  /**
+   * The source line sending this data
+   */
+  uint32_t source_line GNUNET_PACKED;
 
   /* followed by audio data */