media: fix relay-info with Farstream 0.2
[siplcs.git] / src / core / sdpmsg.h
blob5b017d95bf64bc478d572c54edbc28b47e91f4b6
1 /**
2 * @file sdpmsg.h
4 * pidgin-sipe
6 * Copyright (C) 2010 Jakub Adam <jakub.adam@ktknet.cz>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 struct sdpmsg {
24 gchar *ip;
25 GSList *media;
26 SipeIceVersion ice_version;
29 struct sdpmedia {
30 gchar *name;
31 gchar *ip;
32 guint port;
34 GSList *attributes;
35 GSList *candidates;
36 GSList *codecs;
37 GSList *remote_candidates;
40 struct sdpcandidate {
41 gchar *foundation;
42 SipeComponentType component;
43 SipeCandidateType type;
44 SipeNetworkProtocol protocol;
45 guint32 priority;
46 gchar *ip;
47 guint port;
48 gchar *base_ip;
49 guint base_port;
50 gchar *username;
51 gchar *password;
54 struct sdpcodec {
55 gint id;
56 gchar *name;
57 gint clock_rate;
58 SipeMediaType type;
59 GSList *parameters;
62 /**
63 * Parses SDP message into @c sdpmsg structure.
65 * @param msg SDP message as character string
67 * @return New @c sdpmsg or NULL if message can not be parsed.
69 struct sdpmsg *sdpmsg_parse_msg(gchar *msg);
71 /**
72 * Creates a SDP message from the @c sdpmsg structure.
74 * @param msg a @c sdpmsg
76 * @return SDP message as a character string that must be g_free'd after use.
78 gchar *sdpmsg_to_string(const struct sdpmsg *msg);
80 /**
81 * Deallocates @c sdpmsg.
83 void sdpmsg_free(struct sdpmsg *msg);
85 /**
86 * Deallocates @c sdpcodec.
88 void sdpcodec_free(struct sdpcodec *codec);
90 /**
91 * Deallocates @c sdpmedia.
93 void sdpmedia_free(struct sdpmedia *media);