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

CallerID при транзите TDA200/ASTERISK

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

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

Pardus
Сообщения: 8
Зарегистрирован: 06 апр 2012, 14:35

CallerID при транзите TDA200/ASTERISK

Сообщение Pardus »

Asterisk 1.8 + FreePBX
Схема: TDA200=>PRI=>ASTERISK=>PRI=>оператор

Появилась нужда записывать исходящие с TDA200(с одного номера). Запись реализовал через.

[ext-did-custom]
;exten => _8XXXXXXXXXX/557,1,Set(__FROM_DID=${EXTEN})
;exten => _8XXXXXXXXXX/557,n,Set(CHANNEL(language)=ru)
;exten => _8XXXXXXXXXX/557,n,Gosub(app-blacklist-check,s,1)
;exten => _8XXXXXXXXXX/557,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)}))
;exten => _8XXXXXXXXXX/557,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
;exten => _8XXXXXXXXXX/557,n,Set(CALLERPRES()=allowed_not_screened)
;exten => _8XXXXXXXXXX/557,n,MixMonitor(/var/spool/asterisk/monitor/${UNIQUEID}_(${STRFTIME(${EPOCH},,%d-%m-%Y)}_${STRFTIME(${EPOCH},,%H-%M)})_SRC(${CDR(src)})-DST(${CDR(dst)}).wav,b) ;
;exten => _8XXXXXXXXXX/557,n,Dial(DAHDI/g1/${FROM_DID})
;exten => _8XXXXXXXXXX/557,n,Hangup()

Но возникла проблема, для правильной записи DST в CDR(для просмотра записей через веб-мордочку), на TDA в CLIPID выставил внутренний номер 557(до этого стоял городской номер провайдера).
Ну и соответственно звонки не идут т.к. в транк провайдера улетает внутренний номер.
Вопрос: как реализовать подавление CallerID? Транковым номером?

p.s. Во FreePBX это вроде как реализовано галочкой в настройках транка. Но вот как в кустом контексте это реализовать, понять не могу.
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: CallerID при транзите TDA200/ASTERISK

Сообщение ded »

exten => _8XXXXXXXXXX/557,n,Set(CALLERPRES()=allowed_not_screened)
exten => _8XXXXXXXXXX/557,n,MixMonitor(/var/spool/asterisk/monitor/${UNIQUEID}_(${STRFTIME(${EPOCH},,%d-%m-%Y)}_${STRFTIME(${EPOCH},,H-%M)})_SRC(${CDR(src)})-DST(${CDR(dst)}).wav,b) ;
exten => _8XXXXXXXXXX/557,n,Set(CALLERID(al)=123456789) ; городской номер провайдера
exten => _8XXXXXXXXXX/557,n,Dial(DAHDI/g1/${FROM_DID})
Pardus
Сообщения: 8
Зарегистрирован: 06 апр 2012, 14:35

Re: CallerID при транзите TDA200/ASTERISK

Сообщение Pardus »

Спасибо за отклик. Но это я пробовал.
Эффект:
== Begin MixMonitor Recording DAHDI/i1/557-56c0
-- Auto fallthrough, channel 'DAHDI/i1/557-56c0' status is 'UNKNOWN'

Полный лог.
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
Accepting overlap call from '557' to '1111111' on channel 0/31, span 2
-- Starting simple switch on 'DAHDI/i2/557-56c3'
-- Executing [1111111@from-pstn:1] Set("DAHDI/i2/557-56c3", "__FROM_DID=1111111") in new stack
-- Executing [1111111@from-pstn:2] Set("DAHDI/i2/557-56c3", "CHANNEL(language)=ru") in new stack
-- Executing [1111111@from-pstn:3] Gosub("DAHDI/i2/557-56c3", "app-blacklist-check,s,1") in new stack
-- Executing [s@app-blacklist-check:1] GotoIf("DAHDI/i2/557-56c3", "0?blacklisted") in new stack
-- Executing [s@app-blacklist-check:2] Set("DAHDI/i2/557-56c3", "CALLED_BLACKLIST=1") in new stack
-- Executing [s@app-blacklist-check:3] Return("DAHDI/i2/557-56c3", "") in new stack
-- Executing [1111111@from-pstn:4] ExecIf("DAHDI/i2/557-56c3", "1 ?Set(CALLERID(name)=557)") in new stack
-- Executing [1111111@from-pstn:5] Set("DAHDI/i2/557-56c3", "__CALLINGPRES_SV=allowed_not_screened") in new stack
-- Executing [1111111@from-pstn:6] Set("DAHDI/i2/557-56c3", "CALLERPRES()=allowed_not_screened") in new stack
-- Executing [1111111@from-pstn:7] MixMonitor("DAHDI/i2/557-56c3", "/var/spool/asterisk/monitor/1333713312.52686_(06-04-2012_17-55)_SRC(557)-DST(1111111).wav,b") in new stack
-- Executing [1111111@from-pstn:8] NoOp("DAHDI/i2/557-56c3", ""557" <557>") in new stack
-- Executing [1111111@from-pstn:9] Set("DAHDI/i2/557-56c3", "CALLERID(all)=2222222222") in new stack
== Begin MixMonitor Recording DAHDI/i2/557-56c3
-- Auto fallthrough, channel 'DAHDI/i2/557-56c3' status is 'UNKNOWN'
-- Executing [h@from-pstn:1] Macro("DAHDI/i2/557-56c3", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("DAHDI/i2/557-56c3", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] Hangup("DAHDI/i2/557-56c3", "") in new stack
== Spawn extension (macro-hangupcall, s, 3) exited non-zero on 'DAHDI/i2/557-56c3' in macro 'hangupcall'
== Spawn extension (from-pstn, h, 1) exited non-zero on 'DAHDI/i2/557-56c3'
-- Hungup 'DAHDI/i2/557-56c3'
== End MixMonitor Recording DAHDI/i2/557-56c3
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: CallerID при транзите TDA200/ASTERISK

Сообщение ded »

exten => _8XXXXXXXXXX/557,n,Dial(DAHDI/g1/${FROM_DID}) ???
Надо
exten => _8XXXXXXXXXX/557,n,Dial(DAHDI/g1/${EXTEN})
Pardus
Сообщения: 8
Зарегистрирован: 06 апр 2012, 14:35

Re: CallerID при транзите TDA200/ASTERISK

Сообщение Pardus »

to ded.

То же самое. -- Auto fallthrough, channel 'DAHDI/i1/557-599e' status is 'UNKNOWN'

Такое ощущение, что где то логика у меня страдает(видимо из-за того что нет полного понимания процесса).
Перефразирую вопрос. Как при моей схеме, настроить запись транзитного звонка с PRI to PRI, с сохранением правильного DST в CDR и подстановкой CID транка?
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: CallerID при транзите TDA200/ASTERISK

Сообщение Vlad1983 »

exten => _8XXXXXXXXXX/557,n,Goto(blabla,${EXTEN},1) ; отлов

[blabla] ; запись
exten => _X.,1,Set(CALLERPRES()=allowed_not_screened)
exten => _X.,n,MixMonitor(/var/spool/asterisk/monitor/${UNIQUEID}_(${STRFTIME(${EPOCH},,%d-%m-%Y)}_${STRFTIME(${EPOCH},,H-%M)})_SRC(${CDR(src)})-DST(${CDR(dst)}).wav,b)
exten => _X.,n,Set(CALLERID(all)=123456789) ; городской номер провайдера
exten => _X.,n,Dial(DAHDI/g1/${FROM_DID})
Последний раз редактировалось Vlad1983 09 апр 2012, 11:18, всего редактировалось 1 раз.
ЛС: @rostel
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: CallerID при транзите TDA200/ASTERISK

Сообщение ded »

где то логика у меня страдает(видимо из-за того что нет полного понимания процесса).
у меня тоже :(
написано в диалплане Dial(DAHDI/g1/${EXTEN})
а в дебаге
Dial(DAHDI/i1/${EXTEN}) - откуда это?

Ну и я явным образом ошибся -
Set(CALLERID(al)=123456789)
надо
Set(CALLERID(all)=123456789)
aizek
Сообщения: 50
Зарегистрирован: 31 авг 2010, 19:23
Откуда: Izhevsk

Re: CallerID при транзите TDA200/ASTERISK

Сообщение aizek »

ded писал(а): написано в диалплане Dial(DAHDI/g1/${EXTEN})
а в дебаге
Dial(DAHDI/i1/${EXTEN}) - откуда это?
А это похоже FreePBX так именует DAHDI =) Сам заметил, когда было 8 span'ов, fpbx именовал их в соответствии с номером span'a, например в g0 был span1 и span2, в консоли же было DAHDI/i1/, или DAHDI/i2/
Dmitry
Сообщения: 12
Зарегистрирован: 14 сен 2011, 09:37

Re: CallerID при транзите TDA200/ASTERISK

Сообщение Dmitry »

не FreePBX, i1 - это скорее всего что-то типа incoming1.

Я на своем астере (Asterisk 1.8.7.1) проверил только что, вызов уходит по g1 (group 1 из chan_dahdi.conf?), а приходит по i1.
-- Executing [250315@default:4] Dial("SIP/2250314-00000066", "DAHDI/g1/250315") in new stack
-- Requested transfer capability: 0x00 - SPEECH
-- Called DAHDI/g1/250315
-- Accepting call from '2250314' to '2250315' on channel 0/3, span 1
-- Executing [2250315@default:1] Goto("DAHDI/i1/2250314-59", "incomming,1") in new stack
-- Goto (default,incomming,1)

asterisk # cat chan_dahdi.conf
[channels]
group=1
Pardus
Сообщения: 8
Зарегистрирован: 06 апр 2012, 14:35

Re: CallerID при транзите TDA200/ASTERISK

Сообщение Pardus »

Vlad1983 писал(а):exten => _8XXXXXXXXXX/557,n,Goto(blabla,${EXTEN},1) ; отлов

[blabla] ; запись
exten => _X.,1,Set(CALLERPRES()=allowed_not_screened)
exten => _X.,n,MixMonitor(/var/spool/asterisk/monitor/${UNIQUEID}_(${STRFTIME(${EPOCH},,%d-%m-%Y)}_${STRFTIME(${EPOCH},,H-%M)})_SRC(${CDR(src)})-DST(${CDR(dst)}).wav,b)
exten => _X.,n,Set(CALLERID(all)=123456789) ; городской номер провайдера
exten => _X.,n,Dial(DAHDI/g1/${FROM_DID})
Вот спасибо. Все работает. И реализация 4е строки)).
Одно но в последней строке вместо ${FROM_DID} требуется ${EXTEN}. Но это я думаю была скорее не опечатка, а стремление заставить разобраться самому)))
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH