моя проблема такова: Я хочу разработать модуль ядра для перехвата потока voip и сделать то же, что и SBC (Session Border Controller). Так что я должен прежде всего включить поток voip, а затем работать с уровнем сеанса в пакетах. Значит, кто-нибудь может мне помочь?Модуль ядра для перехвата voip-потока
ответ
Чтобы перехватить сетевой поток, вам действительно не нужен модуль ядра. Создайте приложение для пользовательского пространства, используя сокеты BSD, или если вы знакомы с C++, вы можете попробовать boost.asio Если вы хотите получать необработанные датаграммы (не tcp/udp-трафик), используйте тип SOCK_RAW.
Я хочу перехватить поток voip, чтобы внести некоторые изменения в пакет sip, например, публичный адрес моего сервера звездочки, чтобы никто из моей локальной сети не знал реального публичного адреса сервера, это основы контроллера границы sessiion. –
SIP работает над tcp, и я предполагаю, что вам не нужно модифицировать заголовок tcp, если это так, откройте SOCK_STREAM-сокет, примите и вызовите read в сокете - вы получите буфер, который будет содержать ваш sip-контент, как только вы его сможете изменить его, отправить в файл или другой сокет –
есть ли код, который позволяет мне слушать и изменять сокет SOCK_STREAM? –
Allahu akbar. Какая операционная система? Вам не нужно разрабатывать модуль ядра для этого –
, так что я должен делать? –
Шаг 1) ответьте на мой вопрос выше. Шаг 2) ... –