jitsi / jigasi

Jigasi: a server-side application acting as a gateway to Jitsi Meet conferences. Currently allows regular SIP clients to join meetings and provides transcription capabilities.
Apache License 2.0
526 stars 296 forks source link

[Help needed in transcribing] #92

Open shierro opened 6 years ago

shierro commented 6 years ago

Hi all,

I'm new to this Jitsi stack which is super awesome btw, thanks for creating it!

I was able to set-up a server using https://github.com/matrix-org/docker-jitsi & cloning jitsi-meet

Now I want to add realtime transcription using Jigasi. My first question is: Do i need to set-up a SIP account, server & password if I only want transcription of audio to google API?

I am able to install jigasi using apt-get install jigasi cloning this repo & running ant make didn't work for me. I honestly don't know how to resolve it yet.

So I was able to make the jigasi connect to prosody using

./jigasi.sh --host=prosody --domain=prosody --subdomain=callcontrol --secret=YOURSECRET3

prosody-jigasi-logs

here's a more detailed log for jigasi jigasi-logs.txt

here's my jitsi config config.txt

Do i need to do something special on jitsi meet UI config in order to receive transcriptions? https://github.com/jitsi/jitsi-meet/pull/1996

I hope someone can enlighten me.

Thanks in advance!

shierro commented 6 years ago

when i tried to reconnect jigasi using the command mentioned above, here's the new prosody logs

prosody_1      | jcp2026e90               info  Incoming Jabber component connection
prosody_1      | videobridge.prosody:component  info    External component successfully authenticated
prosody_1      | c2s1e7d9d0                     info    Client connected
prosody_1      | jcp1d12ee0                     info    Incoming Jabber component connection
prosody_1      | focus.prosody:component        info    External component successfully authenticated
prosody_1      | c2s1e7d9d0                     info    Authenticated as focus@auth.prosody
prosody_1      | mod_bosh                       info    Client tried to use sid 'e6daced9-32a4-48d1-9de1-ae28a9b536e9' which we don't know about
prosody_1      | callcontrol.prosody:component  warn    Component not connected, bouncing error for: <iq id='VzI18-35' type='get' to='callcontrol.prosody' from='focus@auth.prosody/focus81612607198457'>
prosody_1      | mod_bosh                       info    Client tried to use sid 'e6daced9-32a4-48d1-9de1-ae28a9b536e9' which we don't know about
prosody_1      | jcp1e73090                     info    Incoming Jabber component connection
prosody_1      | callcontrol.prosody:component  info    External component successfully authenticated
prosody_1      | mod_bosh                       info    New BOSH session, assigned it sid 'd0addf30-03c8-44cc-abd6-d1bb4696613d'
prosody_1      | boshd0addf30-03c8-44cc-abd6-d1bb4696613d  info Authenticated as 7b28debd-5a90-4f48-8525-e516ac0d34ff@guest.prosody
prosody_1      | boshd0addf30-03c8-44cc-abd6-d1bb4696613d  info BOSH client disconnected
prosody_1      | mod_bosh                                  info New BOSH session, assigned it sid '163666e6-e345-4249-b49f-e04b62d27987'
prosody_1      | bosh163666e6-e345-4249-b49f-e04b62d27987  info Authenticated as df8da132-5265-4e31-a9e5-dfd139a1d04e@guest.prosody
prosody_1      | jcp1e73090                                info component disconnected: callcontrol.prosody (closed)
prosody_1      | jcp256b530                                info Incoming Jabber component connection
prosody_1      | callcontrol.prosody:component             info External component successfully authenticated

and here's what I want to achieve

https://www.youtube.com/watch?v=SCm0AymxjU4

damencho commented 6 years ago

I don't see a problem with your jigasi, no you don't need sip for it. Currently, transcriptions can be enabled only from the js console(APP.conference._room.dial("jitsi_meet_transcribe");). You need to configure google account for the transcriptions. There is more info about configuring the google part in the jigasi readme.

shierro commented 6 years ago

ah! it makes sense! yes i have google auth enabled already. let me give it a try and get back to you. thanks @damencho !

shierro commented 6 years ago

i'm getting this after running APP.conference._room.dial("jitsi_meet_transcribe"); screen shot 2018-01-12 at 11 36 07 pm

Jan 12, 2018 3:35:56 PM net.java.sip.communicator.util.Logger error
SEVERE: java.lang.NullPointerException
java.lang.NullPointerException

any quick thoughts?

bgrozev commented 6 years ago

This is very strange. My best guess is that the "dial" IQ providers failed to register for some reason. Can you check the jigasi version (apt-cache policy jigasi) and post the full jigasi logs?

shierro commented 6 years ago

ok here

^Croot@9707cf712015:/usr/share/jigasi# apt-cache policy jigasi
jigasi:
  Installed: 1.0-175
  Candidate: 1.0-175
  Version table:
 *** 1.0-175 500
        500 https://download.jitsi.org stable/ Packages
        100 /var/lib/dpkg/status
     1.0-142 500
        500 https://download.jitsi.org stable/ Packages
root@9707cf712015:/usr/share/jigasi#

videobridge-logs.txt jicofo-logs.txt prosody-logs.txt jigasi-logs.txt

i added logs for others in case you need them

shierro commented 6 years ago

Hi @bgrozev , can you help me debug the logs?

I wanted to add custom logs on project but I've bashed my skull doing a manual build(java newbie)

git clone https://github.com/jitsi/jigasi
mvn dependency:get -DartifactId=maven-ant-tasks -DgroupId=org.apache.maven -Dversion=2.1.3
cd jigasi && ant -lib ~/.m2/repository/org/apache/maven/maven-ant-tasks/2.1.3 make

here's what I get with ant make

tasks/2.1.3 make9:/jigasi# ant -lib ~/.m2/repository/org/apache/maven/maven-ant-t
Buildfile: /jigasi/build.xml
[maven-artifact:dependencies] An error has occurred while processing the Maven artifact tasks.
[maven-artifact:dependencies]  Diagnosis:
[maven-artifact:dependencies]
[maven-artifact:dependencies] Unable to resolve artifact: Unable to get dependency information: Unable to read the metadata file for artifact 'com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar': Cannot find parent: org.sonatype.oss:oss-parent for project: com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.0_jdk5 for project com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.0_jdk5
[maven-artifact:dependencies]   com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.0_jdk5
[maven-artifact:dependencies]
[maven-artifact:dependencies] from the specified remote repositories:
[maven-artifact:dependencies]   jitsi-maven-repository-snapshots (https://github.com/jitsi/jitsi-maven-repository/raw/master/snapshots/),
[maven-artifact:dependencies]   jitsi-maven-repository-releases (https://github.com/jitsi/jitsi-maven-repository/raw/master/releases/),
[maven-artifact:dependencies]   central (http://repo1.maven.org/maven2),
[maven-artifact:dependencies]   sonatype-nexus-snapshots (https://oss.sonatype.org/content/repositories/snapshots)
[maven-artifact:dependencies]
[maven-artifact:dependencies] Path to dependency:
[maven-artifact:dependencies]   1) org.jitsi:jigasi:jar:1.0-SNAPSHOT
[maven-artifact:dependencies]   2) org.igniterealtime:tinder:jar:1.2.3
[maven-artifact:dependencies]
[maven-artifact:dependencies]
[maven-artifact:dependencies] Not a v4.0.0 POM. for project org.sonatype.oss:oss-parent at /root/.m2/repository/org/sonatype/oss/oss-parent/3/oss-parent-3.pom

BUILD FAILED
/jigasi/build.xml:39: Unable to resolve artifact: Unable to get dependency information: Unable to read the metadata file for artifact 'com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar': Cannot find parent: org.sonatype.oss:oss-parent for project: com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.0_jdk5 for project com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.0_jdk5
  com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.0_jdk5

from the specified remote repositories:
  jitsi-maven-repository-snapshots (https://github.com/jitsi/jitsi-maven-repository/raw/master/snapshots/),
  jitsi-maven-repository-releases (https://github.com/jitsi/jitsi-maven-repository/raw/master/releases/),
  central (http://repo1.maven.org/maven2),
  sonatype-nexus-snapshots (https://oss.sonatype.org/content/repositories/snapshots)

Path to dependency:
    1) org.jitsi:jigasi:jar:1.0-SNAPSHOT
    2) org.igniterealtime:tinder:jar:1.2.3

Total time: 1 second
root@951080112d29:/jigasi#

any ideas?

bgrozev commented 6 years ago

here's what I get with ant make

I don't know what the current build procedure is for jigasi. pom.xml describes assembly tasks, but their assembly files are missing...can you try with this branch? You can build a package with 'mvn install -Dassembly.skipAssembly=false' https://github.com/bgrozev/jigasi/tree/add-assembly-files

shierro commented 6 years ago

ok will do, i'll get back to you with updates. thanks @bgrozev ! appreciate your help

shierro commented 6 years ago

Hi @bgrozev

i tried both mvn package & install

$ mvn -U clean package -DskipTests -Dassembly.skipAssembly=false
$ mvn install -DskipTests -Dassembly.skipAssembly=false

with no luck :( mvn-install.txt mvn-package.txt

are we missing something on the pom.xml?

bgrozev commented 6 years ago

Is this using the branch that I linked? I specifically removed the windows builds from pom.xml there.

shierro commented 6 years ago

yeah, I cloned it git clone https://github.com/shierro/jigasi --branch add-assembly-files --single-branch jigasi I also removed

<condition property="run.lib.native" value="windows-64">
    <os arch="amd64" family="windows" />
</condition>
<condition property="run.lib.native" value="windows">
    <os arch="i386" family="windows" />
</condition>

i tried your branch and my branch btw

shierro commented 6 years ago

update: I had success with your build! i was mounting the wrong xml, my bad So both these are success

$ mvn -U clean package -DskipTests -Dassembly.skipAssembly=false
$ mvn install -DskipTests -Dassembly.skipAssembly=false

what's the next step on how to run the server? I tried ./jigasi.sh --host=prosody --domain=prosody --subdomain=callcontrol --secret=YOURSECRET3 and got

root@f451cdfceb97:/jigasi# ./jigasi.sh --host=prosody --domain=prosody --subdomain=callcontrol --secret=YOURSECRET3
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/jitsi/xmpp/component/ComponentBase
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.jitsi.xmpp.component.ComponentBase
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass

please bear with me for throwing you these noob questions. Can you guide me to my next steps? Thanks!

bgrozev commented 6 years ago

what's the next step on how to run the server?

Replace /usr/share/jigasi with the contents of the zip file in target (make a backup just in case). Then restart it with the init.d script

shierro commented 6 years ago

fantastic, works like a charm! super thanks mate! i'll dig into the code and try to debug

bgrozev commented 6 years ago

Thanks for confirming that this works. I've pulled in the changes to master