What's the best way to set a lock in Phoenix channel on Elixir way?

I want to build a voice chat app, on a channel, only one person can talk at the same time.

So, I need a lock mechanism, I have implemented it by using Redis.

However, I think it’s not an Elixir way and cannot be distributed.

Can anyone give me some clue how to do it just use Elixir and can be distributed? Thanks.

Distributed locks is not something that can be easily implemented.

Sadly,I think now Redis is fine for me.Thanks