06/08/2008

SunOne Player (Lecteur Multimedia Java).

  • Présentation
SunOne Player est un lecteur multimédia capable de lire des fichiers mp3, wav, midi, avi, mpeg, ..., entièrement développé en java. Il est compatible windows et Linux ceci grace à l'utilisation entre autres de l'API JMF (Java Media Framework) développé par sun MicroSystem.
  • Naissance et évolution du projet
SunOne Player est un projet que j'ai initié (projet développement en formation d'ingénieur) avec mon collègue Patrick Joël Fetue. Le projet a été offert à la communauté open source sous licence GPL v2, où se poursuit aujourd'hui son développement.

Je suis toujours administrateur du projet sur google code source et vous invite à rejoindre le groupe de développeurs. Nous serons très ravis de vous compter parmi nos membres.

Site du projet: http://code.google.com/p/sunone-player/.
Découvrir le projet avec cette capture d'écran faite de SunOne Player.

05/08/2008

Les interfaces Parlay X web services.

  • Présentation
Parlay X est né d'une collaboration entre le 3GPP, l'ETSI et le Parlay Group. C'est un ensemble de services Web de télécommunications. Il est désigné pour permettre aux développeurs de logiciel ou aux serveurs d’applications d’utiliser les capacités d’un réseau de télécommunications dans leurs applications (tel que la localisation, la capacité de mettre en place un appel, envoie de SMS, …) en leur fournissant une certaines abstractions des capacités de ce réseau là.
  • Evolution
La version 1 de Parlay X, publiée en Mai 2003, définie des web services pour entre autres : l’envoi et la réception de SMS, l’envoi et la réception de message, l’initiation d’appel par une partie tierce, …
Les spécifications de la version 2 de Parlay X ont été publiées par l’ETSI en Mars 2005. Des spécifications équivalentes ont été publiées par le 3GPP dans sa Release 6. Les spécifications de la version 2.1 de Parlay X ont été publiées en Décembre 2006.
Parlay X a été implémenté par beaucoup d’opérateurs télécom tels que British Telecom, Korea Telecom, T-Com, Mobilecom et Sprint.
  • Principe de Parlay X

Parlay X est composé de deux parties:

  1. Une partie Gateway (Parlay X Gateway) localisé dans le réseau de l'opérateur de télécommunications qui implémente les interfaces parlay X.
  2. et les applications Telecoms (Telecom Applications) qui utilise ces interfaces. Les applications télécoms agissent à la fois comme client web services pour envoyer des réquêtes aux parlay X Gateway (send SMS) ou comme serveur pour recevoir des notifications (SMS notification).

  • Les spécifications à ce jour:
- Part 1: Common (# TS 29.199-01 OSA Parlay X Web Services )
- Part 2: Third Party Call (# TS 29.199-02 OSA Parlay X Web Services)
- Part 3: Call Notification (# TS 29.199-03 OSA Parlay X Web Services)
- Part 4: Short Messaging (# TS 29.199-04 OSA Parlay X Web Services)
- Part 5: Multimedia Messaging (# TS 29.199-05 OSA Parlay X Web Service)
- Part 6: Payment (# TS 29.199-06 OSA Parlay X Web Services)
- Part 7: Account Management (# TS 29.199-07 OSA Parlay X Web Service)
- Part 8: Terminal Status (# TS 29.199-08 OSA Parlay X Web Service)
- Part 9: Terminal Location (# TS 29.199-09 OSA Parlay X Web Service)
- Part 10: Call Handling (# TS 29.199-10 OSA Parlay X Web Service)
- Part 11: Audio Call (# TS 29.199-11 OSA Parlay X Web Service)
- Part 12: Multimedia Conference (# TS 29.199-12 OSA Parlay X Web Services)
- Part 13: Address List Management (# TS 29.199-13 OSA Parlay X Web Service)
- Part 14: Presence (# TS 29.199-14 OSA Parlay X Web Service)
- Part 15: Message Broadcast (# TS 29.199-15 OSA Parlay X Web Service)
- Part 16: Geocoding (# TS 29.199-16 OSA Parlay X Web Services)
- Part 17: Application-driven Quality of Service (QoS) (# TS 29.199-17 OSA Parlay X Web Services)
- Part 18: Device Capabilities and Configuration (# TS 29.199-18 OSA Parlay X Web Services)
- Part 19: Multimedia Streaming Control (# TS 29.199-19 OSA Parlay X Web Service)
- Part 20: Multimedia Multicast Session Management (# TS 29.199-20 OSA Parlay X Web Services)
- Part 21: Content Management (# TS 29.199-21 OSA Parlay X Web Services)
- Part 22: Policy (# TS 29.199-22 OSA Parlay X Web Services).

Vos interfaces graphiques java avec Visual Editor.

Il existe de nombreux IDE Java qui intègre des éditeurs d'interfaces graphiques. Vous pouvez également utiliser un plugin pour Eclipse qui vous permet de dessiner vos interfaces très rapidement.

Visual Editor est un plugin pour Eclipse qui permet de créer vos interfaces graphiques très rapidement grâce à un designer. Cette vidéo vous montrera comment l'utiliser.

Vous pourrez réaliser des interfaces graphiques en AWT, Swing, SWT, RCP, ... Nous ne verrons qu'un exemple d'application Swing durant cette vidéo. (télécharger la vidéo)

04/08/2008

Installation et configuration d'OpenIMS Core.

1. Présentation d'openIMS Core:

L'Open IMS Core est une implémentation des Call Session Control Functions (CSCFs) et du HSS (Home Subscriber Server), qui forment ensemble le réseau coeur des architectures IMS/NGN comme spécifié par le 3GPP, le 3GPP2, l'ETSI TISPAN et le PacketCable intiative. Les outils utilisés dans le développement sont tous des outils open source (ex. le SIP Express Router (SER) ou MySQL).

2. Guide d'installation sous un environnement Debian (Ubuntu 7.10)
  • Pré-requis
Pour pouvoir installer OpenIMS Core nous devons disposer de:
----> GCC3/4, make, JDK1.5, ant
----> MySQL installé et démarré (ou un autre SGBD si vous voulez)
----> bison, flex
----> libxml2 (> 2.6), libmysql - les deux avec leurs versions developpements,
----> Linux kernel 2.6 et ipsec-tools (setkey) si vous voulez utiliser la sécurité IPSec
----> Optionel: openssl si vous voulez permettre la securité TLS,
----> bind installé et démarré (ou un autre serveur de noms si vous voulez),
----> Un Browser (navigateur web)
(tous ces outils peuvent être installé à partir du gestionnaire de paquets (synaptic) en utilisant la barre de recherche)
  • Récupération des sources
----> Créer /opt/OpenIMSCore et se placer dans ce répertoire
mkdir /opt/OpenIMSCore
cd /opt/OpenIMSCore

----> Créer un nouveau répertoire "ser_ims" et récupérer le code des CSCFs dedans:
mkdir ser_ims
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/ser_ims/trunk ser_ims

----> Créer un nouveau répertoire "FHoSS" et récupérer le code du HSS dédans:
mkdir FHoSS
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/FHoSS/trunk FHoSS

(si vous préférez modifier ces répertoires alors préparez vous à la modification des fichiers de configuration)
  • compilation
----> ser_ims
Faire "make install-libs all" dans ser_ims
cd ser_ims
make install-libs all
cd ..


(S'il y a des erreurs cela signifie que vous n'avez pas tous les pré-requis.)

----> FHoSS
Si vous n'avez pas un JDK >=1.5, installez en un avant de continuer. Rassurer que la version du JDK utilisé est est >= 1.5!!!. Il y a souvent des cas où on installe bien un JDK mais le système continue à utiliser l'ancienne version.

tappez cette commande dans le shell
# java -version
java version "1.5.0_07"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03)
Java HotSpot(TM) Client VM (build 1.5.0_07-b03, mixed mode)

Faire "ant compile deploy" dans FHoSS
cd FHoSS
ant compile
ant deploy
cd ..


En attendant la fin de la compilation, passer à l'étape suivante.
  • configuration de l'environnement(en cous de rédaction)
  • configuration du cœur IMS
  • Démarrage des composants
  • Configuration des utilisateurs
  • Tests

Configuration de phpPgAdmin avec EasyPphp et wamp.

1. Présentation de phpPgAdmin:

PostgreSQL est un système de gestion de base de données relationnelles (SGDBR) libre légèrement plus puissant que MySQL. Utilisable avec le PHP, il a donc été créé un utilitaire permettant d’administrer ses bases de données PostgreSQL via une interface web : phpPgAdmin.

Grâce à son interface simple et intuitive, il est très facile d’administrer les bases de données de son serveur. Pour peu que votre utilisateur ait suffisamment de droits, vous pourrez entre autre : ajouter, supprimer ou modifier des bases de données, des tables, des données, ... Vous pourrez également gérer vos vues, séquences ou autres fonctions, ceci permettant ainsi d’optimiser votre utilisation de ce SGBDR.

La sécurité dans ce genre de logiciel étant très importante, on appréciera le fait que les développeurs aient pensé à interdire, par défaut, l’accès aux logins couramment utilisés pour les utilisateurs ayant les pleins pouvoir (postgres, root, ...). J’ai également pu apprécier le fait d’avoir une fenêtre toujours accessible pour entrer mes commandes SQL, ainsi que la présence d’un moteur de recherche permettant de trouver facilement toutes sortes de choses à partir d’un mot présents parmi leur nom.

Parmi les points faibles de ce logiciel, j’ai regretté l’absence de fonction automatique d’importation (alors que l’exportation est bien présente).

Pour conclure, ce logiciel est très utile si vous souhaitez administrer vos bases de données et malgré ses quelques défauts, on peut, sans aucun doute, lui prédire un avenir à la PHPMyAdmin si tant est que PostgreSQL progresse un peu plus dans les solutions d’hébergement avec bases de données.

Nombre de développeur utilise wamp ou Easyphp sur leur station de travail.
Ces outils sont malheureusement fourni avec MySQL par défaut, nous allons vous montrer comment intégrer PhpPgAdmin dans ces environnements.

2. Configuration dans EasyPhp:

  • Pré réquis:
Avoir EasyPHP d’installé (téléchargement), Télécharger la dernière version de phpPgAdmin (téléchargement) Avoir PostgreSQL d'installé et correctement configuré(visitez ce site).
  • Convention
Nous nommerons ${EASYPHP} le répertoire où est installé EasyPHP. Dans mon cas, je l'ai installé dans c:\easyphp. Donc ${EASYPHP} = c:\easyphp.

Nous nommerons ${PGHOME} le répertoire où est installé postgresql. Dans mon cas, je l'ai installé dans C:\\Program Files\\PostgreSQL\\8.1. Donc ${PGHOME}= C:\\Program Files\\PostgreSQL\\8.1.
  • Installation de phpPgAdmin
Après avoir téléchargé phpPgAdmin, il faut l'extraire à la racine de Easyphp (${EASYPHP}) au même endroit que le repertoire phpmyadmin. On prend soin de renommer le dossier en phppgadmin (tout en minuscule).

Pour le configurer, rien de plus simple, éditons le fichier ${EASYPHP}\phppgadmin\conf\config.inc.php. PhpPgAdmin peut gérer plusieurs serveurs, ici, nous verrons le cas le plus simple : Un serveur local.

config.inc.php
$conf['servers'][0]['desc'] = 'PostgreSQL en local';
$conf['servers'][0]['host'] = '127.0.0.1';
$conf['servers'][0]['defaultdb'] = 'template1';
$conf['extra_login_security'] = false; // par défaut à true, mais je souhaite me connecter avec le compte postgres,
$conf['servers'][0]['pg_dump_path'] = '${PGHOME}\\bin\\pg_dump.exe'; // il faut verifier le chemin de votre installation
$conf['servers'][0]['pg_dumpall_path'] = '${PGHOME}\\bin\\pg_dumpall.exe';


A noter que l'on ne configure pas le login/mot de passe dans le fichier de configuration, c'est volontaire ! Ce sera au moment de la connexion qu'il nous demandera de s'authentifier.
  • Modification des fichiers de configuration d'EasyPHP:
- Apache:
On accède à la configuration d'Apache, en procédant à un clique droit sur l'icône EasyPHP à coté de l'heure Configuration --> Apache

On recherche la ligne Alias /mysql/ et on se place comme sur la capture d'écran pour y ajouter le texte ci-dessous :
httpd.conf
Alias /pgsql/ "${path}/phppgadmin/"
Options FollowSymLinks Indexes
AllowOverride None
Order deny,allow
allow from 127.0.0.1
deny from all
- Module PHP:
Maintenant on active le module php_pgsql, pour cela on va dans Configuration --> Extensions PHP et on coche php_pgsql.

C'est fini, il faut maintenant tester http://localhost/phppgadmin

3. Configuration avec wamp:

D'abord installer wamp si c'est pas déjà fait (téléchargement).
La configuration de phpPgAdmin reste la même qu'au chapitre précedent. Le repertoire phpPgAdmin sera dans ce cas placé dans ${WAMP}\apps (dans mon cas ${WAMP}= c:\wamp) à côté du repertoire phpmyadmin.
  • Modification des fichiers de configuration de wamp:
-Apache: (configuration de l'alias)
La configuration de l'alias se fera de la sorte: Apache --> Répertoire Alias --> Créer un alias
Dans l'invite de commande proposé, entrer /phppgadmin/ puis tapper "entrée", ensuite dans l'invite de commande suivante entrer le repertoire d'installation de phpPgAdmin C:/wamp/apps/phpPgadmin-4.2 (dans mon cas) puis tapper "entrée". votre fichier httpd.conf est à présent configuré.

-Module PHP:
Il ne reste plus qu'à configure PHP pour qu'il tienne compte de postgresql. Ceci via
PHP -->Extensions PHP --> php_pgsql
Redémarrer wamp et s'assurer que Postgresql est demmaré enfin tester http://localhost/phppgadmin/.

Félicitation.

4. Liens utiles:

http://dgriessinger.developpez.com/postgresql/easyphp-phppgadmin/

03/08/2008

Les technologies de la convergence fixe mobile.

La convergence fixe mobile prend trois formes:
• La convergence commerciale : proposer une facture et une gestion client unifiées,
• La convergence des services : créer un environnement de services uniques pour le client,
• La convergence technologique : construire des passerelles entre les réseaux fixes et mobiles.
On sait que la convergence fixe-mobile est un des principaux facteurs de transformation de l’industrie des télécommunications, mais on connait moins ses technologies et leurs positionnements respectifs.

1. CTP
Le CTP (Cordless Telphony Profile) est issu de la technologie Bluetooth dont il représente un des profils. Il permet à un terminal mobile de se connecter à un point d’accès Bluetooth relié à la ligne téléphonique en intérieur, tout en accédant au réseau mobile à l’extérieur. Cette technologie, qui ne nécessite aucune évolution dans le réseau, a pu être adoptée par des opérateurs voulant lancer rapidement une offre, mais est relativement ancienne et semble aujourd’hui distancée.
Les deux principales alternatives sont aujourd’hui l’UMA et l’IMS.

2. UMA
L’UMA (initialement Unlicensed Mobile Access, désormais Universal Mobile Access), au départ un standard indépendant développé par un consortium établi fin 2003, a été intégré par le 3GPP en Release 6 et suit désormais ses évolutions (sous le nom de GAN ou Generic Access Network). Ainsi l’UMA intègre-t-il la 3G depuis début 2008. Il a pour but de fournir un accès à la voix sur IP et à d’autres services à travers des réseaux indépendants (d’où le terme unlicensed), à partir d’un terminal mobile bi-mode GSM/WiFi.
L’UMA vise à fournir une couverture sans coupure et transparente pour l’utilisateur de services sur IP, notamment la voix, que l’on soit sous couverture mobile ou sous couverture WiFi (home zone, hot spot). L’architecture UMA repose sur l’UNC (UMA Network Controler), qui joue le rôle d'un BSC dans le réseau mobile, tout en étant rattaché aux points d’accès WiFi par un réseau IP haut débit. Lorsqu’il passe un appel à proximité d’une de ces bases, le client UMA sur le mobile encapsule l’ensemble des données (signalisation, voix, données) sur la liaison IP. L’UNC restitue alors les données pour le cœur du réseau mobile comme pour une communication classique, tout en informant le réseau de la localisation de l’abonné, permettant la gestion du handover.

Une autre option est de se baser sur une architecture IMS.

3. IMS
Le réseau IMS (IP Multimedia Subsystem) est la solution de convergence adoptée par le forum 3GPP et TISPAN. En unifiant les procédures d’établissement de sessions, il permet l’utilisation du réseau par toute la gamme des accès (xDSL, mobile, fibre, câble, etc..). L’IMS substitue à la notion d’appel commuté la notion de session multimédia entre utilisateurs permise par le protocole SIP. Chacun des accès, en intégrant SIP, peut alors faire partie d’une session multimédia intégrant voix, données, ou vidéo, et la notion de handover devient presque naturelle. Elle est réalisée dans l’IMS par le service VCC (Voice Call Continuity), qui permet le basculement entre un réseau circuit GSM/UMTS et l’IMS et dont l’arrivée est prévue en 2009/2010.
Contrairement à UMA qui est poussé par les opérateurs mobiles, l’IMS peut tenter des opérateurs de réseaux fixes ou câblés pour peu qu’ils soient prêts à investir à long terme dans ces réseaux tout IP où la notion même de commutation a disparu. Surtout, en unifiant le réseau pour tous les types d’accès, l’IMS est la technologie reine pour les opérateurs intégrés qui y trouveront une solution naturelle de convergence pour tous les types de flux media imaginables, alors que l’UMA est focalisée sur la voix.4. Femtocell
Enfin, la technologie femtocell, récemment apparue, repose sur le principe d’une mini station de base radio de très faible capacité (quelques appels simultanés) présente chez le client, et connectée au réseau mobile à travers Internet. Un de ses points forts est donc qu’elle ne nécessite pas de terminal adapté, le boîtier gérant lui-même la bascule entre le réseau mobile et l’accès IP. Elle présente une alternative très intéressante en termes de qualité car elle s’appuie sur des bandes optimisées pour la voix, notamment face au WiFi dont la capacité à offrir de la voix sans coupures nécessite une mise au point rigoureuse, et plus encore au Bluetooth. Présentée sous la forme d’un adaptateur ou incluse dans une box, la femtocell est une solution propriétaire qui renforce le “verrouillage” du client tout en évitant certains des écueuils du WiFi (autonomie, cannibalisation des points d’accès). S’il s’agit d’une solution d’avenir, elle risque d’arriver tard sur le marché, sa commercialisation souffrant de problèmes de coûts et de mise au point technologique (gestion des interférences radio).

L'architecture IMS.

Dans sa release 5, le 3GPP définie pour la première fois, une architecture IMS qui permet une ouverture vers les plateformes de services. Bien que dans cette release, l'accès à l'IMS ne fut définit que pour les réseaux 3G et GPRS (2G+), elle ouvrait déjà la voie à une convergence des technologies d'accès.
Les couches de l’architecture NGN sont présentées sur la Figure.

Trois couches ont été définies dans les réseaux NGN, ce sont:
  • La couche transport:
La couche de transport est responsable de l'abstraction de la réalité des réseaux d'accès (filaire, de paquets radio, …) de l'architecture NGN. Par essence, cette couche joue le rôle de point d'intersection entre les couches d'accès et le réseau IP au-dessus d'elle. Elle est responsable de l’initialisation des paramètres d’accès au réseau IP (affectation de l'adresse IP et de la passerelle par défaut via DHCP).
  • La couche signalisation ou IMS
L’IMS joue le rôle de couche logique intermédiaire entre, d’un côté, les terminaux et les réseaux d'accès et de transport orientés IP et, de l’autre, les services applicatifs de télécoms (voix sur IP, push-to-talk, messagerie instantanée, ...). Elle met en œuvre certaines fonctions techniques (mécanismes de contrôle et signalisation) entre différents équipements au cœur d’un réseau d’opérateurs, en recourant au protocole de signalisation SIP (Session Initiation Protocol) standardisé par l’IETF (l’organe de normalisation technique d’internet). Indépendant de la nature des données transportées, SIP apporte en outre la détection de la présence de l’abonné, que connaissent bien les utilisateurs de messagerie instantanée sur Internet.
  • La couche service
Il y a trois plateformes de services standardisées : (1) SIP application server, (2) Open Service Access (OSA) Service Capability Server (SCS), et (3) IP Multimedia Service Switching Function (IM-SSF). Les services offerts par ces plateformes sont des services à valeurs ajoutées (value-added services VAS) ou des services spécifiques à l’operateur. Le S-CSCF utilise la même interface, l’interface IMS Service Control (ISC), pour interfacer avec toutes ces plateformes. Le protocole de signalisation à travers cette interface est SIP. L’OSA SCS et L’IM-SSF ne sont pas des serveurs d’applications proprement dit. Ce sont plus des passerelles (gateways) d’accès aux autres environnements de services. L’OSA SCS et l’IM SSF interface respectivement avec l’OSA application server et le CAMEL Service Environment (CSE). Du point de vue du S-CSCF, cependant, ils présentent tous le même comportement de l’interface ISC. Les services sont brièvement décrits ci-dessous:
- SIP Application Server (AS):
En plus du control de session, un serveur SIP peut également fournir différents services à valeurs ajoutées. Un AS SIP permet au CSCF d'utiliser des services basés sur SIP et d'interagir avec d’autres serveurs d'application SIP sans composants supplémentaires.

- CAMEL Service Environment (CSE):
Le CSE fournit des services hérités des réseaux intelligents (Intelligents Networks IN). Il permet aux opérateurs d’agir sur les infrastructures IMS existantes pour introduire les services hérités des réseaux 2G. Comme indiqué précédemment, le S-CSCF interagit avec le CSE par l’intermédiaire de l'IM-SSF. L’IM-SSF introduit les fonctionnalités CAMEL et interfaces avec le CSE par l’interface CAP (CAMEL Application Part).

- OSA Application Server:
Ces applications peuvent être développées par des tiers qui ne sont pas propriétaires de l’infrastructure réseau. Le serveur d'application OSA fournit un cadre standard pour des tiers leur permettant d’avoir un accès sécurisé à l’IMS. L'architecture de référence OSA définit un OSA Application Server qui sert d’environnement d'exécution pour des applications tierces. Le serveur d'application OSA interfaces avec les CSCF à travers l'OSA SCS par l'interface OSA API (Application Programming Interface).

01/08/2008

Bonjour à tous,

Ouf enfin ..., j'ai pris du temps à me décider.

J'entends à travers cet espace partager mes connaissances et expériences avec la communauté des internautes.

Je vous donne rendez-vous à très bientôt pour un premier article que je promet très riche.

En attendant, prenez soin de vous.

A bientôt.