681455497 Осипов В.С. Описание работы модуля IPCOM в системе (версия №2 от 7.03.06) Отличие от предыдущей версии – п.п.3.2 - 3.4 приведены в соответствие с I_MCTRL_IPCOM-v2.doc. 1. Назначение модуля IPCOM Назначение модуля IPCOM – коммутация звуковых кадров, поступающих в брикет шлюза от других брикетов станции, во внешнюю сеть в составе IP-пакетов по протоколу H.323, и коммутация в обратном направлении - коммутация звуковых кадров, приходящих в брикет шлюза из внешней сети в составе IP-пакетов по протоколу H.323, в другие брикеты станции. 2. Интерфейсы модуля IPCOM 2.1. Обмен звуковыми кадрами с брикетами станции осуществляется по интерфейсу I_IPCOM_IPDSP с модулем IPDSP – см. «Описание программного интерфейса между модулями IPCOM и IPDSP”. 2.2. Обмен IP-пакетами с внешней сетью осуществляется по интерфейсу I_DETH_IPCOM с модулем DETH – см. «Описание программного интерфейса между модулями DETH и IPCOM”. 2.3. Таблицы управления коммутацией в модуле IPCOM заполняются информацией, поступающей из модуля MCTRL_G по интерфейсу I_MCTRL_IPCOM - см. «Описание программного интерфейса между модулями MCTRL и IPCOM”. 2.4. Полученные из модуля DETH IP-пакеты, не содержащие звуковые кадры, передаются в модуль MIP в сигналах MADI_nt (описание сигнала см. в «Описании программного интерфейса между модулями DETH и IPCOM”). 3. Описание работы модуля IPCOM 3.1. По сигналу инициализации InitIPCOM_RQ производится обнуление таблиц управления коммутацией Sender_Table и Receiver_Table. Затем выдается сигнал уведомления об окончании инициализации модуля IPCOM - InitIPCOM_I. 3.2. Коммутация звуковых кадров от брикетов станции во внешнюю сеть осуществляется по информации таблицы Sender_Table. Коммутация звуковых кадров из внешней сети в брикеты станции осуществляется по информации таблицы Receiver_Table. Каждая строка таблицы соответствует условному каналу шлюза. По принятии решения (в модуле MCTRL_G) о передаче звуковой информации от брикета станции во внешнюю сеть, в строку таблицы Sender_Table, соответствующую свободному исходящему каналу шлюза, сигналом wr_Sender_Table заносится адресная информация во внешней сети (IP-адрес назначения и MAC-адрес назначения, являющийся MAC-адресом конечного узла назначения, если он находится в той же сети, что источник, или MAC-адресом соответствующего ближайшего маршрутизатора), номера UDP-порта источника и UDP-порта назначения и значение SSRC (идентификатор источника синхронизации передаваемой звуковой информации). При этом брикету станции, от которого будут передаваться звуковые кадры, сообщается номер канала шлюза (номер строки таблицы Sender_Table) для использования в качестве значения RP при TYPE=0. 681455497 2 По принятии решения о передаче звуковой информации из внешней сети в брикет станции, в строку таблицы Receiver_Table, соответствующую свободному входящему каналу шлюза, сигналом wr_Receiver_Table заносится адресная информация брикета станции (MAC-адрес брикета, RP и RP_TYPE) и номер UDP-порта назначения в принимаемых UDP-дейтаграммах. 3.3. Звуковой кадр из брикета станции (содержащий звуковую информацию от одного источника, накопленную за 2 мс) поступает из модуля DETH в модуль IPCOM через модуль IPDSP, где производится компандирование каждого из содержащихся в кадре 16-ти двухбайтных звуковых отсчетов в однобайтный отсчет согласно G.711, A-law. (В будущем, возможно, потребуется укрупнять звуковые кадры перед отправкой во внешнюю сеть, для уменьшения внешнего потока. Хотя вряд ли, поскольку это увеличит задержку звука.) Интерфейс модуля DETH с модулем IPDSP идентичен интерфейсу модуля DETH с модулем MDSP. Сигнал MADI_st, содержащий звуковой кадр, а также RP, TYPE и SN, попадает в сервис Nt_Sender, где звуковой кадр записывается в IP_packet_sound!RTP_data и последовательно работают следующие процедуры для формирования заголовков IP-пакета: - H323MG_Sender: - при TYPE=0 присвоение переменной индекса таблицы (номера строки) значения RP; - вычисление значения двухбайтного порядкового номера Sender_Table(index)!SN и четырехбайтной метки времени (единица соответствует 0,125 мс) Sender_Table(index)!TS. - RTP_Sender: - формирование заголовка RTP-пакета в IP_packet_sound!RTP_header, в частности, в поля заголовка вписываются следующие значения: в поле "sequence number" - Sender_Table(index)!SN, в поле "timestamp" Sender_Table(index)!TS, в поле "synchronization source (SSRC) identifier" - Sender_Table(index)!SSRC. - UDP_Sender: - формирование заголовка UDP-пакета в IP_packet_sound!UDP_header, при этом в поля заголовка "Source Port" и "Destination Port" вписываются значения Sender_Table(index)!S_UDP_port и Sender_Table(index)!D_UDP_port. - IP_Sender: - формирование заголовка IP-пакета в IP_packet_sound!IP_header, при этом в поле IP-адреса назначения вписывается значение Sender_Table(index)!D_IPAddr. Сформированный в IP_packet_sound IP-пакет со звуковыми данными выдается в сигнале MADR_nt_sound в модуль DETH для выдачи в IP-сеть в Ethernet-кадре соответствующего формата (см. п.1.1 «Описания программного интерфейса между модулями DETH и IPCOM”). 3.4. Принятый модулем DETH IP-пакет передается в сигнале MADR_nt в модуль IPCOM, где попадает в сервис Nt_Receiver. В процедуре Check_UDP_RTP_type проверяется - вложена ли в полученный IP-пакет UDP-дейтаграмма, содержащая RTP-пакет, т.е. содержит ли IP-пакет звуковые данные. Если нет, то сигнал MADR_nt отправляется в модуль MIP. 681455497 3 Если да, то информация IP-пакета проходит обработку в процедурах IP_Receiver, UDP_ Receiver и RTP_ Receiver, где проходят проверку и декодирование заголовки соответственно IP-пакета, UDP-сегмента и RTP-пакета, и извлекаются звуковые данные. По извлеченному из заголовка RTP-пакета номеру UDP-порта назначения, производится поиск строки в таблице Receiver_Table с равным значением UDP_port. При положительном результате поиска из модуля IPCOM отправляется сигнал MADR_st, содержащий звуковые данные (8 или 16 однобайтных звуковых отсчетов согласно G.711, A-law), адресную информацию приемника в станции, а также четырехбайтную метку времени (единица младшего разряда соответствует 0,125 мс), полученную в принятом RTP-пакете. (В будущем, возможно, потребуется укрупнять звуковые кадры передаваемые через внешнюю сеть, для уменьшения внешнего потока. Хотя вряд ли, поскольку это увеличит задержку звука.) Звуковые данные передаются в модуль DETH через модуль IPDSP, где производится декомпандирование каждого однобайтного звукового отсчета в двухбайтный отсчет и формирование звуковых кадров по 16 отсчетов.