Это зависит от того, что вы хотите !!
Если вы хотите, чтобы это работало только ~ 85% случаев, вы можете использовать сервер STUN!Вот список некоторых бесплатных:
https://gist.github.com/zziuni/3741933
Но для 100% вам также необходимо внедрить сервер TURN (сервер ретрансляции), и это действительно дорого !!Поскольку весь ваш трафик будет проходить через ваш сервер и передаваться клиентам, вы можете увидеть https://www.twilio.com/stun-turn, чтобы увидеть, насколько это дорого, вы также можете развернуть свой собственный, лучшее для меня - https://code.google.com/p/rfc5766-turn-server/
Но это только вершина айсберга !!!!!!!!!
теперь вы знаете, как отправлять данные обмена между клиентами! НО чтобы вы использовали сервер сигнализации для создания сеанса связи, потому что, когда я хочу позвонить вам, вы должны получить уведомление о том, что я пытаюсь вам позвонить.
Тогда еслимы принимаем вызов, нам все еще нужно обменяться тем, как мы будем говорить!почему, потому что, может быть, я могу p2p, но вы не можете, поэтому мы должны использовать сервер ретрансляции.следующий шаг - сказать, что мы собираемся отправить, после всего этого мы начинаем нормально общаться ...
прочитайте о webrtc , чтобы получить лучшее представление о точке
надеюсь, это помогло