SIGN UP

CallEvents

Events

AudioStarted

Event is triggered after remote peer answeredthe call or set the call into the Call.startEarlyMedia state. Note that event is not triggered in P2P mode.

Parameters

  • call:

    Call

    Call that triggered the event

  • headers:

    Object

    Custom SIP headers received with the message (the ones starting with "X-")

  • name:

    String

    The 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:

    Call

    Call that triggered the event

  • customData:

    String

    Optional: Custom data that was passed from client with call accept command

  • name:

    String

    The 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:

    Call

    Call that triggered the event

  • cost:

    number

    Call cost in account currency

  • duration:

    number

    Total call duration in seconds

  • headers:

    Object

    Custom SIP headers received with the message (the ones starting with "X-")

  • name:

    String

    The name of the event - "Call.Disconnected"

Failed

Event is triggered when an outgoing call was terminated before it was connected. Most frequent status codes:

CodeDescription
486Destination number is busy
487Request terminated
603Call was rejected
404Invalid number
480Destination number is unavailable
402Insufficient funds
408The call was not answered within 60 seconds

Parameters

  • call:

    Call

    Call that triggered the event

  • code:

    Number

    Status code of the call (i.e., 486)

  • headers:

    Object

    Custom SIP headers received with the message (the ones starting with "X-")

  • name:

    String

    The name of the event - "Call.Failed"

  • reason:

    String

    Status message of call failure (i.e., Busy Here)

FirstVideoPacket

Event is triggered when the first video packet was received

Parameters

  • call:

    Call

    Call that triggered the event

  • url:

    string

    Record URL

InfoReceived

Event is triggered when INFO message is received

Parameters

  • body:

    String

    Content of the message

  • call:

    Call

    Call that triggered the event

  • headers:

    Object

    Optional SIP headers received with the message (the ones starting with "X-")

  • mimeType:

    String

    MIME type of INFO message

  • name:

    String

    The name of the event - "Call.InfoReceived"

MessageReceived

Event is triggered when Text Message is received

Parameters

  • call:

    Call

    Call that triggered the event

  • headers:

    Object

    Optional SIP headers received with the message (the ones starting with "X-")

  • name:

    String

    The name of the event - "Call.MessageReceived"

  • text:

    String

    Content 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:

    Boolean

    Activity flag

  • call:

    Call

    Call that triggered the event

  • name:

    String

    The name of the event - "Call.MicStatusChange"

OffHold

Event is triggered when call is taken off hold

Parameters

  • call:

    Call

    Call that triggered the event

  • name:

    String

    The name of the event - "Call.OffHold"

OnHold

Event is triggered when call is put on hold

Parameters

  • call:

    Call

    Call that triggered the event

  • name:

    String

    The 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:

    Call

    Call that triggered the event

  • error:

    String

    Optional: Error that occured during the playback

  • name:

    String

    The 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:

    Call

    Call 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:

    String

    Content of the message

  • call:

    Call

    Call that triggered the event

  • headers:

    Object

    Optional SIP headers received with the message (the ones starting with "X-")

  • mimeType:

    String

    MIME type of body data "application/sdp" or "application/json"

  • name:

    String

    The 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:

    String

    Content of the message

  • call:

    Call

    Call that triggered the event

  • headers:

    Object

    Optional SIP headers received with the message (the ones starting with "X-")

  • mimeType:

    String

    MIME type of body data "application/sdp" or "application/json"

  • name:

    String

    The 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:

    Call

    Call that triggered the event

  • headers:

    Object

    Optional SIP headers received with the message (the ones starting with "X-")

  • name:

    String

    The name of the event - "Call.ReInviteRejected"

RecordError

Is triggered in case of problems during the recording process

Parameters

  • error:

    string

    Error 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:

    Call

    Call that triggered the event

  • name:

    String

    The name of the event - "Call.RecordStarted"

  • url:

    String

    HTTP 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:

    Call

    Call that triggered the event

  • cost:

    string

    Record cost (in the account's currency: USD, EUR or RUR)

  • duration:

    number

    Record duration (sec)

  • name:

    String

    The name of the event - "Call.RecordStopped"

  • url:

    String

    HTTP URL of record file.

Ringing

Event is triggered after outgoing call receives progress signal from a remote peer.

Parameters

  • call:

    Call

    Call that triggered the event

  • headers:

    Object

    Custom SIP headers received with the message (the ones starting with "X-")

  • name:

    String

    The name of the event - "Call.Ringing"

Statistics

DEPRECATED || Event is triggered when call statistic changed.

Parameters

  • call:

    Call

    Call 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:

    Boolean

    If set to true, the detected tone is a voicemail tone.

  • call:

    Call

    Call thet triggered the event

  • name:

    String

    The name of the event - "Call.ToneDetected"

  • ProgressTone:

    Boolean

    If 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:

    Call

    Call that triggered the event

  • name:

    String

    The name of the event - "Call.ToneReceived"

  • tone:

    String

    Tone received in this event: 0-9,*,# are possible values

TransferComplete

Event is triggered when call transfer complete

Parameters

  • call:

    Call

    Call 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:

    Call

    Call that triggered the event

  • url:

    string

    Record 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:

    Call

    Call that triggered the event

  • frequency:

    Number

    Tone frequency

  • name:

    String

    The 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:

    Call

    Call that triggered the event

  • name:

    String

    The name of the event - "Call.VoicemailToneNotDetected"