A browser Content Security Policy can block an IllyVoIP SDK script, token request, signaling connection or media asset. Identify the blocked resource and responsible directive before changing the policy. A CSP error is not a reason to disable the site’s protections globally.
Start with the official IllyVoIP Webphone SDK 1.4.2 bundle and one managed phone owner. Your backend must authorize the signed-in user’s SIP identity and issue the short-lived browser token. The examples extend your application; they do not change the hosted Portal phone.
1. Capture the first relevant violation
- Open developer tools on your own integration and reproduce the failed enable or connection step.
- Read the Console violation and Network request, noting the directive, blocked URL and document origin.
- Check the actual response headers on the affected document, including parent and iframe pages.
- Remove tokens, customer identifiers and private query strings before sharing diagnostics.
Several enforced policies can apply at once. Adding a more permissive header does not cancel an existing restrictive one. A report-only policy records violations but does not itself permit resources blocked by an enforced policy.
2. Match the blocked resource to its purpose
- Script loading: inspect script-src and the location of your matching SDK facade and browser runtime.
- Token/bootstrap HTTP requests: inspect connect-src for the authenticated backend and actual required API origin.
- Secure WebSocket signaling: inspect connect-src for the current bootstrap-provided WSS origin.
- Owned ringtone or remote audio files: inspect media-src and the real asset URL.
- Embedding: inspect the parent frame-src and the phone document’s frame-ancestors separately.
The SDK derives runtime loading and connection data from its configuration and bootstrap. Inspect those current values privately; do not copy an old infrastructure hostname into a permanent policy. Do not expose the complete bootstrap just to find a WebSocket host.
3. Test a narrow policy in a controlled environment
Content-Security-Policy-Report-Only:
default-src 'self';
script-src 'self';
connect-src 'self' https://YOUR-TOKEN-ORIGIN wss://YOUR-SIGNALING-ORIGIN;
media-src 'self';
object-src 'none';
base-uri 'self';This is a diagnostic starting point, not a deployable policy. Replace the placeholders and account for the rest of your application. The HTTP header is one header value; line breaks above are for readability. Report-only mode does not weaken an already enforced policy. Use a controlled environment to compare the intended policy before a production change.
For inline application code, use your framework’s reviewed nonce or hash approach, or move the code to an approved external file. Do not add unsafe-inline, unsafe-eval, broad wildcards or every observed domain just to silence the console. Allow a resource only after confirming why your integration needs it.
4. Separate other browser failures
CORS rejection, failed authentication, microphone permission, autoplay restrictions and unavailable signaling are different problems. A successful CSP adjustment does not fix them. Inspect the actual next error rather than repeatedly widening the policy. Likewise, WebRTC media transport problems cannot be diagnosed from connect-src alone.
5. Verify the full lifecycle
- Reload a fresh session and confirm the intended SDK files load.
- Enable the phone and inspect the token and signaling steps.
- Check any owned tone asset and incoming-call UI.
- Test cleanup, logout and token refresh, not just initial page load.
- Keep an enforced-policy regression check in your application’s deployment review.
Begin with local mocked requests and policy tests. For actual call quality, arrange an authorized end-to-end test on the supported browser and network. Save the before/after policy and sanitized violation evidence so an unrelated site break can be reversed deliberately.
Related guides
- Add browser calling with the Webphone SDK
- Manage the IllyVoIP WebRTC Phone SDK lifecycle in React
- Handle browser-token refresh in a long-running IllyVoIP SDK session
Reference
Current instructions and technical reference: MDN: Content Security Policy, MDN: connection policy.
Reviewed 13 October 2026 against the current IllyVoIP controls, implementation and applicable references. Available options depend on account permissions and service state.