gpt4 book ai didi

java - jain sip processResponse() 没有被调用

转载 作者:行者123 更新时间:2023-12-01 13:11:52 25 4
gpt4 key购买 nike

我正在尝试使用 JAIN SIP API 发送 SIP 注册请求。我已经在类中实现了 javax.sip.SipListener,并且我的程序成功发送了请求,甚至我从 sip 服务器收到了 401 未经授权的响应。我已经使用wireshark验证了这一点。但processResponse() 没有被调用。我在 processResponse() 中使用了 System.out.Println("response returned") 来验证它是否被调用。谁能帮我解释为什么会发生这种情况。我的头已经烧得很厉害了,无法弄清楚。我已将代码粘贴在下面。

公共(public)类 CoreEngine 实现 javax.sip.SipListener{

//public localip=Inet4Address.getLocalHost().getHostAddress();
SipFactory sipFactory = null;
SipStack sipStack = null;
Properties properties;
HeaderFactory headerFactory;
AddressFactory addressFactory;
MessageFactory messageFactory;
SipProvider sipProvider ;
ListeningPoint lp;
ContactHeader contactHeader;
ClientTransaction inviteTid;

public void init() throws Exception {

sipFactory = SipFactory.getInstance();
sipFactory.setPathName("gov.nist");
properties = new Properties();
properties.setProperty("javax.sip.STACK_NAME", "Sip_Test");
// Create SipStack object
sipStack = sipFactory.createSipStack(properties);
headerFactory = sipFactory.createHeaderFactory();
addressFactory = sipFactory.createAddressFactory();
messageFactory = sipFactory.createMessageFactory();
lp = sipStack.createListeningPoint("192.168.0.205",
5060, ListeningPoint.UDP);
sipProvider = sipStack.createSipProvider(lp);


}

public void register() throws Exception {
String fromName = "223344";
String fromSipAddress = "173.194.117.84";

String toSipAddress = "173.194.117.84";
String toUser = "223344";
SipURI fromAddress = addressFactory.createSipURI(fromName,
fromSipAddress);
System.out.println("sipuri fromaddress"+fromAddress);

Address fromNameAddress = addressFactory.createAddress(fromAddress);
FromHeader fromHeader = headerFactory.createFromHeader(
fromNameAddress, null);
SipURI toAddress = addressFactory
.createSipURI(toUser, toSipAddress);
Address toNameAddress = addressFactory.createAddress(toAddress);
ToHeader toHeader = headerFactory.createToHeader(toNameAddress,
null);

URI requestURI = addressFactory.createURI(
"sip:" + "173.194.117.84");
List<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
String ipAddress = lp.getIPAddress();
ViaHeader viaHeader = headerFactory.createViaHeader(ipAddress,
lp.getPort(),
lp.getTransport(), null);

viaHeaders.add(viaHeader);

CallIdHeader callIdHeader = sipProvider.getNewCallId();

CSeqHeader cSeqHeader = headerFactory.createCSeqHeader(1L,
Request.REGISTER);

MaxForwardsHeader maxForwards = headerFactory
.createMaxForwardsHeader(70);

Request request = messageFactory.createRequest(requestURI,
Request.REGISTER, callIdHeader, cSeqHeader, fromHeader,
toHeader, viaHeaders, maxForwards);



SipURI contactURI = addressFactory.createSipURI(fromName, "173.194.117.84");
contactURI.setPort(sipProvider.getListeningPoint(lp.getTransport())
.getPort());
Address contactAddress = addressFactory.createAddress(contactURI);

contactHeader = headerFactory.createContactHeader(contactAddress);
request.addHeader(contactHeader);

Header extensionHeader = headerFactory.createHeader("Expires",
"120");
request.addHeader(extensionHeader);
System.out.println("request is"+ request);
inviteTid = sipProvider.getNewClientTransaction(request);
inviteTid.sendRequest();

}



public void processRequest(RequestEvent requestEvent) {


}

public void processResponse(ResponseEvent responseEvent) {
System.out.println("Response received");
System.out.println("response event"+ responseEvent.getResponse().getStatusCode());
}

public void processTimeout(TimeoutEvent timeoutEvent) {

}

public void processIOException(IOExceptionEvent exceptionEvent) {

}

public void processTransactionTerminated(TransactionTerminatedEvent transactionTerminatedEvent) {

}

public void processDialogTerminated(DialogTerminatedEvent dialogTerminatedEvent) {

}

}

最佳答案

你有像这样的 addSipListener() 吗?

sipProvider.addSipListener(listener);

这就是回调起作用的原因。在您的情况下,监听器是 CoreEngine 实例,因为它实现了回调接口(interface)。

关于java - jain sip processResponse() 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22794314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com