我試圖撥打從PHP(我有一個數據庫中的客戶名單,並認爲我可以用它來他們打電話時,我對他們的名字點擊電話號碼串行調制解調器撥號窗口從PHP
這裏我的代碼,它似乎並沒有工作。我可以聽到電話線點擊,但它似乎並沒有撥打。也許我缺少的,需要先發送到ATDT一些命令?
$device = "COM4";
exec("mode $device BAUD=9600 PARITY=n DATA=8 STOP=1 xon=off octs=off rts=on");
$comport = fopen($device, "r+b");
if ($comport === false) {
die ("Failed opening com port");
} else {
echo "Com Port Open";
}
stream_set_blocking($comport, 0);
$atcmd = "ATDT222222222222\r"; // dial fake number
if (fwrite($comport, $atcmd) === false) {
die ("Failed writing to com port");
} else {
echo "Wrote $atcmd to com port";
}
sleep(10); // added fix to make program work, was closing port too soon for it to dial
fclose($comport);
爲什麼打開無阻塞,如果你是無論如何只要睡覺?完成後讓腳本阻塞然後關閉不是更好嗎?睡覺()劈啪作響。 – 2010-04-14 04:13:45
我不知道爲什麼它使用非阻塞,我使用的是我在網上找到的類php_serial,並且將其簡化爲針對此問題的基礎。 我不知道有關端口,阻塞/非阻塞等,所以我離開它,因爲我發現它。 我同意使用睡眠(10)有點令人費解,但對於有限的使用此腳本將得到,我會爲我工作得很好。不過好點。 – bumperbox 2010-04-14 22:28:14