If the SBC being used with Microsoft Teams is an existing SBC with functional configuration with a SIP trunk, following configuration elements are required:
- New realm-config
- Configuring a certificate for SBC Interface - TLS-Profile
Please follow the steps mentioned in the above chapters to configure these elements.
11 . Caveat
In some environments, the methods in which Cisco CUCM uses to place a call on hold is not support by Microsoft Teams. In order to interwork between these two platforms, the Oracle SBC uses a series of sip manipulations given below as well as the add-sdp-invite feature (Under SIP Interface where we can select re-invite as an option) in order to avoid any disruptions to these call flows.
When CUCM places a user on hold, it uses RFC 2543, which is not supported by Microsoft Teams, so we create a sip manipulation to add the SBC's IP to the C line of SDP. Also, when retrieving the call from hold, Cisco sends an offer less invite. When this happens, MSFT returns a 200 OK to that invite, with a=inactive. In order to avoid this, we use the add sdp feature on the SBC set to re-invite. Unfortunately, when this happens, the SBC will take the last SDP it forwarded to Teams, which also contains a=inactive which needs to be removed. So we are not removing this attribute from all Invites towards Teams, we create Sip manipulation to identify re-invites without sdp, and then match on that identifier to strip
a=inactive from the SDP, the SBC is adding with add-sdp-invite. This allows CUCM users to place calls on hold, and retrieve with no issues.
You can add these Sip manipulation to the SBC using either GUI or CLI mode and user is free to decide the way they want to add the sip manipulation.
1) Please add the below sip-manipulation as In-Manipulation on the Cisco Side to check for SDP, if no SDP, add Dummy Header...
sip-manipulation
name addNewHeaderNoSDP description
split-headers
63 | P a g e
2) Please add the below sip-manipulation as Out-Manipulation on the Teams side to change C line from all zero's to IP address, and then check for Dummy Header. If dummy header exists, delete inactive attribute. If it doesn't exist, inactive attribute remains.
sip-manipulation
64 | P a g e
3) Finally, add the below sip manipulation as Out-Manipulation on the Cisco Side to match on inactive attribute in SDP of 200OK response. If a match is found, change the C line from IP address back to all zero's.
65 | P a g e Appendix A
Following are the test cases that are executed as part of Teams Direct Routing Enterprise Model with CUCM.
Serial Number
Test Cases Executed Result 1 Device supports ptime of 20 ms for an inbound call to CUCM user Pass
2 Device sends its own FQDN in the contact header Pass
3 Device(CUCM Endpoint) accepts call from Teams user where the user's calling line identity is set to anonymous
Pass
4 Teams user places inbound call from CUCM on hold and then resumes
Pass
5 Teams user places outbound call to CUCM on hold and then resumes
Pass
6 Teams user places outbound call to CUCM on hold for over 15 minutes and then resumes
Pass
7 Inbound CUCM Call to Teams blind transferred to second Teams User
Pass
8 Outbound CUCM call from Teams user blind transferred to second Teams User
Pass
9 Inbound CUCM Call to Teams consultatively transferred to Teams User
Pass
10 Outbound CUCM call from Teams user consultatively transferred to Teams User
Pass
11 CUCM user calls Teams user that simultaneously rings second TEAMS/CUCM user and second user answers
Pass
12 CUCM user calls Teams user that is forwarded to second CUCM/TEAMS user
Pass
13 CUCM User calls Teams user when only SILK Codec is enabled on the Device trunk towards Teams but not on the Device trunk towards customer’s SIP trunk
Pass
14 Teams user calls CUCM user when only SILK Codec is enabled on the Device trunk towards Teams but not on the Device trunk towards customer’s SIP trunk
Pass
15 Teams user calls an IVR number and navigates through the IVR menu after call connection
Pass
66 | P a g e
16 Teams user calls into an external conference bridge and pastes a string of conference ID into Teams which is recognized by Device and IVR
Pass
17 Device sends comfort noise packets to Direct Routing interface when CUCM user mutes an outbound call
Pass
18 Device sends comfort noise packets to Direct Routing interface when CUCM user mutes an inbound call
Pass
19 Teams user mutes inbound call from CUCM and then unmutes Pass 20 Device must provide SRTCP for a transcoded inbound call when
service provider or gateway does not send SRTCP
Pass
21 Device must provide SRTCP for a transcoded outbound call when service provider or gateway does not send SRTCP
Pass
22 Device must provide SRTCP for an inbound call that doesn’t involve transcoding when service provider or gateway does not send SRTCP
Pass
23 Device must provide SRTCP for an outbound call that doesn’t involve transcoding when service provider or gateway does not send SRTCP
Pass
24 Device must indicate support for SRTCP multiplexing by including the a=rtcp-mux attribute in the offer
Pass
25 Device must respond with a=rtcp-mux attribute in the SDP response if the offer contains the same attribute
Pass
67 | P a g e
Oracle Corporation, World Headquarters Worldwide Inquiries
500 Oracle Parkway Phone: +1.650.506.7000
Redwood Shores, CA 94065, USA Fax: +1.650.506.7200
Integrated Cloud Applications & Platform Services
Copyright © 2021, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only, and the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document, and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group. 0615
C O N N E C T W I T H U S blogs.oracle.com/oracle facebook.com/Oracle/
twitter.com/Oracle oracle.com