### Description
rtpengine module is hijacking the DTLS key
rtpengine_manage("DTLS=off")
DTLS=off is a valid command to rtpengine, but the module uses that flag to set transport as UDP/TLS/RTP/SAVP
Unfortunately even though the transport can be fixed by RTP/SAVP, the lines outputted by rtpengine
a=setup:actpass a=fingerprint:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
confuse some UACs that were expecting only SDES. FreeSWITCH is affected.
### Troubleshooting
#### Reproduction
rtpengine_manage("DTLS=off"). tcpdump the traffic between kamailio and rtpengine. Obseve that there is no DTLS=off key.
#### Debugging Data
#### Log Messages
#### SIP Traffic
### Possible Solutions
Don't look for DTLS key, let that be passthrough to kamailio
### Additional Information
5.1.2
* **Operating System**: Linux CentOS 7.4
@rfuchs hoping you can take a look at this. The merge to master and backport to 5.1.2 has broken my use of rtpengine_manage("DTLS=off") since the DTLS key is removed from the ng-protocol messaged and not processed by rtpengine.
It is needed specifically for FreeSWITCH in SDES (who for some reason does not like a=setup:actpass and a=fingerprint)
It is a side effect of PR #1460.
More specific, from mailing list discussion (https://lists.kamailio.org/pipermail/sr-users/2018-March/100539.html), the related change should be:
``` + else if (str_eq(&key, "DTLS")) + ng_flags->transport |= 0x104; ```
The following attempted workaround also fails: 1. don't use DTLS=off, force transport rtpengine_manage("ICE=remove transport-protocol=RTP/SAVP"); 2. rtpengine side use dtls-passive rtpengine --dtls-passive
For some reason this also doesn't work, as rtpengine after rewritng SDP adds
a=setup:actpass a=fingerprint:sha-1 0F:21:F8:06:56:09:51:EC:B2:0B:47:A8:2D:98:D0:E7:E9:F7:0F:A9
First of all, I am sorry for crating this regression - I have clearly not fully appreciated how the fall through of flags in rtpengine module works. Using "DTLS" for declaring transport is just a shortcut for the log version UDP/TLS/RTP/SAVP, so removing it will not make much difference.
Ya sorry, my bad. I should have caught this when reviewing it. Will fix.
I suggest "DTLS" alone as a switch to enable UDP/TLS transport, while DTLS=... as a flag would keep its old meaning.
Closed #1468 via 0d89dc5e3c4c06084af8aae03e9b705673289703.
Thanks @rfuchs for the quick reaction! Otherwise, no worries, it's software!
Yes, indeed - thanks for fixing it so fast. Much appreciated.