|DataResponse, array{}> * @throws CannotReachRemoteException * * 200: Signaling settings returned * 404: Room not found */ public function getSettings(Room $room, Participant $participant): DataResponse { $proxy = $this->proxy->get( $participant->getAttendee()->getInvitedCloudId(), $participant->getAttendee()->getAccessToken(), $room->getRemoteServer() . '/ocs/v2.php/apps/spreed/api/v3/signaling/settings', [ 'token' => $room->getRemoteToken(), ], ); $statusCode = $proxy->getStatusCode(); if (!in_array($statusCode, [Http::STATUS_OK, Http::STATUS_NOT_FOUND], true)) { $this->proxy->logUnexpectedStatusCode(__METHOD__, $proxy->getStatusCode()); throw new CannotReachRemoteException(); } /** @var TalkSignalingSettings|array $data */ $data = $this->proxy->getOCSData($proxy); return new DataResponse($data, $statusCode); } }