| 135 | В состоянии `Calling` канальное окончание EM находится до ответа вызываемого абонента или отмены вызова (отклонения вызова вызываемой стороной или снятия вызова вызывающей стороной). При получении от вызываемой стороны ответа "180 Ringing" окончание EM передает в канал TDM акустический сигнал "Контроль посылки вызова" (КПВ). |
| 136 | |
| 137 | При ответе вызываемого абонента канальное окончание EM подключает медиапоток к каналу TDM (если это не было сделано ранее), переводит сигнальный канал в состояние "off-hook" и переходит в состояние `Connected`. |
| 138 | |
| 139 | {{{#!PlantUml |
| 140 | @startuml |
| 141 | title Cценарий вызова со стороны сети TDM |
| 142 | skinparam ParticipantPadding 80 |
| 143 | skinparam sequenceMessageAlign center |
| 144 | participant "Абонент А (TDM)" as A |
| 145 | participant "окончание EM" as B |
| 146 | participant "Абонент Б (IP)" as C |
| 147 | |
| 148 | A -> B: off-hook |
| 149 | A -> B: набор номера |
| 150 | B --> C: INVITE |
| 151 | C --> B: 100 Trying |
| 152 | C --> B: 180 Ringing |
| 153 | B o-[#blue]> A: <font color=blue>КПВ |
| 154 | note right of C: вызываемый абонент слышит звонок |
| 155 | ... |
| 156 | note right of C: вызываемый абонент ответил на вызов |
| 157 | C --> B: 200 OK |
| 158 | B --> C: ACK |
| 159 | B <-[#0000ff]-> C: <font color=blue>медиапоток</font> |
| 160 | B -> A: off-hook |
| 161 | note over A, C: абоненты А и Б ведут разговор |
| 162 | @enduml |
| 163 | }}} |
| 164 | |
| 165 | При получении от вызываемой стороны медиапотока до ответа вызываемого абонента (например ответ "183 Session Progress") медиапоток подключается к каналу TDM, и дальнейшая передача акустических сигналов вызывающему абоненту возлагается на оборудование вызываемого абонента. Пример сценария местного вызова с получением медиапотока до ответа вызываемого абонента: |
| 166 | |
| 167 | {{{#!PlantUml |
| 168 | @startuml |
| 169 | title Cценарий вызова со стороны сети TDM с early media |
| 170 | skinparam ParticipantPadding 80 |
| 171 | skinparam sequenceMessageAlign center |
| 172 | participant "Абонент А (TDM)" as A |
| 173 | participant "окончание EM" as B |
| 174 | participant "Абонент Б (IP)" as C |
| 175 | |
| 176 | A -> B: off-hook |
| 177 | A -> B: набор номера |
| 178 | B --> C: INVITE |
| 179 | C --> B: 100 Trying |
| 180 | C --> B: 183 Session Progress |
| 181 | B <-[#0000ff]-> C: <font color=blue>медиапоток</font> |
| 182 | C o-[#gray]> A: <font color=gray> КПВ |
| 183 | note right of C: вызываемый абонент слышит звонок |
| 184 | ... |
| 185 | note right of C: вызываемый абонент ответил на вызов |
| 186 | C --> B: 200 OK |
| 187 | B --> C: ACK |
| 188 | B -> A: off-hook |
| 189 | note over A, C: абоненты А и Б ведут разговор |
| 190 | @enduml |
| 191 | }}} |
| 192 | |
| 193 | ==== Варианты "wink" ==== |
| 194 | |
| 195 | В варианте сигнализации "wink" при получении занятия канала удаленной стороной канальное окончание EM передает в сигнальный канал сигнал "wink" длительностью 120 мс, после чего сценарий установки соединений ничем не отличается от вариантов "немедленный старт" и "задержка старта": |
| 196 | |
| 197 | {{{#!PlantUml |
| 198 | @startuml |
| 199 | title Cценарий вызова "wink" со стороны сети TDM |
| 200 | skinparam ParticipantPadding 80 |
| 201 | skinparam sequenceMessageAlign center |
| 202 | participant "Абонент А (TDM)" as A |
| 203 | participant "окончание EM" as B |
| 204 | participant "Абонент Б (IP)" as C |
| 205 | |
| 206 | A -> B: off-hook |
| 207 | B -> A: wink |
| 208 | A -> B: набор номера |
| 209 | B --> C: INVITE |
| 210 | C --> B: 100 Trying |
| 211 | C --> B: 180 Ringing |
| 212 | B o-[#blue]> A: <font color=blue>КПВ |
| 213 | note right of C: вызываемый абонент слышит звонок |
| 214 | ... |
| 215 | note right of C: вызываемый абонент ответил на вызов |
| 216 | C --> B: 200 OK |
| 217 | B --> C: ACK |
| 218 | B <-[#0000ff]-> C: <font color=blue>медиапоток</font> |
| 219 | B -> A: off-hook |
| 220 | note over A, C: абоненты А и Б ведут разговор |
| 221 | @enduml |
| 222 | }}} |
| 223 | |
| 224 | === Отбой === |
| 225 | |
| 226 | Отбой соединения, находящегося в разговорном состоянии, может быть инициирован любой из сторон соединения. При отбое со стороны сети IP (получение BYE) канальное окончание EM переводит сигнальный канал в состояние "on-hook" и переходит в исходное состояние (`Idle`). При получении состояния "ob-hook" сигнального канала со стороны TDM канальное окончание EM отправляет сообщение BYE в сторону сети IP и переходит в исходное состояние (`Idle`). |
| 227 | |
| 228 | До ответа вызываемого абонента отбой (снятие вызова) возможны только по инициативе вызывающей стороны. При снятии вызова со стороны сети IP (прием CANCEL) канальное окончание EM переводит сигнальный канал в состояние "on-hook" и переходит в исходное состояние (`Idle`). При обнаружении состояния входного сигнального канала "on-hook" более 400 мс в процессе приема вызова со стороны канала TDM канальное окончание EM передает в сеть IP сообщение CANCEL (если уже было отправлено сообщение INVITE) и переходит в исходное состояние (`Idle`). |
| 229 | |
| 230 | Если при выполнении вызове в сторону сети IP канальное окончание EM получает неуспешный ответ на INVITE (например вызов занятого абонента), анальное окончание передает в канал акустический сигнал "Занято", переходит в состояние `Busy` и ожидает снятие вызова (перевод сигнального канала в состояние "on-hook") от удаленной стороны. |