Browse Source
Add endpoint for the HPB to create guests
Signed-off-by: Joas Schilling <coding@schilljs.com>
pull/6563/head
Joas Schilling
4 years ago
No known key found for this signature in database
GPG Key ID: 7076EA9751AACDDA
2 changed files with
26 additions and
0 deletions
-
appinfo/routes/routesRoomController.php
-
lib/Controller/RoomController.php
|
|
|
@ -92,6 +92,8 @@ return [ |
|
|
|
['name' => 'Room#getParticipantByDialInPin', 'url' => '/api/{apiVersion}/room/{token}/pin/{pin}', 'verb' => 'GET', 'requirements' => array_merge($requirementsWithToken, [ |
|
|
|
'pin' => '^\d{7,32}$', |
|
|
|
])], |
|
|
|
/** @see \OCA\Talk\Controller\RoomController::createGuestByDialIn() */ |
|
|
|
['name' => 'Room#createGuestByDialIn', 'url' => '/api/{apiVersion}/room/{token}/open-dial-in', 'verb' => 'POST', 'requirements' => $requirementsWithToken], |
|
|
|
/** @see \OCA\Talk\Controller\RoomController::setNotificationLevel() */ |
|
|
|
['name' => 'Room#setNotificationLevel', 'url' => '/api/{apiVersion}/room/{token}/notify', 'verb' => 'POST', 'requirements' => $requirementsWithToken], |
|
|
|
/** @see \OCA\Talk\Controller\RoomController::setNotificationCalls() */ |
|
|
|
|
|
|
|
@ -1420,6 +1420,30 @@ class RoomController extends AEnvironmentAwareController { |
|
|
|
return new DataResponse($this->formatRoom($this->room, $participant)); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @PublicPage |
|
|
|
* @RequireRoom |
|
|
|
* |
|
|
|
* @return DataResponse |
|
|
|
*/ |
|
|
|
public function createGuestByDialIn(): DataResponse { |
|
|
|
try { |
|
|
|
if (!$this->validateSIPBridgeRequest($this->room->getToken())) { |
|
|
|
return new DataResponse([], Http::STATUS_UNAUTHORIZED); |
|
|
|
} |
|
|
|
} catch (UnauthorizedException $e) { |
|
|
|
return new DataResponse([], Http::STATUS_UNAUTHORIZED); |
|
|
|
} |
|
|
|
|
|
|
|
if ($this->room->getSIPEnabled() !== Webinary::SIP_ENABLED_NO_PIN) { |
|
|
|
return new DataResponse([], Http::STATUS_BAD_REQUEST); |
|
|
|
} |
|
|
|
|
|
|
|
$participant = $this->participantService->joinRoomAsNewGuest($this->roomService, $this->room, '', true); |
|
|
|
|
|
|
|
return new DataResponse($this->formatRoom($this->room, $participant)); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @PublicPage |
|
|
|
* @UseSession |
|
|
|
|