Description des tâches

Update by Nicolas Jorand, 2010-02-24

Update by Nicolas Jorand, 2010-02-16

Update by Nicolas Jorand, 2010-02-15

Oussama Hammami, 2010-02-12

Switzernet

 

 

 

Ce document décrit les tâches qui restent à faire pour le projet « installation des nouveaux Asterisk » [12,4 portasip asterisk].

[1.1] Script d’enregistrement des clients (3 H)

Finir les tests pour s’assurer que le script n’est pas bloquant lorsque la connexion est perdue.

 

 

 

[1.2] Supprimer l’enregistrement du script d’Accounting (1 H)

Puisque le script register.pl s’occupe des enregistrements des clients, il est nécessaire de supprimer cette tâche du script accounting.pl.

Faire des tests pour valider le fonctionnement de ces deux derniers.

[2] Ajouter un 3eme profil (client par IP) (1.5 jour)

Ajouter ce profil dans le fichier sip.conf.

Ajouter son contexte dans le fichier extension.conf

Ajouter le type de profil dans lequel l’appel était effectué dans les CDRs en modifiant le fichier cdr_custom.conf et dans la base de données locale utilisée pour renvoyer les paquets RADIUS.

Créer un nouveau fichier de configuration db-customer-ip.conf qui contient tous les sous-profils de tous les clients IP autorisés à partir du Billing.

Modifier le script Perl responsable de la mise à jour des fichiers db-peers.conf (liste des nodes) et db-friends.conf (liste des clients) et le script PHP qui fournit la liste des clients et pour qu’ils tiennent compte aussi de la liste des clients IP.

[3] Création de la liste des appels à facturer (3 jours)

Modifier le script PHP pour qu’il crée le fichier CDR depuis la table CDR_Acounts et qu’il tienne compte de la dernière date de son exécution et ajouter une marge de deux heures.

Ce dernier télécharge les CDRs de tous les Asterisks disponible pour tous les appels dont le profil est client (phone) ou client IP (customerip).

Il compare les CDRs téléchargées avec celle du Billing pour obtenir la liste des appels à refacturer.

Juste avant l’insertion de cette liste dans une base de données d’Asterisk responsable de cette tâche, on doit supprimer toutes les lignes présentes dans cette base qui ont déjà été correctement traitées (les chercher dans le Billing une par une).

 

[4] Script Perl de facturation (3 H)

Ce script crée un nouveau paquet Stop RADIUS pour chaque ligne trouvée dans la base de données des appels à facturer et l’envoi.

Ce paquet garde le même H323-ID, mais ajoute la date à la fin du champ CLD et remplace le vendeur par notre vendeur LostCall. 

Faire des tests pour valider le fonctionnement de ce dernier.

 

$r->add_attributes (

                        { Name => 'Acct-Status-Type', Value => 'Stop' },

                        { Name => 'h323-call-origin', Value => 'originate' },

                        { Name => 'h323-connect-time', Value => '11:16:37 GMT Tue Feb  2 2010' },

                        { Name => 'h323-disconnect-time', Value => '11:16:44 GMT Tue Feb  2 2010' },

                        { Name => 'Acct-Session-Time', Value => '9' },

                        { Name => 'h323-disconnect-cause', Value => '10' },

                        { Name => 'h323-call-type', Value => 'VoIP' },

                        { Name => 'Cisco-AVPair', Value => 'session-protocol=sipv2' },

                        { Name => 'NAS-IP-Address', Value => '94.23.242.200' },

                        { Name => 'User-Name', Value => '41215500329' },

                        { Name => 'Calling-Station-Id', Value => '41215500329' },

                        { Name => 'Called-Station-Id', Value => '+41215500327 on 100210 1850' },

                        { Name => 'Cisco-AVPair', Value => 'call-id=94.23.242.200-1265109392.30' },

                        { Name => 'h323-setup-time', Value => '11:16:33 GMT Tue Feb  2 2010' },

                        { Name => 'Cisco-AVPair', Value => 'h323-conf-id=5E65B4DA 51F1C1CA 1B55C32D 38574FD4' },

                        { Name => 'h323-remote-address', Value =>'LostCall'}

                        );

 

[5] Script de renvoi des paquets RADIUS (1 jour)

Ce script s’occupe de renvoyer les paquets RADIUS Stop d’origine (non modifiés) pendant un certain laps de temps. Après quoi, même si le paquet n’est toujours pas envoyé, il abandonne.

A l’aide d’une requête SQL, il récupère tous les paquets qu’il doit envoyer à ce moment précis et qui ne sont pas déjà en cours de traitement. Pour chacun d’eux, il lance un thread qui va s’occuper de l’envoi. Le temps entre chaque tentative d’émission du paquet double à chaque essai (1s, 2s, 4s, 8s, …, 64s, …).

Finir le thread et faire des tests pour valider le fonctionnement du script.

 

[6] Monitoring de la réparation de clients sur les DNS (2 jour)

Développer un script qui compte le nombre de client enregistrés par DNS pour les PortaSip et par serveur pour les Asterisk. Pour les PortaSip on utilise ses fichiers logs et pour les Asterisk une requête MySQL.

Celui-ci nous permettra de contrôler qu’il n’y a pas de perte d’enregistrement lors du changement des clients de PortaSip vers Asterisk.

 

[7] Test final de l'implémentation (1 jour)

Tester le fonctionnement de tous les scripts utilisés. Documenter les résultats obtenus.

 

[8] Premier essai de transfère de clients (1 jour)

Pour tester en conditions pseudo-réelles, nous allons transférer quelques dizaines de clients sur le serveur astrad.switzernet.com. Ainsi nous pourrons observer les comportements avec plus d’utilisateurs enregistrés que lors des tests précédents.

 

 

 

Gantt Chart

Voici le diagramme de Gantt qui montre le planning décrit ci-dessus.

 

 

 

 

*   *   *