[[PageOutline(2-5,Содержание:)]] = Канальное окончание MFC R2 = Канальное окончание R2 предназначено для подключения к соединительным линиям АТС с использованием многочастотной сигнализации R2. == Линейные сигналы канального окончания MFC R2 == Для передачи линейных сигналов "Занятие", "Подтверждение занятия", "Ответ", "Разъединение", "Блокировка", "Контроль исходного" используется два выделенных сигнальных канала (СУВ a и b). || '''Комбинация СУВ ab''' || '''Значение сигнала''' || || 00 || Занятие || || 01 || Ответ || || 10 || Разъединение / контроль исходного || || 11 || Подтверждение занятия / Clear Back / блокировка || == Тональные сигналы канального окончания MFC R2 == Адресная информация (номер вызываемого абонента, номер и категория вызывающего абонента) и информация о ходе соединения ("Линия свободна", "Линия занята", "Перегрузка" и т.п.) передается тональными сигналами, представляющими собой комбинацию двух из 12 возможных частот. 6 нижних частот используются для входящего направления, 6 верхних - для исходящего направления. В каждом из направлений используется 15 комбинаций частот, обозначаемых номерами 1-15: || '''Номер частотной комбинации''' || '''Частоты для входящего направления''' || '''Частоты для исходящего направления''' || || 1 || 1020 + 1140 || 1380 + 1500 || || 2 || 900 + 1140 || 1380 + 1620 || || 3 || 900 + 1020 || 1500 + 1620 || || 4 || 780 + 1140 || 1380 + 1740 || || 5 || 780 + 1020 || 1500 + 1740 || || 6 || 780 + 900 || 1620 + 1740 || || 7 || 660 + 1140 || 1380 + 1860 || || 8 || 660 + 1020 || 1500 + 1860 || || 9 || 660 + 890 || 1620 + 1860 || || 10 || 660 + 780 || 1740 + 1860 || || 11 || 540 + 1140 || 1380 + 1980 || || 12 || 540 + 1020 || 1500 + 1980 || || 13 || 540 + 900 || 1620 + 1980 || || 14 || 540 + 780 || 1740 + 1980 || || 15 || 540 + 660 || 1860 + 1980 || Для интерпретации тональных посылок используются две группы значений: A и B для входящего направления и I и II для исходящего направления. Далее в обозначениях сигналов используется форма `<группа>-<номер>`, например A-8, II-12. == Описание работы канального окончания == === Входящий вызов === Входящий (со стороны канала TDM) вызов начинается с приема из канала линейного сигнала "Занятие". В ответ на получении сигнала "Занятие" канальное окончание R2 передает в канал линейный сигнал "Подтверждение занятия", переходит в состояние `NumRecv` и ожидает номер вызываемого абонента. Если конфигурационный параметр "Не запрашивать ANI" не отмечен, после получения первой цифры номера вызывающей стороне передается запрос категории и номера вызывающего абонента (A-5), после приема которых продолжается прием номера вызываемого абонента. Если чекбокс "Не запрашивать ANI" отмечен, ANI канальным окончанием R2 не запрашивается, принимается только номер вызываемого абонента. При получении каждой цифры номера вызываемого абонента производится проверка принятого номера на совпадение с регулярным выражением, установленным конфигурационным параметром "Рег. выражение набора", а также на достижение максимальной длины номера, установленной конфигурационным параметром "Макс. длина номера". Если обнаружено совпадение номера с регулярным выражением или достижение максимальной длины номера, канальное окончание R2 передает сигнал "!AddressCompleted" (A-3), переходит в состояние `AddrCplt` и ожидает сигнал группы II (категория вызова). То же самое происходит в случае таймаута ожидания очередной цифры номера. После получении сигнала группы II канальное окончание R2 формирует и передает сообщение INVITE в сеть IP и переходит в состояние `Outgoing`. Если конфигурационный параметр "Не запрашивать ANI" не отмечен, и номер вызывающего абонента получен, имя пользователя (username) в поле From сформированного сообщения INVITE содержит номер вызывающего абонента. Если конфигурационный параметр "Не запрашивать ANI" отмечен, в поле From помещается URI канального окончания. Категория вызывающего абонента передается в параметре URI "cpc" поля From. При получении от вызываемого абонента ответа "180 Ringing" или "183 Session Progress" канальное окончание R2 передает в канал сигнал "Subscriber line free, charge" (B-6). При получении "180 Ringing" и отсутствии медиапотока канальное окончание R2 формирует и передает в канал акустический сигнал "Контроль посылки вызова" (КПВ). При получении от вызываемого абонента неуспешного ответа (4xx/5xx/6xx) канальное окончание R2 передает сигнал "Subscriber line busy" (B-3), после чего передает линейный сигнал "Контроль исходного" и переходит в исходное состояние (`Idle`). При получении от вызываемого абонента ответа "200 OK" канальное окончание R2 передает линейный сигнал "Ответ" и переходит в состояние `Connected`. Пример приема входящего вызова номера 567 от абонента 234 категории 1: {{{#!plantuml @startuml skinparam ParticipantPadding 80 skinparam sequenceMessageAlign center participant АТС participant "Окончание R2" as R2 participant "Вызываемый абонент" as A АТС <-[#red]> R2: исходное состояние (10) ... АТС -[#red]> R2: Занятие (00) R2 -[#red]> АТС: Подтверждение занятия (11) АТС -> R2: "5" (I-5) R2 -> АТС: "Передать категорию/ANI" (A-5) АТС -> R2: "1" (I-1) R2 -> АТС: "Передать категорию/ANI" (A-5) АТС -> R2: "2" (I-2) R2 -> АТС: "Передать категорию/ANI" (A-5) АТС -> R2: "3" (I-3) R2 -> АТС: "Передать категорию/ANI" (A-5) АТС -> R2: "4" (I-4) R2 -> АТС: "Передать категорию/ANI" (A-5) АТС -> R2: "Номер завершен" (I-15) R2 -> АТС: "Следующая цифра" (A-1) АТС -> R2: "6" (I-6) R2 -> АТС: "Следующая цифра" (A-1) АТС -> R2: "7" (I-7) R2 -> АТС: "Address Completed,\nswitch to group B" (A-3) АТС -> R2: "Категория 1:\nSubscriber without priority" (II-1) R2 --> A: INVITE\nTo: \nFrom: A --> R2: 100 Trying A --> R2: 180 Ringing note right: Вызываемый абонент слышит звонок R2 -> АТС: "Линия свободна" (B-6) R2 o-[#blue]> АТС: КПВ ... note over A: абонент ответил на вызов A --> R2: 200 OK R2 --> A: ACK A <-[#blue]-> R2: //медиапоток// R2 -[#red]> АТС: Ответ (01) АТС <-[#blue]> R2: //разговорное состояние// note over АТС, A: абоненты ведут разговор @enduml }}} === Исходящий вызов === При получении сообщения INVITE канальное окончание R2 занимает канал, передавая линейный сигнал "Занятие", переходит в состояние `Seizure` и ожидает линейный сигнал "Подтверждение занятия" от удаленной стороны. При получении сигнала "Подтверждение занятия" канальное окончание R2 переходит в состояние `Dialing` и начинает передавать первую цифру номера вызываемого абонента. Дальнейший ход передачи адресной и служебной информации определяется ответными сигналами от удаленной стороны. Удаленная сторона может запросить: - категорию и номер вызывающего абонента (сигнал A-5). После первого получения сигнала A-5 передается категория абонента. Если в URI вызывающего абонента присутствует параметр `cpc`, и его значением является цифра от 0 до 9, канальное окончание R2 передает в качестве категории вызывающего абонента значение параметра `cpc`. Если параметр `cpc` отсутствует, или его значение не является десятичной цифрой, в качестве категории вызывающего абонента передается значение конфигурационного параметра "Категория по умолчанию". При получении последующих (после первого) сигналов A-5 канальное окончание R2 последовательно передает цифры номера вызывающего абонента. После передачи последней цифры номера канальное окончание передает сигнал "Номер завершен" (I-15). - код страны (A-11). После получения сигнала A-11 канальное окончание R2 передает сигнал, номер которого установлен конфигурационным параметром "Индикатор кода страны". - код языка/дискриминатор (A-12). После получения сигнала A-12 канальное окончание R2 передает сигнал, номер которого установлен конфигурационным параметром "Код языка/дискриминатор". - nature of circuit (A-13). После получения сигнала A-13 канальное окончание R2 передает сигнал, номер которого установлен конфигурационным параметром "Код nature of circuit". - наличие эхоподавления (A-14). После получения сигнала A-14 канальное окончание R2 передает сигнал, номер которого установлен конфигурационным параметром "Код наличия эхоподавления". При получении от удаленной стороны сигнала "Перегрузка в национальной сети" (A-4) или сигнала "Перегрузка в международной сети" (A-15) канальное окончание R2 передает линейный сигнал "Разъединение" и переходит в исходное состояние (`Idle`). Передача адресной информации завершается получением от удаленной стороны одного из сигналов: - "End of address" (A-6), после получения которого канальное окончание R2 активирует медиапоток и переходит в состояние `Dialed`; - "Address Completed" (A-3), после получения которого канальное окончание R2 переключается на использование групп сигналов B/II, передает категорию вызывающего абонента (правила формирования категории описаны выше) и ожидает сигнала результата выполнения вызова от удаленной стороны. При последующем получении любого из сигналов "Линия свободна, оплата" (B-6), "Линия свободна, нет оплаты" (B-7) канальное окончание R2 активирует медиапоток и переходит в состояние `Dialed`. При получении любого из сигналов "Линия занята" (B-3), "Немер не существует" (B-5), "Линия неисправна" (B-8) канальное окончание R2 возвращает вызывающему абоненту ответ "486 Busy here", передает линейный сигнал "Разъединение" и переходит в исходное состояние (`Idle`). При получении линейного сигнала "Ответ" в состояниях `Dialing` или `Dialed` канальное окончание R2 возвращает вызывающему абоненту ответ "200 OK" и переходит в состояние `Connected`. Пример исходящего вызова номера 567 от абонента 234 категории 1: {{{#!plantuml @startuml skinparam ParticipantPadding 80 skinparam sequenceMessageAlign center participant АТС participant "Окончание R2" as R2 participant "Вызывающий абонент" as A АТС <-[#red]> R2: исходное состояние (10) ... A --> R2: INVITE\nTo: \nFrom: R2 --> A: 100 Trying R2 -[#red]> АТС: Занятие (00) АТС -[#red]> R2: Подтверждение занятия (11) R2 -> АТС: "5" (I-5) АТС -> R2: "Передать категорию/ANI" (A-5) R2 -> АТС: "1" (I-1) АТС -> R2: "Передать категорию/ANI" (A-5) R2 -> АТС: "2" (I-2) АТС -> R2: "Передать категорию/ANI" (A-5) R2 -> АТС: "3" (I-3) АТС -> R2: "Передать категорию/ANI" (A-5) R2 -> АТС: "4" (I-4) АТС -> R2: "Передать категорию/ANI" (A-5) R2 -> АТС: "Номер завершен" (I-15) АТС -> R2: "Следующая цифра" (A-1) R2 -> АТС: "6" (I-6) АТС -> R2: "Следующая цифра" (A-1) R2 -> АТС: "7" (I-7) АТС -> R2: "Address Completed,\nswitch to group B" (A-3) R2 -> АТС: "Категория 1:\nSubscriber without priority" (II-1) АТС -> R2: "Линия свободна" (B-6) АТС <-[#blue]> R2: //медиапоток// R2 --> A: 183 Session Progress A <-[#blue]-> R2: //медиапоток// ... note left of АТС: абонент ответил на вызов АТС -[#red]> R2: Ответ (01) R2 --> A: 200 OK A --> R2: ACK note over АТС, A: абоненты ведут разговор @enduml }}} === Отбой соединения === ==== Отбой со стороны IP ==== При получении BYE со стороны сети IP процедура отбоя зависит от того, было ли соединение входящим или исходящим. Если соединение было входящим (инициировано со стороны канала TDM), канальное окончание R2 передает линейный сигнал "Clear Back" (11). Если соединение было исходящим, в канал передается линейный сигнал "Контроль исходного" (10). После этого канальное окончание переходит в состояние `Blocked` и ожидает линейного сигнала "Контроль исходного" от удаленной стороны. При получении сигнала "Контроль исходного", если ранее передавался линейный сигнал "Clear Back", он меняется на "Контроль исходного" (10), и канальное окончание переходит в исходное состояние (`Idle`). ==== Отбой со стороны TDM ==== При получении канальным окончанием R2 линейного сигнала "Clear Back" (11) или линейного сигнала "Разъединение / Контроль исходного" (10), канальное окончание передает в сеть IP сообщение BYE и передает в канал линейный сигнал "Контроль исходного" (10). Затем, если от удаленной стороны был принят линейный сигнал "Контроль исходного", канальное окончание переходит в исходное состояние (`Idle`). Если был принят линейный сигнал "Clear Back" (11), канальное окончание R2 переходит в состояние `Blocked` и ожидает от удаленной стороны линейный сигнал "Контроль исходного" (10). При получении от удаленной стороны линейного сигнала "Контроль исходного" канальное окончание переходит в исходное состояние (`Idle`). == Параметры конфигурации канального окончания == Пример конфигурации канального окончания R2: [[Image(ss1.jpg, 600px)]] Далее описаны параметры, специфичные для канального окончания R2. Не указанные здесь конфигурационные параметры работают так же, как и во всех прочих существующих канальных окончаниях. См. EndpointParameters. Категория по умолчанию:: категория вызывающего абонента, передаваемая при исходящем (в сторону канала TDM) вызове в случае, когда URI вызывающего абонента в поле From сообщения INVITE не содержит параметр `cpc`, или значение параметра `cpc` не является десятичной цифрой. Индикатор кода страны:: номер тонального сигнала R2, передаваемый в ответ на запрос индикатора кода страны (A-11) от удаленной стороны. Допустимые значения 11...14. Код языка/дискриминатор:: номер тонального сигнала R2, передаваемый в ответ на запрос кода языка или дискриминатора (A-12) от удаленной стороны. Допустимые значения 1...10. Код nature of circuit:: номер тонального сигнала R2, передаваемый в ответ на запрос nature of circuit (A-13) от удаленной стороны. Допустимые значения 13 (наземный канал) или 14 (спутниковый канал). Код наличия эхоподавления:: номер тонального сигнала R2, передаваемый в ответ на запрос информации об использовании эхоподавления (A-14) от удаленной стороны. Допустимые значения 11...14. Преобразование ANI:: Значение параметра имеет формат `//`, где `regexp` - регулярное выражение, `replacement` - строка, на которую заменяется номер вызывающего абонента в случае его совпадения с регулярным выражением. Replacement может содержать подстановки фрагментов регулярного выражения '\1', '\2' и т.д. Пример: `/^2(\d{6})$/73422\1` - если номер вызывающего абонента состоит из 7 цифр и начинается с цифры 2, добавить к нему префикс '7342'. Пустое значение параметра означает, что преобразование номера вызывающего абонента не производится. Значение по умолчанию - пустая строка (преобразование ANI не производится). Не запрашивать ANI:: если чекбокс отмечен, при входящем (со стороны канала TDM) вызове не будет запрашиваться информация о номере вызывающего абонента. == Состояния канального окончания == Idle:: Исходное состояние канального окончания. Канальное окончание свободно: способно принимать вызовы со стороны сети IP и ожидает занятие со стороны канала TDM. Seizure:: Выполняется исходящее занятие: передан линейный сигнал "Занятие", ожидается линейный сигнал "Подтверждение занятия" от удаленной стороны. Dialing:: Выполнено исходящее занятие канала TDM, передается адресная информация (номера вызывающего и вызываемого абонентов и т.п.). Dialed:: Передача адресной информации завершена, активирован медиапоток, ожидается ответ вызываемого абонента. Blocked:: Ожидается линейный сигнал "Контроль исходного" от удаленной стороны. !NumRecv:: Получен линейный сигнал "Занятие", принимается адресная информация (номера вызывающего и вызываемого абонентов). !AddrCplt:: Прием адресной информации завершен, ожидается категория. Outgoing:: Отправлено сообщение INVITE в сеть IP, ожидается ответ. Calling:: Получен предварительный ответ на INVITE, ожидается окончательный ответ. Connected:: Соединение установлено, ведется разговор. {{{#!plantuml @startuml title Упрощенная диаграмма состояний канального окончания R2 state Idle: исходное состояние state Seizure: ожидается\nподтверждение\nзанятия state Dialing: передается адресная\nинформация state Dialed: ожидается ответ state Blocked: ожидается\nконтроль исходного state NumRecv: принимается адресная\nинформация state AddrCplt: ожидается категория state Outgoing: ожидается ответ state Calling: ожидается ответ state Connected: ведется разговор Idle --> NumRecv: Принято\n"Занятие" NumRecv --> Idle: Принят сигнал\n"Контроль исходного" NumRecv --> AddrCplt: Прием новера завершен NumRecv --> Blocked: Принят сигнал\n"Блокировка" AddrCplt --> Outgoing: Принята категория Outgoing --> Calling: Принят ответ\n180 или 183 Outgoing --> Blocked: Принят ответ\n4xx, 5xx или 6xx Calling --> Connected: Принят ответ\n"200 OK" Outgoing --> Connected: Принят ответ\n"200 OK" Idle --> Seizure: Принят INVITE Seizure --> Dialing: Прият сигнал\n"Подтверждение занятия" Dialing --> Connected: Принят\n"Ответ" Dialing --> Idle: Принят сигнал\n"Перегрузка", "Занято",\n"Неисправность" или\n"Номер не существует" Dialing --> Dialed: Принят сигнал\n"Линия свободна"\nили "Адрес завершен" Dialed --> Connected: Принят\n"Ответ" Blocked --> Idle: Принят сигнал\n"Контроль исходного" Connected --> Blocked: Принято BYE Connected --> Idle: Принято BYE @enduml }}} == См. также == [EndpointParameters сводная таблица параметров], [wiki:EndpointFXS окончание FXS], [wiki:EndpointFXO окончание FXO], [wiki:Endpoint1Ind окончание 1IND], [wiki:EndpointАДАСЭ окончание АДАСЭ], [wiki:Endpoint Канальные окончания плат VE-01/VE-02].