Modifications entre les versions 2 et 3
Version 2 à la date du 2010-11-25 07:51:59
Taille: 3073
Commentaire:
Version 3 à la date du 2012-01-10 16:34:48
Taille: 3336
Commentaire: + auto-provisionning
Texte supprimé. Texte ajouté.
Ligne 20: Ligne 20:
Depends: libapache2-mod-wsgi Depends: auf-refer libapache2-mod-wsgi
Ligne 71: Ligne 71:
 * on peut aussi « pousser » cette configuration en ''auto-provisionning'' en ajoutant les lignes suivantes dans la section `[sys]` : {{{
Phonebook1_url=http://intranet.vn.auf/voip/annuaire?mac=#MAC&search=#SEARCH
Phonebook1_name=Annuaire AuF
}}}

Cette page présente une solution pour mettre en place un accès à l'annuaire téléphonique de l'AuF depuis le téléphone IP Thomson ST2030.

  • installer le paquet auf-refer dans un serveur web accessible depuis le réseau interne

  • activer la synchronisation des données de l'annuaire :

    sudo auf-refer -a annuaire.json
  • configurer le chemin d'accès à l'annuaire dans Apache :

            WSGIScriptAlias /voip/annuaire /srv/python/ST2030-annuaire.py
            <Location /voip/annuaire>
                    Order Allow,Deny
                    Allow from all
            </Location>
  • créer le script /srv/python/ST2030-annuaire.py :

       1 #!/usr/bin/env python
       2 # -*- coding: utf-8 -*-
       3 """
       4 Annuaire téléphonique dynamique pour les téléphones IP Thomson ST2030.
       5 
       6 Depends: auf-refer libapache2-mod-wsgi
       7 
       8 Attention : le code n'est pas encore “thread-safe”...
       9 """
      10 import aufrefer
      11 
      12 phonebook_document = u'<ThomsonPhoneMenu>\n%s\n</ThomsonPhoneMenu>'
      13 phonebook_entry = u'<DirectoryEntry><Name>%(name)s</Name><Telephone>%(phone)s</Telephone></DirectoryEntry>'
      14 
      15 def search(pattern):
      16     phonebook_entries = []
      17     for user in aufrefer.get('annuaire.json'):
      18         if user['tel_ip'] and pattern in user['adel']:
      19             name = user['adel'].split('@')[0]
      20             phone = user['tel_ip'].replace(' ','')
      21             entry = phonebook_entry % {'name': name, 'phone': phone}
      22             phonebook_entries.append(entry)
      23     return phonebook_document % '\n'.join(phonebook_entries[0:32])
      24 
      25 def application(environ, start_response):
      26     query = environ.get('QUERY_STRING').lower()
      27     params = dict([x.split('=') for x in query.split('&')])
      28     if not params.get('mac') or not params.get('search'):
      29         headers = [('Content-Type', 'text/plain; charset=utf-8'), ]
      30         start_response('401 Authorization Required', headers)
      31         return ['Authorization Required']
      32     data = search(params.get('search')).encode('utf-8')
      33     mime_type = 'text/xml; charset=utf-8'
      34     length = str(len(data))
      35     headers = [('Content-Type', mime_type), ('Content-Length', length), ]
      36     start_response('200 OK', headers)
      37     return [data]
      38 
      39 if __name__ == '__main__':
      40     # this runs when script is started directly from commandline
      41     try:
      42         # create a simple WSGI server and run the application
      43         from wsgiref import simple_server
      44         print "Running test application - point your browser at http://localhost:8000/ ..."
      45         httpd = simple_server.WSGIServer(('', 8000), simple_server.WSGIRequestHandler)  
      46         httpd.set_app(application)
      47         httpd.serve_forever()
      48     except ImportError:
      49         # wsgiref not installed, just output html to stdout
      50         for content in application({}, lambda status, headers: None):
      51             print content
    
  • configurer l'annuaire distant dans le téléphone :
    • aller dans la section Advanced > Phone Lists > Remote Phone Book

    • URL : http://intranet.vn.auf/voip/annuaire?mac=#MAC&search=#SEARCH

    • Name : Annuaire AuF
  • on peut aussi « pousser » cette configuration en auto-provisionning en ajoutant les lignes suivantes dans la section [sys] :

    Phonebook1_url=http://intranet.vn.auf/voip/annuaire?mac=#MAC&search=#SEARCH
    Phonebook1_name=Annuaire AuF


JeanChristopheAndré/Notes/ST2030 (dernière édition le 2012-01-10 16:36:46 par JeanChristopheAndré)