Changes between Version 5 and Version 6 of EndpointSS7


Ignore:
Timestamp:
Jul 20, 2021, 4:48:39 PM (3 years ago)
Author:
alx
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • EndpointSS7

    v5 v6  
    218218note right: вызываемый абонент слышит звонок
    219219B -> A: CPG (event="Inband info")
    220 B o-[#blue]> A: <font color=blue>КПВ
     220B o-[#blue]> A: <font color=blue>//КПВ//
    221221
    222222...
     
    232232==== Сценарий вызова с overlap dialing (только ITU) ====
    233233
    234 
     234Рассмотренный выше сценарий предполагал, что сообщение IAM содержит в себе полный номер вызываемого абонента (En Bloc Dialing) и, таким образом, имеющейся в нем информации достаточно для трансляции вызова в SIP сообщение INVITE. В варианте протокола ITU возможны сценарии, в которых сообщение IAM содержит только часть (одну или несколько первых цифр) номера вызываемого абонента, а иногда не содержит цифр номера вообще. В таком случае оставшиеся недостающие цифры номера передаются в последующих сообщениях SAM.
     235
     236При получении сообщения IAM с неполным номером канальное окончсание SS7 проверяет, есть ли в номере хотя бы один символ. Если номер пуст, в речевой канал передается акустический сигнал готовности к набору номера (dialtone). После этого канальное окончание переходит в состояние `Dialing` и ожидает сообщение SAM.
     237
     238При получении от вызывающего абонента сообщений SAM содержащиеся в них символы номера вызываемого абонента добавляются к ранее принятым. Сигнал готовности, если был включен, отключается. Ожидание цифр номера заканчивается либо при получении очередного сообщения SAM с признаком окончания набора номера (символ '#'), либо если в течение 6 секунд не поступило ни одного нового символа. По окончании приема номера канальное окончание передает в сторону вызывающего абонента сообщение ACM, после чего формирует и передает в сеть сообщение INVITE. Далее процесс установки соединения ничем не отличается от приведенного выше базового сценария.
     239
     240Пример сценария с overlap dialing:
     241
     242{{{#!PlantUml
     243@startuml
     244title Cценарий вызова со стороны сети TDM с overlap dialing
     245!pragma teoz true
     246skinparam ParticipantPadding 80
     247skinparam sequenceMessageAlign center
     248participant "Абонент А (TDM)" as A
     249participant "окончание SS7" as B
     250participant "Абонент Б (IP)" as C
     251
     252A -> B: IAM (Called Party Number="")
     253B o-[#blue]> A: <font color=blue>dialtone
     254A -> B: SAM (Called Party Number="1")
     255A <-[#blue]x B: <font color=blue>dialtone off
     256A -> B: SAM (Called Party Number="2")
     257A -> B: SAM (Called Party Number="3")
     258A -> B: SAM (Called Party Number="4")
     259{start} A -> B: SAM (Called Party Number="5")
     260||35||
     261{end} B -> A: ACM           .
     262{start} <-> {end} : 6 секунд
     263B -> C: INVITE "12345"
     264C -> B: 100 Trying
     265C -> B: 180 Ringing
     266note right: вызываемый абонент слышит звонок
     267B -> A: CPG
     268B o-[#blue]> A: <font color=blue>//КПВ//
     269...
     270note over C: абонент ответил на вызов
     271C -> B: 200 OK
     272B <-[#0000ff]-> C: <font color=blue>//медиапоток//
     273B -> C: ACK
     274B -> A: ANM
     275note over A, C: абоненты А и Б ведут разговор
     276@enduml
     277}}}
     278
     279==== Замена номера вызывающего абонента ====
     280
     281При получении вызова со стороны TDM в принятом сообщении ACM, как правило, содержится номер вызывающего абонента. Встречаются ситуации, когда номер вызываемого абонента приходит не в том формате, который требуется на стороне IP (например приходит только зоновый номер без кода страны и города). Функция замены по регулярному выражению номера вызывающего абонента, приходящего со стороны TDM, позволяет исправить эту ситуацию. Для решения проблемы в конфигурации канального окончания SS7 имеется конфигурационный параметр "Преобразование Caller-ID", позволяющий выполнять замену номера по регулярному выражению. Значение параметра задается в виде строки формата `/<regexp>/<replacement>`, где `<regexp>` - регулярное выражение, на совпадение с которым проверяется полученный номер, `<replacement>` - строка, которой заменяется номер в случае совпадения с регулярным выражением. В замене могут использоваться группы из регулярного выражения, которые подставляются с помощью комбинаций \1, \2 и т.д. Например если установить параметру "Преобразование Caller-ID" значение `/^(.{7})$/7342\1`, канальное окончание SS7 будет добавлять к принятому семизначному номеру префикс "7342".
    235282
    236283=== Отбой соединения ===
    237284
     285Отбой соединения в направлении сети TDM выполняется передачей сообщения REL на любом этапе соединения. После передачи солобщения REL канальное окончание SS7 переходит в состояние `Release` и ожидает получения ответного сообщения RLC. После получения сообщения RLC канальное окончание SS7 переходит в исходное состояние (`Idle`). Инициатором отбоя может как вызывающая, так и вызываемая сторона.
     286
     287При получении из сети TDM сообщения REL канальное окончание SS7 передает в сеть IP сообщения BYE, CANCEL или ответ с неуспешным кодом завершения в зависимости от текущего состояния траззакции SIP. В ответ на получение REL в сеть TDM передается сообщение RLC, после чего каналдьное окончание SS7 переходит в исходное состояние (`Idle`).
     288
     289Примеры сценариев отбоя на разных этапах соединения:
     290
     291{{{#!PlantUml
     292@startuml
     293title Сценарий неуспешного вызова (отбой вызываемой стороной)
     294skinparam ParticipantPadding 80
     295skinparam sequenceMessageAlign center
     296participant "Абонент А (TDM)" as A
     297participant "окончание SS7" as B
     298participant "Абонент Б (IP)" as C
     299
     300A -> B: IAM
     301B -> C: INVITE
     302C -> B: 100 Trying
     303C -> B: 486 Busy Here
     304B -> C: ACK
     305B -> A: REL
     306A -> B: RLC
     307@enduml
     308}}}
     309
     310
     311{{{#!PlantUml
     312@startuml
     313title Сценарий неуспешного вызова (отбой вызывающей стороной)
     314skinparam ParticipantPadding 80
     315skinparam sequenceMessageAlign center
     316participant "Абонент А (TDM)" as A
     317participant "окончание SS7" as B
     318participant "Абонент Б (IP)" as C
     319
     320A -> B: IAM
     321B -> C: INVITE
     322C -> B: 100 Trying
     323...
     324A -> B: REL
     325B -> A: RLC
     326B -> C: CANCEL
     327C -> B: 200 OK (CANCEL)
     328C -> B: 487 Request Terminated (INVITE)
     329B -> C: ACK
     330@enduml
     331}}}
     332
     333{{{#!PlantUml
     334@startuml
     335title Отбой успешно установленного соединения со стороны TDM
     336skinparam ParticipantPadding 80
     337skinparam sequenceMessageAlign center
     338participant "Абонент А (TDM)" as A
     339participant "окончание SS7" as B
     340participant "Абонент Б (IP)" as C
     341
     342note over A, C: абоненты А и Б ведут разговор
     343A -> B: REL
     344B -> A: RLC
     345B -> C: BYE
     346C -> B: 200 OK
     347@enduml
     348}}}
     349
     350{{{#!PlantUml
     351@startuml
     352title Отбой успешно установленного соединения со стороны IP
     353skinparam ParticipantPadding 80
     354skinparam sequenceMessageAlign center
     355participant "Абонент А (TDM)" as A
     356participant "окончание SS7" as B
     357participant "Абонент Б (IP)" as C
     358
     359note over A, C: абоненты А и Б ведут разговор
     360C -> B: BYE
     361B -> C: 200 OK
     362B -> A: REL
     363A -> B: RLC
     364@enduml
     365}}}
     366
    238367=== Контроль целостности разговорной цепи (COT) ===
     368
     369Так как в системе SS7 разговорные и сигнальные каналы могут проходить различными путями, в результате ошибок в конфигурации сети или возникновения каких-либо неисправностей возможны ситуации, когда выбранный для телефонного соединения разговорный канал неисправен (не транслирует речь абонентов между двумя коммутационными станциями (SSP)), что не мешает станциям успешно установить соединение, обмениваясь сообщениями по сигнальной сети. Для предотвращения таких ситуаций служит процедура контроля целостности цепи (Continuity Check, COT). Контроль заключается в том, что на одной стороне канала (стороне A) в него подается тональная частота, на другой стороне (стороне B) либо подключается шлейф разговорного канала, либо подключается приемник тональной частоты, и при ее обнаружении в канал в обратном направлении передается эта же или другая тональная частота. Сторона A, приняв тональную частоту из канала, делает вывод об исправности разговорного канала.
     370
     371Конфигурационный параметр "Continuity check %" канального окончания SS7 определяет приблизительный процент исходящих (в направление скети TDM) вызовов, при которых выполняется контроль целостности цепи: например при значении параметра 0 контроль не выполняется никогда, при значении 100 контроль выполняется при каждом вызове, при значении 10 - при каждом десятом вызове и т.п.
     372
     373При выполнении вызова с контролем исправности разговорной цепи канальное окончание SS7 исходящей станции (A) устанавливает в поле Nature of Connection Indicator передаваемого сообщения IAM флаг "Continuity Check Required", начинает передавать в разговорный канал тональную частоту 1780 или 2010 Гц (значение передаваемой частоты определяется конфигурационным параметром "Continuity check probe Tx"), переходит в состояние `COT` и ожидает приема из разговорного канала ответной тональнйо частоты (1780 Гц или 2010 Гц).
     374
     375Канальное окончание SS7 входящей станции (B), получив сообщение IAM с установленным флагом "Continuity Check Required", подключает к разговорному каналу приемник тональной частоты и переходит в состояние `Loopback`. При получении из разговорного канала ожидаемой тональной частоты канальное окончание SS7 начинает генерировать в канал ту же самую или альтернативную частоту. Принимаемые и передаваемые частоты определяются конфигурационным параметром "Continuity check loopback".
     376
     377В случае успешного приема станцией A из разговорного канала ожидаемой тональной частоты она отключает свой передатчик, передает станции B сообщение COT с признаком успешного выполнения теста и переходит в состояние `Proceeding`. Станция B, получив сообщение COT с признаком успешного выполнения теста, отключает от разговорного канала приемник и передатчик тональных частот, переходит в состояние Calling и продолжает обработку вызова обычным образом. Далее показан пример сценария вызова с успешным контролем разговорной цепи.
     378
     379{{{#!PlantUml
     380@startuml
     381title Сценарий вызова с контролем разговорной цепи
     382skinparam ParticipantPadding 80
     383skinparam sequenceMessageAlign center
     384
     385A -> B: IAM (Continuity Check Required)
     386A -[#blue]> B: <font color=blue>//2010 Гц//
     387B -[#blue]> A: <font color=blue>//1780 Гц//
     388A -> B: COT (success)
     389B ->]: INVITE
     390B <-]: 180 Ringing
     391B -> A: CPG
     392B <-]: 200 OK
     393B -> A: ANM
     394
     395note over A, B: абоненты А и Б ведут разговор
     396@enduml
     397}}}
     398
    239399
    240400== Параметры конфигурации ==