srtp: negotiate encryption and apply keys to backend
[siplcs.git] / src / core / sdpmsg.h
blob56c84624dd36cc9c0eae245c6d6a7621048f749b
1 /**
2 * @file sdpmsg.h
4 * pidgin-sipe
6 * Copyright (C) 2014-2015 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 gboolean encryption_active;
44 struct sdpcandidate {
45 gchar *foundation;
46 SipeComponentType component;
47 SipeCandidateType type;
48 SipeNetworkProtocol protocol;
49 guint32 priority;
50 gchar *ip; /* currently this has to be an IPv4 address */
51 guint port;
52 gchar *base_ip;
53 guint base_port;
54 gchar *username;
55 gchar *password;
58 struct sdpcodec {
59 gint id;
60 gchar *name;
61 gint clock_rate;
62 SipeMediaType type;
63 GSList *parameters;
66 /**
67 * Parses SDP message into @c sdpmsg structure.
69 * @param msg SDP message as character string
71 * @return New @c sdpmsg or NULL if message can not be parsed.
73 struct sdpmsg *sdpmsg_parse_msg(gchar *msg);
75 /**
76 * Creates a SDP message from the @c sdpmsg structure.
78 * @param msg a @c sdpmsg
80 * @return SDP message as a character string that must be g_free'd after use.
82 gchar *sdpmsg_to_string(const struct sdpmsg *msg);
84 /**
85 * Deallocates @c sdpmsg.
87 void sdpmsg_free(struct sdpmsg *msg);
89 /**
90 * Deallocates @c sdpcodec.
92 void sdpcodec_free(struct sdpcodec *codec);
94 /**
95 * Deallocates @c sdpmedia.
97 void sdpmedia_free(struct sdpmedia *media);