jigasi: add jigasi support for SIP audio calls
This commit is contained in:
10
jigasi/Dockerfile
Normal file
10
jigasi/Dockerfile
Normal file
@@ -0,0 +1,10 @@
|
||||
FROM jitsi/base-java
|
||||
|
||||
RUN \
|
||||
apt-dpkg-wrap apt-get update && \
|
||||
apt-dpkg-wrap apt-get install -y jigasi && \
|
||||
apt-cleanup
|
||||
|
||||
COPY rootfs/ /
|
||||
|
||||
VOLUME /config
|
||||
4
jigasi/Makefile
Normal file
4
jigasi/Makefile
Normal file
@@ -0,0 +1,4 @@
|
||||
build:
|
||||
docker build $(BUILD_ARGS) -t jitsi/jigasi .
|
||||
|
||||
.PHONY: build
|
||||
18
jigasi/rootfs/defaults/logging.properties
Normal file
18
jigasi/rootfs/defaults/logging.properties
Normal file
@@ -0,0 +1,18 @@
|
||||
handlers= java.util.logging.ConsoleHandler
|
||||
|
||||
java.util.logging.ConsoleHandler.level = ALL
|
||||
java.util.logging.ConsoleHandler.formatter = net.java.sip.communicator.util.ScLogFormatter
|
||||
|
||||
net.java.sip.communicator.util.ScLogFormatter.programname=Jigasi
|
||||
|
||||
.level=INFO
|
||||
net.sf.level=SEVERE
|
||||
net.java.sip.communicator.plugin.reconnectplugin.level=FINE
|
||||
org.ice4j.level=SEVERE
|
||||
org.jitsi.impl.neomedia.level=SEVERE
|
||||
|
||||
# Do not worry about missing strings
|
||||
net.java.sip.communicator.service.resources.AbstractResourcesService.level=SEVERE
|
||||
|
||||
#net.java.sip.communicator.service.protocol.level=ALL
|
||||
|
||||
93
jigasi/rootfs/defaults/sip-communicator.properties
Normal file
93
jigasi/rootfs/defaults/sip-communicator.properties
Normal file
@@ -0,0 +1,93 @@
|
||||
net.java.sip.communicator.impl.protocol.SingleCallInProgressPolicy.enabled=false
|
||||
|
||||
# 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=false
|
||||
|
||||
# SIP account
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1=acc1
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.ACCOUNT_UID=SIP\:{{ .Env.JIGASI_SIP_URI }}
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.PASSWORD={{ .Env.JIGASI_SIP_PASSWORD | b64enc }}
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.PROTOCOL_NAME=SIP
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.SERVER_ADDRESS={{ .Env.JIGASI_SIP_SERVER }}
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.USER_ID={{ .Env.JIGASI_SIP_URI }}
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.KEEP_ALIVE_INTERVAL=25
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.KEEP_ALIVE_METHOD=OPTIONS
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.VOICEMAIL_ENABLED=false
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.JITSI_MEET_ROOM_HEADER_NAME=X-Room-Name
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.JITSI_MEET_DOMAIN_BASE_HEADER_NAME=X-Domain-Base
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.AMR-WB/16000=750
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.G722/8000=700
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.GSM/8000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.H263-1998/90000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.H264/90000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMA/8000=600
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMU/8000=650
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.SILK/12000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.SILK/16000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.SILK/24000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.SILK/8000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.VP8/90000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.iLBC/8000=10
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.opus/48000=1000
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.red/90000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.speex/16000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.speex/32000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.speex/8000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.telephone-event/8000=1
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.ulpfec/90000=0
|
||||
net.java.sip.communicator.impl.protocol.sip.acc1.OVERRIDE_ENCODINGS=true
|
||||
|
||||
# XMPP account used for control
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1=acc1
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.ACCOUNT_UID=Jabber:{{ .Env.JIGASI_XMPP_USER }}@{{ .Env.XMPP_AUTH_DOMAIN }}
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.USER_ID={{ .Env.JIGASI_XMPP_USER }}@{{ .Env.XMPP_AUTH_DOMAIN }}
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.IS_SERVER_OVERRIDDEN=true
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.SERVER_ADDRESS={{ .Env.XMPP_SERVER }}
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.PASSWORD={{ .Env.JIGASI_XMPP_PASSWORD | b64enc }}
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.AUTO_GENERATE_RESOURCE=true
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.RESOURCE_PRIORITY=30
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.IS_CARBON_DISABLED=true
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.DEFAULT_ENCRYPTION=true
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.IS_USE_ICE=true
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.IS_ACCOUNT_DISABLED=false
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.IS_PREFERRED_PROTOCOL=false
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.AUTO_DISCOVER_JINGLE_NODES=false
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.PROTOCOL=Jabber
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.IS_USE_UPNP=false
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.USE_DEFAULT_STUN_SERVER=true
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.ENCRYPTION_PROTOCOL.DTLS-SRTP=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.ENCRYPTION_PROTOCOL_STATUS.DTLS-SRTP=true
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.VIDEO_CALLING_DISABLED=true
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.OVERRIDE_ENCODINGS=true
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.G722/8000=705
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.GSM/8000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.H263-1998/90000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.H264/90000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.PCMA/8000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.PCMU/8000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.SILK/12000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.SILK/16000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.SILK/24000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.SILK/8000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.VP8/90000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.iLBC/8000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.opus/48000=750
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.speex/16000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.speex/32000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.speex/8000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.Encodings.telephone-event/8000=0
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.BREWERY={{ .Env.JIGASI_BREWERY_MUC }}@{{ .Env.XMPP_INTERNAL_MUC_DOMAIN }}
|
||||
net.java.sip.communicator.impl.protocol.jabber.acc1.DOMAIN_BASE={{ .Env.XMPP_DOMAIN }}
|
||||
|
||||
org.jitsi.jigasi.BREWERY_ENABLED=true
|
||||
|
||||
org.jitsi.jigasi.xmpp.acc.IS_SERVER_OVERRIDDEN=true
|
||||
org.jitsi.jigasi.xmpp.acc.SERVER_ADDRESS={{ .Env.XMPP_SERVER }}
|
||||
|
||||
# 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
|
||||
9
jigasi/rootfs/etc/cont-init.d/10-config
Normal file
9
jigasi/rootfs/etc/cont-init.d/10-config
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
|
||||
if [[ ! -f /config/sip-communicator.properties ]]; then
|
||||
tpl /defaults/sip-communicator.properties > /config/sip-communicator.properties
|
||||
fi
|
||||
|
||||
if [[ ! -f /config/logging.properties ]]; then
|
||||
cp /defaults/logging.properties /config
|
||||
fi
|
||||
9
jigasi/rootfs/etc/services.d/jigasi/run
Normal file
9
jigasi/rootfs/etc/services.d/jigasi/run
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
|
||||
JAVA_SYS_PROPS="-Djava.util.logging.config.file=/config/logging.properties"
|
||||
|
||||
DAEMON=/usr/share/jigasi/jigasi.sh
|
||||
DAEMON_OPTS="--nocomponent=true --configdir=/ --configdirname=config --min-port=$JIGASI_PORT_MIN --max-port=$JIGASI_PORT_MAX"
|
||||
|
||||
exec s6-setuidgid jigasi /bin/bash -c "JAVA_SYS_PROPS=\"$JAVA_SYS_PROPS\" exec $DAEMON $DAEMON_OPTS"
|
||||
|
||||
Reference in New Issue
Block a user