Files
calendar/packages/features/calAIPhone/providers/retellAI/services/VoiceService.ts
T
aa48e72c12 feat: inbound calls in cal ai (#23890)
* feat: lang support

* fix: type errors

* feat: select voice agent

* refactor: address feedback

* refactor: address feedback

* refactor: missing import

* fix: types

* feat: add inbound calls

* chore: formatting

* chore

* feat: finish inbound call

* chore: formatting

* fix: update bug

* fix: types

* refactor: Agent Configuration Sheet (#23930)

* refactor: agent configuration sheet

* chore: use default phone numbre

* refactor: improvements

* refactor: improvements

* fix: types

* fix: feedback

* chore:

* fix: feedback

* fix: prompt

* fix: review

* fix: review

* refactor: class

* refactor: class

* refactor: rename

* Update apps/web/public/static/locales/en/common.json

* Update apps/web/public/static/locales/en/common.json

* chore: update set value

* fix: remove index

* fix: type error

* fix: update tetss

* fix: use logger

* refactor: don't use static

* fix: type

* fix: schema

* refactor:

---------

Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
2025-10-09 11:40:37 +01:00

34 lines
889 B
TypeScript

import { HttpError } from "@calcom/lib/http-error";
import logger from "@calcom/lib/logger";
import type { RetellAIRepository, RetellVoice } from "../types";
type Dependencies = {
retellRepository: RetellAIRepository;
};
export class VoiceService {
private logger = logger.getSubLogger({ prefix: ["VoiceService"] });
constructor(private deps: Dependencies) {}
async listVoices(): Promise<RetellVoice[]> {
try {
const voices = await this.deps.retellRepository.listVoices();
this.logger.info("Retrieved voices successfully", {
count: voices.length,
});
return voices;
} catch (error) {
this.logger.error("Failed to list voices from external AI service", {
error,
});
throw new HttpError({
statusCode: 500,
message: "Failed to retrieve available voices. Please try again.",
});
}
}
}