*** id: 84f94563-e6ae-4c33-85ae-4ee4bd79d72d title: addDevice slug: /js/reference/video/room-session/add-device description: addDevice method for the RoomSession class. max-toc-depth: 3 ---------------- ### addDevice * **addDevice**(`opts`): `Promise` - See [RoomSessionDevice documentation](/docs/browser-sdk/v3/js/reference/video/room-session-device) for more details. Adds a device to the room. Using this method, a user can stream multiple sources at the same time. If you need to add a camera device or a microphone device, you can alternatively use the more specific methods [addCamera](/docs/browser-sdk/v3/js/reference/video/room-session/add-camera) and [addMicrophone](/docs/browser-sdk/v3/js/reference/video/room-session/add-microphone). #### Parameters Specify the constraints for the device. In addition, you can add the `autoJoin` key to specify whether the device should immediately join the room or joining will be performed manually later. Audio constraints. Whether the device should automatically join the room. Default: `true`. Video constraints. #### Returns `Promise` - See [RoomSessionDevice documentation](/docs/browser-sdk/v3/js/reference/video/room-session-device) for more details. #### Permissions * `room.self.additional_source` You need to specify the permissions when [creating the Video Room Token](/docs/apis/video/room-tokens/create-room-token) on the server side. #### Example Adding any of the microphone devices to the room (duplicate streams are possible): ```javascript await roomSession.addDevice({ audio: true }); ```