Skip to main content

할 수 있는 일

Tello SDK로 코드에서 통화를 만들고, 턴 이벤트에 응답해요. 게이트웨이가 진행 중인 통화에서 상대방이 말한 턴을 실시간으로 넘겨주고, 핸들러가 만든 답변이 다시 통화로 전달돼요. 대화의 두뇌는 여러분 코드가 맡아요.
SDK Server URL
전송 계층은 WebSocket뿐이에요. REST와 webhook은 제공하지 않아요.

시작하기 전에

포털 로그인과 SDK 설치 환경이 필요해요. 발신 조건은 연동 준비에서 먼저 확인하세요.

사용 방법

API Key 발급

포털 SDK 화면 위쪽의 SDK Server URL을 복사해 두어요(WebSocket 전용, SDK의 TELLO_URL 값). + 새 Key 발급으로 키를 만들고, 코드에 키와 URL을 넣거나 환경변수로 지정해요.
인자 없이 클라이언트를 생성하면 위 두 변수를 읽어요. 둘 다 없으면 ws://localhost:3000/sdk로 폴백하니, 프로덕션에서는 반드시 값을 넣어요.

인증

키 인증은 애플리케이션 레벨 핸드셰이크로 이뤄져요. 소켓이 열리면 SDK가 token 필드에 키를 담은 auth 프레임을 보내고, 서버의 auth.ok를 받은 뒤에야 나머지 동작이 시작돼요.
키는 WS 업그레이드 요청에도, URL query에도 실리지 않아요. Authorization 헤더도 쓰지 않으므로 URL·로그·오류 메시지에 키가 남지 않아요. 전부 내부 처리라 auth를 직접 호출할 일은 없고, 인증이 끝나기 전에는 연결이 성공하지 않아요. 키가 거부되거나(unauthenticated 오류 프레임 또는 4401 종료), 서버 데드라인 10초 안에 auth.ok가 오지 않으면 연결이 실패하면서 인증 오류가 나요.

연결 + 첫 통화

핸들러를 등록하고, 연결하고, 통화를 만들고, 끝날 때까지 기다려요.
핸들러는 연결 전에 등록하세요. 연결 후 등록하면 초기 프레임을 놓쳐요.

대화 주고받기

앞 예제는 상대가 무슨 말을 하든 같은 문장으로 답해요. 실제 연동에서는 user.turn의 텍스트를 읽어 답을 만들고, ARS처럼 번호를 눌러야 하면 sendDtmf로 키패드 입력을 보내요. 그동안 통화가 어떻게 흘러가는지는 이벤트로 따라가요.
알아 둘 것 몇 가지예요.
  • sendDtmf는 발화가 아니에요. 톤을 보내는 것이라 agent.turn이 따라오지 않아요. 접수 확인은 dtmf.accepted로 받아요. 허용 문자는 0-9, *, #예요.
  • answer도 즉시 발화가 아니에요. answer.accepted는 명령이 접수됐다는 뜻이고, 실제로 말해지면 그때 agent.turn이 와요. 어시스턴트 타임아웃으로 그 턴이 버려지면 agent.turn은 오지 않아요.
  • 핸들러는 등록 순서대로 처리돼요. 핸들러가 예외를 던져도 수신 루프는 죽지 않아요.
  • error 이벤트로 오는 명령 오류는 소켓을 닫지 않아요. 통화를 끝낸 오류라면 waitClosed가 다시 던져요.

확인 방법

통화가 정상적으로 진행되면 이벤트가 대략 이 순서로 도착해요.
dialing·ringing은 건너뛸 수 있어요. 이미 응답된 통화는 inProgress로 바로 가므로 중간 상태가 반드시 온다고 가정하면 안 돼요. answer를 보내면 answer.accepted가 먼저 오는데, 이건 명령이 접수됐다는 뜻일 뿐 발화 보장이 아니에요. 실제로 말해진 것은 뒤따르는 agent.turn으로 확인해요. 통화가 끝난 뒤 getSummary로 전사·요약·차감 크레딧을 조회할 수 있어요. 이벤트 13종은 이벤트에, 명령별 상세는 레퍼런스에 있어요.

주의사항

  • 실제 통화가 발신되고 크레딧이 차감돼요. 통제된 테스트 수신번호로만 시험하세요.
  • 한 연결에서 활성 통화는 하나예요. 통화 중에 createCall을 또 보내면 거부돼요.
  • 재연결·세션 재개 프로토콜이 없어요. 비정상 종료가 나면 통화를 처음부터 다시 시작해요.
  • 하트비트는 게이트웨이가 주도하고 표준 WS 라이브러리가 pong을 자동으로 보내요. 직접 구현할 일은 없어요.
  • 전체 키는 발급 직후 한 번만 볼 수 있어요. 분실하면 폐기 후 재발급해요.

관련 문서