1

when testing proxy in mobicents, mobicents cannot forward bye message to the other one. when one user send bye, it just receives 481 and the other user remains in talking.
Such exception only occurs when call duration >= 10s.

and i can see that sip application session is closed before user send bye. i dont konw how to avoid this. please help me !!!

below is my test code:

@Override
protected void doInvite(SipServletRequest request) throws ServletException, IOException {
    List<SipURI> forks = new ArrayList<SipURI>();

    SipURI toURI = (SipURI) request.getTo().getURI();
    SipFactory sipFactory = (SipFactory) getServletContext().getAttribute(SIP_FACTORY);
    forks.add( sipFactory.createSipURI(toURI.getUser(),"192.168.4.160:11180") );
    forks.add( sipFactory.createSipURI("9988003","192.168.4.30:5080") );

    //request.getProxy().setParallel(true);
    List<ProxyBranch> branches = request.getProxy().createProxyBranches( forks );
    for(ProxyBranch branch: branches){
        branch.setRecordRoute(true);
    }
    request.getProxy().startProxy();
}

and i get an exception in my log:

org.mobicents.servlet.sip.core.DispatcherException: Cannot find the corresponding sip application session to this subsequent request BYE sip:9988002@192.168.4.160:11180;transport=udp SIP/2.0
Via: SIP/2.0/UDP 192.168.4.204:11180;rport=11180;branch=z9hG4bKBH36Ht963rXeB;received=192.168.4.204
Max-Forwards: 70
From: "Extension 9988001" <sip:9988001@192.168.4.204>;tag=KtgZ29USetpNj
To: <sip:9988002@192.168.4.89>;tag=vN8t8Xm8yXg2K
Call-ID: 0e0bee76-943b-1234-4ba8-000c29680286
CSeq: 91266548 BYE
Contact: <sip:mod_sofia@192.168.4.204:11180>
User-Agent: FreeSWITCH-mod_sofia/1.2.23~64bit
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,MESSAGE,INFO,UPDATE,REGISTER,REFER,NOTIFY
Supported: timer,path,replaces
Reason: Q.850;cause=16;text="NORMAL_CLEARING"
Content-Length: 0

 with the following popped route header <sip:192.168.4.89:5060;transport=udp;as=ded31d5f-500e-4c2d-84bb-370065d85c87;appname=1180947b;proxy=true;app_id=7599adf4;lr>, it may already have been invalidated or timed out
    at org.mobicents.servlet.sip.core.dispatchers.SubsequentRequestDispatcher.dispatchMessage(SubsequentRequestDispatcher.java:248)
    at org.mobicents.servlet.sip.core.SipApplicationDispatcherImpl.processRequest(SipApplicationDispatcherImpl.java:861)
    at gov.nist.javax.sip.EventScanner.deliverRequestEvent(EventScanner.java:250)
    at gov.nist.javax.sip.EventScanner.deliverEvent(EventScanner.java:146)
    at gov.nist.javax.sip.SipProviderImpl.handleEvent(SipProviderImpl.java:185)
    at gov.nist.javax.sip.DialogFilter.processRequest(DialogFilter.java:1324)
    at gov.nist.javax.sip.stack.SIPServerTransactionImpl.processRequest(SIPServerTransactionImpl.java:811)
    at gov.nist.javax.sip.stack.UDPMessageChannel.processMessage(UDPMessageChannel.java:578)
    at gov.nist.javax.sip.stack.UDPMessageChannel.processIncomingDataPacket(UDPMessageChannel.java:524)
    at gov.nist.javax.sip.stack.UDPMessageChannel.run(UDPMessageChannel.java:319)
    at java.lang.Thread.run(Thread.java:722)

4

1 に答える 1

0

これは、通話時間が 3 分を超える通話でのみ発生しますか?

sip サーブレットの仕様では、sip セッションのデフォルトの継続時間を 3 分に定義しています。これは、sip.xml の session-timeout 属性で変更するか、アプリでプログラムによって変更できます。

于 2016-05-30T10:10:13.383 に答える