[jitsi-dev] How WebRTC client is getting assigned to a conference room?


#1

Can somebody please point me to the code:

1. Where new conference room is getting created on the Jitsi videobridge by WebRTC client.
2. Where in the code WebRTC client is getting assigned to a conference room on Jitsi videobridge.

I assume it is done by COLIBRI in one of those Javascript libraries which get included by the WebRTC page,
but have trouble finding it exactly.

I am completely new to Jitsi and every piece of advise is greatly appreciated.

Thanks


#2

Can somebody please point me to the code:

1. Where new conference room is getting created on the Jitsi videobridge by WebRTC client.

https://github.com/ESTOS/meet/blob/master/app.js#L42 tells the client to go to an xmpp MUC. Which is only used for getting a list of participants

2. Where in the code WebRTC client is getting assigned to a conference room on Jitsi videobridge.

https://github.com/ESTOS/meet/blob/master/app.js#L178
creates a (typically two-person) conference on the bridge.

I assume it is done by COLIBRI in one of those Javascript libraries which get included by the WebRTC page,
but have trouble finding it exactly.

https://github.com/ESTOS/colibri.js/blob/master/colibri.js#L61 ?
http://xmpp.org/extensions/inbox/colibri.html has some higher-level documentation.

hope that helps, if not... just ask more questions :wink:

···

On Wed, 18 Dec 2013, Yan Brenman wrote:


#3

Philipp,

thank you very much for the super fast reply. I think I am getting better navigating through the code. I have one quick question though:

The code references a data member (I am sure there is a better term for it in the JavaScript paradigm) of the Strophe.Connection object
called "jingle". Which holds all the acquired media (jingle) related parameters: pc_constraints, localStream, terminatedByJid, etc.
At the same time the documentation for the JavaScript version of the Strophe library I am looking at doesn't mention "jingle" member
of the Strophe.Connection object.
Could you please refer me to the documentation of the Strophe library which has the description of the "jingle" in the Strophe.Connection.
Or at least a description of the "jingle" object.

Thank you very much for your help

···

On 12/19/2013 2:14 AM, Philipp Hancke wrote:

On Wed, 18 Dec 2013, Yan Brenman wrote:

Can somebody please point me to the code:

1. Where new conference room is getting created on the Jitsi videobridge by WebRTC client.

https://github.com/ESTOS/meet/blob/master/app.js#L42 tells the client to go to an xmpp MUC. Which is only used for getting a list of participants

2. Where in the code WebRTC client is getting assigned to a conference room on Jitsi videobridge.

https://github.com/ESTOS/meet/blob/master/app.js#L178
creates a (typically two-person) conference on the bridge.

I assume it is done by COLIBRI in one of those Javascript libraries which get included by the WebRTC page,
but have trouble finding it exactly.

https://github.com/ESTOS/colibri.js/blob/master/colibri.js#L61 ?
http://xmpp.org/extensions/inbox/colibri.html has some higher-level documentation.

hope that helps, if not... just ask more questions :wink:

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev


#4

hey Yan,

Philipp,

thank you very much for the super fast reply. I think I am getting
better navigating through the code. I have one quick question though:

The code references a data member (I am sure there is a better term for
it in the JavaScript paradigm) of the Strophe.Connection object
called "jingle". Which holds all the acquired media (jingle) related
parameters: pc_constraints, localStream, terminatedByJid, etc.
At the same time the documentation for the JavaScript version of the
Strophe library I am looking at doesn't mention "jingle" member
of the Strophe.Connection object.
Could you please refer me to the documentation of the Strophe library
which has the description of the "jingle" in the Strophe.Connection.
Or at least a description of the "jingle" object.

This is a strophe plugin -- coming from https://github.com/ESTOS/strophe.jingle
http:/professionalxmpp.com/profxmpp_ch14.pdf‎ has some more documentation on how those work in general.

There are only a few methods you can call....
.initiate(peerjid, myjid) -- initiates a jingle session to peerjid, using myjid as sender where appropriate (typically myjid should default to the connection.jid, unless you're in a multiuser chatroom -- will fix that later today)

.terminate(sid, reason, text) -- terminates a jingle session based on a jingle session id (or all sessions if sid is null).

.terminateByJid -- terminates a jingle session based on a peer jid. Typically this happens when you get an unavailable presence from a peer (i.e. the peer closed the browser window without hanging up)

In addition to that this generates a number of events, most notably callingcoming.jingle. https://github.com/ESTOS/strophe.jingle/blob/master/examples/muc.js has examples how to use those, the README.md lists all available events.

···

Am 28.12.2013 04:23, schrieb Yan Brenman:


#5

Hi Philipp,

thank you very much for your response. As always very informative and straight to the point.

Would it possible for you to send me the configuration parameter values (in config.js) for the
web client for the configuration where XMPP server and videobridge are running on the same
machine with no domain (just localhost). Therefore the entry in the table of connections XMPP
server is listening for videobridge is simply specified as "jitsi-videobridge.localhost". The web
client runs either on the same machine and therefore specifies URL of the service as "localhost"
or on another machine and in this case enters the IP address of the machine where XMPP server
and videobridge run.
Is there anything else needs to be created/configured to get a working setup I described? Please
let me know if there is anything else I didn't specify.

Greatly appreciate your help
Yan

···

On 12/28/2013 12:22 AM, Philipp Hancke wrote:

hey Yan,

Am 28.12.2013 04:23, schrieb Yan Brenman:

Philipp,

thank you very much for the super fast reply. I think I am getting
better navigating through the code. I have one quick question though:

The code references a data member (I am sure there is a better term for
it in the JavaScript paradigm) of the Strophe.Connection object
called "jingle". Which holds all the acquired media (jingle) related
parameters: pc_constraints, localStream, terminatedByJid, etc.
At the same time the documentation for the JavaScript version of the
Strophe library I am looking at doesn't mention "jingle" member
of the Strophe.Connection object.
Could you please refer me to the documentation of the Strophe library
which has the description of the "jingle" in the Strophe.Connection.
Or at least a description of the "jingle" object.

This is a strophe plugin -- coming from https://github.com/ESTOS/strophe.jingle
http:/professionalxmpp.com/profxmpp_ch14.pdf‎ has some more documentation on how those work in general.

There are only a few methods you can call....
.initiate(peerjid, myjid) -- initiates a jingle session to peerjid, using myjid as sender where appropriate (typically myjid should default to the connection.jid, unless you're in a multiuser chatroom -- will fix that later today)

.terminate(sid, reason, text) -- terminates a jingle session based on a jingle session id (or all sessions if sid is null).

.terminateByJid -- terminates a jingle session based on a peer jid. Typically this happens when you get an unavailable presence from a peer (i.e. the peer closed the browser window without hanging up)

In addition to that this generates a number of events, most notably callingcoming.jingle. https://github.com/ESTOS/strophe.jingle/blob/master/examples/muc.js has examples how to use those, the README.md lists all available events.

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev


#6

hey Yan,

Would it possible for you to send me the configuration parameter values
(in config.js) for the
web client for the configuration where XMPP server and videobridge are
running on the same
machine with no domain (just localhost).

Check out
https://meet.jit.si/config.js or https://meet.estos.de/config.js
note that you need different domains for domain and muc, only the muc domain must be available in DNS.

Ping me off-list with a URL if you want me to take a quick look at your setup :slight_smile: