|
@@ -1871,6 +1871,8 @@ static const char *transports[] = {
|
|
[0x01] = "RTP/SAVP",
|
|
[0x01] = "RTP/SAVP",
|
|
[0x02] = "RTP/AVPF",
|
|
[0x02] = "RTP/AVPF",
|
|
[0x03] = "RTP/SAVPF",
|
|
[0x03] = "RTP/SAVPF",
|
|
|
|
+ [0x04] = "UDP/TLS/RTP/SAVP",
|
|
|
|
+ [0x06] = "UDP/TLS/RTP/SAVPF",
|
|
};
|
|
};
|
|
|
|
|
|
static int parse_flags(struct ng_flags_parse *ng_flags, struct sip_msg *msg, enum rtpe_operation *op,
|
|
static int parse_flags(struct ng_flags_parse *ng_flags, struct sip_msg *msg, enum rtpe_operation *op,
|
|
@@ -1946,6 +1948,8 @@ static int parse_flags(struct ng_flags_parse *ng_flags, struct sip_msg *msg, enu
|
|
ng_flags->transport |= 0x101;
|
|
ng_flags->transport |= 0x101;
|
|
else if (str_eq(&key, "AVPF"))
|
|
else if (str_eq(&key, "AVPF"))
|
|
ng_flags->transport |= 0x102;
|
|
ng_flags->transport |= 0x102;
|
|
|
|
+ else if (str_eq(&key, "DTLS"))
|
|
|
|
+ ng_flags->transport |= 0x104;
|
|
else
|
|
else
|
|
goto generic;
|
|
goto generic;
|
|
goto next;
|
|
goto next;
|
|
@@ -2048,6 +2052,23 @@ static int parse_flags(struct ng_flags_parse *ng_flags, struct sip_msg *msg, enu
|
|
goto next;
|
|
goto next;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
+
|
|
|
|
+ case 16:
|
|
|
|
+ if (str_eq(&key, "UDP/TLS/RTP/SAVP"))
|
|
|
|
+ ng_flags->transport = 0x104;
|
|
|
|
+ else
|
|
|
|
+ goto generic;
|
|
|
|
+ goto next;
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ case 17:
|
|
|
|
+ if (str_eq(&key, "UDP/TLS/RTP/SAVPF"))
|
|
|
|
+ ng_flags->transport = 0x106;
|
|
|
|
+ else
|
|
|
|
+ goto generic;
|
|
|
|
+ goto next;
|
|
|
|
+ break;
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
generic:
|
|
generic:
|
|
@@ -2148,7 +2169,7 @@ static bencode_item_t *rtpp_function_call(bencode_buffer_t *bencbuf, struct sip_
|
|
bencode_dictionary_add(ng_flags.dict, "replace", ng_flags.replace);
|
|
bencode_dictionary_add(ng_flags.dict, "replace", ng_flags.replace);
|
|
if ((ng_flags.transport & 0x100))
|
|
if ((ng_flags.transport & 0x100))
|
|
bencode_dictionary_add_string(ng_flags.dict, "transport-protocol",
|
|
bencode_dictionary_add_string(ng_flags.dict, "transport-protocol",
|
|
- transports[ng_flags.transport & 0x003]);
|
|
|
|
|
|
+ transports[ng_flags.transport & 0x007]);
|
|
if (ng_flags.rtcp_mux && ng_flags.rtcp_mux->child)
|
|
if (ng_flags.rtcp_mux && ng_flags.rtcp_mux->child)
|
|
bencode_dictionary_add(ng_flags.dict, "rtcp-mux", ng_flags.rtcp_mux);
|
|
bencode_dictionary_add(ng_flags.dict, "rtcp-mux", ng_flags.rtcp_mux);
|
|
|
|
|