SlideShare uma empresa Scribd logo
1 de 12
Auto provisioning   –   Gestion des contacts    –     Présence   –   Vidéo surveillance


X.   ANNEXES
       ANNEXE - 1 :           Traces de toute la procédure d’auto provisioning




 Figure X-1 : Le téléphone au démarrage va émettre une requête cdp pour connaître les
 équipements cisco voisins.




 Figure X-2 : Comme décrit dans le scénario de fonctionnement, le téléphone va chercher une
 adresse ip auprès de notre serveur dhcp. Le serveur lui attribue l’adresse 192.168.1.5. Les
 échanges dhcp sont coloriés en bleu.




 Figure X-3 : Le téléphone récupère ensuite son fichier de configuration sur le serveur tftp
 (SEP18EF639E60F4.cnf.xml).




 Figure 4 : Le téléphone se met à jour en téléchargeant le nouveau firmware (P00308010200.sb2).
 Les messages ont été tronqués car ils sont trop longs.



                                     Promotion : 2009 – 2011
                                                                                           a
Auto provisioning    –    Gestion des contacts    –     Présence   –    Vidéo surveillance




Figure X-5 : Ces messages indiquent l’enregistrement du téléphone sur le serveur asterisk. Ensuite
asterisk envoi les paramètres du téléphone configurés dans sscp.conf comme le paramétrage des
touches, des boutons, l’heure à afficher, le nom de téléphone à afficher, etc…




                                      Promotion : 2009 – 2011
                                                                                              b
Auto provisioning    –    Gestion des contacts    –     Présence    –    Vidéo surveillance




Figure X-6 : Cette figure montre les étapes d’appel. Quand on compose un numéro, le téléphone
transmet un à un les numéros composés (j’ai composé 1001 dont le téléphone envoie 4 fois le
message KeypadButtonMessage). Ensuite asterisk fait sonner l’abonné appelé (2548) et lorsqu’il
décroche, asterisk informe l’abonné appelant (2563) qui commence à émettre la voix (2566 :
startMediaTransmission) à travers les messages RTP coloriés en bleu.




Figure 7 : Si l’appelé répond, astérisk envoi le message au téléphone appelant (192.168.1.5) en
UDP (3324).



                                      Promotion : 2009 – 2011
                                                                                                  c
Auto provisioning   –   Gestion des contacts    –     Présence   –   Vidéo surveillance




Figure X-8 : Le téléphone raccroche et asterisk envoi un message ICMP (3349). Le téléphone
appelant arrête la transmission la communication et envoi les statistiques de l’appel.




       ANNEXE - 2 :          Codes sources des pages de gestion des contacts


Pour un petit rappel, les liens indiqués dans le fichier de configuration dans le serveur tftp
doivent pointer sur l’un des fichiers écrits en php que l’on met dans le serveur web (apache).
Dans mon cas j’ai mis deux liens ; un menant vers le fichier charger d’afficher le répertoire
de contacts (PhoneDirectory.php) et le deuxième lien menant vers le fichier utilisé pour des
services supplémentaires (services.php).

 Je crée un fichier (db_connection.php) qui sera utilisé par n’importe quel autre fichier
nécessitant une connexion à la base de données MySQL :

                                    db_connection.php

     <?
     $connection = @mysql_connect("localhost", "cisco", "cisco") or die('database is
     down, or username and password is wrong');
     $db_name = "astcontacts";
     $db = @mysql_select_db($db_name, $connection) or die('database name not working,
     line 3.');
     ?>


Le fichier qui suit est utilisé pour lire le contenu de la base de données des contacts et
l’afficher sur le téléphone ipcisco.

                                    PhoneDirectory.php

     < ?php
     ##########################################
     # Configuration Chemin vers ce fichier php
     #$Server = "http://Adresse IP Serveur Web/contacts";
     $Server = "http://192.168.1.1/contacts"; # sans le / à la fin!
     $LongDistanceExtension = ""; # Préfixe pour des numéros extérieur
     ##########################################
     # Type de contenu

                                    Promotion : 2009 – 2011
                                                                                          d
Auto provisioning   –   Gestion des contacts    –     Présence   –   Vidéo surveillance


 header("Content-Type: text/xml");
 # On inclut le fichier de connexion à la base de données to MySQL
 require("db_connection.php");
 # Comme on sait que le téléphone ne peut afficher que les 30 prémiers #contacts, les
 deux lignes qui suivent sont utilisées pour à partir du quantième #contact on va
 continuer à afficher (le 31e contact jusqu’à…)
 $NextSet = $_GET['NextSet'];
 $NextStartingRow = $NextSet*30;
 # Si la variable “ID” existe alors on le récupère avec la function GET et #ensuite on
 affiche les numéros de cet ID. En fait comme chaque contact à un #ID, lorsqu’on
 clique sur un contact, ce fichier se recharge en envoyant juste #l’ID du contact qu’on a
 sélectionné et ainsi le récupère et affiche ses #numéros. Il est combiné avec du XML.
 $ID = $_GET['ID'];
 if ($ID) {
       $PersonDirectoryListing = "<CiscoIPPhoneDirectory>n";
       $Query = "SELECT id, first_name, last_name, phone_home, phone_work,
 phone_mobile, phone_other ";
       $Query .= "FROM contacts WHERE id = $ID ";
       $SelectPersonInfo = mysql_query($Query,$connection);
       while ($row = mysql_fetch_array($SelectPersonInfo)) {
            $CellPhone = ereg_replace("[ ()-]+", "", $row['phone_mobile']);
            $HomePhone = ereg_replace("[ ()-]+", "", $row['phone_home']);
            $WorkPhone = ereg_replace("[ ()-]+", "", $row['phone_work']);
            $OtherPhone = ereg_replace("[ ()-]+", "", $row['phone_other']);
            if ($row["phone_home"]) {
                  $PersonDirectoryListing .= "<DirectoryEntry>n";
                  $PersonDirectoryListing .= "<Name>Home:</Name>n";
                  $PersonDirectoryListing .=
 "<Telephone>$HomePhone</Telephone>n";
                  $PersonDirectoryListing .= "</DirectoryEntry>n";
            }
            if ($row["phone_mobile"]) {
                  $PersonDirectoryListing .= "<DirectoryEntry>n";
                  $PersonDirectoryListing .= "<Name>Cell:</Name>n";
                  $PersonDirectoryListing .=
 "<Telephone>$LongDistanceExtension$CellPhone</Telephone>n";
                  $PersonDirectoryListing .= "</DirectoryEntry>n";
            }
            if ($row["phone_work"]) {
                  $PersonDirectoryListing .= "<DirectoryEntry>n";
                  $PersonDirectoryListing .= "<Name>Work:</Name>n";
                  $PersonDirectoryListing .=
 "<Telephone>$LongDistanceExtension$WorkPhone</Telephone>n";
                  $PersonDirectoryListing .= "</DirectoryEntry>n";
            }
            if ($row["phone_other"]) {
                  $PersonDirectoryListing .= "<DirectoryEntry>n";
                  $PersonDirectoryListing .= "<Name>Other:</Name>n";
                  $PersonDirectoryListing .=
 "<Telephone>$OtherPhone</Telephone>n";

                                Promotion : 2009 – 2011
                                                                                      e
Auto provisioning      –   Gestion des contacts    –     Présence   –   Vidéo surveillance


                    $PersonDirectoryListing .= "</DirectoryEntry>n";
             }
       }
       $PersonDirectoryListing .= "</CiscoIPPhoneDirectory>n";
 echo "$PersonDirectoryListing";
 # Si la variable ID n’est pas récupérée alors on affiche juste les contacts (nom # et
 prénom).
 } else {
       $PersonNameList = "<CiscoIPPhoneMenu>n";
       $PersonNameList .= "<Title>Phone Directory</Title>n";
       $PersonNameList .= "<Prompt>Please select one</Prompt>n";
       $Query = "SELECT id, first_name, last_name, phone_home, phone_work,
 phone_mobile, phone_other ";
 $Query .= "FROM contacts ";
  # Les suivantes sont utilisées pour la recherche dans les contacts. Pour cela
 # quand on tape le nom à rechercher, on arrive sur ce fichier qui récupère ce
 # nom à travers la variable LastName
 $LastName = $_GET['LastName'];
       if ($LastName) $Query .= "WHERE last_name like '$LastName%' ";
       if ($LastName) $Query .= "OR first_name like '$LastName%' ";
       $Query .= "order by last_name";
 # On limite chaque page à afficher au maximum 30 contacts
       if (!$NextSet) {
             $Query .= " Limit 0,30";
       # Si c’est la page suivante alors on le limite aussi à 30 contacts.
 } else {
             $Query .= " Limit $NextStartingRow,30";
 }
       # On exécute toutes les requêtes
 # echo $Query;
       $SelectNameList = mysql_query($Query,$connection);
 # On compte le nombre maximal de contacts et si c’est supérieur à 30
       # alors on affecte une valeur pour la prochaine page.
 $NumberOfRows = mysql_num_rows($SelectNameList);
 if ($NumberOfRows>= 30) {
             $NextSetValue = $NextSet+1;
       }
       # Les lignes suivantes sont utilisées pour afficher les contacts
 while ($row = mysql_fetch_array($SelectNameList)) {
             $PersonNameList .= "<MenuItem>n";
                  $PersonNameList .= "<Name>";
                       $PersonNameList .= $row["last_name"];
                       if ($row["first_name"]) $PersonNameList .= ", " .
 $row["first_name"];
                  $PersonNameList .= "</Name>n";
                  $PersonNameList .= "<URL>";
                       $PersonNameList .= "$Server/PhoneDirectory.php?";
                       $PersonNameList .= "ID=";
                       $PersonNameList .= $row["id"];
 $PersonNameList .= "</URL>n";

                                   Promotion : 2009 – 2011
                                                                                             f
Auto provisioning   –   Gestion des contacts    –     Présence   –   Vidéo surveillance


               $PersonNameList .= "</MenuItem>n";
          }
          # S’il y a une prochaine page alors on affiche un mot (Plus…) pour la
     # prochaine page.
          if ($NextSetValue) {
               $PersonNameList .= "<MenuItem>n";
                     $PersonNameList .= "<Name>Plus...</Name>n";
                     $PersonNameList .=
     "<URL>$Server/Plus.php?NextSet=$NextSetValue&amp;LastName=$LastName</U
     RL>n";
     $PersonNameList .= "</MenuItem>n";

         }     $PersonNameList .= "</CiscoIPPhoneMenu>";
     echo "$PersonNameList";
     }
     ?>


Ce code est utilisé pour afficher la page suivante avec les contacts restants au cas où le
téléphone ne peut pas afficher tous les contacts en une seule fois.
                                           Plus.php

     <?php
     ##########################################
     # Configuration Chemin vers ce fichier php
     #$Server = "http://Adresse IP Serveur Web/contacts";
     $Server = "http://192.168.1.1/contacts"; # sans le / à la fin!
     $LongDistanceExtension = ""; # Préfixe pour des numéros extérieur
     ##########################################
     # Type de contenu
     header("Content-Type: text/xml");
     # On inclut le fichier de connexion à la base de données to MySQL
     require("db_connection.php");
     $NextSet = $_GET['NextSet'];
     if (!$NextSet) {
                 $NextStartingRow = 0;
           # Now for each subsiquent call we get the next 30 records.
           } else {
                 $NextStartingRow = $NextSet*2;
           }
           $PersonNameList = "<CiscoIPPhoneMenu>n";
           $PersonNameList .= "<Title>Phone Directory</Title>n";
           $PersonNameList .= "<Prompt>Please select one</Prompt>n";
                 $Query = "SELECT id, first_name, last_name, phone_home, phone_work,
     phone_mobile, phone_other FROM contacts order by last_name Limit
     $NextStartingRow,2";
           $LastName = $_GET['LastName'];
           if ($LastName) $Query = "SELECT id, first_name, last_name, phone_home,
     phone_work, phone_mobile, phone_other FROM contacts WHERE last_name like

                                   Promotion : 2009 – 2011
                                                                                         g
Auto provisioning   –    Gestion des contacts   –     Présence   –   Vidéo surveillance


     '$LastName%' OR first_name like '$LastName%' order by last_name Limit
     $NextStartingRow,2";
     #      echo $Query;
          $SelectNameList = mysql_query($Query,$connection);
          $NumberOfRows = mysql_num_rows($SelectNameList);
          if ($NumberOfRows>= 2) {
               $NextSetValue = $NextSet+1;
          }
          while ($row = mysql_fetch_array($SelectNameList)) {
               $PersonNameList .= "<MenuItem>n";
                    $PersonNameList .= "<Name>";
                         $PersonNameList .= $row["last_name"];
                         if ($row["first_name"]) $PersonNameList .= ", " .
     $row["first_name"];
                    $PersonNameList .= "</Name>n";
                    $PersonNameList .= "<URL>";
                         $PersonNameList .= "$Server/PhoneDirectory.php?";
                         $PersonNameList .= "ID=";
                         $PersonNameList .= $row["id"];
                         $PersonNameList .= "</URL>n";
               $PersonNameList .= "</MenuItem>n";
          }

          if ($NextSetValue) {
               $PersonNameList .= "<MenuItem>n";
                    $PersonNameList .= "<Name>Plus...</Name>n";
                    if($LastName){ $PersonNameList .=
     "<URL>$Server/Plus40.php?NextSet=$NextSetValue&amp;LastName=$LastName</
     URL>n";
                                                           }else{ $PersonNameList
     .= "<URL>$Server/Plus40.php?NextSet=$NextSetValue</URL>n";
                                                     }
               $PersonNameList .= "</MenuItem>n";
          }
          $PersonNameList .= "</CiscoIPPhoneMenu>";
     echo "$PersonNameList";
     ?>


Ce fichier est utilisé pour définir les différents services que je veux implémenter sur les
téléphones cisco.
                                        services.php


     <?php
     ##########################################
     # Configuration Chemin vers ce fichier php
     #$Server = "http://Adresse IP Serveur Web/contacts"; # sans le / à la fin!
     $Server = "http://192.168.1.1/contacts";

                                   Promotion : 2009 – 2011
                                                                                         h
Auto provisioning   –    Gestion des contacts    –     Présence   –   Vidéo surveillance


     ##########################################
     #
     # Type de contenu : xml
     header("Content-Type: text/xml");

     $menu = "<CiscoIPPhoneMenu>n";
     $menu .= "<Title>XML Services</Title>n";
     $menu .= "<Prompt>Please select one</Prompt>n";
     $menu .= "<MenuItem>n";
     $menu .= "<Name>View Phone Directory</Name>n";
     $menu .= "<URL>$Server/PhoneDirectory.php</URL>n";
     $menu .= "</MenuItem>n";
     $menu .= "<MenuItem>n";
     $menu .= "<Name>Search by name</Name>n";
     $menu .= "<URL>$Server/searchDirectory.php</URL>n";
     $menu .= "</MenuItem>n";
     $menu .= "<MenuItem>n";
     $menu .= "<Name>Insert contact in phone</Name>n";
     $menu .= "<URL>$Server/insertDirectory.php</URL>n";
     $menu .= "</MenuItem>n";
     $menu .= "<MenuItem>n";
     $menu .= "<Name>Need Help</Name>n";
     $menu .= "<URL>$Server/help.php</URL>n";
     $menu .= "</MenuItem>n";
     $menu .= "</CiscoIPPhoneMenu>n";
     echo $menu;
     ?>


J’utilise ce fichier pour rechercher un contact dans la base de données MySQL.
                                      searchDirectory.php

     <?php
     ##########################################
     # Configuration Chemin vers ce fichier php
     #$Server = "http://Adresse IP Serveur Web/contacts"; # sans le / à la fin!
     $Server = "http://192.168.1.1/contacts";
     ##########################################
     #
     # Type de contenu : xml
     header("Content-Type: text/xml");
     $menu = "<CiscoIPPhoneInput>n";
     $menu .= "<Prompt>Enter the first three letters</Prompt>n";
     $menu .= "<URL>$Server/PhoneDirectory.php</URL>n";
     $menu .= "<InputItem>n";
     $menu .= "<DisplayName>Last Name</DisplayName>n";
     $menu .= "<QueryStringParam>LastName</QueryStringParam>n";
     $menu .= "<DefaultValue></DefaultValue>n";
     $menu .= "<InputFlags>A</InputFlags>n";

                                    Promotion : 2009 – 2011
                                                                                              i
Auto provisioning   –    Gestion des contacts     –    Présence   –    Vidéo surveillance


     $menu .= "</InputItem>n";
     $menu .= "</CiscoIPPhoneInput>n";
     echo $menu;
     ?>


J’utilise ce fichier pour ajouter de l’aide dans les téléphones au cas où l’employé à un souci.

                                           help.php

     <?php
     ##########################################
     # Configuration Chemin vers ce fichier php
     #$Server = "http://Adresse IP Serveur Web/contacts"; # sans le / à la fin!
     $Server = "http://192.168.1.1/contacts";
     ##########################################
     #
     # Type de contenu : xml
     header("Content-Type: text/xml");
     $menu = "<CiscoIPPhoneText>n";
     $menu .= "<Title>Help</Title>n";
     $menu .= "<Prompt>Hotline</Prompt>n";
     $menu .= "<Text>n";
     $menu .= "For Help and Support Please Call: ";
     #$menu .= "n";
     $menu .= "111 or Click Button Hotline in your HomeScreenn";
     $menu .= "</Text>n";
     $menu .= "</CiscoIPPhoneText>n";
     echo $menu;
     ?>




                                     Promotion : 2009 – 2011
                                                                                                j
Auto provisioning   –    Gestion des contacts    –     Présence     –   Vidéo surveillance


       ANNEXE - 3 :          Procédure de configuration de compte dans x-lite

Pour ajouter le compte 900 dans x-lite, la procédure est la suivante en images :




                        Figure X-9 : On ouvre les paramètres de comptes




                            Figure X-10 : On clique sur ajouter (add)




                                     Promotion : 2009 – 2011
                                                                                             k
Auto provisioning   –      Gestion des contacts     –    Présence     –     Vidéo surveillance




                        Figure X-11 : ajout des paramètres du compte




                    Figure X-12 : Le logiciel s'enregistre sur le serveur


                                   Promotion : 2009 – 2011
                                                                                                 l

Mais conteúdo relacionado

Mais procurados

A la recherche du code mort
A la recherche du code mortA la recherche du code mort
A la recherche du code mortDamien Seguy
 
Formulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsFormulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsAlexandre Salomé
 
.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHPAbdoulaye Dieng
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielleECAM Brussels Engineering School
 
Présentation de DBAL en PHP
Présentation de DBAL en PHPPrésentation de DBAL en PHP
Présentation de DBAL en PHPMickael Perraud
 
Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Mickael Perraud
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear phpDamien Seguy
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Engineor
 
Tirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_FormTirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_FormMickael Perraud
 
Trouvez la faille! - Confoo 2012
Trouvez la faille! - Confoo 2012Trouvez la faille! - Confoo 2012
Trouvez la faille! - Confoo 2012Antonio Fontes
 

Mais procurados (15)

UML
UMLUML
UML
 
A la recherche du code mort
A la recherche du code mortA la recherche du code mort
A la recherche du code mort
 
Cours3 gdm sql
Cours3 gdm sqlCours3 gdm sql
Cours3 gdm sql
 
Formulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsFormulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explications
 
.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielle
 
Présentation de DBAL en PHP
Présentation de DBAL en PHPPrésentation de DBAL en PHP
Présentation de DBAL en PHP
 
Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)
 
Composition, agrégation et immuabilité
Composition, agrégation et immuabilitéComposition, agrégation et immuabilité
Composition, agrégation et immuabilité
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear php
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !
 
Tirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_FormTirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_Form
 
Regex php
Regex phpRegex php
Regex php
 
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
 
Trouvez la faille! - Confoo 2012
Trouvez la faille! - Confoo 2012Trouvez la faille! - Confoo 2012
Trouvez la faille! - Confoo 2012
 

Destaque

Sujet MOCF version 2016
Sujet MOCF version 2016Sujet MOCF version 2016
Sujet MOCF version 2016Driss Talby
 
Opr00 ksq.tmp
Opr00 ksq.tmpOpr00 ksq.tmp
Opr00 ksq.tmpbdiarra3
 
Diaporama résolution de problèmes 11 03-15
Diaporama résolution de problèmes 11 03-15Diaporama résolution de problèmes 11 03-15
Diaporama résolution de problèmes 11 03-15PierreSnaet
 
Modélisation et résolution d’un problème de localisation des nœuds d’accès da...
Modélisation et résolution d’un problème de localisation des nœuds d’accès da...Modélisation et résolution d’un problème de localisation des nœuds d’accès da...
Modélisation et résolution d’un problème de localisation des nœuds d’accès da...fedi zouari
 
Modélisation et résolution d’un problème de localisation des nœuds d’accès da...
Modélisation et résolution d’un problème de localisation des nœuds d’accès da...Modélisation et résolution d’un problème de localisation des nœuds d’accès da...
Modélisation et résolution d’un problème de localisation des nœuds d’accès da...fedi zouari
 
Rapport stage IP-MSAN Tunisie télécom
Rapport stage IP-MSAN Tunisie télécomRapport stage IP-MSAN Tunisie télécom
Rapport stage IP-MSAN Tunisie télécomSiwar GUEMRI
 

Destaque (8)

Exposé éTats Des Lieux ESMT
Exposé éTats Des Lieux ESMTExposé éTats Des Lieux ESMT
Exposé éTats Des Lieux ESMT
 
Sujet MOCF version 2016
Sujet MOCF version 2016Sujet MOCF version 2016
Sujet MOCF version 2016
 
Opr00 ksq.tmp
Opr00 ksq.tmpOpr00 ksq.tmp
Opr00 ksq.tmp
 
Model2
Model2Model2
Model2
 
Diaporama résolution de problèmes 11 03-15
Diaporama résolution de problèmes 11 03-15Diaporama résolution de problèmes 11 03-15
Diaporama résolution de problèmes 11 03-15
 
Modélisation et résolution d’un problème de localisation des nœuds d’accès da...
Modélisation et résolution d’un problème de localisation des nœuds d’accès da...Modélisation et résolution d’un problème de localisation des nœuds d’accès da...
Modélisation et résolution d’un problème de localisation des nœuds d’accès da...
 
Modélisation et résolution d’un problème de localisation des nœuds d’accès da...
Modélisation et résolution d’un problème de localisation des nœuds d’accès da...Modélisation et résolution d’un problème de localisation des nœuds d’accès da...
Modélisation et résolution d’un problème de localisation des nœuds d’accès da...
 
Rapport stage IP-MSAN Tunisie télécom
Rapport stage IP-MSAN Tunisie télécomRapport stage IP-MSAN Tunisie télécom
Rapport stage IP-MSAN Tunisie télécom
 

Semelhante a Annexes du Document sur l'Auto provisioning, contacts, presence et streaming sur asterisk

Semelhante a Annexes du Document sur l'Auto provisioning, contacts, presence et streaming sur asterisk (6)

Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP
 
Cours php
Cours php Cours php
Cours php
 
Cours PHP avancé
Cours PHP avancéCours PHP avancé
Cours PHP avancé
 
Php mysql cours
Php mysql coursPhp mysql cours
Php mysql cours
 
DNS sous linux
DNS sous linuxDNS sous linux
DNS sous linux
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 

Mais de Emeric Kamleu Noumi

Rapport de stage FRANK FAPONG Encadreur - Kamleu Noumi Emeric.pdf
Rapport de stage FRANK FAPONG Encadreur - Kamleu Noumi Emeric.pdfRapport de stage FRANK FAPONG Encadreur - Kamleu Noumi Emeric.pdf
Rapport de stage FRANK FAPONG Encadreur - Kamleu Noumi Emeric.pdfEmeric Kamleu Noumi
 
Rapport de stage Genie Logiciel TCHINDA JOEL Encadreur - Kamleu Noumi Emeric.pdf
Rapport de stage Genie Logiciel TCHINDA JOEL Encadreur - Kamleu Noumi Emeric.pdfRapport de stage Genie Logiciel TCHINDA JOEL Encadreur - Kamleu Noumi Emeric.pdf
Rapport de stage Genie Logiciel TCHINDA JOEL Encadreur - Kamleu Noumi Emeric.pdfEmeric Kamleu Noumi
 
Rapport de stage gsi djinta michelle hendrid encadreur kamleu noumi emeric
Rapport de stage gsi djinta michelle hendrid encadreur   kamleu noumi emericRapport de stage gsi djinta michelle hendrid encadreur   kamleu noumi emeric
Rapport de stage gsi djinta michelle hendrid encadreur kamleu noumi emericEmeric Kamleu Noumi
 
Rapport de stage genie logiciel awoufack tedem adeline encadreur kamleu nou...
Rapport de stage genie logiciel awoufack tedem adeline encadreur   kamleu nou...Rapport de stage genie logiciel awoufack tedem adeline encadreur   kamleu nou...
Rapport de stage genie logiciel awoufack tedem adeline encadreur kamleu nou...Emeric Kamleu Noumi
 
Rapport de stage telecom de Dika Etame Guy Landry. Encadreur: Kamleu Noumi Em...
Rapport de stage telecom de Dika Etame Guy Landry. Encadreur: Kamleu Noumi Em...Rapport de stage telecom de Dika Etame Guy Landry. Encadreur: Kamleu Noumi Em...
Rapport de stage telecom de Dika Etame Guy Landry. Encadreur: Kamleu Noumi Em...Emeric Kamleu Noumi
 
Rapport de stage VOIP, digitalisation et visioconference à l'oncc
Rapport de stage VOIP, digitalisation et visioconference à l'onccRapport de stage VOIP, digitalisation et visioconference à l'oncc
Rapport de stage VOIP, digitalisation et visioconference à l'onccEmeric Kamleu Noumi
 
Document sur l'Auto provisioning, contacts, presence et streaming sur asterisk
Document sur l'Auto provisioning, contacts, presence et streaming sur asteriskDocument sur l'Auto provisioning, contacts, presence et streaming sur asterisk
Document sur l'Auto provisioning, contacts, presence et streaming sur asteriskEmeric Kamleu Noumi
 
Trunk IAX et Conférence sur Asterisk
Trunk IAX et Conférence sur AsteriskTrunk IAX et Conférence sur Asterisk
Trunk IAX et Conférence sur AsteriskEmeric Kamleu Noumi
 
Auto provisioning, contacts, présence et vidéosurveillance sur mobile
Auto provisioning, contacts, présence et vidéosurveillance sur mobileAuto provisioning, contacts, présence et vidéosurveillance sur mobile
Auto provisioning, contacts, présence et vidéosurveillance sur mobileEmeric Kamleu Noumi
 
Mise En Place D’un Serveur de notification
Mise En Place D’un Serveur de notificationMise En Place D’un Serveur de notification
Mise En Place D’un Serveur de notificationEmeric Kamleu Noumi
 
Gestion Basee Sur Les Politiques
Gestion Basee Sur Les PolitiquesGestion Basee Sur Les Politiques
Gestion Basee Sur Les PolitiquesEmeric Kamleu Noumi
 
Cahier De Charges ESMT DeuxièMe Partie
Cahier De Charges ESMT DeuxièMe PartieCahier De Charges ESMT DeuxièMe Partie
Cahier De Charges ESMT DeuxièMe PartieEmeric Kamleu Noumi
 
Groupe De Kamleu, Youssouf, Bertrang, Thiam, Adram+¬ Etude De Cas Cisco
Groupe De Kamleu, Youssouf, Bertrang, Thiam, Adram+¬   Etude De Cas CiscoGroupe De Kamleu, Youssouf, Bertrang, Thiam, Adram+¬   Etude De Cas Cisco
Groupe De Kamleu, Youssouf, Bertrang, Thiam, Adram+¬ Etude De Cas CiscoEmeric Kamleu Noumi
 

Mais de Emeric Kamleu Noumi (18)

Rapport de stage FRANK FAPONG Encadreur - Kamleu Noumi Emeric.pdf
Rapport de stage FRANK FAPONG Encadreur - Kamleu Noumi Emeric.pdfRapport de stage FRANK FAPONG Encadreur - Kamleu Noumi Emeric.pdf
Rapport de stage FRANK FAPONG Encadreur - Kamleu Noumi Emeric.pdf
 
Rapport de stage Genie Logiciel TCHINDA JOEL Encadreur - Kamleu Noumi Emeric.pdf
Rapport de stage Genie Logiciel TCHINDA JOEL Encadreur - Kamleu Noumi Emeric.pdfRapport de stage Genie Logiciel TCHINDA JOEL Encadreur - Kamleu Noumi Emeric.pdf
Rapport de stage Genie Logiciel TCHINDA JOEL Encadreur - Kamleu Noumi Emeric.pdf
 
Rapport de stage gsi djinta michelle hendrid encadreur kamleu noumi emeric
Rapport de stage gsi djinta michelle hendrid encadreur   kamleu noumi emericRapport de stage gsi djinta michelle hendrid encadreur   kamleu noumi emeric
Rapport de stage gsi djinta michelle hendrid encadreur kamleu noumi emeric
 
Rapport de stage genie logiciel awoufack tedem adeline encadreur kamleu nou...
Rapport de stage genie logiciel awoufack tedem adeline encadreur   kamleu nou...Rapport de stage genie logiciel awoufack tedem adeline encadreur   kamleu nou...
Rapport de stage genie logiciel awoufack tedem adeline encadreur kamleu nou...
 
Rapport de stage telecom de Dika Etame Guy Landry. Encadreur: Kamleu Noumi Em...
Rapport de stage telecom de Dika Etame Guy Landry. Encadreur: Kamleu Noumi Em...Rapport de stage telecom de Dika Etame Guy Landry. Encadreur: Kamleu Noumi Em...
Rapport de stage telecom de Dika Etame Guy Landry. Encadreur: Kamleu Noumi Em...
 
Rapport de stage VOIP, digitalisation et visioconference à l'oncc
Rapport de stage VOIP, digitalisation et visioconference à l'onccRapport de stage VOIP, digitalisation et visioconference à l'oncc
Rapport de stage VOIP, digitalisation et visioconference à l'oncc
 
Document sur l'Auto provisioning, contacts, presence et streaming sur asterisk
Document sur l'Auto provisioning, contacts, presence et streaming sur asteriskDocument sur l'Auto provisioning, contacts, presence et streaming sur asterisk
Document sur l'Auto provisioning, contacts, presence et streaming sur asterisk
 
Protocole Diameter
Protocole DiameterProtocole Diameter
Protocole Diameter
 
Projet Rnis
Projet RnisProjet Rnis
Projet Rnis
 
Trunk IAX et Conférence sur Asterisk
Trunk IAX et Conférence sur AsteriskTrunk IAX et Conférence sur Asterisk
Trunk IAX et Conférence sur Asterisk
 
Projet Planing Network
Projet Planing NetworkProjet Planing Network
Projet Planing Network
 
Business Plan - Water Pure
Business Plan - Water PureBusiness Plan - Water Pure
Business Plan - Water Pure
 
Illegal Immigration
Illegal ImmigrationIllegal Immigration
Illegal Immigration
 
Auto provisioning, contacts, présence et vidéosurveillance sur mobile
Auto provisioning, contacts, présence et vidéosurveillance sur mobileAuto provisioning, contacts, présence et vidéosurveillance sur mobile
Auto provisioning, contacts, présence et vidéosurveillance sur mobile
 
Mise En Place D’un Serveur de notification
Mise En Place D’un Serveur de notificationMise En Place D’un Serveur de notification
Mise En Place D’un Serveur de notification
 
Gestion Basee Sur Les Politiques
Gestion Basee Sur Les PolitiquesGestion Basee Sur Les Politiques
Gestion Basee Sur Les Politiques
 
Cahier De Charges ESMT DeuxièMe Partie
Cahier De Charges ESMT DeuxièMe PartieCahier De Charges ESMT DeuxièMe Partie
Cahier De Charges ESMT DeuxièMe Partie
 
Groupe De Kamleu, Youssouf, Bertrang, Thiam, Adram+¬ Etude De Cas Cisco
Groupe De Kamleu, Youssouf, Bertrang, Thiam, Adram+¬   Etude De Cas CiscoGroupe De Kamleu, Youssouf, Bertrang, Thiam, Adram+¬   Etude De Cas Cisco
Groupe De Kamleu, Youssouf, Bertrang, Thiam, Adram+¬ Etude De Cas Cisco
 

Annexes du Document sur l'Auto provisioning, contacts, presence et streaming sur asterisk

  • 1. Auto provisioning – Gestion des contacts – Présence – Vidéo surveillance X. ANNEXES ANNEXE - 1 : Traces de toute la procédure d’auto provisioning Figure X-1 : Le téléphone au démarrage va émettre une requête cdp pour connaître les équipements cisco voisins. Figure X-2 : Comme décrit dans le scénario de fonctionnement, le téléphone va chercher une adresse ip auprès de notre serveur dhcp. Le serveur lui attribue l’adresse 192.168.1.5. Les échanges dhcp sont coloriés en bleu. Figure X-3 : Le téléphone récupère ensuite son fichier de configuration sur le serveur tftp (SEP18EF639E60F4.cnf.xml). Figure 4 : Le téléphone se met à jour en téléchargeant le nouveau firmware (P00308010200.sb2). Les messages ont été tronqués car ils sont trop longs. Promotion : 2009 – 2011 a
  • 2. Auto provisioning – Gestion des contacts – Présence – Vidéo surveillance Figure X-5 : Ces messages indiquent l’enregistrement du téléphone sur le serveur asterisk. Ensuite asterisk envoi les paramètres du téléphone configurés dans sscp.conf comme le paramétrage des touches, des boutons, l’heure à afficher, le nom de téléphone à afficher, etc… Promotion : 2009 – 2011 b
  • 3. Auto provisioning – Gestion des contacts – Présence – Vidéo surveillance Figure X-6 : Cette figure montre les étapes d’appel. Quand on compose un numéro, le téléphone transmet un à un les numéros composés (j’ai composé 1001 dont le téléphone envoie 4 fois le message KeypadButtonMessage). Ensuite asterisk fait sonner l’abonné appelé (2548) et lorsqu’il décroche, asterisk informe l’abonné appelant (2563) qui commence à émettre la voix (2566 : startMediaTransmission) à travers les messages RTP coloriés en bleu. Figure 7 : Si l’appelé répond, astérisk envoi le message au téléphone appelant (192.168.1.5) en UDP (3324). Promotion : 2009 – 2011 c
  • 4. Auto provisioning – Gestion des contacts – Présence – Vidéo surveillance Figure X-8 : Le téléphone raccroche et asterisk envoi un message ICMP (3349). Le téléphone appelant arrête la transmission la communication et envoi les statistiques de l’appel. ANNEXE - 2 : Codes sources des pages de gestion des contacts Pour un petit rappel, les liens indiqués dans le fichier de configuration dans le serveur tftp doivent pointer sur l’un des fichiers écrits en php que l’on met dans le serveur web (apache). Dans mon cas j’ai mis deux liens ; un menant vers le fichier charger d’afficher le répertoire de contacts (PhoneDirectory.php) et le deuxième lien menant vers le fichier utilisé pour des services supplémentaires (services.php). Je crée un fichier (db_connection.php) qui sera utilisé par n’importe quel autre fichier nécessitant une connexion à la base de données MySQL : db_connection.php <? $connection = @mysql_connect("localhost", "cisco", "cisco") or die('database is down, or username and password is wrong'); $db_name = "astcontacts"; $db = @mysql_select_db($db_name, $connection) or die('database name not working, line 3.'); ?> Le fichier qui suit est utilisé pour lire le contenu de la base de données des contacts et l’afficher sur le téléphone ipcisco. PhoneDirectory.php < ?php ########################################## # Configuration Chemin vers ce fichier php #$Server = "http://Adresse IP Serveur Web/contacts"; $Server = "http://192.168.1.1/contacts"; # sans le / à la fin! $LongDistanceExtension = ""; # Préfixe pour des numéros extérieur ########################################## # Type de contenu Promotion : 2009 – 2011 d
  • 5. Auto provisioning – Gestion des contacts – Présence – Vidéo surveillance header("Content-Type: text/xml"); # On inclut le fichier de connexion à la base de données to MySQL require("db_connection.php"); # Comme on sait que le téléphone ne peut afficher que les 30 prémiers #contacts, les deux lignes qui suivent sont utilisées pour à partir du quantième #contact on va continuer à afficher (le 31e contact jusqu’à…) $NextSet = $_GET['NextSet']; $NextStartingRow = $NextSet*30; # Si la variable “ID” existe alors on le récupère avec la function GET et #ensuite on affiche les numéros de cet ID. En fait comme chaque contact à un #ID, lorsqu’on clique sur un contact, ce fichier se recharge en envoyant juste #l’ID du contact qu’on a sélectionné et ainsi le récupère et affiche ses #numéros. Il est combiné avec du XML. $ID = $_GET['ID']; if ($ID) { $PersonDirectoryListing = "<CiscoIPPhoneDirectory>n"; $Query = "SELECT id, first_name, last_name, phone_home, phone_work, phone_mobile, phone_other "; $Query .= "FROM contacts WHERE id = $ID "; $SelectPersonInfo = mysql_query($Query,$connection); while ($row = mysql_fetch_array($SelectPersonInfo)) { $CellPhone = ereg_replace("[ ()-]+", "", $row['phone_mobile']); $HomePhone = ereg_replace("[ ()-]+", "", $row['phone_home']); $WorkPhone = ereg_replace("[ ()-]+", "", $row['phone_work']); $OtherPhone = ereg_replace("[ ()-]+", "", $row['phone_other']); if ($row["phone_home"]) { $PersonDirectoryListing .= "<DirectoryEntry>n"; $PersonDirectoryListing .= "<Name>Home:</Name>n"; $PersonDirectoryListing .= "<Telephone>$HomePhone</Telephone>n"; $PersonDirectoryListing .= "</DirectoryEntry>n"; } if ($row["phone_mobile"]) { $PersonDirectoryListing .= "<DirectoryEntry>n"; $PersonDirectoryListing .= "<Name>Cell:</Name>n"; $PersonDirectoryListing .= "<Telephone>$LongDistanceExtension$CellPhone</Telephone>n"; $PersonDirectoryListing .= "</DirectoryEntry>n"; } if ($row["phone_work"]) { $PersonDirectoryListing .= "<DirectoryEntry>n"; $PersonDirectoryListing .= "<Name>Work:</Name>n"; $PersonDirectoryListing .= "<Telephone>$LongDistanceExtension$WorkPhone</Telephone>n"; $PersonDirectoryListing .= "</DirectoryEntry>n"; } if ($row["phone_other"]) { $PersonDirectoryListing .= "<DirectoryEntry>n"; $PersonDirectoryListing .= "<Name>Other:</Name>n"; $PersonDirectoryListing .= "<Telephone>$OtherPhone</Telephone>n"; Promotion : 2009 – 2011 e
  • 6. Auto provisioning – Gestion des contacts – Présence – Vidéo surveillance $PersonDirectoryListing .= "</DirectoryEntry>n"; } } $PersonDirectoryListing .= "</CiscoIPPhoneDirectory>n"; echo "$PersonDirectoryListing"; # Si la variable ID n’est pas récupérée alors on affiche juste les contacts (nom # et prénom). } else { $PersonNameList = "<CiscoIPPhoneMenu>n"; $PersonNameList .= "<Title>Phone Directory</Title>n"; $PersonNameList .= "<Prompt>Please select one</Prompt>n"; $Query = "SELECT id, first_name, last_name, phone_home, phone_work, phone_mobile, phone_other "; $Query .= "FROM contacts "; # Les suivantes sont utilisées pour la recherche dans les contacts. Pour cela # quand on tape le nom à rechercher, on arrive sur ce fichier qui récupère ce # nom à travers la variable LastName $LastName = $_GET['LastName']; if ($LastName) $Query .= "WHERE last_name like '$LastName%' "; if ($LastName) $Query .= "OR first_name like '$LastName%' "; $Query .= "order by last_name"; # On limite chaque page à afficher au maximum 30 contacts if (!$NextSet) { $Query .= " Limit 0,30"; # Si c’est la page suivante alors on le limite aussi à 30 contacts. } else { $Query .= " Limit $NextStartingRow,30"; } # On exécute toutes les requêtes # echo $Query; $SelectNameList = mysql_query($Query,$connection); # On compte le nombre maximal de contacts et si c’est supérieur à 30 # alors on affecte une valeur pour la prochaine page. $NumberOfRows = mysql_num_rows($SelectNameList); if ($NumberOfRows>= 30) { $NextSetValue = $NextSet+1; } # Les lignes suivantes sont utilisées pour afficher les contacts while ($row = mysql_fetch_array($SelectNameList)) { $PersonNameList .= "<MenuItem>n"; $PersonNameList .= "<Name>"; $PersonNameList .= $row["last_name"]; if ($row["first_name"]) $PersonNameList .= ", " . $row["first_name"]; $PersonNameList .= "</Name>n"; $PersonNameList .= "<URL>"; $PersonNameList .= "$Server/PhoneDirectory.php?"; $PersonNameList .= "ID="; $PersonNameList .= $row["id"]; $PersonNameList .= "</URL>n"; Promotion : 2009 – 2011 f
  • 7. Auto provisioning – Gestion des contacts – Présence – Vidéo surveillance $PersonNameList .= "</MenuItem>n"; } # S’il y a une prochaine page alors on affiche un mot (Plus…) pour la # prochaine page. if ($NextSetValue) { $PersonNameList .= "<MenuItem>n"; $PersonNameList .= "<Name>Plus...</Name>n"; $PersonNameList .= "<URL>$Server/Plus.php?NextSet=$NextSetValue&amp;LastName=$LastName</U RL>n"; $PersonNameList .= "</MenuItem>n"; } $PersonNameList .= "</CiscoIPPhoneMenu>"; echo "$PersonNameList"; } ?> Ce code est utilisé pour afficher la page suivante avec les contacts restants au cas où le téléphone ne peut pas afficher tous les contacts en une seule fois. Plus.php <?php ########################################## # Configuration Chemin vers ce fichier php #$Server = "http://Adresse IP Serveur Web/contacts"; $Server = "http://192.168.1.1/contacts"; # sans le / à la fin! $LongDistanceExtension = ""; # Préfixe pour des numéros extérieur ########################################## # Type de contenu header("Content-Type: text/xml"); # On inclut le fichier de connexion à la base de données to MySQL require("db_connection.php"); $NextSet = $_GET['NextSet']; if (!$NextSet) { $NextStartingRow = 0; # Now for each subsiquent call we get the next 30 records. } else { $NextStartingRow = $NextSet*2; } $PersonNameList = "<CiscoIPPhoneMenu>n"; $PersonNameList .= "<Title>Phone Directory</Title>n"; $PersonNameList .= "<Prompt>Please select one</Prompt>n"; $Query = "SELECT id, first_name, last_name, phone_home, phone_work, phone_mobile, phone_other FROM contacts order by last_name Limit $NextStartingRow,2"; $LastName = $_GET['LastName']; if ($LastName) $Query = "SELECT id, first_name, last_name, phone_home, phone_work, phone_mobile, phone_other FROM contacts WHERE last_name like Promotion : 2009 – 2011 g
  • 8. Auto provisioning – Gestion des contacts – Présence – Vidéo surveillance '$LastName%' OR first_name like '$LastName%' order by last_name Limit $NextStartingRow,2"; # echo $Query; $SelectNameList = mysql_query($Query,$connection); $NumberOfRows = mysql_num_rows($SelectNameList); if ($NumberOfRows>= 2) { $NextSetValue = $NextSet+1; } while ($row = mysql_fetch_array($SelectNameList)) { $PersonNameList .= "<MenuItem>n"; $PersonNameList .= "<Name>"; $PersonNameList .= $row["last_name"]; if ($row["first_name"]) $PersonNameList .= ", " . $row["first_name"]; $PersonNameList .= "</Name>n"; $PersonNameList .= "<URL>"; $PersonNameList .= "$Server/PhoneDirectory.php?"; $PersonNameList .= "ID="; $PersonNameList .= $row["id"]; $PersonNameList .= "</URL>n"; $PersonNameList .= "</MenuItem>n"; } if ($NextSetValue) { $PersonNameList .= "<MenuItem>n"; $PersonNameList .= "<Name>Plus...</Name>n"; if($LastName){ $PersonNameList .= "<URL>$Server/Plus40.php?NextSet=$NextSetValue&amp;LastName=$LastName</ URL>n"; }else{ $PersonNameList .= "<URL>$Server/Plus40.php?NextSet=$NextSetValue</URL>n"; } $PersonNameList .= "</MenuItem>n"; } $PersonNameList .= "</CiscoIPPhoneMenu>"; echo "$PersonNameList"; ?> Ce fichier est utilisé pour définir les différents services que je veux implémenter sur les téléphones cisco. services.php <?php ########################################## # Configuration Chemin vers ce fichier php #$Server = "http://Adresse IP Serveur Web/contacts"; # sans le / à la fin! $Server = "http://192.168.1.1/contacts"; Promotion : 2009 – 2011 h
  • 9. Auto provisioning – Gestion des contacts – Présence – Vidéo surveillance ########################################## # # Type de contenu : xml header("Content-Type: text/xml"); $menu = "<CiscoIPPhoneMenu>n"; $menu .= "<Title>XML Services</Title>n"; $menu .= "<Prompt>Please select one</Prompt>n"; $menu .= "<MenuItem>n"; $menu .= "<Name>View Phone Directory</Name>n"; $menu .= "<URL>$Server/PhoneDirectory.php</URL>n"; $menu .= "</MenuItem>n"; $menu .= "<MenuItem>n"; $menu .= "<Name>Search by name</Name>n"; $menu .= "<URL>$Server/searchDirectory.php</URL>n"; $menu .= "</MenuItem>n"; $menu .= "<MenuItem>n"; $menu .= "<Name>Insert contact in phone</Name>n"; $menu .= "<URL>$Server/insertDirectory.php</URL>n"; $menu .= "</MenuItem>n"; $menu .= "<MenuItem>n"; $menu .= "<Name>Need Help</Name>n"; $menu .= "<URL>$Server/help.php</URL>n"; $menu .= "</MenuItem>n"; $menu .= "</CiscoIPPhoneMenu>n"; echo $menu; ?> J’utilise ce fichier pour rechercher un contact dans la base de données MySQL. searchDirectory.php <?php ########################################## # Configuration Chemin vers ce fichier php #$Server = "http://Adresse IP Serveur Web/contacts"; # sans le / à la fin! $Server = "http://192.168.1.1/contacts"; ########################################## # # Type de contenu : xml header("Content-Type: text/xml"); $menu = "<CiscoIPPhoneInput>n"; $menu .= "<Prompt>Enter the first three letters</Prompt>n"; $menu .= "<URL>$Server/PhoneDirectory.php</URL>n"; $menu .= "<InputItem>n"; $menu .= "<DisplayName>Last Name</DisplayName>n"; $menu .= "<QueryStringParam>LastName</QueryStringParam>n"; $menu .= "<DefaultValue></DefaultValue>n"; $menu .= "<InputFlags>A</InputFlags>n"; Promotion : 2009 – 2011 i
  • 10. Auto provisioning – Gestion des contacts – Présence – Vidéo surveillance $menu .= "</InputItem>n"; $menu .= "</CiscoIPPhoneInput>n"; echo $menu; ?> J’utilise ce fichier pour ajouter de l’aide dans les téléphones au cas où l’employé à un souci. help.php <?php ########################################## # Configuration Chemin vers ce fichier php #$Server = "http://Adresse IP Serveur Web/contacts"; # sans le / à la fin! $Server = "http://192.168.1.1/contacts"; ########################################## # # Type de contenu : xml header("Content-Type: text/xml"); $menu = "<CiscoIPPhoneText>n"; $menu .= "<Title>Help</Title>n"; $menu .= "<Prompt>Hotline</Prompt>n"; $menu .= "<Text>n"; $menu .= "For Help and Support Please Call: "; #$menu .= "n"; $menu .= "111 or Click Button Hotline in your HomeScreenn"; $menu .= "</Text>n"; $menu .= "</CiscoIPPhoneText>n"; echo $menu; ?> Promotion : 2009 – 2011 j
  • 11. Auto provisioning – Gestion des contacts – Présence – Vidéo surveillance ANNEXE - 3 : Procédure de configuration de compte dans x-lite Pour ajouter le compte 900 dans x-lite, la procédure est la suivante en images : Figure X-9 : On ouvre les paramètres de comptes Figure X-10 : On clique sur ajouter (add) Promotion : 2009 – 2011 k
  • 12. Auto provisioning – Gestion des contacts – Présence – Vidéo surveillance Figure X-11 : ajout des paramètres du compte Figure X-12 : Le logiciel s'enregistre sur le serveur Promotion : 2009 – 2011 l