Skip to main content

JavaScript API

Control the Web Dialler programmatically using the global PhoenixWidget object.

Overview​

Once the widget script is loaded, a PhoenixWidget object is available on the window. Use it to trigger calls, hang up, or remove the widget entirely — all from your own JavaScript code.

// Start a call
PhoenixWidget.call('+919876543210');

// Hang up the current call
PhoenixWidget.hangup();

// Remove the widget from the page
PhoenixWidget.destroy();

Methods​

PhoenixWidget.call(number)​

Starts an outbound call to the given number.

ParameterTypeDescription
numberstringPhone number to call. Use E.164 format (e.g., +919876543210) for best results.
// Call a customer
PhoenixWidget.call('+919876543210');
tip

If the widget panel is closed, calling this method will open it automatically and start the call.


PhoenixWidget.hangup()​

Ends the currently active call. If no call is in progress, this has no effect.

PhoenixWidget.hangup();

PhoenixWidget.destroy()​

Removes the widget from the page entirely — disconnects any active call, tears down the UI, and cleans up resources.

PhoenixWidget.destroy();
warning

After calling destroy(), the widget is gone. To reinitialize it, you'll need to reload the page or re-add the script tag.

Command Queue​

If you need to call widget methods before the script has finished loading, use the command queue pattern:

<script>
window.PhoenixWidget = window.PhoenixWidget || { q: [] };

// Queue a call — it'll execute after the widget initializes
PhoenixWidget.q.push(['call', '+919876543210']);
</script>

<!-- Widget script loads later -->
<script
src="https://cdn.superfone.co.in/widgets/phoenix/phoenix-widget.js"
data-api-key="USER_WEB_DIALLER_TOKEN"
></script>

Supported commands in the queue: call, hangup, destroy.

Integration Examples​

Click-to-Call Button​

Add a "Call" button next to customer records in your CRM:

<button onclick="PhoenixWidget.call('+919876543210')">
Call Customer
</button>

Call from a Contact List​

document.querySelectorAll('[data-phone]').forEach(function (el) {
el.addEventListener('click', function () {
var phone = el.getAttribute('data-phone');
PhoenixWidget.call(phone);
});
});

Auto-Call on Page Load​

Trigger a call when a specific page loads (e.g., a support ticket page):

window.PhoenixWidget = {
config: {
apiKey: 'USER_WEB_DIALLER_TOKEN',
onReady: function () {
var customerPhone = document.getElementById('customer-phone').textContent;
if (customerPhone) {
PhoenixWidget.call(customerPhone.trim());
}
},
},
};

Hang Up After a Timeout​

// Auto-disconnect after 5 minutes
PhoenixWidget.call('+919876543210');

setTimeout(function () {
PhoenixWidget.hangup();
}, 5 * 60 * 1000);

Error Handling​

If the widget hasn't initialized yet, methods will log a warning to the console. Use the onReady callback (see Configuration) to ensure the widget is ready before making API calls.

window.PhoenixWidget = {
config: {
apiKey: 'USER_WEB_DIALLER_TOKEN',
onReady: function () {
// Safe to call widget methods here
console.log('Widget ready — calling is available');
},
onError: function (error) {
console.error('Widget error:', error.message);
// Show a fallback UI or notify the user
},
},
};
Need Help?

For questions about the JavaScript API, advanced integration patterns, or custom requirements, contact Superfone customer support at hello@superfone.in.