[[PageOutline(2-5,Содержание:)]] = Канальное окончание R1.5 = Канальное окончание R1.5 предназначено для подключения к соединительным линиям советских декадно-шаговых и координатных АТС с использованием системы сигнализации R1.5. Соединительные линии, использующие сигнализацию R1.5, являются однонаправленными, то есть вызовы передаются всегда в одном направлении. Направление канала, с которым работает канальное окончание (исходящее или входящее) задается при конфигурации. Передача адресной информации (набор номера вызываемого абонента) может осуществляться одним из трех способов: "декадно-испульсный", "испульсный челнок" или "испульсный пакет". Способ набора номера задается при конфигурации. Также при использовании способа "испульсный челнок" входящая станция может попросить передать часть номера или весь номер декадно-испульсным способом. == Линейные сигналы канального окончания R1.5 == Для передачи линейных сигналов "Занятие", "Подтверждение занятия", "Ответ", "Разъединение", "Контроль исходного" используется два выделенных сигнальных канала (СУВ a и b). || '''Направление''' || '''Комбинация СУВ ab''' || '''Значение сигнала''' || || Прямое || 11 || Разъединение / Контроль исходного || || Прямое || 10 || Занятие || || Прямое || 00 || Отбой А || || Обратное || 01 || Контроль исходного || || Обратное || 11 || Подтверждение занятия / Снятие ответа / Блокировка || || Обратное || 00 || Занято / Отбой Б || || Обратное || 10 || Ответ / Запрос АОН || == Тональные сигналы канального окончания R1.5 == При наборе номера способами "импульсный челнок" и "импульсный пакет" адресная информация (номер вызываемого абонента, номер и категория вызывающего абонента) передается тональными сигналами, представляющими собой комбинацию двух из 6 возможных частот. Каждой из 15 комбинаций частот присвоен номер от 1 до 15: || '''Номер частотной комбинации''' || '''Комбинация частот, Гц''' || || 1 || 700 + 900 || || 2 || 700 + 1100 || || 3 || 900 + 1100 || || 4 || 700 + 1300 || || 5 || 900 + 1300 || || 6 || 1100 + 1300 || || 7 || 700 + 1500 || || 8 || 900 + 1500 || || 9 || 1100 + 1500 || || 10 || 1300 + 1500 || || 11 || 700 + 1700 || || 12 || 900 + 1700 || || 13 || 1100 + 1700 || || 14 || 1300 + 1700 || || 15 || 1500 + 1700 || Длительность сигналов составляет 50 мс. Тональные сигналы, передаваемые в прямом и в обратном направлениях используют одни и те же комбинации частот, но имеют разное значение. Сигналы, передаваемые в прямом направлении, обозначаются символом 'A' и номером комбинации ("A1", "A2", "A3" и т.д.). Сигналы, передаваемые в обратном направлении, обозначаются символом B' и номером комбинации ("B1", "B2", "B3" и т.д.). == Описание работы канального окончания == === Передача номера декадно-импульсным методом === При использовании декадно-импульсного способа набора номера импульсы набора номера передаются в канале СУВ a в предответном состоянии соединения. Длительность передаваемых импульсов составляет 50 мс, пауза между ними составляет также 50 мс. Межсерийный интервал, разделяющий цифры номера, составляет 700 мс. ==== Входящий вызов ==== Входящий (со стороны канала TDM) вызов начинается с приема из канала линейного сигнала "Занятие". В ответ на получении сигнала "Занятие" канальное окончание R1.5 передает в канал линейный сигнал "Подтверждение занятия", переходит в состояние `NumRecv` и ожидает номер вызываемого абонента. При получении каждой цифры номера вызываемого абонента производится проверка принятого номера на совпадение с регулярным выражением, установленным конфигурационным параметром "Рег. выражение набора", а также на достижение максимальной длины номера, установленной конфигурационным параметром "Макс. длина номера". Если обнаружено совпадение номера с регулярным выражением или достижение максимальной длины номера канальное окончание R1.5 формирует и передает сообщение INVITE в сеть IP и переходит в состояние `Outgoing`. То же самое происходит в случае, если время ожидания очередной цифры номера превысит время, заданное конфигурационным параметром "Таймаут набора". В состоянии `Outgoing` канальное окончание R1.5 находится до ответа вызываемого абонента или отмены вызова (отклонения вызова вызываемой стороной или снятия вызова вызывающей стороной). При получении от вызываемой стороны ответа "180 Ringing" окончание R1.5 передает в соединительную линию акустический сигнал "Контроль посылки вызова" (КПВ). При ответе вызываемого абонента канальное окончание R1.5 подключает медиапоток к каналу TDM (если это не было сделано ранее), передает вызывающему абоненту линейный сигнал "Ответ" и переходит в состояние `Connected`. {{{#!plantuml @startuml skin rose title Входящий вызов skinparam ParticipantPadding 80 skinparam sequenceMessageAlign center participant АТС participant "Окончание R1.5" as R participant "Вызываемый абонент" as A АТС -> R: Занятие R -> АТС: Подтверждение занятия АТС -> R: набор номера note over R: прием номера завершен R --> A: INVITE A --> R: 100 Trying A --> R: 180 Ringing note right: Вызываемый абонент слышит звонок R o-[#blue]> АТС: КПВ ... note over A: абонент ответил на вызов A --> R: 200 OK A <-[#blue]-> R: //медиапоток// АТС <-[#blue]> R: //разговорное состояние// R --> A: ACK R -> АТС: Ответ note over АТС, A: абоненты ведут разговор @enduml }}} При получении от вызываемой стороны медиапотока до ответа вызываемого абонента медиапоток подключается к каналу TDM, и дальнейшая передача акустических сигналов вызывающему абоненту возлагается на оборудование вызываемого абонента. Пример сценария местного вызова с получением медиапотока до ответа вызываемого абонента: {{{#!plantuml @startuml skin rose title Входящий вызов с early media skinparam ParticipantPadding 80 skinparam sequenceMessageAlign center participant АТС participant "Окончание R1.5" as R participant "Вызываемый абонент" as A АТС -> R: Занятие R -> АТС: Подтверждение занятия АТС -> R: набор номера note over R: прием номера завершен R --> A: INVITE A --> R: 100 Trying A --> R: 183 Session progress A <-[#blue]-> R: //медиапоток// АТС <-[#blue]> R: //разговорное состояние// A o-[#gray]> АТС: КПВ ... note over A: абонент ответил на вызов A --> R: 200 OK R --> A: ACK R -> АТС: Ответ note over АТС, A: абоненты ведут разговор @enduml }}} ==== Исходящий вызов ==== При получении сообщения INVITE канальное окончание R1.5 занимает канал, передавая линейный сигнал "Занятие", переходит в состояние `Seizure` и ожидает линейный сигнал "Подтверждение занятия" от удаленной стороны. При получении сигнала "Подтверждение занятия" канальное окончание R1.5 переходит в состояние `Dialing` и начинает передавать цифры номера вызываемого абонента. Номер вызываемого абонента передается посимвольно слева направо. Если очередной символ - цифра, передается серия импульсов набора номера, соответствующая этой цифре ("1" - 1 импульс, "2" - 2 импульса,... "0" - 10 импульсов). Символы, не являющиеся цифрами, игнорируются. После передачи всех цифр номера канальное окончание R1.5 переходит в состояние `Dialed`, передает вызывающему абоненту ответ "183 Session progress", активирует медиапоток и ожидает ответ вызываемого абонента. {{{#!plantuml @startuml skin rose title Местный исходящий вызов - базовый сценарий skinparam ParticipantPadding 80 skinparam sequenceMessageAlign center participant "Вызывающий абонент" as A participant "Окончание R1.5" as R participant АТС A --> R: INVITE R --> A: 100 Trying R -> АТС: Занятие R -> АТС: набор номера R --> A: 183 Session progress A <-[#blue]-> R: //медиапоток// note over АТС: Вызываемый абонент слышит звонок АТС o-[#blue]> A: КПВ ... note over АТС: абонент ответил на вызов АТС -> R: Ответ АТС <-[#blue]> R: //разговорное состояние// R --> A: 200 OK A --> R: ACK note over АТС, A: абоненты ведут разговор @enduml }}} === Передача номера методом "импульсный челнок" === При наборе номера методом "импульсный челнок" тональные сигналы имеют следующие значения: || '''Тональный сигнал''' || '''Значение сигнала''' || || A1 || Цифра 1 || || A2 || Цифра 2 || || A3 || Цифра 3 || || A4 || Цифра 4 || || A5 || Цифра 5 || || A6 || Цифра 6 || || A7 || Цифра 7 || || A8 || Цифра 8 || || A9 || Цифра 9 || || A10 || Цифра 0 || || A11 || Приоритетный автоматический вызов || || A12 || Подтверждение приема сигналов обратного направления B4, B5, B8, B9 и B10 || || A13 || Запрос повторить сигнал обратного направления, принятый с искажением || || A14 || Автоматический вызов без приоритета || || A15 || Полуавтоматический вызов без приоритета || || B1 || Запрос передать многочастотным кодом первую цифру номера || || B2 || Запрос передать многочастотным кодом следующую цифру номера || || B3 || Запрос передать многочастотным кодом предыдущую цифру номера || || B4 || Вызываемый абонент свободен || || B5 || Вызываемый абонент занят или недоступен || || B6 || Запрос повторить последнюю переданную цифру, принятую с искажением || || B7 || Абонент недоступен (занятость соединительных путей) || || B8 || Запрос передать декадным способом номер вызываемого абонента, начиная с первой цифры || || B9 || Запрос передать декадным способом оставшиеся цифры номера вызываемого абонента || || B10 || Запрос передать декадным способом цифры номера абонента, начиная с цифры, переданной последней || || B11 || Запрос информации о категории/типе вызова || || B15 || Отсутствие частотной информации в течение 300 – 400 мс || ==== Входящий вызов ==== Входящий (со стороны канала TDM) вызов начинается с приема из канала линейного сигнала "Занятие". В ответ на получении сигнала "Занятие" канальное окончание R1.5 передает в канал линейный сигнал "Подтверждение занятия", переходит в состояние `MF-B`, передает в канал управляющий сигнал B2 и ожидает прием цифры номера. При получении цифры номера вызываемого абонента производится проверка принятого номера на совпадение с регулярным выражением, установленным конфигурационным параметром "Рег. выражение набора", а также на достижение максимальной длины номера, установленной конфигурационным параметром "Макс. длина номера". Если совпадения с регулярным выражением нет, и максимальная длина номера не достигнута, канальное окончание R1.5 передает в канал сигнал B2 и ожидает следующую цифру номера. Этот процесс повторяется до тех пор, пока после приема очередной цифры номер не совпадет с регулярным выражением или не будет достигнута максимальная длина номера. Если какая-либо цифра номера принята с искажением (например длительность принятого сигнала меньше 25 мс), канальное окончание R1.5 передает сигнал B6 и ожидает повтор цифры, принятой с искажениями. Повтор принятой с искажениями цифры запрашивается до трех раз подряд. Если после трех перезапросов цифра так и не была принята без искажений, канальное окончание R1.5 передает в канал линейный сигнал "Отбой Б", переходит в состояние `Blocked` и ожидает линейный сигнал "Контроль исходного". Если обнаружено совпадение номера с регулярным выражением или достижение максимальной длины номера канальное окончание R1.5 передает в канал сигнал B4 и ожидает подтверждающего сигнала A12. После получения подтверждающего сигнала A12 обмен тональными сигналами заканчивается. Канальное окончание R1.5 формирует и передает сообщение INVITE в сеть IP и переходит в состояние `Outgoing`. В состоянии `Outgoing` канальное окончание R1.5 находится до ответа вызываемого абонента или отмены вызова (отклонения вызова вызываемой стороной или снятия вызова вызывающей стороной). При получении от вызываемой стороны ответа "180 Ringing" окончание R1.5 передает в соединительную линию акустический сигнал "Контроль посылки вызова" (КПВ). При ответе вызываемого абонента канальное окончание R1.5 подключает медиапоток к каналу TDM (если это не было сделано ранее), передает вызывающему абоненту линейный сигнал "Ответ" и переходит в состояние `Connected`. Пример приема входящего вызова способом "импульсный челнок": {{{#!plantuml @startuml skin rose title Входящий вызов skinparam ParticipantPadding 80 skinparam sequenceMessageAlign center participant АТС participant "Окончание R1.5" as R participant "Вызываемый абонент" as A АТС -> R: Занятие R -> АТС: Подтверждение занятия R -[#blue]> АТС: B2 АТС -[#blue]> R: A1 R -[#blue]> АТС: B2 АТС -[#blue]> R: A2 R -[#blue]> АТС: B2 АТС -[#red]> R: A3 note right: сигнал A3 принят\nс искажением R -[#blue]> АТС: B6 АТС -[#blue]> R: A3 R -[#blue]> АТС: B2 АТС -[#blue]> R: A4 R -[#blue]> АТС: B2 АТС -[#blue]> R: A5 note right: "12345" совпадает с\nрег. выражением набора R -[#blue]> АТС: B4 АТС -[#blue]> R: A12 R --> A: INVITE 12345@domain.tld A --> R: 100 Trying A --> R: 180 Ringing note right: Вызываемый абонент слышит звонок R o-[#blue]> АТС: КПВ ... note over A: абонент ответил на вызов A --> R: 200 OK A <-[#blue]-> R: //медиапоток// R --> A: ACK R -> АТС: Ответ АТС <-[#blue]> R: //разговорное состояние// note over АТС, A: абоненты ведут разговор @enduml }}} При получении от вызываемой стороны медиапотока до ответа вызываемого абонента медиапоток подключается к каналу TDM аналогично тому, как это описано в разделе [#Передачаномерадекадно-импульснымметодом Передача номера декадно-импульсным методом]. ==== Исходящий вызов ==== При получении сообщения INVITE канальное окончание R1.5 занимает канал, передавая линейный сигнал "Занятие", переходит в состояние `Seizure` и ожидает линейный сигнал "Подтверждение занятия" от удаленной стороны. При получении сигнала "Подтверждение занятия" канальное окончание R1.5 переходит в состояние `MF-A` и ожидает управляющие сигналы от удаленной стороны. При получении сигналов B1, B2, B3, B6 канальное окончание R1.5 передает в канал запрошенную цифру номера вызываемого абонента. При получении сигналов B8, B9, B10 канальное окончание R1.5 передает в канал подтверждающий сигнал A12, после чего обмен тональными сигналами заканчивается, канальное окончание переходит в состояние `Dialing` и передает запрошенные цифры номера вызываемого абонента декадно-импульсным способом. При получении сигнала B11 канальное окончание R1.5 передает в канал сигнал A14. При получении сигнала B4 канальное окончание R1.5 передает в канал подтверждающий сигнал A12, после чего обмен тональными сигналами заканчивается, канальное окончание переходит в состояние `Dialed`, передает вызывающему абоненту ответ "180 Ringing" и ожидает ответ вызываемого абонента. При получении сигнала B5 канальное окончание R1.5 передает в канал подтверждающий сигнал A12, после чего обмен тональными сигналами заканчивается, канальное окончание передает в канал линейный сигнал "Разъединение", переходит в состояние `Blocked` и ожидает линейный сигнал "Контроль исходного" от удаленной стороны. При получении любого другого сигнала (кроме описанных выше) канальное окончание R1.5 передает в канал линейный сигнал "Разъединение", переходит в состояние `Blocked` и ожидает линейный сигнал "Контроль исходного" от удаленной стороны. Пример исходящего вызова способом "импульсный челнок": {{{#!plantuml @startuml skin rose title Исходящий вызов skinparam ParticipantPadding 80 skinparam sequenceMessageAlign center participant "Вызывающий абонент" as A participant "Окончание R1.5" as R participant АТС A --> R: INVITE 12345@domain.tld R --> A: 100 Trying АТС <- R: Занятие R <- АТС: Подтверждение занятия R <-[#blue] АТС: B2 АТС <-[#blue] R: A1 R <-[#blue] АТС: B2 АТС <-[#blue] R: A2 R <-[#blue] АТС: B2 АТС <-[#blue] R: A3 R <-[#blue] АТС: B2 АТС <-[#blue] R: A4 R <-[#blue] АТС: B2 АТС <-[#blue] R: A5 R <-[#blue] АТС: B11 АТС <-[#blue] R: A14 R <-[#blue] АТС: B4 АТС <-[#blue] R: A12 A <-- R: 180 Ringing ... АТС -> R: Ответ АТС <-[#blue]> R: //разговорное состояние// A <-- R: 200 OK R <-- A: ACK A <-[#blue]-> R: //медиапоток// note over АТС, A: абоненты ведут разговор @enduml }}} === Передача номера методом "импульсный пакет" === При использовании метода "импульсный пакет" адресная информация (номер вызываемого абонента, номер и категория вызывающего абонента) передается в виде последовательности тональных сигналов, представляющей собой единый пакет. Передаваемый пакет состоит из следующих полей: || 1 || Номер вызываемого абонента || переменное число цифр || || 2 || Категория вызывающего абонента || 1 цифра || || 3 || Номер вызывающего абонента || 7 цифр || || 4 || Конец пакета || сигнал A11 || Описанный выше пакет передается в прямом направлении по запросу принимающей вызов стороны. В обратном направлении передаются следующие управляющие сигналы: || B2 || Передать пакет || || B11 || Пакет принят правильно || || B6 || Пакет принят с ошибкой || ==== Входящий вызов ==== Входящий (со стороны канала TDM) вызов начинается с приема из канала линейного сигнала "Занятие". В ответ на получении сигнала "Занятие" канальное окончание R1.5 передает в канал линейный сигнал "Подтверждение занятия", переходит в состояние `MF-B`, передает в канал управляющий сигнал B2 и ожидает прием импульсного пакета. После окончания принма импульсного пакета (после получения сигнала "Конец пакета") канальное окончание R1.5 валидирует принятый пакет. Если пакет невалиден (например он меньше минимально допустимой длины), канальное окончание передает в канал сигнал B6, передает в канал линейный сигнал "Отбой Б", переходит в состояние `Blocked` и ожидает линейный сигнал "Контроль исходного". Если пакет принят без ошибок, из него извлекаются категория и номер вызывающего абонента и номер вызываемого абонента, в канал передается сигнал B11. После этого канальное окончание R1.5 формирует и передает сообщение INVITE в сеть IP и переходит в состояние `Outgoing`. В отправляемом сообщении INVITE URI вызывающего абонента имеет в качестве имени пользователя (username) номер вызывающего абонента, полученный в импульсном пакете. Категория вызывающего абонента помещается в параметр "cpc" URI вызывающего абонента. Например при получении номера вызывающего абонента "9876543" и категории вызывающего абонента 1 канаьное окончание сформирует URI вида "". Получаемый от удаленной стороны номер вызывающего абонента всегда содержит 7 цифр. В случае необходимости номер может быть изменен до требуемого формата (например дополнен префиксом или обрезан до требуемой длины) путем задания регулярного выражения с заменой в конфигурационном параметре "Преобразование АОН". Например, при установке параметра "Преобразование АОН" в значение `/^(.*)$/7342\1` и получении в импульсном пакете номера вызывающего абонента 9876543 полученный номер будет дополнен слева комбинацией "7342", в результате чего будет сформирован URI вызывающего абонента вида "". В состоянии `Outgoing` канальное окончание R1.5 находится до ответа вызываемого абонента или отмены вызова (отклонения вызова вызываемой стороной или снятия вызова вызывающей стороной). При получении от вызываемой стороны ответа "180 Ringing" окончание R1.5 передает в соединительную линию акустический сигнал "Контроль посылки вызова" (КПВ). При ответе вызываемого абонента канальное окончание R1.5 подключает медиапоток к каналу TDM (если это не было сделано ранее), передает вызывающему абоненту линейный сигнал "Ответ" и переходит в состояние `Connected`. Пример приема входящего вызова способом "импульсный пакет": {{{#!plantuml @startuml skin rose title Входящий вызов skinparam ParticipantPadding 80 skinparam sequenceMessageAlign center participant АТС participant "Окончание R1.5" as R participant "Вызываемый абонент" as A АТС -> R: Занятие R -> АТС: Подтверждение занятия R -[#blue]> АТС: B2 АТС -[#blue]> R: A1 АТС -[#blue]> R: A2 АТС -[#blue]> R: A3 АТС -[#blue]> R: A4 АТС -[#blue]> R: A5 АТС -[#blue]> R: A1 АТС -[#blue]> R: A9 АТС -[#blue]> R: A8 АТС -[#blue]> R: A7 АТС -[#blue]> R: A6 АТС -[#blue]> R: A5 АТС -[#blue]> R: A4 АТС -[#blue]> R: A3 АТС -[#blue]> R: A11 R -[#blue]> АТС: B11 R --> A: INVITE 12345@domain.tld A --> R: 100 Trying A --> R: 180 Ringing note right: Вызываемый абонент слышит звонок R o-[#blue]> АТС: КПВ ... note over A: абонент ответил на вызов A --> R: 200 OK A <-[#blue]-> R: //медиапоток// R --> A: ACK R -> АТС: Ответ АТС <-[#blue]> R: //разговорное состояние// note over АТС, A: абоненты ведут разговор @enduml }}} ==== Исходящий вызов ==== При получении сообщения INVITE канальное окончание R1.5 занимает канал, передавая линейный сигнал "Занятие", переходит в состояние `Seizure` и ожидает линейный сигнал "Подтверждение занятия" от удаленной стороны. При получении сигнала "Подтверждение занятия" канальное окончание R1.5 переходит в состояние `MF-A` и ожидает сигнал B2 от удаленной стороны. При получении сигнала B2 канальное окончание R1.5 переходит в состояние `Dialing`, после чего формирует и передает в канал испульсный пакет, содержащий номер вызываемого абонента, а также категорию и номер вызывающего абонента. Если URI вызывающего абонента имеет параметр "cpc", и значение параметра состоит из одной цифры, это значение передается в импульсном пакете как категория вызывающего абонента. Если URI вызывающего абонента не имеет параметра "cpc" или значение параметра не является цифрой, в качестве категории вызывающего абонента передается значение конфигурационного параметра "Категория по умолчанию". Если номер вызывающего абонента содержит 7 или более цифр, то в качестве номера вызывающего абонента в импульсном пакете передаются последние 7 цифр номера. В случае, если номер вызывающего абонента содержит менее 7 цифр, недостающие цифры номера берутся из конфигурационного параметра "Шаблон посылки АОН". Передаваемый в импульсном пакете номер вызывающего абонента формируется таким образом, что цифры номера заменяют соответствующие цифры правой части шаблона посылки АОН. Пример формирования номера вызывающего абонента в импульсном пакете: || Шаблон посылки АОН:|| 2 2 2 2 2 2 2|| || Принятый номер вызываемого абонента:|| 1 2 3 4 5|| || Номер, передаваемый в импульсном пакете:|| 2 2 1 2 3 4 5|| После завершения передачи в канал импульсного пакета канальное окончание R1.5 возвращается в состояние `MF-A` и снова ожидает управляющий сигнал от удаленной стороны. При получении сигнала B11 обмен тональными сигналами заканчивается, канальное окончание R1.5 переходит в состояние `Dialed`, передает вызывающему абоненту ответ "183 Session Progress", активирует медиапоток и ожидает ответ вызываемого абонента. При получении сигнала B6 обмен тональными сигналами заканчивается, канальное окончание R1.5 передает в канал линейный сигнал "Разъединение", переходит в состояние `Blocked` и ожидает линейный сигнал "Контроль исходного" от удаленной стороны. Пример исходящего вызова способом "импульсный пакет": {{{#!plantuml @startuml skin rose title Исходящий вызов skinparam ParticipantPadding 80 skinparam sequenceMessageAlign center participant "Вызываемый абонент" as A participant "Окончание R1.5" as R participant АТС R <-- A: INVITE 12345@domain.tld A <-- R: 100 Trying АТС <- R: Занятие R <- АТС: Подтверждение занятия R <-[#blue] АТС: B2 АТС <-[#blue] R: A1 АТС <-[#blue] R: A2 АТС <-[#blue] R: A3 АТС <-[#blue] R: A4 АТС <-[#blue] R: A5 АТС <-[#blue] R: A1 АТС <-[#blue] R: A9 АТС <-[#blue] R: A8 АТС <-[#blue] R: A7 АТС <-[#blue] R: A6 АТС <-[#blue] R: A5 АТС <-[#blue] R: A4 АТС <-[#blue] R: A3 АТС <-[#blue] R: A11 R <-[#blue] АТС: B11 A <-- R: 183 Session Progress A <-[#blue]-> R: //медиапоток// A <-[#gray]o АТС: КПВ ... note over АТС: абонент ответил на вызов R <- АТС: Ответ АТС <-[#blue]> R: //разговорное состояние// A <-- R: 200 OK R <-- A: ACK note over АТС, A: абоненты ведут разговор @enduml }}} === Определение номера вызывающего абонента === Способ набора номера "импульсный пакет" позволяет передать как номер вызываемого, так и номер и категорию вызывающего абонентов. Однако способы передачи номера "декадно-импульсный" и "импульсный челнок" позволяют передать только номер вызываемого абонента. Для запроса и получения номера и категории вызывающего абонента канальное окончание R1.5 может использовать дополнительную процедуру определения номера вызывающего абонента, представляющую собой передачу вызывающей стороной безынтервального пакета, содержащего номер и категорию вызывающего абонента, в ответ на запрос АОН от вызываемой станции. ==== Определение номера при входящем вызове ==== Если значение конфигурационного параметра "Макс. число запросов АОН" не равно нулю, после завершения приема номера вызываемого абонента канальное окончание R1.5 передает в канал запрос АОН (представляющий собой линейный сигнал "Ответ", сопровождаемый тональным сигналом частотой 500 Гц) и переходит в состояние `AONrequest`. В этом состоянии канальное окончание ожидает безынтервальный пакет с номером и категорией вызывающего абонента. После приема безынтервального пакета, или если в течение 500 мс после передачи запроса безынтервальный пакет АОН не начал приниматься, канальное окончание R1.5 передает линейный сигнал "Снятие ответа" и возвращается в состояние `NumRecv` (предответное состояние). Если безынтервальный пакет АОН не был принят, либо возникли ошибки при его декодировании, канальное окончание R1.5 может передать повторный запрос АОН и последующую новую попытку приема безынтервального пакета АОН. Общее количество попыток запроса АОН устанавливается конфигурационным параметром "Макс. число запросов АОН". Между передачей сигнала "Снятие ответа" и новым сигналом "Запрос АОН" выдерживается пауза 200 мс. После окончания (успешного или неуспешного) приема безынтервального пакета АОН канальное окончание R1.5 формирует и передает сообщение INVITE в сеть IP и переходит в состояние `Outgoing`. {{{#!plantuml @startuml skin rose title Входящий вызов с определением номера вызывающего skinparam ParticipantPadding 80 skinparam sequenceMessageAlign center !pragma teoz true participant АТС participant "Окончание R1.5" as R participant "Вызываемый абонент" as A АТС -> R: Занятие R -> АТС: Подтверждение занятия АТС -> R: набор номера note over R: прием номера завершен group Определение номера вызывающего абонента {t0} R -> АТС: Запрос АОН (попытка 1) ... ... {t1} R -> АТС: Снятие отввета {t1} <-> {t0}: 500 мс ... {t2} R -> АТС: Запрос АОН (попытка 2) {t1} <-> {t2}: 200 мс АТС -> R: безынтервальный пакет АОН R -> АТС: Снятие отввета end R --> A: INVITE A --> R: 100 Trying A --> R: 180 Ringing R o-[#blue]> АТС: КПВ @enduml }}} В отправляемом сообщении INVITE URI вызывающего абонента имеет в качестве имени пользователя (username) номер вызывающего абонента, полученный в безынтервальном пакете АОН. Категория вызывающего абонента помещается в параметр "cpc" URI вызывающего абонента. Например при получении номера вызывающего абонента "9876543" и категории вызывающего абонента 1 канаьное окончание сформирует URI вида "". Так как в безынтервальном пакете АОН передается только 7 цифр номера вызывающего абонента, канальное окончание R1.5 позволяет выполнять модификацию номера вызывающего абонента с помощью регулярного выражения, задаваемого конфигурационным параметром "Преобразование АОН". Например, при установке параметра "Преобразование АОН" в значение `/^(.*)$/7342\1` и получении в безынтервальном пакете АОН номера 9876543 полученный номер будет дополнен слева комбинацией "7342", в результате чего будет сформирован URI вызывающего абонента вида "". ==== Определение номера при исходящем вызове ==== При исходящем вызове канальное окончание R1.5 детектирует запрос АОН (линейный сигнал "Ответ", сопровождаемый тональный сигналом 500 Гц) в предответном состоянии соединения. При получении запроса АОН канальное окончание переходит в состояние `Answered`, формирует и передает в канал безынтервальный пакет АОН, содержащий категорию и номер вызывающего абонента. Если URI вызывающего абонента имеет параметр "cpc", и значение параметра состоит из одной цифры, это значение передается в безынтервальном пакете в качестве категории вызывающего абонента. Если URI вызывающего абонента не имеет параметра "cpc" или значение параметра не является цифрой, в качестве категории вызывающего абонента передается значение конфигурационного параметра "Категория по умолчанию". Если номер вызывающего абонента содержит 7 или более цифр, то в качестве номера вызывающего абонента в безынтервальном пакете передаются последние 7 цифр номера. В случае, если номер вызывающего абонента содержит менее 7 цифр, недостающие цифры номера берутся из конфигурационного параметра "Шаблон посылки АОН". Передаваемый в безынтервальном пакете номер вызывающего абонента формируется таким образом, что цифры номера заменяют соответствующие цифры правой части шаблона посылки АОН. Пример формирования номера вызывающего абонента в безынтервальном пакете АОН: || Шаблон посылки АОН:|| 2 2 2 2 2 2 2|| || Принятый номер вызываемого абонента:|| 1 2 3 4 5|| || Номер, передаваемый в безынтервальном пакете:|| 2 2 1 2 3 4 5|| После того как пакет АОН принят удаленной стороной, удаленная сторона передает сигнал "Снятие ответа". Получив этот сигнал, канальное окончание R1.5 переходит в предответное состояние вызова `Dialing`. Если на этот момент не все цифры номера вызываемого абонента были переданы, канальное окончание R1.5 продолжает передачу номера с того места, в котором она была прервана запросом АОН. Если все цифры номера уже были переданы, канальное окончание R1.5 переходит в состояние `Dialed` и ожидает ответ вызываемого абонента. Если в течение 200 мс после окончания передачи в канал безынтервального пакета АОН канальное окончание не получило линейный сигнал "Снятие ответа", оно передает вызывающему абоненту ответ "200 OK" и переходит в состояние `Connected`. == Параметры конфигурации канального окончания == Пример конфигурации канального окончания R1.5: [[Image(ss1.jpg)]] Далее описаны параметры, специфичные для канального окончания R1.5. Не указанные здесь конфигурационные параметры работают так же, как и во всех прочих существующих канальных окончаниях. См. EndpointParameters. Направление канала:: параметр определяет, является ли данное канальное окончание исходящим или входящим. Способ набора номера:: параметр определяет метод, которым канальное окончание будет использовать для передачи или приема адресной информации (номера абонента). Таймаут набора:: Параметр определяет максимальное время ожидания очередной цифры номера при приеме номера декадно-импульсным способом. Если в течение заданного параметром времени не получена следующая цифра, канальное окончание считает прием номера оконченным. Допустимые значения - от 1000 мс до 100000 мс. Значение по умолчанию - 5000 мс. Макс. число запросов АОН:: параметр устанавливает максимальное число попыток запроса номера вызывающего абонента входящим канальным окончанием R1.5 при наборе номера способами "декадно-импульсный" и "импульсный челнок". При установке значения 0 запрос АОН передаваться не будет. Допустимые значения - от 0 до 10. Значение по умолчанию - 1. Макс. число запросов АОН:: Параметр устанавливает максимальное число попыток определения номера вызывающего абонента (АОН). При установке значения 0 номер вызывающего абонента не определяется. Параметр не используется при установке способа набора номера "импульсный пакет". Допустимые значения - от 0 до 10. Значение по умолчанию - 1. Преобразование АОН:: Параметр определяет замену номера вызывающего абонента, принятого в безинтервальном пакете АОН или импульсном пакете. Значение параметра задается в виде строки формата `//`, где - регулярное выражение, на совпадение с которым проверяется полученный номер, - строка, которой заменяется номер в случае совпадения с регулярным выражением. В замене могут использоваться группы из регулярного выражения, которые подставляются с помощью комбинаций \1, \2 и т.д. Например при установке значения параметра `/^(.*)$/7342\1` к определившимся номерам будет добавляться префикс "7342". Если значением параметра является пустая строка, функция преобразования АОН отключена. Значение по умолчанию - пустая строка. Шаблон посылки АОН:: Параметр устанавливает шаблон, состоящий из 7 цифр, используемых при формировании и передаче безинтервального пакета АОН и номера вызывающего абонента в импульсном пакете в случае, когда номер вызывающего абонента содержит менее 7 цифр. Так как пакет всегда содержит 7 цифр номера, недостающие цифры номера вызывающего абонента берутся из шаблона посылки АОН, при этом позиция цифр в номере сохраняется, например если username вызывающего абонента "6789" и шаблон посылки АОН имеет значение "1234567", в безинтервальном пакете АОН будет передан номер "1236789". Значение по умолчанию - "0000000". Категория по умолчанию:: Параметр устанавливает категорию вызывающего абонента, которая передается в безинтервальном пакете АОН или импульсном пакете в случае, если в URI вызывающего абонента отсутствует параметр `cpc`, или значение параметра `cpc` не является одной десятичной цифрой. Допустимые значения - от 0 до 9. Значение по умолчанию - 1. == Состояния канального окончания == Idle:: Исходное состояние канального окончания. Канальное окончание свободно: способно принимать вызовы со стороны сети IP (исходящее направление) или ожидает занятие со стороны канала TDM (входящее направление). Seizure:: Выполняется исходящее занятие: передан линейный сигнал "Занятие", ожидается линейный сигнал "Подтверждение занятия" от удаленной стороны. Dialing:: Выполнено исходящее занятие канала TDM, передается адресная информация (номера вызывающего и вызываемого абонентов и т.п.). Dialed:: Передача адресной информации завершена, активирован медиапоток, ожидается ответ вызываемого абонента. Blocked:: Ожидается линейный сигнал "Контроль исходного" от удаленной стороны. !NumRecv:: Получен линейный сигнал "Занятие", принимается адресная информация (номера вызывающего и вызываемого абонентов). Outgoing:: Отправлено сообщение INVITE в сеть IP, ожидается ответ. Answered:: Получен линейный согнал "Ответ", ожидается тональный сигнал 500 Гц или снятие ответа, передается пакет АОН. Connected:: Соединение установлено, ведется разговор. AONrequest:: Передан запрос АОН, ожидается безынтервальный пакет АОН. MF-A:: Ожидается управляющий сигнал для способов набора номера "импульсный челнок" или "импульсный пакет". MF-B:: Ожидается ответ на управляющий сигнал для способов набора номера "импульсный челнок" или "импульсный пакет". {{{#!plantuml @startuml skin rose title Упрощенная диаграмма состояний канального окончания R1.5 state Idle: исходное состояние state Seizure: ожидается\nподтверждение\nзанятия state Dialing: передается адресная\nинформация state Dialed: ожидается ответ state Blocked: ожидается\n"контроль исходного" state NumRecv: принимается\nадресная\nинформация state Outgoing: ожидается ответ state AONrequest: принимается\nпакет АОН state "MF-A" as MFA: ожидается\nупр. сигнал state "MF-B" as MFB: ожидается ответ\nна упр. сигнал state Answered: ожидается 500 Гц,\nпередается АОН state Connected: ведется разговор Idle --> NumRecv: Принято\n"Занятие"\n(декадно-имп.) Idle --> MFB: Принято\n"Занятие"\n(имп. челнок,\nимп. пакет) NumRecv --> Idle: Принят сигнал\n"Контроль исходного" Outgoing --> Blocked: Принят ответ\n4xx, 5xx или 6xx Outgoing --> Connected: Принят ответ\n"200 OK" NumRecv --> AONrequest: Прием номера\nзавершен AONrequest --> NumRecv: Ошибка AONrequest --> Outgoing: OK MFB --> Blocked: Таймаут MFB --> Blocked: Ошибка\n(имп. пакет) MFB --> AONrequest: Прием номера\nзавершен\n(имп. челнок) MFB --> Outgoing: Прием номера\nзавершен\n(имп. пакет) Idle --> Seizure: Принят INVITE Seizure --> Dialing: Прият сигнал\n"Подтверждение занятия"\n(декадно-имп.) Seizure --> MFA: Принят сигнал\n"Подтверждение занятия"\n(имп. челнок,\nимп. пакет) Dialing --> Dialed: передача\nномера\nзавершена\n(декадно-имп.) Dialing --> MFA: передача\nномера\nзавершена\n(имп. пакет) MFA --> Dialed: Принят сигнал\nB4\n(имп. челнок) MFA --> Dialed: Принят сигнал\nB11\n(имп. пакет) MFA --> Blocked: Принят сигнал\nB6\n(имп. пакет) MFA --> Dialing: Принят сигнал\nB8, B9, B10\n(имп. челнок) MFA --> Dialing: Принят сигнал\nB2\n(имп. пакет) MFA --> Blocked: Таймаут Dialed --> Answered: Принят\n"Ответ" Answered --> Connected: таймаут Answered --> MFA: Принят сигнал\n"Снятие отета"\n(имп. челнок,\nимп. пакет) Answered --> Dialing: Принят сигнал\n"Снятие ответа"\n(декадно-имп.) Blocked --> Idle: Принят сигнал\n"Контроль исходного" Connected --> Blocked: Принято BYE Connected --> Dialing: Принят сигнал\n"Снятие ответа"\n(декадно-имп.) Connected --> MFA: Принят сигнал\n"Снятие ответа"\n(имп. челнок,\nимп. пакет) @enduml }}} == См. также == [EndpointParameters сводная таблица параметров], [wiki:EndpointMFC-R2 окончание MFC R2], [wiki:Endpoint1Ind окончание 1IND], [wiki:Endpoint канальные окончания плат VE-01/VE-02].