1 /**
2  * Purple is the legal property of its developers, whose names are too numerous
3  * to list here.  Please refer to the COPYRIGHT file distributed with this
4  * source distribution.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
19  */
20 
21 #ifndef PURPLE_JABBER_GOOGLE_SESSION_H_
22 #define PURPLE_JABBER_GOOGLE_SESSION_H_
23 
24 #include "jabber.h"
25 
26 typedef struct {
27 	char *id;
28 	char *initiator;
29 } GoogleSessionId;
30 
31 typedef enum {
32 	UNINIT,
33 	SENT_INITIATE,
34 	RECEIVED_INITIATE,
35 	IN_PRORESS,
36 	TERMINATED
37 } GoogleSessionState;
38 
39 typedef struct {
40 	GoogleSessionId id;
41 	GoogleSessionState state;
42 	JabberStream *js;
43 	char *remote_jid;
44 	char *iq_id;
45 	xmlnode *description;		/* store incoming description through
46 	 								relay credential fetching */
47 	gpointer session_data;
48 } GoogleSession;
49 
50 gboolean jabber_google_session_initiate(JabberStream *js, const gchar *who,
51     PurpleMediaSessionType type);
52 
53 void jabber_google_session_parse(JabberStream *js, const char *from,
54     JabberIqType type, const char *iq, xmlnode *session);
55 
56 #endif /* PURPLE_JABBER_GOOGLE_SESSION_H_ */