Twilio SDK PHP-установить медиарегион в комнате?
Я вижу документацию https://www.twilio.com/docs/video/api/rooms-resource#rooms-list-resource
Но я не могу найти, Как установить медиарегион. Скажите, пожалуйста, как это сделать?Это то, что я пытаюсь, но это не работает:
use SymfonyComponentHttpFoundationRequest;
use TwilioJwtAccessToken;
use TwilioJwtGrantsVideoGrant;
use TwilioRestClient;
class VideoconferencingController extends Controller
{
public function createAction(Request $request, $roomName)
{
$user = $this->getUser();
// An identifier for your app - can be anything you'd like
$identity = $user->getFullName();
// Create access token, which we will serialize and send to the client
$token = new AccessToken(
$twilioAccountSid,
$twilioApiKey,
$twilioApiSecret,
3600,
$identity
);
// Create Video grant
$videoGrant = new VideoGrant();
$videoGrant->setRoom($roomName);
// Add grant to token
$token->addGrant($videoGrant);
$twilio = new Client($twilioApiKey, $twilioApiSecret, $twilioAccountSid);
$room = $twilio
->video
->v1
// ->rooms($roomName)
->rooms('RM2900c0f08a237f6e978fc413cb997403')
->mediaRegion('ie1')
->update('completed')
;
error_log(print_r($room,1));
// render token to string
return [
'token' => $token->toJWT(),
'roomName' => $roomName,
];
}
С наилучшими пожеланиями, Бруно
1 ответ:
Я нашел то, что мне нужно делать.
Создайте комнату с медиарегионом:
use Symfony\Component\HttpFoundation\Request; use Twilio\Jwt\AccessToken; use Twilio\Jwt\Grants\VideoGrant; use Twilio\Rest\Client; class VideoconferencingController extends Controller { public function createAction(Request $request, $twilioRoomSid, $staffId, $roomName) { $twilioRoomSid = ('undefined' == $twilioRoomSid) ? null : $twilioRoomSid; $user = $this->getUser(); $twilioAccountSid = $this->getParameter('twilio_account_sid'); $twilioApiKey = $this->getParameter('twilio_api_key'); $twilioApiSecret = $this->getParameter('twilio_api_secret'); $now = new \DateTime(); // Get or create room $twilio = new Client($twilioApiKey, $twilioApiSecret, $twilioAccountSid); if ($twilioRoomSid) { $room = $twilio ->video ->v1 ->rooms($twilioRoomSid) ->fetch() ; } $createRoom = (!$twilioRoomSid || 'completed' == $room->status) ? true : false; if ($createRoom) { $room = $twilio ->video ->v1 ->rooms ->create([ 'mediaRegion' => 'ie1', 'uniqueName' => $roomName ] ) ; $twilioRoomSid = $room->sid; $staff = $this->findOr404('App:Staff', $staffId); $staff->setTwilioRoomSid($twilioRoomSid); $this->flush(); } // Authorize room $identity = $user->getFullName(); // Create access token, which we will serialize and send to the client $token = new AccessToken( $twilioAccountSid, $twilioApiKey, $twilioApiSecret, 3600, $identity ); // Create Video grant $videoGrant = new VideoGrant(); $videoGrant->setRoom($twilioRoomSid); // Add grant to token $token->addGrant($videoGrant); // render token to string return [ 'token' => $token->toJWT(), 'roomName' => $roomName, ]; } }