/** * Validate that an incoming rest request is from Twilio * * @param string $failure_message * @return void */ function validate_rest_request($failure_message = 'Could not validate this request. Goodbye.') { $ci =& get_instance(); if ($ci->tenant->type == VBX_Settings::AUTH_TYPE_CONNECT) { return; } if (!OpenVBX::validateRequest()) { $response = new TwimlResponse(); $response->say($failure_message, array('voice' => $ci->vbx_settings->get('voice', $ci->tenant->id), 'language' => $ci->vbx_settings->get('voice_language', $ci->tenant->id))); $response->hangup(); $response->respond(); exit; } }
/** * Twilio calls us when a user deauthorizes our connect account * * @return void */ public function deauthorize() { $header = '405'; // method not allowed if (OpenVBX::validateRequest() || 1 == 1) { if ($account_sid = $this->input->post('AccountSid')) { $result = $this->db->select('tenants.*')->from('tenants')->join('settings', 'tenants.id = settings.tenant_id')->where('settings.name = "twilio_sid"')->where('settings.value = "' . $this->db->escape_str($account_sid) . '"')->limit(1)->get()->result(); if (!empty($result)) { $tenant = current($result); if ($tenant->id) { log_message('info', 'AccountSid "' . $account_sid . '" deauthorized on ' . date('r') . ' (server tz: ' . date_default_timezone_get() . ')'); $this->setup_connect_tenant('deauthorized_client', $tenant->id); $header = '204'; // accepted, but no content to return } } $header = '400'; // sid not found so its a bad request } } set_status_header($header); exit; }