jingle/jingle.h
author Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Sun, 12 Sep 2010 18:20:53 +0200
changeset 167 97f93fa3cd95
parent 148 cb40539b88b7
permissions -rw-r--r--
Change socks5.c to s5b.c in the headers and cmakelist
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
     1
/**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
     2
 * @file jingle.h
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
     3
 * @brief jingle.c header file
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
     4
 * @author Nicolas Cornu
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
     5
 */
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
     6
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     7
#ifndef __JINGLE_H__
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     8
#define __JINGLE_H__ 1
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     9
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    10
#include <glib.h>
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    11
#include <loudmouth/loudmouth.h>
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    12
74
7f0e16bb1768 Little commit
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 72
diff changeset
    13
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    14
/** Jingle namespace */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    15
#define NS_JINGLE "urn:xmpp:jingle:1"
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    16
/** Jingle Errors namespace */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    17
#define NS_JINGLE_ERRORS "urn:xmpp:jingle:errors:1"
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    18
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    19
/**
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    20
 * @enum JingleAction
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    21
 * @brief Jingle actions constants
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    22
 */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    23
typedef enum {
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    24
  JINGLE_UNKNOWN_ACTION,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    25
  JINGLE_CONTENT_ACCEPT,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    26
  JINGLE_CONTENT_ADD,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    27
  JINGLE_CONTENT_MODIFY,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    28
  JINGLE_CONTENT_REJECT,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    29
  JINGLE_CONTENT_REMOVE,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    30
  JINGLE_DESCRIPTION_INFO,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    31
  JINGLE_SECURITY_INFO,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    32
  JINGLE_SESSION_ACCEPT,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    33
  JINGLE_SESSION_INFO,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    34
  JINGLE_SESSION_INITIATE,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    35
  JINGLE_SESSION_TERMINATE,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    36
  JINGLE_TRANSPORT_ACCEPT,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    37
  JINGLE_TRANSPORT_INFO,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    38
  JINGLE_TRANSPORT_REJECT,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    39
  JINGLE_TRANSPORT_REPLACE,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    40
} JingleAction;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    41
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    42
typedef enum {
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    43
  JINGLE_CREATOR_INITIATOR,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    44
  JINGLE_CREATOR_RESPONDER,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    45
} JingleCreator;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    46
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    47
typedef enum {
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    48
  JINGLE_SENDERS_BOTH,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    49
  JINGLE_SENDERS_INITIATOR,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    50
  JINGLE_SENDERS_NONE,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    51
  JINGLE_SENDERS_RESPONDER,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    52
} JingleSenders;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    53
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    54
/**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    55
 * @brief Represent an incoming jingle IQ
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    56
 * 
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    57
 * This struct is used to represent an incoming jingle IQ.
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    58
 * It should be destroyed as soon as it is not needed using #jingle_free_jinglenode
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    59
 */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    60
typedef struct {
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    61
  /**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    62
   * @brief Pointer to the original LmMessage
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    63
   */
18
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 15
diff changeset
    64
  LmMessage *message;
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 15
diff changeset
    65
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    66
  /**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    67
   * @brief Pointer to the <jingle> element
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    68
   */
18
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 15
diff changeset
    69
  LmMessageNode *node;
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 15
diff changeset
    70
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    71
  /**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    72
   * @brief Jingle action of the incoming IQ
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    73
   */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    74
  JingleAction action;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    75
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    76
  /**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    77
   * @brief Full JID of the entity that has initiated the session flow
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    78
   * 
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    79
   * May be different from the 'from' address on the IQ-set of the
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    80
   * session-initiate message.
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    81
   * recommended for session-initiate, not recommended otherwise.
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    82
   */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    83
  const gchar *initiator;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    84
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    85
  /**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    86
   * @brief Full JID of the entity that has replied to the initation.
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    87
   * 
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    88
   * Can be different from the 'to' address on the IQ-set.
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    89
   * recommended for session-accept, not recommended otherwise.
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    90
   */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    91
  const gchar *responder;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    92
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    93
  /**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    94
   * @brief Random session identifier generated by the initator
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    95
   */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    96
  const gchar *sid;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    97
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    98
  /**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
    99
   * @brief Linked list of JingleContent.
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   100
   */
18
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 15
diff changeset
   101
  GSList *content;
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   102
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   103
} JingleNode;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   104
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   105
/**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   106
 * @brief Struct used to represent a <content> element of an incoming Jingle IQ
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   107
 */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   108
typedef struct {
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   109
  /**
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   110
   * @brief pointer to the <content> element
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   111
   */
21
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 20
diff changeset
   112
  LmMessageNode *node;
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 20
diff changeset
   113
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   114
  /**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   115
   * which party originally generated the content type.
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   116
   * the defined values are "initiator" and "responder"
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   117
   * (where the default is "initiator"). required.
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   118
   */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   119
  JingleCreator creator;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   120
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   121
  /**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   122
   * how the content definition is to be interpreted by the recipient.
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   123
   * optional, the default value is "session".
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   124
   */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   125
  const gchar *disposition; // optional, default=session
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   126
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   127
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   128
   * A unique name or identifier for the content type
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   129
   * according to the creator. required.
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   130
   */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   131
  const gchar *name;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   132
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   133
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   134
   * which parties in the session will be generating content.
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   135
   * allowable values are both, initiator, none, responder.
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   136
   * default is both.
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   137
   * required for content-modify, optional otherwise
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   138
   */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   139
  JingleSenders senders;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   140
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   141
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   142
   * each content element (must) contain one description
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   143
   * child element that specifies a desired application.
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   144
   * the connt of this node is app specific.
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   145
   */
32
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
   146
  LmMessageNode *description;
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   147
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   148
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   149
   * each content element (must) contain one transport
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   150
   * child element that specifies a potential transport
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   151
   * method
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   152
   */
32
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
   153
  LmMessageNode *transport;
20
72e53665328e Add a function to check a file transfert request.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
   154
} JingleContent;
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   155
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   156
/**
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   157
 * Represent a jingle action and the "handler"
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   158
 * (defined in action-handlers.c) for that action.
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   159
 */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   160
struct JingleActionList {
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   161
  const gchar  *name;
45
c007e112dd54 Delete LmMessage * in handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 44
diff changeset
   162
  void (*handler)(JingleNode *);
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   163
};
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   164
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   165
typedef enum {
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   166
  JINGLE_ACK_RESPONSE,
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   167
  JINGLE_ACK_TIMEOUT
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   168
} JingleAckType;
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   169
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   170
typedef void (*JingleAckCallback) (JingleAckType type, LmMessage *, gpointer);
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   171
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   172
typedef struct {
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   173
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   174
   * function to be called when we receive a response to the IQ
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   175
   */
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   176
  JingleAckCallback callback;
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   177
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   178
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   179
   * additional data to pass to callback
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   180
   */
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   181
  gpointer *user_data;
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   182
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   183
  /** 
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   184
   * if no response was received after timeout seconds, callback
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   185
   * will be called with JINGLE_ACK_TIMEOUT as type
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   186
   */
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   187
  guint timeout;
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   188
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   189
  /**
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   190
   * @private
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   191
   * 
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   192
   * date at which the handler was inserted using 
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   193
   * jingle_new_ack_handler
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   194
   */
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   195
  time_t _inserted;
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   196
  
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   197
  /**
144
efc92c939fef Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 138
diff changeset
   198
   * @private
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   199
   * 
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   200
   * a pointer to the LmMessageHandler created
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   201
   * using jingle_new_ack_handler
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   202
   */
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   203
  LmMessageHandler *_handler;
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   204
} JingleAckHandle;
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   205
107
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 81
diff changeset
   206
typedef struct {
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 81
diff changeset
   207
  const gchar *sid;
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 81
diff changeset
   208
  const gchar *from;
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 81
diff changeset
   209
  const gchar *name;
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 81
diff changeset
   210
} session_content;
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   211
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   212
LmHandlerResult jingle_handle_ack_iq(LmMessageHandler *handler,
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   213
                                     LmConnection *connection, 
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   214
                                     LmMessage *message, gpointer user_data);
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   215
LmMessageHandler *jingle_new_ack_handler(JingleAckHandle *ri);
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   216
void jingle_ack_handler_free(JingleAckHandle *ah);
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   217
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   218
LmMessage *jingle_new_iq_error(LmMessage *m, const gchar *errtype,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   219
                               const gchar *cond, const gchar *jinglecond);
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   220
void jingle_send_iq_error(LmMessage *m, const gchar *errtype,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   221
                          const gchar *cond, const gchar *jinglecond);
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   222
79
a654afc4a74a Function to detect which jid resource support jingle.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 75
diff changeset
   223
gchar *jingle_find_compatible_res(const gchar *jid, const gchar *ns[]);
a654afc4a74a Function to detect which jid resource support jingle.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 75
diff changeset
   224
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   225
void jingle_ack_iq(LmMessage *m);
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   226
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   227
void jingle_free_jinglenode(JingleNode *jn);
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   228
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   229
JingleAction jingle_action_from_str(const gchar* string);
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   230
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   231
gboolean evscallback_jingle(guint evcontext, const gchar *arg,
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   232
                            gpointer userdata);
54
1c1153f9f945 Handle for jingle
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 52
diff changeset
   233
                            
133
361d8577ebd1 Change the way IBB work
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 129
diff changeset
   234
void handle_trans_data(gconstpointer data, const gchar *data2, guint len);
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   235
79
a654afc4a74a Function to detect which jid resource support jingle.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 75
diff changeset
   236
gchar *jingle_generate_sid(void);
74
7f0e16bb1768 Little commit
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 72
diff changeset
   237
121
3a3c0e16ea00 Delete some part which wasn't use
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 118
diff changeset
   238
void handle_trans_next(session_content *sc2);
3a3c0e16ea00 Delete some part which wasn't use
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 118
diff changeset
   239
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   240
#endif