# How to remove a specific user from a channel? (/en/api-reference/faq/integration/kick_user)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

In real-time audio and video interactions, there are often cases where you need to remove a specific user from the channel. Agora offers several solutions tailored to different scenarios:

### Remove inactive users [#remove-inactive-users]

**Scenario:** After a call, a user (typically on the web) forgets to leave the channel. Even without an active call, usage is still generated.

**Solution:** To avoid this, check if the user is publishing an audio stream over time, using the volume indication callback (`onAudioVolumeIndication`) or monitor at the app level. If the user is inactive, call `leaveChannel` in the app logic to log off the user.

### Remove all users [#remove-all-users]

**Scenario:** Scheduling apps may need to end calls or meetings at a set time. For example, a one hour meeting starts at 10:00 a.m. and needs to end at 11:00 a.m.

**Solution:** Use one of the following approaches:

* Set the valid timestamp of the Token (`privilegeExpiredTs` parameter) to the meeting's end time. After this time, the user is automatically removed from the channel. For details, see [Secure authentication with tokens](/en/video-calling/get-started/authentication-workflow).

* Use the server-side RESTful API to remove users. Track the user ID and channel name in the app, then call the [Create Rule API](/en/video-calling/channel-management-api/endpoint/ban-user-privileges/create-rules) to remove the user from the channel. Set the ban time (`time` parameter) to 0 to allow the user to join other channels afterwards.

### Remove a user who violates your policies [#remove-a-user-who-violates-your-policies]

**Scenario:** In a live broadcast room, if a connected user makes inappropriate remarks, the host may want to remove the user.

**Solution:** Use the peer-to-peer messaging function of Signaling. Send an offline notification with `sendMessageToPeer`. The user receives this message through the `onMessageReceived` callback, and the client calls the `leaveChannel` method in the Video SDK to leave the channel.
