Страница 1 из 3

ANSWEREDTIME выдает 0

Добавлено: 26 авг 2015, 07:36
EShara
Добрый день Уважаемые форумчане! Прошу вашей помощи в решение проблемы.
И так суть проблемы: с помощью функции callback asterisk вызывает опред. номер Б, после ответа Б,
выполняется контекст [callback], абонент Б набирает пароль(управление передается скрипту test.php,
если пароль правильный скрипт test.php направляет вызов на контекст [trunkcall], абонент Б набирает
номер С, поговорив с номером С ложит трубку. Я получаю ANSWEREDTIME =0. в чем проблема? Если
вместо ANSWEREDTIME ставлю CDR(billsec) то время вызова подсчитывается с начала выполнения контекста [trunkcall]
а мне надо с момента когда ответил абонент С. раньше эта схема работала в Asterisk 11, после установки
Asterisk 12 перестала работать.

В чем может быть проблема?

[callback]
exten => s,1, Background(agent-pass)
exten => s,2,WaitExten()
exten => _XXXXXXXX,1,AGI(/etc/asterisk/agiscript/tipodisa.php, ${cid})
exten => t,1,Playback(tt-monkeysintro)
exten => t,2,Goto(s,2)
exten => i,1,Playback(vm-invalidpassword)
exten => i,2,Goto(s,2)

[trunkcall]
exten => s,1, Background(dial-exten)
exten => s,n,WaitExten(15)
exten =>_9XXXXXX,1,Dial(SIP/proton/${EXTEN:1},,tTrS(${var1}))
exten =>_9XXXXXX,n,NoOp( Answered Time: ${ANSWEREDTIME})
exten => h,1,AGI(/etc/asterisk/agiscript/timesum.php, ${ANSWEREDTIME}, ${cid})

Re: ANSWEREDTIME выдает 0

Добавлено: 26 авг 2015, 08:20
virus_net
EShara писал(а):Я получаю ANSWEREDTIME =0
где логи ? покажите исполнение диалплана в CLI
EShara писал(а):exten =>_9XXXXXX,n,NoOp( Answered Time: ${ANSWEREDTIME})
Точно не будет, т.к. в Dial отсутствует опция g, а вот на исполнение строки с AGI хотелось бы посмотреть.
Так же попробовать добавить перед AGI выполнение DumpChan и посмотреть что он покажет.

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

CLI> core show application DumpChan

Re: ANSWEREDTIME выдает 0

Добавлено: 26 авг 2015, 08:56
EShara
== Using SIP RTP CoS mark 5
-- Called proton/XXXXXXXXXX
-- SIP/proton-0000004a is ringing
-- SIP/proton-0000004a answered
-- Executing [s@callback:1] BackGround("SIP/proton-0000004a", "agent-pass") in new stack
-- <SIP/proton-0000004a> Playing 'agent-pass.alaw' (language 'ru')
> 0xb1c431d0 -- Probation passed - setting RTP source address to XXX.XXX.XXX.XXX:7930
-- Executing [s@callback:2] WaitExten("SIP/proton-0000004a", "") in new stack
-- Executing [88888888@callback:1] AGI("SIP/proton-0000004a", "/etc/asterisk/agiscript/tipodisa.php, XXXXXXXXXX") in new stack
-- Launched AGI Script /etc/asterisk/agiscript/tipodisa.php
-- AGI Script Executing Application: (Playback) Options: (18)
-- <SIP/proton-0000004a> Playing '18.alaw' (language 'ru')
-- AGI Script Executing Application: (Playback) Options: (seconds)
-- <SIP/proton-0000004a> Playing 'seconds.alaw' (language 'ru')
-- AGI Script Executing Application: (Goto) Options: (trunkcall,s,1)
-- Goto (trunkcall,s,1)
-- <SIP/proton-0000004a>AGI Script /etc/asterisk/agiscript/tipodisa.php completed, returning 0
-- Executing [s@trunkcall:1] BackGround("SIP/proton-0000004a", "dial-exten") in new stack
-- <SIP/proton-0000004a> Playing 'dial-exten.gsm' (language 'ru')
-- Executing [s@trunkcall:2] WaitExten("SIP/proton-0000004a", "15") in new stack
-- Executing [9ZZZZZZ@trunkcall:1] Dial("SIP/proton-0000004a", "SIP/proton/ZZZZZZ,,tTrS(18)") in new stack
-- Setting call duration limit to 18.000 seconds.
== Using SIP RTP CoS mark 5
-- Called SIP/proton/ZZZZZZ
-- SIP/proton-0000004b is ringing
-- SIP/proton-0000004b answered SIP/proton-0000004a
-- Channel SIP/proton-0000004a joined 'simple_bridge' basic-bridge <fcf79744-06b7-4777-b865-33da63424d5c>
-- Channel SIP/proton-0000004b joined 'simple_bridge' basic-bridge <fcf79744-06b7-4777-b865-33da63424d5c>
> 0xb1c07d38 -- Probation passed - setting RTP source address to XXX.XXX.XXX.XXX:7932
-- Channel SIP/proton-0000004b left 'simple_bridge' basic-bridge <fcf79744-06b7-4777-b865-33da63424d5c>
-- Channel SIP/proton-0000004a left 'simple_bridge' basic-bridge <fcf79744-06b7-4777-b865-33da63424d5c>
== Spawn extension (trunkcall, 9ZZZZZZ, 1) exited non-zero on 'SIP/proton-0000004a'
-- Executing [h@trunkcall:1] AGI("SIP/proton-0000004a", "/etc/asterisk/agiscript/timesum.php, 0, XXXXXXXXXX") in new stack
-- Launched AGI Script /etc/asterisk/agiscript/timesum.php
-- <SIP/proton-0000004a>AGI Script /etc/asterisk/agiscript/timesum.php completed, returning 0
[Aug 26 12:48:37] NOTICE[3857]: pbx_spool.c:402 attempt_thread: Call completed to SIP/proton/8XXXXXXXXXX

Re: ANSWEREDTIME выдает 0

Добавлено: 26 авг 2015, 09:06
EShara
Вот добавил опцию g

Executing [9ZZZZZZ@trunkcall:2] NoOp("SIP/proton-0000004d", " Answered Time: 0") in new stack
-- Auto fallthrough, channel 'SIP/proton-0000004d' status is 'ANSWER'
-- Executing [h@trunkcall:1] AGI("SIP/proton-0000004d", "/etc/asterisk/agiscript/timesum.php, 0, XXXXXXXXXX") in new stack
-- Launched AGI Script /etc/asterisk/agiscript/timesum.php
-- <SIP/proton-0000004d>AGI Script /etc/asterisk/agiscript/timesum.php completed, returning 0

Re: ANSWEREDTIME выдает 0

Добавлено: 26 авг 2015, 09:52
ded
Уменя вопрос такой: если это работало в Астериске 11, на кой было переставлять на 12-й?
Извечный вопрос: есдить, или шашечки на жёлтом фоне?

Re: ANSWEREDTIME выдает 0

Добавлено: 26 авг 2015, 10:04
EShara
Где то читал что четные версии Asteriska стабильные, а не четные типо тестовые. Еще обновил Ubuntu Server 14 до 15, обновился все перекривило. Ну общем из-за тупости и неопытности.

Но!!! Вот ниже представленный коде, я получаю нормальный ANSWEREDTIME
[trunk]
exten =>_9XXXXXX,1,AGI(/etc/asterisk/agiscript/check_gts_mgmn.php) ;оправить на скрипт
exten =>_98NXXXXXXXXX,1,AGI(/etc/asterisk/agiscript/check_gts_mgmn.php)
exten =>_9XXXXXX,2,Dial(SIP/proton/${EXTEN:1},,tTr) ;${EXTEN:1 - кол-во обрезаемых цифр
exten =>_98NXXXXXXXXX,2,Dial(SIP/proton/${EXTEN:1},,tTr)
exten => h,1,AGI(/etc/asterisk/agiscript/test.php, ${ANSWEREDTIME})

== Using SIP RTP CoS mark 5
-- Executing [9ZZZZZZ@default:1] AGI("SIP/1001-00000017", "/etc/asterisk/agiscript/check_gts_mgmn.php") in new stack
-- Launched AGI Script /etc/asterisk/agiscript/check_gts_mgmn.php
<SIP/1001-00000017>AGI Tx >> agi_request: /etc/asterisk/agiscript/check_gts_mgmn.php
<SIP/1001-00000017>AGI Tx >> agi_channel: SIP/1001-00000017
<SIP/1001-00000017>AGI Tx >> agi_language: ru
<SIP/1001-00000017>AGI Tx >> agi_type: SIP
<SIP/1001-00000017>AGI Tx >> agi_uniqueid: 1440572483.36
<SIP/1001-00000017>AGI Tx >> agi_version: 12.8.2
<SIP/1001-00000017>AGI Tx >> agi_callerid: 1001
<SIP/1001-00000017>AGI Tx >> agi_calleridname: 1001
<SIP/1001-00000017>AGI Tx >> agi_callingpres: 0
<SIP/1001-00000017>AGI Tx >> agi_callingani2: 0
<SIP/1001-00000017>AGI Tx >> agi_callington: 0
<SIP/1001-00000017>AGI Tx >> agi_callingtns: 0
<SIP/1001-00000017>AGI Tx >> agi_dnid: 9ZZZZZZ
<SIP/1001-00000017>AGI Tx >> agi_rdnis: unknown
<SIP/1001-00000017>AGI Tx >> agi_context: default
<SIP/1001-00000017>AGI Tx >> agi_extension: 9ZZZZZZ
<SIP/1001-00000017>AGI Tx >> agi_priority: 1
<SIP/1001-00000017>AGI Tx >> agi_enhanced: 0.0
<SIP/1001-00000017>AGI Tx >> agi_accountcode:
<SIP/1001-00000017>AGI Tx >> agi_threadid: -1323549888
<SIP/1001-00000017>AGI Tx >>
<SIP/1001-00000017>AGI Rx << EXEC Set CALLERID(all)=9YYYYYYYYYYY
-- AGI Script Executing Application: (Set) Options: (CALLERID(all)=9YYYYYYYYYY)
<SIP/1001-00000017>AGI Tx >> 200 result=0
-- <SIP/1001-00000017>AGI Script /etc/asterisk/agiscript/check_gts_mgmn.php completed, returning 0
-- Executing [9ZZZZZZ@default:2] Dial("SIP/1001-00000017", "SIP/proton/ZZZZZZ,,tTr") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/proton/ZZZZZZ
-- SIP/proton-00000018 is ringing
-- SIP/proton-00000018 answered SIP/1001-00000017
-- Channel SIP/1001-00000017 joined 'simple_bridge' basic-bridge <2b5ef859-2333-4d2c-a16a-b803d9bf0b54>
-- Channel SIP/proton-00000018 joined 'simple_bridge' basic-bridge <2b5ef859-2333-4d2c-a16a-b803d9bf0b54>
> 0xb6d04278 -- Probation passed - setting RTP source address to XXX.XXX.XXX.XXX:7126
> 0xb21fd0f8 -- Probation passed - setting RTP source address to XXX.XXX.XXX.XXX:8000
-- Channel SIP/proton-00000018 left 'simple_bridge' basic-bridge <2b5ef859-2333-4d2c-a16a-b803d9bf0b54>
-- Channel SIP/1001-00000017 left 'simple_bridge' basic-bridge <2b5ef859-2333-4d2c-a16a-b803d9bf0b54>
== Spawn extension (default, 9ZZZZZZ, 2) exited non-zero on 'SIP/1001-00000017'
-- Executing [h@default:1] AGI("SIP/1001-00000017", "/etc/asterisk/agiscript/test.php, 3") in new stack

Re: ANSWEREDTIME выдает 0

Добавлено: 26 авг 2015, 10:11
Wapo
Видел аналогичные выводы - причина была в том что забыли в manager.conf поставить enable = yes !!!!

Re: ANSWEREDTIME выдает 0

Добавлено: 26 авг 2015, 10:18
EShara
Стоит enabled = yes

Re: ANSWEREDTIME выдает 0

Добавлено: 26 авг 2015, 10:57
Wapo
<SIP/1001-00000017>AGI Tx >> agi_request: /etc/asterisk/agiscript/check_gts_mgmn.php
<SIP/1001-00000017>AGI Tx >> agi_channel: SIP/1001-00000017
<SIP/1001-00000017>AGI Tx >> agi_language: ru
<SIP/1001-00000017>AGI Tx >> agi_type: SIP
<SIP/1001-00000017>AGI Tx >> agi_uniqueid: 1440572483.36
<SIP/1001-00000017>AGI Tx >> agi_version: 12.8.2
Именно этот вывод светился когда из php нельзя было подключиться к AMI. Разрешен - хорошо, но не мешает проверить пользователя/пароль

Re: ANSWEREDTIME выдает 0

Добавлено: 26 авг 2015, 11:01
EShara
Как видно из дебага, вызывается номер ZZZZZZ занимается канал SIP/proton-0000001e а NoOp выполняется для канала ("SIP/proton-0000001d")

-- Called SIP/proton/ZZZZZZ
-- SIP/proton-0000001e is ringing
-- SIP/proton-0000001e answered SIP/proton-0000001d
-- Channel SIP/proton-0000001d joined 'simple_bridge' basic-bridge <8afa8a78-79fd-4eb8-ab4b-309f0b3e01b6>
-- Channel SIP/proton-0000001e joined 'simple_bridge' basic-bridge <8afa8a78-79fd-4eb8-ab4b-309f0b3e01b6>
> 0xb2208200 -- Probation passed - setting RTP source address to XXX.XXX.XXX.XXX:7156
-- Channel SIP/proton-0000001e left 'simple_bridge' basic-bridge <8afa8a78-79fd-4eb8-ab4b-309f0b3e01b6>
-- Channel SIP/proton-0000001d left 'simple_bridge' basic-bridge <8afa8a78-79fd-4eb8-ab4b-309f0b3e01b6>
-- Executing [9ZZZZZZ@trunkcall:2] NoOp("SIP/proton-0000001d", " Answered Time: 0") in new stack
-- Auto fallthrough, channel 'SIP/proton-0000001d' status is 'ANSWER'
-- Executing [h@trunkcall:1] AGI("SIP/proton-0000001d", "/etc/asterisk/agiscript/timesum.php, 0, XXXXXXXXXXXX") in new stack
-- Launched AGI Script /etc/asterisk/agiscript/timesum.php