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

Переадресация внешнего звонка на внешний номер (blind trans)

СообщениеДобавлено: 03 апр 2019, 16:18
Hanharr
Всем Приветствую вас, коллеги.

Подскажите, если совершить звонок внутри офиса с одного номера на другой и на последнем выполнить пере направление звонка на внешний номер, то звонок уходит нормально. Но, если совершить звонок во внутренню сеть и затем его попытаться перенаправить, то звонок просто скидывается. Звонок перенаправляю используя blind transfer.

В логе при этом:

Код: выделить все
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] features.c:     -- Blind transferring SIP/mf_305-0000398b to '7<номер кому хочу отправить звонок>' (context from-internal-xfer) priority 1
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] res_musiconhold.c:     -- Stopped music on hold on SIP/mf_305-0000398b
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] app_macro.c:   == Channel 'SIP/mf_305-0000398b' jumping out of macro 'dial-one'
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] app_macro.c:   == Channel 'SIP/mf_305-0000398b' jumping out of macro 'exten-vm'
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [7<номер кому хочу отправить звонок>@from-internal-xfer:1] Macro("SIP/mf_305-0000398b", "user-callerid,SKIPTTL,") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-user-callerid:1] Set("SIP/mf_305-0000398b", "AMPUSER=7<номер от кого пришел звонок изначально>") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-user-callerid:2] GotoIf("SIP/mf_305-0000398b", "0?report") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-user-callerid:3] ExecIf("SIP/mf_305-0000398b", "0?Set(REALCALLERIDNUM=7<номер от кого пришел звонок изначально>)") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-user-callerid:4] Set("SIP/mf_305-0000398b", "AMPUSER=") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-user-callerid:5] Set("SIP/mf_305-0000398b", "AMPUSERCIDNAME=") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-user-callerid:6] GotoIf("SIP/mf_305-0000398b", "1?report") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Goto (macro-user-callerid,s,10)
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-user-callerid:10] GotoIf("SIP/mf_305-0000398b", "1?continue") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Goto (macro-user-callerid,s,19)
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-user-callerid:19] Set("SIP/mf_305-0000398b", "CALLERID(number)=7<номер от кого пришел звонок изначально>") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-user-callerid:20] Set("SIP/mf_305-0000398b", "CALLERID(name)=test_phone_(Иванов_Иван_Ива") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-user-callerid:21] NoOp("SIP/mf_305-0000398b", "Using CallerID "test_phone_(Иванов_Иван_Ива" <7<номер от кого пришел звонок изначально>>") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Auto fallthrough, channel 'SIP/mf_305-0000398b' status is 'ANSWER'
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [h@from-internal-xfer:1] Macro("SIP/mf_305-0000398b", "hangupcall") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:1] GotoIf("SIP/mf_305-0000398b", "1?endmixmoncheck") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Goto (macro-hangupcall,s,9)
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:9] NoOp("SIP/mf_305-0000398b", "End of MIXMON check") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:10] GotoIf("SIP/mf_305-0000398b", "1?nomeetmemon") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Goto (macro-hangupcall,s,28)
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:28] NoOp("SIP/mf_305-0000398b", "End of MEETME check") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:29] GotoIf("SIP/mf_305-0000398b", "1?noautomon") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Goto (macro-hangupcall,s,34)
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:34] NoOp("SIP/mf_305-0000398b", "TOUCH_MONITOR_OUTPUT=") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:35] GotoIf("SIP/mf_305-0000398b", "1?noautomon2") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Goto (macro-hangupcall,s,41)
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:41] NoOp("SIP/mf_305-0000398b", "MONITOR_FILENAME=") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:42] GotoIf("SIP/mf_305-0000398b", "1?skiprg") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Goto (macro-hangupcall,s,45)
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:45] GotoIf("SIP/mf_305-0000398b", "1?skipblkvm") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Goto (macro-hangupcall,s,48)
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:48] GotoIf("SIP/mf_305-0000398b", "1?theend") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Goto (macro-hangupcall,s,50)
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:50] AGI("SIP/mf_305-0000398b", "hangup.agi") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] res_agi.c:     -- Launched AGI Script /var/lib/asterisk/agi-bin/hangup.agi
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] res_agi.c:     -- <SIP/mf_305-0000398b>AGI Script hangup.agi completed, returning 0
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-hangupcall:51] Hangup("SIP/mf_305-0000398b", "") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] app_macro.c:   == Spawn extension (macro-hangupcall, s, 51) exited non-zero on 'SIP/mf_305-0000398b' in macro 'hangupcall'
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:   == Spawn extension (from-internal-xfer, h, 1) exited non-zero on 'SIP/mf_305-0000398b'


Подскажите, куда копать?

Re: Переадресация внешнего звонка на внешний номер (blind tr

СообщениеДобавлено: 03 апр 2019, 17:05
ded
Копать не надо, читайте лог:
channel 'SIP/mf_305-0000398b' (из которого прибежал внешний вызов) имеет status is 'ANSWER', и не может быть использован для выполнения исходящего вызова.

Re: Переадресация внешнего звонка на внешний номер (blind tr

СообщениеДобавлено: 03 апр 2019, 17:11
Hanharr
ded писал(а):channel 'SIP/mf_305-0000398b' (из которого прибежал внешний вызов) имеет status is 'ANSWER'


И как быть? Реально вообще настроить подобную "хотелку"?

Re: Переадресация внешнего звонка на внешний номер (blind tr

СообщениеДобавлено: 03 апр 2019, 18:07
ded
Представьте упрощённый вариант: офисную АТС, 5 абонентов и 1 аналоговую городскую линию к ней.
Один абонент набрал другого, и тот сделал трансфер на внешний номер, кому-то на мобильный, он ушёл через городскую линию, так?
Пришёл звонок из города, вы его трансферите назад в город. Как это сделать, если всего одна одноканальная линия?

Познайте сущность многоканальности!

Re: Переадресация внешнего звонка на внешний номер (blind tr

СообщениеДобавлено: 03 апр 2019, 18:28
Hanharr
Я понимаю, что нужно отправить звонок другим транком. Но, не совсем понимаю как. К тому же, по идее нет проблемы отправить звонок тем же транком, каким он пришел (мы арендуем несколько исходящих линий для каждого транка.)

Re: Переадресация внешнего звонка на внешний номер (blind tr

СообщениеДобавлено: 03 апр 2019, 18:57
ded
Hanharr писал(а): по идее нет проблемы отправить звонок тем же транком, каким он пришел (мы арендуем несколько исходящих линий для каждого транка.)

А проверяли?
А можете проверить?
Создать один звонок наружу, не заканчивая -
создвть ещё один звонок наружу, не заканчивая -
создвть ещё один звонок наружу.

Если всё ОК, тогда видно, что вас отбрасывает после 20-го шага в макросе macro-user-callerid
Код: выделить все
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-user-callerid:20] Set("SIP/mf_305-0000398b", "CALLERID(name)=test_phone_(Иванов_Иван_Ива") in new stack
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c:     -- Executing [s@macro-user-callerid:21] NoOp("SIP/mf_305-0000398b", "Using CallerID "test_phone_(Иванов_Иван_Ива" <7<номер от кого пришел звонок изначально>>") in new stack
Скорее всего ваш провайдер SIP/mf_305 не даёт вам оригинироваться с номером, который вам не принадлежит - <7<номер от кого пришел звонок изначально>
И поэтому -
[2019-04-03 13:36:37] VERBOSE[13900][C-00001670] pbx.c: -- Executing [h@from-internal-xfer:1] Macro("SIP/mf_305-0000398b", "hangupcall") in new stack

Надо поставить закрывающий номер, который вам выдал провайдер, или договариваться с ним о подавлении номер, на транке SIP/mf_305, и тогда будет всё ОК.

Re: Переадресация внешнего звонка на внешний номер (blind tr

СообщениеДобавлено: 03 апр 2019, 21:32
Hanharr
ded писал(а):А проверяли?
А можете проверить?


Так работает несколько отделов продаж. Звонят одним своим транком.

Hanharr писал(а):Надо поставить закрывающий номер, который вам выдал провайдер, или договариваться с ним о подавлении номер, на транке SIP/mf_305, и тогда будет всё ОК.


Т.е. при переадресации входящего звонка обратно во вне, я должен подставить номер, который закреплен за транком (выдал мне провайдер), правильно? В попытках разобраться самостоятельно наткнулся на то, что нужно заполнить поле Outbound CID. Как я понимаю, в этом случае номер из этого поля будет передаваться провайдеру.

Re: Переадресация внешнего звонка на внешний номер (blind tr

СообщениеДобавлено: 04 апр 2019, 01:29
ded
Hanharr писал(а):при переадресации входящего звонка обратно во вне, я должен подставить номер, который закреплен за транком (выдал мне провайдер), правильно?
Правильно.
Hanharr писал(а):В попытках разобраться самостоятельно наткнулся на то, что нужно заполнить поле Outbound CID. Как я понимаю, в этом случае номер из этого поля будет передаваться провайдеру.
Ну да, я вообще то и написал про это же (выше).
Замечу, что когда создаёте транк, и не заполняете поле Outbound CID, то freePBX прямо кричит и напоминает о том,что его надо бы заполнить.

Re: Переадресация внешнего звонка на внешний номер (blind tr

СообщениеДобавлено: 04 апр 2019, 14:13
Hanharr
ded писал(а):Замечу, что когда создаёте транк, и не заполняете поле Outbound CID, то freePBX прямо кричит и напоминает о том,что его надо бы заполнить.


Оно заполнено в транках. Попробую указать в SIP конкретному пользователю. Спасибо.