FAQ - Troubleshooting
- How can I have an API key?
- Check our getting started link
- Do I have to be a developer to use ApiRTC?
-
Apizee offers both online and in-person WebRTC training. The training is designed to enable Web developers with a typical JavaScript development background to understand how to use WebRTC to enable real-time communications management from a website.
The training will include extensive hands-on use of the WebRTC APIs, how to implement our apps and how to use our platform. - What is recommended bandwidth level for audio and video streams?
-
- Audio stream: 50 kbps (Lowest level)
- Video stream: 300 kbps (Lowest level)
- What resolutions are available for the video stream?
-
The browser supports the following resolutions:
- 1920x1080 (HD 1080p)
- 1280x720 (HD 720p)
- 640x480 (SD 480p)
- 320x240 (LD 240p)
- What are the codecs used by ApiRTC?
-
ApiRTC keep the priority that is fixed by browser which is now VP8 for video.
Audio codec is Opus by default.
- I use RequireJS on my project, How can I load ApiRTC?
-
requirejs.config({ baseUrl : './libs/', bundles: { 'apiRTC2-vX.Y.Z': ['apiRTC2'] } }); requirejs(["apiRTC2"], function(apiRTC2) { // Your app code });
- I use CommonJS on my project, How can I load ApiRTC?
-
import * as apiRTC2 from './apiRTC2-vX.Y.Z.js'; // Your app code
- I have set up a firewall, how to make audio and video streams flow through this one?
-
On call establishment, if video flows cannot be established, it is because of one of the following reasons:
1 – No Webcam:- Connect a webcam, restart the browser and try again
2 – Media flows are blocked by your enterprise firewall:- Audio and video are blocked by your firewall.
- Media flows are not using HTTP on port 80. The protocol that is used for media routing is SRTP (Secure Real Time Protocol): This protocol use dynamic ports to establish communications negotiated using ICE, STUN, TURN to manage network address traversal.
- You need to allow audio and video packets for SRTP protocol or UDP between your internals PCs and Apizee media proxy server (mp1.apizee.com and mp2.apizee.com). The rule must allow incoming and outgoing packets to and from this server.
Ports range to open for server mp1.apizee.com:Protocol Port(s) UDP 443 TCP 443 UDP 49152 to 65535
If UDP range is not allowed, the media relay use TCP fallback connection on port 443. - Why do I have an "Ice_failed error"?
- This error shows up when no connection was possible. If this error is raised on call establishment, it’s likely a firewall issue. Production environment should allow direct, then STUN, then UDP-TURN, then TCP-TURN connections.
- Why do I have an "Ice_disconnected error"?
- A connection was made but broke. This is usually due to network problems.
- How is the ICE transport state transition ? Ice disconnected, Ice failed ...
-
Here is the diagram that describe the ICE transport state transition :
This diagram is extracted from WebRTC Specification. Check state description on RTCIceTransport Chapter
- Are your components subject to change?
- ApiRTC is a cloud-based commercial API meant to ensure maximum stability for its users. Whenever performing a software upgrade, Apizee always checks for retro-compatibility.
- What are the minimum Android and iOS versions supported?
- Check our Compatibility page
- ApiRTC on Cordova: How do I change from loud speaker to earpiece?
-
Calls made with ApiRTC are by default set to the loudspeaker of your device. To change this setting, a plugin is required according to whether you are using Android or iOS.
Android: the plugin’s repo can be found here
iOS: the plugin’s repo can be found here
Use the methods anywhere after the onDeviceReady() function. - What is the timeout period so that the user gets disconnected from apiRTC server/service?
-
On server side, we have this configuration :
- pingInterval : 3000
- pingTimeout : 10000
That means that we check connection every 3s, and consider websocket as disconnected after 10s.
On client side, we have a timer for contact disconnection delay management configurable on register() - contactDisconnectionDelay (default value is 10s)
Check our API Reference on RegisterInformation
- How to use apiRTC in a React Js project ?
-
if your script is in index.html you can:
- get the apiRTC object in App.js from window
- and initialise your ua from ApiRTC
import React from 'react'; import logo from './logo.svg'; import './App.css'; const apiRTC = window.apiRTC; const ua = new apiRTC.UserAgent({ uri: 'apzkey:[put apiKey here]', });