При подключении к Asterisk Manager через сокет (в стиле telnet) после каждой команды существует 3-секундная задержка. Это нормально? Почему это так? Можно ли сразу вернуть ответ?
** РЕДАКТИРОВАТЬ **
дополнительная информация
все команды выполняются с отправкой \r\n
для разрывов строк плюс дополнительный \r\n
в конце.
Например :
Action: Command{\r\n}
Command: meetme list 204 concise{\r\n}
{\r\n}
нота : {\r\n}
на самом деле являются символами возврата каретки и новой строки, а не буквальной строкой, чтобы избежать путаницы и показать, что отправляется.
Есть ли у AMI трехсекундная задержка, потому что сервер Asterisk очень занят?
Нет ли задержек в сетевом соединении между клиентом и сервером или оно имеет собственное отставание?
Нет ли лагов в клиентской системе?
Наиболее вероятная причина заключается в том, что сервер Asterisk очень занят и отвечает, когда команда достигает начала команд в очереди.
У вас есть дополнительная информация?
попробуйте поставить конец строки (или нажмите Enter) дважды, как того требует спецификация;)
Похоже, что где-то глубоко внутри кода, который мы используем для связи с сервером AMI, была какая-то конструкция, которая добавляла время ожидания ожидания перед каждой операцией ввода-вывода. После небольшого изменения кода мне удалось удалить эту "функцию", и теперь все работает нормально "