Jocofo Reservation rest API error

I have configured my domain to use my rest API for conference reservation.

Using jitsi meet to start the conference results in authentication and then a call to my reservation api. When the rest api returns a Http 200 status code with a json response, everything seems okay.

But, when the rest api returns a 403 status code with a message in the response I get the error - oops, something went wrong and we couldn’t connect to the conference: connection.GET_SESSION_ID_ERROR.

The message that is returned should be displayed, instead of GET_SESSION_ID_ERROR - correct?

Can someone help me with this?

Thanks.

hum, looking at the code don’t show any special handling of 403 http eror code, so I think that you should first check if a Gtihub issue exists, and if not, create one. Well, if there is one already, post the obligatory ‘me too!’ in a comment :slight_smile:

just adding the lines of the log. Is it possible I am doing something wrong?

2020-05-13 19:15:23.928 INFO: [81] org.jitsi.impl.reservation.rest.ApiHandler.createNewConference().134 STATUS CODE: 403
Jicofo 2020-05-13 19:15:23.939 SEVERE: [81] org.jitsi.impl.reservation.rest.RESTReservations.log() API error: ApiError[403](ErrorResponse[e: null, m: my custom error message, conflict: null]@421422595)
Jicofo 2020-05-13 19:15:23.940 INFO: [81] org.jitsi.jicofo.xmpp.FocusComponent.processExtensions().381 Create room result: Result[c=100, msg=my custom error message]@485207784 for test@conference.ec2-xx-xxx-xx-xx.us-west-2.compute.amazonaws.com
Jicofo .

Just want to make sure, before I open an issue that I am not doing something wrong.

THanks for you quick reply

The last part of this line seem to come from

// Other error 
logger.error("API error: " + result);

if you return a 403 I don’t see a clear way that the code could go elsewhere.
I’m not a Jitsi contributor, not even a Java dev, so I’ll not go further. I think that’s probably a question worth the time of this code’s author - still part of Jitsi if I"m not mistaken-, if only to clarify the doc in the case that really it’s user error

Okay. Thank you. Created Github issue.

@Spemmara can you please share some steps for setting up the server for reservation API,
idk what this base url mean, and how to create it or do setup.

org.jitsi.impl.reservation.rest.BASE_URL=http://reservation.example.com

You need to create a Reservation API and replace http://reservation.example.com to a reserveration API url that you created.

Please refer to

When you try to create a meeting, a call is made to your reservation API url/conference.
As mentioned in the above document - “When the first user joins MUC room(Jitsi-meet URL is opened) HTTP POST request is sent to '/conference' endpoint with the following parameters included…”

The above document gives you details on what your reservation API should return to successfully create a meeting. Your reservation API can determine if user is allowed to create a meeting and return appropriate Http status codes.

Hope this helps.

@Spemmara thank you for your reply but i need little more help from you,

as per my current understanding, i have created a node server for my reservation api at endpoint http://localhost:3001/ and add updated the baseurl as :

JICOFO_RESERVATION_REST_BASE_URL=http://localhost:3001

but i am not able to understand like how it will be connected to jicofo?.
please help, i think i am still missing something.

In terms of configuration, you just need to provide the URL.
Do you have an endpoint http://localhost:3001/conference?
When you first try to create the meeting, http://localhost:3001/conference is called. The document I mentioned earlier will give you the details about how the /conference endpoint is called and what return json it expects.

yes, I have created endpoint for http://localhost:3001/conference , I guess I need POST endpoint here, but you said when I first try to create the meeting, this endpoint will get called?

I thought by this reservation API I can create meetings with specific name and duration.
can you please clear this?

How did you create a reservation API? can you walks us through ?

One thing missing from the reservation API document that is posted is the fact that “reservation system” is not something that is built already or otherwise provided by Jitsi Meet. You have to develop it yourself and using the referenced API specifications, ensure your system is (1) able to understand the data sent from Jicofo and (2) responds with data that Jicofo is expected.

If you already knew this then I am stating the obvious. If you are new to Jitsi Meet or where confused, now you know. :+1: