@sinch/mcp
Version:
Sinch MCP server
46 lines • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ttsCalloutHandler = exports.registerTtsCallout = void 0;
const zod_1 = require("zod");
const voice_service_helper_1 = require("./utils/voice-service-helper");
const voice_tools_helper_1 = require("./utils/voice-tools-helper");
const utils_1 = require("../../utils");
const types_1 = require("../../types");
const TOOL_KEY = 'ttsCallout';
const TOOL_NAME = (0, voice_tools_helper_1.getToolName)(TOOL_KEY);
const registerTtsCallout = (server, tags) => {
if (!(0, voice_tools_helper_1.shouldRegisterTool)(TOOL_KEY, tags))
return;
server.tool(TOOL_NAME, 'Make a callout with a Text-To-Speech prompt', {
phoneNumber: zod_1.z.string().describe('The phone number to call'),
message: zod_1.z.string().describe('The message to read out loud')
}, exports.ttsCalloutHandler);
};
exports.registerTtsCallout = registerTtsCallout;
const ttsCalloutHandler = async ({ phoneNumber, message }) => {
const maybeClient = (0, voice_service_helper_1.getVoiceClient)(TOOL_NAME);
if ((0, utils_1.isPromptResponse)(maybeClient)) {
return maybeClient.promptResponse;
}
const voiceService = maybeClient.voice;
const cli = process.env.CALLING_LINE_IDENTIFICATION;
const request = {
ttsCalloutRequestBody: {
method: 'ttsCallout',
ttsCallout: {
destination: {
type: 'number',
endpoint: phoneNumber
},
text: message
}
}
};
if (cli) {
request.ttsCalloutRequestBody.ttsCallout.cli = cli;
}
const response = await voiceService.callouts.tts(request);
return new types_1.PromptResponse(`Calling ${phoneNumber}... The call ID is ${response.callId}`).promptResponse;
};
exports.ttsCalloutHandler = ttsCalloutHandler;
//# sourceMappingURL=tts-callout.js.map