function waiting_list_create_sms($mailing_group_id, $mailing_name, $sms_template_id, $sms_provider_id, $date)
{
    $waiting_list_sms_api = new civicrm_api3();
    $waiting_list_sms_params = array();
    $waiting_list_sms_params['version'] = 3;
    $waiting_list_sms_params['sequential'] = 1;
    $waiting_list_sms_params['group_id'] = $mailing_group_id;
    $waiting_list_sms_params['options'] = array('sort' => 'id', 'limit' => 0);
    if ($waiting_list_sms_api->GroupContact->Get($waiting_list_sms_params)) {
        $waiting_list = $waiting_list_sms_api->lastResult->values;
        $count = $waiting_list_sms_api->lastResult->count;
        for ($i = 0; $i < $count; $i++) {
            try {
                unset($waiting_list_sms_params);
                $waiting_list_sms_params['version'] = 3;
                $waiting_list_sms_params['contact_id'] = $waiting_list[$i]->contact_id;
                $waiting_list_sms_params['template_id'] = $sms_template_id;
                $waiting_list_sms_params['provider_id'] = $sms_provider_id;
                if (!$waiting_list_sms_api->Sms->Send($waiting_list_sms_params)) {
                    print "Error creating sms ";
                    print_r($waiting_list_sms_api->errorMsg());
                }
            } catch (API_Exception $apie) {
                print "Caught exception: " . $apie->getMessage() . "\n";
            }
        }
    } else {
        throw new API_Exception("Error retrieving SMS group contacts " . print_r($waiting_list_sms_api->errorMsg(), true));
    }
}
<?php

require_once dirname(__DIR__) . '/config.php';
require_once 'class.api.php';
// Initialize database
$dbh = new PDO('mysql:dbname=' . DBNAME . ';host=' . DBHOST, DBUSER, DBPASS);
// Get data from civicrm.org
$api = new civicrm_api3(array('server' => CO_CIVIURL, 'api_key' => CO_USERKEY, 'key' => CO_SITEKEY));
if (!$api->ExtensionDir->Get()) {
    echo 'Unable to retrieve ExtensionDir: ' . $api->errorMsg() . PHP_EOL;
    exit;
}
// Save in database, replacing existing data
$dbh->query('TRUNCATE TABLE extensions_dir');
$stm = $dbh->prepare("\n  INSERT INTO extensions_dir (nid, title, created, fq_name, git_url)\n         VALUES (:nid, :title, :created, :fq_name, :git_url)\n  ");
$count = 0;
foreach ($api->values() as $row) {
    $stm->bindValue(':nid', $row->nid, PDO::PARAM_INT);
    $stm->bindValue(':title', $row->title, PDO::PARAM_STR);
    $stm->bindValue(':created', $row->created, PDO::PARAM_INT);
    $stm->bindValue(':fq_name', $row->fq_name, PDO::PARAM_STR);
    $stm->bindValue(':git_url', $row->git_url, PDO::PARAM_STR);
    if ($stm->execute()) {
        $count++;
    }
}
echo "{$count} CiviCRM-native extensions found in the Extensions Directory." . PHP_EOL;