📄 Odoo Models Analysis Report

Odoo Models Analysis Report - 18.0 Version

Generated on: 2025-07-28

Repository: Connect Telecommunications System

Overview

This report contains a comprehensive analysis of all Odoo models defined in the 18.0 version of the Connect telecommunications system. The system consists of two main modules providing telephony services integrated with Twilio and AI-powered voice capabilities through ElevenLabs.

Total Models Found: 36

  • Connect Module: 24 models
  • Connect ElevenLabs Module: 12 models (7 inheritance extensions + 5 new models)

MODULE 1: CONNECT TELECOMMUNICATIONS

Core Communication Models

  1. connect.call (18.0/connect/models/call.py)

    • Class: Call(models.Model)
    • Description: 'Call'
    • Inherits: ['mail.thread', 'mail.activity.mixin']
    • Purpose: Main call record management
    • Key Fields: name, channels, recording, transcript, caller, called, partner, direction, status, duration, caller_user, answered_user, scheduled_datetime, voicemail_url
  2. connect.channel (18.0/connect/models/channel.py)

    • Class: Channel(models.Model)
    • Description: 'Channel'
    • Inherits: 'mail.thread'
    • Purpose: Individual call channel management
    • Key Fields: call, sid, parent_channel, partner, called, to, technical_direction, status, duration, caller, caller_pbx_user, called_pbx_user, caller_user, called_user
  3. connect.message (18.0/connect/models/message.py)

    • Class: ConnectMessage(models.Model)
    • Description: 'Twilio Message'
    • Purpose: SMS/MMS message management
    • Key Fields: name, message_sid, from_number, to_number, body, num_media, message_type, status, sender_user, receiver_user, partner, media_url
  4. connect.recording (18.0/connect/models/recording.py)

    • Class: Recording(models.Model)
    • Description: 'Recording'
    • Inherits: ['mail.thread', 'mail.activity.mixin']
    • Purpose: Call recording management
    • Key Fields: call, channel, partner, sid, call_sid, caller_user, called_user, media_url, duration, transcript, summary

System Configuration Models

  1. connect.settings (18.0/connect/models/settings.py)

    • Class: Settings(models.Model)
    • Description: 'Settings'
    • Purpose: Global system configuration
    • Key Fields: name, debug_mode, account_sid, auth_token, twilio_api_key, twilio_api_secret, openai_api_key, proxy_recordings, transcript_calls, summary_prompt
  2. connect.debug (18.0/connect/models/debug.py)

    • Class: Debug(models.Model)
    • Description: 'Connect Debug'
    • Purpose: System debugging and logging
    • Key Fields: model, message

Telephony Infrastructure Models

  1. connect.domain (18.0/connect/models/domain.py)

    • Class: Domain(models.Model)
    • Description: 'Twilio Domain'
    • Purpose: SIP domain management
    • Key Fields: sid, application, cred_list_sid, subdomain, domain_name, friendly_name, sip_registration, delete_protection
  2. connect.number (18.0/connect/models/number.py)

    • Class: Number(models.Model)
    • Description: 'Phone Number'
    • Purpose: Phone number management and routing
    • Key Fields: sid, phone_number, friendly_name, destination, callflow, user, twiml, voice_url, message_url
  3. connect.outgoing_callerid (18.0/connect/models/outgoing_callerid.py)

    • Class: OutgoingCallerID(models.Model)
    • Description: 'Outgoing CallerId'
    • Purpose: Caller ID verification and management
    • Key Fields: name, sid, friendly_name, number, status, validation_code, callerid_type, is_default

Call Flow and Extension Models

  1. connect.callflow (18.0/connect/models/callflow.py)

    • Class: CallFlow(models.Model)
    • Description: 'Call Flow'
    • Purpose: Interactive voice response (IVR) system
    • Key Fields: name, exten, language, voice, gather_input, prompt_message, choices, ring_users, record_calls, voicemail_enabled
  2. connect.callflow_choice (18.0/connect/models/callflow.py)

    • Class: CallflowChoice(models.Model)
    • Description: 'Callflow Choice'
    • Purpose: IVR menu options
    • Key Fields: callflow, choice_digits, exten, speech
  3. connect.exten (18.0/connect/models/exten.py)

    • Class: Exten(models.Model)
    • Description: 'Exten'
    • Purpose: Extension number routing
    • Key Fields: name, number, model, res_id, dst, dst_name, twiml

User and Contact Models

  1. connect.user (18.0/connect/models/user.py)

    • Class: User(models.Model)
    • Description: 'Twilio User'
    • Purpose: SIP user account management
    • Key Fields: sid, exten, sip_enabled, client_enabled, user, domain, username, password, uri, record_calls, voicemail_enabled, outgoing_callerid
  2. connect.favorite (18.0/connect/models/favorite.py)

    • Class: Favorite(models.Model)
    • Description: 'Favorite'
    • Purpose: User's favorite contacts
    • Key Fields: name, phone_number, user, partner

TwiML and Application Models

  1. connect.twiml (18.0/connect/models/twiml.py)

    • Class: TwiML(models.Model)
    • Description: 'TwiML app'
    • Purpose: Twilio Markup Language applications
    • Key Fields: sid, name, description, code_type, twiml, twipy, model, method, voice_url, exten

Additional Configuration Models

  1. connect.message_configuration (18.0/connect/models/message_configuration.py)

    • Class: ConnectMessageConfiguration(models.Model)
    • Description: 'Twilio Message Configuration'
    • Purpose: SMS/MMS configuration per number
    • Key Fields: number, model, default_values
  2. connect.scheduled_call (18.0/connect/models/scheduled_call.py)

    • Class: ScheduledCall(models.Model)
    • Description: 'Scheduled Call'
    • Purpose: Call scheduling functionality
    • Key Fields: partner, calling_user, calling_pbx_user

Extended Standard Odoo Models

  1. res.partner (18.0/connect/models/res_partner.py)

    • Class: Partner(models.Model)
    • Inherits: 'res.partner'
    • Purpose: Extends contacts with telephony features
    • Key Fields: connect_calls_count, connect_recorded_calls, connect_phone_normalized, connect_mobile_normalized, connect_user
  2. res.users (18.0/connect/models/res_users.py)

    • Class: ResUser(models.Model)
    • Inherits: 'res.users'
    • Purpose: Extends users with telephony features
    • Key Fields: connect_user, pin_code
  3. mail.message (18.0/connect/models/mail.py)

    • Class: MailMessage(models.Model)
    • Inherits: 'mail.message'
    • Purpose: Integrates telephony with mail system
    • Key Fields: connect_message, message_type
  4. mail.notification (18.0/connect/models/mail.py)

    • Class: MailNotification(models.Model)
    • Inherits: 'mail.notification'
    • Purpose: Extends notifications for telephony
    • Key Fields: notification_type
  5. sms.sms (18.0/connect/models/sms_sms.py)

    • Class: SmsSms(models.Model)
    • Inherits: 'sms.sms'
    • Purpose: Overrides SMS sending mechanism
    • Key Fields: (override send method)

Wizard Models (Transient)

  1. sms.composer (18.0/connect/wizard/sms_composer.py)

    • Class: SendSMS(models.TransientModel)
    • Inherits: 'sms.composer'
    • Purpose: SMS composition wizard
    • Key Fields: outgoing_callerid
  2. connect.transfer_wizard (18.0/connect/wizard/transfer.py)

    • Class: PhoneWizard(models.TransientModel)
    • Description: 'Transfer Wizard'
    • Purpose: Call transfer functionality
    • Key Fields: phone_number

MODULE 2: CONNECT ELEVENLABS (AI VOICE)

AI Agent Models

  1. connect.elevenlabs_agent (18.0/connect_elevenlabs/models/agent.py)

    • Class: ElevenlabsAgent(models.Model)
    • Description: 'Elevenlabs Agent'
    • Purpose: AI voice agent configuration
    • Key Fields: name, voice, first_message, prompt, language, tools, temperature, max_tokens, llm, agent_uid, knowledge_base_name, use_flash, stability, speed
  2. connect.elevenlabs_agent_tool (18.0/connect_elevenlabs/models/agent_tool.py)

    • Class: ElevenlabsAgentTool(models.Model)
    • Description: 'Elevenlabs Agent Tool'
    • Purpose: AI agent available tools
    • Key Fields: name, is_enabled, description, tool_type, path, url, method, params, response_timeout_secs
  3. connect.agent_tool_params (18.0/connect_elevenlabs/models/agent_tool.py)

    • Class: ElevenlabsAgentToolparams(models.Model)
    • Description: 'Elevenlabs Agent Tool Parameters'
    • Purpose: Parameters for AI agent tools
    • Key Fields: name, data_type, required, value_type, constant_value, dynamic_variable, description, tool

Voice and File Models

  1. connect.elevenlabs_voice (18.0/connect_elevenlabs/models/voice.py)

    • Class: ElevenlabsVoice(models.Model)
    • Description: 'Elevenlabs Voice'
    • Purpose: AI voice profiles management
    • Key Fields: voice_id, name, language, accent, age, gender, preview_url, preview_audio, description
  2. connect.elevenlabs_file (18.0/connect_elevenlabs/models/file.py)

    • Class: ElevenlabsFile(models.Model)
    • Description: 'Elevenlabs file'
    • Purpose: Audio file management for AI agents
    • Key Fields: text, file, filename, preview_audio

Extended Connect Models (Inheritance)

  1. connect.call (18.0/connect_elevenlabs/models/call.py)

    • Class: Call(models.Model)
    • Inherits: 'connect.call'
    • Purpose: Extends calls with AI agent features
    • Key Fields: elevenlabs_agent, elevenlabs_summary, elevenlabs_transcript, elevenlabs_conversation_id, elevenlabs_recording_widget
  2. connect.callflow (18.0/connect_elevenlabs/models/callflow.py)

    • Class: ElevenLabsCallflow(models.Model)
    • Inherits: 'connect.callflow'
    • Purpose: Extends callflows with AI capabilities
    • Key Fields: elevenlabs_enabled, prompt_message_file, invalid_input_message_file, voicemail_prompt_file
  3. connect.exten (18.0/connect_elevenlabs/models/exten.py)

    • Class: Exten(models.Model)
    • Inherits: 'connect.exten'
    • Purpose: Extends extensions with AI routing
    • Key Fields: dst (extended selection)
  4. connect.number (18.0/connect_elevenlabs/models/number.py)

    • Class: ElevenlabsNumber(models.Model)
    • Inherits: 'connect.number'
    • Purpose: Extends numbers with AI agent assignment
    • Key Fields: destination (extended selection), elevenlabs_agent
  5. connect.recording (18.0/connect_elevenlabs/models/recording.py)

    • Class: Recording(models.Model)
    • Inherits: 'connect.recording'
    • Purpose: Extends recordings with AI processing
    • Key Fields: elevenlabs_transcript, elevenlabs_summary, elevenlabs_media_file, elevenlabs_recording_widget
  6. connect.settings (18.0/connect_elevenlabs/models/settings.py)

    • Class: Elevenlabsettings(models.Model)
    • Inherits: 'connect.settings'
    • Purpose: Extends settings with ElevenLabs configuration
    • Key Fields: elevenlabs_api_key, elevenlabs_agent_token, elevenlabs_voice, elevenlabs_enabled, elevenlabs_agent_url
  7. connect.user (18.0/connect_elevenlabs/models/user.py)

    • Class: ElevenLabsUser(models.Model)
    • Inherits: 'connect.user'
    • Purpose: Extends users with AI voice features
    • Key Fields: elevenlabs_enabled, voicemail_prompt_file, voicemail_prompt_widget

Model Categories Summary

By Type:

  • Standard Models (models.Model): 31
  • Transient Models (models.TransientModel): 2
  • Abstract Models (models.AbstractModel): 0

By Purpose:

  • Core Communication: 4 models (call, channel, message, recording)
  • System Configuration: 2 models (settings, debug)
  • Telephony Infrastructure: 3 models (domain, number, outgoing_callerid)
  • Call Flow & Extensions: 3 models (callflow, callflow_choice, exten)
  • User Management: 2 models (user, favorite)
  • TwiML Applications: 1 model (twiml)
  • Additional Configuration: 2 models (message_configuration, scheduled_call)
  • Extended Standard Models: 5 models (res.partner, res.users, mail.message, mail.notification, sms.sms)
  • Wizard Models: 2 models (sms.composer, transfer_wizard)
  • AI Agent Models: 3 models (agent, agent_tool, agent_tool_params)
  • AI Voice & Files: 2 models (voice, file)
  • Extended Connect Models: 7 models (inheritance extensions)

Integration Points:

  • Twilio Integration: Core telephony services, SIP, SMS/MMS
  • ElevenLabs Integration: AI voice agents, voice synthesis
  • Odoo Integration: Mail system, SMS system, Partner management, User management
  • OpenAI Integration: Call transcription and summarization

Technical Notes

Database Tables:

Each model creates a corresponding PostgreSQL table in the Odoo database with the naming convention using underscores (e.g., connect_call, connect_elevenlabs_agent).

Security:

Security rules and access control are defined in XML files in the security/ directories of each module.

Views:

User interface definitions are stored in XML files in the views/ directories, providing forms, lists, and other UI elements for each model.

Dependencies:

  • Connect module depends on: mail, sms, base, contacts
  • Connect ElevenLabs module depends on: connect module

This comprehensive analysis reveals a sophisticated telecommunications system with advanced AI capabilities, providing a complete business communication platform integrated with popular third-party services.