digest: add support for OpenSSL 1.1.0
[siplcs.git] / src / core / sdpmsg.h
blobf082e7ee3d83488da0c616e564a3b395534eee4d
1 /**
2 * @file sdpmsg.h
4 * pidgin-sipe
6 * Copyright (C) 2014-2017 SIPE Project <http://sipe.sourceforge.net/>
7 * Copyright (C) 2010 Jakub Adam <jakub.adam@ktknet.cz>
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 struct sdpmsg {
25 gchar *ip; /* currently this has to be an IPv4 address */
26 GSList *media;
27 SipeIceVersion ice_version;
30 struct sdpmedia {
31 gchar *name;
32 gchar *ip; /* currently this has to be an IPv4 address */
33 guint port;
35 GSList *attributes;
36 GSList *candidates;
37 GSList *codecs;
38 GSList *remote_candidates;
40 guchar *encryption_key;
41 int encryption_key_id;
42 gboolean encryption_active;
45 struct sdpcandidate {
46 gchar *foundation;
47 SipeComponentType component;
48 SipeCandidateType type;
49 SipeNetworkProtocol protocol;
50 guint32 priority;
51 gchar *ip; /* currently this has to be an IPv4 address */
52 guint port;
53 gchar *base_ip;
54 guint base_port;
55 gchar *username;
56 gchar *password;
59 struct sdpcodec {
60 gint id;
61 gchar *name;
62 gint clock_rate;
63 gint channels;
64 SipeMediaType type;
65 GSList *parameters;
68 /**
69 * Parses SDP message into @c sdpmsg structure.
71 * @param msg SDP message as character string
73 * @return New @c sdpmsg or NULL if message can not be parsed.
75 struct sdpmsg *sdpmsg_parse_msg(const gchar *msg);
77 /**
78 * Creates a SDP message from the @c sdpmsg structure.
80 * @param msg a @c sdpmsg
82 * @return SDP message as a character string that must be g_free'd after use.
84 gchar *sdpmsg_to_string(const struct sdpmsg *msg);
86 /**
87 * Deallocates @c sdpmsg.
89 void sdpmsg_free(struct sdpmsg *msg);
91 /**
92 * Deallocates @c sdpcandidate.
94 void sdpcandidate_free(struct sdpcandidate *candidate);
96 /**
97 * Deallocates @c sdpcodec.
99 void sdpcodec_free(struct sdpcodec *codec);
102 * Deallocates @c sdpmedia.
104 void sdpmedia_free(struct sdpmedia *media);