Jicofo reservation: Reuse room after expiring

I use Jicofo REST API to integrate Jitsi with my reservation system.
The first call works fine:
The reservation system receives “http://reservation.example.com/conference” request,
responds with “200 Conference created successfully” + JSON response.
Deleting a conference after expiration also seems correct.

But when I reserve a new conference with the same name and try to connect again
Jicofo doesn’t send “http://reservation.example.com/conference” request to reservation system
and the users joins the conference bypassing the reservation system.

I found that the error is due to the fact that the previous conference was not deleted from the
conference map in FocusManager.java

See:

FocusManager.java
private final Map<EntityBareJid, JitsiMeetConferenceImpl> conferences
= new ConcurrentHashMap<>();

I’ve found a workaround to this problem:
See: src/main/java/org/jitsi/jicofo/JitsiMeetConferenceImpl.java

public void destroy(String reason)
{
    if (chatRoom == null)
    {
        logger.error("Unable to destroy conference MUC room: " + roomName);
        return;
    }
    chatRoom.destroy(reason, null);
    stop();
}

Are there any potential side effects in this solution?

Could anybody advice me what can be wrong in my Jicofo configuration?
May be there are some errors in my reservation system may lead to such error?
What should I check?

Thanks.

HI. I having this same problem at the moment. When i disconnect with room and try again create room with this same name or another person is still in room, i can’t connect again. Even if authorization is correct. Have you solved this problem ? @Ivan_Morozoff

I think your issue is different.
Check this:

1 Like

Hi! I use the Jicofo REST API too. But my reservation system just replies the same information sent by jicofo, plus an ID and a duration. In my case i use the reservation system only to save the information that is sent by Jicofo. This information is used later by the finalize script of Jibri to send the recordings to the mail_owner.

In my tests of the Jicofo Rest API, i checked that until the end of duration, the mail_owner can finish and recreate the conference as many times as needed. The ID is reused by Jicofo and it doesn’t request the reservation system again. But if someone else try to create the same room name, the Jicofo doesn’t allow it. Every try is blocked and logged by Jicofo log in this form: “Room ROOM_NAME conflict : someone_else != mail_owner”.