|
From: | Simon Morlat |
Subject: | Re: [Linphone-developers] [PATCH] DCCP Support |
Date: | Thu, 20 Jun 2013 18:56:05 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130510 Thunderbird/17.0.6 |
Hi Samuel,
I apologize for my belated answer. Congratulations for all the work you did in Linphone. I reviewed all your commits. This is very impressive and this looks pretty well written. I did not know the existence of DCCP, and thus I also thank you for pointing this to us. I have very quickly read the DCCP rfc and I would like to know if you had any opinion regarding the way it works with NATs. Indeed I understand that is connection oriented (like TCP), which means there are client and server sockets. Do NATs support DCCP ? Thank you very much, Simon Le 11/06/2013 23:53, Samuel Jero a écrit : As part of my masters work, I have added support for streaming media over the Datagram Congestion Control Protocol (DCCP) to linphone. DCCP is a relatively new protocol (2006) developed by the IETF to provide congestion control without reliability for applications like VoIP and video streaming (RFC4340--https://tools.ietf.org/html/rfc4340). I would like to contribute this work back to the main Linphone code-base, if possible, so that others can utilize it. My patches consist of three main parts: 1)Adding support for DCCP to oRTP. This involves substantial changes to rtpsession_inet.c, particularly since DCCP is a connection-oriented protocol, unlike UDP. 2)Updating the bitrate control mechanisms in mediastreamer2 and the feedback it receives from oRTP. DCCP provides feedback to the application as to how fast it is allowed to send and when it needs to slow down. This feedback is distinctly more rapid that RTCP reports, so I utilize it in preference to RTCP for bitrate control. 3)Updating APIs throughput oRTP, mediastreamer2, and liblinphone to allow selection of transport protocol. As the patches to add DCCP support are fairly significant, I have created a repository on github containing the changes: oRTP: git://github.com/samueljero/linphone-oRTP.git branch: for-linphone mediastreamer2: git://github.com/samueljero/linphone-mediastreamer2.git branch: for-linphone linphone: git://github.com/samueljero/linphone.git branch: for-linphone These branches base off of the master branch from git://git.linphone.org/linphone.git as of 2013-06-10. Direct links to my commits are below: oRTP: https://github.com/samueljero/linphone-oRTP/commit/e7ebed986b3049f19259d703a1b0af7b467498ec mediastreamer2: https://github.com/samueljero/linphone-mediastreamer2/commit/07d1ba978456729658ab351ba36c44075fde8dbf linphone: https://github.com/samueljero/linphone/commit/4ea3df62a2bfe5561fede327027cdb99a38e7bfb Any comments on these patches would be appreciated. I can try to split out a large number of smaller patches if that would help, but a lot of the changes are interrelated. Thanks. |
[Prev in Thread] | Current Thread | [Next in Thread] |