Столкнулся с проблемой при написании скрипта изменяющего диалплан астериска. AMI 1.1 отвечает "Too many lines in message or allocation failure". Астериск 1.4 сообщает Response: Success, но как надо не делает.
скрипт следующего содержания:
fputs($socket, "Action: UpdateConfig\r\n");
fputs($socket, "SrcFilename: extensions.conf\r\n");
fputs($socket, "DstFilename: extensions.conf\r\n");
fputs($socket, "Action-000000: Delete\r\n");
fputs($socket, "Cat-000000: $context\r\n");
fputs($socket, "Var-000000: exten\r\n");
fputs($socket, "Action: UpdateConfig\r\n");
fputs($socket, "SrcFilename: extensions.conf\r\n");
fputs($socket, "DstFilename: extensions.conf\r\n");
fputs($socket, "Action-000001: Append\r\n");
fputs($socket, "Cat-000001: $context\r\n");
fputs($socket, "Var-000001: exten\r\n");
fputs($socket, "Value-000001: > s,1,Answer()\r\n");
...
fputs($socket, "Action: UpdateConfig\r\n");
fputs($socket, "SrcFilename: extensions.conf\r\n");
fputs($socket, "DstFilename: extensions.conf\r\n");
fputs($socket, "Action-000018: Append\r\n");
fputs($socket, "Cat-000018: $context\r\n");
fputs($socket, "Var-000018: exten\r\n");
fputs($socket, 'Value-000018: > s,n,Queue('.$_POST['queue'].',tH,,,5000)'."\r\n");
Action-000017 еще обрабатывается, а вот Action-000018 уже нет.
Как можно обойти данную проблему?
а прочитать спецификацию слабо?
между отдельными Action надо добавить еще один "\r\n"(пустую строку).
Задан: Dec 7 '12
Просмотрен: 273 раз
Обновлен: Dec 07 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Есть у меня подозрения , что это не AMI возвращает.
zzuz (Dec 7 '12)editИ зачем Вы сразу три события пихаете , по одному нельзя?
zzuz (Dec 7 '12)edit>И зачем Вы сразу три события пихаете , по одному нельзя? как сделать по одному?
возвращает AMI
prq (Dec 7 '12)editВыполните вручную и всё поймете. Заодно что-нибудь о буферах в сокетах прочтите.
zzuz (Dec 7 '12)edit