<?php
namespace Peterujah\Agora\func;
function generateRecordingKey($appID, $appCertificate, $channelName, $ts, $randomInt, $uid, $expiredTs ,$serviceType='ARS')
{
return generateDynamicKey($appID, $appCertificate, $channelName, $ts, $randomInt, $uid, $expiredTs ,$serviceType);
}
function generateMediaChannelKey($appID, $appCertificate, $channelName, $ts, $randomInt, $uid, $expiredTs ,$serviceType='ACS')
{
return generateDynamicKey($appID, $appCertificate, $channelName, $ts, $randomInt, $uid, $expiredTs ,$serviceType);
}
function generateDynamicKey($appID, $appCertificate, $channelName, $ts, $randomInt, $uid, $expiredTs ,$serviceType)
{
$version = "004";
$randomStr = "00000000" . dechex($randomInt);
$randomStr = substr($randomStr,-8);
$uidStr = "0000000000" . $uid;
$uidStr = substr($uidStr,-10);
$expiredStr = "0000000000" . $expiredTs;
$expiredStr = substr($expiredStr,-10);
$signature = generateSignature($appID, $appCertificate, $channelName, $ts, $randomStr, $uidStr, $expiredStr ,$serviceType);
return $version . $signature . $appID . $ts . $randomStr . $expiredStr;
}
function generateSignature($appID, $appCertificate, $channelName, $ts, $randomStr, $uidStr, $expiredStr ,$serviceType)
{
$concat = $serviceType . $appID . $ts . $randomStr . $channelName . $uidStr . $expiredStr;
return hash_hmac('sha1', $concat, $appCertificate);
}
|