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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
mail.notification (18.0/connect/models/mail.py)
- Class: MailNotification(models.Model)
- Inherits: 'mail.notification'
- Purpose: Extends notifications for telephony
- Key Fields: notification_type
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)
sms.composer (18.0/connect/wizard/sms_composer.py)
- Class: SendSMS(models.TransientModel)
- Inherits: 'sms.composer'
- Purpose: SMS composition wizard
- Key Fields: outgoing_callerid
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
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
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
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
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
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)
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
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
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)
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
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
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
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.