Twilio.Device.isSupported
flag which should be true
if WebRTC or ORTC is supported. If false
, it's an indicator that Device.setup
should not be called (it will throw an unsupported exception).Device.audio.setInputDevice()
Device.audio.speakerDevices
or Device.audio.ringtoneDevices
.ringing
Connection state and Connection#ringing
event behind the flag: Twilio.Device.setup(token, { enableRingingState: true })
. With both the answerOnBridge
property and the enableRingingState
flag enabled in the consuming application, the Connection state is now be more granular:ringing
state is transitioned to when the callee is notified of the incoming callopen
state is transitioned to when the callee has accepted the callDevice.sounds
deprecation warning to be logged every time the library was loaded.HTMLAudioElement.setSinkId
Device.setup
is called with a new token.Device.activeConnection()
to return the first received incoming call when there is no active, ongoing call. This behavior was inadvertently changed in 1.4.15. In the next breaking release, this behavior will be changed so that Device.activeConnection()
correctly only returns the active connection if one exists.de1
connection.getRemoteStream()
and connection.getLocalStream()
to retrieve the local/remote streams being used in the Connection.Device.audio.setInputDevice
has been completely disabled in Firefox.Device.audio.unsetInputDevice()
will no longer throw an error if called synchronously inside the Device.incoming()
handler.Device.audio.inputDevice
is null and there is no active call, all user media should be properly released.Device.audio.setInputDevice()
will now work properly when the client is the caller or callee.Device.incoming
handler will still be fired after a maximum timeout of 2 seconds.
Pausing execution (by adding an alert or prompt on Device.incoming) should no longer prevent the incoming ringing sound from playing. Note that in Chrome, the incoming sound will only play once as the paused script execution will prevent looping behavior.ie1-tnx
eval
statements; no more should be present.Connection#error
, when ICE liveliness checks fail. This serves to differentiate between fatal and non-fatal ICE events.us1
and us2
on TNX connection provisioning is supported in Client via us1-tnx
and us2-tnx
region parameters, respectively.Device.setup
is called with a new token.constant-audio-output-level
is now reported as an INFO level event, rather than WARNING in order to reduce false positives. This event may fire if the other side of the call is muted.error()
's handler function no longer contains the info
property. This property previously contained the flash.net.NetConnection
object.Twilio.Device.setup()
no longer accepts rtc
in its params
argument. Twilio Client will use WebRTC or ORTC if either API is available in the browser, Flash is no longer an option.presence()
has been removed. Presence is longer supported in Twilio Client.getMediaEngine()
has been removed, since Flash is no longer supported.sendDigits
uses RTCDTMFSender
where supportedsimplePermissionDialog
option.audioInputLevel
and audioOutputLevel
.audioConstraints
setting to select a specific microphone, or turn
off features like auto-gain control.Twilio.Device.getMediaEngine()
, for checking whether
WebRTC or Flash is being used.Twilio.Device
.We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.