| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Продвижение и оптимизация сайтов > Архитектура голосового чата. |
| Автор: val 11.8.2005, 15:40 |
| Привет, всем! Сейчас занимаюсь разработкой многопользовательского голосового чата. Для инициализации сессий я использую протокол SIP, ну а голос, непосредственно, гоняется по RTP. В локальной сети все работает просто замечательно, но как только начал тестирование на просторах Интернета, возникли проблемы. Итак, все по порядку. Инициализация сессий идет по протоколу TCP/IP через 80-порт. С этим проблем нет, ну а потом начинается RTP-стриминг через UDP-порты. Но вот загвоздка в том, что практически все файерволы эти самые UDP порты держат закрытыми и никакого стриминга не пропускают. Вот и загибается моя программка. Просить открывать порты это не выход и не решение. Короче не знаю, что и делать, но очень бы хотелось иметь нормальный UDP-стриминг. Есть такая программка Skype. Так вот, её авторы как-то умудрились организовать такой стриминг, при этом точно могу сказать, что сессии устанавливается через 80-порт, а как звук идет - не понятно. Кто знает, подскажите, пожалуйста? |
| Автор: Retro 12.8.2005, 16:03 | ||
Не понял вопроса, мой файервол в любом случае заблокирует любое соединение (входящее или исходящее) если я не дам разрешения на выполнение, как тот же Skype который при первом запуске был блокирован и только после моего разрешения соединился с сервером, соответственно он может использовать любые порты т.к. я поставил в файерволе - "Доверять приложению". Только что глянул специально |
| Автор: DENNN 15.8.2005, 09:59 |
| Думаю проблема в том, что один из хостов находится за NAT'ом. попробуй сначала иницировать UDP соединение на клиенте, а сервер уже будет отвечать на тот адрес и порт, что открылсяу клиента. Может плохо объяснил, но думаю суть понятна. |
| Автор: val 15.8.2005, 17:14 |
| Всем спасибо, разобрался. Надо просто самому открывать сокеты, а не слушать порты. Вот и всё. Retro, файервол твоего провайдера скорее всего тоже блокирует порты на входящие соединения, а надо создавать исходящие, тогда будет всё ок. :-). |