This page (revision-76) was last changed on 19-Mar-2022 23:42 by Christoph S.

This page was created on 25-Apr-2020 22:51 by Christoph S.

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
76 19-Mar-2022 23:42 26 KB Christoph S. to previous
75 22-Apr-2021 12:50 26 KB jitsi_meet to previous | to last
74 25-Jan-2021 23:20 26 KB Christoph S. to previous | to last
73 25-Jan-2021 23:20 26 KB Christoph S. to previous | to last
72 25-Jan-2021 23:13 26 KB Christoph S. to previous | to last
71 19-Jan-2021 00:23 26 KB Christoph S. to previous | to last
70 18-Jan-2021 22:51 25 KB Christoph S. to previous | to last
69 08-Jan-2021 13:36 24 KB Christoph S. to previous | to last
68 08-Jan-2021 13:36 24 KB Christoph S. to previous | to last
67 08-Jan-2021 13:30 23 KB Christoph S. to previous | to last
66 08-Jan-2021 13:24 23 KB Christoph S. to previous | to last
65 07-Jan-2021 07:26 22 KB Christoph S. to previous | to last
64 07-Jan-2021 07:20 22 KB Christoph S. to previous | to last
63 06-Jan-2021 19:34 22 KB Christoph S. to previous | to last
62 06-Jan-2021 19:19 21 KB Christoph S. to previous | to last
61 30-Dec-2020 17:10 21 KB Christoph S. to previous | to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 144 added 131 lines
!!! Telefoneinwahl
Setup: Sipgate Basic, Asterisk, Jigasi, ConferenceMapper
Schematischer Ablauf: Eine Jitsi-Konferenz wird per Browser aufgemacht. Dabei ruft der Webclient den ConferenceMapper auf und dieser liefert eine 6-stellige Nummer zum Raumnamen. Diese wird dann auch im Jitsi-Info-Dialog nach der Einwahlnummer angezeigt. Ein weiterer Teilnehmer ruft die Sipgate-Basic-Numme an. Der Anruf kommt bei Asterisk an. Asterisk nimmt den Anruf entgegen und fragt per DTMF die "Konferenz-PIN" ab, schlägt den Raumnamen im ConferenceMapper nach, fügt dann den SIP-Header Jitsi-Conference-Room: mit dem Raumnamen hinzu und ruft bei der Jigasi-Gegenstelle an. Wenn Jigasi den Anruf entgegennimmt, stellt Asterisk die VoIP-RTP-Sprachverbindung direkt zwischen Sipgate und Jigasi her. Jigasi selbst nimmt erfährt dann via XMPP die Videobridge-Details und stellt seinerseits eine Verbindung zur Videobridge her, über die dann die Audiokommunikation läuft.
Zusammengefasst: Asterisk und der ConferenceMapper übernehmen nur Signaling-Funktionen und sind an der eigentlichen Sprachverbindung nicht beteiligt, Jigasi ist als "RTP <-> WebRTC-Proxy" Teil der Audiokette.
Die Anleitung basiert auf https://doku.jgz-energie.net/jitsi-meet/#telefoneinwahl und dem "Hello World"-Kapitel des deutschen Askterisk-Buchs http://das-asterisk-buch.de/1.6/installation-einleitung.html
!! Setup Asterisk
Ubuntu Server 20.04, Asterisk installieren, default-Konfiguration löschen
{{{
apt install asterisk
rm /etc/asterisk/sip.conf
rm /etc/asterisk/extensions*
}}}
/etc/asterisk/sip.conf, aaaa ist Sipgate User, bbbb Sipgate Passwort, cccc ist Jigasi-SIP-Passwort, d.d.d.d ist die öffentliche IP-Adresse des Jigasi-Servers.
{{{
[general]
port=5060
bindaddr=0.0.0.0
language=de
deny=0.0.0.0/0.0.0.0
permit=d.d.d.d/255.255.255.255
allowguest=no
register => aaaa:bbbb@sipgate.de/aaaa
[ext-sip-account]
type=friend
context=von-voip-provider
username=aaaa
fromuser=aaaa
secret=bbbb
host=sipgate.de
fromdomain=sipgate.de
qualify=yes
insecure=port,invite
nat=yes
disallow=all
allow=alaw
[2000]
type=friend
context=meine-telefone
secret=cccc
host=dynamic
disallow=all
allow=alaw
}}}
extensions.conf, aaaa ist Sipgate User, https://e.e.e/conferenceMapper ist die Adresse des ConferenceMappers (siehe unten)
{{{
[default]
[von-voip-provider]
exten => aaaa,1,Answer()
same => n,Read(confid,conf-getpin&astcc-followed-by-pound)
same => n,Set(CURL_RESULT=${SHELL(curl --silent https://e.e.e/conferenceMapper?id=${confid} | sed -e 's/.*"conference":"\(.*\)@.*/\1/')})
same => n,Verbose(0, ${CURL_RESULT});
same => n,SIPAddHeader(Jitsi-Conference-Room:${CURL_RESULT})
same => n,Set(CDR(userfield)=Jitsi:${CURL_RESULT})
same => n,Dial(SIP/2000,3)
same => n,Verbose(0, Contacting Jigasi... Status is ${DIALSTATUS} );
same => n,GotoIf($["${DIALSTATUS}" = "BUSY"]?unknown)
same => n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?conf-busy)
same => n,GotoIf($["${DIALSTATUS}" = "CANCEL"]?unknown)
same => n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?unknown)
same => n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?unknown)
same => n,GotoIf($["${DIALSTATUS}" = "DONTCALL"]?unknown)
same => n,GotoIf($["${DIALSTATUS}" = "TORTURE"]?unknown)
same => n,GotoIf($["${DIALSTATUS}" = "INVALIDARGS"]?unknown)
same => n,Hangup()
same => n(conf-busy),Playback(confbridge-begin-leader)
same => n,Dial(SIP/2000,120)
}}}
!! Setup Jigasi
Jigasi installieren
{{{
apt install jigasi
}}}
Bei der Installation wird nach Jigasi-SIP-User und Passwort gefragt.
Jigasi-SIP-User ist 2000@<IP-Asterisk>
Jigasi-Passwort cccc aus Asterisk-Konfiguration oben
In der Jigasi-Konfiguration {{{/etc/jitsi/jigasi/sip-communicator.properties}}} auf jeden Fall das Packet-Logging deaktivieren:
{{{
net.java.sip.communicator.packetlogging.PACKET_LOGGING_ENABLED=false
}}}
Die Standard-Konfiguration von Jigasi geht davon aus, dass der Jitsi-Prosody auf dem selben Host installiert ist. Wenn das Im Cluster-Setup nicht so ist, dann:
in {{{/etc/jitsi/jigasi/config}}} JIGASI_HOSTNAME und JIGASI_HOST auf den Prosody-Host setzen. In {{{/etc/jitsi/jigasi/sip-communicator.properties}}} die org.jitsi.jigasi.xmpp.acc.SERVER_ADDRESS auf den Prosody-Host setzen.
!! Setup ConferenceMapper
ConferenceMapper von https://github.com/luki-ev/conferencemapper installieren und konfigurieren.
Die resultierende URL dann noch in der Asterisk-Konfiguration /etc/asterisk/extentions.conf hinterlegen.
Eine statische Datei mit den Einwahlnummern unter https://meet.example.com/numbers.json via nginx verfügbar machen:
{{{
location = /numbers.json {
alias /etc/jitsi/meet/numbers.json;
}
}}}
Inhalt von /etc/jitsi/meet/numbers.json, FFFF/FFFF durch Sipgate Basic-Festnetznummer ersetzen:
{{{
{"message":"Einwahlnummbern","numbers":{"DE":["FFFF/FFFF"]},"numbersEnabled":true}
}}}
!! Setup Jitsi-Meet
Audio-Konfiguration in Jitsi-Meet config.js aktivieren:
{{{
dialInNumbersUrl: 'https://meet.example.org/numbers.json',
dialInConfCodeUrl: 'https://meet.example.org/conferenceMapper',
}}}