Hold Resume MS Direct Routing

Occasional Contributor



I'm building a new SBC for direct routing with media bypass enabled and can handle REFER method internally and externally so all my call transfers are working just fine.

But I'm facing a problem with PSTN HOLD/RESUME scenario !

sometimes it works and sometimes it's not without a single change in the SBC configuration.


for any inbound/outbound call from/to teams by clicking on HOLD in teams the following happens when it works


MS SIP proxy sends a REFER message internally with x-m and x-t records

SBC responds with 202 Accepted

SBC sends a new Invite "new dialog" back to MS SIP proxy

SBC sends NOTIFY messages 100,180,200 which are all accepted and I hear ringing for 1-2 secs then music on hold starts which is a bit strange from MS but OK for now.

MS SIP proxy ends the other leg with a BYE message as the call was transferred to MOH


When clicking resume and it takes about 2-3 seconds

MS SIP proxy sends a new invite with the same above details with a REPLACE that will replace the MOH call id , from/to tags with this new invite to resume the call and it's handled perfectly from the SBC and call is resumed.


When it doesn't work (just randomly without any SBC change)

Same scenario in the REFER but

MS SIP proxy doesn't send the BYE message when the call is transferred to MOH and the mess starts

I'm still on the call leg and when click RESUME

MS tries to re-invite the call which is not valid and I got disconnected while the other leg is still there.


when disabling media bypass and disabling REFER from the allow SIP methods both transfers and hold/resume scenarios works with only re-invites from MS SIP proxy and they are perfectly fine.


anyone facing these problems with REFER and Media Bypass enabled ?

3 Replies
@Linus Cansby , can you assist here?




Hello I am having very similar problem:

transfer works nicely, unhold action does not (It creates a new call leg from Teams strangely).

The full story is here: 



Did you manage to get anywhere with your issue?



@G____Yes I fixed the problem with my SBC and it was from my end as NOTIFY messages weren't sent in the right order 100 -> 18(03) -> 200 and this was causing the mess and sometimes error 500 back from MS Teams.


My explanation is the same for the hold/resume scenarios so what exactly is your current problem ?