AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Проблема с AMI в Asterisk 1.8

Asterisk IP PBX 8 сообщений -
#1

Добрый день!

Ранее на 1.6 инициировал звонок из перлового скрипта через AMI. После перехода на 1.8 работать перестало.
После отправки данных в сокет происходит отключение. В Астериске никаких действий не происходит. В логах пусто. Консоль Астериска, открытая в другом окне, тупо закрывается и выдает
Код:
== Manager 'admin' logged on from 127.0.0.1
CLI>
Disconnected from Asterisk server
Executing last minute cleanups


Вот что происходит при подключении к сокету через телнет:

Код:
telnet 127.0.0.1 5038
Trying 127.0.0.1...
Connected to centos.local (127.0.0.1).
Escape character is '^]'.
Asterisk Call Manager/1.1
Action: Login
UserName: admin
Secret: ******

Response: Success
Message: Authentication accepted

Event: FullyBooted
Privilege: system,all
Status: Fully Booted

Action: Originate
Channel: Local/s@synth_message_leg1/n
Context: synth_message_leg2
Priority: 1
Exten: s
Timeout: 60000
Variable: user_id=1
Variable: filename=mode1_level1_synth
Async: true

Response: Success
Message: Originate successfully queued

Event: Newchannel
Privilege: call,all
Channel: Local/s@synth_message_leg1-70bb;1
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum:
CallerIDName:
AccountCode:
Exten: s
Context: synth_message_leg1
Uniqueid: 1343315196.0

Event: Newchannel
Privilege: call,all
Channel: Local/s@synth_message_leg1-70bb;2
ChannelState: 4
ChannelStateDesc: Ring
CallerIDNum:
CallerIDName:
AccountCode:
Exten: s
Context: synth_message_leg1
Uniqueid: 1343315196.1

Event: VarSet
Privilege: dialplan,all
Channel: Local/s@synth_message_leg1-70bb;1
Variable: filename
Value: mode1_level1_synth
Uniqueid: 1343315196.0

Event: VarSet
Privilege: dialplan,all
Channel: Local/s@synth_message_leg1-70bb;1
Variable: user_id
Value: 1
Uniqueid: 1343315196.0

Event: NewAccountCode
Privilege: call,all
Channel: Local/s@synth_message_leg1-70bb;1
Uniqueid: 1343315196.0
AccountCode:
OldAccountCode:

Event: NewCallerid
Privilege: call,all
Channel: Local/s@synth_message_leg1-70bb;1
CallerIDNum:
CallerIDName:
Uniqueid: 1343315196.0
CID-CallingPres: 67 (Number Unavailable)

Event: Newexten
Privilege: dialplan,all
Channel: Local/s@synth_message_leg1-70bb;2
Context: synth_message_leg1
Extension: s
Priority: 1
Application: Answer
AppData:
Uniqueid: 1343315196.1

Connection closed by foreign host.


В диалплане для теста указал
Код:
[synth_message_leg1]
exten => s,1,Answer()
exten => s,n,Wait(30)
exten => s,n,Hangup()

[synth_message_leg2]
exten => s,1,Answer()
exten => s,n,NoOp(test)
exten => s,n,Hangup()


В manager.conf:
Код:
[admin]
secret = ***---
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
write = system,call,agent,user,config,command,reporting,originate



Asterisk 1.8.12.0
Подскажите, в чем может быть проблема. С подобным багом впервые сталкиваюсь.
#2

Попробуйте
_________________
Intel Core 2 Duo E6400 @ 2.40GHz / 6Gb / 160Gb || Gentoo Linux || Asterisk 1.8.12
Решения телефонии на базе Asterisk || http://it-need.ru
#3

Попробовал.
Ответ на команду Action: Originate
Код:
Response: Error
ActionID: 6
Message: Invalid/unknown command: Action: Originate. Use Action: ListCommands to show available commands.


При том, что в ListCommands команда присутствует, при подключении по телнету тоже проходит, как в логе выше.
#4

Это вы вручную написали команду или с вкладки Misc ?
_________________
Intel Core 2 Duo E6400 @ 2.40GHz / 6Gb / 160Gb || Gentoo Linux || Asterisk 1.8.12
Решения телефонии на базе Asterisk || http://it-need.ru
#5

Это было вручную.
Через Misc то же, что было телнетом, но по крайней мере первая команда диалплана успевает проскочить.
После этого консоль Астериска закрывается, AMITest дисконнектится от сервера.

Код:
[2012-07-27 11:57:13] DEBUG[6635]: manager.c:1295 unref_mansession: Mansession: 0x9e83000 refcount now 2
-- Executing [s@synth_message_leg1:1] Answer("Local/s@synth_message_leg1-6393;2", "") in new stack
[2012-07-27 11:57:13] DEBUG[6636]: manager.c:1295 unref_mansession: Mansession: 0x9e83000 refcount now 2
centos*CLI>
Disconnected from Asterisk server
Executing last minute cleanups
#6

Какая ОС, ядро, как собирали Asterisk?
_________________
Intel Core 2 Duo E6400 @ 2.40GHz / 6Gb / 160Gb || Gentoo Linux || Asterisk 1.8.12
Решения телефонии на базе Asterisk || http://it-need.ru
#7

CentOS
2.6.18-194.32.1.el5xen #1 SMP Wed Jan 5 19:32:33 EST 2011 i686 i686 i386 GNU/Linux
Собирал из исходников.

Added after 3 hours 51 minutes:

Обновился до последнего 1.8, не помогло.
Ставлю 1.6, с теми же настройками - все работает.
Может в 1.8 как-то по-другому это делается?
Кто-то использует оригинацию на Local в 1.8? Покажите пример, пожалуйста.
#8

Коню понятно что Астериск падает.
1. Запускать Астериск в консольном режиме(ключ -c) и смотреть в него. rasterisk либо ключем -r не пользоваться - с ними Вы никогда не поймете чего там не так.
2. Построить Астериск с флагом ASTCFLAGS="-g" и с опцией "DONT_OPTIMIZE".
2.1 Пошарить по билд-скриптам в поисках команды strip и убрать её оттуда.
(2.2 Обратитесь в вики Астериска за подробными инструкциями как получить готовые к отладке бинарники)
3. В настройках лога поставить полное логирование в отдельный лог-файл.
Пробуйте повторить вылет. На сколько я понял, должен выпасть Segmentation fault.
В случае успеха пакуете логфайлы, слепок памяти, важные конфиги и постите багрепорт в Jira-е.

_________________
Slackware 13.37 - Asterisk 1.8