"To Tag" is not set correctly for reINVITE messages where we have multiple provisional responses are received before session is established.
- Client A calls Client B (registered on two clients).
- Application Server forks this call to Client B.
- Each destination sends 180 Ringing Message to Client A.
- First 180 Ringing message has ToTag=tag1. Second 180 Ringing message has ToTag=tag2.
- After that, client answers call and send 200 OK with ToTag=tag2 for session.
- Client A sends ACK message with ToTag=tag2.
- SipSession sipSession = resp.getSession();
- SipApplicationSession appsession = sipSession.getApplicationSession();
- sipSession and appsession are stored for subsequent messages.
- ACK message is created by using -> resp.createAck().send();
- After call is established, client A holds the call and it sends INVITE message for it by using stored sipsession and appsession.
- SipApplicationSession appSession = sipSessionsUtil.getApplicationSessionById(sipApplicationSessionId);
- SipSession sipSession = appSession.getSipSession(sessionId);
- SipServletRequest req = sipSession.createRequest("INVITE");
- req.setContent(contents, "application/sdp");
- req.send();
Whenever second INVITE is created, it is seen that ToTag value in 200 OK with ToTag=tag2 is not used. Instead of that ToTag=tag1 which is received first incoming 180 Ringing message is used.
I expect that mobicents can set ToTag value correctly based on confirmed dialog not early dialog. Is there anything to do or is it a bug for mobicents?
Thanks in advance
Hatke