Você está na página 1de 27

Software

Design Document

For

Implementation of voice mailbox system


based on VoIP

Version 1.0 approved

Prepared by

Jaya Engineering College

07-03-2019
Software Design Document

TABLE OF CONTENTS

1. INTRODUCTION
1.1 Purpose
1.2 Scope
1.3 Overview
1.4 Reference Material
1.5 Definitions and Acronyms

2. SYSTEM OVERVIEW
3. SYSTEM ARCHITECTURE
3.1 Architectural Design
3.2 Decomposition Description
3.3 Design Rationale

4. DATA DESIGN
4.1 Data Description
4.2 Data Dictionary

5. COMPONENTDESIGN
6. HUMAN INTERFACE DESIGN
6.1 Overview of User Interface
6.2 Screen Images
6.3 Screen Objects and Actions

7. REQUIREMENTS MATRIX
8. APPENDICES
Software Design Document

1. INTRODUCTION

1.1 Purpose
This software design document describes the process to reduce the voice mailbox system
development cost and shorten its development cycle

1.2 Scope
The scope of this project is a solution of the voice mailbox system based on digital voice
card and VoIP is put forward.
.

1.3 Overview

The overview of the project is Introduces the system architecture of the voice mailbox
system based on VoIP. It has a certain guiding significance to the relative projects'
development based on digital voice card.
.

1.4 References

Jingyang wang “The design and implementation of voice mailbox system based on
VoIP” in 2017.

1.5 Definitions and Acronyms

IP: Internet Protocol.


VoIP : Voice over Internet Protocol
CTI: Computer telephony integration
Software Design Document

2. SYSTEM OVERVIEW
The rapid development of CTI and VoIP technologies. To reduce the voice
mailbox system development cost and shorten its development cycle. A solution of
the voice mailbox system based on digital voice card and VoIP is put forward.
Introduces the system architecture of the voice mailbox system based on VoIP. It
has a certain guiding significance to the relative projects' development based on
digital voice card.

3.SYSTEM ARCHITECTURE
3.1 Architectural Design
Software Design Document

 User register to the server using a login ID, password, DOB and further details.
 In case of a registered user, user login with the mobile number and a password.
 During the login, server authorizes the user with the details provided to the cloud
to enable the acess.
 User can store their contact details in their mobile device, it will be stored in the
user personal device.
 The Contact details of user is synchronized with the cloud account which is
created by the User.
 The user installs the applications which accesses some user informations such as
contact details, mail details, address etc.
 The user grants permission to the applications that are being installed to access the
informations that are stored in the cloud.
Software Design Document

 Based on the users permission the informations are imported, exported and
truncated from/into the cloud storage.
 The applications that are accessing the users data(eg. Contacts) without violating
the restrictions then those applications are termed as trusted applications.
 Some applications violate the restrictions and use some more datas of user such as
mail information and those applications are termed as traitor applications.
 Those traitor applications are allowed to share only the contacts alone and the
other additional informations are blocked from being shared.
 Based on users requirements those applications are allowed for further accessing
or they are uninstalled.
 History of the uninstalled applications are stored in their account and they are
shown whenever the user tries to install the same traitor applications.
 Thus the privacy of the user datas are maintained and the security and
performance analysis shows that our construction is threshold provably secure and
has following features: dynamicjoining and revoking users, constant-size
ciphertexts and decryption keys, lower overloads for large-scale systems.

3.2 Decomposition Description


Modules:
User Agent

SIP network servers

Conference server

User Agents:

each User Agent consists of a User Agent Client (UAC) and a User Agent
Server (UAS). The UAC is a logical entity to create new SIP requests. The UAS
Software Design Document

is responsible for receiving SIP requests and sending the corresponding


responses along with suitable processing of those SIP requests.

SIP network servers:

These include the registrar server and a proxy/redirect server. The registrar
Server receives updates from users about their current addresses. It
maintains the current location of each user in the form of a database.

Conference server:

It has been implemented to provide multi-point communication support

User Interface Design


To connect with server user must give their username and password then only they can
able to connect the server. If the user already exits directly can login into the server else
user must register their details such as username, password, Email id, City and Country
into the server. Database will create the account for the entire user to maintain upload and
download rate. Name will be set as user id.Logging in is usually used to enter a specific
page. It will search the query and display the query.
Software Design Document

Owner Module
User can store their contact details in their mobile device it will be stored in the user
personal device that contact will used to synchronize.
Software Design Document

User Defined Key Module


In this module is used to help to encrypt the cloud owner’s data and check their data is in
safe also provide protection to the data. Owner provide the security key to every files and
it’s a user defined process. Each user data is assigned with a global user identity and can
freely get the cipher texts from the data. The user can decrypt the cipher text and access
the data is defined in the cipher text.
Software Design Document

4 DATA DESIGN:
4.1 DATA DESCRIPTION:

REGISTER TABLE:
The description about the register table is provided in order to store all the details about
the user.The details are the characteristics of the user.The details may be
Name,DOB,Mobileno,EmailId,Password,Address,Gender,Country,Usertype.

Register Table:
Software Design Document

Install Table:

4.2. DATA DICTIONARY:

5.COMPONENT DESIGN:

5.1.REGISTER:
PSEUDO CODE:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class email_signup : System.Web.UI.Page


{
DS_USER.USERMST_SELECTDataTable UDT = new DS_USER.USERMST_SELECTDataTable();
DS_USERTableAdapters.USERMST_SELECTTableAdapter UAdapter = new
DS_USERTableAdapters.USERMST_SELECTTableAdapter();

protected void Page_Load(object sender, EventArgs e)


{

}
protected void Button1_Click(object sender, EventArgs e)
{
lblerror.Text = "";
UDT = UAdapter.SelectForEmailCheck(txtuname.Text+"@yahoo.com");
Software Design Document

if (DrpDD.SelectedIndex == 0)
{

lblerror.Text = "Slect Date first";


}
else if (Drpmm.SelectedIndex == 0)
{

lblerror.Text = "Select Month first";


}
else if (Drpyyy.SelectedIndex == 0)
{
lblerror.Text = "select Year first";
}
else if(txtuname.Text=="")
{
lblerror.Text = "Enter UserName ";
}
else if (txtpass.Text == "")
{

lblerror.Text = "Enter Password";


}
else
{

if (UDT.Rows.Count == 1)
{
lblerror.Text = "Email already exist !!";

}
else
{
string img = "";
if (RadioButton1.Checked == true)
{
img = "~/img/boy.jpeg";

}
else
{
img = "~/img/girl.jpeg";
}

if (txtpass.Text.Length > 8)
{
if (UDT.Rows.Count > 0)
{
lblerror.Text = "UserName Already Exist";

}
else
{
int inst = UAdapter.Insert(txtfname.Text, txtsname.Text,
Convert.ToDateTime(DrpDD.SelectedItem.Text + " " + Drpmm.SelectedItem.Text + " " +
Drpyyy.SelectedItem.Text), txtadd.Text, txtcity.Text, txtpin.Text, txtmo.Text,
txtuname.Text + txtuname0.Text, txtpass.Text, img);
Software Design Document

Response.Redirect("Default.aspx");
}
}
else
{
lblerror.Text = "Password more then 8 char";
}
}
}
}
}

FLOW CHART:

REGISTER

GET DETAILS

CHECK
MAIL
DETAILS

VALID INVALID

REGISTERED INSUFFICIENT
SUCCESSFULLY DATA
Software Design Document

5.2 LOGIN
PSEUDOCODE:
START
GET Mobile-no
GET Password
IF(Mobile-no==Entered Mobile-no && Password==Entered Password)
THEN
Login Successful
ELSE
Login Failed
End if
End
Flow Chart:
LOGIN

GET MOBILE NO

GET PASSWORD

CHECK
MOBILE NO &
PASSWORD

VALID INVALID

LOGIN LOGIN FAILED

SUCCESSFULLY
Software Design Document

5.3 COMPOSE
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net.Mail;
using System.Speech;
using System.Speech.Recognition;

public partial class Compose : System.Web.UI.Page


{
DS_Contact.Contactmst_selectDataTable CDT = new
DS_Contact.Contactmst_selectDataTable();
DS_ContactTableAdapters.Contactmst_selectTableAdapter CAdapter = new
DS_ContactTableAdapters.Contactmst_selectTableAdapter();

DS_Mail.MAILMST_SELECTDataTable MDT = new DS_Mail.MAILMST_SELECTDataTable();


DS_MailTableAdapters.MAILMST_SELECTTableAdapter MAdapter = new
DS_MailTableAdapters.MAILMST_SELECTTableAdapter();

protected void Page_Load(object sender, EventArgs e)


{

// MultiView1.ActiveViewIndex = -1;

}
protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
{

MultiView1.ActiveViewIndex = 0;
if (Page.IsPostBack == false)
{
CDT = CAdapter.selectbyemail(Session["email"].ToString());
DropDownList1.DataSource = CDT;
DropDownList1.DataTextField = "Toemail";
DropDownList1.DataValueField = "cid";
DropDownList1.DataBind();
}
}
protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
Software Design Document

MultiView1.ActiveViewIndex = 1;

CDT = CAdapter.selectbyemail(Session["email"].ToString());
CheckBoxList1.DataSource = CDT;
CheckBoxList1.DataTextField = "Toemail";
CheckBoxList1.DataValueField = "cid";
CheckBoxList1.DataBind();

}
protected void LinkButton1_Click(object sender, EventArgs e)
{
btnuploadsingle.Visible = true;
FileUpload1.Visible = true;
FileUpload2.Visible = true;
}
protected void Button2_Click(object sender, EventArgs e)

{
Label1.Text = DropDownList1.SelectedItem.Text;

}
protected void btnuploadsingle_Click(object sender, EventArgs e)
{
att1.Text = "";
att2.Text = "";
if (FileUpload1.HasFile != false)
{

FileUpload1.SaveAs(Server.MapPath("~/att/" +Session["uid"].ToString() +"_"+


FileUpload1.FileName.ToString()));
att1.Text = FileUpload1.FileName.ToString();
}
if (FileUpload2.HasFile != false)
{
FileUpload2.SaveAs(Server.MapPath("~/att/" + Session["uid"].ToString() + "_"
+ FileUpload2.FileName.ToString()));
att2.Text =FileUpload2.FileName.ToString();
}
FileUpload1.Visible = false;
FileUpload2.Visible = false;
btnuploadsingle.Visible = false;
}
protected void Button3_Click(object sender, EventArgs e)
{

if(att1.Text!="" && att2.Text!="")


{
int
inst=MAdapter.Insert(Session["email"].ToString(),Label1.Text,txtsubject.Text,txtmessage.T
ext,"~/att/" +Session["uid"].ToString() +"_"+ att1.Text,"~/att/"
+Session["uid"].ToString() +"_"+ att2.Text,0);
MultiView1.ActiveViewIndex = 2;
lblsnd.Text = Label1.Text;
}
Software Design Document

else if (att1.Text == "" && att2.Text != "")


{
int inst = MAdapter.Insert(Session["email"].ToString(), Label1.Text,
txtsubject.Text, txtmessage.Text, "", "~/att/" + Session["uid"].ToString() + "_" +
att2.Text, 0);
MultiView1.ActiveViewIndex = 2;
lblsnd.Text = Label1.Text;
}
else if (att1.Text != "" && att2.Text == "")
{
int inst = MAdapter.Insert(Session["email"].ToString(), Label1.Text,
txtsubject.Text, txtmessage.Text, "~/att/" + Session["uid"].ToString() + "_" + att1.Text,
"", 0);
MultiView1.ActiveViewIndex = 2;
lblsnd.Text = Label1.Text;
}
else
{
int inst = MAdapter.Insert(Session["email"].ToString(), Label1.Text,
txtsubject.Text, txtmessage.Text, "", "", 0);
MultiView1.ActiveViewIndex = 2;
lblsnd.Text = Label1.Text;

}
Label1.Text = "";
att1.Text = "";
att2.Text = "";
txtmessage.Text = "";
txtsubject.Text= "";

}
protected void txt_TextChanged(object sender, EventArgs e)
{

}
protected void Button5_Click(object sender, EventArgs e)
{
for (int i = 0; i < CheckBoxList1.Items.Count; i++)
{

if (CheckBoxList1.Items[i].Selected == true)
{

if (att3.Text != "" && att4.Text != "")


{
int inst = MAdapter.Insert(Session["email"].ToString(),
CheckBoxList1.Items[i].Text, txtsubjectgroup.Text, txtmessagegroup.Text, "~/att/" +
Session["uid"].ToString() + "_" + att3.Text, "~/att/" + Session["uid"].ToString() + "_" +
att4.Text, 0);
MultiView1.ActiveViewIndex = 2;
lblsnd.Text = "ALL";
}
else if (att3.Text == "" && att4.Text != "")
{
Software Design Document

int inst = MAdapter.Insert(Session["email"].ToString(),


CheckBoxList1.Items[i].Text, txtsubjectgroup.Text, txtmessagegroup.Text, "", "~/att/" +
Session["uid"].ToString() + "_" + att4.Text, 0);
MultiView1.ActiveViewIndex = 2;
lblsnd.Text = "ALL";
}
else if (att3.Text != "" && att4.Text == "")
{
int inst = MAdapter.Insert(Session["email"].ToString(),
CheckBoxList1.Items[i].Text, txtsubjectgroup.Text, txtmessagegroup.Text, "~/att/" +
Session["uid"].ToString() + "_" + att3.Text, "", 0);
MultiView1.ActiveViewIndex = 2;
lblsnd.Text = "ALL";
}
else
{
int inst = MAdapter.Insert(Session["email"].ToString(),
CheckBoxList1.Items[i].Text, txtsubjectgroup.Text, txtmessagegroup.Text, "", "", 0);
MultiView1.ActiveViewIndex = 2;
lblsnd.Text = "ALL";
}
}

}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Label1.Text = DropDownList1.SelectedItem.Text;
}
protected void txtsubject_TextChanged(object sender, EventArgs e)
{

}
protected void btnuploadsinglegroup_Click(object sender, EventArgs e)
{
att3.Text = "";
att4.Text = "";
if (FileUpload3.HasFile != false)
{

FileUpload3.SaveAs(Server.MapPath("~/att/" +Session["uid"].ToString() +"_"+


FileUpload3.FileName.ToString()));
att3.Text = FileUpload3.FileName.ToString();
}
if (FileUpload4.HasFile != false)
{
FileUpload4.SaveAs(Server.MapPath("~/att/" + Session["uid"].ToString() + "_"
+ FileUpload4.FileName.ToString()));
att4.Text =FileUpload4.FileName.ToString();
}
FileUpload4.Visible = false;
FileUpload3.Visible = false;
btnuploadsinglegroup.Visible = false;
MultiView1.ActiveViewIndex = 1;
}
protected void LinkButton_Click(object sender, EventArgs e)
{
Software Design Document

}
protected void LinkButton2_Click(object sender, EventArgs e)
{
btnuploadsinglegroup.Visible = true;
FileUpload3.Visible = true;
FileUpload4.Visible = true;

MultiView1.ActiveViewIndex = 1;

}
protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{

}
protected void btnsend_Web_Click(object sender, EventArgs e)
{
MailMessage mail = new MailMessage();
mail.To.Add(txtemaill.Text);

mail.From = new MailAddress("demoemailserver2014@gmail.com");


mail.Subject = txtsubject0.Text;

string Body = txtmessage0.Text;


mail.Body = Body;

mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Credentials = new System.Net.NetworkCredential
("demoemailserver2014@gmail.com", "9574903871");

smtp.EnableSsl = true;
smtp.Send(mail);
txtemaill.Text = "";
txtsubject0.Text= "";
MultiView1.ActiveViewIndex = 2;
lblsnd.Text = txtemaill.Text;

}
protected void RadioButton3_CheckedChanged(object sender, EventArgs e)
{
MultiView1.ActiveViewIndex = 3;

}
protected void MultiView1_ActiveViewChanged(object sender, EventArgs e)
{

}
Software Design Document
Software Design Document

6. HUMAN INTERFACE DESIGN


6.1 Overview of User Interface
The JAVA coding is used to design the user interface, the log-in of the user is to send and
receive the data transferred from users device to the cloud storage.

Login
Sender and receiver login into the server using the login screen object.

Choose file
It is used to choose the files that are need to be uploaded.

Choose file

Submit
It is to submit the chosen files.

Submit

6.2 Screen Images

6.2.1

6.2.2 Register User

User have to register to the server because only the registered users will be authenticated
to send or receive the datas. At the time of login, server checks with the details provided
by the sender. Only after authorizing the user, server enables access.
Software Design Document

6.2.3 Registering User

Every user must register their details before login into their account to enable access. The
register dialog box consists of name, DOB, password, Email- id and mobile number,
Address, Gender and Country. Finally user register and sign in.

For example, consider a user registering to a server by providing details such as name
=haripriya, user name = abc, DOB = 12-Dec-1995, mobile = 9865972105, mail-id =
abc@gmail.com, password =Rmani, address = Chennai, Gender = Male, Country = India.
Then sign-up and log-in,so that the details are stored in the database.

6.2.4 Login user

After registering, user login into their account by providing email idand password. Server
checks the details given by user during the register which was stored in database. If the
detail furnished was correct, server enables access.
Software Design Document

User login into their account by providing mobile number and password. For Example,
user name = abc@gmail.com , pass word = Rmani. If both mobile number and password
is correct the server enables access.

6.2.5 User home page

7. APPENDIX
UML DIAGRAMS
Software Design Document

USECASE DIAGRAM:

UML Diagrams
Software Design Document

UML Diagrams
Sequence Diagram for Retrieve
Messages
Software Design Document

Você também pode gostar