Working configuration for Jitsi/Jigasi with Asterisk/SIP

I know have a working configuration for Jitsi, Jigasi and Asterisk for DialIn with PINs. I had to scrape many different threads here and know that everything I thought it would be a good idea to collect everything in one post. Please feel free to comment, I’ll try to keep the top post updated.

I have everything running on a single Debian 10 server. Phone connectivity is provided by formerly sipgate and now easybell.

Create an endpoint for Jigasi in Asterisk:

type = transport
protocol = udp
bind =

type = auth
auth_type = userpass
password = SUPERSECRET
username = jigasi

type = aor
max_contacts = 1
remove_existing = yes

type = endpoint
transport = transport-jigasi
context = jigasi-in
direct_media = no
disallow = all
allow = g722
allow = speex
allow = gsm
auth = jigasi_auth
aors = jigasi

Handle call and IVR in /etc/asterisk/extensions.conf

; exten => _X.,1,Dial(PJSIP/jigasi,,b(handler^addheader^2))
exten => _X.,1,Playback(hello)
exten => _X.,n,Playback(conf-getconfno)
exten => _X.,n(getmeeting),Read(PIN,beep,12)
exten => _X.,n,Verbose(Result is: ${PIN})
exten => _X.,n,AGI(,${PIN})
exten => _X.,n,Verbose(Result is: ${ROOM})
exten => _X.,n,GotoIf($[ "${ROOM}" == "false" ]?invalidnum:joinmeeting)
exten => _X.,n(invalidnum),Playback(conf-invalid)
exten => _X.,n,Goto(getmeeting)
exten => _X.,n(joinmeeting),Playback(conf-placeintoconf)
exten => _X.,n,Dial(PJSIP/jigasi,,b(sub-headers^caller_handler^1(${ROOM},${PIN})))

exten => caller_handler,1,NoOp(Set Header Jitsi-Conference-Room: ${ARG1} -Pass: ${ARG2})
same => n,GotoIf($[${LEN(${ARG1})} == 0]? 5)
same => n,Set(PJSIP_HEADER(add,Jitsi-Conference-Room)=${ARG1})
same => n,Set(PJSIP_HEADER(add,X-Room-Name)=${ARG1})
same => 5,GotoIf($[${LEN(${ARG2})} != 0]? 10)
same => n,Return()
same => 10,Set(PJSIP_HEADER(add,Jitsi-Conference-Room-Pass)=${ARG2})
same => n,Return()

For /usr/share/asterisk/agi-bin/


jitsi_room=$(curl --silent$1 | cut -d \, -f 3 | cut -d \: -f 2 | cut -d \" -f 2 | cut -d \@ -f 1 | cut -d \} -f 1)
echo "SET VARIABLE ROOM \"${jitsi_room}\" "

Specify DialIn numbers and config in /etc/jitsi/meet/

// To enable sending statistics to you must provide the
// Application ID and Secret.
// callStatsID: '',
// callStatsSecret: '',

// DiaIn Numbers and Codes
dialInNumbersUrl: '',
dialInConfCodeUrl: '',

Add alias for dialin.json to your Apache2 webserver:

Alias "/dialin.json" "/etc/jitsi/meet/dialin.json"
<Location /dialin.json>
  Require all granted

And place dialin.json in /etc/jitsi/meet/dialin.json

{"message":"DialIn numbers:","numbers":{"DE": ["+49-xxx-xxxx-xxxx"]},"numbersEnabled":true}

Configure Jigasi in /etc/jitsi/jigasi/ and don’t forget to encode the passwords to base64 with echo -n SUPERSECRET | base64:\:jigasi@



Linux 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1+deb10u1 (2020-04-27) x86_64 GNU/Linux


jitsi-meet/stable,now 2.0.4548-1
jigasi/stable,now 1.1-107-g6928850-1
asterisk/stable,now 1:16.2.1~dfsg-1+deb10u1

Credits to:


Thanks for all this information. I feel like I can get this working on my Kerio Operator setup with just a little help. Kerio Operator is basically Asterisk with a custom GUI and as such, I have little experience editing Asterisk files directly. Would you be able to answer a couple of questions?

  1. In regards to the first part (where you’re creating the endpoint for Jigasi), what file is the placed in?
  2. For the extensions.conf file IVR stuff, should I be creating a new section or should I be putting this under my existing SIP provider section?

This will get me started to at least test it out.


@ christian.loelkes
Thank you very much. I would like test the configuration.
should I modify “” with my server hostname?

One more question
How does diallin.json file look like?
Kindly can you past an example please?
Thanks is a placeholder and should point to the host with the dialin.json. For me it’s on the same host, the file is served with an apache2 alias. All files are included in the post, you must have missed it.


I’m going a little crazy trying to follow directions since my PBX is on a private lan and the jitsi server is on a public - I’m slowly figuring that out.

My question is, does the dialplan/this configuration ‘figure out’/‘allow for’ multiple concurrent meetings dialed in via the same PBX extension/dial in number?

In other words, if User1 has a meeting called ‘Meeting1’ and User2 has a meeting called ‘Meeting2’ can each user using the SAME dialin number (8005551212) have participants able to go to their meeting (either Meeting1 or Meeting2), or does this setup do something else?

Thanks so much.