# Pre-requisite

해당 페이지에서는 Omnitalk SDK를 사용하기 위해서 공통적으로 필요한 내용에 대해서 설명합니다.&#x20;

## 1. SDK 객체 초기화

[콘솔](https://omnitalk.io/console/service/service-id)에서 발급받은 Service Id와 Service Key로 SDK를 초기화 합니다. 해당 정보는 노출되지 않도록 주의하여야 합니다. 초기화된 SDK 객체는 이후 모든 메서드 호출에 사용됩니다.&#x20;

Omnitalk SDK는 싱글톤 패턴으로 제공됩니다. 아래 방법으로 SDK 초기화 및 객체를 얻을 수 있습니다.

```typescript
import { Omnitalk } from "omnitalk-ts-sdk";

const SERVICE_ID = '발급받은 service id';
const SERVICE_KEY = '발급받은 service key';

Omnitalk.sdkInit(SERVICE_ID, SERVICE_KEY);
const sdk = Omnitalk.getInstance();
```

## 2. 이벤트 리스너 등록

Omnitalk SDK에서 발생하는 이벤트를 수신하기 위해서 이벤트 리스너를 등록합니다. 이벤트 메세지의 상세 내용은 [Event Message](https://docs.omnitalk.io/commons/event-message) 를 참조 바랍니다.

이벤트 메세지의 cmd 필드로 어떤 이벤트인지 확인할 수 있습니다. 해당 내용은 enum type `OmniEvent를`참조할 수 있습니다. 이벤트 메세지 내용도 아래와 같이 캐스팅하여 사용할 수 있습니다. 아래에서 간단한 예시를 보여 드립니다.

```typescript
sdk.on('event', msg => {
  switch(msg.cmd) {
    case OmniEvent.RINGBACK_EVENT:
      const ringbackMsg = msg as EventRingBack;
      break;
    case OmniEvent.RINGING_EVENT:
      const ringingMsg = msg as EventRinging;
      break;
  }
});
```
