AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA INFORMATYKI Mobicents VoIP Projekt wykonany w ramach SIUS i IOSR Biolik Wojciech Błazej Kardyś Informatyka, rok I SUM
1. Przegląd możliwości platformy Mobicents 1. Czym jest Mobicents? Mobicents to platforma komunikacyjna w chmurze. Dostarcza środowisko wykonania oraz zestaw narzędzi do rozwoju, zarządzania oraz wdrażania systemów integrujących przesyłanie dźwięku, obrazu oraz wiadomości tekstowych w różnych sieciach komunikacyjnych. 2. Najważniejsze składowe 1. Serwer implementujący specyfikacje JAIN SLEE definiuje środowisko uruchomieniowe 2. Mobicent Sip Servlets implementacja specyfikacji Java Sip Servlets 3. Mobicents Media Server implementacja sieciowego serwera VoIP 4. Presence Server komponent ułatwiający rozwój aplikacji telekomunikacyjnych 3. Dlaczego mobicent? 1. Bardzo popularny 2. Skalowalny, wydajny oraz odporne na błędy Mobicents JAIN SLEE (środowisko uruchom.) 3. Łatwy w użyciu 4. Open-sourcowy 4. Jak widzimy nasz projekt? 1. Stworzenie połączenia między softphonami 2. Stworzenie serwera pośredniczącego (proxy) umożliwiającego: 1. Rejestrację użytkowników 2. Przeprowadzanie rozmów, tekstowych (SMS) oraz głosowych (VoIP) 3. Umożliwienie monitorowania połączeń oraz rozliczania kont użytkowników (rejestracja) 5. Jakie technologie? 1. Softphone linphone (dobre opinie + możliwość stworzenia app na androida) 2. Server proxy Sip Servlets (zarządzanie sesją), możliwa również realizacja poprzez JAIN SLEE.
3. Implementacja Java 2. Wizja projektu 1. Główne założenia Głównym założeniem projektu jest stworzenie aplikacji serwerowej, która umożliwiałaby zestawianie i monitorowanie rozmów VoIP prowadzonych przy wykorzystaniu platformy Mobicents. 2. Wymagania funkcjonalne 1. Możliwość zarządzania użytkownikami i przyznawania dostępu do serwera tylko zalogowanym użytkownikom 2. Zalogowani użytkownicy mogą obejrzeć (tylko swoje): 1. rozliczenie za zadany okres (w postaci tabeli z kim rozmawiano, jak długo, czas rozpoczęcia/zakończenia) 2. podsumowanie (łączny czas połączeń, użytkownik/użytkownicy z którymi wykonano najwięcej połączeń) 3. Umożliwienie zestawienia poprzez serwer połączenia audio i video pomiędzy użytkownikami 4. Rejestrowanie czasu i rozmówców dla konkretnych połączeń 5. Udostępnianie zebranych statystyk o użytkownikach poprzez aplikację webową dla administratora 6. Udostępnienie zarządzania połączeniami w czasie rzeczywistym przez administratora: 1. podgląd jakie właśnie trwają rozmowy. 2. możliwość zakończenia trwających połączeń oraz wzywania (dzwonienia do) wybranych użytkowników
2. Przypadki użycia 1. Przypadki użycia zostały podzielone na dwie grupy ze względu na głównego aktora: 1. Administrator 1. Diagram ogólny
2. Zarządzanie użytkownikami Przypadek użycia Dodaj użytkownika Wyświetl użytkowników Edytuj dane użytkownika Usuń użytkownika Opis Poprzez odpowiednią formatkę do zebrania podstawowych danych można dodać nowego użytkownika. Dane użytkownika zostają zapisane w bazie danych Z bazy danych zostaje pobrana lista użytkowników i formie tabeli wyświetlana aktorowi Z wyświetlonej listy użytkowników wybieramy tego którego dane chcemy edytować, następnie mamy możliwość edycji tych danych przy pomocy podobnej formatki jak przy dodawaniu użytkownika. Na koniec zmiany są zapisywane w bazie danych Z wyświetlonej listy użytkowników wybieramy użytkownika którego chcemy usunąć. Najpierw wymuszone zostaje zamknięcie wszystkich połączeń tego użytkownika następnie jego dane zostają usunięte z bazy danych
3. Zarządzanie połączeniami Przypadek użycia Wyświetl połączenia Zakończ połączenie Opis Z bazy danych zostaje pobrana lista aktywnych połączeń i wyświetla w postaci tabeli Z wyświetlonej listy połączeń wybieramy to które chcemy zakończyć, następnie odpowiednia informacja o połączeniu zostaje zapisana w bazie danych 4. Wyświetlanie statystyki
Przypadek użycia Pokaż statystyki Wybierz filtry Opis Użytkownik zostaje poproszony o wybrania parametrów statystyk następnie na tej podstawie jest tworzone zapytanie do bazy i wyświetlany wynik Użytkownik określa parametry statystyk które zostaną wyświetlone (określa z jakiego okresu czasu mają być wyświetlone statystyki, oraz czy dal pojedynczego użytkownika - jakiego, czy dla wszystkich itp ) 2. Użytkownik Przypadek użycia Odbierz połączenie Zobacz swoją statystykę Opis Użytkownik odbiera połączenie nawiązane z nim przez innego użytkownika Użytkownik zyskuje dostęp do swojej statystyki wykonanych połączeń w ramach aplikacji
Zobacz zalogowanych użytkowników Utwórz połączenie Użytkownik może zobaczyć listę zalogowanych obecnie użytkowników Użytkownik wybiera z listy zalogowanych użytkownika, z którym chce nawiązać połączenie 3. Schemat Architektury 4. Plan testów aplikacji W ramach procesu tworzenia aplikacji przewidziano przeprowadzenie następujących testów: 1. testy jednostkowe - na bieżąco podczas tworzenia aplikacji 2. testy sip servletów - dzwonienie, rozłączania, anulowanie rozmów, listowanie, weryfikacja stanów połączeń 3. testy http servletów oraz stron jsp - wyświetlanie danych, przesyłanie danych 4. testy bazy danych - zapis/odczyt z bazy, funkcje fasady 5. testy integracyjne - złączenie całego systemu i sprawdzenie ich wspólnego działania (poprzez wykonanie przypadków użycia - patrz sip i http servlety) 5. Tutoriale 1. W ramach prac nad aplikacją stworzono kilka tutoriali, pomagających członkom zespołu w konfigurowaniu środowiska pracy. Tutoriale te dostępne są na stronie wiki projektu: http://code.google.com/p/mobicents-voip/
6. Persystencja danych 1. Dla zapewnienia persystencji przechowywanych danych zastosowano dostarczaną przez serwer Jboss bazę danych Hibernate SQL. Do uproszczenia jej obsługi zastosowani framework Hibernate, dzięki czemu uniknięto potrzeby własnoręcznej konstrukcji zapytań do bazy. 7. Plan zabezpieczenie systemu: 1. Zapewnienie bezpieczeństwa na poziomie aplikacji: 1. Zastosowanie mechanizmu uwierzytelnia użytkowników w oparciu o role: 1. MobicentsUser ma dostęp do danych dotyczących własnych rozmów 2. MobicentsAdmin ma dostęp do danych dotyczących wszystkich użytkowników 2. Zastosowanie szyfrowania haseł w oparciu o protokół SHA 3. Przechowywanie w bazie danych haseł wyłącznie szyfrowanych 2. zabezpieczenie jboss zgodnie z tutorialem: https://community.jboss.org/wiki/securejboss?_sscc=t Pominięto jednak punkt sugerujący usunięcie wbudowanej bazy danych HSQL (baza ta jest używana przez aplikację, więc mijałoby się to z celem) 3. zabezpieczenie sip servletów w jbossie zgodnie z instrukcjami w tutorialu mobicents http://www.mobicents.org/security.html 4. użycie skanera np. Nessus w celu weryfikacji zabezpieczeń i znalezienia innych "dziur" 8. Podsumowanie Wynikiem prac nad projektem jest działająca aplikacja serwerowa, umożliwiająca, zgodnie z założeniami, przeprowadzanie i monitorowanie rozmów w sieci lokalnej ramach platformy Mobicents.