CallEvents
Events
AudioStarted
Event is triggered after remote peer answered the call or set the call into the Call.startEarlyMedia state. Note that event is not triggered in P2P mode.
Parameters
call:
CallCall that triggered the event
headers:
ObjectCustom SIP headers received with the message (the ones starting with "X-")
name:
StringThe name of the event - "Call.AudioStarted"
Connected
Event is triggered after an incoming/outgoing call is connected. For incoming call, it happens after the Call.answer was called. For outgoing call, it happens when a remote peer answers the call.
Example
VoxEngine.addEventListener(AppEvents.CallAlerting, function(e) {
var inc = e.call;
inc.answer();
inc.addEventListener(CallEvents.Connected, function(e) {
// your code
});
});
Parameters
call:
CallCall that triggered the event
customData:
StringOptional: Custom data that was passed from client with call accept command
name:
StringThe name of the event - "Call.Connected"
Disconnected
Event is triggered when an established call was terminated. Note that this event doesn't mean the end of the JavaScript session. The session without calls and/or ACD requests will be automatically terminated after some time (see the session limits for details). It's a good idea to explicitly terminate the session with VoxEngine.terminate after it's no longer needed.
Example
VoxEngine.addEventListener(AppEvents.CallAlerting, function(e) {
var inc = e.call;
inc.addEventListener(CallEvents.Disconnected, function(e) {
VoxEngine.terminate(); // terminates the JavaScript session right after disconnection.
});
});
Parameters
call:
CallCall that triggered the event
cost:
numberCall cost in account currency
duration:
numberTotal call duration in seconds
headers:
ObjectCustom SIP headers received with the message (the ones starting with "X-")
name:
StringThe name of the event - "Call.Disconnected"
Failed
Event is triggered when an outgoing call was terminated before it was connected.
Most frequent status codes:
Code | Description |
---|---|
486 | Destination number is busy |
487 | Request terminated |
603 | Call was rejected |
404 | Invalid number |
480 | Destination number is unavailable |
402 | Insufficient funds |
408 | The call was not answered within 60 seconds |
Parameters
call:
CallCall that triggered the event
code:
NumberStatus code of the call (i.e., 486)
headers:
ObjectCustom SIP headers received with the message (the ones starting with "X-")
name:
StringThe name of the event - "Call.Failed"
reason:
StringStatus message of call failure (i.e., Busy Here)
FirstVideoPacket
Event is triggered when the first video packet was received
Parameters
call:
CallCall that triggered the event
url:
stringRecord URL
InfoReceived
Event is triggered when INFO message is received
Parameters
body:
StringContent of the message
call:
CallCall that triggered the event
headers:
ObjectOptional SIP headers received with the message (the ones starting with "X-")
mimeType:
StringMIME type of INFO message
name:
StringThe name of the event - "Call.InfoReceived"
MessageReceived
Event is triggered when Text Message is received
Parameters
call:
CallCall that triggered the event
headers:
ObjectOptional SIP headers received with the message (the ones starting with "X-")
name:
StringThe name of the event - "Call.MessageReceived"
text:
StringContent of the message
MicStatusChange
Event is triggered each time when microphone status changes. There is the method for enabling status analyzing - Call.handleMicStatus.
Parameters
active:
BooleanActivity flag
call:
CallCall that triggered the event
name:
StringThe name of the event - "Call.MicStatusChange"
OffHold
Event is triggered when call is taken off hold
Parameters
call:
CallCall that triggered the event
name:
StringThe name of the event - "Call.OffHold"
OnHold
Event is triggered when call is put on hold
Parameters
call:
CallCall that triggered the event
name:
StringThe name of the event - "Call.OnHold"
PlaybackFinished
Event is triggered when audio/voice playback is completed. Note that the Call.stopPlayback method finishes any media, so the PlaybackFinished event will be not triggered. The playback may be started by the Call.say or Call.startPlayback methods.
Example
VoxEngine.addEventListener(AppEvents.CallAlerting, function(e) {
var inc = e.call;
inc.answer();
inc.addEventListener(CallEvents.Connected, function(e) {
inc.say("Good afternoon!", Language.CA_ENGLISH_FEMALE);
inc.addEventListener(CallEvents.PlaybackFinished, function() {
VoxEngine.terminate();
});
});
});
Parameters
call:
CallCall that triggered the event
error:
StringOptional: Error that occured during the playback
name:
StringThe name of the event - "Call.PlaybackFinished"
PlaybackReady
The event is triggered by the Call.startPlayback and Call.say when 1) the audio file download to the Voximpant cache is finished 2) the audio file is found in the cache (i.e., it was in the cache before).
Parameters
call:
CallCall that triggered the event
ReInviteAccepted
Event is triggered when the Voximplant cloud receives the ReInviteAccepted message. This message means that a call received video from the other participant.
Parameters
body:
StringContent of the message
call:
CallCall that triggered the event
headers:
ObjectOptional SIP headers received with the message (the ones starting with "X-")
mimeType:
StringMIME type of body data "application/sdp" or "application/json"
name:
StringThe name of the event - "Call.ReInviteAccepted"
ReInviteReceived
Event is triggered when the Voximplant cloud receives the ReInviteReceived message. This message means that a caller: 1) started to send video 2) started/stopped screensharing 3) put a call on hold / took a call off hold.
Parameters
body:
StringContent of the message
call:
CallCall that triggered the event
headers:
ObjectOptional SIP headers received with the message (the ones starting with "X-")
mimeType:
StringMIME type of body data "application/sdp" or "application/json"
name:
StringThe name of the event - "Call.ReInviteReceived"
ReInviteRejected
Event is triggered when the Voximplant cloud receives the ReInviteRejected message. This message means that a call didn't receive video from the other participant.
Parameters
call:
CallCall that triggered the event
headers:
ObjectOptional SIP headers received with the message (the ones starting with "X-")
name:
StringThe name of the event - "Call.ReInviteRejected"
RecordError
Is triggered in case of problems during the recording process
Parameters
error:
stringError message
RecordStarted
Event is triggered when call recording is started as a result of the Call.record method call.
Example
VoxEngine.addEventListener(AppEvents.CallAlerting, function(e) {
var inc = e.call;
const callerId = "+1234567890"; // Purchased or confirmed phone number
var out = VoxEngine.callPSTN("+13115552368", callerId);
out.addEventListener(CallEvents.Connected, function() {
inc.answer();
VoxEngine.sendMediaBetween(inc, out);
inc.record({stereo: true});
inc.addEventListener(CallEvents.RecordStarted, function(e) {
var url = e.url; // the record will be available in some time via this url
});
});
});
Parameters
call:
CallCall that triggered the event
name:
StringThe name of the event - "Call.RecordStarted"
url:
StringHTTP URL of a record file.
RecordStopped
Event is triggered when call recording is stopped. This happens after the CallEvents.Disconnected event was triggered.
Example
VoxEngine.addEventListener(AppEvents.CallAlerting, function(e) {
var inc = e.call;
const callerId = "+1234567890"; // Purchased or confirmed phone number
var out = VoxEngine.callPSTN("+13115552368", callerId);
out.addEventListener(CallEvents.Connected, function(e) {
inc.answer();
VoxEngine.sendMediaBetween(inc, out);
inc.record({stereo: true});
inc.addEventListener(CallEvents.RecordStopped, function() {
VoxEngine.terminate();
});
});
});
Parameters
call:
CallCall that triggered the event
cost:
stringRecord cost (in the account's currency: USD, EUR or RUR)
duration:
numberRecord duration (sec)
name:
StringThe name of the event - "Call.RecordStopped"
url:
StringHTTP URL of record file.
Ringing
Event is triggered after outgoing call receives progress signal from a remote peer.
Parameters
call:
CallCall that triggered the event
headers:
ObjectCustom SIP headers received with the message (the ones starting with "X-")
name:
StringThe name of the event - "Call.Ringing"
Statistics
DEPRECATED || Event is triggered when call statistic changed.
Parameters
call:
CallCall that triggered the event
ToneDetected
Event is triggered when a call progress tone is detected (either dial tone or busy tone). There is the method for enabling tone detection - Call.detectProgressTone. Note that: 1) the event is triggered only if the CallEvents.Connected event was triggered 2) the event is only triggered once in a call session.
Parameters
VoicemailTone:
BooleanIf set to true, the detected tone is a voicemail tone.
call:
CallCall thet triggered the event
name:
StringThe name of the event - "Call.ToneDetected"
ProgressTone:
BooleanIf set to true, the detected tone is a progress tone.
ToneReceived
Event is triggered when a DTMF signal is received. Note that by default DTMF signals will not trigger this event, this behavior needs to be set explicitly by using the Call.handleTones method.
Parameters
call:
CallCall that triggered the event
name:
StringThe name of the event - "Call.ToneReceived"
tone:
StringTone received in this event: 0-9,*,# are possible values
TransferComplete
Event is triggered when call transfer complete
Parameters
call:
CallCall that triggered the event
VideoTrackCreated
The event is triggered after the video track created. This could happen only if the Call.record({video: true}) method was called.
Parameters
call:
CallCall that triggered the event
url:
stringRecord URL
VoicemailToneDetected
Event is triggered each time when voicemail tone is detected. The detection is possible if the Call.detectVoicemailTone method was called in the scenario. Note that detection is ended after timeout specified in the method (default value is 20 seconds).
Parameters
call:
CallCall that triggered the event
frequency:
NumberTone frequency
name:
StringThe name of the event - "Call.VoicemailToneDetected"
VoicemailToneNotDetected
Event is triggered when voicemail tone is not detected. The event can be triggered only if the Call.detectVoicemailTone method was called in the scenario. Note that event is triggered strictly after timeout specified in the method (default value is 20 seconds). Possible causes of detection's failure: interferences or dividing of the signal; complex signal (more than one frequency); the signal is out of the supported range (500 - 2000 Hz)
Parameters
call:
CallCall that triggered the event
name:
StringThe name of the event - "Call.VoicemailToneNotDetected"