PDA

Просмотр полной версии : Помогите дописать флудер телефона на PHP через Skype


inlanger
16.04.2009, 11:17
Нарыл в сети исходник, как позвонить через Skype на php, пытался переделать во флудер - не получилось. Скрипт юзает Skype4COM:

<?php

// Event sink:
class _ISkypeEvents {

function AttachmentStatus($status) {
echo ">Attachment status $status\n";
}
function CallStatus($call, $status) {
echo ">Call $call->id status $status\n";
}
}

// Create a Skype4COM object:
$skype = new COM("Skype4COM.Skype");

// Create a sink object:
$sink =& new _ISkypeEvents ();
$sink->convert = $skype->convert();

// Connect to the sink:
com_event_sink($skype, $sink, "_ISkypeEvents");

// Create a conversion object:
$convert = $skype->convert;
$convert->language = "en";

// Start the Skype client, minimized and with no splash screen:
if (!$skype->client()->isRunning()) {
$skype->client()->start(true, true);
}

// If the user status is not "online", change user status to "online":
if ($skype->currentUserStatus() == $convert->textToUserStatus("OFFLINE")) {
$skype->changeUserStatus($convert->textToUserStatus("ONLINE"));
}

// Create a user object
$user = $skype->user("echo123");
echo "User " . $user->handle . " online status is " . $convert->onlineStatusToText($user->onlineStatus) . "\n";

// Place a call
$call = $skype->PlaceCall($user->handle);

// Wait for the call to be "in progress" and report an error if:
while ($call->status <> $convert->textToCallStatus("INPROGRESS")) {
if ($call->status == $convert->textToCallStatus("FAILED") ||
$call->status == $convert->textToCallStatus("REFUSED") ||
$call->status == $convert->textToCallStatus("CANCELLED") ||
$call->status == $convert->textToCallStatus("FINISHED") ||
$call->status == $convert->textToCallStatus("BUSY"))
die ("Call status " . $convert->callStatusToText($call->status));
else
com_message_pump (500);
}

// Send dtmf tones:
com_message_pump (10000);
if ($call->status == $convert->textToCallStatus("INPROGRESS")) $call->dtmf = "0";
com_message_pump (500);
if ($call->status == $convert->textToCallStatus("INPROGRESS")) $call->dtmf = "1";
com_message_pump (500);
if ($call->status == $convert->textToCallStatus("INPROGRESS")) $call->dtmf = "2";
com_message_pump (500);
if ($call->status == $convert->textToCallStatus("INPROGRESS")) $call->dtmf = "3";
com_message_pump (500);
if ($call->status == $convert->textToCallStatus("INPROGRESS")) $call->dtmf = "4";
com_message_pump (500);
if ($call->status == $convert->textToCallStatus("INPROGRESS")) $call->dtmf = "5";
com_message_pump (500);
if ($call->status == $convert->textToCallStatus("INPROGRESS")) $call->dtmf = "6";
com_message_pump (500);
if ($call->status == $convert->textToCallStatus("INPROGRESS")) $call->dtmf = "7";
com_message_pump (500);
if ($call->status == $convert->textToCallStatus("INPROGRESS")) $call->dtmf = "8";
com_message_pump (500);
if ($call->status == $convert->textToCallStatus("INPROGRESS")) $call->dtmf = "9";
com_message_pump (500);
if ($call->status == $convert->textToCallStatus("INPROGRESS")) $call->dtmf = "#";
com_message_pump (500);
if ($call->status == $convert->textToCallStatus("INPROGRESS")) $call->dtmf = "*";

// Finish the call:
if ($call->status <> $convert->textToCallStatus("FINISHED")) $call->finish();

//Sleep:
com_message_pump (1000);

?>


Скрипт рабочий, в самом скайпе вылезет окошко с вопросом, "разрешить ли апачу юзать скайп?".

Когда ставлю совершать звонок в цикл и паузу между звонками, то скрипт выдаёт:

Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Skype4COM.Skype.1<br/><b>Description:</b> CALL: Action failed' in S:\home\test1.ru\www\s.php:56 Stack trace: #0 S:\home\test1.ru\www\s.php(56): variant->finish() #1 {main} thrown in S:\home\test1.ru\www\s.php on line 56

iron-viper
16.04.2009, 11:40
может в денвере модуля какого не хватает?

inlanger
16.04.2009, 11:41
Вроде не в денвере дело, ругается же Skype4COM, да и ругается при добавлении простого while

iron-viper
16.04.2009, 12:12
Да запустил у себя, только пришлось еще set_time_limit(0); вставить. скайп запустился спросил разрешения и в браузере выпал в ошибку

inlanger
16.04.2009, 12:13
На винде запускал? Может в ОС дело...

iron-viper
16.04.2009, 12:16
Да на Венде =)

Gar|k
16.04.2009, 12:44
Как то не разумно юзать COM обекты да еще и на PHP o_O
PHP не предназначен для этого, а на том же Си или Делфи ты бы сразу понял что, не так...

inlanger
16.04.2009, 12:47
А Си почти не знаю, а делфи считаю мёртвым. Пишу на пхп, потому и выбрал его. Раз простой звонок проходит, то можно и на PHP написать.

Gar|k
16.04.2009, 13:00
понятно )
я тебя могу понять ибо тоже щас занимаюсь перенесением/переписание кода улиты l2ping из набора Linux Bluez на WinCE (это в общем пинг для протокола L2CAP Bluetooth - можно в общем организовать DoS бт устройства)
кроме меня это никому не надо ...

но эммм в чем смысл твоего флудера...
типа я зайду на твою страницу в инете. допустим у меня есть скайп и он влючен, но ведь он выдаст мне предупреждание...

inlanger
16.04.2009, 13:04
Смысл моего флудера в том, чтобы иметь свой флудер. Потому как те что сейчас есть не хотят у меня работать. А это ещё и open source проект может быть )
Или организую платный сервис флуда. В любом случае - это полезная штука.

inlanger
16.04.2009, 17:36
Отпала надобность, в связи с http://forum.antichat.ru/thread116226.html