Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

php ami error: Broken pipe

0

При подключении через AMI из PHP-скрипта:

$socket = fsockopen($amihost,$amiport, $errno, $errstr, 1);
fputs($socket, "Action: Login\r\n");
fputs($socket, "UserName: $amilogin\r\n");
fputs($socket, "Secret: $ami
secret\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


что не так делаю?

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

спросил 2011-03-30 17:28:17 +0400

intent Gravatar intent
1 1 1 2
http://krasterisk.ru/

обновил 2011-03-30 19:04:38 +0400

Comments

дополнения к вопросу нужно писать в теле вопроса или в комментариях к нему svoy ( 2011-03-31 10:18:03 +0400 )редактировать
и вообще непрофессионально задавать такие вопросы имея в подписи компанию-интегратора решений на Астериск. Что подумают ваши клиенты?! svoy ( 2011-03-31 10:26:49 +0400 )редактировать

2 Ответа

0
  1. таймаут в сокете увеличьте, например до 20. Если исключить ошибки в передаче переменных, то это самая вероятная причина.
  2. добавьте паузу между входом и запуском первой команды. Обычно ставят полсекунды (usleep(500);)
ссылка удалить спам редактировать

ответил 2011-03-30 17:39:22 +0400

svoy Gravatar svoy
1603 1 4 20
http://svoy.in.ua/

обновил 2011-03-31 10:17:16 +0400

0

целиком скрипт выглядит вот так:

    $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:47:06 +0400

intent Gravatar intent
1 1 1 2
http://krasterisk.ru/

обновил 2011-03-30 17:54:13 +0400

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-03-30 17:28:17 +0400

Просмотрен: 2,987 раз

Обновлен: Mar 31 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.