phone_get_last_result
Retrieve the last processed result of a specific call using the call ID. Ideal for automated conversational phone systems powered by Asterisk S2S MCP Server.
Instructions
Obtener el último resultado procesado de una llamada específica
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| callId | Yes | ID de la llamada |
Implementation Reference
- index.ts:232-255 (registration)Registration of the 'phone_get_last_result' MCP tool, including input schema (callId: string) and handler function that delegates to phoneTools.getLastConversationResult and formats the MCP response.
// 9. Obtener último resultado de conversación server.tool( "phone_get_last_result", "Obtener el último resultado procesado de una llamada específica", { callId: z.string().describe("ID de la llamada") }, async (args) => { const result = await phoneTools.getLastConversationResult({ callId: args.callId }); if (!result || !result.found) { return { content: [{ type: "text", text: `❌ No se encontró resultado para la llamada: ${args.callId}` }], }; } return { content: [{ type: "text", text: `📋 **Resultado de llamada ${args.callId}**\n\n${result.response_for_user || 'Sin respuesta'}\n\n**Acciones realizadas:** ${result.actions_taken?.join(', ') || 'Ninguna'}\n**Procesado:** ${result.processed_at || 'No disponible'}` }], }; } ); - index.ts:239-254 (handler)Inline handler function for the phone_get_last_result tool that calls the helper getLastConversationResult and returns formatted text content for MCP.
async (args) => { const result = await phoneTools.getLastConversationResult({ callId: args.callId }); if (!result || !result.found) { return { content: [{ type: "text", text: `❌ No se encontró resultado para la llamada: ${args.callId}` }], }; } return { content: [{ type: "text", text: `📋 **Resultado de llamada ${args.callId}**\n\n${result.response_for_user || 'Sin respuesta'}\n\n**Acciones realizadas:** ${result.actions_taken?.join(', ') || 'Ninguna'}\n**Procesado:** ${result.processed_at || 'No disponible'}` }], }; } - index.ts:236-238 (schema)Input schema for phone_get_last_result tool: requires callId as string.
{ callId: z.string().describe("ID de la llamada") }, - tools/realtime-assistant.ts:281-304 (helper)Helper function getLastConversationResult that searches conversation history for the specific callId and returns the processed result.
export async function getLastConversationResult(args: { callId: string; }): Promise<{ found: boolean; response_for_user?: string; actions_taken?: string[]; processed_at?: string; } | null> { const { callId } = args; const history = phoneOps.getConversationHistory(100); // Buscar en historial reciente const result = history.find(h => h.callId === callId); if (!result) { return { found: false }; } return { found: true, response_for_user: result.response_for_user, actions_taken: result.actions_taken, processed_at: new Date().toISOString() // Simplificado }; } - Core helper getConversationHistory that provides recent conversation processing results from in-memory storage, used by the tool's helper chain.
export function getConversationHistory(limit: number = 50): ConversationProcessingResult[] { return conversationHistory .slice(-limit) .reverse(); }