Hello, 

we're trying to use Freeswitch as a Microsoft Teams direct routing SBC.

So far everything works perfectly, except getting the call back from hold on an outbound call. 
The Problem is that Microsoft expects a Record-Route Header in every Request and every Response.
I have been able to set/rewrite this Record-Route header with sip_h_ and sip_rh_ in most szenarios, but like i said - unhold on an outgoing call does not work.

The hold is initiated with a reinvite with a=inactive in sdp, which does work. 
However, the unhold - also a reinvite with a=sendrecv in sdp does not work correctly.
In the sip-trace i see that the OK ( in response to the INVITE for unhold ) gets retransmitted a couple of times, because the ACK from microsoft isn't received. 

This is due to the missing Record-Route Header in the OK Message.
I have seen this behavior on inbound calls too, when i didnt set the Record-Route Header.

Now my question:
Is there any way to add the Record-Route Header to every Message on a sip-profile or gateway? 
Or if not, is it possible to handle a reinvite in dialplan so i could set the header manually?
Maybe there is somebody who already has this working that could point me in the right direction.

I know freeswitch isn't a SBC, but it would be nice to be able to use freeswitch as a Teams-SBC without Kamailio or something similar.

Any help is very much appreciated 🙂

regards, 
Stefan