Ранее на 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
Подскажите, в чем может быть проблема. С подобным багом впервые сталкиваюсь.
_________________
Intel Core 2 Duo E6400 @ 2.40GHz / 6Gb / 160Gb || Gentoo Linux || Asterisk 1.8.12
Решения телефонии на базе Asterisk || http://it-need.ru
Ответ на команду Action: Originate
| Код: |
| Response: Error ActionID: 6 Message: Invalid/unknown command: Action: Originate. Use Action: ListCommands to show available commands. |
При том, что в ListCommands команда присутствует, при подключении по телнету тоже проходит, как в логе выше.
_________________
Intel Core 2 Duo E6400 @ 2.40GHz / 6Gb / 160Gb || Gentoo Linux || Asterisk 1.8.12
Решения телефонии на базе Asterisk || http://it-need.ru
Через 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 |
_________________
Intel Core 2 Duo E6400 @ 2.40GHz / 6Gb / 160Gb || Gentoo Linux || Asterisk 1.8.12
Решения телефонии на базе Asterisk || http://it-need.ru
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? Покажите пример, пожалуйста.
1. Запускать Астериск в консольном режиме(ключ -c) и смотреть в него. rasterisk либо ключем -r не пользоваться - с ними Вы никогда не поймете чего там не так.
2. Построить Астериск с флагом ASTCFLAGS="-g" и с опцией "DONT_OPTIMIZE".
2.1 Пошарить по билд-скриптам в поисках команды strip и убрать её оттуда.
(2.2 Обратитесь в вики Астериска за подробными инструкциями как получить готовые к отладке бинарники)
3. В настройках лога поставить полное логирование в отдельный лог-файл.
Пробуйте повторить вылет. На сколько я понял, должен выпасть Segmentation fault.
В случае успеха пакуете логфайлы, слепок памяти, важные конфиги и постите багрепорт в Jira-е.
_________________
Slackware 13.37 - Asterisk 1.8