5 | | Канальное окончание DS предназначено для подключения абонентов (операторов), использующих телефонные аппараты с сигнализацией SIP, к диспетчерской конференции, используя при этом для передачи речи групповой канал TDM вместо сети IP. Данная схема подключения может применяться в случаях, когда пропускной способности сети IP недостаточно для доставки медиапотока каждого абонента (оператора) к серверу диспетчерской связи. |
| 5 | Канальное окончание DS предназначено для подключения абонентов (операторов), использующих телефонные аппараты с сигнализацией SIP, к диспетчерской конференции, используя при этом для передачи речи групповой канал TDM вместо сети IP. Данная схема подключения может применяться в случаях, когда пропускной способности сети IP достаточно для подключения к конференции одного абонента (оператора), но недостаточно для пропуска медиапотоков нескольких абонентов (операторов) к серверу диспетчерской связи. |
| 6 | |
| 7 | В данной схеме подключения вместо того чтобы непосредственно регистрировать на сервере телефонные аппараты операторов, на сервере регистрируются канальные окончания DS. Аппарат же оператора регистрируется на местной плате VE-01. |
13 | | === Вызов в сторону сети IP === |
| 15 | Вызов всех абонентом группового канала в конференцию выполняется путем подключения к конференции "диспетчерского" канального окончания DS. Получив INVITE, канальное окончание DS передает в групповой канал TDM тональный сигнал "Подключение", после чего передает в сторону конференции ответ "200 OK". |
| 16 | |
| 17 | Канальное окончание DS оператора, приняв из группового канала сигнал "Подключение", передает INVITE телефонному аппарату оператора. При ответе оператора канальному окончанию DS приходит ответ "200 OK", при получении которого активируется медиапоток между аппаратом оператора и групповым каналом. После этого канальное окончание DS передает INVITE диспетчерской конференции (с неактивным медиапотоком), в результате чего диспетчер может видеть факт подключения оператора к конференции. |
| 18 | |
| 19 | Аналогичным образом устанавливают соединения все остальные канальные окончания DS операторов, подключенные к тому же групповому каналу TDM. |
| 20 | |
| 21 | {{{#!PlantUml |
| 22 | @startuml |
| 23 | title Вызов диспетчером всех абонентов группового канала |
| 24 | skinparam ParticipantPadding 40 |
| 25 | skinparam sequenceMessageAlign center |
| 26 | participant "Сервер\nконференции\n'0'" as A |
| 27 | participant "Окончание DS\nдиспетчера\n'ds'" as B |
| 28 | participant "Окончание DS\nоператора\n'201'" as C |
| 29 | participant "Абонент\n(оператор)\n'op1'" as D |
| 30 | |
| 31 | A --> B: INVITE '0' --> 'ds' |
| 32 | B --> A: 100 Trying |
| 33 | B -> C: сигнал "Подключение" |
| 34 | B --> A: 200 OK |
| 35 | A <-[#0000ff]-> B: <font color=blue>медиапоток</font> |
| 36 | A --> B: ACK |
| 37 | C --> D: INVITE '0' --> 'op1' |
| 38 | D --> C: 100 Trying |
| 39 | D --> C: 180 Ringing |
| 40 | note right of D: оператор слышит звонок |
| 41 | ... |
| 42 | note right of D: оператор ответил на вызов |
| 43 | D --> C: 200 OK |
| 44 | D <-[#0000ff]-> C: <font color=blue>медиапоток</font> |
| 45 | C --> D: ACK |
| 46 | |
| 47 | C --> A: INVITE '0' <-- '201' (inactive) |
| 48 | A --> C: 100 Trying |
| 49 | A --> C: 200 OK |
| 50 | C --> A: ACK |
| 51 | |
| 52 | note over A, D: оператор ведет разговор с диспетчером |
| 53 | @enduml |
| 54 | }}} |
| 55 | |
| 56 | === Вызов абонентом (оператором) конференции === |
| 57 | |
| 58 | |
| 59 | === Индивидуальный вызов диспетчером абонента (оператора) === |
| 60 | |
| 61 | При получении канальным окончанием DS оператора прямого вызова от диспетчерской конференции канальное окончание выполняет переадресацию вызова (call forward) на URI телефонного аппарата оператора, передавая ответ "302 Moved Temporarily". Получив ответ 302, сервер конференции выполняет новый вызов указанного в ответе URI и устанавливает соединение с аппаратом оператора: |
| 62 | |
| 63 | {{{#!PlantUml |
| 64 | @startuml |
| 65 | title Вызов диспетчером одного оператора |
| 66 | skinparam ParticipantPadding 80 |
| 67 | skinparam sequenceMessageAlign center |
| 68 | participant "Сервер\nконференции\n'0'" as A |
| 69 | participant "Окончание DS\nоператора\n'201'" as C |
| 70 | participant "Абонент\n(оператор)\n'op1'" as D |
| 71 | |
| 72 | A --> C: INVITE '0' --> '201' |
| 73 | C --> A: 100 Trying |
| 74 | C --> A: 302 Moved Temporarily (op1) |
| 75 | A --> C: ACK |
| 76 | |
| 77 | A --> D: INVITE '0' --> 'op1' |
| 78 | D --> A: 100 Trying |
| 79 | D --> A: 180 Ringing |
| 80 | note right of D: оператор слышит звонок |
| 81 | ... |
| 82 | note right of D: оператор ответил на вызов |
| 83 | D --> A: 200 OK |
| 84 | D <-[#0000ff]-> A: <font color=blue>медиапоток</font> |
| 85 | A --> D: ACK |
| 86 | |
| 87 | note over A, D: оператор ведет разговор с диспетчером |
| 88 | @enduml |
| 89 | }}} |