mirror of https://github.com/OpenVidu/openvidu.git
openvidu-testapp: Show configured ICE servers on created RTCPeerConnections to check ice server configuration from OpenVidu
parent
4d579cf8b3
commit
5e19622198
|
@ -33,6 +33,7 @@ import { OpenviduParamsService } from './services/openvidu-params.service';
|
||||||
import { TestFeedService } from './services/test-feed.service';
|
import { TestFeedService } from './services/test-feed.service';
|
||||||
import { MuteSubscribersService } from './services/mute-subscribers.service';
|
import { MuteSubscribersService } from './services/mute-subscribers.service';
|
||||||
import { SessionInfoDialogComponent } from "./components/dialogs/session-info-dialog/session-info-dialog.component";
|
import { SessionInfoDialogComponent } from "./components/dialogs/session-info-dialog/session-info-dialog.component";
|
||||||
|
import { ShowIceServerConfiguredDialog } from './components/dialogs/show-configured-ice/show-configured-ice.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [
|
||||||
|
@ -53,6 +54,7 @@ import { SessionInfoDialogComponent } from "./components/dialogs/session-info-di
|
||||||
ScenarioPropertiesDialogComponent,
|
ScenarioPropertiesDialogComponent,
|
||||||
FilterDialogComponent,
|
FilterDialogComponent,
|
||||||
ShowCodecDialogComponent,
|
ShowCodecDialogComponent,
|
||||||
|
ShowIceServerConfiguredDialog,
|
||||||
SessionInfoDialogComponent,
|
SessionInfoDialogComponent,
|
||||||
UsersTableComponent,
|
UsersTableComponent,
|
||||||
TableVideoComponent
|
TableVideoComponent
|
||||||
|
@ -82,6 +84,7 @@ import { SessionInfoDialogComponent } from "./components/dialogs/session-info-di
|
||||||
ScenarioPropertiesDialogComponent,
|
ScenarioPropertiesDialogComponent,
|
||||||
FilterDialogComponent,
|
FilterDialogComponent,
|
||||||
ShowCodecDialogComponent,
|
ShowCodecDialogComponent,
|
||||||
|
ShowIceServerConfiguredDialog,
|
||||||
SessionInfoDialogComponent
|
SessionInfoDialogComponent
|
||||||
],
|
],
|
||||||
bootstrap: [AppComponent]
|
bootstrap: [AppComponent]
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
import { Component, Inject } from '@angular/core';
|
||||||
|
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
||||||
|
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-ice-configured-dialog',
|
||||||
|
template: `
|
||||||
|
<div id="app-ice-configured-dialog-container">
|
||||||
|
<ul id="ice-server-list">
|
||||||
|
<div class="ice-server" *ngFor="let iceServer of iceServerList; index as i">
|
||||||
|
<li id="ice-server-{{i}}">
|
||||||
|
<p>
|
||||||
|
ICE Server URL: <span id="ice-server-url-{{i}}">{{iceServer.urls}}</span> -
|
||||||
|
Username: <span *ngIf="iceServer.username" id="ice-server-username-{{i}}">{{iceServer.username}}</span> -
|
||||||
|
Credential: <span *ngIf="iceServer.credential" id="ice-server-credential-{{i}}">{{iceServer.credential}}</span>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
<button mat-button id="close-dialog-btn" [mat-dialog-close]="{}">CLOSE</button>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
|
styles: [`
|
||||||
|
#app-ice-configured-dialog-container {
|
||||||
|
text-align: center
|
||||||
|
}
|
||||||
|
`]
|
||||||
|
})
|
||||||
|
export class ShowIceServerConfiguredDialog {
|
||||||
|
|
||||||
|
iceServerList: RTCIceServer[]
|
||||||
|
|
||||||
|
constructor(public dialogRef: MatDialogRef<ShowIceServerConfiguredDialog>,
|
||||||
|
@Inject(MAT_DIALOG_DATA) public data) {
|
||||||
|
this.iceServerList = data.iceServerList;
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,6 +11,9 @@
|
||||||
<button class="video-btn stats-button bottom-left-rounded" title="Peer Connection Stats" (click)="showCodecUsed()">
|
<button class="video-btn stats-button bottom-left-rounded" title="Peer Connection Stats" (click)="showCodecUsed()">
|
||||||
<mat-icon aria-label="Peer Connection Stats" class="mat-icon material-icons" role="img" aria-hidden="true">info</mat-icon>
|
<mat-icon aria-label="Peer Connection Stats" class="mat-icon material-icons" role="img" aria-hidden="true">info</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
<button class="video-btn stats-button bottom-left-rounded" title="Ice Server configuration" (click)="getConfiguredIceServer()">
|
||||||
|
<mat-icon aria-label="Ice Server configuration" class="mat-icon material-icons" role="img" aria-hidden="true">storage</mat-icon>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-div">
|
<div class="bottom-div">
|
||||||
<button class="video-btn pub-btn" title="Publish/Unpublish" (click)="pubUnpub()">
|
<button class="video-btn pub-btn" title="Publish/Unpublish" (click)="pubUnpub()">
|
||||||
|
@ -53,6 +56,9 @@
|
||||||
<button class="video-btn stats-button bottom-left-rounded" title="Peer Connection Stats" (click)="showCodecUsed()">
|
<button class="video-btn stats-button bottom-left-rounded" title="Peer Connection Stats" (click)="showCodecUsed()">
|
||||||
<mat-icon aria-label="Peer Connection Stats" class="mat-icon material-icons" role="img" aria-hidden="true">info</mat-icon>
|
<mat-icon aria-label="Peer Connection Stats" class="mat-icon material-icons" role="img" aria-hidden="true">info</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
<button class="video-btn stats-button bottom-left-rounded" title="Ice Server configuration" (click)="getConfiguredIceServer()">
|
||||||
|
<mat-icon aria-label="Ice Server configuration" class="mat-icon material-icons" role="img" aria-hidden="true">storage</mat-icon>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-div">
|
<div class="bottom-div">
|
||||||
<button class="video-btn sub-btn" title="Subscribe/Unsubscribe" (click)="subUnsub()">
|
<button class="video-btn sub-btn" title="Subscribe/Unsubscribe" (click)="subUnsub()">
|
||||||
|
|
|
@ -23,6 +23,7 @@ import { LocalRecordingDialogComponent } from '../dialogs/local-recording-dialog
|
||||||
import { ExtensionDialogComponent } from '../dialogs/extension-dialog/extension-dialog.component';
|
import { ExtensionDialogComponent } from '../dialogs/extension-dialog/extension-dialog.component';
|
||||||
import { FilterDialogComponent } from '../dialogs/filter-dialog/filter-dialog.component';
|
import { FilterDialogComponent } from '../dialogs/filter-dialog/filter-dialog.component';
|
||||||
import { OpenViduEvent } from '../openvidu-instance/openvidu-instance.component';
|
import { OpenViduEvent } from '../openvidu-instance/openvidu-instance.component';
|
||||||
|
import { ShowIceServerConfiguredDialog } from '../dialogs/show-configured-ice/show-configured-ice.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-video',
|
selector: 'app-video',
|
||||||
|
@ -813,6 +814,16 @@ export class VideoComponent implements OnInit, OnDestroy {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getConfiguredIceServer() {
|
||||||
|
let iceServerList: RTCIceServer[] = this.streamManager.stream.getWebRtcPeer().pc.getConfiguration().iceServers;
|
||||||
|
this.dialog.open(ShowIceServerConfiguredDialog, {
|
||||||
|
data: {
|
||||||
|
iceServerList: iceServerList
|
||||||
|
},
|
||||||
|
width: '450px'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
async showCodecUsed() {
|
async showCodecUsed() {
|
||||||
let stats = await this.streamManager.stream.getWebRtcPeer().pc.getStats();
|
let stats = await this.streamManager.stream.getWebRtcPeer().pc.getStats();
|
||||||
let codecIdIndex = null;
|
let codecIdIndex = null;
|
||||||
|
|
Loading…
Reference in New Issue