<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [ ] Commit message has the format required by CONTRIBUTING guide
- [ ] Commits are split per component (core, individual modules, libs, utils, ...)
- [ ] Each component has a single commit (if not, squash them into one commit)
- [ ] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [ ] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
app_python: kemi add int-int-str to accept list of wrapper arguments
- used, for example, by the t_continue() wrapper
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/1463
-- Commit Summary --
* app_python: KEMI accept int-int-str for t_continue
-- File Changes --
M src/modules/app_python/apy_kemi.c (10)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/1463.patchhttps://github.com/kamailio/kamailio/pull/1463.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/1463
Module: kamailio
Branch: 5.1
Commit: 654aa457ecec7d35061dbb151fd786a303cba473
URL: https://github.com/kamailio/kamailio/commit/654aa457ecec7d35061dbb151fd786a…
Author: Jerzy Ptak <jerzy.ptak(a)bbitg.co.uk>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2018-03-01T10:28:34+01:00
rtpengine: added support for DTLS transports
- added ability to explicitly request DTLS transports:
UDP/TLS/RTP/SAVP and UDP/TLS/RTP/SAVPF
(cherry picked from commit 99695c2827d0ff6e3d25f144678f07548016415d)
---
Modified: src/modules/rtpengine/doc/rtpengine_admin.xml
Modified: src/modules/rtpengine/rtpengine.c
---
Diff: https://github.com/kamailio/kamailio/commit/654aa457ecec7d35061dbb151fd786a…
Patch: https://github.com/kamailio/kamailio/commit/654aa457ecec7d35061dbb151fd786a…
---
diff --git a/src/modules/rtpengine/doc/rtpengine_admin.xml b/src/modules/rtpengine/doc/rtpengine_admin.xml
index 4133eb93c2..9ae72a58bd 100644
--- a/src/modules/rtpengine/doc/rtpengine_admin.xml
+++ b/src/modules/rtpengine/doc/rtpengine_admin.xml
@@ -2159,7 +2159,7 @@ rtpengine_offer();
&sdp; substitutions (c=, m=, etc) are unaffected by this flag.
</para></listitem>
<listitem><para>
- <emphasis>RTP, SRTP, AVP, AVPF</emphasis> - These flags control the &rtp;
+ <emphasis>RTP, SRTP, DTLS, AVP, AVPF</emphasis> - These flags control the &rtp;
transport protocol that should be used towards the recipient of
the &sdp;. If none of them are specified, the protocol given in
the &sdp; is left untouched. Otherwise, the <quote>SRTP</quote> flag indicates that
@@ -2169,8 +2169,8 @@ rtpengine_offer();
should be used. See also the next set of flags below.
</para></listitem>
<listitem><para>
- <emphasis>RTP/AVP, RTP/SAVP, RTP/AVPF, RTP/SAVPF</emphasis> - these serve as
- an alternative, more explicit way to select between the different &rtp; protocols
+ <emphasis>RTP/AVP, RTP/SAVP, UDP/TLS/RTP/SAVP, RTP/AVPF, RTP/SAVPF, UDP/TLS/RTP/SAVPF</emphasis> - these
+ serve as an alternative, more explicit way to select between the different &rtp; protocols
and profiles supported by the &rtp; proxy. For example, giving the flag
<quote>RTP/SAVPF</quote> has the same effect as giving the two flags
<quote>SRTP AVPF</quote>.
diff --git a/src/modules/rtpengine/rtpengine.c b/src/modules/rtpengine/rtpengine.c
index 1b3429d3cd..3d4d17718a 100644
--- a/src/modules/rtpengine/rtpengine.c
+++ b/src/modules/rtpengine/rtpengine.c
@@ -1871,6 +1871,8 @@ static const char *transports[] = {
[0x01] = "RTP/SAVP",
[0x02] = "RTP/AVPF",
[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,
@@ -1946,6 +1948,8 @@ static int parse_flags(struct ng_flags_parse *ng_flags, struct sip_msg *msg, enu
ng_flags->transport |= 0x101;
else if (str_eq(&key, "AVPF"))
ng_flags->transport |= 0x102;
+ else if (str_eq(&key, "DTLS"))
+ ng_flags->transport |= 0x104;
else
goto generic;
goto next;
@@ -2048,6 +2052,23 @@ static int parse_flags(struct ng_flags_parse *ng_flags, struct sip_msg *msg, enu
goto next;
}
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:
@@ -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);
if ((ng_flags.transport & 0x100))
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)
bencode_dictionary_add(ng_flags.dict, "rtcp-mux", ng_flags.rtcp_mux);