diff --git a/freeswitch_click2dial/README.rst b/freeswitch_click2dial/README.rst index 4ad4f23..373eb6f 100644 --- a/freeswitch_click2dial/README.rst +++ b/freeswitch_click2dial/README.rst @@ -7,50 +7,20 @@ FreeSWITCH Click2Dial ===================== The technical name of this module is *freeswitch_click2dial*, but this module -implements much more than a simple *click2dial* ! This module adds 3 +implements much more than a simple *click2dial*! This module adds 3 functionalities: 1) It adds a *Dial* button in the partner form view so that users can directly dial a phone number through FreeSWITCH. This feature is usually known as - *click2dial*. Here is how it works : - - * In OpenERP, the user clicks on the *Dial* button next to a phone number - field in the partner view. - - * OpenERP connects to the FreeSWITCH Event Socket and FreeSWITCH makes the - user's phone ring. - - * The user answers his own phone (if he doesn't, the process stops here). - - * FreeSWITCH dials the phone number found in OpenERP in place of the user. - - * If the remote party answers, the user can talk to his correspondent. + *click2dial*. 2) It adds the ability to show the name of the calling party on the screen of your IP phone on incoming phone calls if the presented phone number is - present in the partner/leads/employees/... of OpenERP. To understand how to - use this, please see get_caller_name.py, which should be installed per the - instructions in the script on the OpenERP/Odoo server. This works for - incoming and outgoing calls, per instructions in the script. + present in the partner/leads/employees/... of OpenERP. 3) It adds a phone icon (*Open Caller*) in the top menu bar (next to the Preferences) to get the partner/lead/candidate/registrations - corresponding to the calling party in one click. Here is how it works : - - * When the user clicks on the phone icon, OpenERP sends a query to the - FreeSWITCH Manager Interface to get a list of the current phone calls - - * If it finds a phone call involving the user's phone, it gets the phone - number of the calling party - - * It searches the phone number of the calling party in the - Partners/Leads/Candidates/Registrations of OpenERP. If a record matches, - it takes you to the form view of this record. If no record matchs, it - opens a wizard which proposes to create a new Partner with the presented - phone number as *Phone* or *Mobile* number or update an existing Partner. - - It is possible to get a pop-up of the record corresponding to the calling - party without any action from the user via the module *base_phone_popup*. + corresponding to the calling party in one click. Installation ============ @@ -75,9 +45,9 @@ Configuration To configure this module, you need to: -* Settings > Technical > FreeSWITCH Servers -* Setup you server -* Configure users under Settings > Users > $USER > Telphony tab +* Settings > Technical > FreeSWITCH Servers. +* Setup you server. +* Configure users under Settings > Users > $USER > Telephony tab. Usage ===== @@ -86,14 +56,43 @@ To use this module, you need to: * See scripts/get_caller_name.py to see how to set caller and callee name -* Click on Dial next to any phone number covered by associated modules +* Click on Dial next to any phone number covered by associated modules. + +1) *click2dial*. Here is how it works : -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/{repo_id}/{branch} + * In Odoo, the user clicks on the *Dial* button next to a phone number + field in the partner view. + + * Odoo connects to the FreeSWITCH Event Socket and FreeSWITCH makes the + user's phone ring. -.. repo_id is available in https://github.com/OCA/maintainer-tools/blob/master/tools/repos_with_ids.txt -.. branch is "8.0" for example + * The user answers his own phone (if he doesn't, the process stops here). + + * FreeSWITCH dials the phone number found in Odoo in place of the user. + + * If the remote party answers, the user can talk to his correspondent. + +2) Using Odoo to provide Caller ID Name in FreeSWITCH. To understand how to + use this, please see get_caller_name.py, which should be installed per the + instructions in the script on the Odoo/Odoo server. This works for + incoming and outgoing calls, per instructions in the script. + +3) *Open Caller* Here is how it works : + + * When the user clicks on the phone icon, Odoo sends a query to the + FreeSWITCH Manager Interface to get a list of the current phone calls + + * If it finds a phone call involving the user's phone, it gets the phone + number of the calling party + + * It searches the phone number of the calling party in the + Partners/Leads/Candidates/Registrations of Odoo. If a record matches, + it takes you to the form view of this record. If no record matchs, it + opens a wizard which proposes to create a new Partner with the presented + phone number as *Phone* or *Mobile* number or update an existing Partner. + + It is possible to get a pop-up of the record corresponding to the calling + party without any action from the user via the module *base_phone_popup*. Known issues / Roadmap ====================== @@ -103,14 +102,10 @@ Known issues / Roadmap Bug Tracker =========== -Bugs are tracked on `GitHub Issues `_. -In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us smashing it by providing a detailed and welcomed feedback `here `_. - +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smashing it by providing a detailed and welcomed feedback. Credits ======= @@ -118,8 +113,7 @@ Credits Contributors ------------ -* Firstname Lastname -* Second Person +* Trever L. Adams Maintainer ---------- diff --git a/freeswitch_click2dial/freeswitch_click2dial.py b/freeswitch_click2dial/freeswitch_click2dial.py index e4900a7..a3b2deb 100644 --- a/freeswitch_click2dial/freeswitch_click2dial.py +++ b/freeswitch_click2dial/freeswitch_click2dial.py @@ -27,7 +27,6 @@ try: from freeswitchESL import ESL except ImportError: import ESL -# import sys import StringIO import re import json @@ -59,7 +58,7 @@ class freeswitch_server(orm.Model): "leave empty."), 'password': fields.char( 'Event Socket Password', size=30, required=True, - help="Password that OpenERP will use to communicate with the " + help="Password that OpenERP/Odoo will use to communicate with the " "FreeSWITCH Event Socket. Refer to " "/etc/freeswitch/autoload_configs/event_socket.conf.xml " "on your FreeSWITCH server."), @@ -125,7 +124,7 @@ class freeswitch_server(orm.Model): raise orm.except_orm( _('Error:'), _("The '%s' should only have ASCII caracters for " - "the FreeSWITCH server '%s'" + "the FreeSWITCH server '%s'." % (check_str[0], server.name))) return True @@ -186,7 +185,7 @@ class freeswitch_server(orm.Model): if not user.resource: raise orm.except_orm( _('Error:'), - _('No resource name configured for the current user')) + _('No resource name configured for the current user.')) _logger.debug( "User's phone: %s/%s" % (user.freeswitch_chan_type, user.resource)) @@ -208,8 +207,6 @@ class freeswitch_server(orm.Model): _('Error:'), _("Problem in the request from OpenERP to FreeSWITCH. " "Here is the error message: %s" % e)) - # return (False, False, False) - return (user, fs_server, fs_manager) def test_es_connection(self, cr, uid, ids, context=None): @@ -229,7 +226,7 @@ class freeswitch_server(orm.Model): if fs_manager.connected() is not 1: raise orm.except_orm( _("Connection Test Failed!"), - _("Check Host, Port and Password")) + _("Check Host, Port and Password.")) else: fs_manager.disconnect() except Exception, e: @@ -384,7 +381,7 @@ class res_users(orm.Model): raise orm.except_orm( _('Error:'), _("The '%s' for the user '%s' should only have " - "ASCII characters") + "ASCII characters.") % (check_string[0], user.name)) return True @@ -404,7 +401,7 @@ class PhoneCommon(orm.AbstractModel): if not erp_number: raise orm.except_orm( _('Error:'), - _('Missing phone number')) + _('Missing phone number.')) user, fs_server, fs_manager = \ self.pool['freeswitch.server']._connect_to_freeswitch( @@ -421,7 +418,7 @@ class PhoneCommon(orm.AbstractModel): if not user.callerid: raise orm.except_orm( _('Error:'), - _('No callerID configured for the current user')) + _('No callerID configured for the current user.')) variable = "" if user.freeswitch_chan_type == 'user': diff --git a/freeswitch_click2dial/freeswitch_click2dial_demo.xml b/freeswitch_click2dial/freeswitch_click2dial_demo.xml index 543a307..c49bf6e 100644 --- a/freeswitch_click2dial/freeswitch_click2dial_demo.xml +++ b/freeswitch_click2dial/freeswitch_click2dial_demo.xml @@ -10,8 +10,8 @@ - Akretion FreeSWITCH Server - freeswitch.akretion.com + Company FreeSWITCH Server + freeswitch.example.com 8021 mypassword from-internal diff --git a/freeswitch_click2dial/scripts/get_caller_name.py b/freeswitch_click2dial/scripts/get_caller_name.py index 00a652f..7aff855 100644 --- a/freeswitch_click2dial/scripts/get_caller_name.py +++ b/freeswitch_click2dial/scripts/get_caller_name.py @@ -144,8 +144,6 @@ def convert_to_ascii(my_unicode): def main(name, phone_number, options): - # print 'options = %s' % options - # If we already have a "True" caller ID name # i.e. not just digits, but a real name, then we don't try to # connect to OpenERP or geoloc, we just keep it diff --git a/freeswitch_click2dial/static/src/js/freeswitch_click2dial.js b/freeswitch_click2dial/static/src/js/freeswitch_click2dial.js index 7d1a787..0ad0594 100644 --- a/freeswitch_click2dial/static/src/js/freeswitch_click2dial.js +++ b/freeswitch_click2dial/static/src/js/freeswitch_click2dial.js @@ -19,8 +19,6 @@ openerp.freeswitch_click2dial = function (instance) { event.stopPropagation(); var self = this; self.rpc('/freeswitch_click2dial/get_record_from_my_channel', {}).done(function(r) { - // console.log('RESULT RPC r='+r); - // console.log('RESULT RPC type r='+typeof r); if (r === false) { self.do_notify( _t('Failure'),