ws_url = $ws_url; $this -> ws_ssl_verify = $ws_ssl_verify; $this -> ws_connect_timeout = $ws_connect_timeout; $this -> ws_timeout = $ws_timeout; } /* * REST Request */ private function _ws_call($method, $url, $data = false, $json = true) { if (is_null($this -> ws_url)) return; $curl = curl_init(); switch ($method) { case "POST": curl_setopt($curl, CURLOPT_POST, 1); if ($data) curl_setopt($curl, CURLOPT_POSTFIELDS, $data); break; case "PUT": curl_setopt($curl, CURLOPT_PUT, 1); break; default: $method='GET'; if ($data) $url = sprintf("%s?%s", $url, http_build_query($data)); } if ($this -> ws_ssl_verify) { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, TRUE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); } else { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); } // Set timeouts curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $this -> ws_connect_timeout); curl_setopt($curl, CURLOPT_TIMEOUT, $this -> ws_timeout); $complete_url=$this -> ws_url.'/'.$url; curl_setopt($curl, CURLOPT_URL, $complete_url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); logging("DEBUG", "sms_gw_api : Call URL $complete_url"); $result = curl_exec($curl); if(curl_errno($curl)) { logging("ERROR", "sms_gw_api : Error during $method request to ".$complete_url." : ".curl_error($curl)); curl_close($curl); return False; } curl_close($curl); logging("DEBUG","sms_gw_api : Return => '$result'"); if (!$json) return $result; try { $data = json_decode($result,true); logging("DEBUG","sms_gw_api : Decoded data :".print_r($data,1)); return $data; } catch (Exception $e) { logging("ERROR","sms_gw_api : Error parsing $method request JSON result on ".$complete_url." : ".$e); return False; } } /** * send sms * @param string number * @param string text * @return struct sms gw return struct */ function send_sms($number, $text){ return self :: _ws_call( 'GET', "", array( 'number' => $number, 'text' => $text, ) ); } /** * check gateway is alive * @return boolean sms gw status */ function check_gateway(){ $return=self :: _ws_call( 'GET', "", array(), false ); return ($return !== false && preg_match('/My SMS Gateway/', $return)); } }