Listen for events on the <convirza-dialer> element:Authentication & connection#
| Event | When | Detail |
|---|
sip-registered | Dialer ready to make calls | — |
sip-unregistered | SIP disconnected | — |
auth-failed | Login failed | { error: string } |
sip-registration-failed | SIP connection failed | { cause: string } |
sip-transport-error | Network error | { error: string } |
token-refreshed | Tokens renewed (token auth only) | { access_token, refresh_token } |
Call lifecycle#
| Event | When | Detail |
|---|
call-started | Outbound call initiated | { phoneNumber: string } |
call-answered | Call connected | { phoneNumber: string } |
call-ended | Call finished | { phoneNumber, duration } |
state-change | Call state changed | { oldState, newState, metadata } |
incoming-call | Inbound call ringing | { phoneNumber, callerName } |
Call states: idle → dialing → ringing → connected → endedIn-call controls#
| Event | When | Detail |
|---|
sip-call-mute | Mute toggled | { muted: boolean } |
sip-call-hold | Hold toggled | { onHold: boolean } |
call-remote-hold | Remote party put you on hold | { isOnHold: boolean } |
dtmf-sent | DTMF digit sent | { digit: string } |
call-quality-change | Quality metrics updated (every ~2s) | CallQualityMetrics |
Call parking#
| Event | When | Detail |
|---|
call-parked | Call parked successfully | { parkExtension, phoneNumber } |
park-slots-updated | Park occupancy changed | { slots: [] } |
call-park-failed | Park failed | { error: string } |
| Event | When | Detail |
|---|
widget-opened | Widget expanded | — |
widget-closed | Widget collapsed | — |
history-updated | Call history changed | { history: [] } |
Errors#
| Event | When | Detail |
|---|
dialer-error | General SDK error | { error: string } |
Production monitoring#
Minimum listeners for production:Typical call flow#
placeCall()
↓
call-started
↓
state-change: idle → dialing → ringing
↓
call-answered
↓
state-change: ringing → connected
↓
(call quality updates every 2s)
↓
endCall()
↓
call-ended
↓
state-change: connected → ended → idle
incoming-call
↓
state-change: idle → ringing
↓
User clicks Answer
↓
call-answered
↓
state-change: ringing → connected
↓
(rest same as outbound)
Event bubbling#
All events bubble (bubbles: true), so you can listen at the document level:Recommended: listen directly on the element for better performance. Modified at 2026-07-10 14:38:33