fonoster/fonoster
The AI that answers the phone.
Fon Fonster – AI 기반 음성 에이전트를 위한 오픈소스 플랫폼
정의 – Fonoster는 음성 기반 에이전트(예: 전화선 봇)를 구축, 테스트, 실행할 수 있는 오픈소스 스택으로, 음성을 이해하고 음성 응답을 생성하며 다른 번호로 전화를 걸 수도 있습니다. 이 플랫폼은 전화 인프라(PBX, SIP, 전화번호)와 AI 서비스(음성-텍스트, 텍스트-음성, 대규모 언어 모델)를 결합하고, API 우선 설계를 통해 모든 것을 노출합니다.
핵심 구성 요소
| 구성 요소 | 역할 |
|---|---|
| 멀티테넌트 플랫폼 | 동일한 서버에서 여러 격리된 작업 공간(예: 별도 고객)을 실행합니다. |
| PBX 및 SIP 게이트웨이 | 실제 전화선을 플랫폼에 연결합니다. 번호를 구매하거나 기존 SIP 트렁크를 사용할 수 있습니다. |
| 음성 SDK | 세션 프로토콜을 사용하는 TypeScript(@fonoster/voice) 및 Python(fonoster-voice) 라이브러리 – 통화 이벤트와 명령을 전달하는 WebSocket. |
| NodeJS SDK | 리소스(번호, 통화, 앱) 프로비저닝 및 프로그래매틱 통화 생성을 위한 @fonoster/sdk. |
CLI (@fonoster/ctl) |
작업 공간, 애플리케이션, 번호, 배포를 관리하기 위한 명령줄 도구. |
| 플러그인 | 플랫폼 확장(예: 새 스토리지 백엔드, 인증 방법 추가). |
| AI 통합 | Deepgram, Google Speech, OpenAI LLM 등에 대한 기본 지원. Autopilot YAML 기반 에이전트에서 사용됩니다. |
| 인증 및 보안 | OAuth2, JWT, RBAC, Let's Encrypt를 통한 자동 HTTPS. |
에이전트를 만드는 두 가지 방법
1. Autopilot(선언적)
다음을 선택하는 간단한 agent.yaml을 작성합니다:
- STT – 예: Deepgram
nova-3 - TTS – 예: Deepgram 음성
aura-asteria-en - LLM – 예: OpenAI
gpt-4o - 프롬프트 구성(환영 메시지, 시스템 프롬프트, 종료, 오류 처리, 유휴 상태 확인)
CLI로 배포:
npx @fonoster/ctl workspaces:login # 일회성 API 키 로그인
npx @fonoster/ctl applications:create -f agent.yaml
그런 다음 실제 전화번호를 생성된 애플리케이션에 연결합니다. 플랫폼이 통화 흐름, 음성 변환, LLM 추론, 응답 합성을 자동으로 처리합니다.
2. 음성 애플리케이션(코드 우선)
세션 WebSocket과 통신하는 프로그램을 작성합니다. SDK는 고수준 메서드를 제공합니다:
say– 텍스트 말하기(또는 스트리밍 LLM 토큰)gather– 음성 또는 DTMF 입력 대기play,playDtmf– 오디오 또는 톤 재생transfer,hold,hangup등- 사용자 지정 음성 파이프라인을 위한 원시 오디오 액세스.
const { VoiceServer } = require("@fonoster/voice");
new VoiceServer({port:3000}).listen(async session => {
await session.say("안녕하세요! 이름이 뭐예요?");
const {speech:name} = await session.gather();
await session.say(`만나서 반가워요 ${name}`);
await session.hangup();
});
서버를 로컬 또는 터널(ngrok)을 통해 노출하고 Fonoster 애플리케이션에서 참조합니다.
일반적인 워크플로우
- Fonoster 배포 – Docker compose 또는 자체 클라우드에 호스팅(참조: Docker로 Fonoster 배포).
- 작업 공간 생성 – 사용자, 키, 리소스를 격리합니다.
- 전화번호 추가 – 제공업체를 통해 구매하거나 기존 SIP 트렁크를 등록합니다.
- 에이전트 구축 – 빠른 봇을 위한 Autopilot YAML 또는 완전한 제어를 위한 사용자 지정 음성 애플리케이션.
- 번호를 에이전트에 연결 – 대시보드 또는 CLI를 통해.
- 번호로 전화 – 플랫폼이 통화를 라우팅하고, AI 파이프라인을 실행하며, 음성 응답을 반환합니다.
누가 사용할까요?
- 스타트업 – Twilio 스타일의 분당 요금을 지불하지 않고 AI 기반 고객 서비스 봇을 구축하는 곳.
- 엔터프라이즈 – 규정 준수를 위해 음성 데이터를 온프레미스로 제어해야 하는 기업.
- 개발자 – LLM 기반 전화 에이전트, 콜센터 자동화, 음성 우선 인터페이스를 실험하려는 개발자.
- 연구자 – 실제 전화 환경에서 멀티모달 AI(음성 ↔ LLM ↔ TTS)를 탐구하는 연구자.
시작하기
- 문서 – 빠른 시작 가이드, Docker 자체 호스팅, 세션 프로토콜 사양, 마이그레이션 노트는 모두
docs/폴더에 있습니다. - CLI – 일회성 명령을 위해
npx @fonoster/ctl …로 설치합니다. - SDK –
npm i @fonoster/sdk(일반 API) 및npm i @fonoster/voice(세션 처리). - 커뮤니티 – Discord 서버, GitHub Issues, 기여 가이드가 제공됩니다.
라이선스 및 상태
- 라이선스 – MIT(허용적, 상업적으로 사용 가능).
- 상태 – 활발히 개발 중이지만, 저장소는 주요 업그레이드가 진행 중임을 경고합니다. 호환성이 깨지는 변경이 발생할 수 있으며 기여는 일시적으로 중단됩니다.
TL;DR
Fonoster는 AI 기반 전화 봇을 실행할 수 있는 오픈소스 "Twilio 유사" 플랫폼입니다. YAML 파일(Autopilot)로 봇을 설명하거나 WebSocket 세션을 통해 통신하는 완전한 기능의 코드를 작성할 수 있습니다. 전화, 음성 서비스, LLM 액세스, 개발자 친화적인 API/CLI를 모두 MIT 라이선스로 제공합니다.
두 가지 에이전트 생성 방법
1. Autopilot (선언적)
다음을 선택하는 간단한 agent.yaml을 작성합니다:
- STT – 예: Deepgram
nova-3 - TTS – 예: Deepgram 음성
aura-asteria-en - LLM – 예: OpenAI
gpt-4o - 프롬프트 구성(환영 메시지, 시스템 프롬프트, 종료, 오류 처리, 유휴 상태 확인)
CLI로 배포:
npx @fonoster/ctl workspaces:login # 일회성 API 키 로그인
npx @fonoster/ctl applications:create -f agent.yaml
그런 다음 생성된 애플리케이션에 실제 전화번호를 연결합니다. 플랫폼이 통화 흐름, 음성 변환, LLM 추론, 응답 합성을 자동으로 처리합니다.
2. 음성 애플리케이션(코드 우선)
세션 WebSocket과 통신하는 프로그램을 작성합니다. SDK는 고수준 메서드를 제공합니다:
say– 텍스트 말하기(또는 스트리밍 LLM 토큰)gather– 음성 또는 DTMF 입력 대기play,playDtmf– 오디오 또는 톤 재생transfer,hold,hangup등- 사용자 지정 음성 파이프라인을 위한 원시 오디오 액세스.
const { VoiceServer } = require("@fonoster/voice");
new VoiceServer({port:3000}).listen(async session => {
await session.say("안녕하세요! 이름이 뭐예요?");
const {speech:name} = await session.gather();
await session.say(`만나서 반가워요 ${name}`);
await session.hangup();
});
서버를 로컬 또는 터널(ngrok)을 통해 노출하고 Fonoster 애플리케이션에서 참조하세요.
일반적인 워크플로우
- Fonoster 배포 – Docker compose 또는 자체 클라우드에서 호스팅(참조: Docker로 Fonoster 배포).
- 작업 공간 생성 – 사용자, 키, 리소스를 격리합니다.
- 전화번호 추가 – 제공업체를 통해 구매하거나 기존 SIP 트렁크를 등록합니다.
- 에이전트 구축 – 빠른 봇을 위한 Autopilot YAML 또는 완전한 제어를 위한 사용자 지정 음성 애플리케이션.
- 번호를 에이전트에 연결 – 대시보드 또는 CLI를 통해.
- 번호로 전화 – 플랫폼이 통화를 라우팅하고 AI 파이프라인을 실행하며 음성 응답을 반환합니다.
누가 사용할까요?
- 스타트업 – Twilio 스타일의 분당 요금을 지불하지 않고 AI 기반 고객 서비스 봇을 구축하는 곳.
- 엔터프라이즈 – 규정 준수를 위해 음성 데이터를 온프레미스로 제어해야 하는 기업.
- 개발자 – LLM 기반 전화 에이전트, 콜센터 자동화 또는 음성 우선 인터페이스를 실험하려는 개발자.
- 연구자 – 실제 전화 환경에서 멀티모달 AI(음성 ↔ LLM ↔ TTS)를 탐구하는 연구자.
시작하기
- 문서 – 빠른 시작 가이드, Docker 자체 호스팅, 세션 프로토콜 사양, 마이그레이션 노트는 모두
docs/폴더에 있습니다. - CLI – 일회성 명령을 위해
npx @fonoster/ctl …로 설치합니다. - SDK –
npm i @fonoster/sdk(일반 API) 및npm i @fonoster/voice(세션 처리). - 커뮤니티 – Discord 서버, GitHub Issues, 기여 가이드가 제공됩니다.
라이선스 및 상태
- 라이선스 – MIT(허용적, 상업적으로 사용 가능).
- 상태 – 활발히 개발 중이지만, 저장소는 주요 업그레이드가 진행 중임을 경고합니다. 호환성이 깨지는 변경이 발생할 수 있으며 기여는 일시적으로 중단됩니다.
TL;DR
Fonoster는 AI 기반 전화 봇을 실행할 수 있는 오픈소스 "Twilio 유사" 플랫폼입니다. YAML 파일(Autopilot)로 봇을 설명하거나 WebSocket 세션을 통해 통신하는 완전한 기능의 코드를 작성할 수 있습니다. 전화, 음성 서비스, LLM 액세스, 개발자 친화적인 API/CLI를 모두 MIT 라이선스 하에 제공합니다.
두 가지 에이전트 생성 방법
1. Autopilot (선언적)
간단한 agent.yaml을 작성하여 다음을 선택합니다:
- STT – 예: Deepgram
nova-3 - TTS – 예: Deepgram 음성
aura-asteria-en - LLM – 예: OpenAI
gpt-4o - 프롬프트 구성(환영 메시지, 시스템 프롬프트, 종료, 오류 처리, 유휴 확인)
CLI로 배포:
npx @fonoster/ctl workspaces:login # 일회성 API 키 로그인
npx @fonoster/ctl applications:create -f agent.yaml
그런 다음 생성된 애플리케이션에 실제 전화번호를 연결합니다. 플랫폼이 통화 흐름, 음성 변환, LLM 추론, 응답 합성을 자동으로 처리합니다.
2. 음성 애플리케이션(코드 우선)
세션 WebSocket과 통신하는 프로그램을 작성합니다. SDK는 고수준 메서드를 제공합니다:
say– 텍스트 말하기(또는 스트리밍 LLM 토큰)gather– 음성 또는 DTMF 입력 대기play,playDtmf– 오디오 또는 톤 재생transfer,hold,hangup등- 사용자 정의 음성 파이프라인을 위한 원시 오디오 액세스.
const { VoiceServer } = require("@fonoster/voice");
new VoiceServer({port:3000}).listen(async session => {
await session.say("안녕하세요! 이름이 뭐예요?");
const {speech:name} = await session.gather();
await session.say(`만나서 반가워요 ${name}`);
await session.hangup();
});
서버를 로컬로 노출하거나 터널(ngrok)을 통해 노출하고 Fonoster 애플리케이션에서 참조하세요.
일반적인 워크플로우
- Fonoster 배포 – Docker compose 또는 자체 클라우드에서 호스팅(참조: Docker로 Fonoster 배포).
- 작업 공간 생성 – 사용자, 키, 리소스를 격리합니다.
- 전화번호 추가 – 제공업체를 통해 구매하거나 기존 SIP 트렁크를 등록합니다.
- 에이전트 구축 – 빠른 봇을 위한 Autopilot YAML 또는 완전한 제어를 위한 사용자 지정 음성 애플리케이션.
- 번호를 에이전트에 연결 – 대시보드 또는 CLI를 통해.
- 번호로 전화 – 플랫폼이 통화를 라우팅하고 AI 파이프라인을 실행하며 음성 응답을 반환합니다.
누가 사용할까요?
- 스타트업 – Twilio 스타일의 분당 요금을 지불하지 않고 AI 기반 고객 서비스 봇을 구축하는 곳.
- 엔터프라이즈 – 규정 준수를 위해 음성 데이터를 온프레미스로 제어해야 하는 기업.
- 개발자 – LLM 기반 전화 에이전트, 콜센터 자동화, 음성 우선 인터페이스를 실험하려는 개발자.
- 연구자 – 실제 전화 환경에서 멀티모달 AI(음성 ↔ LLM ↔ TTS)를 탐구하는 연구자.
시작하기
- 문서 – 빠른 시작 가이드, Docker 자체 호스팅, 세션 프로토콜 사양, 마이그레이션 노트는 모두
docs/폴더에 있습니다. - CLI – 일회성 명령을 위해
npx @fonoster/ctl …로 설치합니다. - SDK –
npm i @fonoster/sdk(일반 API) 및npm i @fonoster/voice(세션 처리). - 커뮤니티 – Discord 서버, GitHub Issues, 기여 가이드가 제공됩니다.
라이선스 및 상태
- 라이선스 – MIT(허용적, 상업 친화적).
- 상태 – 활발히 개발 중이지만, 저장소는 주요 업그레이드가 진행 중임을 경고합니다. 호환성이 깨지는 변경이 발생할 수 있으며 기여는 일시적으로 중단됩니다.
TL;DR
Fonoster는 AI 기반 전화 봇을 실행할 수 있는 오픈소스 "Twilio 유사" 플랫폼입니다. YAML 파일(Autopilot)로 봇을 설명하거나 WebSocket 세션을 통해 통신하는 완전한 기능의 코드를 작성할 수 있습니다. 전화, 음성 서비스, LLM 액세스, 개발자 친화적인 API/CLI를 모두 MIT 라이선스 하에 제공합니다.
SUMMARY: Fonoster는 실제 전화선에서 실행되는 AI 기반 음성 에이전트를 구축하기 위한 오픈소스 플랫폼입니다. 멀티테넌트 PBX 기능, CLI, TypeScript/Python SDK, 음성-텍스트, 텍스트-음성, LLM 서비스(예: OpenAI)와의 기본 통합을 제공합니다. YAML Autopilot 파일로 선언적으로 봇을 만들거나 WebSocket 세션을 통해 프로그래매틱하게 만들 수 있습니다. 이 스택은 자체 호스팅(Docker)이 가능하며 음성 AI 애플리케이션을 위한 Twilio의 오픈 대안을 목표로 합니다.
TITLE: Fonoster – AI 기반 전화 봇을 위한 오픈소스 플랫폼
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트