Страница 1 из 2
CallerID при транзите TDA200/ASTERISK
Добавлено: 06 апр 2012, 14:59
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 это вроде как реализовано галочкой в настройках транка. Но вот как в кустом контексте это реализовать, понять не могу.
Re: CallerID при транзите TDA200/ASTERISK
Добавлено: 06 апр 2012, 15:28
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})
Re: CallerID при транзите TDA200/ASTERISK
Добавлено: 06 апр 2012, 15:53
Pardus
Спасибо за отклик. Но это я пробовал.
Эффект:
== Begin MixMonitor Recording DAHDI/i1/557-56c0
-- Auto fallthrough, channel 'DAHDI/i1/557-56c0' status is 'UNKNOWN'
Полный лог.
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
Re: CallerID при транзите TDA200/ASTERISK
Добавлено: 06 апр 2012, 16:38
ded
exten => _8XXXXXXXXXX/557,n,Dial(DAHDI/g1/${FROM_DID}) ???
Надо
exten => _8XXXXXXXXXX/557,n,Dial(DAHDI/g1/${EXTEN})
Re: CallerID при транзите TDA200/ASTERISK
Добавлено: 09 апр 2012, 10:13
Pardus
to ded.
То же самое. -- Auto fallthrough, channel 'DAHDI/i1/557-599e' status is 'UNKNOWN'
Такое ощущение, что где то логика у меня страдает(видимо из-за того что нет полного понимания процесса).
Перефразирую вопрос. Как при моей схеме, настроить запись транзитного звонка с PRI to PRI, с сохранением правильного DST в CDR и подстановкой CID транка?
Re: CallerID при транзите TDA200/ASTERISK
Добавлено: 09 апр 2012, 11:07
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})
Re: CallerID при транзите TDA200/ASTERISK
Добавлено: 09 апр 2012, 11:12
ded
где то логика у меня страдает(видимо из-за того что нет полного понимания процесса).
у меня тоже
написано в диалплане Dial(DAHDI
/g1/${EXTEN})
а в дебаге
Dial(DAHDI
/i1/${EXTEN}) - откуда это?
Ну и я явным образом ошибся -
Set(CALLERID(al)=123456789)
надо
Set(CALLERID(all)=123456789)
Re: CallerID при транзите TDA200/ASTERISK
Добавлено: 09 апр 2012, 11:49
aizek
ded писал(а):
написано в диалплане Dial(DAHDI/g1/${EXTEN})
а в дебаге
Dial(DAHDI/i1/${EXTEN}) - откуда это?
А это похоже FreePBX так именует DAHDI =) Сам заметил, когда было 8 span'ов, fpbx именовал их в соответствии с номером span'a, например в g0 был span1 и span2, в консоли же было DAHDI/i1/, или DAHDI/i2/
Re: CallerID при транзите TDA200/ASTERISK
Добавлено: 09 апр 2012, 13:02
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
Re: CallerID при транзите TDA200/ASTERISK
Добавлено: 09 апр 2012, 13:20
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}. Но это я думаю была скорее не опечатка, а стремление заставить разобраться самому)))