VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Проблема с подключением к AMI

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
kamvilena
Сообщения: 12
Зарегистрирован: 14 сен 2024, 13:50

Проблема с подключением к AMI

Сообщение kamvilena »

Есть скрипт на pyton для подключения к asterisk по порту 5038. При запуске выдает сообщение
>>> %Run ami.py
подключились
login OK
Traceback (most recent call last):
File "C:\work\Asterisk\ami.py", line 14, in <module>
data=tc.read_until(b'\n\r\n')
**********************скрипт************
import telnetlib
tc = telnetlib.Telnet(host ='192.168.1.3', port = 5038)
tc.read_until(b'Asterisk Call Manager/7.0.3')
print('подключились')
tc.write(b'Action: Login\n')
tc.write(b'Usernname: admin\n')
tc.write(b'Secret: 123456\n')
tc.write(b'\n')
tc.write(b'\n')
tc.read_until(b'Message: Authentification accepted')
print('login OK')

while True:
data=tc.read_until(b'\n\r\n')
sp_data = (data.decode()).splitlines()
if sp_data[0]=='Event: Hangup':
print(sp_data)
Скрипт запускается из программы Thonny, используется ОС Windows 11. С теми же параметрами для входа можно подключиться из командной строки утилитой telnet на порт 5038 и с помощью Putty (режим RAW). По сути ошибка возникает из-за того, что аутентификация через Thonny не проходит и соединение закрывается. Как исправить?
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с подключением к AMI

Сообщение ded »

Если с теми же параметрами для входа можно подключиться из командной строки утилитой telnet на порт 5038 и с помощью putty, но нельзя подключиться из Thonny, то, видимо, проблема в Thonny, и самый верный ход - обратиться к её создателям..
kamvilena
Сообщения: 12
Зарегистрирован: 14 сен 2024, 13:50

Re: Проблема с подключением к AMI

Сообщение kamvilena »

Через putty тоже долго и безуспешно пыталась подключиться, выбирая опцию telnet. Нашла информацию про различия в режимах RAW и telnet. Вот здесь ищу что-то аналогичное, возможно, проблема в считывании знаков пустой строки или др
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с подключением к AMI

Сообщение ded »

Дебаг на обеих концах соединения даст более глубокое понимание причин проблемы.
Телнет лучше бы попробовать из командной строки - power shell @ Windows 11.
Аватара пользователя
Zavr2008
Сообщения: 2211
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

Re: Проблема с подключением к AMI

Сообщение Zavr2008 »

Не понятно зачем изобретать очередной велосипед?

https://pypi.org/project/asterisk-ami/
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1,Подключение к ИС "Антифрод" E1 PRI/SS#7 УВР Телестор, Грифин и др..
kamvilena
Сообщения: 12
Зарегистрирован: 14 сен 2024, 13:50

Re: Проблема с подключением к AMI

Сообщение kamvilena »

Телнет лучше бы попробовать из командной строки - power shell @ Windows 11 - попробовала, также успешно все работает.
Про дебаг с двух сторон можно поподробнее? в /var/log/asterisk/messages записей про неуспешную аутентификацию не нахожу, по сути ничего про этот процесс вообще не пишется.

pip install asterisk-ami - такая команда у меня не работает. Пробовала иначе: yum install asterisk-ami (не нашлось такого пакета для установки)
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с подключением к AMI

Сообщение ded »

Про дебаг.
Если ваш ami.py работает, авторизация проходит, то на той стороне, где он запускается - дебаг можно увидеть натолкав доп. строки для отладки в этот самый ami.py, и сделать выхлоп в журнал, а не stdin.
Второй вопрос "как это сделать?" лежит уже в плоскости курсов "Питон для чайников", что выходит за рамки форума по Астериск, Если рассматривать запуск ami.py из диал-плана Астериска, то это делается через вызов AGI (EAGI, FastAGI)
exten => _X.1,EAGI(ami.py)
Тут можно включить отладку командой

Код: Выделить всё

CLI> agi set debug on
Ничего не знаю про программу Thonny, но дебаг на её стороне наверняка тоже возможен.

pip - инсталлятор для модулей python, если команды нету, то надо погружаться в дебри Питона, его модули, совместимость, virtual environment, версионность - отдельная галактика.
Method 1: Install PIP on Windows Using get-pip.py

Step 1: Download PIP get-pip.py. Before installing PIP, download the get-pip.py file. ...
Step 2: Installing PIP on Windows. To install PIP, run the following Python command: python get-pip.py. ...
Step 3: Verify Installation. ...
Step 4: Add Pip to Path. ...
Step 5: Configuration.
В среде линукс машин установить pip можно по разному, скачав скрипт get-pip.py например и запустив его самим Питоном.
https://pip.pypa.io/en/stable/installation/
kamvilena
Сообщения: 12
Зарегистрирован: 14 сен 2024, 13:50

Re: Проблема с подключением к AMI

Сообщение kamvilena »

Большое спасибо за подробный ответ, но проблема оказалась банальной - нашла ошибки в коде сценария, "usernname" и "Autentification" вместо "Autentication"
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH