The EnxRoom.pinUsers() method allows the Moderator to pin a user(s) to the Active Talker List irrespective of the user’s activity level. A pinned user’s Stream is always published in the Room even if they are not talking. The inactive pinned users are placed in the Active Talker List after the actively talking users in a descending order based on the activity level with the most active talker on top. The total number of pinned users in a Room is restricted to (max_active_talkers – 1) based on the Room configuration.

On joining a Room, the user is notified via room-connected event with Room Meta Information, which contains the list of pinned users as "pinnedUsers": [ /*client-ids*/ ].

The EnxRoom.unpinUsers() method is used to unpin the user(s).


  • EnxRoom.pinUsers(clientIds[], callback) 
  • EnxRoom.unpinUsers(clientIds[], callback)  


  • clientIds – Array of Client IDs of users whose streams need to be pinned or unpinned.
  • callback – Returns response information of the pin or unpin requests in JSON Payload { result : Number, clients[] }
    • result – 0 if success. An error-code in case of an error.
    • clientIds – Array of Client IDs passed to pin or unpin along with respective result code.

Event Notifications:

  • updated-pinned-users – Notification to everyone in the Room with an updated list of pinned users in a JSON format: { "moderator_id": String, clientIds: [] }
    • moderator_id – Moderator responsible for updating the pinned user list.
    • clientIds – Array of Client_ids of users who are pinned.
// To pin users
room.pinUsers(clientIDs, function(resp) {
	// resp json { "result": Number, "clients": [] }

// To unpin users
room.unpinUsers(clientIDs, function(resp) {
	// resp json { "result": Number, "clientIds": [] }

// Everyone is notified with updated pinned user list
room.addEventListener('updated-pinned-users', function(event) {
	 // event json { "moderator_id": String, "clientIds": [] }