provider name */ public function getName() { return 'NowSMS'; } /** * Function to get required parameters other than (userName, password) * @return required parameters list */ public function getRequiredParams() { return self::$REQUIRED_PARAMETERS; } /** * Function to set authentication parameters * @param $userName * @param $password */ public function setAuthParameters($userName, $password) { $this->userName = $userName; $this->password = $password; } /** * Function to set non-auth parameter. * @param $key * @param $value */ public function setParameter($key, $value) { $this->parameters[$key] = $value; } /** * Function to get parameter value * @param $key * @param $defaultValue * @return value/$default value */ public function getParameter($key, $defaultValue = false) { if(isset($this->parameters[$key])) { return $this->parameters[$key]; } return $defaultValue; } /** * Function to prepare parameters * @return parameters */ protected function prepareParameters() { $params = array('user' => $this->userName, 'password' => $this->password); foreach (self::$REQUIRED_PARAMETERS as $key) { $params[$key] = $this->getParameter($key); } return $params; } /** * Function to handle SMS Send operation * @param $message * @param $toNumbers One or Array of numbers */ public function send($message, $toNumbers) { if(!is_array($toNumbers)) { $toNumbers = array($toNumbers); } $params = $this->prepareParameters(); $params['text'] = $message; $params['phonenumber'] = implode(',', $toNumbers); $serviceURL = $params['ServerURL']; $httpClient = new Vtiger_Net_Client($serviceURL); $response = $httpClient->doPost($params); $responseLines = split("\n", $response); $results = array(); $i=0; foreach($responseLines as $responseLine) { $responseLine = trim($responseLine); if(empty($responseLine)) continue; $result = array( 'error' => false, 'statusmessage' => '' ); if(preg_match("/Error:(.*)/", trim($responseLine), $matches)) { $result['error'] = true; $result['to'] = $toNumbers[$i++]; $result['statusmessage'] = $matches[0]; // Complete error message } else if(preg_match("/MessageID=([^ ]+), Recipient=(.*)/", $responseLine, $matches)) { $result['id'] = trim($matches[1]); $result['to'] = trim($matches[2]); $result['status'] = self::MSG_STATUS_PROCESSING; } else if(preg_match("/MessageID=(.*)/", $responseLine, $matches)) { $result['id'] = trim($matches[1]); $result['to'] = $toNumbers[0]; $result['status'] = self::MSG_STATUS_PROCESSING; } $results[] = $result; } return $results; } /** * Function to get query for status using messgae id * @param $messageId * NOT Supported */ public function query($messageId) { $result['error'] = true; $result['status'] = self::MSG_STATUS_PROCESSING; return $result; } } ?>