[[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 }}} === Вызов в сторону сети IP === ==== Варианты "немедленный старт" и "задержка старта" ==== Сразу после получения входящего занятия канала канальное окончание EM готово к приему ногмера вызываемого абонента, поэтому оно никогда не передает в канал сигнал задержки и, таким образом, сценарии вызова в вариантах "немедленный старт" и "задержка старта" ничем не отличаются. После получения сигнала занятия канала (перехода сигнального канала от удаленной стороны в состояние "off-hook") канальное окончание EM переходит в состояние `NumRecv` и ожидает набор номера. Номер вызываемого абонента может передаваться как декадными сериями импульсов в сигнальном канале, так и двухчастотными посылками DTMF в разговорном канале. Окончание набора номера определяется по таймауту, устанавливаемому конфигурационным параметром "Таймаут набора". Кроме этого, если конфигурационный параметр "Рег. выражение набора" не пуст, после приема каждой цифры номера выполняется проверка набранного номера на совпадение с регулярным выражением. При совпадении номера с регулярным выражением принимается решение об окончании набора номера. После окончания набора номера канальное окончание EM отправляет в сторону сети IP сообщение INVITE и переходит в состояние `Calling`.