Входящий запрос на изменение параметров вызова
Диспетчер вызовов или драйвер MCM получает оповещение о входящем запросе от удаленной стороны на изменение параметров вызова в активной виртуальной сети путем передачи сообщений из сети. Поддерживает ли диспетчер вызовов или драйвер MCM динамические изменения качества обслуживания при активных вызовах, зависит от протокола сигнализации.
На следующем рисунке показан входящий запрос через диспетчер звонков для изменения параметров вызова.
На следующем рисунке показан входящий запрос через драйвер MCM для изменения параметров вызова.
После получения входящего запроса на изменение параметров вызова диспетчер вызовов передает соответствующим образом измененные параметры вызова в NdisCmActivateVc , чтобы уведомить базовый драйвер минипорта о предлагаемом изменении качества обслуживания. Драйвер MCM передает измененные параметры вызова в NdisMCmActivateVc (см. раздел Активация VC). Если базовый драйвер мини-порта принимает измененные параметры вызова, диспетчер вызовов вызывает NdisCmDispatchIncomingCallQosChange (см. раздел Входящий запрос на изменение параметров вызова). Драйвер MCM вызывает NdisMCmDispatchIncomingCallQosChange (см. входящий запрос на изменение параметров вызова). Диспетчер вызовов или драйвер MCM передает NdisVcHandle и буферизуемую структуру CO_CALL_PARAMETERSв Ndis(M)CmDispatchIncomingCallQoSChange.
Вызов Ndis(M)CmDispatchIncomingCallQoSChange вызывает функцию ProtocolClIncomingCallQoSChange клиента. NDIS передает дескриптор ProtocolVcContext , который идентифицирует VC и измененные параметры вызова в буферизованной структуре CO_CALL_PARAMETERS , в ProtocolClIncomingCallQoSChange.
Клиент принимает предлагаемые изменения параметров вызова для VC, не выполняя никаких действий, за исключением возможного обновления любого состояния качества обслуживания для проверяемого удостоверения и возврата элемента управления. Если предложенные изменения неприемлемы, клиент может попытаться пересмотреть параметры вызова с помощью NdisClModifyCallQoS , если это разрешено протоколом сигнализации (см. раздел Инициированный клиентом запрос на изменение параметров вызова). В противном случае клиент отклоняет предлагаемое изменение качества обслуживания, разрывая вызов с помощью NdisClCloseCall (см. раздел Инициированный клиентом запрос на закрытие вызова).
После возврата ProtocolClIncomingCallQoS диспетчер вызовов или драйвер MCM сообщает о принятии или отклонении клиентом предлагаемого изменения удаленной стороне, которая вызвала запрос.