Страница 7 из 10

Re: Web-MeetMe сбор конференции по адресной книге

СообщениеДобавлено: 14 фев 2012, 20:16
utcon
Сегодня полдня искал, так и не нашел :geek:

Re: Web-MeetMe сбор конференции по адресной книге

СообщениеДобавлено: 15 фев 2012, 14:57
utcon
Понятно, что допустим

<a href="#" onclick="call_add('TEST_NAME',05068821,0,0,5,153)" type="button">[ВЫЗОВ]</a>

передает это в javascript call_add, который описан в out_call_book.php
следующим образом

Код: выделить все
function call_add(nM,nU,rX,tX,cN,bI) {
        // (1) создать объект для запроса к серверу
        var req = getXmlHttp()

        // (2)
        // span рядом с кнопкой
        // в нем будем отображать ход выполнения
        var statusElem = document.getElementById(nU)

        req.onreadystatechange = function() {
        // onreadystatechange активируется при получении ответа сервера

                if (req.readyState == 4) {
            // если запрос закончил выполняться

                        statusElem.innerHTML = req.statusText // показать статус (Not Found, ОК..)

                        if(req.status == 200) {
                 // если статус 200 (ОК) - выдать ответ пользователю
                                alert("Ответ сервера: "+req.responseText);
                        }
                        // тут можно добавить else с обработкой ошибок запроса
                }

        }

       // (3) задать адрес подключения
        req.open('GET', 'call_operator_add.php?name='+nM+'&invite_num='+nU+'&action=quickcall&data='+cN+'&bookid='+bI+'&rx='+rX+'&tx='+tX, true);

        // объект запроса подготовлен: указан адрес и создана функция onreadystatechange
        // для обработки ответа сервера

        // (4)
        req.send(null);  // отослать запрос

        // (5)
        statusElem.innerHTML = 'Ожидание...'
}
        //-->
        </script>


По сути скрипт получает на входе переменные и отправляет их с помощью

Код: выделить все
req.open('GET', 'call_operator_add.php?name='+nM+'&invite_num='+nU+'&action=quickcall&data='+cN+'&bookid='+bI+'&rx='+rX+'&tx='+tX, true);

на сервер.

Я вручную сделал ссылку

Код: выделить все
http://server/meeting/call_operator_add.php?name='KUKA'&invite_num='05068821'&action=quickcall&data='5'&bookid='153'&rx='0'&tx='0,%20true


И запустил на выполнение в браузере.
Номер корректно прошел с нулями в консоли астериска.

Отсюда вывод, что либо ноль спереди режется в момент нажатия кнопки ВЫЗОВ, либо ноль режется в момент обработки его javascript функцией call_add.

Подозрение, что в момент
Код: выделить все
req.open('GET', 'call_operator_add.php?name='+nM+'&invite_num='+nU+'&action=quickcall&data='+cN+'&bookid='+bI+'&rx='+rX+'&tx='+tX, true);


Номер идет уже обрезанными первыми нулями.

Re: Web-MeetMe сбор конференции по адресной книге

СообщениеДобавлено: 15 фев 2012, 15:27
utcon
Ух ты,
в файле
lib/addressbook.php раскомментировал

Код: выделить все
                echo "<tr><td>$row[1]</td><td>$row[2]</td><td>
                <FORM action=\"./call_operator.php\" method=\"post\" name=WMOutCall>
                <INPUT type=\"hidden\" name=\"name\" value=\"$row[1]\">
                <INPUT type=\"hidden\" name=\"invite_num\" value=\"$row[2]\">
                <INPUT type=\"hidden\" name=\"action\" value=\"quickcall\">
                <INPUT type=\"hidden\" name=\"data\" value=\"$confno\">
                <INPUT type=\"hidden\" name=\"bookid\" value=\"$book\">
                <input type=\"submit\" value=\"Вызов\"/>\n</td></tr>\n";


Понятно, что съехали столбцы в справочнике, но номер через quickcall проходит с первым 0 без проблем.

Но пользоваться не реально.


Как бы передать все значение invite_num в add_call включая первые нули.

Re: Web-MeetMe сбор конференции по адресной книге

СообщениеДобавлено: 15 фев 2012, 15:45
Vlad1983
значи всё таки джава
эх не лублу я её, но попробую разобраться что ей надо
тем более скоро с нулями придется всем набирать

Re: Web-MeetMe сбор конференции по адресной книге

СообщениеДобавлено: 15 фев 2012, 16:00
Vlad1983
всё оказалось довольно просто

lib/addressbook.php
...
Код: выделить все
echo "<tr><td height=\"35\">$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td><td><a href=\"#\" onclick=\"call_add(\x27$row[1]\x27,\x27$row[2]\x27,$row[3],$row[4],$confno,$book)\" type=\"button\" />[ВЫЗОВ]</a><div align=\"center\" id=\"$row[2]\"></div></td></tr>\n";

Re: Web-MeetMe сбор конференции по адресной книге

СообщениеДобавлено: 15 фев 2012, 16:10
utcon
Огромное, человеческое спасибо.

Re: Web-MeetMe сбор конференции по адресной книге

СообщениеДобавлено: 15 фев 2012, 17:04
Vlad1983
надо наверное все переменные огородить
Код: выделить все
\x27
на всякий пожарный

Re: Web-MeetMe сбор конференции по адресной книге

СообщениеДобавлено: 15 фев 2012, 18:32
utcon
Для тех, кто юзает эту сборку веб митми

выкладываю кнопку которая может вызвать всех кто присутствует в какой то адресной книге

в конец lib/addressbook_custom.php дописываем

Код: выделить все
  <form method = "post">
  <input type = "submit" name = "button1" value = "Пригласить всех">
  <form>
<?
  if($_POST['button1'])

  {
        $query1 = "SELECT SQL_CALC_FOUND_ROWS `id`,`name`,`number`,`rx`,`tx` FROM `addressbook_custom` ORDER BY `name` ASC ";
        $result1 = $db->query($query1);

while($row1 = $result1->fetchRow())
         {
$row1[1] = iconv("cp1251","UTF-8",preg_replace("/[^\x30-\x39\x41-\x5A\x61-\x7A\x20\x5F\xC0-\xFF\xA8\xB8]/","",iconv("UTF-8","cp1251",$row1[1])));


echo "<script> call_add(\x27$row1[1]\x27,\x27$row1[2]\x27,$row1[3],$row1[4],$confno,$book);</script>";

}

  }

?>

Re: Web-MeetMe сбор конференции по адресной книге

СообщениеДобавлено: 15 фев 2012, 19:22
Vlad1983
полезно
задумка была
руки не дойдут никак

надо персонализировать адресную книгу и добавить разбиение по группам
тогда вызов всех будет более удобен

Re: Web-MeetMe сбор конференции по адресной книге

СообщениеДобавлено: 21 фев 2012, 12:16
rahmanny
установил по инструкции, на любых страницах такая ошибка
Код: выделить все
Fatal error: Call to undefined method DB_Error::fetchRow() in /var/www/html/meet2/conf_update.php on line 117