You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openmeetings.apache.org by "seba.wagner@gmail.com" <se...@gmail.com> on 2016/07/03 03:13:17 UTC
Resolving GSoC project dependencies
Hi Dima,
I tried to build https://github.com/Dima00782/signalling_server but it does
not resolve all the dependencies.
For example:
<artifactId>red5-server</artifactId>
<red5-server.version>1.0.8-SNAPSHOT</red5-server.version>
I can't resolve SNAPSHOT dependencies.
I changed it to
<red5-server.version>1.0.8-M4</red5-server.version>
Which seems to do the trick.
I tried the demo. Could you shed some light on what's the desired outcome
at the moment?
You wrote "Then you can call from one tab to another. Just enter the others
user name and push the call button."
=> I did that. If I open the debugger I can see that some messages are
arriving in the other browser tab when I enter the correct username:
Got message {"offer":{"type":"offer","sdp":"v=0\r\no=mozilla...THIS_IS_SDPARTA-44.0.2
4728311081100557941 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0
0\r\na=fingerprint:sha-256
D2:CF:A3:26:8E:28:0A:7C:C4:72:08:FD:E1:F8:27:79:F3:F1:2B:0F:F5:A3:5A:57:C7:45:AF:94:C0:82:96:3D\r\na=ice-options:trickle\r\na=msid-semantic:WMS
*\r\nm=video 9 UDP/TLS/RTP/SAVPF 120 126 97\r\nc=IN IP4
0.0.0.0\r\na=sendrecv\r\na=fmtp:126
profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1\r\na=fmtp:97
profile-level-id=42e01f;level-asymmetry-allowed=1\r\na=fmtp:120
max-fs=12288;max-fr=60\r\na=ice-pwd:c3136322072d95de998efcf78d88e6eb\r\na=ice-ufrag:3f376b29\r\na=mid:sdparta_0\r\na=msid:{6a4b2df3-e081-904e-835d-6fbfcd8c1e9c}
{72b0f3b9-c104-9545-ad1e-84f84b99b9e3}\r\na=rtcp-fb:120
nack\r\na=rtcp-fb:120 nack pli\r\na=rtcp-fb:120 ccm fir\r\na=rtcp-fb:126
nack\r\na=rtcp-fb:126 nack pli\r\na=rtcp-fb:126 ccm fir\r\na=rtcp-fb:97
nack\r\na=rtcp-fb:97 nack pli\r\na=rtcp-fb:97 ccm
fir\r\na=rtcp-mux\r\na=rtpmap:120 VP8/90000\r\na=rtpmap:126
H264/90000\r\na=rtpmap:97
H264/90000\r\na=setup:actpass\r\na=ssrc:1312441535
cname:{d80daaf2-4d39-a946-94e2-7de42f720804}\r\n"},"name":"Tine","type":"offer"}
Is that a success? And that is what we try to proof at the moment? So now
you need to get the next part working around streaming the audio/video from
a to b ?
One thing I have seen: As soon as I enter a wrong username and then correct
it to the right one again it returns "An error has occurred" when you hit
the call button.
You wrote "only Firefox works". I could actually get Chrome running.
Apparently Chrome requires camel case in the configuration. If you fix the
client.js to the following configuration Chrome seems to work:
var configuration = {
"ice*S*ervers" : [{ "url" : "stun:stun.1.google.com:19302" }]
};
Using this code I could also signal from Chrome to Firefox. I think Firefox
does not care if lower or camel case.
One question regarding your next step of development. You are now creating
the Red5 streaming part right? Is that the Turn server functionality that
you're adding ?
In which IDE are you developing that code ? How is that going ?
Thanks,
Sebastian
--
Sebastian Wagner
https://twitter.com/#!/dead_lock
seba.wagner@gmail.com
Re: Resolving GSoC project dependencies
Posted by Dmitriy - <di...@gmail.com>.
I'm stuck with custom protocol of signalling in native webrtc package, but
I think how to solve this issue.
You can find it here - https://chromium.googlesource.com/external/webrtc,
this a part of the chromium big project.
I download it and build. After that I investigate to
webrtc/examples/peerconnection/ client and server. I build it too.
As I understand the peerrconnection clients use
webrtc/examples/peerconnection/server and dont't provide API as in JS, like
a onIceCandidate or OnAnser/OnOffer, but the native package provides this
API -
https://chromium.googlesource.com/external/webrtc/+/master/webrtc/examples/peerconnection/client/peer_connection_client.h.
Now I'm think how it corresponds with JS RTCPeerConnection API.
On Tue, Jul 5, 2016 at 4:01 AM, seba.wagner@gmail.com <seba.wagner@gmail.com
> wrote:
> Hi Dima,
>
> let's discuss the library considerations later. The link you provided,
> that seems ok for now.
>
> "I'm trying to implement save stream functionality from browser in native
> app (red5 server), but it's hard task, I'm a little bit stuck with it."
> => Where exactly do you get stuck? Can you explain where you're at, your
> code example and the question that you struggles with ?
>
> Thanks,
> Sebastian
>
>
> 2016-07-05 6:15 GMT+12:00 Dmitriy - <di...@gmail.com>:
>
>> Hello Sebastian.
>> I'm very glad to see that you can force this demo works, thanks.
>>
>> I've used *addStream *callback API for handling streams in the previous
>> version, but it's deprecated (
>> https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/addStream).
>> But the chrome browser support it.
>>
>> So now what's your idea around this prototype ? Convert it directly to
>>> Wicket or improving the demo prototype ?
>>>
>> I want to implement rooms like in skype. It must be pretty simple and
>> doesn't have many time.
>>
>> Also I tried to implement it via wicket-stuff library. The wicket-stuff
>> has a some webRTC supports - (
>> https://github.com/wicketstuff/core/wiki/Html5), but they are using
>> custom nodejs server for signalling and use very high dummy level library
>> simpleWebRTC. The wicket-stuff library doesn't provide any API for
>> RTCPeerConnection and other webRTC api. I try to communicate with
>> simpleWebRTC community via gitter, but they look dead.
>>
>> Also it would be great to have a cross browser solution for webRTC in OM.
>> I'm suggesting to use that https://github.com/otalk/RTCPeerConnection
>> library, because the wicket-stuff already use a part of this stuff as a
>> part of simpleWebRTC library.
>>
>> I'm trying to implement save stream functionality from browser in native
>> app (red5 server), but it's hard task, I'm a little bit stuck with it.
>>
>> On Mon, Jul 4, 2016 at 3:47 AM, seba.wagner@gmail.com <
>> seba.wagner@gmail.com> wrote:
>>
>>> Hi Dima,
>>>
>>> thanks for your reply(s). "The application is a chat with video and
>>> audio. If you call to another logged user *you must see the video from
>>> him and he must see video from you in the browser."*
>>>
>>> That just didn't work for me. I was testing with OSx + Firefox and OSx +
>>> Mac. I can see my own video but there should be two videos next to each
>>> other or not ?
>>>
>>> I can see the remote video will be assigned using
>>>
>>> yourConnection.ontrack = function (e) {
>>>
>>> console.log("onTrack e.streams[0]: ", e.streams[0]);
>>>
>>> theirVideo.src = window.URL.createObjectURL(e.streams[0]);
>>> };
>>>
>>> I put that console.log in there. I can never see this log ever been
>>> written.
>>>
>>> Apparently the "onTrack" method is not supported in Chrome:
>>>
>>> https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/ontrack#Browser_compatibility
>>>
>>> Only Firefox. And with the note of "Introduced in Firefox 45 as
>>> onaddtrack; renamed to ontrack in Firefox 46"
>>>
>>> => Okok :) I had Firefox v44, I upgraded to latest and it worked now.
>>> Great!
>>>
>>> So now what's your idea around this prototype ? Convert it directly to
>>> Wicket or improving the demo prototype ?
>>>
>>> We would need some quick prototype to verify the APIs we are using are
>>> working.
>>>
>>> *@Maxim: What do you think?*
>>>
>>> Thanks,
>>> Sebastian
>>>
>>>
>>> 2016-07-03 23:27 GMT+12:00 Dmitriy - <di...@gmail.com>:
>>>
>>>> Hello Sebastian, great thanks for the feedback!
>>>>
>>>> Step by step:
>>>> 1.
>>>>
>>>>> Could you shed some light on what's the desired outcome at the moment?
>>>>>
>>>> The application is a chat with video and audio. If you call to another
>>>> logged user *you must see the video from him and he must see video
>>>> from you in the browser.*
>>>>
>>>> How is it work:
>>>> You browser supply offer messages with serialized icecandidate from
>>>> RTCPeerConnection API and send it to the signal server. The signal server
>>>> resend that messages to the other user. Other user receive the messages and
>>>> setup own RTCPeerConnection and send its messages. After this you browser
>>>> can attach stream (onTrack function in API) to the RTCPeerConnection and
>>>> automatically send you video/audio via RTP to other browser directly.
>>>>
>>>> 2.
>>>>
>>>>> Is that a success? And that is what we try to proof at the moment?
>>>>>
>>>> Success is a video and audio from one browser's tab to another.
>>>> I try to test the signal server, we proof it.
>>>>
>>>> 3.
>>>>
>>>>> You wrote "only Firefox works". I could actually get Chrome running.
>>>>> Apparently Chrome requires camel case in the configuration.
>>>>
>>>> Unfortunately supporting different browsers doesn't so simple. The
>>>> webRTC API in other browser are different. Different browsers version also
>>>> introduce different webRTC API. For example you can see that the IE has not
>>>> official support (https://webrtc.org/). You can see browser specific
>>>> prefixes in my js code - "moz" and "webkit". I test it in firefox on my
>>>> laptop and on my work under ubuntu OS.
>>>>
>>>> Of course we must provide crossbrowser and crossplatform solution but
>>>> it's a test for the signal server not for the client. Anyway I'll improve
>>>> this demo app. I suggest to use some crossbrowser library, like this -
>>>> https://github.com/otalk/rtcpeerconnection. The wicket stuff is also
>>>> using this set of library.
>>>>
>>>> 4.
>>>>
>>>>> One question regarding your next step of development. You are now
>>>>> creating the Red5 streaming part right?
>>>>>
>>>> Yes, I try to write some app that can receive video and audio streams
>>>> from the browser and save it on hard disk. This isn't a simple task,
>>>> because library that can handle/receive RTCPeerConnection from browser and
>>>> than receive RTP stream doesn't exist for any language in open source code
>>>> and appropriate licence. Only one this implementation exist for C++, but
>>>> it's a little bit abandoned.
>>>>
>>>> 5.
>>>>
>>>>> Is that the Turn server functionality that you're adding?
>>>>
>>>> No, the vendors of the browsers manage ICE servers. ICE server = STUN +
>>>> TURN + the ice protocol.
>>>> Also as I understand OM is positioned as independent software that we
>>>> can use any of open source ICE server that written for java. For example
>>>> from libjitsu library. The ICE server is a parameter to webRTC app. I'm
>>>> using the public google ice server - stun:stun.l.google.com:19302.
>>>>
>>>> 6.
>>>>
>>>>> I changed it to
>>>>> <red5-server.version>1.0.8-M4</red5-server.version>
>>>>>
>>>>> Which seems to do the trick.
>>>>>
>>>>
>>>> When I developed the signal server the 1.0.8-SNAPSHOT version of red5
>>>> was actual. I think we can change it to 1.0.7 that don't use any prefixes
>>>> as -M4.
>>>>
>>>> 7.
>>>>
>>>>> In which IDE are you developing that code ? How is that going ?
>>>>>
>>>>
>>>> I'm using the Eclipse IDE for the java and sublime text 3 for the
>>>> JavaScript.
>>>>
>>>> On Sun, Jul 3, 2016 at 9:13 AM, seba.wagner@gmail.com <
>>>> seba.wagner@gmail.com> wrote:
>>>>
>>>>> Hi Dima,
>>>>>
>>>>> I tried to build https://github.com/Dima00782/signalling_server but
>>>>> it does not resolve all the dependencies.
>>>>>
>>>>> For example:
>>>>> <artifactId>red5-server</artifactId>
>>>>> <red5-server.version>1.0.8-SNAPSHOT</red5-server.version>
>>>>>
>>>>> I can't resolve SNAPSHOT dependencies.
>>>>>
>>>>> I changed it to
>>>>> <red5-server.version>1.0.8-M4</red5-server.version>
>>>>>
>>>>> Which seems to do the trick.
>>>>>
>>>>> I tried the demo. Could you shed some light on what's the desired
>>>>> outcome at the moment?
>>>>> You wrote "Then you can call from one tab to another. Just enter the
>>>>> others user name and push the call button."
>>>>> => I did that. If I open the debugger I can see that some messages are
>>>>> arriving in the other browser tab when I enter the correct username:
>>>>> Got message {"offer":{"type":"offer","sdp":"v=0\r\no=mozilla...THIS_IS_SDPARTA-44.0.2
>>>>> 4728311081100557941 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0
>>>>> 0\r\na=fingerprint:sha-256
>>>>> D2:CF:A3:26:8E:28:0A:7C:C4:72:08:FD:E1:F8:27:79:F3:F1:2B:0F:F5:A3:5A:57:C7:45:AF:94:C0:82:96:3D\r\na=ice-options:trickle\r\na=msid-semantic:WMS
>>>>> *\r\nm=video 9 UDP/TLS/RTP/SAVPF 120 126 97\r\nc=IN IP4
>>>>> 0.0.0.0\r\na=sendrecv\r\na=fmtp:126
>>>>> profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1\r\na=fmtp:97
>>>>> profile-level-id=42e01f;level-asymmetry-allowed=1\r\na=fmtp:120
>>>>> max-fs=12288;max-fr=60\r\na=ice-pwd:c3136322072d95de998efcf78d88e6eb\r\na=ice-ufrag:3f376b29\r\na=mid:sdparta_0\r\na=msid:{6a4b2df3-e081-904e-835d-6fbfcd8c1e9c}
>>>>> {72b0f3b9-c104-9545-ad1e-84f84b99b9e3}\r\na=rtcp-fb:120
>>>>> nack\r\na=rtcp-fb:120 nack pli\r\na=rtcp-fb:120 ccm fir\r\na=rtcp-fb:126
>>>>> nack\r\na=rtcp-fb:126 nack pli\r\na=rtcp-fb:126 ccm fir\r\na=rtcp-fb:97
>>>>> nack\r\na=rtcp-fb:97 nack pli\r\na=rtcp-fb:97 ccm
>>>>> fir\r\na=rtcp-mux\r\na=rtpmap:120 VP8/90000\r\na=rtpmap:126
>>>>> H264/90000\r\na=rtpmap:97
>>>>> H264/90000\r\na=setup:actpass\r\na=ssrc:1312441535
>>>>> cname:{d80daaf2-4d39-a946-94e2-7de42f720804}\r\n"},"name":"Tine","type":"offer"}
>>>>>
>>>>>
>>>>> Is that a success? And that is what we try to proof at the moment? So
>>>>> now you need to get the next part working around streaming the audio/video
>>>>> from a to b ?
>>>>>
>>>>> One thing I have seen: As soon as I enter a wrong username and then
>>>>> correct it to the right one again it returns "An error has occurred" when
>>>>> you hit the call button.
>>>>>
>>>>> You wrote "only Firefox works". I could actually get Chrome running.
>>>>> Apparently Chrome requires camel case in the configuration. If you fix the
>>>>> client.js to the following configuration Chrome seems to work:
>>>>>
>>>>> var configuration = {
>>>>> "ice*S*ervers" : [{ "url" : "stun:stun.1.google.com:19302" }]
>>>>> };
>>>>>
>>>>> Using this code I could also signal from Chrome to Firefox. I think
>>>>> Firefox does not care if lower or camel case.
>>>>>
>>>>>
>>>>> One question regarding your next step of development. You are now
>>>>> creating the Red5 streaming part right? Is that the Turn server
>>>>> functionality that you're adding ?
>>>>>
>>>>> In which IDE are you developing that code ? How is that going ?
>>>>>
>>>>> Thanks,
>>>>> Sebastian
>>>>>
>>>>> --
>>>>> Sebastian Wagner
>>>>> https://twitter.com/#!/dead_lock
>>>>> seba.wagner@gmail.com
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Regards,
>>>> Dmitry Bezheckov.
>>>>
>>>
>>>
>>>
>>> --
>>> Sebastian Wagner
>>> https://twitter.com/#!/dead_lock
>>> seba.wagner@gmail.com
>>>
>>
>>
>>
>> --
>> Regards,
>> Dmitry Bezheckov.
>>
>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> seba.wagner@gmail.com
>
--
Regards,
Dmitry Bezheckov.
Re: Resolving GSoC project dependencies
Posted by "seba.wagner@gmail.com" <se...@gmail.com>.
Hi Dima,
let's discuss the library considerations later. The link you provided, that
seems ok for now.
"I'm trying to implement save stream functionality from browser in native
app (red5 server), but it's hard task, I'm a little bit stuck with it."
=> Where exactly do you get stuck? Can you explain where you're at, your
code example and the question that you struggles with ?
Thanks,
Sebastian
2016-07-05 6:15 GMT+12:00 Dmitriy - <di...@gmail.com>:
> Hello Sebastian.
> I'm very glad to see that you can force this demo works, thanks.
>
> I've used *addStream *callback API for handling streams in the previous
> version, but it's deprecated (
> https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/addStream).
> But the chrome browser support it.
>
> So now what's your idea around this prototype ? Convert it directly to
>> Wicket or improving the demo prototype ?
>>
> I want to implement rooms like in skype. It must be pretty simple and
> doesn't have many time.
>
> Also I tried to implement it via wicket-stuff library. The wicket-stuff
> has a some webRTC supports - (
> https://github.com/wicketstuff/core/wiki/Html5), but they are using
> custom nodejs server for signalling and use very high dummy level library
> simpleWebRTC. The wicket-stuff library doesn't provide any API for
> RTCPeerConnection and other webRTC api. I try to communicate with
> simpleWebRTC community via gitter, but they look dead.
>
> Also it would be great to have a cross browser solution for webRTC in OM.
> I'm suggesting to use that https://github.com/otalk/RTCPeerConnection
> library, because the wicket-stuff already use a part of this stuff as a
> part of simpleWebRTC library.
>
> I'm trying to implement save stream functionality from browser in native
> app (red5 server), but it's hard task, I'm a little bit stuck with it.
>
> On Mon, Jul 4, 2016 at 3:47 AM, seba.wagner@gmail.com <
> seba.wagner@gmail.com> wrote:
>
>> Hi Dima,
>>
>> thanks for your reply(s). "The application is a chat with video and
>> audio. If you call to another logged user *you must see the video from
>> him and he must see video from you in the browser."*
>>
>> That just didn't work for me. I was testing with OSx + Firefox and OSx +
>> Mac. I can see my own video but there should be two videos next to each
>> other or not ?
>>
>> I can see the remote video will be assigned using
>>
>> yourConnection.ontrack = function (e) {
>>
>> console.log("onTrack e.streams[0]: ", e.streams[0]);
>>
>> theirVideo.src = window.URL.createObjectURL(e.streams[0]);
>> };
>>
>> I put that console.log in there. I can never see this log ever been
>> written.
>>
>> Apparently the "onTrack" method is not supported in Chrome:
>>
>> https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/ontrack#Browser_compatibility
>>
>> Only Firefox. And with the note of "Introduced in Firefox 45 as
>> onaddtrack; renamed to ontrack in Firefox 46"
>>
>> => Okok :) I had Firefox v44, I upgraded to latest and it worked now.
>> Great!
>>
>> So now what's your idea around this prototype ? Convert it directly to
>> Wicket or improving the demo prototype ?
>>
>> We would need some quick prototype to verify the APIs we are using are
>> working.
>>
>> *@Maxim: What do you think?*
>>
>> Thanks,
>> Sebastian
>>
>>
>> 2016-07-03 23:27 GMT+12:00 Dmitriy - <di...@gmail.com>:
>>
>>> Hello Sebastian, great thanks for the feedback!
>>>
>>> Step by step:
>>> 1.
>>>
>>>> Could you shed some light on what's the desired outcome at the moment?
>>>>
>>> The application is a chat with video and audio. If you call to another
>>> logged user *you must see the video from him and he must see video from
>>> you in the browser.*
>>>
>>> How is it work:
>>> You browser supply offer messages with serialized icecandidate from
>>> RTCPeerConnection API and send it to the signal server. The signal server
>>> resend that messages to the other user. Other user receive the messages and
>>> setup own RTCPeerConnection and send its messages. After this you browser
>>> can attach stream (onTrack function in API) to the RTCPeerConnection and
>>> automatically send you video/audio via RTP to other browser directly.
>>>
>>> 2.
>>>
>>>> Is that a success? And that is what we try to proof at the moment?
>>>>
>>> Success is a video and audio from one browser's tab to another.
>>> I try to test the signal server, we proof it.
>>>
>>> 3.
>>>
>>>> You wrote "only Firefox works". I could actually get Chrome running.
>>>> Apparently Chrome requires camel case in the configuration.
>>>
>>> Unfortunately supporting different browsers doesn't so simple. The
>>> webRTC API in other browser are different. Different browsers version also
>>> introduce different webRTC API. For example you can see that the IE has not
>>> official support (https://webrtc.org/). You can see browser specific
>>> prefixes in my js code - "moz" and "webkit". I test it in firefox on my
>>> laptop and on my work under ubuntu OS.
>>>
>>> Of course we must provide crossbrowser and crossplatform solution but
>>> it's a test for the signal server not for the client. Anyway I'll improve
>>> this demo app. I suggest to use some crossbrowser library, like this -
>>> https://github.com/otalk/rtcpeerconnection. The wicket stuff is also
>>> using this set of library.
>>>
>>> 4.
>>>
>>>> One question regarding your next step of development. You are now
>>>> creating the Red5 streaming part right?
>>>>
>>> Yes, I try to write some app that can receive video and audio streams
>>> from the browser and save it on hard disk. This isn't a simple task,
>>> because library that can handle/receive RTCPeerConnection from browser and
>>> than receive RTP stream doesn't exist for any language in open source code
>>> and appropriate licence. Only one this implementation exist for C++, but
>>> it's a little bit abandoned.
>>>
>>> 5.
>>>
>>>> Is that the Turn server functionality that you're adding?
>>>
>>> No, the vendors of the browsers manage ICE servers. ICE server = STUN +
>>> TURN + the ice protocol.
>>> Also as I understand OM is positioned as independent software that we
>>> can use any of open source ICE server that written for java. For example
>>> from libjitsu library. The ICE server is a parameter to webRTC app. I'm
>>> using the public google ice server - stun:stun.l.google.com:19302.
>>>
>>> 6.
>>>
>>>> I changed it to
>>>> <red5-server.version>1.0.8-M4</red5-server.version>
>>>>
>>>> Which seems to do the trick.
>>>>
>>>
>>> When I developed the signal server the 1.0.8-SNAPSHOT version of red5
>>> was actual. I think we can change it to 1.0.7 that don't use any prefixes
>>> as -M4.
>>>
>>> 7.
>>>
>>>> In which IDE are you developing that code ? How is that going ?
>>>>
>>>
>>> I'm using the Eclipse IDE for the java and sublime text 3 for the
>>> JavaScript.
>>>
>>> On Sun, Jul 3, 2016 at 9:13 AM, seba.wagner@gmail.com <
>>> seba.wagner@gmail.com> wrote:
>>>
>>>> Hi Dima,
>>>>
>>>> I tried to build https://github.com/Dima00782/signalling_server but it
>>>> does not resolve all the dependencies.
>>>>
>>>> For example:
>>>> <artifactId>red5-server</artifactId>
>>>> <red5-server.version>1.0.8-SNAPSHOT</red5-server.version>
>>>>
>>>> I can't resolve SNAPSHOT dependencies.
>>>>
>>>> I changed it to
>>>> <red5-server.version>1.0.8-M4</red5-server.version>
>>>>
>>>> Which seems to do the trick.
>>>>
>>>> I tried the demo. Could you shed some light on what's the desired
>>>> outcome at the moment?
>>>> You wrote "Then you can call from one tab to another. Just enter the
>>>> others user name and push the call button."
>>>> => I did that. If I open the debugger I can see that some messages are
>>>> arriving in the other browser tab when I enter the correct username:
>>>> Got message {"offer":{"type":"offer","sdp":"v=0\r\no=mozilla...THIS_IS_SDPARTA-44.0.2
>>>> 4728311081100557941 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0
>>>> 0\r\na=fingerprint:sha-256
>>>> D2:CF:A3:26:8E:28:0A:7C:C4:72:08:FD:E1:F8:27:79:F3:F1:2B:0F:F5:A3:5A:57:C7:45:AF:94:C0:82:96:3D\r\na=ice-options:trickle\r\na=msid-semantic:WMS
>>>> *\r\nm=video 9 UDP/TLS/RTP/SAVPF 120 126 97\r\nc=IN IP4
>>>> 0.0.0.0\r\na=sendrecv\r\na=fmtp:126
>>>> profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1\r\na=fmtp:97
>>>> profile-level-id=42e01f;level-asymmetry-allowed=1\r\na=fmtp:120
>>>> max-fs=12288;max-fr=60\r\na=ice-pwd:c3136322072d95de998efcf78d88e6eb\r\na=ice-ufrag:3f376b29\r\na=mid:sdparta_0\r\na=msid:{6a4b2df3-e081-904e-835d-6fbfcd8c1e9c}
>>>> {72b0f3b9-c104-9545-ad1e-84f84b99b9e3}\r\na=rtcp-fb:120
>>>> nack\r\na=rtcp-fb:120 nack pli\r\na=rtcp-fb:120 ccm fir\r\na=rtcp-fb:126
>>>> nack\r\na=rtcp-fb:126 nack pli\r\na=rtcp-fb:126 ccm fir\r\na=rtcp-fb:97
>>>> nack\r\na=rtcp-fb:97 nack pli\r\na=rtcp-fb:97 ccm
>>>> fir\r\na=rtcp-mux\r\na=rtpmap:120 VP8/90000\r\na=rtpmap:126
>>>> H264/90000\r\na=rtpmap:97
>>>> H264/90000\r\na=setup:actpass\r\na=ssrc:1312441535
>>>> cname:{d80daaf2-4d39-a946-94e2-7de42f720804}\r\n"},"name":"Tine","type":"offer"}
>>>>
>>>>
>>>> Is that a success? And that is what we try to proof at the moment? So
>>>> now you need to get the next part working around streaming the audio/video
>>>> from a to b ?
>>>>
>>>> One thing I have seen: As soon as I enter a wrong username and then
>>>> correct it to the right one again it returns "An error has occurred" when
>>>> you hit the call button.
>>>>
>>>> You wrote "only Firefox works". I could actually get Chrome running.
>>>> Apparently Chrome requires camel case in the configuration. If you fix the
>>>> client.js to the following configuration Chrome seems to work:
>>>>
>>>> var configuration = {
>>>> "ice*S*ervers" : [{ "url" : "stun:stun.1.google.com:19302" }]
>>>> };
>>>>
>>>> Using this code I could also signal from Chrome to Firefox. I think
>>>> Firefox does not care if lower or camel case.
>>>>
>>>>
>>>> One question regarding your next step of development. You are now
>>>> creating the Red5 streaming part right? Is that the Turn server
>>>> functionality that you're adding ?
>>>>
>>>> In which IDE are you developing that code ? How is that going ?
>>>>
>>>> Thanks,
>>>> Sebastian
>>>>
>>>> --
>>>> Sebastian Wagner
>>>> https://twitter.com/#!/dead_lock
>>>> seba.wagner@gmail.com
>>>>
>>>
>>>
>>>
>>> --
>>> Regards,
>>> Dmitry Bezheckov.
>>>
>>
>>
>>
>> --
>> Sebastian Wagner
>> https://twitter.com/#!/dead_lock
>> seba.wagner@gmail.com
>>
>
>
>
> --
> Regards,
> Dmitry Bezheckov.
>
--
Sebastian Wagner
https://twitter.com/#!/dead_lock
seba.wagner@gmail.com
Re: Resolving GSoC project dependencies
Posted by Dmitriy - <di...@gmail.com>.
Hello Sebastian.
I'm very glad to see that you can force this demo works, thanks.
I've used *addStream *callback API for handling streams in the previous
version, but it's deprecated (
https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/addStream).
But the chrome browser support it.
So now what's your idea around this prototype ? Convert it directly to
> Wicket or improving the demo prototype ?
>
I want to implement rooms like in skype. It must be pretty simple and
doesn't have many time.
Also I tried to implement it via wicket-stuff library. The wicket-stuff has
a some webRTC supports - (https://github.com/wicketstuff/core/wiki/Html5),
but they are using custom nodejs server for signalling and use very high
dummy level library simpleWebRTC. The wicket-stuff library doesn't provide
any API for RTCPeerConnection and other webRTC api. I try to communicate
with simpleWebRTC community via gitter, but they look dead.
Also it would be great to have a cross browser solution for webRTC in OM.
I'm suggesting to use that https://github.com/otalk/RTCPeerConnection
library, because the wicket-stuff already use a part of this stuff as a
part of simpleWebRTC library.
I'm trying to implement save stream functionality from browser in native
app (red5 server), but it's hard task, I'm a little bit stuck with it.
On Mon, Jul 4, 2016 at 3:47 AM, seba.wagner@gmail.com <seba.wagner@gmail.com
> wrote:
> Hi Dima,
>
> thanks for your reply(s). "The application is a chat with video and
> audio. If you call to another logged user *you must see the video from
> him and he must see video from you in the browser."*
>
> That just didn't work for me. I was testing with OSx + Firefox and OSx +
> Mac. I can see my own video but there should be two videos next to each
> other or not ?
>
> I can see the remote video will be assigned using
>
> yourConnection.ontrack = function (e) {
>
> console.log("onTrack e.streams[0]: ", e.streams[0]);
>
> theirVideo.src = window.URL.createObjectURL(e.streams[0]);
> };
>
> I put that console.log in there. I can never see this log ever been
> written.
>
> Apparently the "onTrack" method is not supported in Chrome:
>
> https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/ontrack#Browser_compatibility
>
> Only Firefox. And with the note of "Introduced in Firefox 45 as onaddtrack;
> renamed to ontrack in Firefox 46"
>
> => Okok :) I had Firefox v44, I upgraded to latest and it worked now.
> Great!
>
> So now what's your idea around this prototype ? Convert it directly to
> Wicket or improving the demo prototype ?
>
> We would need some quick prototype to verify the APIs we are using are
> working.
>
> *@Maxim: What do you think?*
>
> Thanks,
> Sebastian
>
>
> 2016-07-03 23:27 GMT+12:00 Dmitriy - <di...@gmail.com>:
>
>> Hello Sebastian, great thanks for the feedback!
>>
>> Step by step:
>> 1.
>>
>>> Could you shed some light on what's the desired outcome at the moment?
>>>
>> The application is a chat with video and audio. If you call to another
>> logged user *you must see the video from him and he must see video from
>> you in the browser.*
>>
>> How is it work:
>> You browser supply offer messages with serialized icecandidate from
>> RTCPeerConnection API and send it to the signal server. The signal server
>> resend that messages to the other user. Other user receive the messages and
>> setup own RTCPeerConnection and send its messages. After this you browser
>> can attach stream (onTrack function in API) to the RTCPeerConnection and
>> automatically send you video/audio via RTP to other browser directly.
>>
>> 2.
>>
>>> Is that a success? And that is what we try to proof at the moment?
>>>
>> Success is a video and audio from one browser's tab to another.
>> I try to test the signal server, we proof it.
>>
>> 3.
>>
>>> You wrote "only Firefox works". I could actually get Chrome running.
>>> Apparently Chrome requires camel case in the configuration.
>>
>> Unfortunately supporting different browsers doesn't so simple. The
>> webRTC API in other browser are different. Different browsers version also
>> introduce different webRTC API. For example you can see that the IE has not
>> official support (https://webrtc.org/). You can see browser specific
>> prefixes in my js code - "moz" and "webkit". I test it in firefox on my
>> laptop and on my work under ubuntu OS.
>>
>> Of course we must provide crossbrowser and crossplatform solution but
>> it's a test for the signal server not for the client. Anyway I'll improve
>> this demo app. I suggest to use some crossbrowser library, like this -
>> https://github.com/otalk/rtcpeerconnection. The wicket stuff is also
>> using this set of library.
>>
>> 4.
>>
>>> One question regarding your next step of development. You are now
>>> creating the Red5 streaming part right?
>>>
>> Yes, I try to write some app that can receive video and audio streams
>> from the browser and save it on hard disk. This isn't a simple task,
>> because library that can handle/receive RTCPeerConnection from browser and
>> than receive RTP stream doesn't exist for any language in open source code
>> and appropriate licence. Only one this implementation exist for C++, but
>> it's a little bit abandoned.
>>
>> 5.
>>
>>> Is that the Turn server functionality that you're adding?
>>
>> No, the vendors of the browsers manage ICE servers. ICE server = STUN +
>> TURN + the ice protocol.
>> Also as I understand OM is positioned as independent software that we can
>> use any of open source ICE server that written for java. For example from
>> libjitsu library. The ICE server is a parameter to webRTC app. I'm using
>> the public google ice server - stun:stun.l.google.com:19302.
>>
>> 6.
>>
>>> I changed it to
>>> <red5-server.version>1.0.8-M4</red5-server.version>
>>>
>>> Which seems to do the trick.
>>>
>>
>> When I developed the signal server the 1.0.8-SNAPSHOT version of red5 was
>> actual. I think we can change it to 1.0.7 that don't use any prefixes as
>> -M4.
>>
>> 7.
>>
>>> In which IDE are you developing that code ? How is that going ?
>>>
>>
>> I'm using the Eclipse IDE for the java and sublime text 3 for the
>> JavaScript.
>>
>> On Sun, Jul 3, 2016 at 9:13 AM, seba.wagner@gmail.com <
>> seba.wagner@gmail.com> wrote:
>>
>>> Hi Dima,
>>>
>>> I tried to build https://github.com/Dima00782/signalling_server but it
>>> does not resolve all the dependencies.
>>>
>>> For example:
>>> <artifactId>red5-server</artifactId>
>>> <red5-server.version>1.0.8-SNAPSHOT</red5-server.version>
>>>
>>> I can't resolve SNAPSHOT dependencies.
>>>
>>> I changed it to
>>> <red5-server.version>1.0.8-M4</red5-server.version>
>>>
>>> Which seems to do the trick.
>>>
>>> I tried the demo. Could you shed some light on what's the desired
>>> outcome at the moment?
>>> You wrote "Then you can call from one tab to another. Just enter the
>>> others user name and push the call button."
>>> => I did that. If I open the debugger I can see that some messages are
>>> arriving in the other browser tab when I enter the correct username:
>>> Got message {"offer":{"type":"offer","sdp":"v=0\r\no=mozilla...THIS_IS_SDPARTA-44.0.2
>>> 4728311081100557941 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0
>>> 0\r\na=fingerprint:sha-256
>>> D2:CF:A3:26:8E:28:0A:7C:C4:72:08:FD:E1:F8:27:79:F3:F1:2B:0F:F5:A3:5A:57:C7:45:AF:94:C0:82:96:3D\r\na=ice-options:trickle\r\na=msid-semantic:WMS
>>> *\r\nm=video 9 UDP/TLS/RTP/SAVPF 120 126 97\r\nc=IN IP4
>>> 0.0.0.0\r\na=sendrecv\r\na=fmtp:126
>>> profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1\r\na=fmtp:97
>>> profile-level-id=42e01f;level-asymmetry-allowed=1\r\na=fmtp:120
>>> max-fs=12288;max-fr=60\r\na=ice-pwd:c3136322072d95de998efcf78d88e6eb\r\na=ice-ufrag:3f376b29\r\na=mid:sdparta_0\r\na=msid:{6a4b2df3-e081-904e-835d-6fbfcd8c1e9c}
>>> {72b0f3b9-c104-9545-ad1e-84f84b99b9e3}\r\na=rtcp-fb:120
>>> nack\r\na=rtcp-fb:120 nack pli\r\na=rtcp-fb:120 ccm fir\r\na=rtcp-fb:126
>>> nack\r\na=rtcp-fb:126 nack pli\r\na=rtcp-fb:126 ccm fir\r\na=rtcp-fb:97
>>> nack\r\na=rtcp-fb:97 nack pli\r\na=rtcp-fb:97 ccm
>>> fir\r\na=rtcp-mux\r\na=rtpmap:120 VP8/90000\r\na=rtpmap:126
>>> H264/90000\r\na=rtpmap:97
>>> H264/90000\r\na=setup:actpass\r\na=ssrc:1312441535
>>> cname:{d80daaf2-4d39-a946-94e2-7de42f720804}\r\n"},"name":"Tine","type":"offer"}
>>>
>>>
>>> Is that a success? And that is what we try to proof at the moment? So
>>> now you need to get the next part working around streaming the audio/video
>>> from a to b ?
>>>
>>> One thing I have seen: As soon as I enter a wrong username and then
>>> correct it to the right one again it returns "An error has occurred" when
>>> you hit the call button.
>>>
>>> You wrote "only Firefox works". I could actually get Chrome running.
>>> Apparently Chrome requires camel case in the configuration. If you fix the
>>> client.js to the following configuration Chrome seems to work:
>>>
>>> var configuration = {
>>> "ice*S*ervers" : [{ "url" : "stun:stun.1.google.com:19302" }]
>>> };
>>>
>>> Using this code I could also signal from Chrome to Firefox. I think
>>> Firefox does not care if lower or camel case.
>>>
>>>
>>> One question regarding your next step of development. You are now
>>> creating the Red5 streaming part right? Is that the Turn server
>>> functionality that you're adding ?
>>>
>>> In which IDE are you developing that code ? How is that going ?
>>>
>>> Thanks,
>>> Sebastian
>>>
>>> --
>>> Sebastian Wagner
>>> https://twitter.com/#!/dead_lock
>>> seba.wagner@gmail.com
>>>
>>
>>
>>
>> --
>> Regards,
>> Dmitry Bezheckov.
>>
>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> seba.wagner@gmail.com
>
--
Regards,
Dmitry Bezheckov.
Re: Resolving GSoC project dependencies
Posted by "seba.wagner@gmail.com" <se...@gmail.com>.
Hi Dima,
thanks for your reply(s). "The application is a chat with video and audio.
If you call to another logged user *you must see the video from him and he
must see video from you in the browser."*
That just didn't work for me. I was testing with OSx + Firefox and OSx +
Mac. I can see my own video but there should be two videos next to each
other or not ?
I can see the remote video will be assigned using
yourConnection.ontrack = function (e) {
console.log("onTrack e.streams[0]: ", e.streams[0]);
theirVideo.src = window.URL.createObjectURL(e.streams[0]);
};
I put that console.log in there. I can never see this log ever been written.
Apparently the "onTrack" method is not supported in Chrome:
https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/ontrack#Browser_compatibility
Only Firefox. And with the note of "Introduced in Firefox 45 as onaddtrack;
renamed to ontrack in Firefox 46"
=> Okok :) I had Firefox v44, I upgraded to latest and it worked now. Great!
So now what's your idea around this prototype ? Convert it directly to
Wicket or improving the demo prototype ?
We would need some quick prototype to verify the APIs we are using are
working.
*@Maxim: What do you think?*
Thanks,
Sebastian
2016-07-03 23:27 GMT+12:00 Dmitriy - <di...@gmail.com>:
> Hello Sebastian, great thanks for the feedback!
>
> Step by step:
> 1.
>
>> Could you shed some light on what's the desired outcome at the moment?
>>
> The application is a chat with video and audio. If you call to another
> logged user *you must see the video from him and he must see video from
> you in the browser.*
>
> How is it work:
> You browser supply offer messages with serialized icecandidate from
> RTCPeerConnection API and send it to the signal server. The signal server
> resend that messages to the other user. Other user receive the messages and
> setup own RTCPeerConnection and send its messages. After this you browser
> can attach stream (onTrack function in API) to the RTCPeerConnection and
> automatically send you video/audio via RTP to other browser directly.
>
> 2.
>
>> Is that a success? And that is what we try to proof at the moment?
>>
> Success is a video and audio from one browser's tab to another.
> I try to test the signal server, we proof it.
>
> 3.
>
>> You wrote "only Firefox works". I could actually get Chrome running.
>> Apparently Chrome requires camel case in the configuration.
>
> Unfortunately supporting different browsers doesn't so simple. The webRTC
> API in other browser are different. Different browsers version also
> introduce different webRTC API. For example you can see that the IE has not
> official support (https://webrtc.org/). You can see browser specific
> prefixes in my js code - "moz" and "webkit". I test it in firefox on my
> laptop and on my work under ubuntu OS.
>
> Of course we must provide crossbrowser and crossplatform solution but it's
> a test for the signal server not for the client. Anyway I'll improve this
> demo app. I suggest to use some crossbrowser library, like this -
> https://github.com/otalk/rtcpeerconnection. The wicket stuff is also
> using this set of library.
>
> 4.
>
>> One question regarding your next step of development. You are now
>> creating the Red5 streaming part right?
>>
> Yes, I try to write some app that can receive video and audio streams
> from the browser and save it on hard disk. This isn't a simple task,
> because library that can handle/receive RTCPeerConnection from browser and
> than receive RTP stream doesn't exist for any language in open source code
> and appropriate licence. Only one this implementation exist for C++, but
> it's a little bit abandoned.
>
> 5.
>
>> Is that the Turn server functionality that you're adding?
>
> No, the vendors of the browsers manage ICE servers. ICE server = STUN +
> TURN + the ice protocol.
> Also as I understand OM is positioned as independent software that we can
> use any of open source ICE server that written for java. For example from
> libjitsu library. The ICE server is a parameter to webRTC app. I'm using
> the public google ice server - stun:stun.l.google.com:19302.
>
> 6.
>
>> I changed it to
>> <red5-server.version>1.0.8-M4</red5-server.version>
>>
>> Which seems to do the trick.
>>
>
> When I developed the signal server the 1.0.8-SNAPSHOT version of red5 was
> actual. I think we can change it to 1.0.7 that don't use any prefixes as
> -M4.
>
> 7.
>
>> In which IDE are you developing that code ? How is that going ?
>>
>
> I'm using the Eclipse IDE for the java and sublime text 3 for the
> JavaScript.
>
> On Sun, Jul 3, 2016 at 9:13 AM, seba.wagner@gmail.com <
> seba.wagner@gmail.com> wrote:
>
>> Hi Dima,
>>
>> I tried to build https://github.com/Dima00782/signalling_server but it
>> does not resolve all the dependencies.
>>
>> For example:
>> <artifactId>red5-server</artifactId>
>> <red5-server.version>1.0.8-SNAPSHOT</red5-server.version>
>>
>> I can't resolve SNAPSHOT dependencies.
>>
>> I changed it to
>> <red5-server.version>1.0.8-M4</red5-server.version>
>>
>> Which seems to do the trick.
>>
>> I tried the demo. Could you shed some light on what's the desired outcome
>> at the moment?
>> You wrote "Then you can call from one tab to another. Just enter the
>> others user name and push the call button."
>> => I did that. If I open the debugger I can see that some messages are
>> arriving in the other browser tab when I enter the correct username:
>> Got message {"offer":{"type":"offer","sdp":"v=0\r\no=mozilla...THIS_IS_SDPARTA-44.0.2
>> 4728311081100557941 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0
>> 0\r\na=fingerprint:sha-256
>> D2:CF:A3:26:8E:28:0A:7C:C4:72:08:FD:E1:F8:27:79:F3:F1:2B:0F:F5:A3:5A:57:C7:45:AF:94:C0:82:96:3D\r\na=ice-options:trickle\r\na=msid-semantic:WMS
>> *\r\nm=video 9 UDP/TLS/RTP/SAVPF 120 126 97\r\nc=IN IP4
>> 0.0.0.0\r\na=sendrecv\r\na=fmtp:126
>> profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1\r\na=fmtp:97
>> profile-level-id=42e01f;level-asymmetry-allowed=1\r\na=fmtp:120
>> max-fs=12288;max-fr=60\r\na=ice-pwd:c3136322072d95de998efcf78d88e6eb\r\na=ice-ufrag:3f376b29\r\na=mid:sdparta_0\r\na=msid:{6a4b2df3-e081-904e-835d-6fbfcd8c1e9c}
>> {72b0f3b9-c104-9545-ad1e-84f84b99b9e3}\r\na=rtcp-fb:120
>> nack\r\na=rtcp-fb:120 nack pli\r\na=rtcp-fb:120 ccm fir\r\na=rtcp-fb:126
>> nack\r\na=rtcp-fb:126 nack pli\r\na=rtcp-fb:126 ccm fir\r\na=rtcp-fb:97
>> nack\r\na=rtcp-fb:97 nack pli\r\na=rtcp-fb:97 ccm
>> fir\r\na=rtcp-mux\r\na=rtpmap:120 VP8/90000\r\na=rtpmap:126
>> H264/90000\r\na=rtpmap:97
>> H264/90000\r\na=setup:actpass\r\na=ssrc:1312441535
>> cname:{d80daaf2-4d39-a946-94e2-7de42f720804}\r\n"},"name":"Tine","type":"offer"}
>>
>>
>> Is that a success? And that is what we try to proof at the moment? So now
>> you need to get the next part working around streaming the audio/video from
>> a to b ?
>>
>> One thing I have seen: As soon as I enter a wrong username and then
>> correct it to the right one again it returns "An error has occurred" when
>> you hit the call button.
>>
>> You wrote "only Firefox works". I could actually get Chrome running.
>> Apparently Chrome requires camel case in the configuration. If you fix the
>> client.js to the following configuration Chrome seems to work:
>>
>> var configuration = {
>> "ice*S*ervers" : [{ "url" : "stun:stun.1.google.com:19302" }]
>> };
>>
>> Using this code I could also signal from Chrome to Firefox. I think
>> Firefox does not care if lower or camel case.
>>
>>
>> One question regarding your next step of development. You are now
>> creating the Red5 streaming part right? Is that the Turn server
>> functionality that you're adding ?
>>
>> In which IDE are you developing that code ? How is that going ?
>>
>> Thanks,
>> Sebastian
>>
>> --
>> Sebastian Wagner
>> https://twitter.com/#!/dead_lock
>> seba.wagner@gmail.com
>>
>
>
>
> --
> Regards,
> Dmitry Bezheckov.
>
--
Sebastian Wagner
https://twitter.com/#!/dead_lock
seba.wagner@gmail.com
Re: Resolving GSoC project dependencies
Posted by Dmitriy - <di...@gmail.com>.
Hello Sebastian, great thanks for the feedback!
Step by step:
1.
> Could you shed some light on what's the desired outcome at the moment?
>
The application is a chat with video and audio. If you call to another
logged user *you must see the video from him and he must see video from you
in the browser.*
How is it work:
You browser supply offer messages with serialized icecandidate from
RTCPeerConnection API and send it to the signal server. The signal server
resend that messages to the other user. Other user receive the messages and
setup own RTCPeerConnection and send its messages. After this you browser
can attach stream (onTrack function in API) to the RTCPeerConnection and
automatically send you video/audio via RTP to other browser directly.
2.
> Is that a success? And that is what we try to proof at the moment?
>
Success is a video and audio from one browser's tab to another.
I try to test the signal server, we proof it.
3.
> You wrote "only Firefox works". I could actually get Chrome running.
> Apparently Chrome requires camel case in the configuration.
Unfortunately supporting different browsers doesn't so simple. The webRTC
API in other browser are different. Different browsers version also
introduce different webRTC API. For example you can see that the IE has not
official support (https://webrtc.org/). You can see browser specific
prefixes in my js code - "moz" and "webkit". I test it in firefox on my
laptop and on my work under ubuntu OS.
Of course we must provide crossbrowser and crossplatform solution but it's
a test for the signal server not for the client. Anyway I'll improve this
demo app. I suggest to use some crossbrowser library, like this -
https://github.com/otalk/rtcpeerconnection. The wicket stuff is also using
this set of library.
4.
> One question regarding your next step of development. You are now creating
> the Red5 streaming part right?
>
Yes, I try to write some app that can receive video and audio streams from
the browser and save it on hard disk. This isn't a simple task, because
library that can handle/receive RTCPeerConnection from browser and than
receive RTP stream doesn't exist for any language in open source code and
appropriate licence. Only one this implementation exist for C++, but it's a
little bit abandoned.
5.
> Is that the Turn server functionality that you're adding?
No, the vendors of the browsers manage ICE servers. ICE server = STUN +
TURN + the ice protocol.
Also as I understand OM is positioned as independent software that we can
use any of open source ICE server that written for java. For example from
libjitsu library. The ICE server is a parameter to webRTC app. I'm using
the public google ice server - stun:stun.l.google.com:19302.
6.
> I changed it to
> <red5-server.version>1.0.8-M4</red5-server.version>
>
> Which seems to do the trick.
>
When I developed the signal server the 1.0.8-SNAPSHOT version of red5 was
actual. I think we can change it to 1.0.7 that don't use any prefixes as
-M4.
7.
> In which IDE are you developing that code ? How is that going ?
>
I'm using the Eclipse IDE for the java and sublime text 3 for the
JavaScript.
On Sun, Jul 3, 2016 at 9:13 AM, seba.wagner@gmail.com <seba.wagner@gmail.com
> wrote:
> Hi Dima,
>
> I tried to build https://github.com/Dima00782/signalling_server but it
> does not resolve all the dependencies.
>
> For example:
> <artifactId>red5-server</artifactId>
> <red5-server.version>1.0.8-SNAPSHOT</red5-server.version>
>
> I can't resolve SNAPSHOT dependencies.
>
> I changed it to
> <red5-server.version>1.0.8-M4</red5-server.version>
>
> Which seems to do the trick.
>
> I tried the demo. Could you shed some light on what's the desired outcome
> at the moment?
> You wrote "Then you can call from one tab to another. Just enter the
> others user name and push the call button."
> => I did that. If I open the debugger I can see that some messages are
> arriving in the other browser tab when I enter the correct username:
> Got message {"offer":{"type":"offer","sdp":"v=0\r\no=mozilla...THIS_IS_SDPARTA-44.0.2
> 4728311081100557941 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0
> 0\r\na=fingerprint:sha-256
> D2:CF:A3:26:8E:28:0A:7C:C4:72:08:FD:E1:F8:27:79:F3:F1:2B:0F:F5:A3:5A:57:C7:45:AF:94:C0:82:96:3D\r\na=ice-options:trickle\r\na=msid-semantic:WMS
> *\r\nm=video 9 UDP/TLS/RTP/SAVPF 120 126 97\r\nc=IN IP4
> 0.0.0.0\r\na=sendrecv\r\na=fmtp:126
> profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1\r\na=fmtp:97
> profile-level-id=42e01f;level-asymmetry-allowed=1\r\na=fmtp:120
> max-fs=12288;max-fr=60\r\na=ice-pwd:c3136322072d95de998efcf78d88e6eb\r\na=ice-ufrag:3f376b29\r\na=mid:sdparta_0\r\na=msid:{6a4b2df3-e081-904e-835d-6fbfcd8c1e9c}
> {72b0f3b9-c104-9545-ad1e-84f84b99b9e3}\r\na=rtcp-fb:120
> nack\r\na=rtcp-fb:120 nack pli\r\na=rtcp-fb:120 ccm fir\r\na=rtcp-fb:126
> nack\r\na=rtcp-fb:126 nack pli\r\na=rtcp-fb:126 ccm fir\r\na=rtcp-fb:97
> nack\r\na=rtcp-fb:97 nack pli\r\na=rtcp-fb:97 ccm
> fir\r\na=rtcp-mux\r\na=rtpmap:120 VP8/90000\r\na=rtpmap:126
> H264/90000\r\na=rtpmap:97
> H264/90000\r\na=setup:actpass\r\na=ssrc:1312441535
> cname:{d80daaf2-4d39-a946-94e2-7de42f720804}\r\n"},"name":"Tine","type":"offer"}
>
>
> Is that a success? And that is what we try to proof at the moment? So now
> you need to get the next part working around streaming the audio/video from
> a to b ?
>
> One thing I have seen: As soon as I enter a wrong username and then
> correct it to the right one again it returns "An error has occurred" when
> you hit the call button.
>
> You wrote "only Firefox works". I could actually get Chrome running.
> Apparently Chrome requires camel case in the configuration. If you fix the
> client.js to the following configuration Chrome seems to work:
>
> var configuration = {
> "ice*S*ervers" : [{ "url" : "stun:stun.1.google.com:19302" }]
> };
>
> Using this code I could also signal from Chrome to Firefox. I think
> Firefox does not care if lower or camel case.
>
>
> One question regarding your next step of development. You are now creating
> the Red5 streaming part right? Is that the Turn server functionality that
> you're adding ?
>
> In which IDE are you developing that code ? How is that going ?
>
> Thanks,
> Sebastian
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> seba.wagner@gmail.com
>
--
Regards,
Dmitry Bezheckov.