Omnis Studio – Eyeson Conference System Integration

Eyeson Conference System

Eyeson is a video conference system developed by  VisoCon Gmbh.

Visocon has released a set of Eyeson API that represent a framework for developers and integrators.

Using eyeson api you can:

  • Create conferences (rooms).
  • Share a Room with Othes People.
  • Personalize Your Rooms
  • Record a conference.
  • Inject and compose video content in real-time.

No additional software installation is requred.

Eyeson API for Omnis Studio

The Omnis Interface to the Eyeson api is implemented by the “o_eyeson” object distibuited in the library “eyeson_api.lbs”.
This library contain also an object  (“o_http3”) that manage the https connections to the eyeson server.

If you develop a your own application  you must copy the “o_eyeson” and  “o_http3” objects in  your library.

The o_eyeson  implements the  api made available by VisoCon Gmbh for the integration with their video conference system.

For details see the original documentation at: “https://eyeson-team.github.io/api/api-reference/”.

Examples in eyeson_test.lbs library

The “eyeson_test.lbs”  contains some example to show the usage of some aspects of  eyeson apis.

In the first form you have tree buttons:

Test Video (iframe)

This is an example of video conference integration in a web page.
In this case is used the html tag <iframe> to include the eyeson content into a custom web page developed with Omnis.

You can also add a guest to the room and send the url to another partecipant.

Test Video (Omnis component)

This example is similar to the previous, but instead to use an “<iframe>” tag, is used a simple omnis external component named “com_softpi_eyeson”.

The “com_softpi_eyeson” component will appear in the “JSON Components” tab of Component store and can be drag and drop into the remote form.
Before you can use it ,you must install the component into the omnis system as specified in omnis documentation.
The component is  in the “com.softpi.eyeson.zip” file distribuited with the other libraries.

Test Api

The Test_api form can be used to test each metod in o_eyeson object.

Every tab of the multiple panel is about a specific aspect of eyeson api.
In eyeson_test.lbs you have also an example of restful web service to test the webhook functionalty of eyeson api (rt_hook).

Of course you have to configure your firewall or your web server to permit the incoming request to reach the web service inside omnis library.

Api reference

output format:
Almost function return a row with two columns.
The first column  (raw) contains the raw output received from the eyeson server, (https headers plus content body).

The second column (form) contains  the returned JSON data formatted into omnis list.

$set_apikey
$set_apikey(p_apikey)
This method set the key string  in the object instance for later use in method calling. 
Ex: $set_apikey( ’59ae76ab2bf5d90d776ccf7e’ )

$room_create
$room_create(p_id,p_name,p_user_id,p_user_name,p_user_avatar,p_option_show_names,p_option_show_label,p_option_exit_url,p_option_recording_available,p_option_broadcast_available,p_option_layout_available).
Creates a new room on eyeson server.
Only the user name is required.
For the complete meaning of the parameters see:
https://eyeson-team.github.io/api/api-reference/#eyeson-room”.

In the output row , in the link section, you can find the url to access the conference as administrator.

“links”: {
         “self”:”https://api.eyeson.team/rooms/5a0d66e17b9872000f7f38eb”,
        “gui”: “https://app.eyeson.team/?5a0d66e17b9872000f7f38eb”,
        “guest_join”: “https://app.eyeson.team/?guest=5a0d66e07b9872000f7f38e9”,
        “websocket”: “https://api.eyeson.team/rt?access_key=5a0d66e17b9872000f7f38eb”
    },

$room_info
$room_info(p_access_key)
Return all information about the room idetified by the access key.
Ex: $room_info(5a0d645dbfbd57000f128bda)

$message_send
$message_send(p_message)
Send a message in conference chat.
Ex: $message_send(‘message text’)
https://eyeson-team.github.io/api/api-reference/#messages

$guest_create
$guest_create(p_name,p_id,p_avatar)
Create a new guest in the room.
Ex: $guest_create(‘guest_name’)
The link to access the converence as guest is report in output row.
https://eyeson-team.github.io/api/api-reference/#user-and-guest-user

$guest_info
$guest_info(p_ident)
Return gest information by guest Id.
https://eyeson-team.github.io/api/api-reference/#user-and-guest-user

$present_start
$present_start(p_url)
Show an image in video stream specified in the url.
Ex: $present_start (‘http://www.omnis.net/images/Home_Pic2.jpg’).

https://eyeson-team.github.io/api/api-reference/#presentation

$present_put
Same as $present_start but using PUT instead POST.

$present_stop
$present_stop(p_url)
Stop showing the presented image.

$record_start
Start the recording of the current conference.

$record_stop
Stop the recording of the current conference.

$record_get
$record_get(p_ident)
Get the recoding by id
see https://eyeson-team.github.io/api/api-reference/#recording

$file_upload
$file_upload(p_file)
Send file to the conference
https://eyeson-team.github.io/api/api-reference/#file-management

$file_get
Get the files currently added to the conference.
https://eyeson-team.github.io/api/api-reference/#file-management

$capture_post
Start screen capture with POST method
https://eyeson-team.github.io/api/api-reference/#screen-capture

$capture_put
Start screen capture with PUT method

$capture_del
Stop screen capture

$broadcast_post
$broadcast_post(p_platform,p_stream_url,p_player_url)
Start broadcasting conference to platform as youtube,twitter,facebook ecc.
for detail see: https://eyeson-team.github.io/api/api-reference/#broadcast

$broadcast_put
Same as $broadcast_post but using PUT method.

$broadcast_delete
$broadcast_delete(platform)
Delete broadcast.

$layers_url
$layers_url(p_file_url)
Display url as layer in video conference
see: https://eyeson-team.github.io/api/api-reference/#content-integration-aka-layers

$layers_insert
$layers_insert(p_icon_url,p_title,p_content,p_zindex)
Insert layer in specified position (p_zindex)

$layers_delete
$layers_delete(p_index)
delete layer at index

$webhooks
$webhooks(p_url,p_types)
Register a webhooks for one or more events in conference.
Events may be  user_update, document_update, recording_update, broadcast_update, room_instance_update, team_update, presentation_update.
p_url is the url of a web service for the callback.

Ex: $webhooks(https://ws.host.com/eyeson/hook/callback,recording_update)

For details see: https://eyeson-team.github.io/api/api-reference/#register-webhooks

$get_room
Get the data if the room store in the object instance.

$clear_room
Clear the instance data of the room

$version
Omnis api version


 

References: https://www.eyeson.team/

Eyeson exposes a set of https calls that permits the user to use their conference system.

The complete list is at   https://eyeson-team.github.io/api/getting-started/

In Omnis all original calls are wrapped in an object (o_eyeson)  that manage the https protocol with the ow3 object.

Omnis Api and documentations to access to the Eyeson services are available. There are two library: eyeson_test.lbs and eyeson_conference.lbs.

eyeson_test.lbs permits to test each api call.

eyeson_conference.lbs show how to include a video conference in a omnis web application.

 

For some examples is used a simple  external javascript  components.