Tutorial - Jitsi / Jigasi & FreePBX integration. Along with Asterisk IVR to use Jitsi conference mapper API

Having an issue I can’t figure out,

The numbers shows on our meetings when accessing the jitsi server internally (from a PC on the LAN), but they do not appear when accessing jitsi from an external PC (on the internet to the public IP)

Any ideas? I followed the tutorial to a T and have my webserver on my freePBX server. I’m doing a basic one-one NAT

EDIT - Of course as soon as I post I figure it out, just needed https: access

Now I cant get Jigasi to register SIP, it comes up as “UNKNOWN” in the CLI?

Is the webserver serving the numberlist.php accessible to the outside world? Your browser is the one requesting the display of the numbers… The jitsi webserver does not serve or pull the information from your webserver and proxy it out.

if the server displaying the numberlist.php is not accessible to the outside world, the client/participant cannot see the phone numbers to display.

Check the ports and the proxy information configuration on Jigasi. Ensure that on the freepbx, the extension is configured as chan_sip.

Hey zeighy,

Thanks for replying, I got this figured out late last night,

For the webserver I just needed to generate an SSL certificate and enable https. This made the call-in information appear immediately for external users.

For my SIP registration woes, I re-installed jigasi and noticed that it encodes the password (I replaced it at one point), once I figured out it encodes the password in base64 I just encoded my desired password and put it in both the “config” and the “sip-properties” files and it registered immediately after restarting the jigasi service.

The system is now working great, thanks!

1 Like

Thank you friend!

I have an old instance of jitsi working well with jigasi and my sl st.

When installing a new server with updates I had the problem reported and I believe that everyone will have it. The SIP connection goes down in the lobby and it seems that the system is unable to get you into the room (ask the host for permission).

The solution is to forward to @ conference.meet.domain as you indicated.

1 Like

I’m so close I could cry. I can’t get the phone numbers and conf info to display (and I can’t find an error)

I have my PBX in on my local network and the jitsi server is on Digital Ocean. I have a third server doing email at

on the jitsi server, extension 444 registers and talks happily on siptest - no problem.
I’ve followed the directions and added the two lines:
dialInNumbersUrl: ‘https://mail.mailserver.com/jitsiNumberList.php’,
dialInConfCodeUrl: ‘https://jitsi-api.jitsi.net/conferenceMapper’,

On I have (I believe) CORS enabled in nginx and the two files residing. I added CORS to
/etc/nginx/sites-enabled/00-default-ssl.conf as I don’t know what I’m doing and my nginx.conf file is virtually empty

I added
add_header ‘Access-Control-Allow-Origin’ ‘https://meet.myjitsiserver.com’;
and restarted nginx (no errors).

When I type https://mail.mailserver.com/jitsiNumberList.php in a browser I get the file shown in a window. When I inspect headers I see in ‘Response Headers’

  1. Access-Control-Allow-Origin: https://meet.myjitsiserver.com
  2. Connection: keep-alive
  3. Content-Encoding: gzip
  4. Content-Type: application/json
  5. Date: Tue, 15 Sep 2020 19:12:27 GMT
  6. Server: nginx
  7. Transfer-Encoding: chunked
  8. Vary: Accept-Encoding

So that seems to be working. But no display/no info when I copy to clipboard (other than meet.myjitsiserver.com/siptest (or whatever room I’m in).

My /etc/nginx/sites-enabled/00-default-ssl.conf file reads

server {
listen 443 ssl;
listen [::]:443 ssl;
server_name _;

root /var/www/html;
index index.php index.html;

include /etc/nginx/templates/misc.tmpl;
include /etc/nginx/templates/ssl.tmpl;
include /etc/nginx/templates/iredadmin.tmpl;
include /etc/nginx/templates/roundcube.tmpl;
include /etc/nginx/templates/sogo.tmpl;
include /etc/nginx/templates/netdata.tmpl;
include /etc/nginx/templates/php-catchall.tmpl;
include /etc/nginx/templates/stub_status.tmpl;
add_header 'Access-Control-Allow-Origin' 'https://meet.myjitsiserver.com';

What should I look at? What can I change?
The extension should have been the hard part .


    location = /jitsiNumberList.php
       add_header 'Access-Control-Allow-Origin' '*';

       alias /etc/jitsi/meet/jitsiNumberList.php;

Something like that should work

Thanks for jumping in.
Adding that line to my 00-default-ssl.conf allows me to restart nginx without error.
It doesn’t fix the problem, and when I attempt to test the php from a browser I get a 404 Not Found error. If I remove your text from my file it works in a browser (but obviously still not in jitsi).

Is this a jitsi side problem, or still dealing with the json.php being correctly recognized (ie web server side)? I thought my ‘fix’ above DID enable CORS.

Does it matter WHERE in the meet.myjitsiserver.com-config.js file I put the URL commands? I have them just after the domain and anonymous domain commands and before the line:
muc: ‘conference.meet.myjitsiserver.com


Can you try opening:


does it show a page like this?


No, instead I get:
Sorry, dialing in is currently not supported.



Do you get a 200 code when the page loads the numberslist.php when you inspect the page on Google Chrome (networking tab)?

EDIT: If you do get a 200 code, it means the page is accessible… However, it may be likely that your webserver is not parsing the PHP file correctly to send the correct data to your browser for display.

If you don’t get a 200 code, you have to resolve the issue of being able to successfully load the numberslist.php.

Nope, nope no reference to the two circled lines (no 200 code or anything else).
Is my email server’s nginx not serving the page? It shows up if I type the URL in a browser


Does it show up like this?

(I’m serving mine from our main company website.)

Oh yeah, one more thing I had trouble with:

You will have to paste the edits on your /etc/jitsi/meet/meet.domain.com-config.js file on the right spot.

I pasted mine just right after the branding section:


When it is not placed correctly, the config gets broken or not used.

It was all about the location placement. , it works.

Thank you.

1 Like

hi: this is a interesting jitsi intergration does anyone need specific help with this setup–freepbx +jitsi it can be a delicate configuration.

or do they have a use case they need to test out?

Hello everyone,

i have a problem with plaintext prosody configuration all works.

But when i change to cyrus/sasauth it not works.
What do i have to change to get working again?


Hello, I have the following problem.
Jigasi registers on the FreePBX but the errors appear in the Jigasi log, does anyone have an idea?

2021-01-12 21:59:28.246 SCHWERWIEGEND: [41] org.jitsi.meet.ComponentMain.log() not-authorized, host:localhost, port:5347
org.xmpp.component.ComponentException: not-authorized
at org.jivesoftware.whack.ExternalComponent.connect(ExternalComponent.java:243)
at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:242)
at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:222)
at org.jitsi.meet.ComponentMain.lambda$getConnectCallable$0(ComponentMain.java:285)
at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

Could someone please guide me, how to configure step 8 in vitalpbx, I have tried custom context and application but dialing extension from vital is not triggering custom file.

I am able to join the meeting from vital as long as I hard code the meeting in properties file.