Jaa


MEDC '07 Las Vegas - Creating Custom VoIP solutions with CE 6.0

Cette session, animée par Todd Segal (développeur) et David Franklin (Program manager), avait pour objectif de présenter les composants disponibles de base dans Windows Embedded CE 6.0 pour développer des systèmes communicants s'appuyant sur la voix sur IP (VoIP).

Fonctionnelle sur Windows CE 5.0, la VoIP s'appuie sur la couche RTC (Real Time Communication). Elle a bénéficié de beaucoup d'améliorations dans CE 6.0 :

  • Pluggable codecs using ACM Model
  • Audio healing (correction du signal à la réception)
  • SIP SUBSCRIBE/NOTIFY
  • Symmetric UDP signaling
  • Sessions timers, UPDATE, TRACK
  • NAT traversal enhancements
  • SIP network-based privacy and asserted identity
  • Media and Signalling Stacks are flexible and interoperate in various environments

Plusieurs applications sont disponibles, entièrement personnalisables (le code source est disponible à 100%, excepté pour la stack RTC). Ces différentes applications s'appuient sur le composant PHCommon. Les contrôles, polices de caractères, couleurs, images et boites de dialogues se trouvent dans ce composant.

  • Phone application : cette application est celle prenant en charge la téléphonie.
  • Homescreen : application indicant le status des fonctionnalités de téléphonie (état de la connection, nombre de messages reçus, ...)
  • Contacts (PhInfo) : application permettant d'accéder aux contacts ActiveSync, à la recherche de contact sur un serveur OWA, accéder à la liste des appels, ...

La personnalisation concerne les points suivants :

  • Phone-enabling applications : losrque l'on veut donner à une application des fonctionnalités de type téléphonie, il "suffit" d'utiliser les fonctions du module PHCommon, telle que PHMakePhoneCall. L'application n'a alors pas besoin de connaître l'état de la onnectivité, les codecs disponibles... Pour ajouter ce genre de fonctoinnalité à IE, il faut créer un Asynchronous Pluggable Protocol Handler pour les hyperliens préfixés d'un "tel:" ou encore "sip:". Pour cela, il faut créer un object COM héritant de IInternetProtocol et appelant les fonctions PHCommon et modifier quelques paramètres de la base de registre qui permettent d'indiquer à IE vers quel plug-in renvoyer les urls en question.
  • Dealing with finicky networks : en fonction du réseau sur lequel on est la numérotation ne sera pas toujours la même (sip:xxxxxxxxx@sip.server.com, xxxxxxxxx, ...), les numéros internationaux, ou bien les transferts posent aussi des problèmes relatifs au format de la numérotation. On peut alors s'appuyer sur le Dial Plan consistant en une définiton des formats de numéros supportés.
  • Personalizing the look and feel : Le composant PHCommon prend en charge tout ce qui concerne l'affichage des applications. Pour personnaliser les applications, il s'agit de modifier les fichiers de ressources .rc du composant (changer les bitmaps, les polices, les couleurs, ...). On peut aussi, via ces fichiesr de ressources, adapter les logiciels au hard en ce qui concerne le nombre de boutons disponibles sur le terminal.
  • Working with contacts and calendar : on peut accéder et utiliser aisément à l'aide d'API diverses aux contacts activesync ou OWA. Par exemple, pour accéder à cezux d'OWA, cela représente 5 lignes de code consistant à créer un objet COM ExchangeCLient, à l'initialiser, à configurer les paramètres serveur et credentials puis à faire une requète pour obtenir la liste des contacts.

 

This session, animated by Todd Segal (software engineer) and David Franklin (Program manager), presented the in-the-box available features of Windows Embedded CE 6.0 you can use to develop VoIP enabled solutions.

Available since Windows CE 5.0, the VoIP feature relies on the RTC stack(Real Time Communication). Many enhancements occured with Windows Embedded CE 6.0 :

  • Pluggable codecs using ACM Model
  • Audio healing (signal faults correction on reception)
  • SIP SUBSCRIBE/NOTIFY
  • Symmetric UDP signaling
  • Sessions timers, UPDATE, TRACK
  • NAT traversal enhancements
  • SIP network-based privacy and asserted identity
  • Media and Signalling Stacks are flexible and interoperate in various environments

Several applications are available, that are completely customizable (source code is 100% shared but the RTC stack). Ces différentes applications s'appuient sur le composant PHCommon. Controls, fonts, colors, bitmaps are all in this module.

  • Phone application : this application is the one taking in charge all phone communication stuff.
  • Homescreen : this application indicates the status of phone functionnalities (connectivity status, # received messages, ...)
  • Contacts (PhInfo) : this application allows accessing ActiveSync contacts , search on an OWA contacts list, access calls list...

Customization concerns these points:

  • Phone-enabling applications : lwhen you want to enable phone functionnality on an application, what you'll have to do is "just" use functions from the PHCommon module, like PHMakePhoneCall. The application doesn't have to be aware of the connectivity status, available codecs, ... To add this kind of functionnality to IE, you have to create an Asynchronous Pluggable Protocol Handler for hyperlinks prefixed with a "tel:" or a "sip:". To do so, you have to create a COM boject heriting from IInternetProtocol and calling functions from PHCommon and modify some registry parameters to indicate IE to route these hyperlinks to your plugin.
  • Dealing with finicky networks : According to the network you're on, dialling may change (sip:xxxxxxxxx@sip.server.com, xxxxxxxxx, ...), internationnal numbers or company internal numbers may have various formats. You can then rely on the Dial plan consisting in a defition of the supported dialling formats.
  • Personalizing the look and feel : the PHCommon module is in charge of all display drawing. To customize the applications, you just have to modify rsources files .rc of the module (change bitmaps, fonts, colors, menu layouts, ...).
  • Working with contacts and calendar : you can access and easily use Activesync or OWA contacts. As an example, to access OWA contacts, it takes 5 lines of code : create an instance of a COM ExchangeClient object, initialize it, configure parameters for server and credentials and request the list of contacts.

Comments