繁体   English   中英

自定义端口SipProvider in那教SIP

[英]Custom port SipProvider Jain SIP

我实际上是在使用Jain SIP开发SIP应用程序,并且我与WireShark一起注意到,实际上我要在SipProvider对象的初始化过程中使用的端口并未用于发送请求。 例如 :

公共SipLayer(字符串用户名,字符串ip,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对象使用我的5600 TCP端口吗?

谢谢你的帮助 :)

这是OS / Java / TCP的限制。 这不是不可能,但是它在大多数机器上都不起作用,因此JAIN-SIP像其他大多数SIP设备一样使用临时端口。 看到这个答案https://serverfault.com/questions/326819/does-the-tcp-source-port-have-to-be-unique-per-host

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM