Skip to content

Commit

Permalink
jigate: add user registration
Browse files Browse the repository at this point in the history
  • Loading branch information
wfleischer committed May 16, 2023
1 parent 003c72f commit e71fe78
Show file tree
Hide file tree
Showing 8 changed files with 95 additions and 61 deletions.
29 changes: 14 additions & 15 deletions jigate.env
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
# Environment variables
# Add them to your docker-jitsi-meet .env file to change the default settings
# JIGASI_SIP_PASSWORD, JIGATE_ESL_PASSWORD and JIGATE_SIP_PASSWORD are mandatory
# JIGASI_SIP_PASSWORD, JIGATE_ESL_PASSWORD and JIGATE_REGISTRATION_PASSWORD are mandatory

#
# Jigasi configuration
#
JIGASI_SIP_PASSWORD=
# JIGASI_SIP_SERVER=jigate.meet.jitsi
# JIGASI_SIP_PORT=5070

#
# Jigate configuration
#
JIGATE_ESL_PASSWORD=
#JIGATE_SERVER=jigate.meet.jitsi
JIGATE_SIP_PASSWORD=
#JIGATE_SIP_USERNAME=jigate
#JIGATE_SIP_SERVER=sipgw.meet.jitsi

#
# SIP Gateway configuration
#
#SIPGW_EXTERNAL_IP=127.0.0.1
#SIPGW_INTERNAL_IP=interface:ipv4/eth1
#SIPGW_EXTERNAL_SIP_PORT=5060
#SIPGW_RTP_END_PORT=20250
#SIPGW_RTP_START_PORT=20200
#SIPGW_USER_PASSWORD=
# JIGATE_EXTERNAL_IP=127.0.0.1
# JIGATE_EXTERNAL_SIP_PORT=5060
# JIGATE_INTERNAL_IP=interface:ipv4/eth1
# JIGATE_REGISTRATION_PASSWORD=
# JIGATE_REGISTRATION_USERNAME=user
# JIGATE_RTP_END_PORT=20250
# JIGATE_RTP_START_PORT=20200
# SIPGW_SIP_DOMAIN=meet.jitsi
# SIPGW_SIP_PASSWORD
# SIPGW_SIP_PORT=5060
# SIPGW_SIP_SERVER=sipgw.meet.jitsi
# SIPGW_SIP_USERNAME=jigate
29 changes: 23 additions & 6 deletions jigate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,42 @@ services:
jigate:
image: jigate/jigate:latest
restart: ${RESTART_POLICY:-unless-stopped}
ports:
- '${JIGATE_EXTERNAL_SIP_PORT:-5060}:${JIGATE_EXTERNAL_SIP_PORT:-5060}/udp'
- '${JIGATE_RTP_START_PORT:-20200}-${JIGATE_RTP_END_PORT:-20250}:${JIGATE_RTP_START_PORT:-20200}-${JIGATE_RTP_END_PORT:-20250}/udp'
volumes:
- ../jigate/jigate/etc/freeswitch:/etc/freeswitch
- ../jigate/jigate/usr/share/freeswitch/sounds:/usr/share/freeswitch/sounds
environment:
- JIGASI_SIP_PASSWORD
- JIGATE_ESL_PASSWORD
- JIGATE_SIP_PASSWORD
- JIGATE_SIP_PORT=${JIGATE_SIP_PORT:-5060}
- JIGATE_SIP_DOMAIN=${JIGATE_SIP_DOMAIN:-meet.jitsi}
- JIGATE_SIP_SERVER=${JIGATE_SIP_SERVER:-sipgw.meet.jitsi}
- JIGATE_SIP_USERNAME=${JIGATE_SIP_USERNAME:-jigate}
- JIGATE_EXTERNAL_IP=${JIGATE_EXTERNAL_IP:-127.0.0.1}
- JIGATE_EXTERNAL_SIP_PORT=${JIGATE_EXTERNAL_SIP_PORT:-5060}
- JIGATE_INTERNAL_IP=${JIGATE_INTERNAL_IP:-interface:ipv4/eth1}
- JIGATE_INTERNAL_SIP_PORT=${JIGASI_SIP_PORT:-5060}
- JIGATE_REGISTRATION_PASSWORD
- JIGATE_REGISTRATION_USERNAME=${JIGATE_REGISTRATION_USER:-user}
- JIGATE_RTP_END_PORT=${JIGATE_RTP_END_PORT:-20250}
- JIGATE_RTP_START_PORT=${JIGATE_RTP_START_PORT:-20200}
- LOG_LEVEL=${LOG_LEVEL:-info}
- SIPGW_SIP_DOMAIN=${SIPGW_SIP_DOMAIN:-meet.jitsi}
- SIPGW_SIP_PASSWORD
- SIPGW_SIP_PORT=${SIPGW_SIP_PORT:-5060}
- SIPGW_SIP_SERVER=${SIPGW_SIP_SERVER:-sipgw.meet.jitsi}
- SIPGW_SIP_USERNAME=${SIPGW_SIP_USERNAME:-jigate}
networks:
jigate:
aliases:
- jigate
- ${JIGASI_SIP_SERVER:-jigate.meet.jitsi}
meet.jitsi:
aliases:
- ${JIGASI_SIP_SERVER:-jigate.meet.jitsi}

jigatecon:
image: jigate/jigatecon:latest
restart: ${RESTART_POLICY:-unless-stopped}
volumes:
- ../jigate:/home/node/jigatecon
environment:
- [email protected]
- JIGATE_ESL_PASSWORD
Expand All @@ -38,6 +54,7 @@ services:
jigasi:
environment:
- JIGASI_SIP_SERVER=${JIGASI_SIP_SERVER:-jigate.meet.jitsi}
- JIGASI_SIP_PORT=${JIGASI_SIP_PORT:-5060}
- [email protected]
depends_on:
- jigate
Expand Down
6 changes: 3 additions & 3 deletions jigate/etc/freeswitch/autoload_configs/console.conf.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<configuration name="console.conf" description="Console Logger">
<settings>
<param name="colorize" value="true"/>
<param name="loglevel" value="$${loglevel}"/>
<param name="log_event" value="$${loglevel}"/>
<param name="all" value="$${loglevel}"/>
<param name="loglevel" value="$${log_level}"/>
<param name="log_event" value="$${log_level}"/>
<param name="all" value="$${log_level}"/>
</settings>
<mappings>
<map name="all" value="console,debug,info,notice,warning,err,crit,alert"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<param name="nat-map" value="false"/>
<param name="listen-ip" value="0.0.0.0"/>
<param name="listen-port" value="8021"/>
<param name="password" value="$${event_socket_password}"/>
<param name="password" value="$${jigate_esl_password}"/>
<param name="apply-inbound-acl" value="rfc1918.auto"/>
<param name="stop-on-bind-error" value="true"/>
</settings>
Expand Down
27 changes: 16 additions & 11 deletions jigate/etc/freeswitch/autoload_configs/sofia.conf.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<configuration name="sofia.conf" description="sofia Endpoint">
<global_settings>
<param name="auth-calls" value="true"/>
<param name="auth-all-packets" value="false"/>
<param name="auth-all-packets" value="true"/>
<param name="challenge-realm" value="auto_from"/>
<param name="debug" value="0"/>
<param name="debug-presence" value="0"/>
Expand All @@ -18,27 +18,31 @@
<param name="rfc2833-pt" value="101"/>
<param name="rtp-timer-name" value="soft"/>
<param name="tls" value="false"/>
<param name="user-agent-string" value="Jigasi Freeswitch gateway"/>
<param name="user-agent-string" value="Jigate"/>
</global_settings>
<profiles>
<profile name="sipgw">
<settings>
<param name="context" value="public"/>
<param name="sip-trace" value="yes"/>
<param name="sip-ip" value="interface:ipv4/eth0"/>
<param name="rtp-ip" value="interface:ipv4/eth0"/>
<param name="local-network-acl" value="rfc1918.auto"/>
<param name="sip-port" value="$${jigate_external_sip_port}"/>
<param name="ext-sip-ip" value="$${jigate_external_ip}"/>
<param name="ext-rtp-ip" value="$${jigate_external_ip}"/>
<param name="local-network-acl" value="none"/>
<param name="enable-compact-headers" value="true"/>
<param name="multiple-registrations" value="contact"/>
<param name="caller-id-type" value="pid"/>
<param name="disable-transcoding" value="false"/>
<param name="inbound-late-negotiation" value="true"/>
<param name="inherit_codec" value="true"/>
</settings>

<gateways>
<gateway name="sipgw">
<param name="proxy" value="$${sipgw_server}:$${sipgw_port}"/>
<param name="from-domain" value="$${sipgw_domain}"/>
<param name="username" value="$${sipgw_username}"/>
<param name="password" value="$${sipgw_password}"/>
<param name="proxy" value="$${sipgw_sip_server}:$${sipgw_sip_port}"/>
<param name="from-domain" value="$${sipgw_sip_domain}"/>
<param name="username" value="$${sipgw_sip_username}"/>
<param name="password" value="$${sipgw_sip_password}"/>
<param name="expire-seconds" value="60"/>
<param name="extension-in-contact" value="true"/>
<param name="caller-id-in-from" value="true"/>
Expand All @@ -53,8 +57,9 @@
<settings>
<param name="context" value="default"/>
<param name="sip-trace" value="yes"/>
<param name="sip-ip" value="interface:ipv4/eth1"/>
<param name="rtp-ip" value="interface:ipv4/eth1"/>
<param name="sip-port" value="$${jigate_internal_sip_port}"/>
<param name="sip-ip" value="$${jigate_internal_ip}"/>
<param name="rtp-ip" value="$${jigate_internal_ip}"/>
<param name="local-network-acl" value="rfc1918.auto"/>
<param name="disable-transcoding" value="false"/>
<param name="inbound-late-negotiation" value="true"/>
Expand Down
6 changes: 3 additions & 3 deletions jigate/etc/freeswitch/autoload_configs/switch.conf.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
<param name="colorize-console" value="true"/>
<param name="max-sessions" value="1000"/>
<param name="sessions-per-second" value="30"/>
<param name="loglevel" value="$${loglevel}"/>
<param name="loglevel" value="$${log_level}"/>
<param name="dump-cores" value="yes"/>
<param name="rtp-enable-zrtp" value="false"/>
<param name="rtp-start-port" value="20000"/>
<param name="rtp-end-port" value="29998"/>
<param name="rtp-start-port" value="$${jigate_rtp_start_port}"/>
<param name="rtp-end-port" value="$${jigate_rtp_end_port}"/>
<param name="max-audio-channels" value="1"/>
<!-- Have RECV_INFO events include custom channel variables. -->
<param name="verbose-channel-events" value="yes"/>
Expand Down
30 changes: 18 additions & 12 deletions jigate/etc/freeswitch/directory/directory.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
<domain name="meet.jitsi">
<groups>
<group name="200">
<users>
<user id="jigasi">
<params>
<param name="password" value="$${jigasi_password}" />
<param name="dial-string" value="${sofia_contact(${dialed_user}@${dialed_domain})}"/>
</params>
</user>
</users>
</group>
</groups>
<params>
<param name="dial-string" value="${sofia_contact(${dialed_user}@${dialed_domain})}"/>
</params>
<users>
<user id="$${jigate_registration_username}">
<params>
<param name="password" value="$${jigate_registration_password}"/>
</params>
<variables>
<variable name="sip-force-contact" value="NDLB-connectile-dysfunction-2.0"/>
</variables>
</user>
<user id="jigasi">
<params>
<param name="password" value="$${jigasi_sip_password}" />
</params>
</user>
</users>
</domain>
27 changes: 17 additions & 10 deletions jigate/etc/freeswitch/freeswitch.xml
Original file line number Diff line number Diff line change
@@ -1,17 +1,24 @@
<?xml version="1.0"?>
<document type="freeswitch/xml">
<X-PRE-PROCESS cmd="env-set" data="event_socket_password=$JIGATE_ESL_PASSWORD"/>
<X-PRE-PROCESS cmd="env-set" data="jigasi_password=$JIGASI_SIP_PASSWORD"/>
<X-PRE-PROCESS cmd="env-set" data="loglevel=$LOG_LEVEL"/>
<X-PRE-PROCESS cmd="env-set" data="sipgw_domain=$JIGATE_SIP_DOMAIN"/>
<X-PRE-PROCESS cmd="env-set" data="sipgw_password=$JIGATE_SIP_PASSWORD"/>
<X-PRE-PROCESS cmd="env-set" data="sipgw_port=$JIGATE_SIP_PORT"/>
<X-PRE-PROCESS cmd="env-set" data="sipgw_server=$JIGATE_SIP_SERVER"/>
<X-PRE-PROCESS cmd="env-set" data="sipgw_username=$JIGATE_SIP_USERNAME"/>
<X-PRE-PROCESS cmd="env-set" data="jigasi_sip_password=$JIGASI_SIP_PASSWORD"/>
<X-PRE-PROCESS cmd="env-set" data="jigate_esl_password=$JIGATE_ESL_PASSWORD"/>
<X-PRE-PROCESS cmd="env-set" data="jigate_external_ip=$JIGATE_EXTERNAL_IP"/>
<X-PRE-PROCESS cmd="env-set" data="jigate_external_sip_port=$JIGATE_EXTERNAL_SIP_PORT"/>
<X-PRE-PROCESS cmd="env-set" data="jigate_internal_ip=$JIGATE_INTERNAL_IP"/>
<X-PRE-PROCESS cmd="env-set" data="jigate_internal_sip_port=$JIGATE_INTERNAL_SIP_PORT"/>
<X-PRE-PROCESS cmd="env-set" data="jigate_registration_password=$JIGATE_REGISTRATION_PASSWORD"/>
<X-PRE-PROCESS cmd="env-set" data="jigate_registration_username=$JIGATE_REGISTRATION_USERNAME"/>
<X-PRE-PROCESS cmd="env-set" data="jigate_rtp_end_port=$JIGATE_RTP_END_PORT"/>
<X-PRE-PROCESS cmd="env-set" data="jigate_rtp_start_port=$JIGATE_RTP_START_PORT"/>
<X-PRE-PROCESS cmd="env-set" data="log_level=$LOG_LEVEL"/>
<X-PRE-PROCESS cmd="env-set" data="sipgw_sip_domain=$SIPGW_SIP_DOMAIN"/>
<X-PRE-PROCESS cmd="env-set" data="sipgw_sip_password=$SIPGW_SIP_PASSWORD"/>
<X-PRE-PROCESS cmd="env-set" data="sipgw_sip_port=$SIPGW_SIP_PORT"/>
<X-PRE-PROCESS cmd="env-set" data="sipgw_sip_server=$SIPGW_SIP_SERVER"/>
<X-PRE-PROCESS cmd="env-set" data="sipgw_sip_username=$SIPGW_SIP_USERNAME"/>

<X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,G722,SPEEX,PCMU,PCMA,GSM"/>
<X-PRE-PROCESS cmd="set"
data="outbound_codec_prefs=OPUS,G722,SPEEX,PCMU,PCMA,GSM"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,G722,SPEEX,PCMU,PCMA,GSM"/>

<section name="configuration" description="Various Configuration">
<X-PRE-PROCESS cmd="include" data="autoload_configs/*.xml"/>
Expand Down

0 comments on commit e71fe78

Please sign in to comment.