-
Notifications
You must be signed in to change notification settings - Fork 637
Description
Hello,
I'm having an issue with OpenSIPS being in the middle of a regular Trunk -> OpenSIPS -> GW flow, where the GW is not answering at all ( not even 100 Trying ), and the Trunk CANCELs the call.
In such scenarios, OpenSIPS keeps re-transmitting the INVITEs until eventually fr_timer hits and the failure_route finally gets called ( as per the cancel_invite commented logic ).
Aside from being wasteful ( no real need to keep re-transmitting a request for 30 seconds - the default FR timer - if the INVITE request was cancelled in the first 3 seconds ), this can be dangerous for scenarios where the GW replies directly with a 200 OK ( eg. FAS ) - thus not giving OpenSIPS any chance to CANCEL the call.
A possible solution would be to not send the re-transmissions out at all, but still keep the transaction reffed as being in the fr_timer, in order to be able to CANCEL any provisional replies coming in from the gw.
Would this be ok as a solution for the above issue ? If yes, let me know and I will return with a pull request.
Regards,
Vlad