It has not been my experience that Microsoft Teams direct routing requires a Record-Route header on requests / responses you send to it (though their requests will have an RR and you must Route accordingly)

Here is a sip trace showing a successful on-hold / off-hold scenario from one of my servers (not a freeswitch server).  This is an on-hold triggered from the MS teams client, not sure if you are trying to do the reverse.

One thing: make sure the Contact header in your INVITEs resolve to a single server, otherwise (if you have mutiple A records for the DNS name) you will find that MS Teams will gladly respond to a reINVITE to a completely different server than you sent from — this will manifest as not seeing the 200 OK to a re-INVITE you send, or not seeing the ACK when you respond 200 OK to a re-INVITE.

daveh

One thing to make sure of is that 

On Sep 20, 2020, at 12:05 PM, Stefan Kainz <s.kainz@wnt.at> wrote:

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







_________________________________________________________________________

The FreeSWITCH project is sponsored by SignalWire https://signalwire.com
Enhance your FreeSWITCH install with disruptive priced SMS and PSTN services.
Build your next product on our scalable cloud platform.

Join our online community to chat in real time https://signalwire.community

Professional FreeSWITCH Services
sales@freeswitch.com
https://freeswitch.com

Official FreeSWITCH Sites
https://freeswitch.com/oss
https://freeswitch.org/confluence
https://cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
https://freeswitch.com