Wiki source code of Setup MS Direct Routing

Last modified by Aaron Blackburn on 2026/09/25 20:58

Show last authors
1 {{html clean="false"}}
2 <!--
3 ============================================================
4 FirstDigital - Setup MS Direct Routing (XWiki fragment)
5 Design System Prefix: fdt-
6 ============================================================
7 -->
8 <style>
9 @import url('https://fonts.googleapis.com/css2?family=Host+Grotesk:wght@300;400;600;800&display=swap');
10
11 .fdt-hub ~ .fdt-hub { display: none !important; }
12
13 .fdt-hub {
14 --fd-navy: #003366;
15 --fd-blue: #307ab2;
16 --fd-blue-bright: #38b2e3;
17 --fd-red: #cf333d;
18 --fd-body: #2e404d;
19 --fd-secondary: #8f9499;
20 --fd-bg-mid: #dedede;
21 --fd-bg-light: #f0f0f0;
22 --fd-ice: #e3f1f8;
23 --fd-white: #ffffff;
24 --fd-alert-bg: #fdf2f2;
25 --fd-alert-border:#f8b4b4;
26 }
27
28 .fdt-hub, .fdt-hub * { box-sizing: border-box; }
29
30 .fdt-hub {
31 font-family: 'Host Grotesk', 'Segoe UI', -apple-system, BlinkMacSystemFont, Arial, sans-serif;
32 font-weight: 300;
33 color: var(--fd-body);
34 background: var(--fd-white);
35 max-width: 1000px;
36 margin: 0 auto;
37 padding: 0 20px 30px;
38 -webkit-font-smoothing: antialiased;
39 }
40
41 /* ---- Masthead ---- */
42 .fdt-masthead {
43 display: flex;
44 align-items: center;
45 justify-content: space-between;
46 gap: 20px;
47 flex-wrap: wrap;
48 padding: 22px 0 18px;
49 border-bottom: 1px solid var(--fd-bg-mid);
50 }
51
52 .fdt-masthead img { height: 46px; width: auto; display: block; }
53
54 .fdt-masthead-label {
55 font-size: 12px;
56 font-weight: 600;
57 letter-spacing: 0.16em;
58 text-transform: uppercase;
59 color: var(--fd-secondary);
60 white-space: nowrap;
61 }
62
63 /* ---- Hero ---- */
64 .fdt-hero {
65 margin-top: 22px;
66 border-radius: 6px;
67 padding: 34px 34px 32px;
68 background: linear-gradient(100deg, var(--fd-navy) 0%, var(--fd-navy) 56%, var(--fd-blue) 100%);
69 }
70
71 .fdt-rule {
72 width: 62px; height: 4px;
73 background: var(--fd-red);
74 border: 0;
75 margin: 0 0 16px;
76 }
77
78 .fdt-eyebrow {
79 font-size: 16px;
80 font-weight: 600;
81 letter-spacing: 0.18em;
82 text-transform: uppercase;
83 color: var(--fd-blue-bright);
84 margin-bottom: 9px;
85 }
86
87 .fdt-hero h1 {
88 font-size: clamp(26px, 3.6vw, 36px);
89 font-weight: 800;
90 line-height: 1.14;
91 letter-spacing: -0.01em;
92 color: var(--fd-white);
93 margin: 0 0 12px;
94 }
95
96 .fdt-hero p {
97 font-size: 15.5px;
98 font-weight: 300;
99 line-height: 1.62;
100 color: #dbe6ef;
101 margin: 0;
102 max-width: 650px;
103 }
104
105 /* ---- Content Sections ---- */
106 .fdt-section {
107 margin-top: 36px;
108 }
109
110 .fdt-section-title {
111 font-size: 22px;
112 font-weight: 800;
113 color: var(--fd-navy);
114 margin: 0 0 16px 0;
115 border-bottom: 2px solid var(--fd-ice);
116 padding-bottom: 8px;
117 }
118
119 .fdt-text {
120 font-size: 15px;
121 line-height: 1.6;
122 margin-bottom: 16px;
123 }
124
125 .fdt-card {
126 background: var(--fd-white);
127 border: 1px solid var(--fd-bg-mid);
128 border-radius: 6px;
129 padding: 24px;
130 margin-bottom: 20px;
131 }
132
133 .fdt-alert {
134 background-color: var(--fd-alert-bg);
135 border-left: 4px solid var(--fd-red);
136 padding: 16px 20px;
137 border-radius: 0 6px 6px 0;
138 margin: 20px 0;
139 font-size: 14.5px;
140 line-height: 1.5;
141 color: #8a1f26;
142 }
143
144 .fdt-alert strong {
145 color: var(--fd-red);
146 }
147
148 /* ---- Step-by-Step List ---- */
149 .fdt-steps {
150 list-style: none;
151 padding: 0;
152 margin: 0;
153 counter-reset: fdt-counter;
154 }
155
156 .fdt-step-item {
157 position: relative;
158 padding-left: 48px;
159 margin-bottom: 24px;
160 }
161
162 .fdt-step-item::before {
163 counter-increment: fdt-counter;
164 content: counter(fdt-counter);
165 position: absolute;
166 left: 0;
167 top: 0;
168 width: 32px;
169 height: 32px;
170 background-color: var(--fd-ice);
171 color: var(--fd-navy);
172 font-weight: 700;
173 border-radius: 50%;
174 display: flex;
175 align-items: center;
176 justify-content: center;
177 font-size: 14px;
178 }
179
180 .fdt-step-item strong {
181 color: var(--fd-navy);
182 }
183
184 .fdt-step-img {
185 margin-top: 14px;
186 max-width: 100%;
187 height: auto;
188 border: 1px solid var(--fd-bg-mid);
189 border-radius: 6px;
190 box-shadow: 0 4px 12px rgba(0,0,0,0.05);
191 }
192
193 /* ---- Data Tables ---- */
194 .fdt-table-wrapper {
195 overflow-x: auto;
196 margin-top: 16px;
197 }
198
199 .fdt-table {
200 width: 100%;
201 border-collapse: collapse;
202 text-align: left;
203 font-size: 14px;
204 }
205
206 .fdt-table th, .fdt-table td {
207 padding: 12px 16px;
208 border: 1px solid var(--fd-bg-mid);
209 }
210
211 .fdt-table th {
212 background-color: var(--fd-ice);
213 color: var(--fd-navy);
214 font-weight: 700;
215 }
216
217 .fdt-table td code {
218 background: var(--fd-bg-light);
219 padding: 2px 6px;
220 border-radius: 4px;
221 font-family: monospace;
222 font-size: 13px;
223 }
224
225 /* ---- Footer ---- */
226 .fdt-footer {
227 margin-top: 40px;
228 padding-top: 18px;
229 border-top: 1px solid var(--fd-bg-mid);
230 display: flex;
231 justify-content: space-between;
232 gap: 16px;
233 flex-wrap: wrap;
234 font-size: 12.5px;
235 color: var(--fd-secondary);
236 }
237
238 @media (max-width: 720px) {
239 .fdt-hub { padding: 0 12px 24px; }
240 .fdt-masthead img { height: 38px; }
241 .fdt-hero { padding: 26px 22px 24px; }
242 .fdt-footer { justify-content: flex-start; }
243 }
244 </style>
245
246 <div class="fdt-hub">
247
248 <!-- Masthead -->
249 <div class="fdt-masthead">
250 <img src="https://learn.firstdigital.com/bin/download/Main/WebHome/FirstDigital-Logo.png?rev=1.3" alt="FirstDigital">
251 <span class="fdt-masthead-label">Fiber &middot; Internet &middot; Cloud &middot; Voice</span>
252 </div>
253
254 <!-- Hero Banner -->
255 <section class="fdt-hero">
256 <hr class="fdt-rule">
257 <div class="fdt-eyebrow">Microsoft Teams How To&rsquo;s</div>
258 <h1>Configure Microsoft Direct Routing</h1>
259 <p>This Initial Setup guide will walk you through configuring Direct Routing in The Portal.</p>
260 </section>
261
262 <!-- Overview Section -->
263 <section class="fdt-section">
264 <div class="fdt-card">
265 <p class="fdt-text">Direct Routing is a Microsoft Teams-only offering. To set up Direct Routing, you will complete the following stages:</p>
266 <ol style="margin: 0; padding-left: 20px; line-height: 1.8;">
267 <td>1. Get or verify your Microsoft licensing</td><br>
268 <td>2. Validate your tenant and configure Direct Routing</td><br>
269 <td>3. Microsoft iPILOT App Permission Reduction (optional)</td>
270 </ol>
271 </div>
272 </section>
273
274 <!-- Step 1: Licensing -->
275 <section class="fdt-section">
276 <h2 class="fdt-section-title">1. Get or Verify Your Microsoft Licensing</h2>
277 <div class="fdt-text">
278 To complete the automated onboarding process, you'll need <strong>2 Teams Licenses</strong> and <strong>2 Teams Phone licenses</strong> for each region to be configured.
279 </div>
280
281 <div class="fdt-alert">
282 <strong>Important:</strong> These licenses must be available and unassigned until your tenant is validated and Direct Routing has been successfully configured.
283 </div>
284
285 <div class="fdt-card" style="background-color: var(--fd-bg-light); border: none;">
286 <strong>Example:</strong> To configure both North America and Europe, you need a total of <strong>4 available and unassigned licenses</strong>: 2 Teams Licenses and 2 Phone System licenses for each region.
287 </div>
288 </section>
289
290 <!-- Step 2: Tenant Validation & Direct Routing -->
291 <section class="fdt-section">
292 <h2 class="fdt-section-title">2. Validate Your Tenant & Configure Direct Routing</h2>
293 <p class="fdt-text">Once licensing is verified, you will install the Microsoft iPILOT App to assist in your tenant's automatic validation and configuration.</p>
294
295 <ol class="fdt-steps">
296 <li class="fdt-step-item">
297 Sign in to <strong>The Portal</strong> using SSO or your credentials. <em>(If this is your first time signing in, complete the quick introduction walkthrough.)</em>
298 </li>
299 <li class="fdt-step-item">
300 Navigate to <strong>Settings &gt; Integration</strong>.
301 <br>
302 <img class="fdt-step-img" src="https://learn.firstdigital.com/bin/download/Teams/MS%20Teams%20How%20To's%3A/Setup%20MS%20Direct%20Routing/WebHome/Picture1.jpg" alt="Settings > Integration Menu Navigation" />
303 </li>
304 <li class="fdt-step-item">
305 Select <strong>MSTEAMS Validate Tenant</strong>.
306 </li>
307 <li class="fdt-step-item">
308 In the <em>Add Registered App Details</em> section, select <strong>Click here to activate</strong>.
309 <div class="fdt-alert">
310 <strong>IMPORTANT:</strong> When activating, you must authenticate as a <strong>Global Administrator</strong> in the tenant where you are configuring Direct Routing.
311 </div>
312 </li>
313 <li class="fdt-step-item">
314 This will start the installation of the new App. Click <strong>Accept</strong> to install the App.
315 <br>
316 <img class="fdt-step-img" src="https://learn.firstdigital.com/bin/download/Teams/MS%20Teams%20How%20To's%3A/Setup%20MS%20Direct%20Routing/WebHome/Picture2.png" alt="App Permissions Request Consent Screen" />
317 </li>
318 <li class="fdt-step-item">
319 The Microsoft iPILOT App requires the <strong>Teams Administrator</strong> role to validate and configure Direct Routing successfully.
320 <p>Go to <strong>Azure Active Directory &gt; Roles &amp; Admins</strong> and select <strong>Roles &amp; Admins</strong>. Under Administrative roles, search for <strong>Teams Administrator</strong>, select its checkbox, and click <strong>Add Assignment</strong>.</p>
321 <p>Search for the <strong>iPILOT App</strong>, confirm the App ID is <code>0c88dfb3-a8b1-419d-b6fb-0956cdd5790d</code>, select it, and click <strong>Add</strong>.</p>
322 </li>
323 <li class="fdt-step-item">
324 Navigate back to <strong>The Portal</strong>. You should see the <strong>VALIDATED</strong> status for each region once successfully configured. You're ready to start assigning users phone numbers and testing services!
325 </li>
326 </ol>
327 </section>
328
329 <!-- Step 3: Permission Reduction -->
330 <section class="fdt-section">
331 <h2 class="fdt-section-title">3. Microsoft iPILOT App Permission Reduction (Optional)</h2>
332 <p class="fdt-text">Permission reduction supports standard security practices.</p>
333
334 <div class="fdt-alert">
335 <strong>Important:</strong> Only complete this step <em>after</em> you complete sections 1 &amp; 2 of this guide. Reducing permissions beforehand will cause validation, configuration, and testing to fail.
336 </div>
337
338 <ol style="line-height: 1.8; margin-bottom: 20px;">
339 <td>1. Go to <strong>Enterprise Apps</strong> in the <strong>Microsoft Entra admin center</strong>.</td><br>
340 <td>2. Search for the <strong>iPILOT App</strong> (not the iPILOT SSO App) and select it.</td><br>
341 <td>3. Select <strong>Permissions</strong>.</td><br>
342 <td>4. Click the three dots menu next to the following permissions and select <strong>Revoke Permission</strong>:
343 <ul style="margin-top: 8px;">
344 <td>• <code>Domain.ReadWrite.All</code></td><br>
345 <td>• <code>User.ReadWrite.All</code></td>
346 </ul>
347 </td>
348 </ol>
349 </section>
350
351 <!-- Additional Info / MFA -->
352 <section class="fdt-section">
353 <h2 class="fdt-section-title">Additional Information: MFA &amp; Trusted IP Addresses</h2>
354 <p class="fdt-text">If you choose to enable Multi-Factor Authentication (MFA) for your Service Account or have other conditional policies, you must add the following IP addresses to the trusted section in the MFA Service Settings or from your conditional access policies:</p>
355
356 <div class="fdt-table-wrapper">
357 <table class="fdt-table">
358 <thead>
359 <tr>
360 <th>North America</th>
361 <th>Europe</th>
362 </tr>
363 </thead>
364 <tbody>
365 <tr>
366 <td><code>204.10.95.128/25</code></td>
367 <td><code>66.178.136.192/27</code></td>
368 </tr>
369 <tr>
370 <td><code>74.119.9.32/27</code></td>
371 <td><code>66.178.137.192/27</code></td>
372 </tr>
373 <tr>
374 <td><code>204.10.94.64/27</code></td>
375 <td>—</td>
376 </tr>
377 </tbody>
378 </table>
379 </div>
380 </section>
381
382 <!-- Footer -->
383 <div class="fdt-footer">
384 <span>FirstDigital &middot; Microsoft Teams How To&rsquo;s</span>
385 <span>Need help? Contact your FirstDigital support team at 801-456-1000 or support@firstdigital.com.</span>
386 </div>
387
388 </div>
389 {{/html}}