function sms_simplegateway_send in SMS Framework 6
Send a message
Parameters
$number: MSISDN of message recipient. Expected to include the country code prefix.
$message: Message body text.
$options: Options array from SMS Framework.
Return value
Response array.
1 string reference to 'sms_simplegateway_send'
- sms_simplegateway_gateway_info in modules/
sms_simplegateway/ sms_simplegateway.module - Implement hook_gateway_info()
File
- modules/
sms_simplegateway/ sms_simplegateway.module, line 187 - Simple gateway module for Drupal SMS Framework. Outbound+Inbound
Code
function sms_simplegateway_send($number, $message, $options) {
// Get config
$gateway = sms_gateways('gateway', 'simplegateway');
$config = $gateway['configuration'];
// Prepare the URL and get the method
$url_base = $config['sms_simplegateway_base_url'];
$method = $config['sms_simplegateway_method'];
// Lets specify a gw number
$sender = '';
if (array_key_exists('sender', $options)) {
$sender = $options['sender'];
}
// Prepare required arguments
$params = array();
$user_field = $config['sms_simplegateway_user_field'];
$user = $config['sms_simplegateway_user_value'];
if (!empty($user_field)) {
$params[$user_field] = $user;
}
$pass_field = $config['sms_simplegateway_pass_field'];
$pass = $config['sms_simplegateway_pass_value'];
if (!empty($pass_field)) {
$params[$pass_field] = $pass;
}
$sender_field = $config['sms_simplegateway_sender_field'];
if (!empty($sender_field) && !empty($sender)) {
$params[$sender_field] = $sender;
}
$number_field = $config['sms_simplegateway_number_field'];
$params[$number_field] = $number;
$message_field = $config['sms_simplegateway_message_field'];
$params[$message_field] = $message;
// Prepare the query string
// Note that we are forcing http_build_query to use '&' as a separator instead of the usual '&'
$query_string = http_build_query($params, NULL, '&');
if ($method == 'GET') {
$url = $url_base . '?' . $query_string;
$http_result = drupal_http_request($url, array(), 'GET');
}
elseif ($method == 'POST') {
$headers = array(
'Content-Type' => 'application/x-www-form-urlencoded',
);
$http_result = drupal_http_request($url_base, $headers, 'POST', $query_string);
}
// Check for HTTP errors
if ($http_result->error) {
return array(
'status' => FALSE,
'message' => t('An error occured during the HTTP request: @error', array(
'@error' => $http_result->error,
)),
);
}
if ($http_result->data) {
// Test the HTTP return code
if ($http_result->code >= 200 && $http_result->code <= 299) {
// Prepare a good response array
$result = array(
'status' => TRUE,
'status_code' => SMS_GW_OK,
'gateway_status_code' => $http_result->code,
'gateway_status_text' => $http_result->data,
);
}
else {
// We got a (possibly) bad response code
$result = array(
'status' => FALSE,
'status_code' => SMS_GW_ERR_OTHER,
'gateway_status_code' => $http_result->code,
'gateway_status_text' => $http_result->data,
);
}
}
return $result;
}