На самом деле я разрабатываю SIP-приложение, используя Jain SIP, и я заметил с помощью WireShark, что на самом деле порт, который я хочу использовать в процессе инициализации объекта SipProvider, не используется для отправки запросов. Например :
public SipLayer (имя пользователя String, IP-адрес String, порт int) выдает PeerUnavailableException, TransportNotSupportedException, InvalidArgumentException, ObjectInUseException, TooManyListenersException {
setUsername(username);
sipFactory = SipFactory.getInstance();
sipFactory.setPathName("gov.nist");
Properties properties = new Properties();
properties.setProperty("javax.sip.STACK_NAME", "MyApp");
properties.setProperty("javax.sip.IP_ADDRESS", ip);
properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "32");
properties.setProperty("gov.nist.javax.sip.SERVER_LOG",
"textclient.txt");
properties.setProperty("gov.nist.javax.sip.DEBUG_LOG",
"textclientdebug.log");
sipStack = sipFactory.createSipStack(properties);
headerFactory = sipFactory.createHeaderFactory();
addressFactory = sipFactory.createAddressFactory();
messageFactory = sipFactory.createMessageFactory();
ListeningPoint tcp = sipStack.createListeningPoint(ip, port, "tcp");
sipProvider = sipStack.createSipProvider(tcp);
sipProvider.addSipListener(this);
}
Вот мой конструктор, в котором я инициализирую sipProvider. Я использую TCP и хочу использовать порт 5600. Итак, при отправке запроса без сохранения состояния я использую следующий код в своем методе:
sipProvider.sendRequest(request);
Делая захват, я заметил, что используемый TCP-порт — это не 5600, который я выбрал, а, например, что-то вроде 52065.
Может кто-нибудь, пожалуйста, скажите мне, как я могу заставить объект sipProvider использовать мой TCP-порт 5600, пожалуйста?
Спасибо за вашу помощь :)