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.3
edited by Aaron Blackburn
on 2026/09/01 18:33
on 2026/09/01 18:33
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,283 @@ 1 +{{html clean="false"}} 2 +<!-- 3 + XWiki usage: Paste into an HTML macro on your page. 4 + Note: All FirstDigital IPs have been sanitized for public safety. 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-slate: #2e404d; 18 + --fd-grey: #8f9499; 19 + --fd-lightgrey: #e2e8f0; 20 + --fd-offwhite: #f8fafc; 21 + --fd-max-w: 1140px; 22 + 23 + font-family: 'Host Grotesk', system-ui, -apple-system, sans-serif; 24 + color: var(--fd-slate); 25 + background: #ffffff; 26 + max-width: var(--fd-max-w); 27 + margin: 0 auto; 28 + padding: 24px 16px; 29 + } 30 + 31 + /* Header */ 32 + .fd-sip-doc .doc-header { 33 + 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%), 34 + url('Fiber Optic Theme.JPG') center/cover no-repeat; 35 + padding: 40px 32px; 36 + border-radius: 20px; 37 + text-align: center; 38 + color: #ffffff; 39 + box-shadow: inset 0 0 60px rgba(0, 26, 51, 0.6), 0 12px 32px rgba(0, 51, 102, 0.12); 40 + margin-bottom: 32px; 41 + } 42 + .fd-sip-doc .doc-header p.kicker { 43 + color: var(--fd-bright-cyan); 44 + font-weight: 800; 45 + font-size: .8rem; 46 + text-transform: uppercase; 47 + letter-spacing: .18em; 48 + margin: 0 0 8px; 49 + text-shadow: 0 2px 10px rgba(0, 26, 51, 0.8); 50 + } 51 + .fd-sip-doc .doc-header h1 { 52 + font-weight: 800; 53 + font-size: 2.25rem; 54 + margin: 0 0 10px; 55 + letter-spacing: -0.02em; 56 + text-shadow: 0 3px 12px rgba(0, 26, 51, 0.9); 57 + } 58 + .fd-sip-doc .doc-header p.sub { 59 + color: #f8fafc; 60 + font-weight: 400; 61 + font-size: 1rem; 62 + max-width: 680px; 63 + margin: 0 auto; 64 + line-height: 1.5; 65 + text-shadow: 0 2px 8px rgba(0, 26, 51, 0.95); 66 + } 67 + 68 + /* Notice Banner */ 69 + .fd-sip-doc .disclaimer-box { 70 + background: #f0f7fc; 71 + border-left: 5px solid var(--fd-blue); 72 + padding: 16px 20px; 73 + border-radius: 8px; 74 + margin-bottom: 28px; 75 + font-size: 0.9rem; 76 + line-height: 1.5; 77 + } 78 + 79 + /* Specifications Grid */ 80 + .fd-sip-doc .section-title { 81 + color: var(--fd-navy); 82 + font-size: 1.35rem; 83 + font-weight: 700; 84 + margin: 32px 0 16px; 85 + border-bottom: 2px solid var(--fd-lightgrey); 86 + padding-bottom: 8px; 87 + } 88 + 89 + .fd-sip-doc .specs-grid { 90 + display: grid; 91 + grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); 92 + gap: 16px; 93 + margin-bottom: 32px; 94 + } 95 + .fd-sip-doc .spec-card { 96 + background: var(--fd-offwhite); 97 + border: 1px solid var(--fd-lightgrey); 98 + border-radius: 12px; 99 + padding: 16px 20px; 100 + } 101 + .fd-sip-doc .spec-card .label { 102 + font-size: 0.75rem; 103 + text-transform: uppercase; 104 + font-weight: 700; 105 + color: var(--fd-grey); 106 + letter-spacing: 0.05em; 107 + margin-bottom: 4px; 108 + } 109 + .fd-sip-doc .spec-card .val { 110 + font-size: 1rem; 111 + font-weight: 700; 112 + color: var(--fd-navy); 113 + } 114 + .fd-sip-doc .spec-card .subtext { 115 + font-size: 0.8rem; 116 + color: var(--fd-slate); 117 + margin-top: 4px; 118 + } 119 + 120 + /* Rules & Requirements */ 121 + .fd-sip-doc .rules-grid { 122 + display: grid; 123 + grid-template-columns: 1fr 1fr; 124 + gap: 20px; 125 + margin-bottom: 32px; 126 + } 127 + .fd-sip-doc .rule-box { 128 + border: 1px solid var(--fd-lightgrey); 129 + border-radius: 12px; 130 + padding: 20px; 131 + background: #ffffff; 132 + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03); 133 + } 134 + .fd-sip-doc .rule-box h4 { 135 + margin: 0 0 12px; 136 + color: var(--fd-navy); 137 + font-size: 1.05rem; 138 + } 139 + .fd-sip-doc .rule-box ul { 140 + margin: 0; 141 + padding-left: 20px; 142 + font-size: 0.88rem; 143 + line-height: 1.6; 144 + } 145 + 146 + /* Troubleshooting Table */ 147 + .fd-sip-doc .tb-table { 148 + width: 100%; 149 + border-collapse: collapse; 150 + margin-bottom: 32px; 151 + font-size: 0.9rem; 152 + } 153 + .fd-sip-doc .tb-table th { 154 + background: var(--fd-navy); 155 + color: #ffffff; 156 + text-align: left; 157 + padding: 12px 16px; 158 + font-weight: 700; 159 + } 160 + .fd-sip-doc .tb-table th:first-child { border-top-left-radius: 8px; } 161 + .fd-sip-doc .tb-table th:last-child { border-top-right-radius: 8px; } 162 + .fd-sip-doc .tb-table td { 163 + padding: 14px 16px; 164 + border-bottom: 1px solid var(--fd-lightgrey); 165 + line-height: 1.5; 166 + } 167 + .fd-sip-doc .tb-table tr:nth-child(even) { background: var(--fd-offwhite); } 168 + .fd-sip-doc .symptom { font-weight: 700; color: var(--fd-red); width: 28%; } 169 + 170 + @media (max-width: 768px) { 171 + .fd-sip-doc .rules-grid { grid-template-columns: 1fr; } 172 + } 173 +</style> 174 + 175 +<div class="fd-sip-doc"> 176 + 177 + <!-- Header --> 178 + <div class="doc-header"> 179 + <p class="kicker">FirstDigital Voice Operations</p> 180 + <h1>SIP Trunking Technical Specifications</h1> 181 + <p class="sub">Configuration standards, firewall policies, and troubleshooting procedures for enterprise SIP trunks.</p> 182 + </div> 183 + 184 + <!-- Disclaimer --> 185 + <div class="disclaimer-box"> 186 + <strong>Customer Responsibility Notice:</strong> Customers are responsible for the configuration and fine-tuning of their own edge routers, firewalls, and PBX equipment. 187 + </div> 188 + 189 + <!-- Standard Specifications Grid --> 190 + <div class="section-title">Standard Trunk Specifications</div> 191 + <div class="specs-grid"> 192 + <div class="spec-card"> 193 + <div class="label">Signaling Protocol</div> 194 + <div class="val">UDP 5060</div> 195 + <div class="subtext">Standard SIP port</div> 196 + </div> 197 + <div class="spec-card"> 198 + <div class="label">Primary Codec</div> 199 + <div class="val">G.711u</div> 200 + <div class="subtext">20ms packetization</div> 201 + </div> 202 + <div class="spec-card"> 203 + <div class="label">DTMF Mode</div> 204 + <div class="val">RFC 2833</div> 205 + <div class="subtext">Out-of-band touch tones</div> 206 + </div> 207 + <div class="spec-card"> 208 + <div class="label">DNIS Digits</div> 209 + <div class="val">10 Digits</div> 210 + <div class="subtext">+1 stripped; Intl disabled by default</div> 211 + </div> 212 + <div class="spec-card"> 213 + <div class="label">Authentication</div> 214 + <div class="val">IP Registration-less</div> 215 + <div class="subtext">No user/password required</div> 216 + </div> 217 + <div class="spec-card"> 218 + <div class="label">SIP Advanced</div> 219 + <div class="val">Peer Path / Re-invite</div> 220 + <div class="subtext">Disabled / No re-invites permitted</div> 221 + </div> 222 + </div> 223 + 224 + <!-- Rules & Firewall --> 225 + <div class="section-title">Network & Firewall Rules</div> 226 + <div class="rules-grid"> 227 + <div class="rule-box"> 228 + <h4>Outbound Signaling & Caller ID</h4> 229 + <ul> 230 + <li>Outbound requests to FirstDigital must source directly from the Customer Public IP provided during turn-up.</li> 231 + <li>Outbound calls must present a Caller ID number assigned to the specific trunk instance.</li> 232 + <li>Ensure outbound NAT egress matches the registered public IP address.</li> 233 + </ul> 234 + </div> 235 + <div class="rule-box"> 236 + <h4>Firewall & Perimeter Setup</h4> 237 + <ul> 238 + <li><strong>SIP ALG:</strong> Must be <u>DISABLED</u> globally on customer routers/firewalls.</li> 239 + <li><strong>Inbound Rules:</strong> Allow traffic from FirstDigital's SBC subnet across <code>UDP 5000 - 65000</code>.</li> 240 + <li><strong>Egress Routing:</strong> Verify NAT routing for FirstDigital's subnet exits out of the designated public IP.</li> 241 + </ul> 242 + </div> 243 + </div> 244 + 245 + <!-- Troubleshooting Matrix --> 246 + <div class="section-title">SIP Trunk Troubleshooting Matrix</div> 247 + <table class="tb-table"> 248 + <thead> 249 + <tr> 250 + <th>Symptom</th> 251 + <th>Root Cause & Resolution Step</th> 252 + </tr> 253 + </thead> 254 + <tbody> 255 + <tr> 256 + <td class="symptom">No Inbound Calls</td> 257 + <td>Verify firewall permits <code>UDP 5060</code> from FirstDigital's subnet. Confirm <strong>SIP ALG is disabled</strong> on edge devices.</td> 258 + </tr> 259 + <tr> 260 + <td class="symptom">No Outbound Calls</td> 261 + <td>Confirm destination SIP target and port (<code>UDP 5060</code>). Verify outbound traffic sources from your designated public IP. Ensure Caller ID matches an active number on the trunk.</td> 262 + </tr> 263 + <tr> 264 + <td class="symptom">One-Way or No Audio</td> 265 + <td><strong>Common Issue:</strong> PBX is sending private IP addresses (e.g., <code>10.x.x.x</code> or <code>192.168.x.x</code>) inside the SIP SDP header. Check PBX NAT settings, SBC Media Address Override, or STUN. Disable SIP ALG.</td> 266 + </tr> 267 + <tr> 268 + <td class="symptom">DTMF Tones Not Recognized</td> 269 + <td>Configure PBX and endpoints to send DTMF out-of-band using <strong>RFC 2833</strong> (telephony-event).</td> 270 + </tr> 271 + <tr> 272 + <td class="symptom">Calls Not Ringing Correct Extension</td> 273 + <td>Inspect sent/received <strong>DNIS digit delivery</strong>. FirstDigital defaults to sending 10 digits. Adjust PBX inbound routing rules to match.</td> 274 + </tr> 275 + <tr> 276 + <td class="symptom">Forwarded Calls Have One-Way Audio</td> 277 + <td>Typically caused when FirstDigital enables "NAT Media" as a temporary workaround for private IP leaks. Resolving the PBX private IP header leak allows FirstDigital to remove NAT Media settings, restoring call transfer audio.</td> 278 + </tr> 279 + </tbody> 280 + </table> 281 + 282 +</div> 283 +{{/html}}