I figured out the issue with Teams transfer and hold/resume issue. This discussion provided some guidance.
Ultimately I had to strip out the REPLY method from the Allowed Methods fields in all SIP messages coming from FreeSWITCH. For simplicity I just matched what Teams was sending me.
"Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE"
became
"ALLOW: INVITE,ACK,OPTIONS,CANCEL,BYE,NOTIFY".
I did this to initial requests from FreeSWITCH and also in an onreply_route which was armed by using t_on_reply.
Ultimately I had to strip out the REPLY method from the Allowed Methods fields in all SIP messages coming from FreeSWITCH. For simplicity I just matched what Teams was sending me.
"Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE"
became
"ALLOW: INVITE,ACK,OPTIONS,CANCEL,BYE,NOTIFY".
I did this to initial requests from FreeSWITCH and also in an onreply_route which was armed by using t_on_reply.