| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/connector-telephony |
| GIT | |
| GIT | https://github.com/OCA/connector-telephony.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/connector-telephony/tree/18.0/base_phone |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Phone |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Bhavesh Heliconia, Heliconia Solutions |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/connector-telephony |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:11 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - phone_validation - base - base_setup - web - bus - web_tour - html_editor |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
phonenumbers |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module provides common methods and wizards which can be useful to develop a connector between Odoo and a telephony system. It depends on the official module *phone_validation* which handle the reformatting of phone numbers using the [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) Python library, which is a port of the library used in Android smartphones. For example, if your user is linked to a French company and you update the form view of a partner with a badly written French phone number such as '01-55-42-12-42', Odoo will automatically update the phone number to [E.164](https://en.wikipedia.org/wiki/E.164) format '+33155421242'. This module extends this reformatting to create() and write() methods. This module is used by the Odoo-Asterisk connector of the OCA. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
number_not_found_form |
number.not.found.form | number.not.found | form | New |
reformat_all_phonenumbers_form |
reformat_all_phonenumbers.form | reformat.all.phonenumbers | form | New |
res_config_settings_view_form |
base_phone.base.config.settings.form | res.config.settings | block | Inherits base_setup.res_config_settings_view_form |
view_users_form |
base_phone.res.users.telephony_tab | res.users | notebook | Inherits base.view_users_form |
view_users_form_simple_modif |
base_phone.user_preferences.view | res.users | group | Inherits base.view_users_form_simple_modif |
No new fields.
Public methods (0)No public methods.
calling_number
Char
help='Phone number of calling party that has been obtained from the telephony server, in the format used by the telephony server (not E.164).'
readonly=True
size=64
current_partner_mobile
Char
related='to_update_partner_id.mobile'
string='Current Mobile'
current_partner_phone
Char
related='to_update_partner_id.phone'
string='Current Phone'
e164_number
Char
help='E.164 equivalent of the calling number.'
size=64
string='E.164 Number'
number_type
Selection
required=True
selection=[('phone', 'Fixed'), ('mobile', 'Mobile')]
string='Fixed/Mobile'
to_update_partner_id
Many2one → res.partner
comodel_name='res.partner'
help='Partner on which the phone number will be written'
string='Partner to Update'
create_partner(self)
default_get(self, fields_list)
update_partner(self)
No new fields.
Public methods (4)click2dial(self, erp_number)
convert_to_dial_number(self, erp_number)
get_name_from_phone_number(self, presented_number)
get_record_from_phone_number(self, presented_number)
No new fields.
Public methods (1)phone_format(self, number, country=None, company=None)
phonenumbers_not_reformatted
Text
string="Phone numbers that couldn't be reformatted"
state
Selection
default='draft'
args: [('draft', 'Draft'), ('done', 'Done')]
run_reformat_all_phonenumbers(self)
number_of_digits_to_match_from_end
Integer
default=8
help='In several situations, Odoo will have to find a Partner/Lead/Employee/... from a phone number presented by the calling party. As the phone numbers presented by your phone operator may not always be displayed in a standard format, the best method to find the related Partner/Lead/Employee/... in Odoo is to try to match the end of the phone number in Odoo with the N last digits of the phone number presented by the calling party. N is the value you should enter in this field.'
string='Number of Digits To Match From End'
No public methods.
number_of_digits_to_match_from_end
Integer
readonly=False
related='company_id.number_of_digits_to_match_from_end'
string='Number of Digits'
No public methods.
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/connector-telephony |
| GIT | |
| GIT | https://github.com/OCA/connector-telephony.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/connector-telephony/tree/17.0/base_phone |
| VERSION | |
| VERSION | 1.0.2 |
| CATEGORY | |
| CATEGORY | Phone |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Enric Tobella, Weblate, OCA-git-bot, oca-ci, Luis Rodriguez |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/connector-telephony |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:04 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - phone_validation - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
phonenumbers |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module provides common methods and wizards which can be useful to develop a connector between Odoo and a telephony system. It depends on the official module *phone_validation* which handle the reformatting of phone numbers using the [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) Python library, which is a port of the library used in Android smartphones. For example, if your user is linked to a French company and you update the form view of a partner with a badly written French phone number such as '01-55-42-12-42', Odoo will automatically update the phone number to [E.164](https://en.wikipedia.org/wiki/E.164) format '+33155421242'. This module extends this reformatting to create() and write() methods. This module is used by the Odoo-Asterisk connector of the OCA. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
number_not_found_form |
number.not.found.form | number.not.found | form | New |
reformat_all_phonenumbers_form |
reformat_all_phonenumbers.form | reformat.all.phonenumbers | form | New |
res_config_settings_view_form |
base_phone.base.config.settings.form | res.config.settings | xpath | Inherits base_setup.res_config_settings_view_form |
view_users_form |
base_phone.res.users.telephony_tab | res.users | notebook | Inherits base.view_users_form |
view_users_form_simple_modif |
base_phone.user_preferences.view | res.users | group | Inherits base.view_users_form_simple_modif |
No new fields.
Public methods (0)No public methods.
calling_number
Char
help='Phone number of calling party that has been obtained from the telephony server, in the format used by the telephony server (not E.164).'
readonly=True
size=64
current_partner_mobile
Char
related='to_update_partner_id.mobile'
string='Current Mobile'
current_partner_phone
Char
related='to_update_partner_id.phone'
string='Current Phone'
e164_number
Char
help='E.164 equivalent of the calling number.'
size=64
string='E.164 Number'
number_type
Selection
required=True
selection=[('phone', 'Fixed'), ('mobile', 'Mobile')]
string='Fixed/Mobile'
to_update_partner_id
Many2one → res.partner
comodel_name='res.partner'
help='Partner on which the phone number will be written'
string='Partner to Update'
create_partner(self)
default_get(self, fields_list)
update_partner(self)
No new fields.
Public methods (4)click2dial(self, erp_number)
convert_to_dial_number(self, erp_number)
get_name_from_phone_number(self, presented_number)
get_record_from_phone_number(self, presented_number)
No new fields.
Public methods (1)phone_format(self, number, country=None, company=None)
phonenumbers_not_reformatted
Text
string="Phone numbers that couldn't be reformatted"
state
Selection
default='draft'
args: [('draft', 'Draft'), ('done', 'Done')]
run_reformat_all_phonenumbers(self)
number_of_digits_to_match_from_end
Integer
default=8
help='In several situations, Odoo will have to find a Partner/Lead/Employee/... from a phone number presented by the calling party. As the phone numbers presented by your phone operator may not always be displayed in a standard format, the best method to find the related Partner/Lead/Employee/... in Odoo is to try to match the end of the phone number in Odoo with the N last digits of the phone number presented by the calling party. N is the value you should enter in this field.'
string='Number of Digits To Match From End'
No public methods.
number_of_digits_to_match_from_end
Integer
readonly=False
related='company_id.number_of_digits_to_match_from_end'
No public methods.
No new fields.
Public methods (1)name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/connector-telephony |
| GIT | |
| GIT | https://github.com/OCA/connector-telephony.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/connector-telephony/tree/16.0/base_phone |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Phone |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Weblate, oca-ci, Luis Rodriguez |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/connector-telephony |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:45 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - phone_validation - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
phonenumbers |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
number_not_found_form |
number.not.found.form | number.not.found | form | New |
reformat_all_phonenumbers_form |
reformat_all_phonenumbers.form | reformat.all.phonenumbers | form | New |
res_config_settings_view_form |
base_phone.base.config.settings.form | res.config.settings | xpath | Inherits base_setup.res_config_settings_view_form |
view_users_form |
base_phone.res.users.telephony_tab | res.users | notebook | Inherits base.view_users_form |
view_users_form_simple_modif |
base_phone.user_preferences.view | res.users | group | Inherits base.view_users_form_simple_modif |
No new fields.
Public methods (0)No public methods.
calling_number
Char
help='Phone number of calling party that has been obtained from the telephony server, in the format used by the telephony server (not E.164).'
readonly=True
size=64
current_partner_mobile
Char
related='to_update_partner_id.mobile'
string='Current Mobile'
current_partner_phone
Char
related='to_update_partner_id.phone'
string='Current Phone'
e164_number
Char
help='E.164 equivalent of the calling number.'
size=64
string='E.164 Number'
number_type
Selection
required=True
selection=[('phone', 'Fixed'), ('mobile', 'Mobile')]
string='Fixed/Mobile'
to_update_partner_id
Many2one → res.partner
comodel_name='res.partner'
help='Partner on which the phone number will be written'
string='Partner to Update'
create_partner(self)
default_get(self, fields_list)
update_partner(self)
No new fields.
Public methods (4)click2dial(self, erp_number)
convert_to_dial_number(self, erp_number)
get_name_from_phone_number(self, presented_number)
get_record_from_phone_number(self, presented_number)
No new fields.
Public methods (1)phone_format(self, number, country=None, company=None)
phonenumbers_not_reformatted
Text
string="Phone numbers that couldn't be reformatted"
state
Selection
default='draft'
args: [('draft', 'Draft'), ('done', 'Done')]
run_reformat_all_phonenumbers(self)
number_of_digits_to_match_from_end
Integer
default=8
help='In several situations, Odoo will have to find a Partner/Lead/Employee/... from a phone number presented by the calling party. As the phone numbers presented by your phone operator may not always be displayed in a standard format, the best method to find the related Partner/Lead/Employee/... in Odoo is to try to match the end of the phone number in Odoo with the N last digits of the phone number presented by the calling party. N is the value you should enter in this field.'
string='Number of Digits To Match From End'
No public methods.
number_of_digits_to_match_from_end
Integer
readonly=False
related='company_id.number_of_digits_to_match_from_end'
No public methods.
No new fields.
Public methods (1)name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/connector-telephony |
| GIT | |
| GIT | https://github.com/OCA/connector-telephony.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/connector-telephony/tree/14.0/base_phone |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Phone |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Pedro M. Baeza, OCA Transbot, Florian da Costa, oca-travis, Weblate, OCA-git-bot, Pierrick Brun, Cyril VINH-TUNG |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/connector-telephony |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:57 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - phone_validation - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
phonenumbers |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
base_phone assets | ir.ui.view | qweb | Inherits web.assets_backend |
number_not_found_form |
number.not.found.form | number.not.found | form | New |
reformat_all_phonenumbers_form |
reformat_all_phonenumbers.form | reformat.all.phonenumbers | form | New |
res_config_settings_view_form |
base_phone.base.config.settings.form | res.config.settings | xpath | Inherits base_setup.res_config_settings_view_form |
view_users_form |
base_phone.res.users.telephony_tab | res.users | notebook | Inherits base.view_users_form |
view_users_form_simple_modif |
base_phone.user_preferences.view | res.users | group | Inherits base.view_users_form_simple_modif |
No new fields.
Public methods (0)No public methods.
calling_number
Char
help='Phone number of calling party that has been obtained from the telephony server, in the format used by the telephony server (not E.164).'
readonly=True
size=64
string='Calling Number'
current_partner_mobile
Char
related='to_update_partner_id.mobile'
string='Current Mobile'
current_partner_phone
Char
related='to_update_partner_id.phone'
string='Current Phone'
e164_number
Char
help='E.164 equivalent of the calling number.'
size=64
string='E.164 Number'
number_type
Selection
required=True
selection=[('phone', 'Fixed'), ('mobile', 'Mobile')]
string='Fixed/Mobile'
to_update_partner_id
Many2one → res.partner
comodel_name='res.partner'
help='Partner on which the phone number will be written'
string='Partner to Update'
create_partner(self)
default_get(self, fields_list)
update_partner(self)
No new fields.
Public methods (4)click2dial(self, erp_number)
convert_to_dial_number(self, erp_number)
get_name_from_phone_number(self, presented_number)
get_record_from_phone_number(self, presented_number)
No new fields.
Public methods (0)No public methods.
phonenumbers_not_reformatted
Text
string="Phone numbers that couldn't be reformatted"
state
Selection
default='draft'
string='State'
args: [('draft', 'Draft'), ('done', 'Done')]
run_reformat_all_phonenumbers(self)
number_of_digits_to_match_from_end
Integer
default=8
help='In several situations, Odoo will have to find a Partner/Lead/Employee/... from a phone number presented by the calling party. As the phone numbers presented by your phone operator may not always be displayed in a standard format, the best method to find the related Partner/Lead/Employee/... in Odoo is to try to match the end of the phone number in Odoo with the N last digits of the phone number presented by the calling party. N is the value you should enter in this field.'
string='Number of Digits To Match From End'
No public methods.
number_of_digits_to_match_from_end
Integer
readonly=False
related='company_id.number_of_digits_to_match_from_end'
No public methods.
No new fields.
Public methods (1)name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/connector-telephony |
| GIT | |
| GIT | https://github.com/OCA/connector-telephony.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/connector-telephony/tree/13.0/base_phone |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Phone |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | OCA Transbot, oca-travis, Weblate, Christophe Langenberg |
| WEBSITE | |
| WEBSITE | http://www.akretion.com/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:12 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - phone_validation - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
phonenumbers |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
base_phone assets | ir.ui.view | qweb | Inherits web.assets_backend |
number_not_found_form |
number.not.found.form | number.not.found | form | New |
reformat_all_phonenumbers_form |
reformat_all_phonenumbers.form | reformat.all.phonenumbers | form | New |
res_config_settings_view_form |
base_phone.base.config.settings.form | res.config.settings | xpath | Inherits base_setup.res_config_settings_view_form |
view_users_form |
base_phone.res.users.telephony_tab | res.users | notebook | Inherits base.view_users_form |
view_users_form_simple_modif |
base_phone.user_preferences.view | res.users | xpath | Inherits base.view_users_form_simple_modif |
No new fields.
Public methods (2)create(self, vals)
write(self, vals)
No new fields.
Public methods (0)No public methods.
calling_number
Char
help='Phone number of calling party that has been obtained from the telephony server, in the format used by the telephony server (not E.164).'
readonly=True
size=64
string='Calling Number'
current_partner_mobile
Char
related='to_update_partner_id.mobile'
string='Current Mobile'
current_partner_phone
Char
related='to_update_partner_id.phone'
string='Current Phone'
e164_number
Char
help='E.164 equivalent of the calling number.'
size=64
string='E.164 Number'
number_type
Selection
required=True
selection=[('phone', 'Fixed'), ('mobile', 'Mobile')]
string='Fixed/Mobile'
to_update_partner_id
Many2one → res.partner
comodel_name='res.partner'
help='Partner on which the phone number will be written'
string='Partner to Update'
create_partner(self)
default_get(self, fields_list)
update_partner(self)
No new fields.
Public methods (4)click2dial(self, erp_number)
convert_to_dial_number(self, erp_number)
get_name_from_phone_number(self, presented_number)
get_record_from_phone_number(self, presented_number)
No new fields.
Public methods (0)No public methods.
phonenumbers_not_reformatted
Text
string="Phone numbers that couldn't be reformatted"
state
Selection
default='draft'
string='State'
args: [('draft', 'Draft'), ('done', 'Done')]
run_reformat_all_phonenumbers(self)
number_of_digits_to_match_from_end
Integer
default=8
help='In several situations, Odoo will have to find a Partner/Lead/Employee/... from a phone number presented by the calling party. As the phone numbers presented by your phone operator may not always be displayed in a standard format, the best method to find the related Partner/Lead/Employee/... in Odoo is to try to match the end of the phone number in Odoo with the N last digits of the phone number presented by the calling party. N is the value you should enter in this field.'
string='Number of Digits To Match From End'
No public methods.
number_of_digits_to_match_from_end
Integer
readonly=False
related='company_id.number_of_digits_to_match_from_end'
No public methods.
No new fields.
Public methods (1)name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/connector-telephony |
| GIT | |
| GIT | https://github.com/OCA/connector-telephony.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/connector-telephony/tree/12.0/base_phone |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Phone |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, OCA Transbot, oca-travis, Weblate, OCA-git-bot, luffah |
| WEBSITE | |
| WEBSITE | http://www.akretion.com/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:16 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - phone_validation - base - base_setup - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
phonenumbers |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
base_phone assets | ir.ui.view | qweb | Inherits web.assets_backend |
number_not_found_form |
number.not.found.form | number.not.found | form | New |
reformat_all_phonenumbers_form |
reformat_all_phonenumbers.form | reformat.all.phonenumbers | form | New |
res_config_settings_view_form |
base_phone.base.config.settings.form | res.config.settings | xpath | Inherits base_setup.res_config_settings_view_form |
view_users_form |
base_phone.res.users.telephony_tab | res.users | notebook | Inherits base.view_users_form |
view_users_form_simple_modif |
base_phone.user_preferences.view | res.users | xpath | Inherits base.view_users_form_simple_modif |
No new fields.
Public methods (2)create(self, vals)
write(self, vals)
No new fields.
Public methods (0)No public methods.
calling_number
Char
help='Phone number of calling party that has been obtained from the telephony server, in the format used by the telephony server (not E.164).'
readonly=True
size=64
string='Calling Number'
current_partner_mobile
Char
related='to_update_partner_id.mobile'
string='Current Mobile'
current_partner_phone
Char
related='to_update_partner_id.phone'
string='Current Phone'
e164_number
Char
help='E.164 equivalent of the calling number.'
size=64
string='E.164 Number'
number_type
Selection
required=True
selection=[('phone', 'Fixed'), ('mobile', 'Mobile')]
string='Fixed/Mobile'
to_update_partner_id
Many2one → res.partner
comodel_name='res.partner'
help='Partner on which the phone number will be written'
string='Partner to Update'
create_partner(self)
default_get(self, fields_list)
update_partner(self)
No new fields.
Public methods (4)click2dial(self, erp_number)
convert_to_dial_number(self, erp_number)
get_name_from_phone_number(self, presented_number)
get_record_from_phone_number(self, presented_number)
No new fields.
Public methods (0)No public methods.
phonenumbers_not_reformatted
Text
string="Phone numbers that couldn't be reformatted"
state
Selection
default='draft'
string='State'
args: [('draft', 'Draft'), ('done', 'Done')]
run_reformat_all_phonenumbers(self)
number_of_digits_to_match_from_end
Integer
default=8
help='In several situations, Odoo will have to find a Partner/Lead/Employee/... from a phone number presented by the calling party. As the phone numbers presented by your phone operator may not always be displayed in a standard format, the best method to find the related Partner/Lead/Employee/... in Odoo is to try to match the end of the phone number in Odoo with the N last digits of the phone number presented by the calling party. N is the value you should enter in this field.'
string='Number of Digits To Match From End'
No public methods.
number_of_digits_to_match_from_end
Integer
readonly=False
related='company_id.number_of_digits_to_match_from_end'
No public methods.
No new fields.
Public methods (1)name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/connector-telephony |
| GIT | |
| GIT | https://github.com/OCA/connector-telephony.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/connector-telephony/tree/11.0/base_phone |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Phone |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, OCA Transbot, oca-travis, Weblate, OCA-git-bot, hparfr |
| WEBSITE | |
| WEBSITE | http://www.akretion.com/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:23:57 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - phone_validation - base - base_setup - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
phonenumbers |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
base_phone assets | ir.ui.view | qweb | Inherits web.assets_backend |
number_not_found_form |
number.not.found.form | number.not.found | form | New |
reformat_all_phonenumbers_form |
reformat_all_phonenumbers.form | reformat.all.phonenumbers | form | New |
res_config_settings_view_form |
base_phone.base.config.settings.form | res.config.settings | xpath | Inherits base_setup.res_config_settings_view_form |
view_users_form |
base_phone.res.users.telephony_tab | res.users | notebook | Inherits base.view_users_form |
view_users_form_simple_modif |
base_phone.user_preferences.view | res.users | xpath | Inherits base.view_users_form_simple_modif |
calling_number
Char
help='Phone number of calling party that has been obtained from the telephony server, in the format used by the telephony server (not E.164).'
readonly=True
size=64
string='Calling Number'
current_partner_mobile
Char
related='to_update_partner_id.mobile'
string='Current Mobile'
current_partner_phone
Char
related='to_update_partner_id.phone'
string='Current Phone'
e164_number
Char
help='E.164 equivalent of the calling number.'
size=64
string='E.164 Number'
number_type
Selection
required=True
selection=[('phone', 'Fixed'), ('mobile', 'Mobile')]
string='Fixed/Mobile'
to_update_partner_id
Many2one → res.partner
comodel_name='res.partner'
help='Partner on which the phone number will be written'
string='Partner to Update'
create_partner(self)
default_get(self, fields_list)
update_partner(self)
No new fields.
Public methods (4)click2dial(self, erp_number)
convert_to_dial_number(self, erp_number)
get_name_from_phone_number(self, presented_number)
get_record_from_phone_number(self, presented_number)
No new fields.
Public methods (0)No public methods.
phonenumbers_not_reformatted
Text
string="Phone numbers that couldn't be reformatted"
state
Selection
default='draft'
string='State'
args: [('draft', 'Draft'), ('done', 'Done')]
run_reformat_all_phonenumbers(self)
number_of_digits_to_match_from_end
Integer
default=8
help='In several situations, Odoo will have to find a Partner/Lead/Employee/... from a phone number presented by the calling party. As the phone numbers presented by your phone operator may not always be displayed in a standard format, the best method to find the related Partner/Lead/Employee/... in Odoo is to try to match the end of the phone number in Odoo with the N last digits of the phone number presented by the calling party. N is the value you should enter in this field.'
string='Number of Digits To Match From End'
No public methods.
number_of_digits_to_match_from_end
Integer
related='company_id.number_of_digits_to_match_from_end'
No public methods.
No new fields.
Public methods (1)name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/connector-telephony |
| GIT | |
| GIT | https://github.com/OCA/connector-telephony.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/connector-telephony/tree/10.0/base_phone |
| VERSION | |
| VERSION | 0.1.0 |
| CATEGORY | |
| CATEGORY | Phone |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Pedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, OCA-git-bot, Sylvain GARANCHER |
| WEBSITE | |
| WEBSITE | http://www.akretion.com/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:55 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web_kanban - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
phonenumbers |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
base_phone assets | ir.ui.view | qweb | Inherits web.assets_backend |
number_not_found_form |
number.not.found.form | number.not.found | form | New |
reformat_all_phonenumbers_form |
reformat_all_phonenumbers.form | reformat.all.phonenumbers | form | New |
view_general_configuration |
base_phone.base.config.settings.form | base.config.settings | group | Inherits base_setup.view_general_configuration |
view_users_form |
base_phone.res.users.telephony_tab | res.users | notebook | Inherits base.view_users_form |
view_users_form_simple_modif |
base_phone.user_preferences.view | res.users | xpath | Inherits base.view_users_form_simple_modif |
No new fields.
Public methods (2)create(self, vals)
write(self, vals)
number_of_digits_to_match_from_end
Integer
related='company_id.number_of_digits_to_match_from_end'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (4)click2dial(self, erp_number)
convert_to_dial_number(self, erp_number)
get_name_from_phone_number(self, presented_number)
get_record_from_phone_number(self, presented_number)
phonenumbers_not_reformatted
Text
string="Phone numbers that couldn't be reformatted"
state
Selection
default='draft'
string='State'
args: [('draft', 'Draft'), ('done', 'Done')]
run_reformat_all_phonenumbers(self)
number_of_digits_to_match_from_end
Integer
default=8
help='In several situations, Odoo will have to find a Partner/Lead/Employee/... from a phone number presented by the calling party. As the phone numbers presented by your phone operator may not always be displayed in a standard format, the best method to find the related Partner/Lead/Employee/... in Odoo is to try to match the end of the phone number in Odoo with the N last digits of the phone number presented by the calling party. N is the value you should enter in this field.'
string='Number of Digits To Match From End'
No public methods.
fax
Fax
country_field='country_id'
partner_field='parent_id'
mobile
Phone
country_field='country_id'
partner_field='parent_id'
phone
Phone
country_field='country_id'
partner_field='parent_id'
name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/connector-telephony |
| GIT | |
| GIT | https://github.com/OCA/connector-telephony.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/connector-telephony/tree/9.0/base_phone |
| VERSION | |
| VERSION | 0.1.0 |
| CATEGORY | |
| CATEGORY | Phone |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Sebastien LANGE, Pedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), Invitu, OCA Transbot, OCA-git-bot, Grzegorz Marczynski |
| WEBSITE | |
| WEBSITE | http://www.akretion.com/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:15:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
phonenumbers |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
base_phone assets | ir.ui.view | qweb | Inherits web.assets_backend |
number_not_found_form |
number.not.found.form | number.not.found | form | New |
reformat_all_phonenumbers_form |
reformat_all_phonenumbers.form | reformat.all.phonenumbers | form | New |
view_company_form |
base_phone.company.form | res.company | group | Inherits base.view_company_form |
view_partner_form |
base.phone.res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
view_partner_tree |
base_phone.phone.widget.partner.tree | res.partner | field | Inherits base.view_partner_tree |
view_users_form |
base_phone.res.users.telephony_tab | res.users | notebook | Inherits base.view_users_form |
view_users_form_simple_modif |
base_phone.user_preferences.view | res.users | xpath | Inherits base.view_users_form_simple_modif |
No new fields.
Public methods (4)click2dial(self, erp_number)
convert_to_dial_number(self, erp_number)
get_name_from_phone_number(self, presented_number)
get_record_from_phone_number(self, presented_number)
phonenumbers_not_reformatted
Text
string="Phone numbers that couldn't be reformatted"
state
Selection
default='draft'
string='State'
args: [('draft', 'Draft'), ('done', 'Done')]
run_reformat_all_phonenumbers(self)
number_of_digits_to_match_from_end
Integer
default=8
help='In several situations, OpenERP will have to find a Partner/Lead/Employee/... from a phone number presented by the calling party. As the phone numbers presented by your phone operator may not always be displayed in a standard format, the best method to find the related Partner/Lead/Employee/... in OpenERP is to try to match the end of the phone number in OpenERP with the N last digits of the phone number presented by the calling party. N is the value you should enter in this field.'
string='Number of Digits To Match From End'
No public methods.
fax
Phone
country_field='country_id'
partner_field='parent_id'
mobile
Phone
country_field='country_id'
partner_field='parent_id'
phone
Phone
country_field='country_id'
partner_field='parent_id'
name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/connector-telephony |
| GIT | |
| GIT | https://github.com/OCA/connector-telephony.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/connector-telephony/tree/8.0/base_phone |
| VERSION | |
| VERSION | 0.1.0 |
| CATEGORY | |
| CATEGORY | Phone |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Benoit Guillot, Stéphane Bidoul, Alexis de Lattre, Yannick Vaucher, Guewen Baconnier, Alexandre Fayolle, Sandy Carter, Pedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, Damien Crier, oca-travis, Weblate, OCA-git-bot, Andhitia Rama, Matjaž Mozetič, Igor, Valentin Lab, Tristan Hill, Christophe CHAUVET |
| WEBSITE | |
| WEBSITE | http://www.akretion.com/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:11:21 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
phonenumbers |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Base Phone
==========
This module validate phone numbers using the *phonenumbers* Python library,
which is a port of the library used in Android smartphones. For example, if
your user is linked to a French company and you update the form view of a
partner with a badly written French phone number such as '01-55-42-12-42',
Odoo will automatically update the phone number to E.164 format '+33155421242'
and display in the form and tree view of the partner the readable equivalent
'+33 1 55 42 12 42'.
This module also adds *tel:* links on phone numbers and *fax:* links on fax
numbers. If you have a softphone or a client software on your PC that is
associated with *tel:* links, the softphone should propose you to dial the
phone number when you click on such a link.
This module also updates the format() function for reports and adds 2
arguments :
* *phone* : should be True for a phone number, False (default) otherwize.
* *phone_format* : it can have 3 possible values :
* *international* (default) : the report will display '+33 1 55 42 12 42'
* *national* : the report will display '01 55 42 12 42'
* *e164* : the report will display '+33155421242'
For example, in the Sale Order report, to display the phone number of the
Salesman, you can write : o.user_id and o.user_id.phone and
format(o.user_id.phone, phone=True, phone_format='national') or ''
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.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
base_phone assets | ir.ui.view | qweb | Inherits web.assets_backend |
number_not_found_form |
number.not.found.form | number.not.found | form | New |
reformat_all_phonenumbers_form |
reformat_all_phonenumbers.form | reformat.all.phonenumbers | form | New |
view_company_form |
base_phone.company.form | res.company | group | Inherits base.view_company_form |
view_partner_form |
base.phone.res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
view_partner_simple_form |
base.phone.res.partner.simplified.form | res.partner | field | Inherits base.view_partner_simple_form |
view_partner_tree |
base_phone.phone.widget.partner.tree | res.partner | field | Inherits base.view_partner_tree |
view_users_form |
base_phone.res.users.telephony_tab | res.users | notebook | Inherits base.view_users_form |
view_users_form_simple_modif |
base_phone.user_preferences.view | res.users | group | Inherits base.view_users_form_simple_modif |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (4)create_partner(self, cr, uid, ids, context=None)
default_get(self, cr, uid, fields_list, context=None)
onchange_to_update_partner(self, cr, uid, ids, to_update_partner_id, context=None)
update_partner(self, cr, uid, ids, context=None)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/connector-telephony |
| GIT | |
| GIT | https://github.com/OCA/connector-telephony.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/connector-telephony/tree/7.0/base_phone |
| VERSION | |
| VERSION | 0.1 |
| CATEGORY | |
| CATEGORY | Phone |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Alexandre Fayolle, Sandy Carter, Rudolf Schnapka, czoellner |
| WEBSITE | |
| WEBSITE | http://www.akretion.com/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:07:13 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
phonenumbers |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Base Phone
==========
This module validate phone numbers using the *phonenumbers* Python library,
which is a port of the library used in Android smartphones. For example, if
your user is linked to a French company and you update the form view of a
partner with a badly written French phone number such as '01-55-42-12-42',
Odoo will automatically update the phone number to E.164 format '+33155421242'
and display in the form view of the partner the readable equivalent
'+33 1 55 42 12 42'.
This module also adds *tel:* links on phone numbers and *fax:* links on fax
numbers. If you have a softphone or a client software on your PC that is
associated with *tel:* links, the softphone should propose you to dial the
phone number when you click on such a link.
This module also updates the format() function for reports and adds 2
arguments :
* *phone* : should be True for a phone number, False (default) otherwize.
* *phone_format* : it can have 3 possible values :
* *international* (default) : the report will display '+33 1 55 42 12 42'
* *national* : the report will display '01 55 42 12 42'
* *e164* : the report will display '+33155421242'
For example, in the Sale Order report, to display the phone number of the
Salesman, you can write : o.user_id and o.user_id.phone and
format(o.user_id.phone, phone=True, phone_format='national') or ''
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.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
number_not_found_form |
number.not.found.form | number.not.found | form | New |
reformat_all_phonenumbers_form |
reformat_all_phonenumbers.form | reformat.all.phonenumbers | form | New |
view_company_form |
base_phone.company.form | res.company | group | Inherits base.view_company_form |
view_partner_form |
base.phone.res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
view_partner_simple_form |
base.phone.res.partner.simplified.form | res.partner | field | Inherits base.view_partner_simple_form |
view_users_form |
base_phone.res.users.telephony_tab | res.users | notebook | Inherits base.view_users_form |
view_users_form_simple_modif |
base_phone.user_preferences.view | res.users | group | Inherits base.view_users_form_simple_modif |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (4)create_partner(self, cr, uid, ids, context=None)
default_get(self, cr, uid, fields_list, context=None)
onchange_to_update_partner(self, cr, uid, ids, to_update_partner_id, context=None)
update_partner(self, cr, uid, ids, context=None)