Merge pull request #1402 from jitsi/p2p_ver2

P2P ver2
This commit is contained in:
bbaldino 2017-03-22 16:10:13 -07:00 committed by GitHub
commit 9a46896600
5 changed files with 64 additions and 4 deletions

View File

@ -741,6 +741,39 @@ export default {
return this._room
&& this._room.getConnectionState();
},
/**
* Obtains current P2P ICE connection state.
* @return {string|null} ICE connection state or <tt>null</tt> if there's no
* P2P connection
*/
getP2PConnectionState () {
return this._room
&& this._room.getP2PConnectionState();
},
/**
* Starts P2P (for tests only)
* @private
*/
_startP2P () {
try {
this._room && this._room.startP2PSession();
} catch (error) {
logger.error("Start P2P failed", error);
throw error;
}
},
/**
* Stops P2P (for tests only)
* @private
*/
_stopP2P () {
try {
this._room && this._room.stopP2PSession();
} catch (error) {
logger.error("Stop P2P failed", error);
throw error;
}
},
/**
* Checks whether or not our connection is currently in interrupted and
* reconnect attempts are in progress.

View File

@ -20,6 +20,13 @@ var config = { // eslint-disable-line no-unused-vars
//focusUserJid: 'focus@auth.jitsi-meet.example.com', // The real JID of focus participant - can be overridden here
//defaultSipNumber: '', // Default SIP number
// The STUN servers that will be used in the peer to peer connections
p2pStunServers: [
{ urls: "stun:stun.l.google.com:19302" },
{ urls: "stun:stun1.l.google.com:19302" },
{ urls: "stun:stun2.l.google.com:19302" }
],
// The ID of the jidesha extension for Chrome.
desktopSharingChromeExtId: null,
// Whether desktop sharing should be disabled on Chrome.
@ -80,5 +87,14 @@ var config = { // eslint-disable-line no-unused-vars
// disables or enables RTX (RFC 4588) (defaults to false).
disableRtx: false,
// Sets the preferred resolution (height) for local video. Defaults to 360.
resolution: 720
resolution: 720,
// Enables peer to peer mode. When enabled system will try to establish
// direct connection given that there are exactly 2 participants in
// the room. If that succeeds the conference will stop sending data through
// the JVB and use the peer to peer connection instead. When 3rd participant
// joins the conference will be moved back to the JVB connection.
//enableP2P: true
// How long we're going to wait, before going back to P2P after
// the 3rd participant has left the conference (to filter out page reload)
//backToP2PDelay: 5
};

View File

@ -193,7 +193,8 @@
"transport": "Transport:",
"transport_plural": "Transports:",
"bandwidth": "Estimated bandwidth:",
"na": "Come back here for connection information once the conference starts"
"na": "Come back here for connection information once the conference starts",
"direct": " (direct)"
},
"notify": {
"disconnected": "disconnected",

View File

@ -198,6 +198,9 @@ ConnectionIndicator.prototype.generateText = function () {
}
}
// All of the transports should be either P2P or JVB
const isP2P = this.transport.length ? this.transport[0].p2p : false;
var local_address_key = "connectionindicator.localaddress";
var remote_address_key = "connectionindicator.remoteaddress";
var localTransport =
@ -243,8 +246,13 @@ ConnectionIndicator.prototype.generateText = function () {
JSON.stringify({count: data.transportType.length})
+ "'></span></td>" +
"<td>"
+ ConnectionIndicator.getStringFromArray(data.transportType)
+ "</td></tr>";
+ ConnectionIndicator.getStringFromArray(data.transportType);
// Append (direct) to indicate the P2P type of transport
if (isP2P) {
transport += "<span data-i18n='connectionindicator.direct'>";
}
// Close "type" column and end table row
transport += "</td></tr>";
}

View File

@ -718,6 +718,8 @@ var VideoLayout = {
updateLocalConnectionStats (percent, object) {
const { framerate, resolution } = object;
// FIXME overwrites 'lib-jitsi-meet' internal object
// Why library internal objects are passed as event's args ?
object.resolution = resolution[APP.conference.getMyUserId()];
object.framerate = framerate[APP.conference.getMyUserId()];
localVideoThumbnail.updateStatsIndicator(percent, object);