Описание сеансов связи
Синтаксис описания сеанса связи в протоколе MGCP соответствует синтаксису протокола SDP (Session Description Protocol),предусмотрено несколько информационных полей:
n версия протоколакодируется v=0;
n IP-адрес шлюзасодержит IP-адрес, который будет использоваться для обмена пакетами RTP.
Если это поле включено в команды протокола MGCP, то оно означает адрес удаленного шлюза, а если поле включено в ответы, то - адрес шлюза, передающего ответ;
n поле описания речевого каналакодируется буквой «m» и содержит идентификацию вида передаваемой или принимаемой информации (например - речи), номер порта, используемого для приема RTP пакетов удаленным шлюзом (если поле описания речевого канала включено в команды MGCP) или локальным шлюзом (если это поле включено в ответы), индикацию использования протокола RTP для передачи речи и указание алгоритма кодирования речевой информации;
n режим соединенияможет быть одним из следующих:
sendonly - шлюзу надлежит только передавать информацию,
ecvonly - шлюзу надлежит только принимать информацию,
sendrecv - шлюзу надлежит передавать и принимать информацию,
inactive - шлюз не должен ни передавать, ни принимать информацию,
loopback - шлюз должен передавать принимаемую информацию в обратном направлении,
conttest - шлюзу надлежит перевести порт в режим тестирования.
n необязательные информационные поля.
Пример описания сеанса речевой связи
v = 0
c = INIP4212.18.62.1
m = audio 1234 RTP/AVP 0
используется протокол версия v=0;
в сети используется протокол IP, версия 4;
IP адрес шлюза - 212.18.62.1;
передается или принимается речевая информация упакованная в пакеты RTP;
номер порта RTP – 1234;
алгоритм кодирования речи - G.711, закон
Протокол Меgасо/Н.248
Меgасо (MEdia GAteway COntrol Protocol) в IETF (Комитет инженерных проблем Интернет)
Н.248 в ITU (Международный союз электросвязи)
Для переноса сигнальных сообщений Мегасо/Н.248 может использоваться протокол UDP, протокол TCP, протокол SCTP или транспортная технология ATM.
Модель обслуживания вызова
Протокол Меgасо оперирует двумя логическими объектами:
n окончание или порт (termination) и
n контекст (context).
Окончание (порт) может рассматриваться как логический объект транспортного шлюза, который может являться источником и приемником мультимедийной информации, во многом аналогичным порту (endpoint) протокола MGCP.
Контекст - это отображение логической связи между несколькими портами; например, все порты, участвующие в конференции, составляют единый контекст, т.е. находятся внутри одного контекста. Таким образом, контекст в некотором смысле, включает в себя понятие «сеанс связи» MGCP. Контекст имеет локальное значение, т.е. действителен для одного транспортного шлюза. Существует особый вид контекста - нулевой (null). В него по умолчанию входят все порты, которые не связаны ни между собой, ни с другими портами.
Окончания
Окончания являются источниками и приемниками медиаинформации и, одновременно, логическими объектами транспортного шлюза. Можно выделить два вида окончаний в зависимости от того, какой они представляют интерфейс - физический или виртуальный.
n Физические окончанияаналогичны полупостоянным соединениям в традиционной телефонии и существуют с момента конфигурации шлюза. Это - аналоговые телефонные интерфейсы оборудования, поддерживающие одно телефонное соединение, или цифровые телефонные каналы.
n Виртуальные окончаниясуществуют только в течение разговорного сеанса, являются интерфейсами со стороны IP-сети (например, RTP-окончания), через которые ведутся передача и приемпакетов. Виртуальные окончания создаются шлюзом при получении от Softswitch команды Add и ликвидируются при получении команды Subtract, тогда как физические окончания при получении команды Add или Subtract, соответственно, выводятся из нулевого контекста или возвращаются обратно в нулевой контекст.
Окончания имеют различные свойства.
Каждое окончание имеет уникальный идентификатор TerminationID
Контекст
Контекст (Context) представляет собой отображение связи между несколькими окончаниями, то есть абстрактное представление соединения двух или более портов одного шлюза. Окончания могут быть добавлены к контексту, удалены из контекста или перемещены из одного контекста в другой. В любой момент времени окончание может существовать только в одном контексте, который имеет свой уникальный идентификатор, и окончания могут обмениваться ин формацией, только находясь в одном и том же контексте. I
Существует особый вид контекста - нулевой. Все окончания, входящие в нулевой контекст, не связаны ни между собой, ни с другими портами (является абстрактным представлением свободного канала).
Для присоединения окончания к контексту служит команда Add. Если команда Add I не указывает контекст, в который должно быть добавлено окончание, в результате выполнения команды Add создается новый контекст.
Окончание переводится из одного контекста в другой с помощью команды Move, а удаляется из контекста с помощью команды Subtract.
Атрибутами контекста являются:
n идентификатор контекста ContextID,
n топология контекста (кто кому передает и от кого принимает информацию),
n приоритет (один из 16 уровней).
Команды
Медасо/Н.248 определяет восемь команд, которые обеспечивают возможность управлять и манипулировать контекстами и окончаниями.
n Команда Add(добавить). С ее помощью Softswitch дает указание шлюзу добавить окончание к контексту. Если команда Add не указывает контекст, куда добавляется окончание, то создается новый контекст.
n Командой Modify(изменить) Softswitch дает указание шлюзу изменить свойства окончания.
n Команда Subtract(исключить) удаляет окончание из контекста. Ответ на команду может содержать статистические данные, относящиеся к участию окончания в контексте. Эти данные зависят от типа оконечного устройства. Для окончания RTP-статистические данные могут включать в себя сведения о переданных пакетах, о полученных пакетах, о джиттере и т.п.
n Команда Move(переместить) перемещает окончание из одного контекста в другой. Она не используется для перемещения окончания из нулевого контекста или в него, поскольку эти операции должны выполняться командами Add и Subtract, соответственно. Возможность перемещать окончание из одного контекста в другой - это полезный инструмент для реализации услуги «вызов
Команды (2)
n Команда AuditValue(проверить значение) используется Softswitch для поиска текущих значений свойств, событий и сигналов, ассоциированных с одним или несколькими окончаниями.
n Команда AuditCapabilities(проверить возможности) используется Softswitch для поиска возможных значений свойств, событий и сигналов, ассоциированных с одним или несколькими окончаниями.Разница с AuditValue заключается в том, что команда AuditValue используется для определения текущего состояния окончания, в то время как команда AuditCapabilities позволяет определять состояния, которые окончание может принимать.
n Команда Notify(уведомить) передается MG для того, чтобы информировать Softswitch о событиях, которые произошли в транспортном шлюзе. По поводу событий, о которых необходимо сообщать, обычно предварительно приходит запрос в составе команды из Softswitch в MG, например, в команде Modify. События, о которых сообщается, обычно сопровождаются параметром RequestedID, чтобы Softswitch мог увязать эти события с ранее переданными запросами.
n Команда ServiceChange(изменение обслуживания) позволяет MG информировать Softswitch о предстоящем выводе из обслуживания или возврате в обслуживание группы окончаний. Команда используется также в ситуации, когда Softswitch передает управление некоторым транспортным шлюзом другому Softswitch. В этом случае команда сначала передается из Softswitch в MG, чтобы инициировать передачу управления, а затем MG передает команду ServiceChange в новый Softswitch для установления новых взаимоотношений.
Дескрипторы
Megaco/H.248 определяет ряд дескрипторов, предназначенных для использования вместе с командами и ответами. Эти дескрипторы образуют параметры команды и/или ответа и содержат дополнительную информацию об их свойствах. В зависимости от команды или ответа тот или иной дескриптор бывает обязательным, запрещенным или опциональным.
Общий формат дескриптора выглядит следующим образом:
Descriptomame=<somelD>{parm=value, parm=value, ...}
Дескрипторы (2)
n Дескриптор модема,Modem, специфицирует тип модема и связанные с ним параметры, которые следует использовать в соединениях модема при передаче аудио, видео или данных.
n Дескриптор мультиплексирования,Мих, характеризует тип мультиплексирования в мультимедийном терминале.
n Дескриптор среды,Media, описывает различные информационные потоки (медиа-потоки).
n Дескриптор состояния окончания,TerminationState, содержит сведения о двух характеристиках окончания: ServiceStates и EventBufferControl.
Характеристика ServiceStates указывает, доступно ли окончание для использования. Она может иметь три значения:
тестирование, вне обслуживания и в обслуживании.
Характеристика EventBufferControl указывает, следует ли сведения об обнаруженных окончанием событиях помещать в буфер или их надо немедленно обрабатывать.
n Дескриптор событий,Events, содержит Requestldentifier и список событий, которые MG должен обнаруживать и про которые сообщать (переход в состояние трубка поднята, тональный сигнал факса и пр.).
n Дескриптор сигналов,Signals, содержит список сигналов, которые должно подавать окончание.
n Дескриптор топологииTopology, соответствует только контексту, а не определенному окончанию в контексте. Назначение дескриптора - указать, как должны протекать в контексте медиа-потоки, т.е. кто и кого должен слышать или видеть.
n Дескриптор Errorпередается в ответе, когда не может быть выполнена команда.
Транзакции
Команды, передаваемые между Softswitch и MG, группируются в структуры, которые устроены так, что за набором команд, относящихся к одному контексту, может следовать набор команд, относящихся к другому контексту. Сгруппированные команды передаются вместе в едином блоке TransactionRequest. Это можно представить так:
TransactionRequest (TransactionID {
ContextID1 {Command, Command, ... Command},
ContextID2 {Command, Command, ... Command},
ContextID3 {Command, Command, ... Command} } )
После приема TransactionRequest получатель выполняет вложенные команды. Команды выполняются последовательно, в том порядке, в каком они указаны в TransactionRequest. После выполнения всех команд передается ответ TransactionReply. Он имеет содержит несколько ответов для нескольких контекстов: TransactionReplv можно представить так:
TransactionReplv (TransactionID{
ContextlD1 { Response, Response, ... Response },
ContextID2 { Response, Response, ... Response },
ContextID3 { Response, Response, ... Response } } )
Если получателю TransactionRequest потребуется некоторое время для выполнения запроса, он может передать отправителю этого запроса предварительный ответ, чтобы тот не считал запрос потерянным. Этот предварительный ответ TransactionPending извещает,
что TransactionRequest принят и в данный момент обрабатывается. Такой ответ содержит принятый TransactionID без каких-либо параметров:
TransactionPending (TransactionID {.})
Сообщения
Несколько транзакций протокола могут помещаться в сообщение. Сообщение снабжается заголовком, идентифицирующим отправителя, идентификатором сообщения MID {Message Identifier)