| 1 | [[PageOutline(2-5,Содержание:)]] |
| 2 | [[span(style=color: #FF0000, Статья находится в стадии создания! Представленная информация может быть неполной и/или неточной.)]] |
| 3 | |
| 4 | = Набор номера с перекрытием в сети IP = |
| 5 | |
| 6 | Традиционно шлюзы, соединяющие сети TDM и IP, транслируют телефонный вызов со стороны канала TDM в сеть IP следующим образом: обнаружив занятие канала с удаленной стороны, шлюз принимает от вызывающей стороны номер вызываемого абонента. Прием номера продолжается до тех пор, пока шлюз не получит номер полностью (критерием окончания приема номера может быть заранее установленное правило, задающее формат номера, или таймаут ожидания очередной цифры номера). Только после того как номер получен шлюзом полностью, шлюз формирует и отправляет в сети сообщение INVITE, помещая номер вызываемого абонента в SIP URI, которому адресовано сообщение. |
| 7 | |
| 8 | Такой способ трансляции вызова, при котором вся адресная информация принимается полностью прежде чем передать вызов дальше, называется блочным набором (en-bloc dialing). Преимуществом данного метода является простота - в любой точке сети по пути прохождения вызова известен полный номер вызываемого абонента, что позволяет выполнять маршрутизацию вызова по любому критерию, преобразование номера из одного формата в другой, а также минимизировать служебный трафик (полная информация о вызове передается в одном сообщении INVITE). Недостатком данного метода является большое время, требуемое на установку соединения, особенно если передача номера выполняется декадно-импульсным методом. Большое время установки соединения вызвано тем, что на каждом участке сети адресная информация передается последовательно: занятие следующего участка происходит только после завершения приема номера от предыдущего. Далее приведен пример сценария такого вызова, при котором абонент А, имеющий аналоговый телефонный аппарат с декадно-импульсным набором номера вызывает абонента Б с IP телефоном, при этом по пути соединение проходит участок с сигнализацией индуктивным кодом (канальные окончания 1IND), также использующим декадно-импульсный набор: |
| 9 | |
| 10 | {{{#!PlantUml |
| 11 | @startuml |
| 12 | title Cценарий вызова с en-block dialing |
| 13 | skinparam ParticipantPadding 50 |
| 14 | skinparam sequenceMessageAlign center |
| 15 | participant "Абонент А" as A |
| 16 | participant "окончание FXS" as B |
| 17 | participant "окончание 1IND" as C |
| 18 | participant "окончание 1IND" as D |
| 19 | participant "Абонент Б (IP)" as E |
| 20 | |
| 21 | note over A: абонент поднял трубку |
| 22 | A -> B: Набор "8" |
| 23 | activate A #ff4040 |
| 24 | activate B #ff4040 |
| 25 | A -> B: Набор "9" |
| 26 | A -> B: Набор "0" |
| 27 | A -> B: Набор "8" |
| 28 | A -> B: Набор "9" |
| 29 | A -> B: Набор "8" |
| 30 | A -> B: Набор "7" |
| 31 | A -> B: Набор "0" |
| 32 | A -> B: Набор "0" |
| 33 | A -> B: Набор "8" |
| 34 | A -> B: Набор "9" |
| 35 | note over B: Прием номера завершен |
| 36 | deactivate A |
| 37 | deactivate B |
| 38 | B --> C: INVITE sip:89089870089@domain.org |
| 39 | C --> B: 100 Trying |
| 40 | C -> D: Занятие |
| 41 | activate C #ff4040 |
| 42 | activate D #ff4040 |
| 43 | C -> D: Набор "9" |
| 44 | C -> D: Набор "0" |
| 45 | C -> D: Набор "8" |
| 46 | C -> D: Набор "9" |
| 47 | C -> D: Набор "8" |
| 48 | C -> D: Набор "7" |
| 49 | C -> D: Набор "0" |
| 50 | C -> D: Набор "0" |
| 51 | C -> D: Набор "8" |
| 52 | C -> D: Набор "9" |
| 53 | note over D: Прием номера завершен |
| 54 | deactivate C |
| 55 | deactivate D |
| 56 | D --> E: INVITE sip:89089870089@domain2.com |
| 57 | E --> D: 100 Trying |
| 58 | E --> D: 180 Ringing |
| 59 | note over E: Абонент слышит вызов |
| 60 | @enduml |
| 61 | }}} |
| 62 | |
| 63 | На приведенной выше диаграмме процесс передачи номера вызываемого абонента выделен красным цветом. Как видно из диаграммы, сообщение INVITE отправляется в сеть канальным окончанием FXS только после того как телефонный аппарат вызывающего абонента передал все цифры номера. После этого канальное окончание 1IND, принявшее вызов из сети IP, начинает передавать номер через канал TDM (удалив из него первую цифру "8", являющуюся префиксом междугородного номера). После завершения приема номера окончанием 1IND на другой стороне канала формируется сообщение INVITE телефонному аппарату вызываемого абонента, и вызываемый слышит звонок. Так как передача номера, показанного в приведенном сценарии, требует около 15 секунд, общее время установки соединения составит около 30 секунд. Столь длительное время установки соединения может быть некомфортно для вызывающего абонента. |
| 64 | |
| 65 | В традиционной телефонии существует метод передачи адресной информации "набор с перекрытием" (overlap dialing). При использовании этого метода принимающая вызов станция, получив количество цифр, достаточное для определения дальнейшего маршрута, сразу занимает следующий участок сети - до того как получен весь номер вызываемого абонента. Благодаря раннему занятию последующих участков передача адресной информации выполняется в них одновременно (с перекрытием). Благодаря этому общее время, необходимое для установки соединения, сокращается. |
| 66 | |
| 67 | В протоколе SIP метод набора с перекрытием напрямую не поддерживается, однако при выполнении ряда условий может быть реализован. Одним из вариантов реализации overlap dialing в SIP является метод, описанный в [https://tools.ietf.org/html/draft-zhang-sipping-overlap-01 этом IETF draft]. При использовании данного метода UAC формирует и отправляет в сеть INVITE как только ему становятся доступны первые цифры номера, достаточные для маршрутизации вызова. Принимающая INVITE станция получает в вызываемом URI только несколько первых цифр номера вызываемого абонента, и ожидает оставшуюся часть номера, которая передается ей вызывающей стороной в последующих сообщениях INFO в рамках установленного диалога по мере набора номера вызывающим абонентом: |
| 68 | |
| 69 | {{{#!PlantUml |
| 70 | @startuml |
| 71 | title Cценарий вызова с overlap dialing |
| 72 | skinparam ParticipantPadding 50 |
| 73 | skinparam sequenceMessageAlign center |
| 74 | participant "Абонент А" as A |
| 75 | participant "окончание FXS" as B |
| 76 | participant "окончание 1IND" as C |
| 77 | participant "окончание 1IND" as D |
| 78 | participant "Абонент Б (IP)" as E |
| 79 | |
| 80 | note over A: абонент поднял трубку |
| 81 | A -> B: Набор "8" |
| 82 | activate A #ff4040 |
| 83 | activate B #ff4040 |
| 84 | B --> C: INVITE sip:8@domain.org |
| 85 | C --> B: 183 Session Progress |
| 86 | C -> D: Занятие |
| 87 | |
| 88 | A -> B: Набор "9" |
| 89 | B --> C: INFO "9" |
| 90 | activate C #ff4040 |
| 91 | activate D #ff4040 |
| 92 | C --> B: 200 OK (INFO) |
| 93 | C -> D: Набор "9" |
| 94 | |
| 95 | A -> B: Набор "0" |
| 96 | B --> C: INFO "0" |
| 97 | C --> B: 200 OK (INFO) |
| 98 | C -> D: Набор "0" |
| 99 | |
| 100 | A -> B: Набор "8" |
| 101 | B --> C: INFO "8" |
| 102 | C --> B: 200 OK (INFO) |
| 103 | C -> D: Набор "8" |
| 104 | |
| 105 | A -> B: Набор "9" |
| 106 | B --> C: INFO "0" |
| 107 | C --> B: 200 OK (INFO) |
| 108 | C -> D: Набор "0" |
| 109 | |
| 110 | A -> B: Набор "8" |
| 111 | B --> C: INFO "0" |
| 112 | C --> B: 200 OK (INFO) |
| 113 | C -> D: Набор "0" |
| 114 | |
| 115 | A -> B: Набор "7" |
| 116 | B --> C: INFO "0" |
| 117 | C --> B: 200 OK (INFO) |
| 118 | C -> D: Набор "0" |
| 119 | |
| 120 | A -> B: Набор "0" |
| 121 | B --> C: INFO "0" |
| 122 | C --> B: 200 OK (INFO) |
| 123 | C -> D: Набор "0" |
| 124 | |
| 125 | A -> B: Набор "0" |
| 126 | B --> C: INFO "0" |
| 127 | C --> B: 200 OK (INFO) |
| 128 | C -> D: Набор "0" |
| 129 | |
| 130 | A -> B: Набор "8" |
| 131 | B --> C: INFO "0" |
| 132 | C --> B: 200 OK (INFO) |
| 133 | C -> D: Набор "0" |
| 134 | |
| 135 | A -> B: Набор "9" |
| 136 | B --> C: INFO "0" |
| 137 | C --> B: 200 OK (INFO) |
| 138 | C -> D: Набор "0" |
| 139 | |
| 140 | note over B: Прием номера завершен |
| 141 | deactivate A |
| 142 | deactivate B |
| 143 | |
| 144 | |
| 145 | note over D: Прием номера завершен |
| 146 | deactivate C |
| 147 | deactivate D |
| 148 | D --> E: INVITE sip:89089870089@domain2.com |
| 149 | E --> D: 100 Trying |
| 150 | E --> D: 180 Ringing |
| 151 | note over E: Абонент слышит вызов |
| 152 | @enduml |
| 153 | }}} |