Подключение через telnet AMI. Не работает. Что не так?

Добрый день.

Пытаюсь подключиться к MikoPBX из php через fsockopen с удаленного хоста. Получаю ошибку: ["Response"]=> string(5) "Error" ["Message"]=> string(25) "Missing action in request".

Хорошо, думаю, может я в программе чего не так делаю.

Запускаю putty. Подключаюсь к MikoPBX по telnet и порту 5038. Ввожу "Action: Login" enter "Username: user" enter "Secret: pwd" enter enter. Получаю на экране "Error" "Missing action in request".

Запускаю putty. Подключаюсь к MikoPBX по ssh и порту 22. Захожу в shell. Набираю busybox telnet 192.168.0.5 5038. Подключаюсь к Астериск. Ввожу "Action: Login" enter "Username: user" enter "Secret: pwd" enter enter и мне начинают сыпаться евенты, что свидетельствует о том, что я залогинен.

Ну, думаю, это из-за того, что я подключаюсь не локально, но решаю проверить.

Запускаю командную строку Windows. telnet 192.168.0.5 5038. Ввожу "Action: Login" enter "Username: user" enter "Secret: pwd" enter enter и, о чудо, посыпались евенты, как будь-то я подключен локально.

Что не так? Настройки какие-то? Но где?

Вероятно включен firewall и закрыт порт на входящие соединения.

Проверьте в разделе “Сетевой экран”, что порт AMI открыт.

Пока ждал ответа, разобрался сам. Проблема оказалась в знаках завершения строки. Если брать конкретно php, то в Windows это “\r\n”, а в Linux “\n”. Почему корректно не работает putty, разбираться не стал.