конференция

igor_dudkin

New Member
У меня есть вопрос по поводу конференции основаной на Web Call Server (НЕ wowza server!).
Можно ли объединить несколько звонков в конференцию на стороне клиента? Я знаю что если какой-то звонок будет отвечен то клиент посылает команду hold на осталдьные текущие звонки, а мне нужно это предотвратить на стороне клиента flashphoner.
Единственное я сомневаюсь поддерживается ли несколько потоков от WCS сервера до браузера клиента. Я имею в виду поддерживает ли это сервер.
Возможно есть способ установить конференцию проще?
 

Max

Administrator
Staff member
Да, вы можете транслировать любое число потоков WebRTC с страницы и проигрывать их на этой же или другой странице. Таким образом можно сделать конференцию. Также вы можете создать конференцию с помощью моста конференций SIP. В этом случае нужно просто поместить звонок с WCS в конференц-комнату SIP-моста (номер конференции).
 

igor_dudkin

New Member
В данный момент мы пытаемся сделать конференцию с клиентской стороны на Flash. Два и больше одновременных звонков устанавливаются нормально. Проблема в микшировании аудио потоков во флэш-клиенте.
В чем суть:
Два звонка устанавливают четыре NetStreams:
Дву транслируемых звонка создаются в "/rtmfp/client/api/src/com/flashphoner/api/CallServerProxy.as" с помощью функции CallServerProxy.publish()

и
Два слушающих потока создаются в "/rtmfp/client/api/src/com/flashphoner/api/PhoneSpeaker.as" с помощью функции PhoneSpeaker.startNewIncomingStream()
Мы переписали эти функции и теперь сразу несколько потоков работают одновременно, здесь все ок.
Проблема появляется дальше.
Т.е. у нас есть звонок 1 и звонок 2, агенты flashphoner, и четыре потока

звонок1 -> flashphoner (поток in1)
звонок2 -> flashphoner (поток in2)
flashphoner -> звонок1 (поток out1)
flashphoner -> звонок2 (поток out2)
Для завершения конферецнии нам нужно:
взять входное аудио из in1, смикшировать его с микрофоном и послать на out2
И наоборот взять аудио из in2, смикшировать с микрофоном и послать на out1
К сожалению, проблема захвата аудио из netstream и микширование с микрофоном - это практически неразрешимые задачи.
Можете ли вы что-то посоветовать?

Может есть какое-то иное решение? (микшировать аудио на сервере flashphoner? какой-то прокси между сервером и клиентом?)
 

Max

Administrator
Staff member
Flash плеер не поддерживает микширование входящих аудиопотоков и не поддерживает изменение исходящего потока RTMFP.
Потоки можно микшировать с помощью звуковой карты, т.е. если вы хотите микшировать их так, как вы написали, то нужно выдать аудио на колонки и на микрофон. Правда, здесь может возникнуть эффект эхо. Нужно проверять.
Я уже писал ранее, что лучший способ сделать конференц-связь - использовать трансляцию WebRTC и воспроизводить потоки (без SIP), либо использовать конференц-сервер SIP (MCU) или другой софт, который позволяет микшировать аудио звонков и видео в рамках одной комнаты конференции. Управлять такой конференцией можно через API, при этом вы сможете задать любую логику приложения такой конферецнии.
Т.е. рабочая схема выглядит так: FlashphonerClient - FlashphonerServer - Asterisk(Confbridge)
 
Top