<?php
$sql_query = 'UPDATE ' . $config['table_prefix'] . 'module_sms_gates SET ';
$sql_query .= <<<'EOT'
check_status = 'function check_sms_status($smsc, $id_sms)\r\n{\r\n    global $config;\r\n    $src = \'<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n<request>\r\n    <security>\r\n        <login value=\"\' . htmlspecialchars($smsc[\'login\']) . \'\" />\r\n        <password value=\"\' . htmlspecialchars($smsc[\'password\']) . \'\" />\r\n    </security>\r\n    <get_state>\r\n        <id_sms>\' . $id_sms . \'</id_sms>\r\n    </get_state>\r\n</request>\';\r\n    $ch = curl_init();\r\n    curl_setopt($ch, CURLOPT_HTTPHEADER, array(\'Content-type: text/xml; charset=utf-8\'));\r\n    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\r\n    curl_setopt($ch, CURLOPT_CRLF, true);\r\n    curl_setopt($ch, CURLOPT_POST, true);\r\n    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);\r\n    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);\r\n    curl_setopt($ch, CURLOPT_POSTFIELDS, $src);\r\n    if ($config[\'proxy_host\']) {\r\n        curl_setopt($ch, CURLOPT_PROXY, $config[\'proxy_host\'] . \':\' . $config[\'proxy_port\']);\r\n    }\r\n    if ($config[\'proxy_user\']) {\r\n        curl_setopt($ch, CURLOPT_PROXYUSERPWD, $config[\'proxy_user\'] . \':\' . $config[\'proxy_pass\']);\r\n    }\r\n    curl_setopt($ch, CURLOPT_URL, \'https://xml.sms16.ru/xml/state.php\');\r\n    $xml = curl_exec($ch);\r\n    if (curl_error($ch) && (curl_error($ch) == \'Unsupported SSL protocol version\' || curl_errno($ch) == 60)) {\r\n        curl_setopt($ch, CURLOPT_URL, \'http://xml.sms16.ru/xml/state.php\');\r\n        $xml = curl_exec($ch);\r\n    }\r\n    if (substr($xml, 0, 5) == \'<?xml\') {\r\n        $status = trim(strip_tags($xml));\r\n    } elseif ($xml) {\r\n        $res = $xml;\r\n    } else {\r\n        $res = curl_error($ch);\r\n    }\r\n    curl_close($ch);\r\n    if ($status) {\r\n        $xr = xml_parser_create();\r\n        xml_parse_into_struct($xr, $xml, $xml_val);\r\n        $time = $xml_val[1][\'attributes\'][\'TIME\'];\r\n        $error = $xml_val[1][\'attributes\'][\'ERR\'];\r\n        if ($config[\'time_zone\']) { // преобразуем московское время от сервера в клиентское\r\n            date_default_timezone_set(\'Etc/GMT-3\');\r\n            $timestamp = strtotime($time);\r\n            date_default_timezone_set(\'Etc/GMT\' . (($config[\'time_zone\'] < 0) ? \'+\' : \'-\') . abs($config[\'time_zone\']));\r\n            $time = date(\'Y-m-d H:i:s\', $timestamp);\r\n        }\r\n        if ($status == \'send\') {\r\n            return \'\';\r\n        }\r\n        if ($status == \'deliver\') {\r\n            return \'OK:\' . $time;\r\n        }\r\n        if ($status == \'not_found\' or $status == \'partly_deliver\') {\r\n            return \'UNKNOWN:\' . $status;\r\n        }\r\n        if ($status == \'expired\') {\r\n            return \'ERROR:Абонент отсутствовал в сети\';\r\n        }\r\n        if ($status == \'not_deliver\' and $error == \'0\') {\r\n            return \'ERROR:Не удалось доставить СМС\';\r\n        }\r\n        if ($status == \'not_deliver\' and $error == \'1\') {\r\n            return \'ERROR:Абонент недоступен или отключен\';\r\n        }\r\n        if ($status == \'not_deliver\' and $error == \'2\') {\r\n            return \'ERROR:У абонента отключен прием СМС\';\r\n        }\r\n        if ($status == \'not_deliver\' and $error == \'3\') {\r\n            return \'ERROR:Номер телефона не существует или не обслуживается\';\r\n        }\r\n        if ($status == \'not_deliver\' and $error == \'4\') {\r\n            return \'ERROR:Память телефона абонента переполнена\';\r\n        }\r\n        if ($status == \'not_deliver\' and $error == \'5\') {\r\n            return \'ERROR:Аппаратная ошибка телефона абонента\';\r\n        }\r\n        if ($status == \'not_deliver\' and $error == \'6\') {\r\n            return \'ERROR:Сервис СМС не предоставляется\';\r\n        }\r\n        if ($status == \'not_deliver\' and $error == \'7\') {\r\n            return \'ERROR:Аппарат абонента не поддерживает прием СМС\';\r\n        }\r\n        if ($status == \'not_deliver\' and $error == \'8\') {\r\n            return \'ERROR:Аппарат абонента занят операцией, препятствующей получению СМС\';\r\n        }\r\n        if ($status == \'not_deliver\' and $error == \'9\') {\r\n            return \'ERROR:Абонент находится в роуминге\';\r\n        }\r\n        if ($status == \'not_deliver\') {\r\n            return \'UNKNOWN:not_deliver-\' . $error;\r\n        }\r\n        return \'ERROR:\' . $status;\r\n    }\r\n    return \'ERROR:\' . $res;\r\n}'
WHERE id = 2
EOT;
run_query($sql_query);

$sql_query = 'UPDATE ' . $config['table_prefix'] . 'module_sms_gates SET ';
$sql_query .= <<<'EOT'
check_status = 'function check_sms_status($smsc, $id_sms)\r\n{\r\n    global $config;\r\n    require_once $config[\'site_path\'] . \'/modules/sms/webcom.php\';\r\n\r\n    $params = [\r\n        \'login\' => $smsc[\'login\'],\r\n        \'state\' => $id_sms\r\n    ];\r\n    return webcom_check_sms_status($params, $smsc[\'password\']);\r\n}'
WHERE id = 3
EOT;
run_query($sql_query);