WebRTC media server - c#

two days ago I started looking into WebRTC, looked at a view examples and tested it a bit myself, and it looks really interesting.
However my qustion is, what would be a good way of implementing a WebRTC "media server" in c#. The media server should be able to connect two clients, not peer to peer, but peer to server to peer. So I can for example record conversations on the server or have a group meeting.
Would it be possible to create a Windows service, which you can contact from a web application like ASP.Net?
I already had tons of tabs opened and found Microsofts WebRTC-UWP-SDK as well as their ORTC. Would they be able to work in a Windows service, or should I use the WebRTC native code? Maybe it is also possible to create a connection via a normal RTP connection?
All WebRTC media servers I found are either written in c, c++ or NodeJS.
So does anyone have an idea, what would be a good solution to implement a c# WebRTC media server, which can run on a windows server?
Thank you all for your help.

I know and have used one before. The media server is based on .Net and has a lot of features and supports many programming languages and platforms. It is the Frozen Mountain's Liveswitch server.
See https://www.frozenmountain.com/products-services/liveswitch/ for more

Related

Connecting C# application to iOS device via lightning cable

I haven't been able to find any resources regarding this, so I thought I'd ask here.
I have an iOS app that I am developing, as well as a C# desktop app. I'm currently able to connect the two by creating a Socket Server on the desktop app, and connecting from the iOS app. This works well, but I'd like to do this without requiring the devices being on the same network. Communicating via Usb (lightning port) seems like the logical choice, but I can't find any resources at all about how to do this. Are there any tools or best practices regarding this, or is this even possible?
Thanks!
Peertalk, an open source library allowing to pass TCP connections through the USB connection without being part of the MFI program. PeerTalk uses the iTunes usbmux system to relay TCP connections across the iOS USB connection.
I wasn't able to use Peertalk, since I'm using Xamarin for my project. However, I spent the last week researching and documenting what I learned, and I posted it as a blog post here
http://thecodewash.blogspot.com/2017/05/communicating-with-your-ios-app-over.html
Hopefully this helps others.

How to create WPF internet chat application

I want to create a simple chat application using C# and WPF that uses internet to connect between clients and server. I found a lot of tutorials for chat apps, but they all work over local network, I am confused and don't know to what technology to use to create my app. Could anybody point me in the right direction?
You really have a lot of directions you can go for this. The simplest is a simple plain sockets client-server star topography. This will work over both a public and private network, but you will encounter data theft as the data will be unencrypted.
For any internet application, you really should use the SslStream to secure your communications between the server and client. This allows you to specify TLS1.2 as your transport which will provide great security. You can consume that server stream from WPF via standard Sockets or from Windows Store Apps using StreamSockets. Mind you, you will need to learn a LOT about how SSL keys work and configuring the connections in code.

Basic P2P chat application on the .NET framework

I am attempting to make a chat application on the .NET framework that will be able to communicate over the internet and not just LAN. I would like it to be P2P as to not require a central server. I don't mind which protocol it uses (UDP, TCP, etc) so long as I can send messages to almost any given IP.
All I would like to know is how to send data to another IP I know of, nothing else. I've searched around but the code is too complicated for me. (For example I've looked at the source code for torrent clients).
Help will be appreciated a lot thanks.
P.S.: I've heard about a method called UDP hole-punching if that sparks any plugs.
There is a small issue with your plan.
The server-centric approach does not serve only as a slow middle man, but also as a central point with known address to connect to, an anchor in the sea to attach to and clients connect to the static IP/name of the server.
Usually, users do not care what is their IP address on the internet...
So at the minimum, the server is good to get list of clients.
Nowadays you can use some services from Microsoft or Google or other.
Now rest of the P2P communication of clients between NAT comes with more learning: TCP_hole_punching
I would suggest reading all that stuff then look for some code or library that does it.
Here is older topic similar to yours looking for the hole punching library: tcp hole punching library
I have answered similar kind of things here Peer-to-Peer application using java, let me know if it helps or if you have any specific question about this. Basically you need NAT traversal, so you would find many different ways to achieve this based on your need. Even you can achieve this simply configuring your router by enabling UPnP.

communication between two emulators through server pc as middle man

i want to built an application which is communication network between two emulator. i have already connect emulator with server.
Now i want to connect two emulators through server(C#) which is PC. like we sent sms through mobile networks.
I need guidance to start this.
I am not sure what your requirements are and how far you would go to implement best practices, however, here are some points to consider based on my experience on a similar application, just to make it clear we worked on a solution where many Android phones would connect to a server to send/receive data.
Web Service is the way to go, this is what web services are meant for, we created WCF based APIs for the applications connecting to the server.
You are working on a heterogeneous system Java on Android, C# on the Server, consider creating REST based APIs on the server for data transfer
Go through these to get a feel of what needs to be done onthe server...
http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide
http://msdn.microsoft.com/en-us/library/dd203052.aspx
And this for what needs to be done at Android side...
http://docs.xamarin.com/android/tutorials/consuming_web_services
hope that helps....

How to approach Android development in C# where the app will need internet access?

I will need to begin development on an Android applicaiton soon. This application will need to communicate with a server over the internet. I hope to be able to do my development in C# in one of the various development environments that appear to be available, e.g. Mono for Android.
My questions are:
What is the best framework for developing C# applications for Android?
What will give me the most flexibility for communicating over the Internet? (My boss tells me that existing c# --> Android frameworks have limitations regarding internet access)
What are the limitations that I can expect to face doing this with C#?
What are your experiences with taking this approach?
For communication over internet there might be many ways, depends on your needs.
It can be HTTP requests with some POST data, or proper low-level communication over Sockets.
If you need to communicate with web service that accepts POST requests and provides some data in XML (for example), then you might use HTTP request way.
If you have real-time server that servers Sockets communication, then you might want to use Sockets with some data protocol over it (based on which data protocol server accepts / serves).
There is full support for establishing Sockets communication using MonoDroid with. It is almost the same as with x86 .Net implementation on Windows.

Categories

Resources