Description

Kamailio seems to fail to properly route in-dialog SUBSCRIBE with the topos module enabled. In this configuration, SUBSCRIBEs are expected to be delivered to a downstream UAS, an asterisk instance in the internal network.

record_route() is executed for all initial requests, including SUBSCRIBEs. Routing is performed correctly with the topos module disabled, no other modifications were needed.

Troubleshooting

I haven't been able to work around this issue in any other way other than disabling the topos module.

Reproduction

The configuration used is a heavily modified version of the example configuration file, but the handling of SUBSCRIBEs is generally simple. The initial SUBSCRIBE is subject to some tests, the R-URI is edited and dispatched to a farm of asterisk servers based on some criteria. Record Routing is enforced, so subsequent in-dialog re-SUBSCRIBEs are expected to be routed with loose_route(), which doesn't seem to handle things properly.

Debugging Data

I'm attaching kamailio logs with debug=4, cfg_trace

Log Messages

See attachments

SIP Traffic

Please see: https://www.cloudshark.org/captures/d2643aae7f2a

Possible Solutions

Using topoh instead for topos, but unfortunately this will break communication for other reasons (messages too large/UDP fragmentation for some peers).

Additional Information

resubscribe.log


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.