Сделайте запрос на сервер оглушения (Coturn)

#c# #stun #turn #coturn #rfc5766turnserver

Вопрос:

m create a coturn server and check it by TrickleICE https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ . Its work. Now i want to write simple client. I Я подключаюсь к серверу с помощью UDP-клиента:

         udpClient = new UdpClient();
        IPAddress ipAddress = IPAddress.Parse(IpAddress);
        ipEndPoint = new IPEndPoint(ipAddress, Port);
        try
        {
            udpClient.Connect(ipEndPoint);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
 

Затем я создаю массивы байтов заголовка и атрибутов, как описано здесь: https://datatracker.ietf.org/doc/html/rfc5766

Пример создания заголовка:

         byte[] header = new byte[20];
        byte[] messageT = BitConverter.GetBytes((Int16)messageType);
        byte[] messageLength;
        messageLength = BitConverter.GetBytes((Int16)attributeLength);            
        byte[] TransactionId = MyTransactionByteArray
        messageT.CopyTo(header, 0);
        messageLength.CopyTo(header, 2);
        TransactionId.CopyTo(header, 4);
 

Когда я отправляю заголовок без каких-либо атак по протоколу stun (https://datatracker.ietf.org/doc/html/rfc3489#section-11.1) в журналах сервера говорится:

    handle_udp_packet: New UDP endpoint: local addr 0.0.0.0:10000, remote addr "myip":"port" 
   Wrong OLD STUN message received
 

С атрибутами(как здесь: https://datatracker.ietf.org/doc/html/rfc5766#section-16):

  handle_udp_packet: New UDP endpoint: local addr 0.0.0.0:10000, remote
 addr "myip":"port"
 

И я не получаю никакого ответа.

  IPEndPoint ip = null;
 byte []msg = udpClient.Receive(ref ip);
 

Где я ошибся?

Ответ №1:

ОК. просто используйте этот заголовок из новейшего протокола оглушения: https://datatracker.ietf.org/doc/html/rfc5389