Videoconferencing plugin for bluejeans

Hi,

I think the subject is almost self-explanatory.
I need a plugin for bluejeans that works in a similar way that the vidyo one. But, before I jump trying to code anything myself, I would like to know if someone already did it, or at least started.
If anyone has done some work on this particular direction, any comment/suggestion/advice/… is more than welcome.

Thanks a lot in advance.
Cheers,
Jose

As far as I know nobody wrote any custom VC plugins so far.

I just started playing with it. So far, I just created a fake one:

  • I copied the entire vidyo plugin directory
  • I changed strings vidyo by bluejeans on [I think] every python file, also in the name of files

I was able to compile OK, and it shows in the output of command “indico setup list_plugins”. Upgrading the db also worked fine: “indico db --all-plugins upgrade”.

I added it to the config file, and I can start the devel server w/o problems. What I don’t see yet is how to make it visible in the “Services” section in the left bar.
I am also getting some tracebacks when clicking here and there.
But all of that was mostly expected. It would have been a miracle if just a search & replace makes every thing works right away :slight_smile:

What I don’t see yet is how to make it visible in the “Services” section in the left bar.

If “videoconference” doesn’t show up there the plugin is either not loaded (but if it’s in the config file and you don’t get errors the plugin should be loaded), check if your plugin class is still using the VCPluginMixin - that’s what indico uses to see if a plugin provides a videoconference service.

Upgrading the db also worked fine: “indico db --all-plugins upgrade”

Depending on the APIs of your videoconference service you might not need the custom database table at all (but deleting it later is easy of course)

hi
yes, it still uses VCPluginMixin. Should I stop doing it? Or I need to customize it?

Then it should work… does the plugin show up in the admin area under “plugins”?

yes, it does. Now I see 2, one for Vidyo and one for Bluejeans.

then you should have “video conference” as an option under “services” in the event management area as well…

somehow now both plugins are colliding against each other. If I click on “videoconference” when creating an event, I get a traceback mentioning bluejeans. So I guess I missed some label or similar.

File “/home/caballer/dev/indico/env/lib/python2.7/site-packages/sqlalchemy/engine/default.py”, line 509, in do_execute
cursor.execute(statement, parameters)
ProgrammingError: (psycopg2.ProgrammingError) relation “plugin_vc_bluejeans.bluejeans_extensions” does not exist
LINE 2: …d = vidyo_extensions_1.vc_room_id LEFT OUTER JOIN plugin_vc_…
^

sounds like you still reference vidyo somewhere in your plugin, g. in the backref of the relationship in the VidyoExtension (or rather BluejeansExtension in your case) model.

There is one thing that concerns me. I always thought that we could make 2 videoconferencing plugins to work at the same time. That would require, for example, to have something like this in the left bar:

services:
    videoconference_vidyo
    videoconference_bluejeans

So when a person is creating an event, she can pick which VC system to add, event by event.
Is that possible? Or only one videoconference plugin will be active per INDICO instance, even though there are more than one loaded?

If more than one VC plugin is loaded we already show a selector when someone tries to create a VC room. But it’s both handled on the same page (“Video conference”) inside “Services”…

Do I need to delete some DB before trying with 2 videoconference plugins? Or some file or directory?
If I just copy & paste the entire directory for vidyo into a new one for bluejeans, and I make sure all strings vidyo|Vidyo are replaced by bluejeans|Bluejeans everywhere -including the name of files and directories- and I re-install, I would expect it to work, right?
However, I still get this traceback (*).
What may I be missing here?

(*)
sqlalchemy.exc.ProgrammingError
ProgrammingError: (psycopg2.ProgrammingError) relation “plugin_vc_bluejeans.bluejeans_extensions” does not exist
LINE 2: …d = vidyo_extensions_1.vc_room_id LEFT OUTER JOIN plugin_vc_…
^
[SQL: ‘SELECT events.vc_room_events.id AS events_vc_room_events_id, events.vc_room_events.event_id AS events_vc_room_events_event_id, events.vc_room_events.vc_room_id AS events_vc_room_events_vc_room_id, events.vc_room_events.link_type AS events_vc_room_events_link_type, events.vc_room_events.linked_event_id AS events_vc_room_events_linked_event_id, events.vc_room_events.session_block_id AS events_vc_room_events_session_block_id, events.vc_room_events.contribution_id AS events_vc_room_events_contribution_id, events.vc_room_events.show AS events_vc_room_events_show, events.vc_room_events.data AS events_vc_room_events_data, vc_rooms_1.id AS vc_rooms_1_id, vc_rooms_1.type AS vc_rooms_1_type, vc_rooms_1.name AS vc_rooms_1_name, vc_rooms_1.status AS vc_rooms_1_status, vc_rooms_1.created_by_id AS vc_rooms_1_created_by_id, vc_rooms_1.created_dt AS vc_rooms_1_created_dt, vc_rooms_1.modified_dt AS vc_rooms_1_modified_dt, vc_rooms_1.data AS vc_rooms_1_data, vidyo_extensions_1.vc_room_id AS vidyo_extensions_1_vc_room_id, vidyo_extensions_1.extension AS vidyo_extensions_1_extension, vidyo_extensions_1.owned_by_id AS vidyo_extensions_1_owned_by_id, bluejeans_extensions_1.vc_room_id AS bluejeans_extensions_1_vc_room_id, bluejeans_extensions_1.extension AS bluejeans_extensions_1_extension, bluejeans_extensions_1.owned_by_id AS bluejeans_extensions_1_owned_by_id \nFROM events.vc_room_events LEFT OUTER JOIN events.vc_rooms AS vc_rooms_1 ON vc_rooms_1.id = events.vc_room_events.vc_room_id LEFT OUTER JOIN plugin_vc_vidyo.vidyo_extensions AS vidyo_extensions_1 ON vc_rooms_1.id = vidyo_extensions_1.vc_room_id LEFT OUTER JOIN plugin_vc_bluejeans.bluejeans_extensions AS bluejeans_extensions_1 ON vc_rooms_1.id = bluejeans_extensions_1.vc_room_id \nWHERE %(param_1)s = events.vc_room_events.event_id’] [parameters: {‘param_1’: 18}] (Background on this error at: http://sqlalche.me/e/f405)

Any comment on my last post? I am pretty sure I just missed something very basic, but I don’t see what it is :frowning:

You need to run indico db --plugin vc_bluejeans upgrade to create the table.

Hmm…

$ indico db --plugin vc_bluejeans upgrade
skipping plugin 'vc_bluejeans' (no migrations folder)

I guess you deleted it? You can generate it using this command:

indico db --plugin vc_bluejeans migrate -m "Create table"

But I’d wait to see if you actually need it an extra table…

Not really. At least, I don’t remember deleting anything.

$ indico db --plugin vc_bluejeans migrate -m “Create table”
skipping plugin ‘vc_bluejeans’ (no migrations folder)

Huh? Should I run those commands under any particular identity?

Sounds like you don’t have a migrations folder inside indico_vc_bluejeans. Maybe you didn’t copy the folder when copying the vidyo plugin?

OK. I will delete the entire plugin, and start over. Let’s see if that is the case, or something similar.