Link to plugin page: https://bubble.io/plugin/twilio-video-1571728146523x358910094648803300
Demo to preview the settings
Live Demo: http://twiliodemo.bubbleapps.io/index
Introduction
The plugin allows you to create conferencing, video and audio calls in your bubble application using Twilio API
Prerequisites
To use the plugin, you must register and get an access key on Twilio.
How to setup
- Username and SID - ACCOUNT SID, Password - AUTH TOKEN.
- API_KEY and API_SECRET generateย https://www.twilio.com/console/project/api-keys
- Insert the received API key into the plugin settings.
Plugin Elements
TwilioVideoCtrl Fields
Title | Description | Type |
identity | User identifier (email) | text |
room | Room name | text |
local_video_id | Id of elements for displaying media | text |
local_screen_id | Id of elements for displaying media | text |
remote_videos | Id of elements for remote media | text |
remote_screens | Id of elements for remotemedia | text |
There are two possibilities for transferring up to 50 elements remote_videos and remote_screens - specify the id list separated by commas, or specify a prefix to which the sequence numbers of participants from 1 to 50 will be added. In the example, the prefixes rv and rs, respectively, the elements must have id: rv1 rv2 rv3 ... and rs1 rs2 rs3 ... The video is displayed in the video element added inside the element, if the corresponding element is not found, the video will not be displayed.
TwilioVideoCtrl Actions
join
Enable broadcasting of a certain type of stream (media video audio screen)
Fields:
Title | Description | Type |
type | View media video audio screen | text |
token | *the token is not required to be re-requested | text |
leave
Leave the room
on
Enable the broadcast of a certain type of stream (video audio screen)
Title | Description | Type |
type | Video audio screen | text |
off
Disable the broadcast of a certain type of stream (video audio screen)
Fields:
Title | Description | Type |
type | Video audio screen | text |
TwilioVideoCtrl States
States:
Title | Description | Type |
log | Log state | list |
TwilioReplay Fields
Title | Description | Type |
videos | Id of the element | text |
screens | Id of the element | text |
TwilioReplay Actions
buildTimeline
To build a timeline
Title | Description | Type |
recordings | Recordings (returned value "recs" of action "getRecordingsAโ) | text |
play
pause
stop
TwilioReplay Events
Events:
Name | Description |
play_end | Stop play event |
Plugin Actions
moveVideo
Transferring video to another container
Fields:
Title | Description | Type |
idFrom | ID of the container from which the video is transmitted | text |
idTo | ID of the container to which the video is transmitted | text |
play | Play video | yes/no |
getTokenA
Get token.
Fields:
Title | Description | Type |
identity | User identifier (email) | text |
Return values:
Title | Description | Type |
token | Token | text |
getRecordingsA
Request a list of recording fragment.
Fields:
Title | Description | Type |
roomsid | Room ID | text |
Return values:
Title | Description | Type |
recs | Recording fragments | text |
room | Room | text |
error | Error text | text |
CreateRoom
Create room
Fields:
Title | Description | Type |
UniqueName | Room name | text |
RecordParticipantsOnConnect | Allow participants to be recorded for connection | yes/no |
Return values:
Title | Description | Type |
status | Status | text |
type | Type room | text |
enable_turn | Enable turn | yes/no |
unique_name | Room name | text |
max_participants | Maximum number of participants | number |
max_participant_duration | Maximum duration | number |
max_concurrent_published_tracks | Maximum concurrent published tracks | number |
duration | Duration | number |
url | Room url | text |
GetRoom
Get room
Fields:
Title | Description | Type |
Room sid | Room ID | text |
Return values:
Title | Description | Type |
status | Status | text |
type | Type room | text |
enable_turn | Enable turn | yes/no |
unique_name | Room name | text |
max_participants | Maximum number of participants | number |
max_participant_duration | Maximum duration | number |
max_concurrent_published_tracks | Maximum concurrent published tracks | number |
duration | Duration | number |
url | Room url | text |
completeRoom
Complete room
Fields:
Title | Description | Type |
roomsid | Room ID | text |
Return values:
Title | Description | Type |
results | Results room | text |
error | Error text | text |
Workflow example
- In cases where the TwilioVideo element is placed in the element group and the room name of the TwilioVideo element has a dynamic value depending on the group entity, then in the WF sequence you must first transfer the entity value to the element group, and then call getToken. Because when requesting a token, the room name of the TwilioVideo element is sent
- If type = view is passed to the JoinTwilio action, then in the next action to turn on the microphone or camera before the JoinTwilio action with the type = audio or type = video parameter, you must first obtain a token (execute the GetToken action).
ChangeLogs
Update 12.09.23 - Version 2.10.0
- Internal Update