Open danvirsen opened 3 months ago
what version are you running? This is quite strange, as this scenario is quite common and no bug has ever been reported. Please test and provide results of your tests when running latest version which is 0.8.25
Hi! Thanks for the quick response! For this test I was running 0.8.25.
In that case, please submit the full log including the INVITE, preferably at debug level
Here you go: drachtio-183-on-reinvite.log
Drachtio log was set to debug.
Hi again! Have you had a chance to take a look at this? Do you need anything more from me?
When a re-INVITE gets a 18x provisional response, Drachtio doesn't accept the 200 OK when it arrives with the message:
unknown response (possibly late arriving?) - discarding
. This causes the client to retransmit the 200 OK until it times out.Everything seems to work fine if the client only send a
100 Trying
, but we have clients that send either180
or183
before their200
.The only way I could test this locally was by modifying a WebRTC client so the test case isn't exactly like it was reported to me but I still got the error so I think it's good.
Log of the scenario starting from the incoming
183 Session Progress
response to the re-INVITE (Drachtio log set todebug
and Sofia to9
):I modified
processRequestInsideDialog
insip-dialog-controller.cpp
to only callclearRIP
whensip->sip_status->st_status
is not1xx
just to try it out and that seems to fix the problem. However, I'm not familiar with the code base so I'm not sure if that's the proper place to make this kind of change. Any potential fix might belong somewhere else since sending a100 Trying
doesn't break anything.