*test_discuss_full,test_lint
This commit adds the audio and video conference feature to mail channels
and integrate it with the groupDM/guest features.
Adds new mp3 and ogg files (from task-2554674) for sound effects.
- Adds three new tables:
* `mail.channel.rtc.session` to manage the peerToPeer interactions
during rtc calls.
* `mail.ice.server` to provide ICE servers necessary to establish
peerToPeer connections with webRtc.
* `res.users.settings.volumes` to hold the partner-to-partner volume
settings, each partner can create one new setting per other
partner to configure the volume coming from those partners during
calls.
- changes res.config.settings:
* Adds new fields for the Twilio credentials to use their STUN/TURN
service.
- changes res.user.settings:
* Adds 4 fields for the push to talk and voice activation.
- changes mail.channel:
* Adds a new field `rtc_session_ids` that represents the active
participants in a rtc call on that channel.
- changes mail.channel.partner:
* Adds a new field `rtc_inviting_session_id` that represents the
rtcSession of the user that is inviting that channelPartner to a
call.
task-2366708
closes odoo/odoo#66611
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
53 lines
2.0 KiB
Python
53 lines
2.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import datetime
|
|
|
|
from odoo import api, fields, models, tools
|
|
|
|
|
|
class ResConfigSettings(models.TransientModel):
|
|
""" Inherit the base settings to add a counter of failed email + configure
|
|
the alias domain. """
|
|
_inherit = 'res.config.settings'
|
|
|
|
fail_counter = fields.Integer('Fail Mail', readonly=True)
|
|
alias_domain = fields.Char('Alias Domain', help="If you have setup a catch-all email domain redirected to "
|
|
"the Odoo server, enter the domain name here.", config_parameter='mail.catchall.domain')
|
|
restrict_template_rendering = fields.Boolean(
|
|
'Restrict Template Rendering',
|
|
config_parameter='mail.restrict.template.rendering',
|
|
help='Users will still be able to render templates.\n'
|
|
'However only Mail Template Editors will be able to create new dynamic templates or modify existing ones.')
|
|
use_twilio_rtc_servers = fields.Boolean(
|
|
'Use Twilio ICE servers',
|
|
help="If you want to use twilio as TURN/STUN server provider",
|
|
config_parameter='mail.use_twilio_rtc_servers',
|
|
)
|
|
twilio_account_sid = fields.Char(
|
|
'Twilio Account SID',
|
|
config_parameter='mail.twilio_account_sid',
|
|
)
|
|
twilio_account_token = fields.Char(
|
|
'Twilio Account Auth Token',
|
|
config_parameter='mail.twilio_account_token',
|
|
)
|
|
|
|
@api.model
|
|
def get_values(self):
|
|
res = super(ResConfigSettings, self).get_values()
|
|
|
|
previous_date = datetime.datetime.now() - datetime.timedelta(days=30)
|
|
|
|
res.update(
|
|
fail_counter=self.env['mail.mail'].sudo().search_count([
|
|
('date', '>=', previous_date.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT)),
|
|
('state', '=', 'exception')]),
|
|
)
|
|
|
|
return res
|
|
|
|
def set_values(self):
|
|
super(ResConfigSettings, self).set_values()
|
|
self.env['ir.config_parameter'].set_param("mail.catchall.domain", self.alias_domain or '')
|