[[PageOutline(2-5,Содержание:)]]
[[span(style=color: #FF0000, Статья находится в стадии создания! Представленная информация может быть неполной и/или неточной.)]]
= Канальное окончание EM (интерфейс E&M) =
Канальное окончание EM предназначено для работы с интерфейсами E&M. Интерфейс E&M имеет аналоговый (двух- или четырехпроводный) канал ТЧ для передачи речи и один (двух- или четырехпроводный) сигнальный канал. Плата VE-01 (VE-02) предполагает, что сигнальный канал интерфейса E&M использует СУВ A шины TDM. В конфигурации по умолчанию значение 1 СУВ A соответствует состоянию сигнального канала "on-hook", значение 0 - состоянию "off-hook". Однако конфигурационный параметр "Инверсия СУВ" позволяет изменить это соответствие на противоположное.
== Описание работы канального окончания ==
Существует несколько вариантов протокола сигнализации E&M, в основном различающихся способом занятия канала. Канальное окончание EM поддерживает три варианта: "немедленный старт" (Immediate Start), "wink" и "задержка старта" (Delay Start). Выбор варианта протокола осуществляется конфигурационным параметром "Вариант сигнализации". Кроме этого в каждом из вариантов передача адресной информации (номера вызываемого абонента) может осуществляться декадно-импульсным или двухчастотным (DTMF) способами. Способ передачи адресной информации выбирается конфигурационным параметром "Набор номера DTMF".
=== Прием вызова со стороны сети IP ===
==== Вариант "немедленный старт" ====
В варианте "немедленный старт" при получении INVITE со стороны сети IP канальное окончание EM занимает канал, переводя сигнальный канал в состояние "off-hook", и переходит в состояние `Dialing`. После этого канальное окончание выполняет задержку 150 мс и начинает передавать в канал номер вызываемого абонента. После окончания передачи номера окончание EM переходит в состояние `Dialed`, передает ответ "183 Session progress" в сторону вызывающего абонента и активирует медиапоток, благодаря чему вызывающий абонент может слышать акустические сигналы из канала ТЧ.
При ответе вызываемого абонента СУВ A на входе канального окончания переходит в состояние "off-hook". обнаружив это, окончание EM передает ответ "200 OK" вызывающему абоненту и переходит в состояние `Connected`.
Пример сценария вызова приведен на следующей диаграмме:
{{{#!PlantUml
@startuml
title Cценарий вызова "немедленный старт" со стороны сети IP
skinparam ParticipantPadding 80
skinparam sequenceMessageAlign center
participant "Абонент А (IP)" as A
participant "окончание EM" as B
participant "Абонент Б (TDM)" as C
A -> B: INVITE
B -> A: 100 Trying
B -> C: off-hook
B -> C: набор номера
B -> A: 183 Session Progress
A <-[#0000ff]-> B: медиапоток
note right of C: вызываемый абонент слышит звонок
C o-[#gray]> A: // КПВ//
...
note over C: абонент ответил на вызов
C -> B: off-hook
B -> A: 200 OK
A -> B: ACK
note over A, C: абоненты А и Б ведут разговор
@enduml
}}}
==== Вариант "wink" ====
Вариант сигнализации "wink" отличается от варианта "немедленный старт" тем, что в ответ на занятие канала удаленная сторона подтверждает занятие, передавая сигнал "wink" - короткий импульс (переход в состояние "off-hook" и обратно в "on-hook") в сигнальном канале длительностью 100...300 мс. Прием сигнала "wink" говорит о том, что удаленная сторона успешно распознала занятие канала и готова к приему адресной информации.
При работе с вариантом сигнализации "wink" после занятия канала (перевода сигнального канала в состояние "off-hook") канальное окончание переходит в состояние `Seizure` и ожидает сигнал "wink". При получении сигнала "wink" канальное окончание переходит в состояние `Dialing` и начинает передачу номера. Если в течение 500 мс сигнал "wink" не принят, канальное окончание EM освобождает канал (переводит сигнальный канал в состояние "on-hook"), передает вызывающему абоненту ответ "480 Temporarily Unavailable" и переходит в исходное состояние (`Idle`).
{{{#!PlantUml
@startuml
title Cценарий вызова "wink" со стороны сети IP
skinparam ParticipantPadding 80
skinparam sequenceMessageAlign center
participant "Абонент А (IP)" as A
participant "окончание EM" as B
participant "Абонент Б (TDM)" as C
A -> B: INVITE
B -> A: 100 Trying
B -> C: off-hook
C -> B: wink
B -> C: набор номера
B -> A: 183 Session Progress
A <-[#0000ff]-> B: медиапоток
note right of C: вызываемый абонент слышит звонок
C o-[#gray]> A: // КПВ//
...
note over C: абонент ответил на вызов
C -> B: off-hook
B -> A: 200 OK
A -> B: ACK
note over A, C: абоненты А и Б ведут разговор
@enduml
}}}
Вариант сигнализации "wink" является более надежным по сравнению с вариантом "немедленный старт", так как позволяет обнаружить встречное занятие канала и/или неисправность канала (отсутствие прохождения сигналов).
==== Вариант "задержка старта" ====
Бывают ситуации, когда оборудование принимающей вызов стороны не успевает вовремя приготовиться к приему номера. Например в некоторых телефонных станциях из соображений экономии комплектов оборудования, принимающего номер, существенно меньше, чем абонентских комплектов. В таких станциях возможны ситуации, когда на момент занятия канала все комплекты приема номера уже заняты, и для продолжения процесса установки соединения необходимо ждать, когда один из них освободится. Вариант сигнализации "задержка старта" решает проблему задержки готовности к приему номера.
В данном варианте сигнализации, если принимающая вызов сторона в момент занятия канала не готова к приему адресной информации, она переводит сигнальный канал в состояние "off-hook" и удерживает это состояние до готовности к приему номера. Когда принимающая сторона готова, сигнальный канал возвращается в состояние "on-hook", чем сигнализирует вызывающей стороне о возможности передавать номер.
При работе с вариантом сигнализации "задержка старта" после занятия канала (перевода сигнального канала в состояние "off-hook") канальное окончание EM переходит в состояние `Seizure` и в течение 150 мс ожидает от удаленной стороны сигнал неготовности к приему номера. Если в течение этих 150 мс сигнальный канал на входе канального окончания оставался в состоянии "on-hook", окончание EM переходит в состояние `Dialing` и начинает передачу номера (в этом случае сценарий вызова ничем не отличается от варианта "немедленный старт"). Если же во время 150 мс ожидания от удаленной стороны принят сигнал "off-hook", канальное окончание EM ожидает возвращение сигнального канала в состояние "on-hook", после чего переходит в состояние `Dialing` и начинает передачу номера.
Пример сценария с задержкой старта показан на следующей диаграмме:
{{{#!PlantUml
@startuml
title Cценарий вызова "задержка старта" со стороны сети IP
skinparam ParticipantPadding 80
skinparam sequenceMessageAlign center
participant "Абонент А (IP)" as A
participant "окончание EM" as B
participant "Абонент Б (TDM)" as C
A -> B: INVITE
B -> A: 100 Trying
B -> C: off-hook
note right of C: станция не готова к приему номера
C -> B: off-hook
...
note right of C: станция готова к приему номера
C -> B: on-hook
B -> C: набор номера
B -> A: 183 Session Progress
A <-[#0000ff]-> B: медиапоток
note right of C: вызываемый абонент слышит звонок
C o-[#gray]> A: // КПВ//
...
note over C: абонент ответил на вызов
C -> B: off-hook
B -> A: 200 OK
A -> B: ACK
note over A, C: абоненты А и Б ведут разговор
@enduml
}}}