Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $mdb = "paging";
- $mhost = "localhost";
- $mlog = "pageuser";
- $mpass = "123456";
- header("Content-type: text/xml");
- @mysql_connect($mhost, $mlog, $mpass) or die("Could not connect to MySQL server");
- @mysql_select_db($mdb) or die("Could not select DB mysql");
- //читаем из бд адреса телефонов в массив $ip. флагом ex отмечены телефоны, участвующие в пейджинге
- $query = "SELECT * FROM phoneip WHERE ex=1";
- $res = mysql_query($query) or die(mysql_error());
- $i = 0;
- $ip = array();
- while ($row=mysql_fetch_array($res)) {
- $ip[$i++] = $row['ip'];
- }
- //читаем из бд $log, $pass, $mcastIP, $mcastPort
- $query = "SELECT * FROM conf";
- $res = mysql_query($query) or die(mysql_error());
- $log = mysql_result($res, 0, 'login');
- $pass = mysql_result($res, 0, 'pass');
- $mcastIP = mysql_result($res, 0, 'mcastip');
- $mcastPort = mysql_result($res, 0, 'mcastport');
- $auth = base64_encode($log.":".$pass);
- //формируем URI для приема RTP потока
- $uri = "RTPMRx:$mcastIP:$mcastPort:90";
- $uri = "<CiscoIPPhoneExecute><ExecuteItem Priority=\"0\" URL=\"".$uri."\"/></CiscoIPPhoneExecute>";
- $uri = "XML=".urlencode($uri);
- //заголовки запроса
- $post = "POST /CGI/Execute HTTP/1.0\r\n";
- $post .= "Host: $ip\r\n";
- $post .= "Authorization: Basic $auth\r\n";
- $post .= "Connection: close\r\n";
- $post .= "Content-Type: application/x-www-form-urlencoded\r\n";
- $post .= "Content-Length: ".strlen($uri)."\r\n\r\n";
- $timeout = 2;
- $sockets = array();
- foreach ($ip as $id => $host) {
- $s = stream_socket_client("$host:80", $errno, $errstr, $timeout,
- STREAM_CLIENT_ASYNC_CONNECT|STREAM_CLIENT_CONNECT);
- if ($s) {
- $sockets[$id] = $s;
- } else {
- $res = mysql_query($query) or die(mysql_error());
- }
- }
- while (count($sockets)) {
- $read = $write = $sockets;
- $n = stream_select($read, $write, $e = null, $timeout);
- if ($n > 0) {
- foreach ($read as $r) {
- $id = array_search($r, $sockets);
- $data = fread($r, 8192);
- if (strlen($data) == 0) {
- fclose($r);
- unset($sockets[$id]);
- }
- }
- foreach ($write as $w) {
- $id = array_search($w, $sockets);
- fwrite($w, $post.$uri);
- }
- } else {
- break;
- }
- }
- mysql_close();
- echo "
- <CiscoIPPhoneText>
- <Title>Оповещение</Title>
- <Prompt>Нажмите кнопку Начать</Prompt>
- <Text>$message</Text>
- <SoftKeyItem>
- <Name>Начать</Name>
- <URL>RTPTx:Stop</URL>
- <URLDown>RTPMTx:$mcastIP:$mcastPort</URLDown>
- <Position>1</Position>
- </SoftKeyItem>
- <SoftKeyItem>
- <Name>Выход</Name>
- <URL>SoftKey:Exit</URL>
- <URLDown>http://10.1.1.65/page_stop.php</URLDown>
- <Position>4</Position>
- </SoftKeyItem>
- </CiscoIPPhoneText>
- ";
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement