Plan de match
Pour minimiser les changements, l'ajout de classes se fait de façon à permettre le fonctionnement de SFLphone tout en ajoutant des composantes.
Selon le schémas de design du nouveau daemon: CallIDAccountIDMap ================== 1- Création du type AccountID dans account.h (pas global.h) : FAIT : 15 min 2- Création du type CallAccountMap dans managerimpl.h : FAIT: 4 min 3- Initialisation simple d'un CallAccountMap et d'un mutex associé (CallAccountMapMutex) dans ManagerImpl : 2 min. 4- Création des fonctions protégées d'ajout (AssociateCallToAccount), de recherche (GetAccountFromCall) et de suppressions (RemoveCallAccount) et de génération de CALLID (getNewCallID). FAIT: 30 min. 5- Création de la classe Account. Tests: - Compilation problème numéro 1: register is a reserved keyword - AssociateCallToAccount() a) CALLID déjà existant [b) account inexistant], c) ok - GetAccountFromCall() a) CALLID inexistant, b) ok - RemoveCallAccount() a) CALLID inexistant, b) ok fin 10:45 (15 minutes) Account: ================== (13:00) 1- Création de la map AccountMap (dans managerimpl.h) : 30 min 2- Création des sous-classes vides SIPAccount et AIXAccount. : 3 min 3- Création de la classes AccountCreator qui permet de créer le SIPAccount et AIXAccount selon un type 4- Création des constante pour les protocoles (SIP_ACCOUNT, AIX_ACCOUNT) dans AccountCreator : 12 min Tests: - Création d'un account PROTOCOL_SIP - Création d'un account PROTOCOL_AIX - Ajout dans le AccountMap - Suppression dans le AccountMap - Recherche dans le AccountMap a) inexistant, b) existant - Retest pour les fonctions AssociateCallToAccount a) inexistant b) existant GetAccountFromCall a) inexistant b) existant - Compilation : 15 minute: fin 14:00 Account Configuration: ================== (16:30) 1- Envoit des informations au protocole respectif (constante user_cfg.h) Ajouter catégories avec peu d'information (name, proxy, stun, enable pour SIP; name, proxy, enable pour AIX): [SIP0] ... [AIX0] ... 2- Initialisation des accounts avec les bonnes informations (selon leur nom) Tests: - Initialisation sans rien dans le fichier de configuration (variable par défaut) - Sauvegarde de renseignements (1ere fois) - Initialisation avec renseignements - Sauvegarde de renseignements (2e fois) - Accès aux renseignements des comptes utilisateurs (spécifiques) - Compilation Fin 17:20 - 50 minutes VoIPLink (début: 22:45) ================== 1- ajouter les voIPLink spécifiques dans les accounts : OK 2- coder init : OK 3- terminate : OK 4- register : OK 5- unregister dans les accounts/voiplink pour SIP : OK 6- Supprimer le VoIPLinkVector 1- fichier managerimpl.h 2- fichier managerimpl.cpp _voIPLinkVector.push_back(new SipVoIPLink()); remplacer par la création de l'account SIP (loadAccountMap) _voIPLinkVector.clear(); remplacer par la suppression des accounts (unloadAccountMap) Call* call = new Call(id, type, _voIPLinkVector.at(DFT_VOIP_LINK)); remplacer par un hardcoding de getAccountLink(ACCOUNT_SIP0) remplacer init/terminate/setRegister/setUnregister avec getAccount(ACCOUNT_SIP0) Tests: - créer le voiplink dans le constructeur : OK - supprimer le voiplink dans le destructeur : OK - accéder aux voiplink via le ManagerImpl - initialiser le voiplink : OK - terminer le voiplink : OK - s'enregistrer avec le voiplink : OK - se désinscrire du voiplink : OK FIN: 23:55 : 1:10 SipVoIPLink2 et Call2 ================== (début 2006-03-30 05:45) 1- Créer un SIPVoIPLink2 : OK 2- Créer un Call2 : OK 3- Créer un SIPCall2 qui hérite de Call2: OK (compile : OK) 4- Créer un mutex CallMutex : OK 5- Créer un CallMap dans le voIPLink : OK 6- Créer un CallMapMutex dans le voIPLink : OK 7- Créer les méthodes: AddCall, RemoveCall, GetCall dans le voIPLink 8- Implémenter les méthodes AddCall, RemoveCall, GetCall dans le voIPLink : OK (6:42) 9- Remplacer le SipVoIPLink par SipVoIPLink2 dans le SIPAccount : OK Compile: OK =================== (fin: 2006-03-30 06:45 | 1h00) Fusion SipVoIPLink > SIPVoIPLink2 ====== (début: 2006-03-30 07:35) 1- Modifier EventThread pour accepter un VoIPLink : OK 2- Modifier VoIPLink pour définir getEvent() : OK 3- Transférer constructeur/destructeur : OK (08:16) 4- Transférer terminate() : OK (08:29, placé virtual sur les destructeurs des classes héritées, pour le polymorphisme) 5- Transférer init() : OK (09:34) ======= (fin: 2006-03-30 09:35 | 2h00) ====== (début: 2006-03-30 13:00) 6- Transférer setRegister : OK setUnregister : OK (14:10) ====== (début: 2006-03-30 14:30) 7- Transférer outgoingCall : OK 16:40 (pas testé) 8- Ajouter event type dans getEvents: OK 17:10 ====== (fin : 2005-03-30 17:10) ====== (début:2005-03-30 20:35) 9- Transférer incomingCall =======(fin :2005-03-30 22:48) =======(début:2005-03-31 08:00) 10- Transférer Answer =======(fin :2005-03-31 09:33) =======(début:2005-03-31 15:50) Épurer voIPLink Finir transition vers SIPCall2 dans voIPLink Supprimer définitivement les références à SipCall et Call =======(fin: 2005-03-31 18:22) =======(début:2005-03-31 21:30) Implémenter getEvent() dans SIPVoIPLink2 (1 à 9) =======( fin:2005-03-31 22:51) =======(début:2005-04-01 09:00) Implémenter getEvent() dans SIPVoIPLink2 (10 à 14) =======( fin:2005-04-01 10:30) =======(début:2005-04-01 11:15) Implémenter getEvent() dans SIPVoIPLink2 (15 à 48) =======( fin:2005-04-01 12:05 ) =======(début:2005-04-01 20:55) Implémenter les commandes appels sortant (hangup/...) Ça fonctionne! Invite OK, Hangup: OK, hold: OK, unhold: OK =======( fin:2005-04-01 23:02) =======(début:2005-04-02 09:45) AIX -> IAX Transfert de VoIPLink2 -> VoIPLink Transfert de Call2 -> Call Transfert de SIPCall2 -> SIPCall Transfert des crédits (copyright) =======( fin:2005-04-02 10:24) =======(début:2005-04-02 10:25) Réparer gaff: supprimer sipcall2.cpp! à refaire au complet ;-( =======( fin:2005-04-02 11:32) =======(début:2005-04-02 11:33) Réimplémenter getCallStatus() Hardcoder SIP0 dans le GUI Tester avec le GUI Commiter tout sur le CVS Enlever définitivement subcall =======( fin:2005-04-02 12:27) =======(début:2005-04-02 12:45) Correction mineure sflphone-cli Correction mineure Stun =======(début:2005-04-02 12:58) =======(début:2005-04-02 17:10) Début implémentation de IAX - inclure la librairie GUI ================= 1- Gérer les comptes utilisateurs dans le GUI Tests difficile: - démarrer deux SipVoIPLink en même temps... si ça ne marche pas: ajout méthode pour l'exclusivité des liens SIP - démarrer deux AIXVoIPLink en même temps si ça ne marche pas: ajout méthode pour l'exclusivité des liens AIX - démarrer un SipVOIPLink et un AIXVoIPLink en même temps si ça ne marche pas: ajout méthode pour un compte enable à la fois Rédaction initiale des tâches (jusqu'au SIPVoIPLink (sans les tests)) : 2006-03-28 : 1 heure Modification section SIPVoIPLink. Ajout Call/GUI. 2006-03-29: 1 heure