Java jain sip processResponse()未被调用

Java jain sip processResponse()未被调用,java,sip,jain-sip,Java,Sip,Jain Sip,我正在尝试使用JAIN SIP API发送SIP注册请求。我已经在类中实现了javax.sip.SipListener,我的程序成功地发送了请求,甚至我从sip服务器得到了401个未经授权的响应。我已经用wireshark验证了这一点。但是 未调用processResponse()。我在processResponse()中使用了System.out.Println(“response received”)来验证它是否被调用。谁能帮我弄清楚为什么会发生这种事。我的头被烫得很厉害,弄不清楚。 我已将

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

公共类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) {

}
//public localip=Inet4Address.getLocalHost().getHostAddress();
SipFactory SipFactory=null;
SipStack SipStack=null;
属性;
海德工厂海德工厂;
地址工厂地址工厂;
MessageFactory MessageFactory;
SipProvider SipProvider;
ListeningPoint lp;
ContactHeader ContactHeader;
ClientTransaction-invited;
public void init()引发异常{
sipFactory=sipFactory.getInstance();
sipFactory.setPathName(“gov.nist”);
属性=新属性();
setProperty(“javax.sip.STACK_NAME”、“sip_Test”);
//创建SipStack对象
sipStack=sipFactory.createSipStack(属性);
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()引发异常{
字符串fromName=“223344”;
字符串fromSipAddress=“173.194.117.84”;
字符串toSipAddress=“173.194.117.84”;
字符串toUser=“223344”;
SipURI fromAddress=addressFactory.createSipURI(fromName,
fromSipAddress);
System.out.println(“sipuri fromaddress”+fromaddress);
AddressFromNameAddress=addressFactory.createAddress(fromAddress);
FromHeader FromHeader=headerFactory.createFromHeader(
fromNameAddress,空);
SipURI toAddress=地址工厂
.createSipURI(toUser,toSipAddress);
Address tonNameAddress=addressFactory.createAddress(toAddress);
ToHeader ToHeader=headerFactory.createToHeader(toNameAddress,
无效);
URI requestURI=addressFactory.createURI(
“sip:”+“173.194.117.84”);
List viaHeaders=new ArrayList();
字符串ipAddress=lp.getIPAddress();
ViaHeader=headerFactory.createViaHeader(ipAddress,
lp.getPort(),
lp.getTransport(),null);
viaHeader.add(viaHeader);
CallIdHeader CallIdHeader=sipProvider.getNewCallId();
CSeqHeader CSeqHeader=headerFactory.createCSeqHeader(1L,
申请(登记册);
MaxForwardsHeader maxForwards=headerFactory
.createMaxForwardsHeader(70);
Request-Request=messageFactory.createRequest(requestURI,
Request.REGISTER,callIdHeader,cSeqHeader,fromHeader,
toHeader、ViaHeader、maxForwards);
SipURI contactURI=addressFactory.createSipURI(fromName,“173.194.117.84”);
contactURI.setPort(sipProvider.GetListengPoint(lp.getTransport())
.getPort());
Address contactAddress=addressFactory.createAddress(contactURI);
contactHeader=headerFactory.createContactHeader(contactAddress);
request.addHeader(contactHeader);
Header extensionHeader=headerFactory.createHeader(“过期”,
"120");
request.addHeader(extensionHeader);
System.out.println(“请求为”+请求);
inviteTid=sipProvider.getNewClientTransaction(请求);
inviteTid.sendRequest();
}
public void processRequest(RequestEvent RequestEvent){
}
public void processResponse(ResponseEvent ResponseEvent){
System.out.println(“收到响应”);
System.out.println(“响应事件”+responseEvent.getResponse().getStatusCode());
}
public void processTimeout(TimeoutEvent TimeoutEvent){
}
公共无效进程IOException(IOExceptionEvent exceptionEvent){
}
public void processTransactionTerminated(事务终止事件事务终止事件){
}
公共无效进程DialogTerminated(DialogTerminatedEvent DialogTerminatedEvent){
}
}

您有像这样的addSipListener()吗

sipProvider.addSipListener(监听器)

这就是回调工作的原因。在您的例子中,侦听器是CoreEngine实例,因为它实现了回调接口