При подключении через AMI из PHP-скрипта:
$socket = fsockopen($amihost,$amiport, $errno, $errstr, 1);
fputs($socket, "Action: Login\r\n");
fputs($socket, "UserName: $amilogin\r\n");
fputs($socket, "Secret: $amisecret\r\n\r\n");
получаю:
== Manager 'admin' logged on from 127.0.0.1
Mar 30 21:16:13 ERROR29976: utils.c:1177 astcarefulfwrite: fwrite() returned error: Broken pipe
Mar 30 21:16:13 ERROR29976: utils.c:1177 astcarefulfwrite: fwrite() returned error: Broken pipe
Mar 30 21:16:13 ERROR29976: utils.c:1177 astcarefulfwrite: fwrite() returned error: Broken pipe
== Manager 'admin' logged off from 127.0.0.1
asterisk 1.8.2.3
Ubuntu 10.10
PHP/5.3.3-1ubuntu9.3
Apache/2.2.16
что не так делаю?
целиком скрипт выглядит вот так:
$socket = fsockopen($ami_host,$ami_port, $errno, $errstr, 1);
fputs($socket, "Action: Login\r\n");
fputs($socket, "UserName: $ami_login\r\n");
fputs($socket, "Secret: $ami_secret\r\n\r\n");
fputs($socket, "Action: Command\r\n");
fputs($socket, "Command: $command\r\n\r\n");
fputs($socket, "Action: Logoff\r\n\r\n");
В результате комманда не выполняется, в CLI вышеуказанная ошибка. Похоже, что проблема всё-таки в PHP. Телнетом всё работает.
Задан: 2011-03-30 17:28:17 +0400
Просмотрен: 3,035 раз
Обновлен: Mar 31 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.