Как отправить request SIP-запрос ‘(SIP-клиент) в Java - PullRequest
0 голосов
/ 17 июня 2019

Я настраиваю нового клиента и хочу отправить SIP-запрос с использованием JAVA. Я сделал несколько шагов, но безрезультатно.

Например, при отправке запроса от клиента не дается ответ от сервера ... Я думаю, что заголовок содержит ошибки


import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;


public class Client
{

    public static void main(String args[]) throws IOException
    {
        Socket socket = new Socket("104.207.221.19", 5060);

        Scanner userInput = new Scanner(System.in);
        Scanner socketInput = new Scanner(socket.getInputStream());

        PrintStream socketOutput = new PrintStream(socket.getOutputStream());

        String Request = "";
        Request = "INVITE sip:bob@domain.com SIP/2.0 \r\n";
        Request += "Via: SIP/2.0/UDP nm;received=51.40.80.23 \r\n";
        Request += "From: <sip:nm@nm>;tag=root \r\n";
        Request += "To: <sip:nm2@nm2>;tag=dff4305d81b6facb \r\n";
        Request += "Call-ID: 50000 \r\n";
        Request += "CSeq: 42 OPTIONS \r\n";
        Request += "Content-Type: application/sdp \r\n";
        Request += "Content-Length: 142";
        Request += "\r\n\r\n";

        socketOutput.print(Request);

        while(socketInput.hasNextLine())
            System.out.println(socketInput.nextLine());

    }

}

Я ожидаю, что вывод будет ответом сервера, но фактический вывод не происходит.

1 Ответ

0 голосов
/ 17 июня 2019

В ваших заголовках написано Content-Length: 142, но вы не отправляете никакого контента - в запросе нет тела.Поэтому я думаю, что сервер ожидает поступления 142 байтов контента, прежде чем он ответит.Попробуйте установить длину содержимого на ноль.

(На самом деле я думаю, что вы отправляете 2 байта контента, потому что у вас есть запасной \r\n в конце, но определенно не 142 байта)

...