CRM Phone

crm_phone
REPOSITORY
REPOSITORYOCA/connector-telephony
GIT
GIThttps://github.com/OCA/connector-telephony.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/connector-telephony/tree/14.0/crm_phone
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYPhone
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/connector-telephony
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/connector-telephony:
    - base_phone
odoo/odoo:
    - phone_validation
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - crm
    - sales_team
    - calendar
    - resource
    - fetchmail
    - utm
    - contacts
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
create_crm_phonecall_view create_crm_phonecall.view wizard.create.crm.phonecall form New
crm_lead_view_form crm_phone.crm_lead.form crm.lead div Inherits crm.crm_lead_view_form
crm_phonecall_calendar crm.phonecall.calendar crm.phonecall calendar New
crm_phonecall_form crm.phonecall.form crm.phonecall form New
crm_phonecall_search crm.phonecall.search crm.phonecall search New
crm_phonecall_tree crm.phonecall.tree crm.phonecall tree New
number_not_found_form crm_phone.number.not.found.form number.not.found group Inherits base_phone.number_not_found_form
view_partner_form phonecall.res.partner.form res.partner div Inherits base.view_partner_form
view_users_form crm.phone.res.users.form res.users group Inherits base_phone.view_users_form
view_users_form_simple_modif crm.phone.preferences.option.view res.users group Inherits base_phone.view_users_form_simple_modif
Models touched (7)

New fields (2)
  • phonecall_count Integer
    compute='_compute_phonecall_count' string='Number of Phonecalls'
  • phonecall_ids One2many → crm.phonecall
    string='Phone Calls' args: 'crm.phonecall', 'opportunity_id'
Public methods (1)
  • name_get(self)

New fields (13)
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • date Datetime
    copy=False default=<expr> string='Date' tracking=True
  • description Text
    copy=False string='Description'
  • direction Selection
    default='outbound' required=True string='Type' args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
  • name Char
    required=True string='Call Summary' tracking=True
  • opportunity_id Many2one → crm.lead
    ondelete='cascade' string='Lead/Opportunity' tracking=True args: 'crm.lead'
  • partner_id Many2one → res.partner
    ondelete='cascade' string='Contact' args: 'res.partner'
  • partner_mobile Char
    string='Mobile'
  • partner_phone Char
    string='Phone'
  • priority Selection
    default='1' string='Priority' tracking=True args: [('0', 'Low'), ('1', 'Normal'), ('2', 'High')]
  • state Selection
    copy=False default='open' help='The status is set to Confirmed, when a case is created.\nWhen the call is over, the status is set to Held.\nIf the call is not applicable anymore, the status can be set to Cancelled.' required=True string='Status' tracking=True args: [('open', 'To Do'), ('done', 'Held'), ('cancel', 'Cancelled')]
  • team_id Many2one → crm.team
    default=<expr> string='Sales Team' tracking=True args: 'crm.team'
  • user_id Many2one → res.users
    default=<expr> string='Responsible' tracking=True args: 'res.users'
Public methods (5)
  • onchange_opportunity_id(self)
    @api.onchange('opportunity_id')
  • onchange_partner_id(self)
    @api.onchange('partner_id')
  • onchange_partner_mobile(self)
    @api.onchange('partner_mobile')
  • onchange_partner_phone(self)
    @api.onchange('partner_phone')
  • schedule_another_call(self)

New fields (3)
  • current_lead_mobile Char
    related='to_update_lead_id.mobile'
  • current_lead_phone Char
    related='to_update_lead_id.phone'
  • to_update_lead_id Many2one → crm.lead
    help='Lead or opportunity on which the phone number will be written.' string='Lead or Opportunity to Update' args: 'crm.lead'
Public methods (3)
  • create_lead(self)
    Function called by the related button of the wizard
  • create_opportunity(self)
    Function called by the related button of the wizard
  • update_lead(self)

New fields (0)

No new fields.

Public methods (1)
  • click2dial(self, erp_number)
    @api.model

New fields (2)
  • phonecall_count Integer
    compute='_compute_phonecall_count' string='Number of Phonecalls'
  • phonecall_ids One2many → crm.phonecall
    string='Phone Calls' args: 'crm.phonecall', 'partner_id'
Public methods (0)

No public methods.

New fields (1)
  • context_propose_creation_crm_call Boolean
    default=True string='Propose to create a call in CRM after a click2dial'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • button_create_outgoing_phonecall(self)
REPOSITORY
REPOSITORYOCA/connector-telephony
GIT
GIThttps://github.com/OCA/connector-telephony.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/connector-telephony/tree/12.0/crm_phone
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYPhone
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, OCA Transbot, Emanuel Cino, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttp://www.akretion.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/connector-telephony:
    - base_phone
odoo/odoo:
    - phone_validation
    - base
    - base_setup
    - web
    - crm_phone_validation
    - crm
    - sales_team
    - mail
    - bus
    - web_tour
    - calendar
    - resource
    - fetchmail
    - utm
    - contacts
    - digest
    - portal
    - http_routing
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
CRM Phone
=========

This module validate phone numbers in the CRM module, just like the
*base_phone* module valide phone numbers in the Partner form. Please refer to
the description of the *base_phone* module for more information.

This module is independant from the Asterisk connector.

Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com>
for any help or question about this module.

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
create_crm_phonecall_view create_crm_phonecall.view wizard.create.crm.phonecall form New
crm_case_form_view_leads crm_phone.crm_lead.form crm.lead div Inherits crm.crm_case_form_view_leads
crm_case_form_view_oppor crm_phone.case.view_opportuniy.form crm.lead div Inherits crm.crm_case_form_view_oppor
crm_phonecall_calendar crm.phonecall.calendar crm.phonecall calendar New
crm_phonecall_form crm.phonecall.form crm.phonecall form New
crm_phonecall_search crm.phonecall.search crm.phonecall search New
crm_phonecall_tree crm.phonecall.tree crm.phonecall tree New
number_not_found_form crm_phone.number.not.found.form number.not.found group Inherits base_phone.number_not_found_form
view_partner_form phonecall.res.partner.form res.partner div Inherits base.view_partner_form
view_users_form crm.phone.res.users.form res.users group Inherits base_phone.view_users_form
view_users_form_simple_modif crm.phone.preferences.option.view res.users group Inherits base_phone.view_users_form_simple_modif
Models touched (7)

New fields (3)
  • partner_address_mobile Char
    readonly=True related='partner_id.mobile' string='Partner Contact Mobile'
  • phonecall_count Integer
    compute='_compute_phonecall_count' readonly=True string='Number of Phonecalls'
  • phonecall_ids One2many → crm.phonecall
    string='Phone Calls' args: 'crm.phonecall', 'opportunity_id'
Public methods (1)
  • name_get(self)

New fields (13)
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • date Datetime
    copy=False default=<expr> string='Date' track_visibility='onchange'
  • description Text
    copy=False string='Description'
  • direction Selection
    default='outbound' required=True string='Type' args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
  • name Char
    required=True string='Call Summary' track_visibility='onchange'
  • opportunity_id Many2one → crm.lead
    ondelete='cascade' string='Lead/Opportunity' track_visibility='onchange' args: 'crm.lead'
  • partner_id Many2one → res.partner
    ondelete='cascade' string='Contact' args: 'res.partner'
  • partner_mobile Char
    string='Mobile'
  • partner_phone Char
    string='Phone'
  • priority Selection
    default='1' string='Priority' track_visibility='onchange' args: [('0', 'Low'), ('1', 'Normal'), ('2', 'High')]
  • state Selection
    copy=False default='open' help='The status is set to Confirmed, when a case is created.\nWhen the call is over, the status is set to Held.\nIf the call is not applicable anymore, the status can be set to Cancelled.' required=True string='Status' track_visibility='onchange' args: [('open', 'To Do'), ('done', 'Held'), ('cancel', 'Cancelled')]
  • team_id Many2one → crm.team
    default=<expr> string='Sales Team' track_visibility='onchange' args: 'crm.team'
  • user_id Many2one → res.users
    default=<expr> string='Responsible' track_visibility='onchange' args: 'res.users'
Public methods (5)
  • onchange_opportunity_id(self)
    @api.onchange('opportunity_id')
  • onchange_partner_id(self)
    @api.onchange('partner_id')
  • onchange_partner_mobile(self)
    @api.onchange('partner_mobile')
  • onchange_partner_phone(self)
    @api.onchange('partner_phone')
  • schedule_another_call(self)

New fields (3)
  • current_lead_mobile Char
    readonly=True related='to_update_lead_id.mobile'
  • current_lead_phone Char
    readonly=True related='to_update_lead_id.phone'
  • to_update_lead_id Many2one → crm.lead
    help='Lead or opportunity on which the phone number will be written.' string='Lead or Opportunity to Update' args: 'crm.lead'
Public methods (3)
  • create_lead(self)
    Function called by the related button of the wizard
  • create_opportunity(self)
    Function called by the related button of the wizard
  • update_lead(self)

New fields (0)

No new fields.

Public methods (1)
  • click2dial(self, erp_number)
    @api.model

New fields (2)
  • phonecall_count Integer
    compute='_compute_phonecall_count' readonly=True string='Number of Phonecalls'
  • phonecall_ids One2many → crm.phonecall
    string='Phone Calls' args: 'crm.phonecall', 'partner_id'
Public methods (0)

No public methods.

New fields (1)
  • context_propose_creation_crm_call Boolean
    default=True string='Propose to create a call in CRM after a click2dial'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • button_create_outgoing_phonecall(self)
REPOSITORY
REPOSITORYOCA/connector-telephony
GIT
GIThttps://github.com/OCA/connector-telephony.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/connector-telephony/tree/11.0/crm_phone
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPhone
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttp://www.akretion.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/connector-telephony:
    - base_phone
odoo/odoo:
    - phone_validation
    - base
    - base_setup
    - web
    - crm_phone_validation
    - crm
    - sales_team
    - mail
    - bus
    - web_tour
    - calendar
    - resource
    - fetchmail
    - utm
    - web_planner
    - contacts
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
CRM Phone
=========

This module validate phone numbers in the CRM module, just like the
*base_phone* module valide phone numbers in the Partner form. Please refer to
the description of the *base_phone* module for more information.

This module is independant from the Asterisk connector.

Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com>
for any help or question about this module.

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
create_crm_phonecall_view create_crm_phonecall.view wizard.create.crm.phonecall form New
crm_case_form_view_leads crm_phone.crm_lead.form crm.lead div Inherits crm.crm_case_form_view_leads
crm_case_form_view_oppor crm_phone.case.view_opportuniy.form crm.lead div Inherits crm.crm_case_form_view_oppor
crm_phonecall_calendar crm.phonecall.calendar crm.phonecall calendar New
crm_phonecall_form crm.phonecall.form crm.phonecall form New
crm_phonecall_search crm.phonecall.search crm.phonecall search New
crm_phonecall_tree crm.phonecall.tree crm.phonecall tree New
number_not_found_form crm_phone.number.not.found.form number.not.found group Inherits base_phone.number_not_found_form
view_partner_form phonecall.res.partner.form res.partner div Inherits base.view_partner_form
view_users_form crm.phone.res.users.form res.users group Inherits base_phone.view_users_form
view_users_form_simple_modif crm.phone.preferences.option.view res.users group Inherits base_phone.view_users_form_simple_modif
Models touched (7)

New fields (3)
  • partner_address_mobile Char
    readonly=True related='partner_id.mobile' string='Partner Contact Mobile'
  • phonecall_count Integer
    compute='_compute_phonecall_count' readonly=True string='Number of Phonecalls'
  • phonecall_ids One2many → crm.phonecall
    string='Phone Calls' args: 'crm.phonecall', 'opportunity_id'
Public methods (1)
  • name_get(self)

New fields (13)
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • date Datetime
    copy=False default=<expr> string='Date' track_visibility='onchange'
  • description Text
    copy=False string='Description'
  • direction Selection
    default='outbound' required=True string='Type' args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
  • name Char
    required=True string='Call Summary' track_visibility='onchange'
  • opportunity_id Many2one → crm.lead
    ondelete='cascade' string='Lead/Opportunity' track_visibility='onchange' args: 'crm.lead'
  • partner_id Many2one → res.partner
    ondelete='cascade' string='Contact' args: 'res.partner'
  • partner_mobile Char
    string='Mobile'
  • partner_phone Char
    string='Phone'
  • priority Selection
    default='1' string='Priority' track_visibility='onchange' args: [('0', 'Low'), ('1', 'Normal'), ('2', 'High')]
  • state Selection
    copy=False default='open' help='The status is set to Confirmed, when a case is created.\nWhen the call is over, the status is set to Held.\nIf the call is not applicable anymore, the status can be set to Cancelled.' required=True string='Status' track_visibility='onchange' args: [('open', 'To Do'), ('done', 'Held'), ('cancel', 'Cancelled')]
  • team_id Many2one → crm.team
    default=<expr> string='Sales Team' track_visibility='onchange' args: 'crm.team'
  • user_id Many2one → res.users
    default=<expr> string='Responsible' track_visibility='onchange' args: 'res.users'
Public methods (5)
  • onchange_opportunity_id(self)
    @api.onchange('opportunity_id')
  • onchange_partner_id(self)
    @api.onchange('partner_id')
  • onchange_partner_mobile(self)
    @api.onchange('partner_mobile')
  • onchange_partner_phone(self)
    @api.onchange('partner_phone')
  • schedule_another_call(self)

New fields (3)
  • current_lead_mobile Char
    readonly=True related='to_update_lead_id.mobile'
  • current_lead_phone Char
    readonly=True related='to_update_lead_id.phone'
  • to_update_lead_id Many2one → crm.lead
    help='Lead or opportunity on which the phone number will be written.' string='Lead or Opportunity to Update' args: 'crm.lead'
Public methods (3)
  • create_lead(self)
    Function called by the related button of the wizard
  • create_opportunity(self)
    Function called by the related button of the wizard
  • update_lead(self)

New fields (0)

No new fields.

Public methods (1)
  • click2dial(self, erp_number)
    @api.model

New fields (2)
  • phonecall_count Integer
    compute='_compute_phonecall_count' readonly=True string='Number of Phonecalls'
  • phonecall_ids One2many → crm.phonecall
    string='Phone Calls' args: 'crm.phonecall', 'partner_id'
Public methods (0)

No public methods.

New fields (1)
  • context_propose_creation_crm_call Boolean
    default=True string='Propose to create a call in CRM after a click2dial'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • button_create_outgoing_phonecall(self)
REPOSITORY
REPOSITORYOCA/connector-telephony
GIT
GIThttps://github.com/OCA/connector-telephony.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/connector-telephony/tree/10.0/crm_phone
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPhone
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Pedro M. Baeza, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttp://www.akretion.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/connector-telephony:
    - base_phone
odoo/odoo:
    - base_setup
    - base
    - web_kanban
    - web
    - crm
    - base_action_rule
    - resource
    - mail
    - bus
    - web_tour
    - sales_team
    - calendar
    - web_calendar
    - fetchmail
    - utm
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
CRM Phone
=========

This module validate phone numbers in the CRM module, just like the
*base_phone* module valide phone numbers in the Partner form. Please refer to
the description of the *base_phone* module for more information.

This module is independant from the Asterisk connector.

Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com>
for any help or question about this module.

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
create_crm_phonecall_view create_crm_phonecall.view wizard.create.crm.phonecall form New
crm_case_form_view_leads crm_phone.crm_lead.form crm.lead div Inherits crm.crm_case_form_view_leads
crm_case_form_view_oppor crm_phone.case.view_opportuniy.form crm.lead div Inherits crm.crm_case_form_view_oppor
crm_phonecall_calendar crm.phonecall.calendar crm.phonecall calendar New
crm_phonecall_form crm.phonecall.form crm.phonecall form New
crm_phonecall_search crm.phonecall.search crm.phonecall search New
crm_phonecall_tree crm.phonecall.tree crm.phonecall tree New
number_not_found_form crm_phone.number.not.found.form number.not.found group Inherits base_phone.number_not_found_form
view_partner_form phonecall.res.partner.form res.partner div Inherits base.view_partner_form
view_users_form crm.phone.res.users.form res.users group Inherits base_phone.view_users_form
view_users_form_simple_modif crm.phone.preferences.option.view res.users group Inherits base_phone.view_users_form_simple_modif
Models touched (7)

New fields (2)
  • phonecall_count Integer
    compute='_count_phonecalls' readonly=True string='Number of Phonecalls'
  • phonecall_ids One2many → crm.phonecall
    string='Phone Calls' args: 'crm.phonecall', 'opportunity_id'
Public methods (1)
  • name_get(self)
    @api.multi

New fields (11)
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • date Datetime
    copy=False default=<expr> string='Date' track_visibility='onchange'
  • description Text
    copy=False string='Description'
  • direction Selection
    default='outbound' required=True string='Type' args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
  • name Char
    required=True string='Call Summary' track_visibility='onchange'
  • opportunity_id Many2one → crm.lead
    ondelete='cascade' string='Lead/Opportunity' track_visibility='onchange' args: 'crm.lead'
  • partner_id Many2one → res.partner
    ondelete='cascade' string='Contact' args: 'res.partner'
  • priority Selection
    default='1' string='Priority' track_visibility='onchange' args: [('0', 'Low'), ('1', 'Normal'), ('2', 'High')]
  • state Selection
    copy=False default='open' help='The status is set to Confirmed, when a case is created.\nWhen the call is over, the status is set to Held.\nIf the call is not applicable anymore, the status can be set to Cancelled.' required=True string='Status' track_visibility='onchange' args: [('open', 'To Do'), ('done', 'Held'), ('cancel', 'Cancelled')]
  • team_id Many2one → crm.team
    default=<expr> string='Sales Team' track_visibility='onchange' args: 'crm.team'
  • user_id Many2one → res.users
    default=<expr> string='Responsible' track_visibility='onchange' args: 'res.users'
Public methods (3)
  • onchange_opportunity_id(self)
    @api.onchange('opportunity_id')
  • onchange_partner_id(self)
    @api.onchange('partner_id')
  • schedule_another_call(self)
    @api.multi

New fields (1)
  • to_update_lead_id Many2one → crm.lead
    domain=[('type', '=', 'lead')] help='Lead on which the phone number will be written' string='Lead to Update' args: 'crm.lead'
Public methods (2)
  • create_lead(self)
    @api.multi
    Function called by the related button of the wizard
  • update_lead(self)
    @api.multi

New fields (0)

No new fields.

Public methods (1)
  • click2dial(self, erp_number)
    @api.model

New fields (2)
  • phonecall_count Integer
    compute='_count_phonecalls' readonly=True string='Number of Phonecalls'
  • phonecall_ids One2many → crm.phonecall
    string='Phone Calls' args: 'crm.phonecall', 'partner_id'
Public methods (0)

No public methods.

New fields (1)
  • context_propose_creation_crm_call Boolean
    default=True string='Propose to create a call in CRM after a click2dial'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • button_create_outgoing_phonecall(self)
    @api.multi
REPOSITORY
REPOSITORYOCA/connector-telephony
GIT
GIThttps://github.com/OCA/connector-telephony.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/connector-telephony/tree/9.0/crm_phone
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPhone
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Pedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), jbeficent, OCA-git-bot
WEBSITE
WEBSITEhttp://www.akretion.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/connector-telephony:
    - base_phone
odoo/odoo:
    - base
    - web
    - crm
    - base_action_rule
    - resource
    - mail
    - base_setup
    - web_kanban
    - bus
    - sales_team
    - calendar
    - web_calendar
    - fetchmail
    - utm
    - marketing
    - web_tip
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
CRM Phone
=========

This module validate phone numbers in the CRM module, just like the
*base_phone* module valide phone numbers in the Partner form. Please refer to
the description of the *base_phone* module for more information.

This module is independant from the Asterisk connector.

Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com>
for any help or question about this module.

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
create_crm_phonecall_view create_crm_phonecall.view wizard.create.crm.phonecall form New
crm_case_form_view_leads crm_phone.crm_lead.form crm.lead field Inherits crm.crm_case_form_view_leads
crm_case_form_view_oppor crm_phone.case.view_opportuniy.form crm.lead field Inherits crm.crm_case_form_view_oppor
crm_case_tree_view_leads crm_phone.crm_lead.tree crm.lead field Inherits crm.crm_case_tree_view_leads
crm_phonecall_calendar crm.phonecall.calendar crm.phonecall calendar New
crm_phonecall_form crm.phonecall.form crm.phonecall form New
crm_phonecall_search crm.phonecall.search crm.phonecall search New
crm_phonecall_tree crm.phonecall.tree crm.phonecall tree New
number_not_found_form crm_phone.number.not.found.form number.not.found group Inherits base_phone.number_not_found_form
view_partner_form phonecall.res.partner.form res.partner div Inherits base.view_partner_form
view_users_form crm.phone.res.users.form res.users group Inherits base_phone.view_users_form
view_users_form_simple_modif crm.phone.preferences.option.view res.users group Inherits base_phone.view_users_form_simple_modif
Models touched (7)

New fields (2)
  • phonecall_count Integer
    compute='_count_phonecalls' readonly=True string='Number of Phonecalls'
  • phonecall_ids One2many → crm.phonecall
    string='Phone Calls' args: 'crm.phonecall', 'opportunity_id'
Public methods (1)
  • name_get(self)
    @api.multi

New fields (11)
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • date Datetime
    copy=False default=<expr> string='Date' track_visibility='onchange'
  • description Text
    copy=False string='Description'
  • direction Selection
    default='outbound' required=True string='Type' args: [('inbound', 'Inbound'), ('outbound', 'Outbound')]
  • name Char
    required=True string='Call Summary' track_visibility='onchange'
  • opportunity_id Many2one → crm.lead
    ondelete='cascade' string='Lead/Opportunity' track_visibility='onchange' args: 'crm.lead'
  • partner_id Many2one → res.partner
    ondelete='cascade' string='Contact' args: 'res.partner'
  • priority Selection
    default='1' string='Priority' track_visibility='onchange' args: [('0', 'Low'), ('1', 'Normal'), ('2', 'High')]
  • state Selection
    copy=False default='open' help='The status is set to Confirmed, when a case is created.\nWhen the call is over, the status is set to Held.\nIf the call is not applicable anymore, the status can be set to Cancelled.' required=True string='Status' track_visibility='onchange' args: [('open', 'To Do'), ('done', 'Held'), ('cancel', 'Cancelled')]
  • team_id Many2one → crm.team
    default=<expr> string='Sales Team' track_visibility='onchange' args: 'crm.team'
  • user_id Many2one → res.users
    default=<expr> string='Responsible' track_visibility='onchange' args: 'res.users'
Public methods (3)
  • onchange_opportunity_id(self)
    @api.onchange('opportunity_id')
  • onchange_partner_id(self)
    @api.onchange('partner_id')
  • schedule_another_call(self)
    @api.multi

New fields (3)
  • current_lead_mobile Char
    readonly=True related='to_update_lead_id.mobile' string='Current Mobile'
  • current_lead_phone Char
    readonly=True related='to_update_lead_id.phone' string='Current Phone'
  • to_update_lead_id Many2one → crm.lead
    domain=[('type', '=', 'lead')] help='Lead on which the phone number will be written' string='Lead to Update' args: 'crm.lead'
Public methods (2)
  • create_lead(self)
    @api.multi
    Function called by the related button of the wizard
  • update_lead(self)
    @api.multi

New fields (0)

No new fields.

Public methods (1)
  • click2dial(self, erp_number)
    @api.model

New fields (2)
  • phonecall_count Integer
    compute='_count_phonecalls' readonly=True string='Number of Phonecalls'
  • phonecall_ids One2many → crm.phonecall
    string='Phone Calls' args: 'crm.phonecall', 'partner_id'
Public methods (0)

No public methods.

New fields (1)
  • context_propose_creation_crm_call Boolean
    default=True string='Propose to create a call in CRM after a click2dial'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • button_create_outgoing_phonecall(self)
    @api.multi
REPOSITORY
REPOSITORYOCA/connector-telephony
GIT
GIThttps://github.com/OCA/connector-telephony.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/connector-telephony/tree/8.0/crm_phone
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYPhone
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSStéphane Bidoul, Alexis de Lattre, Alexandre Fayolle, Sandy Carter, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, OCA-git-bot, Matjaž Mozetič
WEBSITE
WEBSITEhttp://www.akretion.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/connector-telephony:
    - base_phone
odoo/odoo:
    - base
    - web
    - crm
    - base_action_rule
    - resource
    - mail
    - base_setup
    - web_kanban
    - sales_team
    - web_kanban_sparkline
    - email_template
    - calendar
    - web_calendar
    - board
    - fetchmail
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
CRM Phone
=========

This module validate phone numbers in the CRM module, just like the
*base_phone* module valide phone numbers in the Partner form. Please refer to
the description of the *base_phone* module for more information.

This module is independant from the Asterisk connector.

Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com>
for any help or question about this module.

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
create_crm_phonecall_view create_crm_phonecall.view wizard.create.crm.phonecall form New
crm_case_form_view_leads crm_phone.crm_lead.form crm.lead field Inherits crm.crm_case_form_view_leads
crm_case_form_view_oppor crm_phone.case.view_opportuniy.form crm.lead field Inherits crm.crm_case_form_view_oppor
crm_case_phone_form_view crm_phone.crm_phonecall.form crm.phonecall field Inherits crm.crm_case_phone_form_view
crm_case_phone_tree_view crm_phone.crm_phonecall.tree crm.phonecall field Inherits crm.crm_case_phone_tree_view
crm_case_tree_view_leads crm_phone.crm_lead.tree crm.lead field Inherits crm.crm_case_tree_view_leads
number_not_found_form crm_phone.number.not.found.form number.not.found group Inherits base_phone.number_not_found_form
view_users_form crm.phone.res.users.form res.users group Inherits base_phone.view_users_form
view_users_form_simple_modif crm.phone.preferences.option.view res.users group Inherits base_phone.view_users_form_simple_modif
Models touched (6)

New fields (0)

No new fields.

Public methods (3)
  • create(self, cr, uid, vals, context=None)
  • name_get(self, cr, uid, ids, context=None)
  • write(self, cr, uid, ids, vals, context=None)

New fields (0)

No new fields.

Public methods (2)
  • create(self, cr, uid, vals, context=None)
  • write(self, cr, uid, ids, vals, context=None)

New fields (0)

No new fields.

Public methods (3)
  • create_lead(self, cr, uid, ids, context=None)
    Function called by the related button of the wizard
  • onchange_to_update_lead(self, cr, uid, ids, to_update_lead_id, context=None)
  • update_lead(self, cr, uid, ids, context=None)

New fields (0)

No new fields.

Public methods (1)
  • click2dial(self, erp_number)
    @api.model

New fields (1)
  • context_propose_creation_crm_call Boolean
    default=True string='Propose to create a call in CRM after a click2dial'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • button_create_outgoing_phonecall(self)
    @api.multi
REPOSITORY
REPOSITORYOCA/connector-telephony
GIT
GIThttps://github.com/OCA/connector-telephony.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/connector-telephony/tree/7.0/crm_phone
VERSION
VERSION 0.1
CATEGORY
CATEGORYPhone
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Alexandre Fayolle, Sandy Carter, Rudolf Schnapka
WEBSITE
WEBSITEhttp://www.akretion.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/connector-telephony:
    - base_phone
odoo/odoo:
    - base
    - web
    - crm
    - base_action_rule
    - mail
    - base_setup
    - web_kanban
    - base_status
    - process
    - email_template
    - base_calendar
    - resource
    - board
    - fetchmail
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
CRM Phone
=========

This module validate phone numbers in the CRM module, just like the
*base_phone* module valide phone numbers in the Partner form. Please refer to
the description of the *base_phone* module for more information.

This module is independant from the Asterisk connector.

Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com>
for any help or question about this module.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
crm_case_form_view_leads crm_phone.crm_lead.form crm.lead field Inherits crm.crm_case_form_view_leads
crm_case_form_view_oppor crm_phone.case.view_opportuniy.form crm.lead field Inherits crm.crm_case_form_view_oppor
crm_case_phone_form_view crm_phone.crm_phonecall.form crm.phonecall field Inherits crm.crm_case_phone_form_view
number_not_found_form crm_phone.number.not.found.form number.not.found group Inherits base_phone.number_not_found_form
Models touched (3)

New fields (0)

No new fields.

Public methods (3)
  • create(self, cr, uid, vals, context=None)
  • name_get(self, cr, uid, ids, context=None)
  • write(self, cr, uid, ids, vals, context=None)

New fields (0)

No new fields.

Public methods (2)
  • create(self, cr, uid, vals, context=None)
  • write(self, cr, uid, ids, vals, context=None)

New fields (0)

No new fields.

Public methods (3)
  • create_lead(self, cr, uid, ids, context=None)
    Function called by the related button of the wizard
  • onchange_to_update_lead(self, cr, uid, ids, to_update_lead_id, context=None)
  • update_lead(self, cr, uid, ids, context=None)