Jigasi Problem

Good afternoon,

I’m not getting anywhere with the Jigasi configuration.

The SIP registration with the provider works so far, but there is no dial-in (only a dial tone) and no invitation via telephone.

In the log file of Jigasi is the following.

2020-04-12 01:17:28.444 SCHWERWIEGEND: [100] impl.protocol.jabber.ProtocolProviderServiceJabberImpl.connectAndLogin().1003 Failed to connect to XMPP service
org.jivesoftware.smack.SmackException: No supported and enabled SASL Mechanism provided by server. Server announced mechanisms: [PLAIN, SCRAM-SHA-1, DIGEST-MD5]. Registered SASL mechanisms with Smack: [SASL Mech: GSSAPI, Prio: 100, SASL Mech: SCRAM-SHA-1-PLUS, Prio: 100, SASL Mech: SCRAM-SHA-1, Prio: 110, SASL Mech: DIGEST-MD5, Prio: 200, SASL Mech: CRAM-MD5, Prio: 300, SASL Mech: PLAIN, Prio: 400, SASL Mech: X-OAUTH2, Prio: 410, SASL Mech: EXTERNAL, Prio: 500, SASL Mech: ANONYMOUS, Prio: 500]. Enabled SASL mechanisms for this connection: [ANONYMOUS]. Blacklisted SASL mechanisms: [SCRAM-SHA-1-PLUS].
at org.jivesoftware.smack.SASLAuthentication.selectMechanism(SASLAuthentication.java:361)
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:192)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.loginInternal(XMPPTCPConnection.java:387)
at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:491)
at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:448)
at net.java.sip.communicator.impl.protocol.jabber.AnonymousLoginStrategy.login(AnonymousLoginStrategy.java:84)
at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.connectAndLogin(ProtocolProviderServiceJabberImpl.java:1371)
at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.connectAndLogin(ProtocolProviderServiceJabberImpl.java:970)
at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.initializeConnectAndLogin(ProtocolProviderServiceJabberImpl.java:795)
at net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl.register(ProtocolProviderServiceJabberImpl.java:500)
at org.jitsi.jigasi.util.RegisterThread.run(RegisterThread.java:59)
2020-04-12 01:17:28.458 SCHWERWIEGEND: [100] org.jitsi.jigasi.JvbConference.registrationStateChanged().610 [ctx=15866470483411390117790] XMPP Connection failed.
2020-04-12 01:17:28.459 WARNUNG: [100] org.jitsi.jigasi.JvbConference.leaveConferenceRoom().883 [ctx=15866470483411390117790] MUC room is null

What am I doing wrong?

Hey What SIP Provider are you using?

Hello,

I use the SIP registration to my Ecotel SIP trunk. The registration is not the problem, but the call acceptance or the call going out.

Could you share your jigasi configuration files? Censor the parts that are sensitive information.

From what I can see: Did you set up a XMPP user for jigasi?

Jigasi settings

JIGASI_SIPUSER=000000@sip.domain.tld
JIGASI_SIPPWD=Password
JIGASI_SECRET=Password
JIGASI_OPTS=""
JIGASI_HOSTNAME=domain.tld
JIGASI_HOST=localhost

adds java system props that are passed to jigasi (default are for logging config file)

JAVA_SYS_PROPS="-Djava.util.logging.config.file=/etc/jitsi/jigasi/logging.properties"

#Sample config with one XMPP and one SIP account configured

Replace {sip-pass-hash} with SIP user password hash

as well as other account properties

Name of default JVB room that will be joined if no special header is included

in SIP invite

org.jitsi.jigasi.DEFAULT_JVB_ROOM_NAME=siptest

net.java.sip.communicator.impl.protocol.SingleCallInProgressPolicy.enabled=false

Should be enabled when using translator mode

#net.java.sip.communicator.impl.neomedia.audioSystem.audiosilence.captureDevice_list=[“AudioSilenceCaptureDevice:noTransferData”]

Adjust opus encoder complexity

net.java.sip.communicator.impl.neomedia.codec.audio.opus.encoder.COMPLEXITY=10

Disables packet logging

net.java.sip.communicator.packetlogging.PACKET_LOGGING_ENABLED=true

net.java.sip.communicator.impl.protocol.sip.acc1403273890647=acc000000000000000
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.ACCOUNT_UID=SIP:00000@sip.domain.tld
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.PASSWORD=password
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.PROTOCOL_NAME=SIP
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.SERVER_ADDRESS=sip.domain.tld
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.USER_ID=00000000@sip.domain.tld
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.KEEP_ALIVE_INTERVAL=25
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.KEEP_ALIVE_METHOD=OPTIONS
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.VOICEMAIL_ENABLED=false
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.AMR-WB/16000=750
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.G722/8000=700
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.GSM/8000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.H263-1998/90000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.H264/90000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.PCMA/8000=600
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.PCMU/8000=650
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.SILK/12000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.SILK/16000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.SILK/24000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.SILK/8000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.VP8/90000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.iLBC/8000=10
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.opus/48000=1000
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.red/90000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.speex/16000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.speex/32000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.speex/8000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.telephone-event/8000=1
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.ulpfec/90000=0
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.OVERRIDE_ENCODINGS=true
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.DEFAULT_ENCRYPTION=false

If an authenticated (hidden) domain is used to connect to a conference,

PREVENT_AUTH_LOGIN will prevent the SIP participant from being seen as a

hidden participant in the conference

#net.java.sip.communicator.impl.protocol.sip.acc1403273890647.PREVENT_AUTH_LOGIN=FALSE

Used when incoming calls are used in multidomain environment, used to detect subdomains

used for constructing callResource and eventually contacting jicofo

net.java.sip.communicator.impl.protocol.sip.acc1403273890647.DOMAIN_BASE=domain.tld

the pattern to be used as bosh url when using bosh in multidomain environment

#net.java.sip.communicator.impl.protocol.sip.acc1403273890647.BOSH_URL_PATTERN=https://{host}{subdomain}/http-bind?room={roomName}

can be enabled to disable audio mixing and use translator, jigasi will act as jvb, just forward every ssrc stream it receives.

#net.java.sip.communicator.impl.protocol.sip.acc1403273890647.USE_TRANSLATOR_IN_CONFERENCE=true

We can use the prefix org.jitsi.jigasi.xmpp.acc to override any of the

properties that will be used for creating xmpp account for communication.

The following two props assume we are using jigasi on the same machine as

the xmpp server.

org.jitsi.jigasi.xmpp.acc.IS_SERVER_OVERRIDDEN=true
org.jitsi.jigasi.xmpp.acc.SERVER_ADDRESS=127.0.0.1
org.jitsi.jigasi.xmpp.acc.VIDEO_CALLING_DISABLED=true
org.jitsi.jigasi.xmpp.acc.JINGLE_NODES_ENABLED=false
org.jitsi.jigasi.xmpp.acc.AUTO_DISCOVER_STUN=false
org.jitsi.jigasi.xmpp.acc.IM_DISABLED=true
org.jitsi.jigasi.xmpp.acc.SERVER_STORED_INFO_DISABLED=true
org.jitsi.jigasi.xmpp.acc.IS_FILE_TRANSFER_DISABLED=true

Or you can use bosh for the connection establishment by specifing the URL to use.

org.jitsi.jigasi.xmpp.acc.BOSH_URL_PATTERN=https://server.com/http-bind?room={roomName}

#Used when outgoing calls are used in multidomain environment, used to detect subdomains
#org.jitsi.jigasi.xmpp.acc.DOMAIN_BASE=domain.tld
#org.jitsi.jigasi.xmpp.acc.BOSH_URL_PATTERN=https://{host}{subdomain}/http-bind?room={roomName}

can be enabled to disable audio mixing and use translator, jigasi will act as jvb, just forward every ssrc stream it receives.

#org.jitsi.jigasi.xmpp.acc.USE_TRANSLATOR_IN_CONFERENCE=true

If you want jigasi to perform authenticated login instead of anonymous login

to the XMPP server, you can set the following properties.

org.jitsi.jigasi.xmpp.acc.USER_ID=SOME_USER@SOME_DOMAIN

org.jitsi.jigasi.xmpp.acc.PASS=SOME_PASS

org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false

If you want to use the SIP user part of the incoming/outgoing call SIP URI

you can set the following property to true.

org.jitsi.jigasi.USE_SIP_USER_AS_XMPP_RESOURCE=true

Activate this property if you are using self-signed certificates or other

type of non-trusted certicates. In this mode your service trust in the

remote certificates always.

net.java.sip.communicator.service.gui.ALWAYS_TRUST_MODE_ENABLED=true

Enable this property to be able to shutdown gracefully jigasi using

a rest command

org.jitsi.jigasi.ENABLE_REST_SHUTDOWN=true

Options regarding Transcription. Read the README for a detailed description

about each property

#org.jitsi.jigasi.ENABLE_TRANSCRIPTION=false
#org.jitsi.jigasi.ENABLE_SIP=true

whether to use the more expensive, but better performing

“video” model when doing transcription

org.jitsi.jigasi.transcription.USE_VIDEO_MODEL = false

delivering final transcript

org.jitsi.jigasi.transcription.DIRECTORY=/var/lib/jigasi/transcripts

org.jitsi.jigasi.transcription.BASE_URL=http://localhost/

org.jitsi.jigasi.transcription.jetty.port=-1

org.jitsi.jigasi.transcription.ADVERTISE_URL=false

save formats

org.jitsi.jigasi.transcription.SAVE_JSON=false

org.jitsi.jigasi.transcription.SAVE_TXT=true

send formats

org.jitsi.jigasi.transcription.SEND_JSON=true

org.jitsi.jigasi.transcription.SEND_TXT=false

translation

org.jitsi.jigasi.transcription.ENABLE_TRANSLATION=false

record audio. Currently only wav format is supported

org.jitsi.jigasi.transcription.RECORD_AUDIO=false

org.jitsi.jigasi.transcription.RECORD_AUDIO_FORMAT=wav

execute one or more scripts when a transcript or recording is saved

org.jitsi.jigasi.transcription.EXECUTE_SCRIPTS=true

org.jitsi.jigasi.transcription.SCRIPTS_TO_EXECUTE_LIST_SEPARATOR=","

org.jitsi.jigasi.transcription.SCRIPTS_TO_EXECUTE_LIST=script/example_handle_transcript_directory.sh

properties for optionally sending statistics to a DataDog server

#org.jitsi.ddclient.prefix=jitsi.jigasi
#org.jitsi.ddclient.host=localhost
#org.jitsi.ddclient.port=8125

sip health checking

Enables sip health checking by specifying a number/uri to call

the target just needs to auto-connect the call play some audio,

the call must be established for less than 10 seconds

org.jitsi.jigasi.HEALTH_CHECK_SIP_URI=healthcheck

The interval between healthcheck calls, by default is 5 minutes

org.jitsi.jigasi.HEALTH_CHECK_INTERVAL=300000

The timeout of healthcheck, if there was no successful health check for

10 minutes (default value) we consider jigasi unhealthy

org.jitsi.jigasi.HEALTH_CHECK_TIMEOUT=600000