Asterisk Phone System

Asterisk Phone System

gcorroto

Connects to Asterisk phone systems to make automated calls, monitor conversations, and track call metrics for business automation workflows.

Integrates with Asterisk phone systems to enable outbound call operations, conversation monitoring, call history retrieval, and telephony system metrics tracking for business automation workflows.

5907 views4Local (stdio)

What it does

  • Make outbound phone calls via Asterisk
  • Monitor real-time phone conversations
  • Retrieve call history and transcripts
  • Track telephony system metrics
  • Process speech-to-speech interactions
  • Check system health and status

Best for

Business automation with phone integrationCustomer service call automationAppointment reminders and confirmationsCall center operations monitoring
Real-time conversation monitoringSpeech-to-Speech API integrationDetailed call transcripts and results

About Asterisk Phone System

Asterisk Phone System is a community-built MCP server published by gcorroto that provides AI assistants with tools and capabilities via the Model Context Protocol. Enhance your call monitoring center with Asterisk Phone System integrationโ€”enabling outbound calls, conversation monitoring, and telephony metrics. It is categorized under communication, developer tools.

How to install

You can install Asterisk Phone System in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.

License

Asterisk Phone System is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.

๐ŸŒŸ Asterisk S2S MCP Server

Node.js TypeScript MCP License NPM

๐Ÿš€ MCP Server for automated conversational phone calls using Asterisk with Speech-to-Speech

Make phone conversations as easy as a prompt! ๐Ÿ“žโœจ


๐Ÿ—๏ธ System Architecture

graph TB
    subgraph "MCP Client"
        A[Claude Desktop] --> B[MCP Client]
    end
    
    subgraph "MCP Server"
        B --> C[Asterisk S2S MCP]
        C --> D[Phone Tools]
        C --> E[Real-time Assistant]
    end
    
    subgraph "Backend Services"
        D --> F[Asterisk Server]
        E --> G[Speech-to-Speech API]
        F --> H[Phone Network]
    end
    
    subgraph "Monitoring"
        C --> I[Health Check]
        C --> J[Metrics & Logs]
        C --> K[Call History]
    end
    
    style A fill:#e1f5fe
    style C fill:#f3e5f5
    style F fill:#fff3e0
    style G fill:#e8f5e8

๐Ÿ“ž Phone Call Flow

sequenceDiagram
    participant U as User
    participant C as Claude/MCP
    participant S as MCP Server
    participant A as Asterisk API
    participant P as Phone
    
    U->>C: "Call John to remind about appointment"
    C->>S: phone_make_call()
    S->>A: POST /make-call
    A->>P: Initiate call
    P-->>A: Connection established
    A-->>S: CallID + Status
    S-->>C: Call initiated โœ…
    C-->>U: "๐Ÿ“ž Call started with John"
    
    Note over A,P: Real-time S2S conversation
    
    A->>S: Callback with result
    S->>S: Process transcript
    U->>C: "How did the call go?"
    C->>S: phone_get_last_result()
    S-->>C: Detailed result
    C-->>U: "โœ… John confirmed the appointment"

๐Ÿ› ๏ธ MCP Components

mindmap
  root((Asterisk S2S MCP))
    Core Tools
      phone_make_call
      phone_get_status
      phone_cancel_call
    Monitoring
      phone_health_check
      phone_get_metrics
      phone_get_logs
    History
      phone_get_conversation_history
      phone_get_active_calls
      phone_get_last_result
    Configuration
      Environment Variables
      MCP Client Config
      Asterisk Integration

๐Ÿš€ Installation & Usage

๐ŸŽฏ Option 1: NPX (Recommended)

# One command and you're ready! ๐Ÿš€
npx @grec0/mcp-s2s-asterisk@latest

๐Ÿ”ง Option 2: Global Installation

npm install -g @grec0/mcp-s2s-asterisk
mcp-s2s-asterisk

โš™๏ธ Step-by-Step Configuration

flowchart LR
    A[1. Install MCP] --> B[2. Configure Variables]
    B --> C[3. Configure MCP Client]
    C --> D[4. Ready to use! ๐ŸŽ‰]
    
    style A fill:#ffcdd2
    style B fill:#fff3e0
    style C fill:#e8f5e8
    style D fill:#e1f5fe

๐Ÿ” Environment Variables

# ๐ŸŒ Asterisk API URL
export PHONE_API_URL="http://192.168.4.44:8000"

# ๐Ÿ”‘ Authentication key
export PHONE_API_KEY="api-key"

# ๐Ÿ”„ Callback URL for results
export MCP_CALLBACK_URL="http://localhost:3000"

๐Ÿ“ฑ MCP Client Configuration

{
  "mcpServers": {
    "asterisk-s2s": {
      "command": "npx",
      "args": ["@grec0/mcp-s2s-asterisk@latest"],
      "env": {
        "PHONE_API_URL": "http://192.168.4.44:8000",
        "PHONE_API_KEY": "api-key",
        "MCP_CALLBACK_URL": "http://localhost:3000"
      }
    }
  }
}

๐Ÿงฐ Available Tools

๐Ÿ“ž Calls

  • ๐Ÿ”ฅ phone_make_call - Make phone calls
  • ๐Ÿ“Š phone_get_status - Get call status
  • โŒ phone_cancel_call - Cancel calls
  • ๐Ÿ“ฑ phone_get_active_calls - Active calls

๐Ÿ“ˆ Monitoring

  • โค๏ธ phone_health_check - System health
  • ๐Ÿ“Š phone_get_metrics - Advanced metrics
  • ๐Ÿ“ phone_get_logs - Detailed logs
  • ๐Ÿ—‚๏ธ phone_get_conversation_history - History

๐Ÿ’ก Use Cases

graph LR
    subgraph "Automation"
        A[Appointment<br/>Reminders] 
        B[Booking<br/>Confirmations]
        C[Automated<br/>Surveys]
    end
    
    subgraph "Support"
        D[Customer<br/>Service]
        E[Ticket<br/>Follow-up]
        F[Data<br/>Verification]
    end
    
    subgraph "Sales"
        G[Automated<br/>Prospecting]
        H[Lead<br/>Follow-up]
        I[Customer<br/>Qualification]
    end
    
    style A fill:#ffcdd2
    style B fill:#f8bbd9
    style C fill:#e1bee7
    style D fill:#c5cae9
    style E fill:#bbdefb
    style F fill:#b3e5fc
    style G fill:#b2dfdb
    style H fill:#c8e6c9
    style I fill:#dcedc8

๐Ÿ”„ Call States

stateDiagram-v2
    [*] --> Starting
    Starting --> Connecting: API Request
    Connecting --> Speaking: Connection OK
    Connecting --> Failed: No answer
    Speaking --> Completed: Conversation OK
    Speaking --> Cancelled: User Cancel
    Completed --> [*]
    Failed --> [*]
    Cancelled --> [*]
    
    note right of Speaking : Real-time<br/>Speech-to-Speech
    note right of Completed : Result processed<br/>and saved

๐Ÿ“– Complete Usage Example

๐ŸŽฌ Scenario: Medical Appointment Confirmation

// 1๏ธโƒฃ User tells Claude:
"Call Marรญa Gonzรกlez at 555-0123 to confirm her appointment tomorrow at 3pm"

// 2๏ธโƒฃ Claude automatically uses:
phone_make_call({
  usuario: "Marรญa Gonzรกlez",
  telefono: "555-0123", 
  proposito: "Confirm medical appointment for tomorrow 3pm",
  timeout: 60
})

// 3๏ธโƒฃ Automatic result:
"โœ… Call completed. Marรญa confirmed her appointment for tomorrow at 3pm. 
She also asked to change the time to 2:30pm if possible."

๐Ÿšฆ Monitoring Dashboard

pie title Call Distribution by Status
    "Completed" : 65
    "In Progress" : 15
    "Failed" : 12
    "Cancelled" : 8
xychart-beta
    title "Daily Calls (Last Week)"
    x-axis [Mon, Tue, Wed, Thu, Fri, Sat, Sun]
    y-axis "Number of Calls" 0 --> 50
    bar [23, 34, 28, 41, 38, 15, 8]

๐Ÿ”ง Local Development

๐Ÿ“‹ Requirements

  • ๐ŸŸข Node.js >= 18.0.0
  • ๐Ÿ“ฆ npm or pnpm
  • ๐Ÿ”ง TypeScript

๐Ÿ› ๏ธ Quick Setup

# ๐Ÿ“ฅ Clone repository
git clone <repository-url>
cd mcp-s2s-asterisk

# ๐Ÿ“ฆ Install dependencies  
npm install

# ๐Ÿ”จ Build project
npm run build

# ๐Ÿš€ Run server
npm run start

๐Ÿ“‹ Available Scripts

ScriptDescriptionCommand
๐Ÿ”จCompile TypeScriptnpm run build
๐Ÿ‘€Development modenpm run dev
๐ŸงชRun testsnpm run test
๐Ÿ”MCP Inspectornpm run inspector
๐Ÿ“ฆRelease patchnpm run release:patch

๐Ÿ“Š Performance Metrics

graph TB
    subgraph "Response Time"
        A[Connection: ~2s]
        B[Establishment: ~3s] 
        C[Conversation: Variable]
        D[Processing: ~1s]
    end
    
    subgraph "Success Rates"
        E[Connection: 95%]
        F[Completed: 87%]
        G[Satisfaction: 92%]
    end
    
    style E fill:#c8e6c9
    style F fill:#c8e6c9
    style G fill:#c8e6c9

๐Ÿ”’ Security & Compliance

  • ๐Ÿ” Authentication: Mandatory API Key
  • ๐Ÿ›ก๏ธ Encryption: TLS/SSL in transit
  • ๐Ÿ“ Logs: Complete call auditing
  • ๐Ÿ”’ Privacy: Locally processed data
  • โœ… GDPR: Privacy compliance

๐Ÿค Contributing

Do you like the project? We'd love your contribution!

GitHub Issues Pull Requests


๐Ÿ“„ License

MIT License - Use it, modify it, distribute it freely

License: MIT


๐ŸŒŸ Give it a star if you like the project! โญ

Made with โค๏ธ by @grec0

Transforming phone communication with conversational AI

Alternatives

Related Skills

Browse all skills
ui-design-system

UI design system toolkit for Senior UI Designer including design token generation, component documentation, responsive design calculations, and developer handoff tools. Use for creating design systems, maintaining visual consistency, and facilitating design-dev collaboration.

34
ai-sdk

Answer questions about the AI SDK and help build AI-powered features. Use when developers: (1) Ask about AI SDK functions like generateText, streamText, ToolLoopAgent, embed, or tools, (2) Want to build AI agents, chatbots, RAG systems, or text generation features, (3) Have questions about AI providers (OpenAI, Anthropic, Google, etc.), streaming, tool calling, structured output, or embeddings, (4) Use React hooks like useChat or useCompletion. Triggers on: "AI SDK", "Vercel AI SDK", "generateText", "streamText", "add AI to my app", "build an agent", "tool calling", "structured output", "useChat".

12
twilio-communications

Build communication features with Twilio: SMS messaging, voice calls, WhatsApp Business API, and user verification (2FA). Covers the full spectrum from simple notifications to complex IVR systems and multi-channel authentication. Critical focus on compliance, rate limits, and error handling. Use when: twilio, send SMS, text message, voice call, phone verification.

3
crewai-developer

Comprehensive CrewAI framework guide for building collaborative AI agent teams and structured workflows. Use when developing multi-agent systems with CrewAI, creating autonomous AI crews, orchestrating flows, implementing agents with roles and tools, or building production-ready AI automation. Essential for developers building intelligent agent systems, task automation, and complex AI workflows.

2
pamela-call

Make AI-powered phone calls with Pamela's voice API. Create outbound calls, register custom tools for mid-call actions, handle webhooks, and build React UIs. Use when the user wants to make phone calls, integrate voice AI, build IVR systems, navigate phone menus, or automate phone tasks.

1
mcp-developer

Use when building MCP servers or clients that connect AI systems with external tools and data sources. Invoke for MCP protocol compliance, TypeScript/Python SDKs, resource providers, tool functions.

1