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

отлуп звонка

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

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

shaverdoff
Сообщения: 197
Зарегистрирован: 04 апр 2011, 15:39
Контактная информация:

отлуп звонка

Сообщение shaverdoff »

Задача: при звонке на внутренний номер при не взятии трубки в течении 15 секунд переадресовывать вызов на мобильный.

Проблема: при попытке позвонить на мобильный номер происходит отбой звонка. Причем не у всех – в статистике видно что некоторые нормально дозваниваются до мобильных номеров.

Как реализовано:

1) Совершается исходящий вызов
2) Совершается вызов на внутренний номер с параметром таймаута
3) При не взятии трубки по истечению таймаут совершается звонок уже на мобильный номер

333 – внутренний номер, с которого нужно делать переадресацию при не взятии трубки.

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

[Outbound]
…
exten=>333,1, Set(DYNAMIC_FEATURES=TransferToOperator#TransferToSpyConf)   ; активация feature codes (перевод звонка, перевод звонка с прослушкой)
exten=>333,2, Set(CDR(from_number)=${CALLERID(num)})    ; установка в CDR номера звонящего
exten=>333,3, Set(CDR(call_type)=internal)         ; установка в CDR типа звонка «внутренний»
exten=>333,4, Goto(call-to-driver,${EXTEN},1)            ; переход в контекст звонка с переадресацией
…
 
[call-to-driver]
exten=>_X!,1, Macro(recordcall,Outbound,${CDR(uniqueid)},${CALLERID(num)},333)               ; запуск записи разговора
exten=>_X!,2, Set(CDR(answer_number)=333)              ; установка в CDR номера ответившего на звонок
exten=>_X!,3, Dial(IAX2/proxy/333@local,15)                  ; звонок на внутренний номер с таймаутом 15 секунд
; если трубку не взяли то диалплан идет дальше
exten=>_X!,4, Set(CDR(trunkname)=номер транка)      ; установка в CDR номера транка через который пойдет внешний вызов
exten=>_X!,5, Set(CDR(call_type)=outgoing)                  ; установка в CDR типа звонка «исходящий»
exten=>_X!,6,Dial(IAX2/proxy/номер мобильного@ctx124_out)        ; звонок на мобильный
exten=>_X!,7,HangUp()

вывод консоли:

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

   -- Executing [333@Outbound:1] Set("IAX2/proxy-13256", "DYNAMIC_FEATURES=TransferToOperator#TransferToSpyConf") in new stack
    -- Executing [333@Outbound:2] Set("IAX2/proxy-13256", "CDR(from_number)=9999") in new stack
    -- Executing [333@Outbound:3] Set("IAX2/proxy-13256", "CDR(call_type)=internal") in new stack
    -- Executing [333@Outbound:4] Goto("IAX2/proxy-13256", "call-to-driver,333,1") in new stack
    -- Goto (call-to-driver,333,1)
    -- Executing [333@call-to-driver:1] Macro("IAX2/proxy-13256", "recordcall,Outbound,1368600086.7177,9999,333") in new stack
    -- Executing [s@macro-recordcall:1] Set("IAX2/proxy-13256", "recordfolder=Outbound/15052013") in new stack
    -- Executing [s@macro-recordcall:2] Set("IAX2/proxy-13256", "createfolder=/var/callrecords/Outbound/15052013") in new stack
    -- Executing [s@macro-recordcall:3] Set("IAX2/proxy-13256", "CANT_RECORD_FROM=no") in new stack
    -- Executing [s@macro-recordcall:4] Set("IAX2/proxy-13256", "CANT_RECORD_TO=no") in new stack
    -- Executing [s@macro-recordcall:5] GotoIf("IAX2/proxy-13256", "1?s,6:perm-error,1") in new stack
    -- Goto (macro-recordcall,s,6)
    -- Executing [s@macro-recordcall:6] GotoIf("IAX2/proxy-13256", "1?s,7:perm-error,1") in new stack
    -- Goto (macro-recordcall,s,7)
    -- Executing [s@macro-recordcall:7] Goto("IAX2/proxy-13256", "record-start,1") in new stack
    -- Goto (macro-recordcall,record-start,1)
    -- Executing [record-start@macro-recordcall:1] Set("IAX2/proxy-13256", "CDR(callrecord)=Outbound/15052013/1368600086.7177.gsm") in new stack
    -- Executing [record-start@macro-recordcall:2] MixMonitor("IAX2/proxy-13256", "/var/callrecords/Outbound/15052013/1368600086.7177.gsm") in new stack
    -- Executing [333@call-to-driver:2] Set("IAX2/proxy-13256", "CDR(answer_number)=333") in new stack
    -- Executing [333@call-to-driver:3] Dial("IAX2/proxy-13256", "IAX2/proxy/333@local,15") in new stack
  == Begin MixMonitor Recording IAX2/proxy-13256
    -- Called IAX2/proxy/333@local
    -- Call accepted by 172.16.150.2 (format ulaw)
    -- Format for call is ulaw
    -- Nobody picked up in 15000 ms
    -- Executing [333@call-to-driver:4] Set("IAX2/proxy-13256", "CDR(trunkname)=88462000125") in new stack
    -- Executing [333@call-to-driver:5] Set("IAX2/proxy-13256", "CDR(call_type)=outgoing") in new stack
    -- Executing [333@call-to-driver:6] Dial("IAX2/proxy-13256", "IAX2/proxy/номер мобильного@ctx124_out") in new stack
    -- Called IAX2/proxy/номер мобильного@ctx124_out
    -- Call accepted by 172.16.150.2 (format ulaw)
    -- Format for call is ulaw
    -- IAX2/proxy-19777 is making progress passing it to IAX2/proxy-13256
    -- Hungup 'IAX2/proxy-19777'
дебаг звонка имеются

внутренний абонент звонит на 333 и если в течении 15 секунд 333 не берет трубку то идет переадресация звонка на сотовый.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: отлуп звонка

Сообщение ded »

Dial(IAX2/proxy/333@local,15) - откуда такой синтаксис взяли?
shaverdoff
Сообщения: 197
Зарегистрирован: 04 апр 2011, 15:39
Контактная информация:

Re: отлуп звонка

Сообщение shaverdoff »

что то не правильно? астериск 1.8.18 вероятно от туда.
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: отлуп звонка

Сообщение zzuz »

"333@local" - хороший номер. Простой 9ти значный номер.
Последний раз редактировалось zzuz 15 май 2013, 13:58, всего редактировалось 1 раз.
Линия24 - Системы Массового Телефонного Обслуживания
shaverdoff
Сообщения: 197
Зарегистрирован: 04 апр 2011, 15:39
Контактная информация:

Re: отлуп звонка

Сообщение shaverdoff »

333 внутренний номер, local контекст. судя по всему :) а в чем дело то? хватит угарать мужики:)))
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: отлуп звонка

Сообщение zzuz »

И где вывод звонка , когда 333 попадает в контекст local ?
Линия24 - Системы Массового Телефонного Обслуживания
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: отлуп звонка

Сообщение ded »

Я лично - не угораю. Делать переадресацию при не взятии трубки можно и нужно во FreePBX в модуле follow me. Вместо этого - колёсико из спичек и клея.
Проблема в том, что Вы взяли яблоко (законченый продукт), и произвели в нём генную модификацию - добавили ген кукурузы. Видимо хотели получить початок, а вместо зёрен - яблоки..
Перевожу с эзопового до на понятный русский язык. Зачем курочить готовую систему и сооружать [call-to-driver]???
Аватара пользователя
Sfinx
Сообщения: 672
Зарегистрирован: 21 июн 2011, 23:40
Откуда: Odessa
Контактная информация:

Re: отлуп звонка

Сообщение Sfinx »

freepbx - зло, он ж#пой чует, но выразить не может ;)
Rus

-----------
SfinxSoft
http://sfinxsoft.com
shaverdoff
Сообщения: 197
Зарегистрирован: 04 апр 2011, 15:39
Контактная информация:

Re: отлуп звонка

Сообщение shaverdoff »

ded писал(а):Dial(IAX2/proxy/333@local,15) - откуда такой синтаксис взяли?

http://www.voip-info.org/wiki/view/Asterisk+cmd+Dial
вот от сюда.
shaverdoff
Сообщения: 197
Зарегистрирован: 04 апр 2011, 15:39
Контактная информация:

Re: отлуп звонка

Сообщение shaverdoff »

это не фрипбх. это чистый астер. вебморда самописная. в чистом астере есть переадресация?
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH