mirror of
https://gitlab.gnome.org/GNOME/calls.git
synced 2025-01-08 04:45:31 +00:00
sip: media-pipeline: Remove lport-rtp and lport-rtcp property
We're not setting the desired ports from the outside anymore, but rather querying the ports that have been allocated by the operating system. Therefore the lport-rtp and lport-rtcp property have become superfluous and are being removed. We also adapt to changes outside of the pipeline code.
This commit is contained in:
parent
aeebdfbf53
commit
849f298609
9 changed files with 39 additions and 97 deletions
|
@ -65,8 +65,6 @@ struct _CallsSipCall
|
||||||
|
|
||||||
char *ip;
|
char *ip;
|
||||||
|
|
||||||
guint lport_rtp;
|
|
||||||
guint lport_rtcp;
|
|
||||||
guint rport_rtp;
|
guint rport_rtp;
|
||||||
guint rport_rtcp;
|
guint rport_rtcp;
|
||||||
gchar *remote;
|
gchar *remote;
|
||||||
|
@ -97,18 +95,6 @@ try_setting_up_media_pipeline (CallsSipCall *self)
|
||||||
calls_sip_media_pipeline_set_codec (self->pipeline, codec);
|
calls_sip_media_pipeline_set_codec (self->pipeline, codec);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!self->lport_rtp || !self->lport_rtcp || !self->remote ||
|
|
||||||
!self->rport_rtp || !self->rport_rtcp)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
g_debug ("Setting local ports: RTP/RTCP %u/%u",
|
|
||||||
self->lport_rtp, self->lport_rtcp);
|
|
||||||
|
|
||||||
g_object_set (G_OBJECT (self->pipeline),
|
|
||||||
"lport-rtp", self->lport_rtp,
|
|
||||||
"lport-rtcp", self->lport_rtcp,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
g_debug ("Setting remote ports: RTP/RTCP %u/%u",
|
g_debug ("Setting remote ports: RTP/RTCP %u/%u",
|
||||||
self->rport_rtp, self->rport_rtcp);
|
self->rport_rtp, self->rport_rtcp);
|
||||||
|
|
||||||
|
@ -127,7 +113,7 @@ calls_sip_call_answer (CallsCall *call)
|
||||||
{
|
{
|
||||||
CallsSipCall *self;
|
CallsSipCall *self;
|
||||||
g_autofree gchar *local_sdp = NULL;
|
g_autofree gchar *local_sdp = NULL;
|
||||||
guint local_port = get_port_for_rtp ();
|
guint rtp_port, rtcp_port;
|
||||||
|
|
||||||
g_assert (CALLS_IS_CALL (call));
|
g_assert (CALLS_IS_CALL (call));
|
||||||
g_assert (CALLS_IS_SIP_CALL (call));
|
g_assert (CALLS_IS_SIP_CALL (call));
|
||||||
|
@ -141,12 +127,15 @@ calls_sip_call_answer (CallsCall *call)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO get free port by creating GSocket and passing that to the pipeline */
|
rtp_port = calls_sip_media_pipeline_get_rtp_port (self->pipeline);
|
||||||
calls_sip_call_setup_local_media_connection (self, local_port, local_port + 1);
|
rtcp_port = calls_sip_media_pipeline_get_rtcp_port (self->pipeline);
|
||||||
|
|
||||||
|
calls_sip_call_setup_local_media_connection (self);
|
||||||
|
|
||||||
local_sdp = calls_sip_media_manager_get_capabilities (self->manager,
|
local_sdp = calls_sip_media_manager_get_capabilities (self->manager,
|
||||||
self->ip,
|
self->ip,
|
||||||
local_port,
|
rtp_port,
|
||||||
|
rtcp_port,
|
||||||
FALSE,
|
FALSE,
|
||||||
self->codecs);
|
self->codecs);
|
||||||
|
|
||||||
|
@ -317,19 +306,13 @@ calls_sip_call_init (CallsSipCall *self)
|
||||||
/**
|
/**
|
||||||
* calls_sip_call_setup_local_media_connection:
|
* calls_sip_call_setup_local_media_connection:
|
||||||
* @self: A #CallsSipCall
|
* @self: A #CallsSipCall
|
||||||
* @port_rtp: The RTP port on the the local host
|
|
||||||
* @port_rtcp: The RTCP port on the local host
|
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
calls_sip_call_setup_local_media_connection (CallsSipCall *self,
|
calls_sip_call_setup_local_media_connection (CallsSipCall *self)
|
||||||
guint port_rtp,
|
|
||||||
guint port_rtcp)
|
|
||||||
{
|
{
|
||||||
g_return_if_fail (CALLS_IS_SIP_CALL (self));
|
g_return_if_fail (CALLS_IS_SIP_CALL (self));
|
||||||
|
|
||||||
self->lport_rtp = port_rtp;
|
/* XXX maybe we can get rid of this completely */
|
||||||
self->lport_rtcp = port_rtcp;
|
|
||||||
|
|
||||||
try_setting_up_media_pipeline (self);
|
try_setting_up_media_pipeline (self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,9 +45,7 @@ void calls_sip_call_setup_remote_media_connection (CallsSi
|
||||||
const char *remote,
|
const char *remote,
|
||||||
guint port_rtp,
|
guint port_rtp,
|
||||||
guint port_rtcp);
|
guint port_rtcp);
|
||||||
void calls_sip_call_setup_local_media_connection (CallsSipCall *self,
|
void calls_sip_call_setup_local_media_connection (CallsSipCall *self);
|
||||||
guint port_rtp,
|
|
||||||
guint port_rtcp);
|
|
||||||
void calls_sip_call_activate_media (CallsSipCall *self,
|
void calls_sip_call_activate_media (CallsSipCall *self,
|
||||||
gboolean enabled);
|
gboolean enabled);
|
||||||
void calls_sip_call_set_state (CallsSipCall *self,
|
void calls_sip_call_set_state (CallsSipCall *self,
|
||||||
|
|
|
@ -222,7 +222,8 @@ calls_sip_media_manager_default (void)
|
||||||
char *
|
char *
|
||||||
calls_sip_media_manager_get_capabilities (CallsSipMediaManager *self,
|
calls_sip_media_manager_get_capabilities (CallsSipMediaManager *self,
|
||||||
const char *own_ip,
|
const char *own_ip,
|
||||||
guint port,
|
gint rtp_port,
|
||||||
|
gint rtcp_port,
|
||||||
gboolean use_srtp,
|
gboolean use_srtp,
|
||||||
GList *supported_codecs)
|
GList *supported_codecs)
|
||||||
{
|
{
|
||||||
|
@ -245,7 +246,7 @@ calls_sip_media_manager_get_capabilities (CallsSipMediaManager *self,
|
||||||
|
|
||||||
/* media lines look f.e like "audio 31337 RTP/AVP 9 8 0" */
|
/* media lines look f.e like "audio 31337 RTP/AVP 9 8 0" */
|
||||||
g_string_append_printf (media_line,
|
g_string_append_printf (media_line,
|
||||||
"m=audio %d RTP/%s", port, payload_type);
|
"m=audio %d RTP/%s", rtp_port, payload_type);
|
||||||
|
|
||||||
for (node = supported_codecs; node != NULL; node = node->next) {
|
for (node = supported_codecs; node != NULL; node = node->next) {
|
||||||
MediaCodecInfo *codec = node->data;
|
MediaCodecInfo *codec = node->data;
|
||||||
|
@ -259,7 +260,7 @@ calls_sip_media_manager_get_capabilities (CallsSipMediaManager *self,
|
||||||
"\r\n");
|
"\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
g_string_append_printf (attribute_lines, "a=rtcp:%d\r\n", port + 1);
|
g_string_append_printf (attribute_lines, "a=rtcp:%d\r\n", rtcp_port);
|
||||||
|
|
||||||
done:
|
done:
|
||||||
if (own_ip && *own_ip)
|
if (own_ip && *own_ip)
|
||||||
|
@ -287,7 +288,8 @@ calls_sip_media_manager_get_capabilities (CallsSipMediaManager *self,
|
||||||
/* calls_sip_media_manager_static_capabilities:
|
/* calls_sip_media_manager_static_capabilities:
|
||||||
*
|
*
|
||||||
* @self: A #CallsSipMediaManager
|
* @self: A #CallsSipMediaManager
|
||||||
* @port: Should eventually come from the ICE stack
|
* @rtp_port: Port to use for RTP. Should eventually come from the ICE stack
|
||||||
|
* @rtcp_port: Port to use for RTCP.Should eventually come from the ICE stack
|
||||||
* @use_srtp: Whether to use srtp (not really handled)
|
* @use_srtp: Whether to use srtp (not really handled)
|
||||||
*
|
*
|
||||||
* Returns: (transfer full): string describing capabilities
|
* Returns: (transfer full): string describing capabilities
|
||||||
|
@ -296,14 +298,16 @@ calls_sip_media_manager_get_capabilities (CallsSipMediaManager *self,
|
||||||
char *
|
char *
|
||||||
calls_sip_media_manager_static_capabilities (CallsSipMediaManager *self,
|
calls_sip_media_manager_static_capabilities (CallsSipMediaManager *self,
|
||||||
const char *own_ip,
|
const char *own_ip,
|
||||||
guint port,
|
gint rtp_port,
|
||||||
|
gint rtcp_port,
|
||||||
gboolean use_srtp)
|
gboolean use_srtp)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (CALLS_IS_SIP_MEDIA_MANAGER (self), NULL);
|
g_return_val_if_fail (CALLS_IS_SIP_MEDIA_MANAGER (self), NULL);
|
||||||
|
|
||||||
return calls_sip_media_manager_get_capabilities (self,
|
return calls_sip_media_manager_get_capabilities (self,
|
||||||
own_ip,
|
own_ip,
|
||||||
port,
|
rtp_port,
|
||||||
|
rtcp_port,
|
||||||
use_srtp,
|
use_srtp,
|
||||||
self->preferred_codecs);
|
self->preferred_codecs);
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,12 +40,14 @@ G_DECLARE_FINAL_TYPE (CallsSipMediaManager, calls_sip_media_manager, CALLS, SIP_
|
||||||
CallsSipMediaManager* calls_sip_media_manager_default (void);
|
CallsSipMediaManager* calls_sip_media_manager_default (void);
|
||||||
gchar* calls_sip_media_manager_get_capabilities (CallsSipMediaManager *self,
|
gchar* calls_sip_media_manager_get_capabilities (CallsSipMediaManager *self,
|
||||||
const char *own_ip,
|
const char *own_ip,
|
||||||
guint port,
|
gint rtp_port,
|
||||||
|
gint rtcp_port,
|
||||||
gboolean use_srtp,
|
gboolean use_srtp,
|
||||||
GList *supported_codecs);
|
GList *supported_codecs);
|
||||||
gchar* calls_sip_media_manager_static_capabilities (CallsSipMediaManager *self,
|
gchar* calls_sip_media_manager_static_capabilities (CallsSipMediaManager *self,
|
||||||
const char *own_ip,
|
const char *own_ip,
|
||||||
guint port,
|
gint rtp_port,
|
||||||
|
gint rtcp_port,
|
||||||
gboolean use_srtp);
|
gboolean use_srtp);
|
||||||
gboolean calls_sip_media_manager_supports_media (CallsSipMediaManager *self,
|
gboolean calls_sip_media_manager_supports_media (CallsSipMediaManager *self,
|
||||||
const char *media_type);
|
const char *media_type);
|
||||||
|
|
|
@ -95,9 +95,7 @@ enum {
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_CODEC,
|
PROP_CODEC,
|
||||||
PROP_REMOTE,
|
PROP_REMOTE,
|
||||||
PROP_LPORT_RTP,
|
|
||||||
PROP_RPORT_RTP,
|
PROP_RPORT_RTP,
|
||||||
PROP_LPORT_RTCP,
|
|
||||||
PROP_RPORT_RTCP,
|
PROP_RPORT_RTCP,
|
||||||
PROP_DEBUG,
|
PROP_DEBUG,
|
||||||
PROP_STATE,
|
PROP_STATE,
|
||||||
|
@ -128,10 +126,8 @@ struct _CallsSipMediaPipeline {
|
||||||
char *remote;
|
char *remote;
|
||||||
|
|
||||||
gint rport_rtp;
|
gint rport_rtp;
|
||||||
gint lport_rtp;
|
|
||||||
|
|
||||||
gint rport_rtcp;
|
gint rport_rtcp;
|
||||||
gint lport_rtcp;
|
|
||||||
|
|
||||||
/* Gstreamer Elements (sending) */
|
/* Gstreamer Elements (sending) */
|
||||||
GstElement *send_pipeline;
|
GstElement *send_pipeline;
|
||||||
|
@ -740,14 +736,6 @@ calls_sip_media_pipeline_get_property (GObject *object,
|
||||||
g_value_set_string (value, self->remote);
|
g_value_set_string (value, self->remote);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_LPORT_RTP:
|
|
||||||
g_value_set_uint (value, self->lport_rtp);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PROP_LPORT_RTCP:
|
|
||||||
g_value_set_uint (value, self->lport_rtcp);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PROP_RPORT_RTP:
|
case PROP_RPORT_RTP:
|
||||||
g_value_set_uint (value, self->rport_rtp);
|
g_value_set_uint (value, self->rport_rtp);
|
||||||
break;
|
break;
|
||||||
|
@ -789,14 +777,6 @@ calls_sip_media_pipeline_set_property (GObject *object,
|
||||||
self->remote = g_value_dup_string (value);
|
self->remote = g_value_dup_string (value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_LPORT_RTP:
|
|
||||||
self->lport_rtp = g_value_get_uint (value);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PROP_LPORT_RTCP:
|
|
||||||
self->lport_rtcp = g_value_get_uint (value);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PROP_RPORT_RTP:
|
case PROP_RPORT_RTP:
|
||||||
self->rport_rtp = g_value_get_uint (value);
|
self->rport_rtp = g_value_get_uint (value);
|
||||||
break;
|
break;
|
||||||
|
@ -884,18 +864,6 @@ calls_sip_media_pipeline_class_init (CallsSipMediaPipelineClass *klass)
|
||||||
NULL,
|
NULL,
|
||||||
G_PARAM_READWRITE);
|
G_PARAM_READWRITE);
|
||||||
|
|
||||||
props[PROP_LPORT_RTP] = g_param_spec_uint ("lport-rtp",
|
|
||||||
"lport-rtp",
|
|
||||||
"local rtp port",
|
|
||||||
1025, 65535, 5002,
|
|
||||||
G_PARAM_READWRITE);
|
|
||||||
|
|
||||||
props[PROP_LPORT_RTCP] = g_param_spec_uint ("lport-rtcp",
|
|
||||||
"lport-rtcp",
|
|
||||||
"local rtcp port",
|
|
||||||
1025, 65535, 5003,
|
|
||||||
G_PARAM_READWRITE);
|
|
||||||
|
|
||||||
props[PROP_RPORT_RTP] = g_param_spec_uint ("rport-rtp",
|
props[PROP_RPORT_RTP] = g_param_spec_uint ("rport-rtp",
|
||||||
"rport-rtp",
|
"rport-rtp",
|
||||||
"remote rtp port",
|
"remote rtp port",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Purism SPC
|
* Copyright (C) 2021-2022 Purism SPC
|
||||||
*
|
*
|
||||||
* This file is part of Calls.
|
* This file is part of Calls.
|
||||||
*
|
*
|
||||||
|
@ -239,10 +239,11 @@ add_call (CallsSipOrigin *self,
|
||||||
g_autofree gchar *local_sdp = NULL;
|
g_autofree gchar *local_sdp = NULL;
|
||||||
g_auto (GStrv) address_split = NULL;
|
g_auto (GStrv) address_split = NULL;
|
||||||
const char *call_address = address;
|
const char *call_address = address;
|
||||||
|
gint rtp_port, rtcp_port;
|
||||||
|
|
||||||
/* TODO get free port by creating GSocket and passing that to the pipeline */
|
|
||||||
guint local_port = get_port_for_rtp ();
|
|
||||||
pipeline = calls_sip_media_manager_get_pipeline (self->media_manager);
|
pipeline = calls_sip_media_manager_get_pipeline (self->media_manager);
|
||||||
|
rtp_port = calls_sip_media_pipeline_get_rtp_port (pipeline);
|
||||||
|
rtcp_port = calls_sip_media_pipeline_get_rtcp_port (pipeline);
|
||||||
|
|
||||||
if (self->can_tel) {
|
if (self->can_tel) {
|
||||||
address_split = g_strsplit_set (address, ":@;", -1);
|
address_split = g_strsplit_set (address, ":@;", -1);
|
||||||
|
@ -271,11 +272,12 @@ add_call (CallsSipOrigin *self,
|
||||||
self);
|
self);
|
||||||
|
|
||||||
if (!inbound) {
|
if (!inbound) {
|
||||||
calls_sip_call_setup_local_media_connection (sip_call, local_port, local_port + 1);
|
calls_sip_call_setup_local_media_connection (sip_call);
|
||||||
|
|
||||||
local_sdp = calls_sip_media_manager_static_capabilities (self->media_manager,
|
local_sdp = calls_sip_media_manager_static_capabilities (self->media_manager,
|
||||||
self->own_ip,
|
self->own_ip,
|
||||||
local_port,
|
rtp_port,
|
||||||
|
rtcp_port,
|
||||||
FALSE);
|
FALSE);
|
||||||
|
|
||||||
g_assert (local_sdp);
|
g_assert (local_sdp);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Purism SPC
|
* Copyright (C) 2021-2022 Purism SPC
|
||||||
*
|
*
|
||||||
* This file is part of Calls.
|
* This file is part of Calls.
|
||||||
*
|
*
|
||||||
|
@ -61,17 +61,3 @@ protocol_is_valid (const char *protocol)
|
||||||
g_strcmp0 (protocol, "TCP") == 0 ||
|
g_strcmp0 (protocol, "TCP") == 0 ||
|
||||||
g_strcmp0 (protocol, "TLS") == 0;
|
g_strcmp0 (protocol, "TLS") == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define RTP_PORT_MIN 20000
|
|
||||||
#define RTP_PORT_MAX 65534
|
|
||||||
guint
|
|
||||||
get_port_for_rtp (void)
|
|
||||||
{
|
|
||||||
const guint rand_range = RTP_PORT_MAX - RTP_PORT_MIN;
|
|
||||||
guint rand = (g_random_int () % rand_range) + RTP_PORT_MIN;
|
|
||||||
|
|
||||||
/* RTP ports must be even */
|
|
||||||
return rand % 2 == 0 ? rand : rand + 1;
|
|
||||||
}
|
|
||||||
#undef RTP_PORT_MIN
|
|
||||||
#undef RTP_PORT_MAX
|
|
||||||
|
|
|
@ -62,4 +62,3 @@ gboolean check_sips (const char *addr);
|
||||||
gboolean check_ipv6 (const char *host);
|
gboolean check_ipv6 (const char *host);
|
||||||
const char *get_protocol_prefix (const char *protocol);
|
const char *get_protocol_prefix (const char *protocol);
|
||||||
gboolean protocol_is_valid (const char *protocol);
|
gboolean protocol_is_valid (const char *protocol);
|
||||||
guint get_port_for_rtp (void);
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ test_sip_media_manager_caps (void)
|
||||||
|
|
||||||
/* PCMA RTP */
|
/* PCMA RTP */
|
||||||
sdp_message =
|
sdp_message =
|
||||||
calls_sip_media_manager_get_capabilities (manager, NULL, 40002, FALSE, codecs);
|
calls_sip_media_manager_get_capabilities (manager, NULL, 40002, 40003, FALSE, codecs);
|
||||||
|
|
||||||
g_assert_true (sdp_message);
|
g_assert_true (sdp_message);
|
||||||
g_assert_true (find_string_in_sdp_message (sdp_message,
|
g_assert_true (find_string_in_sdp_message (sdp_message,
|
||||||
|
@ -64,7 +64,7 @@ test_sip_media_manager_caps (void)
|
||||||
|
|
||||||
/* PCMA SRTP */
|
/* PCMA SRTP */
|
||||||
sdp_message =
|
sdp_message =
|
||||||
calls_sip_media_manager_get_capabilities (manager, NULL, 42002, TRUE, codecs);
|
calls_sip_media_manager_get_capabilities (manager, NULL, 42002, 42003, TRUE, codecs);
|
||||||
g_assert_true (sdp_message);
|
g_assert_true (sdp_message);
|
||||||
g_assert_true (find_string_in_sdp_message (sdp_message,
|
g_assert_true (find_string_in_sdp_message (sdp_message,
|
||||||
"m=audio 42002 RTP/SAVP 8"));
|
"m=audio 42002 RTP/SAVP 8"));
|
||||||
|
@ -78,7 +78,7 @@ test_sip_media_manager_caps (void)
|
||||||
codecs = g_list_append (NULL, media_codec_by_name ("G722"));
|
codecs = g_list_append (NULL, media_codec_by_name ("G722"));
|
||||||
|
|
||||||
sdp_message =
|
sdp_message =
|
||||||
calls_sip_media_manager_get_capabilities (manager, NULL, 42042, FALSE, codecs);
|
calls_sip_media_manager_get_capabilities (manager, NULL, 42042, 55543, FALSE, codecs);
|
||||||
|
|
||||||
g_assert_true (sdp_message);
|
g_assert_true (sdp_message);
|
||||||
g_assert_true (find_string_in_sdp_message (sdp_message,
|
g_assert_true (find_string_in_sdp_message (sdp_message,
|
||||||
|
@ -86,7 +86,7 @@ test_sip_media_manager_caps (void)
|
||||||
g_assert_true (find_string_in_sdp_message (sdp_message,
|
g_assert_true (find_string_in_sdp_message (sdp_message,
|
||||||
"a=rtpmap:9 G722/8000"));
|
"a=rtpmap:9 G722/8000"));
|
||||||
g_assert_true (find_string_in_sdp_message (sdp_message,
|
g_assert_true (find_string_in_sdp_message (sdp_message,
|
||||||
"a=rtcp:42043"));
|
"a=rtcp:55543"));
|
||||||
|
|
||||||
g_clear_pointer (&codecs, g_list_free);
|
g_clear_pointer (&codecs, g_list_free);
|
||||||
g_free (sdp_message);
|
g_free (sdp_message);
|
||||||
|
@ -99,7 +99,7 @@ test_sip_media_manager_caps (void)
|
||||||
codecs = g_list_append (codecs, media_codec_by_name ("PCMA"));
|
codecs = g_list_append (codecs, media_codec_by_name ("PCMA"));
|
||||||
|
|
||||||
sdp_message =
|
sdp_message =
|
||||||
calls_sip_media_manager_get_capabilities (manager, NULL, 33340, FALSE, codecs);
|
calls_sip_media_manager_get_capabilities (manager, NULL, 33340, 33341, FALSE, codecs);
|
||||||
|
|
||||||
g_assert_true (sdp_message);
|
g_assert_true (sdp_message);
|
||||||
g_assert_true (find_string_in_sdp_message (sdp_message,
|
g_assert_true (find_string_in_sdp_message (sdp_message,
|
||||||
|
@ -123,7 +123,7 @@ test_sip_media_manager_caps (void)
|
||||||
codecs = g_list_append (codecs, media_codec_by_name ("PCMU"));
|
codecs = g_list_append (codecs, media_codec_by_name ("PCMU"));
|
||||||
|
|
||||||
sdp_message =
|
sdp_message =
|
||||||
calls_sip_media_manager_get_capabilities (manager, NULL, 18098, TRUE, codecs);
|
calls_sip_media_manager_get_capabilities (manager, NULL, 18098, 18099, TRUE, codecs);
|
||||||
|
|
||||||
g_assert_true (sdp_message);
|
g_assert_true (sdp_message);
|
||||||
g_assert_true (find_string_in_sdp_message (sdp_message,
|
g_assert_true (find_string_in_sdp_message (sdp_message,
|
||||||
|
@ -138,7 +138,7 @@ test_sip_media_manager_caps (void)
|
||||||
g_test_expect_message ("CallsSipMediaManager", G_LOG_LEVEL_WARNING,
|
g_test_expect_message ("CallsSipMediaManager", G_LOG_LEVEL_WARNING,
|
||||||
"No supported codecs found. Can't build meaningful SDP message");
|
"No supported codecs found. Can't build meaningful SDP message");
|
||||||
sdp_message =
|
sdp_message =
|
||||||
calls_sip_media_manager_get_capabilities (manager, NULL, 25048, FALSE, NULL);
|
calls_sip_media_manager_get_capabilities (manager, NULL, 25048, 25049, FALSE, NULL);
|
||||||
|
|
||||||
g_test_assert_expected_messages ();
|
g_test_assert_expected_messages ();
|
||||||
g_assert_true (sdp_message);
|
g_assert_true (sdp_message);
|
||||||
|
|
Loading…
Reference in a new issue