Audio Room

audioroom은 음성 회의 기능을 인터넷을 이용한 애플리케이션으로 구현한 것입니다. Omnitalk SDK를 사용하여 회의실(룸) 생성 및 참여, 이벤트 메시지에 대응하는 것으로 음성 회의 기능을 간단히 구현할 수 있습니다.

Step 1. 세션 생성

Omnitalk SDK의 초기화를 제외한 모든 API를 사용하기 위해서는 우선적으로 createSession()을 호출하여 세션을 생성해야 합니다. createSession()의 파라미터인 user_id는 사용자를 구분하기 위한 고유한 id이며 audiocall 발신을 위한 offerCall() 호출에 사용됩니다. user_id는 Optional 이며, 생략시 Omnitalk 서버에서 임의의 id를 부여합니다.

await sdk.createSession(user_id);

Step 2. 회의실 생성 / 조회

createRoom() API 를 사용하여 사람들이 입장 할 수 있는 회의실(룸)을 생성합니다. createRoom()의 필수 파라미터은 room_type은 Omnitalk SDK에서 enum type으로 제공합니다. 음성 회의의 경우는 AUDIO_ROOM 을 사용하시면 됩니다. createRoom() API 리턴 객체에 room_id 로 회의실에 참여할 수 있습니다.

await sdk.createRoom(VIDEOROOM_TYPE.AUDIO_ROOM, "subject", "123456")

이미 다른 사용자가 회의실을 생성 했다면 roomList() API 를 사용하여 현재 생성된 회의실 목록을 조회할 수 있습니다. 음성 회의실 목록만 조회하고 싶은 경우 room_type 을 AUDIO_ROOM 으로 전달하시면 됩니다. 조회한 목록 결과에 room_id 로 회의실에 참여할 수 있습니다.

await sdk.roomList(VIDEOROOM_TYPE.AUDIO_ROOM);

Step 3. 회의실 참여

joinRoom() API 를 사용하여 회의실에 참여할 수 있습니다. 회의실에 참여하게 되면 별도의 작업 없이 참여자들과 음성 회의를 할 수 있게 되며, 회의실에 관련된 이벤트 메세지를 수신할 수 있습니다. 음성 회의실에서 수신 가능한 이벤트는 아래와 같습니다. 자세한 내용은 Event Message 를 참조 바랍니다.

  • CONNECTED_EVENT - 새로운 참가자 입장했을 때

  • LEAVE_EVENT - 다른 참가자가 퇴장 했을 때

  • MUTE_EVENT - 다른 참가자가 mute 했을 때

  • UNMUTE_EVENT - 다른 참가자가 unmute 했을 때

  • MESSAGE_EVENT - 채팅 메세지 수신 이벤트, 회의실 입장시 채팅 기능을 사용할 수 있는 상태가 됩니다. 채팅기능 사용법은 Chatting 문서를 참조 바랍니다.

await sdk.joinRoom(room_id);

Step 4. 회의실 퇴장

leave() API를 통해서 전화 연결을 끊을 수 있습니다. 파라미터에 session을 전달하지 않으면 자신의 방송을 종료하고 퇴장(통화 종료)하게 됩니다. session를 전달하면 해당 session을 가진 사용자가 퇴장(통화 종료) 하게 됩니다. 해당 상황은 수신 거절이나 강제 퇴장 등의 기능으로 활용할 수 있습니다.

await sdk.leave();

참여자 목록 조회

partiList() API 를 사용하여 입장한 회의실에 참여한 사용자 목록을 조회할 수 있습니다.

  • 추가 예정 - partiList의 결과에 다른 참가자의 mute 여부를 알 수 있습니다.

오디오 장치 제어

mute/unmute

전화 통화중에 음소거를 할 수 있도록 API를 제공합니다. 사용법과 자세한 내용은 API Reference의 mute/unmute 부분을 참조 바랍니다. mute/unmute API의 파라미터인 track type은 Omnitalk SDK에서 enum type으로 제공합니다. 예시는 아래와 같습니다.

await sdk.setMute(TRACK_TYPE.AUDIO);

입력 장치 변경

전화 연결 전, 또는 전화 통화중에 입력(마이크) 장치를 변경할 수 있도록 API를 제공합니다.

  1. 우선, 사용 가능한 입력 장치 목록을 조회할 수 있는 getDeviceList() 를 통해서 사용하고자 하는 장치의 deviceId를 획득합니다.

  2. setAudioDevice() 파라미터로 deviceId를 전달하여 입력 장치를 변경할 수 있습니다.

룸 삭제

현재 참여중이지 않은 회의실은 destroyRoom() API 를 사용하여 회의실을 삭제할 수 있습니다.

Last updated