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

Call файл и обработка h

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

Модератор: april22

Call файл и обработка h

Сообщение MMax » 12 дек 2018, 12:35

Столкнулся с проблемой, не могу понять почему так происходит. При создании звонка через call файл, неправильно отрабатывается окончание звонка. В h должен отработаться результат звонка и сделать запись в БД, но он срабатывает раньше, чем звонок завершится.

Call файл:
Код: выделить все
Channel: Local/9***10@office
MaxRetries: 1
RetryTime: 60
WaitTime: 30
Context: outgoing_dongle
Extension: 08904******0
Priority: 1


Звонок из cli (лишнее вырезал, чтобы не засорять. Там обработка статистики и поиск маршрутов):

Код: выделить все
   -- Attempting call on Local/9***10@office for 08904******0@outgoing_dongle:1 (Retry 1)
    -- Called 9***10@office
    -- Executing [9***10@office:1] NoOp("Local/9***10@office-00002901;2", "") in new stack
------------
    -- Executing [9***10@office:52] Goto("Local/9***10@office-00002901;2", "office_all,9***10,1") in new stack
    -- Goto (office_all,9***10,1)
    -- Executing [9***10@office_all:1] NoOp("Local/9***10@office-00002901;2", "") in new stack
    -- Executing [9***10@office_all:2] Dial("Local/9***10@office-00002901;2", "SCCP/9***10,50,tT") in new stack
    -- Called SCCP/9***10
    -- SCCP/9***10-00000566 is ringing
    -- Local/9***10@office-00002901;1 is ringing
    -- SCCP/9***10-00000566 answered Local/9***10@office-00002901;2
    -- Local/9***10@office-00002901;1 answered
    -- Executing [08904******0@outgoing_dongle:1] NoOp("Local/9***10@office-00002901;1", "") in new stack
-------------
    -- Executing [08904******0@outgoing_dongle:16] Dial("Local/9***10@office-00002901;1", "SIP/+7961******8/098904******0,60") in new stack
    -- Called SIP/+7961******8/098904******0
    -- Local/9***10@office-00002901;1 requested media update control 26, passing it to SIP/+7961******8-0000b9da
    -- SIP/+7961******8-0000b9da is making progress passing it to Local/9***10@office-00002901;1
-------------
    -- SIP/+7961******8-0000b9da answered Local/9***10@office-00002901;1
    -- Channel SIP/+7961******8-0000b9da joined 'simple_bridge' basic-bridge <0f75021e-95bf-4548-b6a8-eac34ad94257>
    -- Channel Local/9***10@office-00002901;1 joined 'simple_bridge' basic-bridge <0f75021e-95bf-4548-b6a8-eac34ad94257>
    -- Channel SCCP/9***10-00000566 left 'simple_bridge' basic-bridge <1349b2e6-dcf4-4af2-976d-c7d2b9a0fb5c>
    -- Channel Local/9***10@office-00002901;1 left 'simple_bridge' basic-bridge <0f75021e-95bf-4548-b6a8-eac34ad94257>
    -- Channel SCCP/9***10-00000566 swapped with Local/9***10@office-00002901;1 into 'simple_bridge' basic-bridge <0f75021e-95bf-4548-b6a8-eac34ad94257>
    -- Channel Local/9***10@office-00002901;2 left 'simple_bridge' basic-bridge <1349b2e6-dcf4-4af2-976d-c7d2b9a0fb5c>
  == Spawn extension (office_all, 9***10, 2) exited non-zero on 'Local/9***10@office-00002901;2'
    -- Executing [h@office_all:1] Goto("Local/9***10@office-00002901;2", "custom_cdr,s,1") in new stack
    -- Goto (custom_cdr,s,1)
  == Spawn extension (outgoing_dongle, 08904******0, 16) exited non-zero on 'Local/9***10@office-00002901;1'
    -- Executing [h@outgoing_dongle:1] NoOp("Local/9***10@office-00002901;1", "") in new stack
    -- Executing [h@outgoing_dongle:2] Goto("Local/9***10@office-00002901;1", "custom_cdr,s,1") in new stack
    -- Goto (custom_cdr,s,1)


В момент снятия трубки вызываемым абонентом, происходят следующие события:

Код: выделить все
   -- Channel SIP/+7961******8-0000b9da joined 'simple_bridge' basic-bridge <0f75021e-95bf-4548-b6a8-eac34ad94257>
    -- Channel Local/9***10@office-00002901;1 joined 'simple_bridge' basic-bridge <0f75021e-95bf-4548-b6a8-eac34ad94257>
    -- Channel SCCP/9***10-00000566 left 'simple_bridge' basic-bridge <1349b2e6-dcf4-4af2-976d-c7d2b9a0fb5c>
    -- Channel Local/9***10@office-00002901;1 left 'simple_bridge' basic-bridge <0f75021e-95bf-4548-b6a8-eac34ad94257>
    -- Channel SCCP/9***10-00000566 swapped with Local/9***10@office-00002901;1 into 'simple_bridge' basic-bridge <0f75021e-95bf-4548-b6a8-eac34ad94257>
    -- Channel Local/9***10@office-00002901;2 left 'simple_bridge' basic-bridge <1349b2e6-dcf4-4af2-976d-c7d2b9a0fb5c>


Все каналы выходят и начинается обработка h. Но связь не обрывается и абоненты прекрасно слышат друг друга. Разговор продолжается, пока один из них не положит трубку. После окончания звонка h уже не отрабатывает.

При этом, если абонент 9***10 совершает звонок с телефона, все отрабатывает нормально в тех же context'ах. Если нужны dialplan'ы, могу выложить.
MMax
 
Сообщений: 2
Зарегистрирован: 06 ноя 2018, 15:48

Re: Call файл и обработка h

Сообщение ded » 12 дек 2018, 14:14

связь не обрывается и абоненты прекрасно слышат друг друга, потому что в обработке h@outgoing_dongle нет шага
Hangup()

Код: выделить все
   -- Executing [h@outgoing_dongle:1] NoOp("Local/9***10@office-00002901;1", "") in new stack
    -- Executing [h@outgoing_dongle:2] Goto("Local/9***10@office-00002901;1", "custom_cdr,s,1") in new stack
    -- Goto (custom_cdr,s,1)
ded
 
Сообщений: 13759
Зарегистрирован: 26 авг 2010, 19:00


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 14

© 2008 — 2019 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH