Skip to content

CANCEL issue for branches which are not replying #1387

@vladpaiu

Description

@vladpaiu

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions