Далее идет описание команд, которые используются для манипулирования двумя основными объектами протокола MEGACO/H.248:
портами и контекстами. В большинстве случаев команды передает контроллер, но существуют два исключения: команда Notify, передается шлюзом, а команда ServiceChange может передаваться и шлюзом, и контроллером. В квадратных скобках указаны необязательные дескрипторы команд. Те дескрипторы, которые расположены над командами, передаются в ответах на команды.
Команда Add добавляет порт к контексту. Если команда относится к первому порту, который должен быть добавлен к контексту, то создается новый контекст.
где TerminationID - это идентификатор порта, который должен быть добавлен к контексту. Для уже существующего порта должен быть указан его идентификатор, для несуществующего порта должен быть указан идентификатор «$». В ответе на команду должен передаваться TerminationID, назначенный шлюзом.
где TerminationID - идентификатор порта, который должен быть отсоединен от контекста. В случае отключения всех портов от контекста используется TerminationID «*».
В ответ на команду Subtract в дескрипторе StatisticsDescriptor шлюз посылает статистику, собранную за время соединения.
Команда Move переводит порт из текущего контекста в другой контекст в одно действие.
где TerminationID - идентификатор порта, который должен быть переведен из одного контекста в другой. Дескрипторы здесь используются такие же, как в команде Modify.
При помощи команды AuditValue контроллер запрашивает сведения о свойствах порта, произошедших событиях или сигналах, передаваемых в канал, а также статистику, собранную на текущий момент.
В ответ на команду передаются запрашиваемые параметры порта или портов шлюза.
При помощи команды AuditCapabilities контроллер запрашивает возможные значения свойств порта, список событий, которые могут быть обнаружены портом, список сигналов, которые порт может передавать в канал, статические данные.
В ответ на команду передаются запрашиваемые параметры порта.
Команда Notify служит для того, чтобы известить контроллер о событиях, которые произошли в шлюзе.
Notify(TenninationID,
ObservedEventsDescriptor ),
где TerminationID идентифицирует порт, передавший команду Notify.
ObservedEventsDescriptor-дескриптор, содержащий список произошедших событий (в том порядке, в каком они происходили).
Команда ServiceChange позволяет шлюзу известить контроллер о том, что порт или группа портов вышли из обслуживания или вернулись в обслуживание. Media Gateway Controller может предписать порту выйти из обслуживания или вернуться в обслуживание. При помощи данной команды контроллер может передать управление шлюзом другому контроллеру.
[ServiceChangeDescriptor]
ServiceChange(TerminationID
,ServiceDescriptor ),
где TerminationID идентифицирует порт или порты, вышедшие из обслуживания или вернувшиеся в обслуживание. Значение «Root» дескриптора TerminationID показывает, что весь шлюз вышел из обслуживания или вернулся в обслуживание.
ServiceDescriptor - дескриптор, содержащий поля со сведениями: о методе изменения состояния; причине изменения; задержке; адресе, куда должны передаваться сообщения; профиле поддерживаемого протокола и другие поля.
По аналогии с предыдущими главами, в таблицу 8.3 сведены все команды протокола MEGACO/H.248.
В заключение данного параграфа в таблице 8.4 приведены коды ошибок, используемые в протоколе MEGACO/H.248.
Таблица 8.3 Команды протокола MEGACO/H.248
Команда
Направление передачи
Назначение
Add (Добавить)
MGC -> MG
Контроллер дает указание шлюзу добавить порт к контексту
Modify (Изменить)
MGC -> MG
Контроллер дает указание шлюзу изменить свойства порта
Subtract (Отключить)
MGC -> MG
Контроллер изымает порт из контекста
Move (Перевести)
MGC -> MG
Контроллер переводит порт из одного контекста в другой в одно действие
AuditValue (Проверить порт)
MGC -> MG
Контроллер запрашивает свойства порта, произошедшие события или сигналы, передаваемые в канал, а также статистику, собранную на текущий момент времени
AuditCapabilities (Проверить возможности порта)
MGC -> MG
Контроллер запрашивает возможные значения свойств порта, список событий, которые могут быть выявлены портом, список сигналов, которые порт может посылать в канал, статические данные
Notify (Уведомить)
MG -> MGC
Шлюз информирует контроллер о произошедших событиях
ServiceChange (Рестарт)
MG -> MGC, MGC -> MG
Шлюз информирует контроллер о том, что один или несколько портов выходят из рабочего состояния или возвращаются в рабочее состояние. Контроллер может предписать порту или группе портов выйти из обслуживания или вернуться в обслуживание
Таблица 8.4 Коды ошибок
Код ошибок
Описание
Некорректный запрос
Ошибка в протоколе
Авторизация не подтверждена
Синтаксическая ошибка в транзакции
Некорректный идентификатор
В транзакции указан идентификатор несуществующего контекста
Отсутствуют свободные идентификаторы контекста
Нет такого события или сигнала в пакете (package)
Неизвестная акция или некорректная комбинация акций
Синтаксическая ошибка в акции
Неизвестный идентификатор порта
Несуществующий идентификатор порта
Отсутствуют свободные идентификаторы портов
Порт, с указанным идентификатором, уже добавлен к контексту
Не поддерживаемый или неизвестный пакет
Отсутствует дескриптор Remote
Синтаксическая ошибка в команде
Не поддерживаемая или неизвестная команда
Не поддерживаемый или неизвестный дескриптор
Не поддерживаемое или неизвестное свойство
Не поддерживаемый или неизвестный параметр
Дескриптор не совместим с командой
Два одинаковых дескриптора в команде
Отсутствующее в пакете свойство
Отсутствующее в пакете событие
Отсутствующий в пакете сигнал
Отсутствующая в пакете статистическая информация
Отсутствующее значение параметра в пакете
Параметр не совместим с дескриптором
Два одинаковых параметра или свойства в дескрипторе
Внутренняя ошибка в шлюзе
Не поддерживается
Оборудование не готово
Услуга не реализована
Недостаточно ресурсов
Шлюз не оборудован для детектирования требуемого события
Шлюз не оборудован для генерирования требуемого сигнала
Шлюз не может воспроизвести уведомление или подсказку
Не поддерживаемый вид информации
Не поддерживаемый или некорректный режим
Переполнение буфера, в котором хранится информация о произошедших событиях
Не хватает памяти для хранения плана нумерации
Шлюз не имеет информации об используемом плане нумерации