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
parent
commit
ec82ac391a
No known key found for this signature in database GPG Key ID: 7076EA9751AACDDA
  1. 2
      appinfo/routes/routesRoomController.php
  2. 24
      lib/Controller/RoomController.php

2
appinfo/routes/routesRoomController.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() */

24
lib/Controller/RoomController.php

@ -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

Loading…
Cancel
Save