jingle/jingle.h
author Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Mon, 16 Aug 2010 23:36:49 +0200
changeset 138 dde8eaf7ff2c
parent 137 14ef2cb0bd2b
child 144 efc92c939fef
permissions -rw-r--r--
More docs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     1
#ifndef __JINGLE_H__
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     2
#define __JINGLE_H__ 1
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     3
138
dde8eaf7ff2c More docs
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 137
diff changeset
     4
/**
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
     5
 * \file jingle.h
138
dde8eaf7ff2c More docs
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 137
diff changeset
     6
 * \brief 
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
     7
 * \author Nicolas Cornu
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
     8
 * \version 0.1
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
     9
 */
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    10
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    11
#include <glib.h>
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    12
#include <loudmouth/loudmouth.h>
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    13
74
7f0e16bb1768 Little commit
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 72
diff changeset
    14
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    15
#define NS_JINGLE "urn:xmpp:jingle:1"
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    16
#define NS_JINGLE_ERRORS "urn:xmpp:jingle:errors:1"
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    17
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    18
/**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    19
 * \enum JingleAction
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    20
 * \brief Jingle actions constants
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    21
 */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    22
typedef enum {
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    23
  JINGLE_UNKNOWN_ACTION,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    24
  JINGLE_CONTENT_ACCEPT,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    25
  JINGLE_CONTENT_ADD,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    26
  JINGLE_CONTENT_MODIFY,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    27
  JINGLE_CONTENT_REJECT,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    28
  JINGLE_CONTENT_REMOVE,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    29
  JINGLE_DESCRIPTION_INFO,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    30
  JINGLE_SECURITY_INFO,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    31
  JINGLE_SESSION_ACCEPT,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    32
  JINGLE_SESSION_INFO,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    33
  JINGLE_SESSION_INITIATE,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    34
  JINGLE_SESSION_TERMINATE,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    35
  JINGLE_TRANSPORT_ACCEPT,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    36
  JINGLE_TRANSPORT_INFO,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    37
  JINGLE_TRANSPORT_REJECT,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    38
  JINGLE_TRANSPORT_REPLACE,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    39
} JingleAction;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    40
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    41
typedef enum {
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    42
  JINGLE_CREATOR_INITIATOR,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    43
  JINGLE_CREATOR_RESPONDER,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    44
} JingleCreator;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    45
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    46
typedef enum {
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    47
  JINGLE_SENDERS_BOTH,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    48
  JINGLE_SENDERS_INITIATOR,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    49
  JINGLE_SENDERS_NONE,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    50
  JINGLE_SENDERS_RESPONDER,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    51
} JingleSenders;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    52
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    53
typedef struct {
18
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 15
diff changeset
    54
  /* pointer to the original LmMessage */
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 15
diff changeset
    55
  LmMessage *message;
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 15
diff changeset
    56
22
a089f2f49e9f Produce new LmMessageNode with a struct Jingle
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 21
diff changeset
    57
  /* pointer to the <jingle> element */
18
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 15
diff changeset
    58
  LmMessageNode *node;
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 15
diff changeset
    59
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    60
  /* action attribute */
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    61
  JingleAction action;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    62
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    63
  /* full JID of the entity that has initiated the session flow.
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    64
   * may be different from the 'from' address on the IQ-set of the
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    65
   * session-initiate message.
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    66
   * recommended for session-initiate, not recommended otherwise. */
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    67
  const gchar *initiator;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    68
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    69
  /* full JID of the entity that has replied to the initation.
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    70
   * can be different from the 'to' address on the IQ-set.
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    71
   * recommended for session-accept, not recommended otherwise. */
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    72
  const gchar *responder;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    73
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    74
  /* Random session identifier generated by the initator. */
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    75
  const gchar *sid;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    76
21
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 20
diff changeset
    77
  /* Linked list of JingleContent. */
18
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 15
diff changeset
    78
  GSList *content;
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    79
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    80
} JingleNode;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    81
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    82
typedef struct {
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    83
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    84
   * pointer to the <content> element
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    85
   */
21
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 20
diff changeset
    86
  LmMessageNode *node;
147f131382dd Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 20
diff changeset
    87
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    88
  /** which party originally generated the content type.
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    89
   * 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
    90
   * (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
    91
   */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    92
  JingleCreator creator;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    93
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    94
  /** how the content definition is to be interpreted by the recipient.
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    95
   * 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
    96
   */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    97
  const gchar *disposition; // optional, default=session
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    98
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
    99
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   100
   * 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
   101
   * 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
   102
   */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   103
  const gchar *name;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   104
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   105
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   106
   * which parties in the session will be generating content.
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   107
   * allowable values are both, initiator, none, responder.
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   108
   * 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
   109
   * 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
   110
   */
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   111
  JingleSenders senders;
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   112
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   113
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   114
   * each content element (must) contain one description
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   115
   * 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
   116
   * 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
   117
   */
32
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
   118
  LmMessageNode *description;
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   119
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   120
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   121
   * each content element (must) contain one transport
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   122
   * 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
   123
   * method
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   124
   */
32
72bbe33f151a Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 31
diff changeset
   125
  LmMessageNode *transport;
20
72e53665328e Add a function to check a file transfert request.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
   126
} JingleContent;
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   127
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   128
struct JingleActionList {
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   129
  const gchar  *name;
45
c007e112dd54 Delete LmMessage * in handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 44
diff changeset
   130
  void (*handler)(JingleNode *);
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   131
};
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   132
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   133
typedef enum {
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   134
  JINGLE_ACK_RESPONSE,
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   135
  JINGLE_ACK_TIMEOUT
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   136
} JingleAckType;
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   137
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   138
typedef void (*JingleAckCallback) (JingleAckType type, LmMessage *, gpointer);
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   139
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   140
typedef struct {
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
   * 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
   143
   */
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   144
  JingleAckCallback callback;
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   145
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   146
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   147
   * 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
   148
   */
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   149
  gpointer *user_data;
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   150
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   151
  /** 
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   152
   * 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
   153
   * 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
   154
   */
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   155
  guint timeout;
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   156
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   157
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   158
   * \private
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   159
   * 
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   160
   * 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
   161
   * 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
   162
   */
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   163
  time_t _inserted;
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   164
  
137
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   165
  /**
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   166
   * \private
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   167
   * 
14ef2cb0bd2b Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 133
diff changeset
   168
   * 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
   169
   * 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
   170
   */
129
2d5c3efda92a Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 121
diff changeset
   171
  LmMessageHandler *_handler;
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   172
} JingleAckHandle;
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   173
107
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 81
diff changeset
   174
typedef struct {
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 81
diff changeset
   175
  const gchar *sid;
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 81
diff changeset
   176
  const gchar *from;
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 81
diff changeset
   177
  const gchar *name;
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 81
diff changeset
   178
} session_content;
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   179
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   180
LmHandlerResult jingle_handle_ack_iq(LmMessageHandler *handler,
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   181
                                     LmConnection *connection, 
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   182
                                     LmMessage *message, gpointer user_data);
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   183
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
   184
void jingle_ack_handler_free(JingleAckHandle *ah);
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   185
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   186
LmMessage *jingle_new_iq_error(LmMessage *m, const gchar *errtype,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   187
                               const gchar *cond, const gchar *jinglecond);
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   188
void jingle_send_iq_error(LmMessage *m, const gchar *errtype,
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   189
                          const gchar *cond, const gchar *jinglecond);
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   190
79
a654afc4a74a Function to detect which jid resource support jingle.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 75
diff changeset
   191
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
   192
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   193
void jingle_ack_iq(LmMessage *m);
52
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   194
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   195
void jingle_free_jinglenode(JingleNode *jn);
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   196
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   197
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
   198
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   199
gboolean evscallback_jingle(guint evcontext, const gchar *arg,
d803c882a182 Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 47
diff changeset
   200
                            gpointer userdata);
54
1c1153f9f945 Handle for jingle
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 52
diff changeset
   201
                            
133
361d8577ebd1 Change the way IBB work
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 129
diff changeset
   202
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
   203
79
a654afc4a74a Function to detect which jid resource support jingle.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 75
diff changeset
   204
gchar *jingle_generate_sid(void);
74
7f0e16bb1768 Little commit
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 72
diff changeset
   205
121
3a3c0e16ea00 Delete some part which wasn't use
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 118
diff changeset
   206
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
   207
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
   208
#endif