[calls] sip: origin: Try fetching RTCP port from SDP attributes
- From: Evangelos Ribeiro Tzaras <devrtz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [calls] sip: origin: Try fetching RTCP port from SDP attributes
- Date: Sun, 6 Mar 2022 00:28:32 +0000 (UTC)
commit a7fcb9c0c07aa96d917924532309a17e9f9d0de2
Author: Evangelos Ribeiro Tzaras <devrtz fortysixandtwo eu>
Date: Mon Feb 28 19:59:15 2022 +0100
sip: origin: Try fetching RTCP port from SDP attributes
And fallback to the legacy behaviour of RTCP=RTP+1
plugins/sip/calls-sip-origin.c | 24 +++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)
---
diff --git a/plugins/sip/calls-sip-origin.c b/plugins/sip/calls-sip-origin.c
index 81057f57..c79d86aa 100644
--- a/plugins/sip/calls-sip-origin.c
+++ b/plugins/sip/calls-sip-origin.c
@@ -543,15 +543,15 @@ sip_i_state (int status,
if (status == 503) {
CALLS_EMIT_MESSAGE (origin, "DNS error", GTK_MESSAGE_ERROR);
}
- /* XXX making some assumptions about the received SDP message here...
- * namely: rtcp port = rtp port + 1
- */
+
if (r_sdp) {
g_autoptr (GList) codecs =
calls_sip_media_manager_get_codecs_from_sdp (origin->media_manager,
r_sdp->sdp_media);
const char *session_ip = NULL;
const char *media_ip = NULL;
+ int rtp_port;
+ int rtcp_port = 0;
g_debug ("Remote SDP was set to:\n%s", r_sdp_str);
@@ -575,10 +575,24 @@ sip_i_state (int status,
}
calls_sip_call_set_codecs (call, codecs);
+
+ /* TODO This needs to adapt for the ICE case */
+ rtp_port = r_sdp->sdp_media->m_port;
+ for (sdp_attribute_t *attr = r_sdp->sdp_media->m_attributes; attr; attr = attr->a_next) {
+ if (g_strcmp0 (attr->a_name, "rtcp") == 0) {
+ rtcp_port = atoi (attr->a_value);
+ break;
+ }
+ }
+
+ /* Legacy fallback */
+ if (rtcp_port == 0)
+ rtcp_port = rtp_port + 1;
+
calls_sip_call_setup_remote_media_connection (call,
media_ip ? : session_ip,
- r_sdp->sdp_media->m_port,
- r_sdp->sdp_media->m_port + 1);
+ rtp_port,
+ rtcp_port);
}
switch (call_state) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]