3871
Comment:
|
15628
|
Deletions are marked like this. | Additions are marked like this. |
Line 10: | Line 10: |
* '''Contact''': ''IRC'' : #udit043 , ''email'' : udit043.ur@gmail.com | * '''Contact''': ''IRC'' : #udit043 , ''email'' : udit043.ur@gmail.com |
Line 27: | Line 27: |
• Operating System : Ubuntu 14.04 LTS, Windows 7 | • Operating System : Ubuntu 14.04 LTS, Windows 7 |
Line 36: | Line 36: |
* '''Project schedule''': | * '''Project schedule''': |
Line 45: | Line 45: |
->Output all errors in the format "socket error EINVAL (Invalid Argument)" instead of "socket error 22" | ->Output all errors in the format "socket error EINVAL (Invalid Argument) 22" instead of "socket error 22" |
Line 61: | Line 61: |
Line 70: | Line 70: |
* '''[[https://project.freertc.org/issues/28|Solving Issue #28]]''': Using libjingle from the resip/recon/* and reflow/* code, table containing the relationship between resiprocate and sipX api. * Read '''''http://paste.debian.net/776169/''''' for better understanding. Filename.cxx || sipX APIs used || equivalent libjingle APIs [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/ConversationManager.cxx|ConversationManager.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/interface/mi/CpMediaInterfaceFactory.h#L82 |createMediaInterface(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/app/webrtc/peerconnection.h#L239|CreatePortAllocator(..)]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/ConversationManager.cxx|ConversationManager.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/interface/mi/CpMediaInterfaceFactoryImpl.h#L106 |setSpeakerVolume(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/mediaengine.h#L118 |GetOutputVolume(..)]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/ConversationManager.cxx|ConversationManager.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/interface/mi/CpMediaInterfaceFactoryImpl.h#L112 |setMicrophoneGain(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/mediaengine.h#L124 |GetInputLevel()]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/ConversationManager.cxx|ConversationManager.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/interface/mi/CpMediaInterfaceFactoryImpl.h#L119 |muteMicrophone(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/mediaengine.h#L124 |GetInputLevel()]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/ConversationManager.cxx|ConversationManager.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/interface/mi/CpMediaInterfaceFactoryImpl.h#L122 |setAudioAECMode(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/webrtcvoiceengine.h#L147 |bool aec]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/ConversationManager.cxx|ConversationManager.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/interface/mi/CpMediaInterfaceFactoryImpl.h#L136 |enableAGC(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/webrtcvoiceengine.h#L145 |AdjustAgcLevel(..)]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/ConversationManager.cxx|ConversationManager.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/interface/mi/CpMediaInterfaceFactoryImpl.h#L129 |setAudioNoiseReductionMode(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/webrtcvoiceengine.h#L149|SetConferenceMode(..)]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/BridgeMixer.cxx|BridgeMixer.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaLib/include/mp/MprBridge.h#L115| setMixWeightsForOutput(..)]] || -- [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/BridgeMixer.cxx|BridgeMixer.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaLib/include/mp/MprBridge.h#L134| setMixWeightsForInput(..)]] || -- [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/MediaResourceParticipant.cxx|MediaResourceParticipant.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/interface/mi/CpMediaInterface.h#L410 |startTone(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/mediachannel.h#L381| PlayRingbackTone(..)]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/MediaResourceParticipant.cxx|MediaResourceParticipant.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/interface/mi/CpMediaInterface.h#L575 |stopAudio()]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/mediachannel.h#L367 |SetPlayout(..)]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/MediaResourceParticipant.cxx|MediaResourceParticipant.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpPhoneMediaInterface.h#L171 |playBuffer(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/mediachannel.h#L70 |PlaySound(..)]] / [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/mediachannel.h#L367 |SetPlayout(..)]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/MediaResourceParticipant.cxx|MediaResourceParticipant.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpPhoneMediaInterface.h#L218 |createPlayer(..)]] || -- [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/RemoteParticipantDialogSet.cxx|RemoteParticipantDialogSet.cxx]]|| [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h#L101 |createConnection(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/p2p/base/stunport.h#L85 |createConnection(..)]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/RemoteParticipantDialogSet.cxx|RemoteParticipantDialogSet.cxx]]|| [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h#L207 |deleteConnection(..)]] || [[ https://github.com/udit043/libjingle-0.6.14/blob/master/talk/p2p/base/udpport.h#L56 |delete port]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/RemoteParticipantDialogSet.cxx|RemoteParticipantDialogSet.cxx]]|| [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h#L392 |getCapabilities(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/channelmanager.h#L77 |GetCapabilities()]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/RemoteParticipantDialogSet.cxx|RemoteParticipantDialogSet.cxx]]|| [[ https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h#L129 |getConnectionPortOnBridge(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/p2p/base/port.h#L308 |connected()]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/RemoteParticipant.cxx|RemoteParticipant.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h#L169 |setConnectionDestination(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/fakewebrtcvoiceengine.h#L238 |WEBRTC_STUB(..)]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/RemoteParticipant.cxx|RemoteParticipant.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h#L188 |start]]/[[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h#L198 |stopRtpSend(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/fakemediaengine.h#L73 |SendRtp(..)]]/[[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/fakemediaengine.h#L80 |SendRtcp(..)]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/RemoteParticipant.cxx|RemoteParticipant.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h#L193 |start]]/[[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h#L201 |stopRtpReceive(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/mediachannel.h#L124 |OnPacketReceived(..)]]/[[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/mediachannel.h#L126 |OnRtcpReceived(..)]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/RemoteParticipant.cxx|RemoteParticipant.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h#L569 |isReceivingRtpAudio(..)]] || [[https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/fakewebrtcvoiceengine.h#L561 |WEBRTC_FUNC(..)/WEBRTC_STUB(..)]] [[https://github.com/resiprocate/resiprocate/blob/master/resip/recon/RemoteParticipant.cxx|RemoteParticipant.cxx]] || [[https://github.com/sipXtapi/sipXtapi/blob/master/sipXmediaAdapterLib/sipXmediaMediaProcessing/include/CpTopologyGraphInterface.h#L561 |isSendingRtpAudio(..)]] || -- * Some ''NAT'', ''RTP'', ''RTCP'', ''DTLS-SRTP'', ''SDES-SRTP'' functions from reflow* 1 - Manages a set of STUN requests (send, delay, remove, clear) -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/p2p/base/stunrequest.h#L39 2 - Creates a STUN server, which will listen on the given socket -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/p2p/base/stunserver.h#L41 3 - Handling different types of STUN/TURN requests -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/p2p/base/stunserver.h#L52 4 - SRTP support -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/srtpfilter.h#L107 (using RTP & RTCP with DTLS-SRTP) -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/srtpfilter.h#L134 (create SRTP session) -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/srtpfilter.h#L165 (SRTP session class) -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/base/sslstreamadapter.h#L163 (DTLS-SRTP interface) -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/rtputils.h#L49 (SDES-SRTP) 5 - STUN, Turn configuration -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/app/webrtc/peerconnection.h#L220 -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/app/webrtc/peerconnection.h#L226 6 - Class used for describing what media a PeerConnection can receive. -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/app/webrtc/jsep.h#L45 7 - Handle RTP and RTCP packets using MediaSinkInterface -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/mediasink.h#L33 8 - NAT traversal -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/base/natsocketfactory.h#L52 -> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/p2p/base/stunport.h#L46 |
Student Application Template
To fill this in, copy the source text. Please don't rename the template.
This is a suggestion for the kind of information we'll find useful from students in their submissions. Remember -- you're going to be committing to several months' work. The more information and planning you can provide up-front, the more we (and Google!) will have to go on when we're ranking your application. Do not forget adding your submission at SummerOfCode2016/StudentApplications
Name Udit Raikwar
Contact: IRC : #udit043 , email : udit043.ur@gmail.com
Project Mentor: Gaurav Saini <gauravsaini03@gmail.com>
Mailing List:
Background: I am 3rd year student pursuing Bachelor of Engineering from JEC , India. I have created some interesting innovative projects using OpenCV. I have a good knowledge about C , C++ and little bit of Python.
Location:
Laptop Details
- • Toshiba Satellite L655-S5096 • Operating System : Ubuntu 14.04 LTS, Windows 7 • Screen Resolution : 1366 x 768 • Webcam inbuilt
Mobile Details : Moto G3, Android Phone with version 6.0.1
Project title: Improving voice, video and chat communication with free software
Project details: I would like to work on the following issues https://project.freertc.org/issues/25 , https://project.freertc.org/issues/28 , https://project.freertc.org/issues/93 .
Project schedule:
• 22nd April – 22nd May: Community Bonding Period – Communication with mentor, discuss ideas and approach to solve some bugs, understand the code to be worked upon and find out what more can be done.
• Week 1-4 (23may-21june) : Improve logging (log errno names instead of values)
->Write code to solve issue #25
->Defining various network errors
->Output all errors in the format "socket error EINVAL (Invalid Argument) 22" instead of "socket error 22"
->Testing and debugging
->Documentation
• Week 5-8 (22june-15july) : support for WebRTC client to make conference calls
->Write code to solve issue #28
->Testing and debugging
->Documentation
• Week 9-12 (16july-17aug) : Evolution: reply to emails with a SIP or XMPP call
->Write code to solve issue #93
->Testing and debugging
->Documentation
• 18th Aug – 24th Aug : Week reserved for project documentation, improvement or medication to certain code if required.
Solving Issue #28: Using libjingle from the resip/recon/* and reflow/* code, table containing the relationship between resiprocate and sipX api.
* Read http://paste.debian.net/776169/ for better understanding.
Filename.cxx || sipX APIs used || equivalent libjingle APIs
ConversationManager.cxx || createMediaInterface(..) || CreatePortAllocator(..)
ConversationManager.cxx || setSpeakerVolume(..) || GetOutputVolume(..)
ConversationManager.cxx || setMicrophoneGain(..) || GetInputLevel()
ConversationManager.cxx || muteMicrophone(..) || GetInputLevel()
ConversationManager.cxx || setAudioAECMode(..) || bool aec
ConversationManager.cxx || enableAGC(..) || AdjustAgcLevel(..)
ConversationManager.cxx || setAudioNoiseReductionMode(..) || SetConferenceMode(..)
BridgeMixer.cxx || setMixWeightsForOutput(..) || --
BridgeMixer.cxx || setMixWeightsForInput(..) || --
MediaResourceParticipant.cxx || startTone(..) || PlayRingbackTone(..)
MediaResourceParticipant.cxx || stopAudio() || SetPlayout(..)
MediaResourceParticipant.cxx || playBuffer(..) || PlaySound(..) / SetPlayout(..)
MediaResourceParticipant.cxx || createPlayer(..) || --
RemoteParticipantDialogSet.cxx|| createConnection(..) || createConnection(..)
RemoteParticipantDialogSet.cxx|| deleteConnection(..) || delete port
RemoteParticipantDialogSet.cxx|| getCapabilities(..) || GetCapabilities()
RemoteParticipantDialogSet.cxx|| getConnectionPortOnBridge(..) || connected()
RemoteParticipant.cxx || setConnectionDestination(..) || WEBRTC_STUB(..)
RemoteParticipant.cxx || start/stopRtpSend(..) || SendRtp(..)/SendRtcp(..)
RemoteParticipant.cxx || start/stopRtpReceive(..) || OnPacketReceived(..)/OnRtcpReceived(..)
RemoteParticipant.cxx || isReceivingRtpAudio(..) || WEBRTC_FUNC(..)/WEBRTC_STUB(..)
* Some NAT, RTP, RTCP, DTLS-SRTP, SDES-SRTP functions from reflow*
1 - Manages a set of STUN requests (send, delay, remove, clear)
2 - Creates a STUN server, which will listen on the given socket
3 - Handling different types of STUN/TURN requests
4 - SRTP support
-> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/srtpfilter.h#L107 (using RTP & RTCP with DTLS-SRTP)
-> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/srtpfilter.h#L134 (create SRTP session)
-> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/srtpfilter.h#L165 (SRTP session class)
-> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/base/sslstreamadapter.h#L163 (DTLS-SRTP interface)
-> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/session/phone/rtputils.h#L49 (SDES-SRTP)
5 - STUN, Turn configuration
-> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/app/webrtc/peerconnection.h#L220
-> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/app/webrtc/peerconnection.h#L226
6 - Class used for describing what media a ?PeerConnection can receive.
7 - Handle RTP and RTCP packets using ?MediaSinkInterface
8 - NAT traversal
-> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/base/natsocketfactory.h#L52
-> https://github.com/udit043/libjingle-0.6.14/blob/master/talk/p2p/base/stunport.h#L46
Exams and other commitments: Yes, semester exams are in May.
Other summer plans: No, just coding.
Why Debian?: Debian comes with over 43000 different pieces of software and every bit of it is free. I had a moment of epiphany which led to a realization that I should be investing more of my time in learning the practical aspects of my education and Debian is the correct place to start. I would like to contribute and want to be a part of this big organisation.
My previous Debian contributions: No
Are you applying for other projects in SoC? : No