Changes for page SIP
Last modified by Aaron Blackburn on 2026/09/01 19:00
From version 1.1
edited by Aaron Blackburn
on 2026/07/22 20:53
on 2026/07/22 20:53
Change comment:
There is no comment for this version
To version 1.4
edited by Aaron Blackburn
on 2026/09/01 19:00
on 2026/09/01 19:00
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,0 +1,438 @@ 1 +{{html clean="false"}} 2 +<!-- 3 + XWiki usage: Paste into an HTML macro on your page. 4 + Note: All FirstDigital public IPs have been sanitized for public wiki security. 5 +--> 6 +<style> 7 + @import url('https://fonts.googleapis.com/css2?family=Host+Grotesk:wght@300;400;500;600;700;800&display=swap'); 8 + 9 + .fd-sip-doc, .fd-sip-doc * { box-sizing: border-box; } 10 + .fd-sip-doc { 11 + --fd-navy: #003366; 12 + --fd-dark-navy: #001a33; 13 + --fd-blue: #307ab2; 14 + --fd-sky: #38b2e3; 15 + --fd-bright-cyan: #5ed2ff; 16 + --fd-red: #cf333d; 17 + --fd-green: #2e7d32; 18 + --fd-slate: #2e404d; 19 + --fd-grey: #8f9499; 20 + --fd-lightgrey: #e2e8f0; 21 + --fd-offwhite: #f8fafc; 22 + --fd-max-w: 1140px; 23 + 24 + font-family: 'Host Grotesk', system-ui, -apple-system, sans-serif; 25 + color: var(--fd-slate); 26 + background: #ffffff; 27 + max-width: var(--fd-max-w); 28 + margin: 0 auto; 29 + padding: 24px 16px; 30 + } 31 + 32 + /* Header */ 33 + .fd-sip-doc .doc-header { 34 + background: radial-gradient(circle at 50% 35%, rgba(13, 71, 128, 0.78) 0%, rgba(0, 51, 102, 0.93) 60%, rgba(0, 26, 51, 0.98) 100%), 35 + url('Fiber Optic Theme.JPG') center/cover no-repeat; 36 + padding: 40px 32px; 37 + border-radius: 20px; 38 + text-align: center; 39 + color: #ffffff; 40 + box-shadow: inset 0 0 60px rgba(0, 26, 51, 0.6), 0 12px 32px rgba(0, 51, 102, 0.12); 41 + margin-bottom: 32px; 42 + } 43 + .fd-sip-doc .doc-header p.kicker { 44 + color: var(--fd-bright-cyan); 45 + font-weight: 800; 46 + font-size: .8rem; 47 + text-transform: uppercase; 48 + letter-spacing: .18em; 49 + margin: 0 0 8px; 50 + text-shadow: 0 2px 10px rgba(0, 26, 51, 0.8); 51 + } 52 + .fd-sip-doc .doc-header h1 { 53 + font-weight: 800; 54 + font-size: 2.25rem; 55 + margin: 0 0 10px; 56 + letter-spacing: -0.02em; 57 + text-shadow: 0 3px 12px rgba(0, 26, 51, 0.9); 58 + } 59 + .fd-sip-doc .doc-header p.sub { 60 + color: #f8fafc; 61 + font-weight: 400; 62 + font-size: 1rem; 63 + max-width: 680px; 64 + margin: 0 auto; 65 + line-height: 1.5; 66 + text-shadow: 0 2px 8px rgba(0, 26, 51, 0.95); 67 + } 68 + 69 + /* Disclaimer Banner */ 70 + .fd-sip-doc .disclaimer-box { 71 + background: #f0f7fc; 72 + border-left: 5px solid var(--fd-blue); 73 + padding: 16px 20px; 74 + border-radius: 8px; 75 + margin-bottom: 28px; 76 + font-size: 0.9rem; 77 + line-height: 1.5; 78 + } 79 + 80 + /* Section Titles */ 81 + .fd-sip-doc .section-title { 82 + color: var(--fd-navy); 83 + font-size: 1.35rem; 84 + font-weight: 700; 85 + margin: 36px 0 16px; 86 + border-bottom: 2px solid var(--fd-lightgrey); 87 + padding-bottom: 8px; 88 + } 89 + 90 + /* Embedded Diagram Containers */ 91 + .fd-sip-doc .diagram-card { 92 + background: #ffffff; 93 + border: 1px solid var(--fd-lightgrey); 94 + border-radius: 16px; 95 + padding: 24px; 96 + margin-bottom: 28px; 97 + box-shadow: 0 6px 20px rgba(0, 30, 60, 0.05); 98 + text-align: center; 99 + } 100 + .fd-sip-doc .diagram-card svg { 101 + max-width: 100%; 102 + height: auto; 103 + } 104 + .fd-sip-doc .diagram-caption { 105 + font-size: 0.85rem; 106 + color: var(--fd-slate); 107 + margin-top: 12px; 108 + font-weight: 500; 109 + } 110 + 111 + /* Specifications Grid */ 112 + .fd-sip-doc .specs-grid { 113 + display: grid; 114 + grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); 115 + gap: 16px; 116 + margin-bottom: 32px; 117 + } 118 + .fd-sip-doc .spec-card { 119 + background: var(--fd-offwhite); 120 + border: 1px solid var(--fd-lightgrey); 121 + border-radius: 12px; 122 + padding: 16px 20px; 123 + } 124 + .fd-sip-doc .spec-card .label { 125 + font-size: 0.75rem; 126 + text-transform: uppercase; 127 + font-weight: 700; 128 + color: var(--fd-grey); 129 + letter-spacing: 0.05em; 130 + margin-bottom: 4px; 131 + } 132 + .fd-sip-doc .spec-card .val { 133 + font-size: 1rem; 134 + font-weight: 700; 135 + color: var(--fd-navy); 136 + } 137 + .fd-sip-doc .spec-card .subtext { 138 + font-size: 0.8rem; 139 + color: var(--fd-slate); 140 + margin-top: 4px; 141 + } 142 + 143 + /* Rules Grid */ 144 + .fd-sip-doc .rules-grid { 145 + display: grid; 146 + grid-template-columns: 1fr 1fr; 147 + gap: 20px; 148 + margin-bottom: 32px; 149 + } 150 + .fd-sip-doc .rule-box { 151 + border: 1px solid var(--fd-lightgrey); 152 + border-radius: 12px; 153 + padding: 20px; 154 + background: #ffffff; 155 + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03); 156 + } 157 + .fd-sip-doc .rule-box h4 { 158 + margin: 0 0 12px; 159 + color: var(--fd-navy); 160 + font-size: 1.05rem; 161 + } 162 + .fd-sip-doc .rule-box ul { 163 + margin: 0; 164 + padding-left: 20px; 165 + font-size: 0.88rem; 166 + line-height: 1.6; 167 + } 168 + 169 + /* Troubleshooting Table */ 170 + .fd-sip-doc .tb-table { 171 + width: 100%; 172 + border-collapse: collapse; 173 + margin-bottom: 32px; 174 + font-size: 0.9rem; 175 + } 176 + .fd-sip-doc .tb-table th { 177 + background: var(--fd-navy); 178 + color: #ffffff; 179 + text-align: left; 180 + padding: 12px 16px; 181 + font-weight: 700; 182 + } 183 + .fd-sip-doc .tb-table th:first-child { border-top-left-radius: 8px; } 184 + .fd-sip-doc .tb-table th:last-child { border-top-right-radius: 8px; } 185 + .fd-sip-doc .tb-table td { 186 + padding: 14px 16px; 187 + border-bottom: 1px solid var(--fd-lightgrey); 188 + line-height: 1.5; 189 + } 190 + .fd-sip-doc .tb-table tr:nth-child(even) { background: var(--fd-offwhite); } 191 + .fd-sip-doc .symptom { font-weight: 700; color: var(--fd-red); width: 28%; } 192 + 193 + @media (max-width: 768px) { 194 + .fd-sip-doc .rules-grid { grid-template-columns: 1fr; } 195 + } 196 +</style> 197 + 198 +<div class="fd-sip-doc"> 199 + 200 + <!-- Header Banner --> 201 + <div class="doc-header"> 202 + <p class="kicker">FirstDigital Voice Operations</p> 203 + <h1>SIP Trunking Technical Reference</h1> 204 + <p class="sub">Network architecture, firewall requirements, and troubleshooting standards for customer SIP trunks.</p> 205 + </div> 206 + 207 + <!-- Disclaimer Notice --> 208 + <div class="disclaimer-box"> 209 + <strong>Customer Responsibility Notice:</strong> Customers are responsible for the configuration and maintenance of their own routers, firewalls, and PBX equipment. FirstDigital provides these specifications to assist engineers during trunk integration. 210 + </div> 211 + 212 + <!-- DIAGRAM 1: Network Topology --> 213 + <div class="section-title">1. SIP Trunk Topology & Traffic Routing</div> 214 + <div class="diagram-card"> 215 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 300" style="font-family:'Host Grotesk', system-ui, sans-serif;"> 216 + <!-- Cloud Node --> 217 + <rect x="30" y="50" width="200" height="200" rx="12" fill="#f0f7fc" stroke="#307ab2" stroke-width="2"/> 218 + <rect x="45" y="35" width="170" height="26" rx="13" fill="#003366"/> 219 + <text x="130" y="52" fill="#ffffff" font-size="11" font-weight="bold" text-anchor="middle">FIRSTDIGITAL CLOUD</text> 220 + <text x="130" y="115" fill="#003366" font-size="14" font-weight="bold" text-anchor="middle">FirstDigital SBC</text> 221 + <rect x="55" y="130" width="150" height="24" rx="4" fill="#e2e8f0"/> 222 + <text x="130" y="146" fill="#2e404d" font-size="11" font-family="monospace" text-anchor="middle">[FirstDigital_SBC_IP]</text> 223 + <text x="130" y="180" fill="#2e404d" font-size="10" text-anchor="middle">Signaling & Audio Target</text> 224 + 225 + <!-- Flow Connectors --> 226 + <path d="M 230 110 L 370 110" stroke="#307ab2" stroke-width="3" stroke-dasharray="6,4"/> 227 + <path d="M 370 160 L 230 160" stroke="#38b2e3" stroke-width="3"/> 228 + <polygon points="230,160 238,155 238,165" fill="#38b2e3"/> 229 + <polygon points="370,110 362,105 362,115" fill="#307ab2"/> 230 + <text x="300" y="100" fill="#003366" font-size="10" font-weight="bold" text-anchor="middle">UDP 5060 (SIP)</text> 231 + <text x="300" y="180" fill="#003366" font-size="10" font-weight="bold" text-anchor="middle">UDP 5k-65k (RTP)</text> 232 + 233 + <!-- Firewall Node --> 234 + <rect x="370" y="50" width="180" height="200" rx="12" fill="#fff5f5" stroke="#cf333d" stroke-width="2"/> 235 + <rect x="385" y="35" width="150" height="26" rx="13" fill="#cf333d"/> 236 + <text x="460" y="52" fill="#ffffff" font-size="11" font-weight="bold" text-anchor="middle">CUSTOMER FIREWALL</text> 237 + <text x="460" y="105" fill="#003366" font-size="13" font-weight="bold" text-anchor="middle">Public Edge Router</text> 238 + <rect x="385" y="120" width="150" height="24" rx="4" fill="#e2e8f0"/> 239 + <text x="460" y="136" fill="#2e404d" font-size="11" font-family="monospace" text-anchor="middle">[Customer_Public_IP]</text> 240 + <text x="460" y="175" fill="#cf333d" font-size="10" font-weight="bold" text-anchor="middle">SIP ALG: DISABLED</text> 241 + <text x="460" y="195" fill="#2e404d" font-size="10" text-anchor="middle">Source NAT Active</text> 242 + 243 + <!-- Internal LAN Path --> 244 + <path d="M 550 135 L 610 135" stroke="#2e404d" stroke-width="2"/> 245 + 246 + <!-- PBX Node --> 247 + <rect x="610" y="50" width="160" height="200" rx="12" fill="#f8fafc" stroke="#003366" stroke-width="2"/> 248 + <rect x="625" y="35" width="130" height="26" rx="13" fill="#003366"/> 249 + <text x="690" y="52" fill="#ffffff" font-size="11" font-weight="bold" text-anchor="middle">CUSTOMER PBX</text> 250 + <text x="690" y="115" fill="#003366" font-size="13" font-weight="bold" text-anchor="middle">Internal PBX / SBC</text> 251 + <rect x="625" y="130" width="130" height="24" rx="4" fill="#e2e8f0"/> 252 + <text x="690" y="146" fill="#2e404d" font-size="11" font-family="monospace" text-anchor="middle">192.168.x.x (LAN)</text> 253 + </svg> 254 + <div class="diagram-caption">Figure 1: Standard end-to-end SIP signaling and RTP media pathing via customer firewall.</div> 255 + </div> 256 + 257 + <!-- Specifications Grid --> 258 + <div class="section-title">2. Core Trunk Parameters</div> 259 + <div class="specs-grid"> 260 + <div class="spec-card"> 261 + <div class="label">Signaling Protocol</div> 262 + <div class="val">UDP 5060</div> 263 + <div class="subtext">Standard SIP port</div> 264 + </div> 265 + <div class="spec-card"> 266 + <div class="label">Primary Codec</div> 267 + <div class="val">G.711u</div> 268 + <div class="subtext">20ms packetization</div> 269 + </div> 270 + <div class="spec-card"> 271 + <div class="label">DTMF Mode</div> 272 + <div class="val">RFC 2833</div> 273 + <div class="subtext">Out-of-band touch tones</div> 274 + </div> 275 + <div class="spec-card"> 276 + <div class="label">DNIS Delivery</div> 277 + <div class="val">10 Digits</div> 278 + <div class="subtext">+1 stripped; Intl disabled by default</div> 279 + </div> 280 + <div class="spec-card"> 281 + <div class="label">Authentication</div> 282 + <div class="val">IP Registration-less</div> 283 + <div class="subtext">No user/password required</div> 284 + </div> 285 + <div class="spec-card"> 286 + <div class="label">SIP Advanced</div> 287 + <div class="val">Peer Path / Re-invite</div> 288 + <div class="subtext">Disabled / No re-invites permitted</div> 289 + </div> 290 + </div> 291 + 292 + <!-- DIAGRAM 2: REWORKED FIREWALL PACKET FILTER & PORT MAP ILLUSTRATION --> 293 + <div class="section-title">3. Firewall Policy Rules & Packet Filter Action</div> 294 + <div class="diagram-card"> 295 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 290" style="font-family:'Host Grotesk', system-ui, sans-serif;"> 296 + <!-- Outer Frame --> 297 + <rect x="10" y="10" width="780" height="270" rx="12" fill="#f8fafc" stroke="#e2e8f0" stroke-width="2"/> 298 + 299 + <!-- FirstDigital WAN Side --> 300 + <text x="110" y="40" fill="#003366" font-size="12" font-weight="bold" text-anchor="middle">WAN SOURCE</text> 301 + <text x="110" y="58" fill="#2e404d" font-size="11" font-family="monospace" text-anchor="middle">[FirstDigital_Subnet]</text> 302 + 303 + <!-- Firewall Barrier (Middle) --> 304 + <rect x="360" y="30" width="80" height="230" rx="8" fill="#fff5f5" stroke="#cf333d" stroke-width="2"/> 305 + <text x="400" y="135" fill="#cf333d" font-size="12" font-weight="bold" text-anchor="middle" transform="rotate(-90,400,135)">FIREWALL BOUNDARY</text> 306 + 307 + <!-- Customer LAN Side --> 308 + <text x="690" y="40" fill="#003366" font-size="12" font-weight="bold" text-anchor="middle">LAN DESTINATION</text> 309 + <text x="690" y="58" fill="#2e404d" font-size="11" font-family="monospace" text-anchor="middle">[Customer_PBX_IP]</text> 310 + 311 + <!-- ROW 1: SIP SIGNALING (PASS) --> 312 + <path d="M 200 90 L 360 90" stroke="#2e7d32" stroke-width="2.5"/> 313 + <circle cx="380" cy="90" r="10" fill="#2e7d32"/> 314 + <text x="380" y="94" fill="#ffffff" font-size="11" font-weight="bold" text-anchor="middle">✓</text> 315 + <path d="M 400 90 L 580 90" stroke="#2e7d32" stroke-width="2.5"/> 316 + <polygon points="580,90 572,85 572,95" fill="#2e7d32"/> 317 + 318 + <rect x="220" y="72" width="120" height="22" rx="4" fill="#e8f5e9" stroke="#2e7d32"/> 319 + <text x="280" y="87" fill="#2e7d32" font-size="10" font-weight="bold" text-anchor="middle">SIP: UDP 5060</text> 320 + <text x="480" y="82" fill="#2e7d32" font-size="10" font-weight="bold" text-anchor="middle">FORWARD TO PBX</text> 321 + 322 + <!-- ROW 2: RTP AUDIO STREAM (PASS) --> 323 + <path d="M 200 150 L 360 150" stroke="#307ab2" stroke-width="2.5"/> 324 + <circle cx="380" cy="150" r="10" fill="#2e7d32"/> 325 + <text x="380" y="154" fill="#ffffff" font-size="11" font-weight="bold" text-anchor="middle">✓</text> 326 + <path d="M 400 150 L 580 150" stroke="#307ab2" stroke-width="2.5"/> 327 + <polygon points="580,150 572,145 572,155" fill="#307ab2"/> 328 + 329 + <rect x="210" y="132" width="140" height="22" rx="4" fill="#f0f7fc" stroke="#307ab2"/> 330 + <text x="280" y="147" fill="#003366" font-size="10" font-weight="bold" text-anchor="middle">RTP: UDP 5k - 65k</text> 331 + <text x="480" y="142" fill="#003366" font-size="10" font-weight="bold" text-anchor="middle">ALLOW MEDIA STREAM</text> 332 + 333 + <!-- ROW 3: SIP ALG / INSPECTION (BLOCKED) --> 334 + <path d="M 200 215 L 360 215" stroke="#cf333d" stroke-width="2.5" stroke-dasharray="4,4"/> 335 + <circle cx="380" cy="215" r="10" fill="#cf333d"/> 336 + <text x="380" y="219" fill="#ffffff" font-size="11" font-weight="bold" text-anchor="middle">✕</text> 337 + 338 + <rect x="220" y="197" width="120" height="22" rx="4" fill="#fff5f5" stroke="#cf333d"/> 339 + <text x="280" y="212" fill="#cf333d" font-size="10" font-weight="bold" text-anchor="middle">SIP ALG / STUN</text> 340 + <text x="485" y="212" fill="#cf333d" font-size="11" font-weight="bold">DISABLED (Prevents Header Modification)</text> 341 + 342 + <!-- Bottom Note --> 343 + <rect x="180" y="250" width="440" height="20" rx="4" fill="#e2e8f0"/> 344 + <text x="400" y="264" fill="#2e404d" font-size="10" font-weight="bold" text-anchor="middle">OUTBOUND EGRESS NAT: All traffic MUST egress sourcing from [Customer_Public_IP]</text> 345 + </svg> 346 + <div class="diagram-caption">Figure 2: Firewall packet-filtering policy—explicitly allowing signaling/media while disabling SIP ALG.</div> 347 + </div> 348 + 349 + <!-- Rules Text --> 350 + <div class="rules-grid"> 351 + <div class="rule-box"> 352 + <h4>Outbound Traffic Requirements</h4> 353 + <ul> 354 + <li>Outbound calls to FirstDigital must source directly from the registered Customer Public IP.</li> 355 + <li>Outbound calls must send Caller ID matching a phone number assigned to the trunk instance.</li> 356 + <li>FirstDigital will automatically reject calls sourcing from unknown or unauthorized IPs.</li> 357 + </ul> 358 + </div> 359 + <div class="rule-box"> 360 + <h4>Firewall & NAT Settings</h4> 361 + <ul> 362 + <li><strong>SIP ALG:</strong> Must be completely <u>DISABLED</u> on customer edge firewalls and routers.</li> 363 + <li><strong>RTP Media:</strong> Ensure UDP ports 5000-65000 are permitted for full audio stream delivery.</li> 364 + <li><strong>NAT Routing:</strong> Confirm outbound NAT egress explicitly maps internal PBX traffic to the registered public IP.</li> 365 + </ul> 366 + </div> 367 + </div> 368 + 369 + <!-- DIAGRAM 3: One-Way Audio Problem --> 370 + <div class="section-title">4. Common Audio Defect: Private IP Header Leakage</div> 371 + <div class="diagram-card"> 372 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 240" style="font-family:'Host Grotesk', system-ui, sans-serif;"> 373 + <!-- SBC Box --> 374 + <rect x="40" y="40" width="180" height="160" rx="10" fill="#f0f7fc" stroke="#307ab2" stroke-width="2"/> 375 + <text x="130" y="80" fill="#003366" font-size="13" font-weight="bold" text-anchor="middle">FirstDigital SBC</text> 376 + <text x="130" y="100" fill="#2e404d" font-size="10" text-anchor="middle">Public Media Gateway</text> 377 + 378 + <!-- Broken Return Audio Path --> 379 + <path d="M 220 160 L 410 160" stroke="#cf333d" stroke-width="3" stroke-dasharray="4,4"/> 380 + <circle cx="420" cy="160" r="12" fill="#cf333d"/> 381 + <text x="420" y="165" fill="#ffffff" font-size="13" font-weight="bold" text-anchor="middle">X</text> 382 + <text x="315" y="150" fill="#cf333d" font-size="10" font-weight="bold" text-anchor="middle">Audio Fails: 192.168.x.x Unreachable</text> 383 + 384 + <!-- Firewall Box --> 385 + <rect x="450" y="40" width="120" height="160" rx="10" fill="#fff5f5" stroke="#cf333d" stroke-width="2"/> 386 + <text x="510" y="120" fill="#cf333d" font-size="12" font-weight="bold" text-anchor="middle">Firewall</text> 387 + 388 + <!-- PBX Box --> 389 + <rect x="620" y="40" width="140" height="160" rx="10" fill="#f8fafc" stroke="#003366" stroke-width="2"/> 390 + <text x="690" y="75" fill="#003366" font-size="13" font-weight="bold" text-anchor="middle">Customer PBX</text> 391 + 392 + <!-- Problem Header Packet --> 393 + <path d="M 620 85 L 230 85" stroke="#307ab2" stroke-width="2"/> 394 + <rect x="310" y="60" width="240" height="24" rx="4" fill="#fffbe0" stroke="#d97706"/> 395 + <text x="430" y="76" fill="#b45309" font-size="10" font-weight="bold" text-anchor="middle">SDP Header: Audio IP = 192.168.1.50 (Private IP Leak!)</text> 396 + </svg> 397 + <div class="diagram-caption">Figure 3: Why one-way audio occurs—the PBX requests return audio to an unreachable internal private IP address.</div> 398 + </div> 399 + 400 + <!-- Troubleshooting Matrix --> 401 + <div class="section-title">5. Troubleshooting Matrix</div> 402 + <table class="tb-table"> 403 + <thead> 404 + <tr> 405 + <th>Symptom</th> 406 + <th>Root Cause & Resolution Step</th> 407 + </tr> 408 + </thead> 409 + <tbody> 410 + <tr> 411 + <td class="symptom">No Inbound Calls</td> 412 + <td>Verify firewall allows <code>UDP 5060</code> from FirstDigital's subnet. Confirm <strong>SIP ALG is disabled</strong> on edge devices.</td> 413 + </tr> 414 + <tr> 415 + <td class="symptom">No Outbound Calls</td> 416 + <td>Confirm outbound SIP traffic is directed to FirstDigital's SBC IP on <code>UDP 5060</code>. Verify traffic sources from your registered Public IP and uses an assigned Caller ID.</td> 417 + </tr> 418 + <tr> 419 + <td class="symptom">One-Way or No Audio</td> 420 + <td><strong>Common Issue:</strong> PBX is leaking private IP addresses (e.g., <code>10.x.x.x</code> or <code>192.168.x.x</code>) in the SIP SDP header. Fix PBX NAT settings, SBC Media Address Override, or STUN configuration. Disable SIP ALG.</td> 421 + </tr> 422 + <tr> 423 + <td class="symptom">Touch Tones Not Working</td> 424 + <td>Configure PBX and endpoints to send DTMF out-of-band using <strong>RFC 2833</strong> (telephony-event).</td> 425 + </tr> 426 + <tr> 427 + <td class="symptom">Calls Routing Incorrectly</td> 428 + <td>Inspect received <strong>DNIS digit delivery</strong>. FirstDigital defaults to 10-digit delivery. Update PBX inbound routing rules to match.</td> 429 + </tr> 430 + <tr> 431 + <td class="symptom">Forwarded Calls Have One-Way Audio</td> 432 + <td>Occurs if FirstDigital enabled "NAT Media" as a temporary workaround for private IP header leaks. Resolving the PBX private IP leak allows FirstDigital to disable NAT Media settings, resolving transfer audio.</td> 433 + </tr> 434 + </tbody> 435 + </table> 436 + 437 +</div> 438 +{{/html}}