Voice-Video Call Wpf Application based on P2PNetwork. Allows users to have Videocall, Chat and Filetransfer securely over local network or Internet.
Tested and established stable calls between 1.204,5 km distance clients
Release available https://github.com/ReferenceType/P2PVideocall/releases/
- Secure Videocall among connected peers
- H264 Encoding
- Secure Persisitent Chat
- Secure File-Directory Transfer with hash file integrity verification(TCP and UDP)
- High Performance Secure Screen Share based on DirectX 11 API (up to 60 fps @1080p single core).
- Secure Tcp & Udp Hole punching
- Reliable Udp channels and Jumbo Udp Message support
- Congestion Avoidance and Control
- Dynamic Jitter Buffer for Audio and Video
- Toast notifications
- Statistics data and cool settings for nerds
Application has powerfull and optimised backend which is a hobby for me. However, Front end is incomplete,and its quite boring to develop. Slowly, i intend to complete it.
Application runs on background when closed with X button, to shut it down fully you have to shutdown from hidden icons on your taskbar (like skype)
Each application is a Peer client to a Relay Server. This server is used as a randezvous point for Udp Holepunching. If holepunch is sucessfull, all Tcp & Udp traffic is send directly among peers.Otherwise it will be relayed over the server. Tcp holepunch succes rate is lower than udp. All reliable communication is through Reliable Udp channel by default. Relay server is included on releases and can be found on repository: https://github.com/ReferenceType/RelayServer
The back-end network core libraries are located on : https://github.com/ReferenceType/StandardNetworkLibrary
Launch the Relay Server console application. Launch the Videocall Application and write your Relay Servers Ip and Port and hit comnnect. If any other application connects to same relay server it will apper on your list on main window. You can select and call that peer or transfer files or chat.
If you intend to use this application over Internet, You need to enable port forwarding on your router for your relay server. If you dont wanna bother with your ISPs dynamic IPs, you can use a DDNS service like NoIP. or you can deploy relay server on a cloud etc.
- Call can be initiated by selecting a peer from left menu anc clicking call button. Other end will receive notification for confirmation.
- You can share a screen during a call.
- Provided varoious settings and displays for visualising.
- When application is on background, a mini camera window will appear. It is resizeable and it automaticaally disappears when main app is active.
- You can Drag and drop a single file or full directory tree of folders, and application will send them through secure channel.
- xxHash hashing is also applied here where receiver verifies the file integrity.
- Both TCP and UDP is supported for transport.
- Various windows toast notifications are implemented to notify user. They are similar to skype