コード例 #1
0
ファイル: Actions.php プロジェクト: BertLasker/Catch-design
 /**
  * @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);
 }
コード例 #2
0
ファイル: Actions.php プロジェクト: hallnewman/webmail-lite
 /**
  * @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);
 }