Call Forwarding to PSTN
коректная работа CF и pstn телефонии.
Откуда: Одесса
Сообщений: 77
|
Call Forwarding to PSTN
Понимаю, что вопрос переадресации рассматривали много раз, но есть один интересный момент.
Вот какая ситуация. Реализация CallForwarding - (далее CF) в астериске, насколько я понимаю, выглядит так:
1. Абонент с помощью хитрого диал плана вводит на какой номер ему необходимо ставить переадресацию и при каких условиях (CFIM, CFBS, CFNA). Номер можно хранить где угодно, хоть в astdb, хоть в mysql и прочих хранилищах.
2. При входящем звонке проверяем, что установлен CF и направляем вызов на заданный номер, будь то SIP или же городской/мобильный номер и тогда в Zap канал(В частности в PRI поток).
Так вот с каким calling party number (в терминологии Q.931) уйдет этот звонок в PSTN ?
С оригинальным ? Нарушение. Ибо в условиях Украины Укртелеком рубанёт такой вызов. Так как это вызов от оператора, в котором в качестве calling number стоит номер не из выделенного оператору ресурса номеров ...
В "классических" АТС реализовано сие немного подругому. Там в переадресованном вызове по сигнализации будь то SETUP (EDSS1) или IAM (SS7) присутствует 3 номера :
- кто звонил
- куда звонил
- номер на который переадресовать.
Можно в случае с астериском ставить в calling num номер абонента, на котом стоит переадресация. Так вобщем-то работает, но тоже не совсем так как в обычной pstn, так как теряем оригинальный номер звонящего ...
P.S. конечно много буков. Или я что-то непонимаю или сделать CF, совсем как в обычных АТС нельзя, хотя внешне работает также.
|
Откуда: Одесса
Сообщений: 77
|
Re: Call Forwarding to PSTN
up.
Мда 49 просмотров и 0 ответов.
|
Откуда: Москва
Сообщений: 3421
|
Re: Call Forwarding to PSTN
В "классических" АТС реализовано сие немного подругому. Там в переадресованном вызове по сигнализации будь то SETUP (EDSS1) или IAM (SS7) присутствует 3 номера :
- кто звонил
- куда звонил
- номер на который переадресовать.
В Asterisk также доступны переменные EXTEN, CALLERID, DNID, а также RDNIS.
Если честно, никогда не вдавался в такие подробности перевода (не приходилось просто), но дебажится это элементарно. Включаете pri debug, и смотрите сигнализацию Q.931. Вам должны помочь вот эти линки:
- http://www.voip-info.org/wiki/view/RDNIS
- http://www.voip-info.org/wiki/view/DNID
Вот тут даже пример того, как чел дебажил - http://bugs.digium.com/view.php?id=2590
Мда 49 просмотров и 0 ответов.
А вот Вы возьмите, продебажьте, да расскажите всем, какое поведение по умолчанию, и как на него воздействовать. Слабо?
|
Сообщений: 112
|
Re: Call Forwarding to PSTN
просто интересно стало
asterisk 1.2
-- Executing Set("IAX2/polygon-2", "CALLERID(num)=1111111") in new stack
-- Executing Set("IAX2/polygon-2", "CALLERID(ani)=2222222") in new stack
-- Executing Set("IAX2/polygon-2", "CALLERID(rdnis)=3333333") in new stack
-- Executing Dial("IAX2/polygon-2", "Zap/r1/5555555") in new stack
-- Making new call for cr 57234
-- Requested transfer capability: 0x00 - SPEECH
> Protocol Discriminator: Q.931 (8) len=64
> Call Ref: len= 2 (reference 24466/0x5F92) (Originator)
> Message type: SETUP (5)
> [04 03 80 90 a3]
> Bearer Capability (len= 5) [ Ext: 1 Q.931 Std: 0 Info transfer capability: Speech (0)
> Ext: 1 Trans mode/rate: 64kbps, circuit-mode (16)
> Ext: 1 User information layer 1: A-Law (35)
> [18 03 a9 83 92]
> Channel ID (len= 5) [ Ext: 1 IntID: Implicit, PRI Spare: 0, Exclusive Dchan: 0
> ChanSel: Reserved
> Ext: 1 Coding: 0 Number Specified Channel Type: 3
> Ext: 1 Channel: 18 ]
> [1e 02 80 83]
> Progress Indicator (len= 4) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0: 0 Location: User (0)
> Ext: 1 Progress Description: Calling equipment is non-ISDN. (3) ]
> [28 0a b1 43 68 65 72 74 61 6e 6f 76]
> Display (len=10) Charset: 31 [ Chertanov ]
> [6c 09 21 81 31 31 31 31 31 31 31]
> Calling Number (len=11) [ Ext: 0 TON: National Number (2) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1)
> Presentation: Presentation permitted, user number passed network screening (1) '1111111' ]
> [70 08 80 35 35 35 35 35 35 35]
> Called Number (len=10) [ Ext: 1 TON: Unknown Number Type (0) NPI: Unknown Number Plan (0) '5555555' ]
> [74 0a 21 01 8f 33 33 33 33 33 33 33]
> Redirecting Number (len=12) [ Ext: 0 TON: National Number (2) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1)
> Ext: 0 Presentation: Presentation permitted, user number passed network screening (1)
> Ext: 1 Reason: Forwarded unconditionally (15) '3333333' ]
-- Called r1/5555555
определяется 1111111
|
Откуда: Нижний Новгород
Сообщений: 277
|
Re: Call Forwarding to PSTN
RDNIS это то куда звонок переадресовался, остальное должно остаться оригинальным. Если смотреть в SIP то RDNIS это 'Diversion' header.
|
Откуда: Одесса
Сообщений: 77
|
Re: Call Forwarding to PSTN
А вот Вы возьмите, продебажьте, да расскажите всем, какое поведение по умолчанию, и как на него воздействовать. Слабо?
:) Если честно, то просто небыло времени уделить много внимания вопросы, да и есть такая привычка учиться на чужих ошибках.
Т.е. возникла мысль, что не я первый столкнулся вопросом. Беглый поиск ничего не дал (согласен, что значит не так спрашивал).
И было принято решение спросить у великого и мудрейшего ALL. А в случае, если решение не будет найдено, тогда уже плотное гугление
на тему и т.д.
P.S. Большое спасибо за наводки. О результатах сообщу :)
P.P.S Asterisk 1.2.17 built by root @ bug, libpri-1.2.4
Пример сетапа. Сценарий такой: Номер "A" - мой мобильный. Номер "B" - обычный городской номер, на котором включена переадресация на номер "C". Звоню с "A" на "B" и попадаю на "C". Номер "C" смаршрутизирован на *.
pri debug span 1
Даёт такой дебаг D канала.
< Protocol Discriminator: Q.931 (8) len=82
< Call Ref: len= 2 (reference 1064/0x428) (Originator)
< Message type: SETUP (5)
< [a1]
< Sending Complete (len= 1)
< [04 03 80 90 a3]
< Bearer Capability (len= 5) [ Ext: 1 Q.931 Std: 0 Info transfer capability: Speech (0)
< Ext: 1 Trans mode/rate: 64kbps, circuit-mode (16)
< Ext: 1 User information layer 1: A-Law (35)
< [18 03 a1 83 87]
< Channel ID (len= 5) [ Ext: 1 IntID: Implicit, PRI Spare: 0, Preferred Dchan: 0
< ChanSel: Reserved
< Ext: 1 Coding: 0 Number Specified Channel Type: 3
< Ext: 1 Channel: 7 ]
< [1c 25 91 a1 22 02 01 29 02 01 0f 30 1a 02 01 01 0a 01 01 a1 12 a0 10 a1 0e 0a 01 02 12 09 34 38 37 32 39 33 38 36 37]
< Facility (len=39, codeset=0) [ 0x91, 0xa1, 0x22, 0x02, 0x01, 0x29, 0x02, 0x01, 0x0f, '0', 0x1a, 0x02, 0x01, 0x01, 0x0a, 0x01, 0x01, 0xa1, 0x12, 0xa0, 0x10, 0xa1, 0x0e, 0x0a, 0x01, 0x02, 0x12, 0x09, '"B"' ]
< [6c 0b 21 83 39 35 32 37 39 30 38 31 30]
< Calling Number (len=13) [ Ext: 0 TON: National Number (2) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1)
< Presentation: Presentation allowed of network provided number (3) '"A"' ]
< [70 08 c1 37 32 39 37 37 37 38]
< Called Number (len=10) [ Ext: 1 TON: Subscriber Number (4) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1) '"C"' ]
< [7d 02 91 81]
< IE: High-layer Compatibility (len = 4)
|
Откуда: Одесса
Сообщений: 77
|
Re: Call Forwarding to PSTN
2chertanov, а можно глянуть на zapata.conf
|
Сообщений: 112
|
Re: Call Forwarding to PSTN
zapata.conf
language=en
context=from_zap
switchtype=national
pridialplan=unknown
signalling=pri_cpe
priindication = outofband
resetinterval=never
group=1
channel => 1-15,17-31
|
Сообщений: 1129
|
Re: Call Forwarding to PSTN
оператор скорее всего рубанет этот звонок - тоесть не выпустит
либо подставит тот который прописан у вас в договоге
если пул большошой то поставит первый
ортодоксальный антиастерискер || антилинуксоид! (астериск || линукс) - иррациональное решение!. и здесь я тоже http://forum.asterisk.ru
|
Откуда: Одесса
Сообщений: 77
|
Re: Call Forwarding to PSTN
ddkprog: оператор скорее всего рубанет этот звонок - тоесть не выпустит
либо подставит тот который прописан у вас в договоге
если пул большошой то поставит первый
Погрузился в чтение Q.931.
Что пока имеем. Если не трогать calling, в called поставить новый номер (на который установлена переадресация), и установить CALLERID(rdnis)="мой номер на котором установлена переадресация". То вызов оператор убивает. Хотя в SETUP переадресованного вызова уже ситуация такая:
- calling = мобильный с которого я звоню(A)
- called = номер на который должен уйти вызов (C)
- redirect num = мой номер на котором установлена переадресация (B)
Вот бы и мне понять как сделать такое Facility поле, как на входящих переадресованных.
|
|