jain-sip寄存器收到错误消息“预期通过标头ID”

问题描述

|| 我正在使用Jain sip在android上开发SIP客户端。我想用jain-sip-presence-proxy注册它。 我的代码:
public void register (String to) throws SipException,ParseException,InvalidArgumentException{

    //create From header
    //from sip URL and name adds
    SipURI from = addressFactory.createSipURI(sipProperties.getSipName(),sipProperties.getSipDomain());
    Address fromNameAddress = addressFactory.createAddress(from);
    fromNameAddress.setDisplayName(sipProperties.getDisplayName());


    FromHeader fromHeader = headerFactory.createFromHeader(fromNameAddress,\"sipstag\");//address & tag  \"Bob\" sips:[email protected] ;tag=a48s


    //create To header
    String username = \"Server\";
    String ID=\"server\";
    String address = \"10.0.2.2\";


    SipURI toAddress = addressFactory.createSipURI(username,address);
    Address toNameAddress = addressFactory.createAddress(toAddress);
    toNameAddress.setDisplayName(username);//now display name is user name
    ToHeader toHeader = headerFactory.createToHeader(toNameAddress,null);

    SipURI requestURI = addressFactory.createSipURI(username,address);
    requestURI.setTransportParam(\"udp\");

    //via header
    ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
    ViaHeader viaHeader = headerFactory.createViaHeader(sipProperties.getHostIp(),sipProperties.getISipPort(),\"udp\",null);
    viaHeaders.add(viaHeader);

    //create call id
    CallIdHeader callIdHeader = sipProvider.getNewCallId();
    //Cseq
    CSeqHeader cSeqHeader = headerFactory.createCSeqHeader(1l,Request.REGISTER);
    //MaxForwards
    MaxForwardsHeader maxForwards = headerFactory.createMaxForwardsHeader(70);

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

    SipURI contactURI = addressFactory.createSipURI(sipProperties.getSipName(),sipProperties.getSipDomain());
    contactURI.setPort(sipProperties.getISipPort());
    Address contactAddress = addressFactory.createAddress(contactURI);
    contactAddress.setDisplayName(sipProperties.getDisplayName());
    ContactHeader contactHeader = headerFactory.createContactHeader(contactAddress);
    request.addHeader(contactHeader);


    sipProvider.sendRequest(request);
    log.logMessage(\"send request is OK\");

}   
错误消息是:
DEBUG - gov.nist.javax.sip.stack.UDPMessageChannel.run(UDPMessageChannel.java:241) [error message Via: SIP/2.0/UDP 10.0.2.15:8888;branch=sipstag:[email protected]:1:register:10.0.2.15:8888

ID expected]
ERROR - Via: SIP/2.0/UDP 10.0.2.15:8888;branch=sipstag:[email protected]:1:register:10.0.2.15:8888

ID expected
java.text.ParseException: Via: SIP/2.0/UDP 10.0.2.15:8888;branch=sipstag:[email protected]:1:register:10.0.2.15:8888

ID expected
    at gov.nist.core.LexerCore.match(LexerCore.java:190)
    at gov.nist.javax.sip.parser.ViaParser.parseVia(ViaParser.java:32)
    at gov.nist.javax.sip.parser.ViaParser.parse(ViaParser.java:186)
    at gov.nist.javax.sip.parser.StringMsgParser.parseMessage(StringMsgParser.java:555)
    at gov.nist.javax.sip.parser.StringMsgParser.parseSIPMessage(StringMsgParser.java:327)
    at gov.nist.javax.sip.stack.UDPMessageChannel.run(UDPMessageChannel.java:234)
    at java.lang.Thread.run(Thread.java:662)
DEBUG - gov.nist.javax.sip.stack.UDPMessageChannel.run(UDPMessageChannel.java:247) [REGISTER sip:[email protected];transport=udp SIP/2.0
Call-ID: [email protected]
CSeq: 1 REGISTER
From: \"cy\" <sip:[email protected]>;tag=sipstag
To: \"Server\" <sip:[email protected]>
Via: SIP/2.0/UDP 10.0.2.15:8888;branch=sipstag:[email protected]:1:register:10.0.2.15:8888
Max-Forwards: 70
Contact: \"cy\" <sip:[email protected]:8888>
Content-Length: 0

]
你能帮助我吗?     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)