Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/spreed.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--appinfo/routes.php8
-rw-r--r--lib/Config.php37
-rw-r--r--lib/Controller/PageController.php44
-rw-r--r--lib/Controller/SignalingController.php12
4 files changed, 59 insertions, 42 deletions
diff --git a/appinfo/routes.php b/appinfo/routes.php
index 11f867dd6..36fb91906 100644
--- a/appinfo/routes.php
+++ b/appinfo/routes.php
@@ -47,6 +47,14 @@ return [
],
],
[
+ 'name' => 'Signaling#getSettings',
+ 'url' => '/api/{apiVersion}/signaling/settings',
+ 'verb' => 'GET',
+ 'requirements' => [
+ 'apiVersion' => 'v1',
+ ],
+ ],
+ [
'name' => 'Signaling#backend',
'url' => '/api/{apiVersion}/signaling/backend',
'verb' => 'POST',
diff --git a/lib/Config.php b/lib/Config.php
index 0b6cab75d..633f840d1 100644
--- a/lib/Config.php
+++ b/lib/Config.php
@@ -52,6 +52,43 @@ class Config {
$this->timeFactory = $timeFactory;
}
+ public function getSettings($userId) {
+ $stun = [];
+ $stunServer = $this->getStunServer();
+ if ($stunServer) {
+ $stun[] = [
+ 'url' => 'stun:' . $stunServer,
+ ];
+ }
+ $turn = [];
+ $turnSettings = $this->getTurnSettings();
+ if (!empty($turnSettings['server'])) {
+ $protocols = explode(',', $turnSettings['protocols']);
+ foreach ($protocols as $proto) {
+ $turn[] = [
+ 'url' => ['turn:' . $turnSettings['server'] . '?transport=' . $proto],
+ 'urls' => ['turn:' . $turnSettings['server'] . '?transport=' . $proto],
+ 'username' => $turnSettings['username'],
+ 'credential' => $turnSettings['password'],
+ ];
+ }
+ }
+
+ $signaling = [];
+ $servers = $this->getSignalingServers();
+ if (!empty($servers)) {
+ $signaling = $servers[mt_rand(0, count($servers) - 1)];
+ $signaling = $signaling['server'];
+ }
+
+ return [
+ 'server' => $signaling,
+ 'ticket' => $this->getSignalingTicket($userId),
+ 'stunservers' => $stun,
+ 'turnservers' => $turn,
+ ];
+ }
+
/**
* @return string
*/
diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php
index 9790ac612..2e1eae87c 100644
--- a/lib/Controller/PageController.php
+++ b/lib/Controller/PageController.php
@@ -93,46 +93,6 @@ class PageController extends Controller {
}
/**
- * @return array
- */
- private function getSignalingSettings() {
- $stun = [];
- $stunServer = $this->config->getStunServer();
- if ($stunServer) {
- $stun[] = [
- 'url' => 'stun:' . $stunServer,
- ];
- }
- $turn = [];
- $turnSettings = $this->config->getTurnSettings();
- if (!empty($turnSettings['server'])) {
- $protocols = explode(',', $turnSettings['protocols']);
- foreach ($protocols as $proto) {
- $turn[] = [
- 'url' => ['turn:' . $turnSettings['server'] . '?transport=' . $proto],
- 'urls' => ['turn:' . $turnSettings['server'] . '?transport=' . $proto],
- 'username' => $turnSettings['username'],
- 'credential' => $turnSettings['password'],
- ];
- }
- }
-
- $signaling = [];
- $servers = $this->config->getSignalingServers();
- if (!empty($servers)) {
- $signaling = $servers[mt_rand(0, count($servers) - 1)];
- $signaling = $signaling['server'];
- }
-
- return [
- 'server' => $signaling,
- 'ticket' => $this->config->getSignalingTicket($this->userId),
- 'stunservers' => $stun,
- 'turnservers' => $turn,
- ];
- }
-
- /**
* @PublicPage
* @NoCSRFRequired
* @UseSession
@@ -204,7 +164,7 @@ class PageController extends Controller {
$params = [
'token' => $token,
- 'signaling-settings' => $this->getSignalingSettings(),
+ 'signaling-settings' => $this->config->getSettings($this->userId),
];
$response = new TemplateResponse($this->appName, 'index', $params);
$csp = new ContentSecurityPolicy();
@@ -243,7 +203,7 @@ class PageController extends Controller {
$params = [
'token' => $token,
- 'signaling-settings' => $this->getSignalingSettings(),
+ 'signaling-settings' => $this->config->getSettings($this->userId),
];
$response = new TemplateResponse($this->appName, 'index-public', $params, 'base');
$csp = new ContentSecurityPolicy();
diff --git a/lib/Controller/SignalingController.php b/lib/Controller/SignalingController.php
index 0752aebd2..8815a2b8a 100644
--- a/lib/Controller/SignalingController.php
+++ b/lib/Controller/SignalingController.php
@@ -84,6 +84,18 @@ class SignalingController extends OCSController {
}
/**
+ * @NoAdminRequired
+ *
+ * Only available for logged in users because guests can not use the apps
+ * right now.
+ *
+ * @return DataResponse
+ */
+ public function getSettings() {
+ return new DataResponse($this->config->getSettings($this->userId));
+ }
+
+ /**
* @PublicPage
*
* @param string $messages