/** * @return array */ public function AjaxTwilioGetToken() { $oAccount = $this->getAccountFromParam(); $oTenant = null; if ($this->oApiTenants) { $oTenant = 0 < $oAccount->IdTenant ? $this->oApiTenants->GetTenantById($oAccount->IdTenant) : $this->oApiTenants->GetDefaultGlobalTenant(); } $mToken = false; if ($oTenant && $this->oApiCapability->IsTwilioSupported($oAccount) && $oTenant->IsTwilioSupported() && $oTenant->TwilioAllow && $oAccount->User->TwilioEnable && file_exists(PSEVEN_APP_ROOT_PATH . 'libraries/Services/Twilio.php')) { try { include PSEVEN_APP_ROOT_PATH . 'libraries/Services/Twilio.php'; // Twilio API credentials $sAccountSid = $oTenant->TwilioAccountSID; $sAuthToken = $oTenant->TwilioAuthToken; // Twilio Application Sid $sAppSid = $oTenant->TwilioAppSID; $sTwilioPhoneNumber = $oTenant->TwilioPhoneNumber; $bUserTwilioEnable = $oAccount->User->TwilioEnable; $sUserPhoneNumber = $oAccount->User->TwilioNumber; $bUserDefaultNumber = $oAccount->User->TwilioDefaultNumber; $oCapability = new \Services_Twilio_Capability($sAccountSid, $sAuthToken); $oCapability->allowClientOutgoing($sAppSid); \CApi::Log('twilio_debug'); \CApi::Log('twilio_account_sid-' . $sAccountSid); \CApi::Log('twilio_auth_token-' . $sAuthToken); \CApi::Log('twilio_app_sid-' . $sAppSid); \CApi::Log('twilio_enable-' . $bUserTwilioEnable ? 'true' : 'false'); \CApi::Log('twilio_user_default_number-' . ($bUserDefaultNumber ? 'true' : 'false')); \CApi::Log('twilio_number-' . $sTwilioPhoneNumber); \CApi::Log('twilio_user_number-' . $sUserPhoneNumber); \CApi::Log('twilio_debug_end'); //$oCapability->allowClientIncoming('TwilioAftId_'.$oAccount->IdTenant.'_'.$oAccount->User->TwilioNumber); if ($bUserTwilioEnable) { if ($bUserDefaultNumber) { $oCapability->allowClientIncoming(strlen($sUserPhoneNumber) > 0 ? $sUserPhoneNumber : 'default'); } else { if (strlen($sUserPhoneNumber) > 0) { $oCapability->allowClientIncoming($sUserPhoneNumber); } } } $mToken = $oCapability->generateToken(86400000); //Token lifetime set to 24hr (default 1hr) } catch (\Exception $oE) { \CApi::LogException($oE); } } else { throw new \ProjectSeven\Exceptions\ClientException(\ProjectSeven\Notifications::VoiceNotAllowed); } return $this->DefaultResponse($oAccount, __FUNCTION__, $mToken); }
/** * @return array */ public function AjaxGetTwilioToken() { $oAccount = $this->getAccountFromParam(); $oTenant = null; if ($this->oApiTenants) { $oTenant = 0 < $oAccount->IdTenant ? $this->oApiTenants->GetTenantById($oAccount->IdTenant) : $this->oApiTenants->GetDefaultGlobalTenant(); } $mToken = false; if ($oTenant && $this->oApiCapability->IsTwilioSupported($oAccount) && $oTenant->IsTwilioSupported() && file_exists(PSEVEN_APP_ROOT_PATH . 'libraries/Services/Twilio.php')) { try { include PSEVEN_APP_ROOT_PATH . 'libraries/Services/Twilio.php'; // put your Twilio API credentials here $sAccountSid = $oTenant->TwilioAccountSID; $sAuthToken = $oTenant->TwilioAuthToken; // put your Twilio Application Sid here $sAppSid = $oTenant->TwilioAppSID; /*\CApi::Log('twilio_calls_log'); $client = new \Services_Twilio($sAccountSid, $sAuthToken); foreach ($client->account->calls->getIterator(0, 50, array( //"From" => "client:7333", "StartTime>" => "2014-01-01" )) as $call ) { \CApi::Log('status-'.$call->status.' to-'.$call->to .' from-'.$call->from); } \CApi::Log('twilio_calls_log_end');*/ // $sTwilioPhoneNumber = $oTenant->TwilioPhoneNumber; $sUserPhoneNumber = $oAccount->User->TwilioNumber; $oCapability = new \Services_Twilio_Capability($sAccountSid, $sAuthToken); $oCapability->allowClientOutgoing($sAppSid); \CApi::Log('twilio_debug'); \CApi::Log('twilio_account_sid-' . $sAccountSid); \CApi::Log('twilio_auth_token-' . $sAuthToken); \CApi::Log('twilio_app_sid-' . $sAppSid); \CApi::Log('twilio_number-' . $sUserPhoneNumber); \CApi::Log('twilio_enable-' . $oAccount->User->TwilioEnable); \CApi::Log('twilio_default_number-' . ($oAccount->User->TwilioDefaultNumber ? 'true' : 'false')); \CApi::Log('twilio_debug_end'); // $oCapability->allowClientIncoming('TwilioAftId_'.$oAccount->User->TwilioNumber); $oCapability->allowClientIncoming($sUserPhoneNumber ? $sUserPhoneNumber : 'default'); // $oCapability->allowClientIncoming('TwilioAftId_'.$oAccount->IdTenant.'_'.$oAccount->User->TwilioNumber); $mToken = $oCapability->generateToken(86400000); //Token lifetime set to 24hr (default 1hr) } catch (\Exception $oE) { \CApi::LogException($oE); } } else { throw new \ProjectSeven\Exceptions\ClientException(\ProjectSeven\Notifications::VoiceNotAllowed); } return $this->DefaultResponse($oAccount, __FUNCTION__, $mToken); }