summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTriatmoko2011-11-04 13:09:54 +0100
committerTriatmoko2011-11-04 13:09:54 +0100
commite178493cca948ff7b347f9be9ae6b61a62935e67 (patch)
tree60cdc3f32ecdca0d5c5394d0c2cfb3837601258e
parentpresentation files (diff)
parentModification of Report (diff)
downloadgsm-selftest-e178493cca948ff7b347f9be9ae6b61a62935e67.tar.gz
gsm-selftest-e178493cca948ff7b347f9be9ae6b61a62935e67.tar.xz
gsm-selftest-e178493cca948ff7b347f9be9ae6b61a62935e67.zip
Merge branch 'master' of lab.ks.uni-freiburg.de:lsfks/projekte/gsm-selftest
-rw-r--r--notFinishedCode/Report/controllerclass.pngbin21699 -> 21495 bytes
-rw-r--r--notFinishedCode/Report/test.log12
-rw-r--r--notFinishedCode/Report/test.pdfbin5056740 -> 5056503 bytes
-rw-r--r--notFinishedCode/Report/test.tex1
-rw-r--r--notFinishedCode/Report/test.tex.backup134
-rw-r--r--notFinishedCode/Report/test.tex~11
6 files changed, 96 insertions, 62 deletions
diff --git a/notFinishedCode/Report/controllerclass.png b/notFinishedCode/Report/controllerclass.png
index 62573b4..22dfec5 100644
--- a/notFinishedCode/Report/controllerclass.png
+++ b/notFinishedCode/Report/controllerclass.png
Binary files differ
diff --git a/notFinishedCode/Report/test.log b/notFinishedCode/Report/test.log
index 412e4f8..bf98fba 100644
--- a/notFinishedCode/Report/test.log
+++ b/notFinishedCode/Report/test.log
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.9.27) 3 NOV 2011 19:35
+This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.9.27) 4 NOV 2011 13:07
entering extended mode
%&-line parsing enabled.
**test.tex
@@ -523,11 +523,11 @@ File: trueTable.png Graphic file (type png)
<initTestClass.png, id=445, 419.5675pt x 160.6pt>
File: initTestClass.png Graphic file (type png)
<use initTestClass.png>
-<controllerclass.png, id=446, 377.41pt x 401.5pt>
+<controllerclass.png, id=446, 375.4025pt x 400.49625pt>
File: controllerclass.png Graphic file (type png)
- <use controllerclass.png>
-[19 <./usbDetectClass.png (PNG copy)> <./trueTable.png (PNG copy)>] [20 <./init
-TestClass.png> <./controllerclass.png (PNG copy)>]
+
+<use controllerclass.png> [19 <./usbDetectClass.png (PNG copy)> <./trueTable.pn
+g (PNG copy)>] [20 <./initTestClass.png> <./controllerclass.png (PNG copy)>]
<bb.jpg, id=461, 521.95pt x 516.93124pt>
File: bb.jpg Graphic file (type jpg)
<use bb.jpg> [21
@@ -633,7 +633,7 @@ en/ec/ecsx1440.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecsl1
texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texmf-texli
ve/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texmf-texlive/fonts/ty
pe1/public/amsfonts/cm/cmsy9.pfb>
-Output written on test.pdf (50 pages, 5056740 bytes).
+Output written on test.pdf (50 pages, 5056503 bytes).
PDF statistics:
1654 PDF objects out of 1728 (max. 8388607)
418 named destinations out of 1000 (max. 500000)
diff --git a/notFinishedCode/Report/test.pdf b/notFinishedCode/Report/test.pdf
index 9e49dda..8fa060b 100644
--- a/notFinishedCode/Report/test.pdf
+++ b/notFinishedCode/Report/test.pdf
Binary files differ
diff --git a/notFinishedCode/Report/test.tex b/notFinishedCode/Report/test.tex
index 9582d9c..07a47d6 100644
--- a/notFinishedCode/Report/test.tex
+++ b/notFinishedCode/Report/test.tex
@@ -1206,6 +1206,7 @@ These messages should guide the test user operator to debug the system.
\end{tabular}
\end{center}
\end{table}
+
\clearpage
\newpage
\subsection{Using the software}
diff --git a/notFinishedCode/Report/test.tex.backup b/notFinishedCode/Report/test.tex.backup
index ffc1235..9582d9c 100644
--- a/notFinishedCode/Report/test.tex.backup
+++ b/notFinishedCode/Report/test.tex.backup
@@ -16,10 +16,10 @@
%information for the PDF
\usepackage[pdftex, %used for adding pdf information
- pdfauthor={Refik Hadzialic, Tri Atmoko},
+ pdfauthor={Refik Hadzialic, Triatmoko},
pdftitle={Software for self-testing of the Telecommunication network of University of Freiburg},
pdfsubject={Telecommunication network testing software},
- pdfkeywords={telecommunication;network;networking;linux;ubuntu;university;freiburg;python;tcp/ip;security;gsm;sip;voip},
+ pdfkeywords={telecommunication;network;networking;linux;ubuntu;university;Freiburg;python;tcp/ip;security;gsm;sip;voip},
pdfproducer={Latex with hyperref, or other system},
pdfcreator={pdflatex, or other tool}]{hyperref} %used for the linking of table of content
@@ -103,7 +103,7 @@ escapeinside={\%}{)} % if you want to add a comment within your code
\titlepic{\includegraphics[width=90mm]{uniLogo2.png}}
\title{Team Project \\ ``\titleOfProject''} % type title between braces
\date{\today} % type date between braces
-\author{Refik Had\v{z}iali\'{c}\\ Tri Atmoko } % type author(s) between braces
+\author{Refik Had\v{z}iali\'{c}\\ Triatmoko } % type author(s) between braces
\department{\vspace{1\baselineskip} \large Albert-Ludwigs-Universit\"{a}t Freiburg \\
Lehrstuhl f\"{u}r Komunikationsysteme\\
Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Meier \\ Dennis Wehrle \\ \vspace{1\baselineskip} Sommersemester 2011}
@@ -128,7 +128,7 @@ Gradually we implemented a bit-by-bit of the final software. In the following ch
This particular report and our wiki page should be a sufficient guide and manual for understanding, running and continuing the development of our test software.
Certainly, we had a lot of fun while working on the project due the fact that we lost one team member.
We would like to thank the whole department for the free coffee and their support, especially
-Konrad Maier, Dennis Wehrle and Richard M. Zahoransky, without their support this project would not
+Konrad Meier, Dennis Wehrle and Richard M. Zahoransky, without their support this project would not
end up this way.
\clearpage
\section{Requirements} % chapter 2
@@ -163,7 +163,7 @@ Our programming language of choice is multi-platform, therefore our test softwar
The next requirement was to make an appealing GUI so that even an user without advanced Linux experience could handle the software and read out the results.
\par In addition it was required to log all the past tests. Later on a machine learning algorithm or some other intelligence could be applied to deduce some error behavior of the system
(e.g. an intelligent algorithm could find that part of the system fail in a combined manner). To accomplish the logging of all the tests we had to use a database system.
-We decided to use MySQL since it is open source and well supported. However, one should keep in mind the test results are only stored in the database in case the test was started from the web site.
+We decided to use MySQL since it is open source and well supported.
\begin{figure}[ht!]
\centering
\includegraphics[width=140mm]{test_Use_case.png}
@@ -186,7 +186,7 @@ The database design can be seen in figure 4.
\par The \emph{PingResultTable} table has six attributes (\emph{taskNo, sipServer, sipGate, unisip, gsmBox1, gsmBox2}), all of integer type.
The \emph{taskNo} attribute identifies the test number but not a single test (e.g. an operator user has selected three different tests to be executed, all of the three tests will have the same \emph{taskNo} to identify them together as belonging to one test group and \emph{taskId} identifies each single test and will be explained later).
\emph{sipServer} represents the Asterisk server ping result. \emph{sipGate} is used to represent the SIP Gate server for the landline calls (\url{http://www.sipgate.de}). \emph{uniSip} represents the ping results for our local University telephone network SIP server.
-\emph{gsmBox1} and \emph{gsmBox2} are the two single-chip Linux computers (BeagleBoard), that controll two cell phones each one (i.e. they are also known under the name of \emph{nanoBTSx controller}).
+\emph{gsmBox1} and \emph{gsmBox2} are the two single-chip Linux computers (BeagleBoard), that control two cell phones each one (i.e. they are also known under the name of \emph{nanoBTSx controller}).
\emph{taskNo} is the primary and unique key in the table \emph{PingResultTable}. Rest of the attributes (i.e. \emph{sipServer, sipGate, uniSip, gsmBox1, gsmBox2}) are used to insert the ping results, if the assigned servers are reachable or not.
Before any test attempt is made, our test software first tries to ping the servers. These results are then stored in the \emph{PingResultTable}.
@@ -228,10 +228,10 @@ attributes, both of varchar type, \emph{providerName} and \emph{prefix}.
Software design was the next step after we analyzed the problem and developed a plan how to proceed further. Good analysis and planning with poor algorithmic implementation is valueless.
During the work on the project, we had spent most of our time for software design.
We kept in mind that our software should satisfy major paradigms of software engineering,
-like compatibility, extensibility, modularity, relliability, security, fault-tolerance and usability.
+like compatibility, extensibility, modularity, reliability, security, fault-tolerance and usability.
The software engineering design concepts were achieved following way:
\begin{itemize}
-\item Compatibility - we used Python and MySQL which are multiplatform and work on major OS
+\item Compatibility - we used Python and MySQL which are multi-platform and work on major OS
\item Extensibility - new parts of code can be easily added by just modifying the classes
\item Mudalarity - the components are independent black boxes, they are tested and validated independently
\item Reliability - we use mutex locks to perform tests and database transaction operations to insert data into the database
@@ -248,7 +248,7 @@ The software engineering design concepts were achieved following way:
\par The basic principle how the test software works can be seen in figure 5. The test software is
started either manually from the terminal or using the web site. When the test software
-is started manually it is database dependent as well and thefore could not be used if the
+is started manually it is database dependent as well and therefore could not be used if the
database is being maintained or not working. If it is started from the web site it
connects to the database to get its tasks which have to be performed. After receiving
the tasks it makes a simple network test by pinging all the servers. The ping results
@@ -333,7 +333,7 @@ A ping timeout response was set up to 2 seconds. For more details and insights,
\caption[]{Ping class, used by test software}
\end{figure}
\subsection{Data logging}
-If errors appear it is important to reconstruct the events that led to the misbehaviour of the software. One of the best ways to reconstruct the events was to log
+If errors appear it is important to reconstruct the events that led to the misbehavior of the software. One of the best ways to reconstruct the events was to log
events for different blocks of programming code.
We had used the logging class to follow our handler code run on the BeagleBoard. In case there is an error we could look inside of the log files and track the error.
How the class works and what kind of outputs it produces can be found on our project wiki page \cite{wiki}.
@@ -449,10 +449,10 @@ Afterwards we installed the Python on it and all the required libraries\footnote
\clearpage
\section{Communication protocol}
-A communication protocol represents a set of well defined rules by whose help two or more computing systems exchange information inbetween.
+A communication protocol represents a set of well defined rules by whose help two or more computing systems exchange information in-between.
When defining these rules, it is important to define a limited state space for every possible event, no matter did we get the appropriate
-response from the other side. Our approch to this problem was to build a simple synchronous protocol, where every expected message is
-confirmed or otherwise the connection between two sides is immediatelly terminated. Since designing protocols is a demanding and challenging
+response from the other side. Our approach to this problem was to build a simple synchronous protocol, where every expected message is
+confirmed or otherwise the connection between two sides is immediately terminated. Since designing protocols is a demanding and challenging
topic which requires years of experience and verification, we do not expect that we had developed the best possible and an optimum
protocol\footnote{Design concepts and paradigms for the protocol design have been used from the
``Network Protocol Design and Evaluation'' course, lectured by Dr. Stefan R\"{u}hrup}.
@@ -479,12 +479,12 @@ These timers are responsible for the case if the physical connection between the
established or terminated\footnote{The client and server classes responsible for the communication have timeout timers as well
for the case if the connection between the controller and handlers are broken.}. Afterwards, depending if the physical connection
between the handlers (i.e. the callee and the caller) was successfully established or not, the handlers report their
-coresponding state with a message to the controller. The message is of the form \emph{CALL OK}, meaning the handler successfully
+corresponding state with a message to the controller. The message is of the form \emph{CALL OK}, meaning the handler successfully
established a physical connection with the other handler, or of the form \emph{CALL NOT OK}, meaning a physical connection was
not successfully established on the given handler. The controller considers only a test successful if both handlers report
with \emph{CALL OK}. The test software ends the established connection with the handlers by sending them the \emph{TERMINATE CONNECTION}
command. After the handlers have terminated the connection, they enter the waiting for a new connection state and the process starts
-from begining again. If the states are not entered in the specified order the connection is immediatelly terminated and
+from beginning again. If the states are not entered in the specified order the connection is immediately terminated and
the state machine is in the waiting for a new connection state\footnote{It cannot be seen in the protocol flowchart but one should
keep in mind it works like a well defined state machine.}.
@@ -563,13 +563,13 @@ pan: elapsed time 0 seconds
Safety and security of the software plays a major role in our project.
It is of vital importance that only as few as possible people have access to our test system since the resulting data could be exploited to plan an attack
(e.g. assume the University alarm system uses the SIP gateway to connect to the outside world and to alarm the police, if one knows that the SIP gateway is not working properly, a burglar could plan to rob the University building just at that moment). Therefore the choice to go Open Source is justified due to the fact that one should know how every single detail of the system works.
-All the time, while we were working on the project, we were made aware of this issue by Denis and Konrad.
+All the time, while we were working on the project, we were made aware of this issue by Dennis and Konrad.
We decided to use asymmetric key cryptography, where each side has two keys (private and public). In the next sections we will explain in more details how we applied the methods.
\subsection{Encryption of the communication channels}
At first we thought to encrypt the data before sending them but since none of us was an expert on encryption standards the idea was rejected. Alongside the fact that none of us had been an expert in the field of cryptography, we were neither experts in the field of Internet programming. One could find maybe a way to disable our server software with various hacking methods (e.g.
trying to open the port until the system runs out of memory and in our case the system which we used on the handler side was a BeagleBoard with ARM architecture running on a single chip TI OMAP processor, refer to the picture in figure).
We had to eliminate even the slightest possible threat in return for spending more time for debugging the test software system. Despite we were aware of all these facts, we had to choose one of the plenty implemented encryption standards on Linux.
-Denis and Konrad suggested using the SSH Tunneling method.
+Dennis and Konrad suggested using the SSH Tunneling method.
\begin{figure}[ht!]
\centering
@@ -628,7 +628,7 @@ Securing the communication channels without making certain the web site is safe
We decided to use the \emph{https} protocol instead of the \emph{http} since a person in the middle
could sniff our data (e.g. a person is connected with his/her smart-phone over an unprotected wireless network) \cite{https}.
At the same time the web site should be accessible only by the authorized personel. Our first approach to this
-problem was to build an PHP page with \emph{MD5} hashed passwords, however we got a suggestion by Konrad and Denis to
+problem was to build an PHP page with \emph{MD5} hashed passwords, however we got a suggestion by Konrad and Dennis to
use a safer encryption method implemented in the Apache web server software, \emph{.htaccess}. By using
these two techniques we protected the web site of some vulnerabilities known to us. If the web site
will be only accessed from our local university network, we can additionally add an IP filter mask as well.
@@ -662,7 +662,7 @@ refik@ubuntu:/etc/apache2$ sudo mkdir ssl
cp server.key /etc/apache2/ssl
cp server.crt /etc/apache2/ssl
\end{lstlisting}
-\par Then we enabled SSL by typing in \emph{a2enmod ssl}, ``it is simply a general purpose utility to establish a symlink between a module in \emph{/etc/apache2/mods-available} to \\ \emph{/etc/apache2/mods-enabled} (or give a message to the effect that a given module does not exist or that it is already symlinked for loading)'' \cite{https}.
+\par Then we enabled SSL by typing in \emph{a2enmod ssl}, ``it is simply a general purpose utility to establish a symlink between a module in \emph{/etc/apache2/mods-available} to \\ \emph{/etc/apache2/mods-enabled} (or give a message to the effect that a given module does not exist or that it is already symlink-ed for loading)'' \cite{https}.
\begin{lstlisting}
refik@ubuntu:/etc/apache2/ssl$ sudo a2enmod ssl
Enabling module ssl.
@@ -811,7 +811,7 @@ One of the requests of our team project was to build a test system that could be
Since we used the Open Source platform to base our project on, it was certain we will use it for the web site as well.
The dynamic parts of the web site were programmed using PHP and JavaScript. The GUI was done using CSS.
The web site opens TCP/IP sessions between itself and the Python test software. Due reasons explained in the section above,
-a test user needs first to enter his username and password to acccess the web site. Then a test user can manually select what type of tests he wants to perform or he can select already defined test,
+a test user needs first to enter his username and password to access the web site. Then a test user can manually select what type of tests he wants to perform or he can select already defined test,
like the simple, smart or full test. (Describe here these three type of tests).
Data about the performing tests are inserted into the database only in the case if the mutex lock for the web site can be obtained\footnote{The mutex lock will be explained in the next subsection.}.
This way we can avoid inserting data about the test in case there is already a test user on the website performing some tests on the system.
@@ -837,25 +837,25 @@ Reading the test results is as simple as looking at the icons and identifying if
\begin{itemize}
\item Triangles represent BTS stations
-\item Cellphones represent the external networks (E-Plus, Vodaphone, T-Mobile and O2)
+\item Cell phones represent the external networks (E-Plus, Vodaphone, T-Mobile and O2)
\item Telephone represents the landline and a telephone with a mortarboard the University telephone network
\item Servers represent the OpenBSC and LsfKs-Asterisk
\item Two monitors represent the SIP system
\end{itemize}
-\par The inference mechanism works as following: if a test case works, we can conclude that the subsystems connected inbetween the two ends are working properly as well.
+\par The inference mechanism works as following: if a test case works, we can conclude that the subsystems connected in-between the two ends are working properly as well.
We use the pChart library\footnote{It is under the GNU GPLv3 license and our project is nonprofit!} to generate the topological picture of our telecommunication system \cite{pChart}.
\begin{figure}[ht!]
\centering
\includegraphics[width=120mm]{resultsImage.png}
\caption[]{Result image showing working, defected and not tested subsystems}
\end{figure}
-\par On the right side of the result picture the test user can immediatelly identify the network operability in percentage\footnote{The test user has to take into account that this percantage is only valid if a full test is performed.}. Bellow the network operability statistics are the ping results statistics located.
+\par On the right side of the result picture the test user can immediately identify the network operability in percentage\footnote{The test user has to take into account that this percentage is only valid if a full test is performed.}. Bellow the network operability statistics are the ping results statistics located.
If one of the fields is red it means the subsystem is not online or cannot be seen by our server computer where the test software is located.
\newpage
\section{Employing the test software system}
In this section the reader can find out how to install and how to use the test system.
-Our goal was to make a multiplatform test software, however we tested it only under Ubuntu
+Our goal was to make a multi-platform test software, however we tested it only under Ubuntu
11.04 32 bit Linux OS and the given instruction manual is only tested under that OS. The
test software performed well, both on PC and MAC computers.
One should keep in mind that some of the libraries we had used do not work
@@ -879,7 +879,7 @@ It will take a short amount of time to be installed. You will be required to ent
the \emph{root} password.
\subsubsection{Apache Web server installation}
-We had decided to use the Apache web server because of its wide support on the internet
+We had decided to use the Apache web server because of its wide support on the Internet
and safety reasons. If there are any bugs or security flaws, the patches are
easily installed with the Ubuntu update manager. The Apache web server can be easily
installed by typing the following command:
@@ -935,7 +935,7 @@ sudo apt-get install python-serial
The installation should not produce any errors or warnings.
\subsubsection{PJSUA library}
-\emph{PJSUA} is an open source command line SIP user agent (softphone). We use the library
+\emph{PJSUA} is an open source command line SIP user agent (soft-phone). We use the library
for the SIP handler. First, one needs to download the library
from \url{http://www.pjsip.org/download.htm} \cite{pjsip}. Then extract it to some folder.
Then we will build the library using make. This can be accomplished by typing the following
@@ -960,7 +960,7 @@ sudo apt-get install python2.7-dev
\end{lstlisting}
After you have successfully installed python2.7-dev, repeat the the commands given above.
Now you should have a properly installed PJSUA library. One can easily test if the installation
-was successful by copiling a simple python code, \emph{python test.py}, with the following
+was successful by compiling a simple python code, \emph{python test.py}, with the following
source code:
\begin{lstlisting}
import pjsua
@@ -1016,9 +1016,34 @@ In the automatic configuration, the software will automatically try to detect ev
cell phone that is connected to the USB hub. This configuration option can detect
up to nine cell phones, that are connected to the server computer. We had set a limit to
nine cell phones because we required only five (four for the external GSM networks
-and one for our internal GSM BST). The only limitation of the automatic cell phone congiguration
+and one for our internal GSM BST). The only limitation of the automatic cell phone configuration
is that it only supports cell phones where we could read out the number using the \emph{AT Modem}
commands since some cell phone manufacturers do not use the standardized \emph{AT Modem} commands.
+\newpage
+\subsubsection{Configuring the cell phones}
+It is important to write in the Siemens S55 cell phones their numbers if you want to use
+automatic device configuration. You can do that by following the next few steps:
+
+\par Open the phone book on the S55 and choose \emph{<Special books>} and press the select button.
+\par In the second step, press select on \emph{<OwnNumber>}.
+\par In the third and last step, enter your cell phone number and save it!
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=20mm]{First.png}
+ \caption[]{First step in configuring the phone}
+\end{figure}
+
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=20mm]{Second.png}
+ \caption[]{Second step in configuring the phone}
+\end{figure}
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=20mm]{Third.png}
+ \caption[]{Second step in configuring the phone}
+\end{figure}
+\clearpage
\subsection{Location of the files}
For proper operation of the software, it is important that each file is at its correct path
located. In the given section you can find out the correct path locations.
@@ -1142,16 +1167,17 @@ tested (SIP and University telephone network). It will try to identify if there
problems on the Asterisk server and our University telephone network, including incoming and
outgoing calls from the SIP side.
\subsubsection{GSM test}
-In the \emph{GSM} test both GSM networks get tested, the local and the external GSM netwrok.
+In the \emph{GSM} test both GSM networks get tested, the local and the external GSM network.
We test the nanoBTS controller boxes (i.e. BeagleBoards) as well. Using this test, both incoming
and outgoing calls are performed, we can detect possible errors on the OpenBSC and the nanoBTS.
\subsubsection{All test}
The \emph{All} test selects all the given tests and executes them step-by-step. It is the test
that takes the greatest amount of time. While the test are performed, results are
-immediatelly printed in the terminal window or on the web site.
+immediately printed in the terminal window or on the web site.
\subsubsection{Manual test}
The \emph{Manual} test as the name itself says, is the test where you can manually select
what kind of tests you want to be performed.
+\newpage
\subsection{Result descriptions}
In the following table one can see the messages returned by the test software!
These messages should guide the test user operator to debug the system.
@@ -1171,12 +1197,17 @@ These messages should guide the test user operator to debug the system.
7 & 333 & Could not establish a connection to the database! \\ \hline
8 & 100 & Missing account detail \\ \hline
9 & 402 & Payment Required (E-Plus Card) \\ \hline
+ 10 & 801 & Connection to caller established, but the device does not respond \\ \hline
+ 11 & 802 & Connection to destination established, but the device does not respond \\ \hline
+ 12 & 501 & Destination server Internal Error \\ \hline
+ 13 & 502 & Caller server Internal Error \\ \hline
%\hline
\end{tabular}
\end{center}
\end{table}
-
+\clearpage
+\newpage
\subsection{Using the software}
In this section, you will be taught step by step how to use our test software. There are two options to run our test software, from the web site or the terminal.
The first is easier, but the second is easy as well however requires terminal skills.
@@ -1187,63 +1218,63 @@ You will be required to enter your username and password for the web page\footno
If you entered the correct username and password you should see the same image as in the following figure.
\begin{figure}[ht!]
\centering
- \includegraphics[width=140mm]{website1.png}
+ \includegraphics[width=120mm]{website1.png}
\caption[]{Web page of test software}
\end{figure}
Here you can choose what kind of test you want to perform or maybe if you want to configure the devices (manually or automatically).
If you press the ``Smart test'' button, you have to wait a few moments and the results should appear in a short amount of time.
-However, if you pressed the ``Choose the test'' button, you will be presented with a new page, given in figure 25.
+However, if you pressed the ``Choose the test'' button, you will be presented with a new page, given in figure 28.
You will have to select the tests you want to perform manually or to press on the left side one of the given buttons for different
tests. You can choose between ``SIP Test'', ``GSM Test'', ``Check all'' and ``Uncheck all''. ``Check all'' will select all the possible
tests, whereas ``Uncheck all'' will deselect all of them. After you finished the procedure of selecting the tests, you should press the
``Submit'' on the left side. Wait a few moments and the results will start to appear in real time. After the table on the left is filled
-(i.e. after all the tests have been completed) a result image will be generated on the right side, can be seen in figure 26. However, if
-your pressed the ``Device configuration'' button, then you will end up on a page as given in figure 27.
+(i.e. after all the tests have been completed) a result image will be generated on the right side, can be seen in figure 20. However, if
+your pressed the ``Device configuration'' button, then you will end up on a page as given in figure 30.
\begin{figure}[ht!]
\centering
- \includegraphics[width=140mm]{website2.png}
+ \includegraphics[width=120mm]{website2.png}
\caption[]{Manually selecting the tests}
\end{figure}
If you press the ``Automatic configuration'' button, the test software will try automatically to match your cell phones with
-their port addresses and numbers. However, if the automatical matching does not work, you will have to manually configure it.
-You can do it by entering all the required information on the web site, as in figure 28. Once you correctly filled in the required
+their port addresses and numbers. However, if the automatic matching does not work, you will have to manually configure it.
+You can do it by entering all the required information on the web site, as in figure 31. Once you correctly filled in the required
information, you should press the ``Submit'' button.
\begin{figure}[ht!]
\centering
- \includegraphics[width=140mm]{webpageReport.png}
+ \includegraphics[width=120mm]{webpageReport.png}
\caption[]{Result web page}
\end{figure}
\begin{figure}[ht!]
\centering
- \includegraphics[width=140mm]{website3.png}
+ \includegraphics[width=120mm]{website3.png}
\caption[]{Device configuration web page}
\end{figure}
-\begin{figure}[!t]
+\begin{figure}[ht!]
\centering
- \includegraphics[width=140mm]{website4.png}
+ \includegraphics[width=120mm]{website4.png}
\caption[]{Manual device configuration page}
\end{figure}
-
-
+%\clearpage
+\newpage
\subsubsection{Terminal guide}
In the following text, we will guide you and show you step-by-step how to use the test software from the terminal. All you have to
do is just type the command for starting the test software in the folder where it is located, \emph{./gsmselftest.py ---option} (keep
in mind there are two dashes before \emph{option}).
\begin{figure}[ht!]
\centering
- \includegraphics[width=140mm]{terminalCommand.png}
+ \includegraphics[width=100mm]{terminalCommand.png}
\caption[]{Test software terminal options}
\end{figure}
You can perform the tests manually by typing what you want to test or by choosing one of the predefined tests. For example, you
want to test manually does the SIP work with the University telephone network, you would type the following: \emph{./gsmselftest.py --db sip unisip}.
\begin{figure}[ht!]
\centering
- \includegraphics[width=140mm]{resultterminal.png}
+ \includegraphics[width=100mm]{resultterminal.png}
\caption[]{Example results from the terminal screen}
\end{figure}
After the tests have been performed the results will be displayed. Green result text means the test was performed successfully and red result
@@ -1251,10 +1282,11 @@ text means that something is not working properly.
If you need to configure the cell phones manually or automatically, you can do it by typing: \emph{./gsmselftest.py --devconf} (keep
in mind there are two dashes before \emph{devconf}). Then you can press ``a'' on the keyboard for automatic configuration or ``m'' for
-manual configuration.
-\begin{figure}[ht!]
+manual configuration. One should keep in mind that the terminal test software can be started even through \emph{ssh}, however with an
+additional command \emph{-X}\footnote{For example: ssh -X username@address}.
+\begin{figure}[htb]
\centering
- \includegraphics[width=140mm]{devconf.png}
+ \includegraphics[width=100mm]{devconf.png}
\caption[]{Test software device configuration from terminal screen}
\end{figure}
@@ -1262,7 +1294,7 @@ manual configuration.
\newpage
\section{Conclusion}
As a result of our successfully finished team project, we had felt how it is to work
-in a team. We had learnt how to confront various sofware and hardware issues. The problems
+in a team. We had learnt how to confront various software and hardware issues. The problems
were broken into smaller fragments and the solutions were derived in a step-by-step approach.
\par While designing the software, we kept in mind that every single step should be well thought-out,
documented, tested and validated. At the end we joined all the ``black-boxes'' together
@@ -1270,7 +1302,7 @@ into one big piece of software. We fulfilled our stated requirements and goals.
\par Despite the fact that our test software will be used by well educated engineers, we may
conclude that all the way along we thought about the usage-simplicity, safety and security
of our product. Our team members were enthusiastic about the idea that our team project will
-contribute to a better perferomance and quality of the overall telecommunication network,
+contribute to a better performance and quality of the overall telecommunication network,
for all of the University staff and our colleagues, the students.
\newpage
diff --git a/notFinishedCode/Report/test.tex~ b/notFinishedCode/Report/test.tex~
index a432aaa..af8300d 100644
--- a/notFinishedCode/Report/test.tex~
+++ b/notFinishedCode/Report/test.tex~
@@ -128,7 +128,7 @@ Gradually we implemented a bit-by-bit of the final software. In the following ch
This particular report and our wiki page should be a sufficient guide and manual for understanding, running and continuing the development of our test software.
Certainly, we had a lot of fun while working on the project due the fact that we lost one team member.
We would like to thank the whole department for the free coffee and their support, especially
-Konrad Maier, Dennis Wehrle and Richard M. Zahoransky, without their support this project would not
+Konrad Meier, Dennis Wehrle and Richard M. Zahoransky, without their support this project would not
end up this way.
\clearpage
\section{Requirements} % chapter 2
@@ -563,13 +563,13 @@ pan: elapsed time 0 seconds
Safety and security of the software plays a major role in our project.
It is of vital importance that only as few as possible people have access to our test system since the resulting data could be exploited to plan an attack
(e.g. assume the University alarm system uses the SIP gateway to connect to the outside world and to alarm the police, if one knows that the SIP gateway is not working properly, a burglar could plan to rob the University building just at that moment). Therefore the choice to go Open Source is justified due to the fact that one should know how every single detail of the system works.
-All the time, while we were working on the project, we were made aware of this issue by Denis and Konrad.
+All the time, while we were working on the project, we were made aware of this issue by Dennis and Konrad.
We decided to use asymmetric key cryptography, where each side has two keys (private and public). In the next sections we will explain in more details how we applied the methods.
\subsection{Encryption of the communication channels}
At first we thought to encrypt the data before sending them but since none of us was an expert on encryption standards the idea was rejected. Alongside the fact that none of us had been an expert in the field of cryptography, we were neither experts in the field of Internet programming. One could find maybe a way to disable our server software with various hacking methods (e.g.
trying to open the port until the system runs out of memory and in our case the system which we used on the handler side was a BeagleBoard with ARM architecture running on a single chip TI OMAP processor, refer to the picture in figure).
We had to eliminate even the slightest possible threat in return for spending more time for debugging the test software system. Despite we were aware of all these facts, we had to choose one of the plenty implemented encryption standards on Linux.
-Denis and Konrad suggested using the SSH Tunneling method.
+Dennis and Konrad suggested using the SSH Tunneling method.
\begin{figure}[ht!]
\centering
@@ -628,7 +628,7 @@ Securing the communication channels without making certain the web site is safe
We decided to use the \emph{https} protocol instead of the \emph{http} since a person in the middle
could sniff our data (e.g. a person is connected with his/her smart-phone over an unprotected wireless network) \cite{https}.
At the same time the web site should be accessible only by the authorized personel. Our first approach to this
-problem was to build an PHP page with \emph{MD5} hashed passwords, however we got a suggestion by Konrad and Denis to
+problem was to build an PHP page with \emph{MD5} hashed passwords, however we got a suggestion by Konrad and Dennis to
use a safer encryption method implemented in the Apache web server software, \emph{.htaccess}. By using
these two techniques we protected the web site of some vulnerabilities known to us. If the web site
will be only accessed from our local university network, we can additionally add an IP filter mask as well.
@@ -1191,7 +1191,7 @@ These messages should guide the test user operator to debug the system.
1 & 200 & Call was OK \\ \hline
2 & 604 & General Handler Error: Destination handler did not respond. Timeout \\ \hline
3 & 998 & General Handler Error: Could not connect to the destination handler! \\ \hline
- 4 & 605 & General Handler Error: Caller handler did not respond. Timeout \\ \hline
+ 4 & 605 & General Handlero Errr: Caller handler did not respond. Timeout \\ \hline
5 & 999 & General Handler Error: Could not connect to the caller handler! \\ \hline
6 & 486 & Call Failed \\ \hline
7 & 333 & Could not establish a connection to the database! \\ \hline
@@ -1206,6 +1206,7 @@ These messages should guide the test user operator to debug the system.
\end{tabular}
\end{center}
\end{table}
+
\clearpage
\newpage
\subsection{Using the software}