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

Как мне подменить CallerID при "слепом" трансфере?

Проблемы Asterisk без вэб-оболочек и их решения

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

Zorgen
Сообщения: 8
Зарегистрирован: 11 июн 2013, 08:50

Как мне подменить CallerID при "слепом" трансфере?

Сообщение Zorgen »

Добрый день!

Проблему описывал на sysadmins.ru, но там мне не помогли. Может здесь кто-то знает, как мне при "слепом" трансфере подставлять в CalerID номер того кто делает этот транcфер или как мне отключить "слепой" трансфер для избранных?


Заранее благодарен!
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Как мне подменить CallerID при "слепом" трансфере?

Сообщение Vlad1983 »

как-то так

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

exten => _[1-689]XX,1,ExecIf($[ ${LEN(${BLINDTRANSFER})} > 0 ]?Set(TRANSFERUSER=${BLINDTRANSFER}) )
exten => _[1-689]XX,n,ExecIf($[ ${LEN(${TRANSFERERNAME})} > 0 ]?Set(TRANSFERUSER=${TRANSFERERNAME}) )
exten => _[1-689]XX,n,ExecIf($[ ${LEN(${TRANSFERUSER})} > 0 ]?Set(TRANSFERUSER=${CUT(TRANSFERUSER,-,1)}) )
exten => _[1-689]XX,n,ExecIf($[ ${LEN(${TRANSFERUSER})} > 0 ]?Set(TRANSFERUSER=${CUT(TRANSFERUSER,\/,2)}) )
exten => _[1-689]XX,n,ExecIf($[ "foo${TRANSFERUSER}" = "foo" ]?Set(__CID=${CALLERID(number)}) )
exten => _[1-689]XX,n,ExecIf($[ ${LEN(${TRANSFERUSER})} > 0 ]?Set(CALLERID(number)=${CID}-${TRANSFERUSER}) )
exten => _[1-689]XX,n,ExecIf($[ "foo${TRANSFERUSER}" != "foo" ]?Set(CALLERID(name)="ORIGINAL:${CID} TRANSFER:${TRANSFERUSER}") )
exten => _[1-689]XX,n,Dial(SIP/${EXTEN},,tT)
ЛС: @rostel
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: Как мне подменить CallerID при "слепом" трансфере?

Сообщение ded »

Добавление:
если blind transfer делается на входящем из города и на внутренний экстеншн, то он всегда будет очевиден (как внешний номер) для конечного абонента.
А если трансфер делается на мобильный - прямо, или через короткий номер speed dial, то будет подставляться легальный CallerID вашей станции, и никак не CallerID позвонившего.
Согласно Закону о связи РФ и пропуску номеров между операторами.
Zorgen
Сообщения: 8
Зарегистрирован: 11 июн 2013, 08:50

Re: Как мне подменить CallerID при "слепом" трансфере?

Сообщение Zorgen »

Спасибо за ответ и дополнение! Буду пробовать.
Zorgen
Сообщения: 8
Зарегистрирован: 11 июн 2013, 08:50

Re: Как мне подменить CallerID при "слепом" трансфере?

Сообщение Zorgen »

Правильно я понимаю значение этих строк? Если calerID передает номер отличный от того кто делает трансфер то вешать трубку или у меня не правильно отрабатывает?
Zorgen
Сообщения: 8
Зарегистрирован: 11 июн 2013, 08:50

Re: Как мне подменить CallerID при "слепом" трансфере?

Сообщение Zorgen »

Что я делаю не так?

localhost*CLI>
-- Accepting call from '495XXX9900' to '495XXX7924' on channel 0/1, span 1
-- Executing [495XXX7924@incoming_calls:1] NoOp("DAHDI/i1/495XXX9900-2e6", "") in new stack
-- Executing [495XXX7924@incoming_calls:2] Set("DAHDI/i1/495XXX9900-2e6", "CALLERID(num)=8495XXX9900") in new stack
-- Executing [495XXX7924@incoming_calls:3] Goto("DAHDI/i1/495XXX9900-2e6", "from-internal,,1") in new stack
-- Goto (from-internal,495XXX7924,1)
-- Executing [495XXX7924@from-internal:1] Verbose("DAHDI/i1/495XXX9900-2e6", "1,Extension 495XXX7924") in new stack
Extension 495XXX7924
-- Executing [495XXX7924@from-internal:2] Dial("DAHDI/i1/495XXX9900-2e6", "SIP/495XXX7924,12,tT") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/495XXX7924
-- SIP/495XXX7924-00001637 is ringing
-- SIP/495XXX7924-00001637 answered DAHDI/i1/495XXX9900-2e6
-- Started music on hold, class 'default', on DAHDI/i1/495XXX9900-2e6
-- Stopped music on hold on DAHDI/i1/495XXX9900-2e6
PRI Span: 1 Ignored redirecting update because call in state Active(10).
== Spawn extension (test, 8XXX4695123, 1) exited non-zero on 'DAHDI/i1/495XXX9900-2e6'
-- Executing [8XXX4695123@test:1] ExecIf("DAHDI/i1/495XXX9900-2e6", "1?Set(TRANSFERUSER=SIP/495XXX7924-00001637) ") in new stack
-- Executing [8XXX4695123@test:2] ExecIf("DAHDI/i1/495XXX9900-2e6", "0?Set(TRANSFERUSER=) ") in new stack
-- Executing [8XXX4695123@test:3] ExecIf("DAHDI/i1/495XXX9900-2e6", "1?Set(TRANSFERUSER=SIP/495XXX7924) ") in new stack
-- Executing [8XXX4695123@test:4] ExecIf("DAHDI/i1/495XXX9900-2e6", "1?Set(TRANSFERUSER=495XXX7924) ") in new stack
-- Executing [8XXX4695123@test:5] ExecIf("DAHDI/i1/495XXX9900-2e6", "0?Set(__CID=8495XXX9900) ") in new stack
-- Executing [8XXX4695123@test:6] ExecIf("DAHDI/i1/495XXX9900-2e6", "1?Set(CALLERID(number)=-495XXX7924) ") in new stack
-- Executing [8XXX4695123@test:7] ExecIf("DAHDI/i1/495XXX9900-2e6", "1?Set(CALLERID(name)="ORIGINAL: TRANSFER:495XXX7924") ") in new stack
-- Executing [8XXX4695123@test:8] Dial("DAHDI/i1/495XXX9900-2e6", "DAHDI/g0/8XXX4695123,,tT") in new stack
-- Requested transfer capability: 0x00 - SPEECH
-- Called DAHDI/g0/8XXX4695123
-- Span 1: Channel 0/2 got hangup, cause 100
-- Hungup 'DAHDI/i1/8XXX4695123-2e7'
== Everyone is busy/congested at this time (1:0/0/1)
-- Auto fallthrough, channel 'DAHDI/i1/495XXX9900-2e6' status is 'CHANUNAVAIL'
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: Как мне подменить CallerID при "слепом" трансфере?

Сообщение ded »

1) А что такое SIP/495XXX7924 ??

2) позвоните сначала по простому сценарию
exten => _X,1,Set(CALLERID(number)=-495XXX7924)
exten => _X,n,Dial("DAHDI/g0/${EXTEN}) ; возможно что я просто не понимаю направления звонка.

3) Звонок - совсем транзитный, с DAHDI прибежал, в SIP убегает. В оригинале - формат десятизнак 495XXX7924, но прибежал как будто с восьмёркой впереди. И вывалился через non-zero.

4) Span 1: Channel 0/2 got hangup, cause 100
-- Hungup 'DAHDI/i1/8XXX4695123-2e7' - значит hangup пришёл со стороны DAHDI? Можно включать дебаг q931 (pri debug)
Zorgen
Сообщения: 8
Зарегистрирован: 11 июн 2013, 08:50

Re: Как мне подменить CallerID при "слепом" трансфере?

Сообщение Zorgen »

1)SIP/495XXX7924-Cisco IP Phone 7960 sip-клиент астериска
2)Позвонить с "-" перед номером не получилось, а без "-" смог позвонить
chan_dahdi.conf
[trunkgroups]

[channels]

group=0
language=ru
context=incoming_calls
signalling=pri_cpe
switchtype=euroisdn
callerid=asreceived
usecallerid=yes
hidecallerid=no
callwaiting=yes
overlapdial=yes
usecallingpres=yes
callwaitingcallerid=yes
rxgain=0.0
txgain=0.0
threewaycalling=yes
echocancel=no
echocancelwhenbridged=no
echotraining=no
cancallforward=no
transfer=yes
;faxdetect=yes
;faxdetect=both
;faxbuffers=>8,full
pridialplan=unknown
prilocaldialplan=unknown
internationalprefix=
nationalprefix=
localprefix=
channel => 1-15,17-31
3)Звонок совершал извне на sip телефон SIP/495XXX7924, а с этого телефона делал "слепой" трансфер на сотовый номер 8XXX4695123. Ко мне приходят 10 цифр, я сам добавляю 8-ку к входящим номерам:
exten => _X., 1, NoOp()
exten => _X., n, Set(CALLERID(num)=8${CALLERID(num)})
exten => _X., n, Goto(from-internal,,1)
4)Дебаг с каким уровнем отладки сделать?

Извините что трачу Ваше время, но мне тяжело самому разобраться, а надо!
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: Как мне подменить CallerID при "слепом" трансфере?

Сообщение ded »

Извините, но я не хочу канифолить Вам мозг, а надо!
Крайне неудачно придуман диал-план, что на внутренних ИП телефонах сидят уже прямые DID типа SIP/495XXX7924
Нормальный диал план состоит из внутренних номеров (100, 101, 102) )и наружных транков с DIDs.
2)Позвонить с "-" перед номером не получилось, а без "-" смог позвонить
я вообще то копипастнул эту строчку от вас, это у вас там минус забит, наверняка он и мешал.

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

-- Executing [8XXX4695123@test:6] ExecIf("DAHDI/i1/495XXX9900-2e6", "1?Set(CALLERID(number)=-495XXX7924) ") in new stack
И у вас вот тут обламываетсяперед этим -
== Spawn extension (test, 8XXX4695123, 1) exited non-zero on 'DAHDI/i1/495XXX9900-2e6'
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH