• No results found

CrossTalk is a VoIP (Voice over IP) softphone which lets you call anywhere in the world at nominal rates.

N/A
N/A
Protected

Academic year: 2021

Share "CrossTalk is a VoIP (Voice over IP) softphone which lets you call anywhere in the world at nominal rates."

Copied!
15
0
0

Loading.... (view fulltext now)

Full text

(1)

1. Introduction

CrossTalk is a VoIP (Voice over IP) softphone which lets you call anywhere in the world at nominal rates.

1.1 Purpose

This document specifies the software requirements of CrossTalk v1.04 – A VoIP softphone. It describes the specifications of all components of CrossTalk.

1.2 Document Conventions

None.

1.3 Intended Audience

This document is intended for developers, project manager, and final users of the software. The initial sections give an introduction of the project, which is followed by a detailed description, features, and lastly it describes the non-functional requirements.

1.4 Scope of the Development Project

CrossTalk is a VoIP (Voice over IP) softphone exploring the fascinating world of Internet telephony.

CrossTalk lets you call anywhere in the world for free or at negligible rates. All you need is a soundcard, microphone, speakers, and a net connection to make free PC-PC calls. And, for making calls to PSTN lines you need to register with a service provider.

1.5 Definitions, Acronyms, and Abbreviations

Following abbreviations have been used throughout this document:

VoIP: Voice over IP

SIP: Session Initiation Protocol RTP: Real Time transport Protocol NAT: Network Address Translator STUN: Simple Traversal of UDP over NAT TURN: Traversal Using Relay NAT

VC++: Visual C++

(2)

1.6 References

1.6.1 VoIP:

• Articles on http://www.packetizer.com, http://www.iptel.org, http://www.voip-info.org, http://www.voipuser.org;

• SIP Foundry mailing lists;

• RFC 3261 (SIP) - http://www.ietf.org/rfc/rfc3261.txt; • SipXtapi help documents;

• Looked on Wikipedia to know about STUN, NAT, TURN, and G.711 vocoder;

1.6.2 UI and application development:

• Programming Windows with MFC by Jeff Prosise;

• Articles and code snippets on CodeGuru and CodeProject websites; • Threads and discussions done in CodeGuru VC++ forums;

1.7 Overview of Document

The document will now describe all the requirements, assumptions, and features of the software in detail.

(3)

1. Overall Description

1.1 Product Perspective

CrossTalk is a VoIP softphone; it’s a self-contained product.

1.2 Product Functions

The major features of CrossTalk are:

• Free PC-PC calling;

• Calls to PSTN lines anywhere in the world at negligible rates;

• Call conferencing (enabling you to talk in real time with many friends at once);

• Multiple call handling; • Music on hold;

• Call transfer (transfer an existing call to another number); • Call redirection (redirect all incoming calls to another number); • Support for Speex and G.711 (A-Law);

• A very attractive UI;

All of the features will be explained in detail in section 4.

1.3 User Classes and Characteristics

CrossTalk can be used by anyone with a need to cut down the phone bills. To use CrossTalk the user needs to be familiar with the basics of VoIP. CrossTalk is very similar to any other softphone in market and users familiar with PhoneLite, Xlite, or any other softphone will pick it up easily.

1.4 Operating Environment

CrossTalk runs on Win XP and above and no special software are needed for it. The MFC 7.1 DLL’s will be linked statically into the application thus eliminating the need for them to be installed on the target machine. All other needed DLL’s are shipped with the product.

On the hardware side CrossTalk needs a microphone, speakers and soundcard. A broadband Internet connection is recommended for good voice quality.

1.5 Design and Implementation Constraints

NA

1.6 User Documentation

The software is accompanied with a HTML help file (.chm), which explains all the features and settings of the product.

(4)

1.7 Assumptions and Dependencies

CrossTalk is based on sipXtapi an open source SIP stack from SIP Foundry. Some features of the product are dependent on the development status of sipXtapi. We intend to donate our work as an example for building a softphone based on sipXtapi.

1.8 Overview of Data Requirements

The user needs to have an account with VoIP service providers (like voipuser.org, broadvoice.com, iptel.org, freeworlddialup.com, etc) and these providers will provide them with the settings for Realm, Proxy, and other values needed to configure CrossTalk.

CrossTalk thereby stores its settings in the registry.

1.9 General

Constraints,

Assumptions,

Dependencies,

Guidelines

CrossTalk needs speakers and microphone. To make calls across Internet you need to have an account with VoIP service providers. To use CrossTalk on a LAN you need to have OnDO Brekeke SIP Server, or a PBX like Asterisk installed on the server machine.

1.10 User View of Product Use

CrossTalk will have a user interface similar to a standard softphone. It will have buttons for dialing numbers, making and ending calls, and hold/unhold.

The settings will be entered via the settings dialog box and will be stored in the registry.

Somehow all softphone are supposed to look very good, have really innovative interfaces. So, CrossTalk will also have a very attractive interface. The complete application will be skinned to give it an appealing look.

(5)

The diagram below shows the basic structure of the application.

Before making or receiving a call the user needs to configure CrossTalk by entering the settings. The application then tries to register itself with the specified server. Once registered the user can enter the number or SIP URI in the Address Bar and click on the call button, CrossTalk then tries to call the specified number.

(6)

2. External Interface Requirements

2.1 User Interfaces

The main screen of CrossTalk will be like as shown below.

• The user can configure CrossTalk via the settings dialog.

• The application will minimize into the system tray thus won’t obstruct the users view. When a call comes in then it will automatically restore up. • The list control displays the active calls. It shows the parties involved in

the call, duration of the call, and the status of the call (Connected, Hold, etc).

• The availability of buttons is explained in the following points:

o If the phone is not registered with the VoIP service provider then the button to make calls is disabled.

o The enabling and disabling of buttons to accept/reject, hold/unhold, and transfer calls depends on the selection in the call list control. o If an active call is selected then the buttons to put it on hold,

transfer, and end the call will be available to the user.

o If a call is coming then the button to accept the call will be active and rest be disabled.

o A call on hold can’t be terminated or transferred before taking it off hold, so the related buttons are disabled.

(7)

• The status bar displays messages, which indicate the state of event (whether CrossTalk is registered, trying to register, disconnected, etc).

2.2 Hardware Interfaces

• CrossTalk needs microphones and speakers on the hardware side. The software will automatically check for the installed drivers and start using them.

• Screen resolution of at least 800 x 600 is recommended. Higher resolution won’t be a problem.

2.3 Software Interfaces

CrossTalk is a VoIP softphone for Windows. The targeted operating systems are Win XP and above. It will be developed in Visual C++ 7.1 using the MFC class library. Classes for owner drawn controls will be taken from CodeGuru and CodeProject websites.

CrossTalk will be based on sipXtapi an open source SIP stack from SIP Foundry. There will be support for Speex (a vocoder) as well.

The diagram below shows the sipXtapi events for an incoming and outgoing call respectively.

(8)

So basically CrossTalk functions by handling all these events.

2.4 Communication Interfaces

CrossTalk is based on SIP. SIP comes from IETF, RFC 3261 - http://www.ietf.org/rfc/rfc3261.txt. Being an open standard protocol anyone can use it (unlike IETF’s H.323) and thus CrossTalk is interoperable with a number of SIP based softphones.

In vocoders CrossTalk gives the user the choice of G.711 (A-Law) and Speex. G.711 takes a bandwidth of 64kbps and Speex around 13kbps. Plans are to include GSM and other popular vocoders as well.

There will be support for STUN and TURN in CrossTalk. And, all NAT issues will be taken care off.

(9)

3. System Features

3.1

Making calls to PC and PSTN lines

3.1.1 Description and Priority

CrossTalk lets people talk to others for free or for nominal costs. The costs are basically for Internet usage and a VoIP service provider for calling to PSTN lines (for PC – PC calling you can make a free account with any VoIP service provider). Making calls is a very high priority feature, all issues of NAT should be resolved to achieve smooth operation for the end user.

3.1.2 Validity Checks

• The application must be registered with a VoIP service provider; • The user should enter a valid number;

3.1.3 Sequencing Information

• User enters a number and clicks on call button; • CrossTalk then tries calling the number;

• If the user is available then her phone rings;

• The user picks the phone, now both parties are connected and flow of audio starts;

3.1.4 Error Handling/Response to Abnormal Situations

If any of the above validations/sequencing flow doesn’t hold true, appropriate error message will be prompted to the user for doing the needful.

3.2

Call Conferencing

3.2.1 Description and Priority

CrossTalk lets multiple parties talk to one another at once via conferencing. Conferencing is a high priority feature and should work smoothly.

3.2.2 Validity Checks

• The application must be registered with a VoIP service provider; • Conferencing mode should be enabled;

3.2.3 Sequencing Information

• When the conferencing mode is enabled then all incoming and outgoing calls automatically become part of the conference;

• The parties in conference can disconnect a call just as they would in a normal scenario;

(10)

3.2.4 Error Handling/Response to Abnormal Situations

If any of the above validations/sequencing flow doesn’t hold true, appropriate error message will be prompted to the user for doing the needful.

3.3

Multiple call handling

3.3.1 Description and Priority

In CrossTalk when you have an active call and another call comes in then the incoming call is not rejected, instead it’s put on a waiting status.

Multiple call handling is a high priority feature of CrossTalk. 3.3.2 Validity Checks

• The application must be registered with a VoIP service provider; 3.3.3 Sequencing Information

• There is already an active call and another call comes in;

• The user is notified of this incoming call and the incoming call is put on a waiting state;

• The user can reject, put on waiting, or accept the incoming call;

• If the user accepts the incoming call then the previous active call automatically goes on hold;

• The user can this way easily flip between the calls; 3.3.4 Error Handling/Response to Abnormal Situations

If any of the above validations/sequencing flow doesn’t hold true, appropriate error message will be prompted to the user for doing the needful.

3.4

Music on hold

3.4.1 Description and Priority

CrossTalk lets the user place an active call on hold, and when on hold some music will be played to the remote party. The user can specify what media file to be played as hold music via the settings dialog.

Music on hold is a low priority feature of CrossTalk. 3.4.2 Validity Checks

• There should be an active call to be placed on hold; 3.4.3 Sequencing Information

• The user clicks on the hold button and the call is placed on hold; • The hold button for that call goes in pressed state;

• Click on the hold button to take it off hold; • The button then goes back into the normal state;

(11)

3.4.4 Error Handling/Response to Abnormal Situations

If any of the above validations/sequencing flow doesn’t hold true, appropriate error message will be prompted to the user for doing the needful.

3.5

Call Transfer

3.5.1 Description and Priority

CrossTalk lets the user transfer an active call to some other number. This is another high priority feature.

3.5.2 Validity Checks

• There should be an active call which can be transferred; • The user should give a valid address to transfer the call; 3.5.3 Sequencing Information

• The user clicks on the transfer button and is presented with a dialog to enter the address to which the call is to be transferred;

• The party being transferred is placed on hold and the user goes into transferring state;

• The party to which the call is being transferred rings;

• The call is accepted by the remote party and the call at the user end gets disconnected while the party being transferred is taken off hold;

3.5.4 Error Handling/Response to Abnormal Situations

If any of the above validations/sequencing flow doesn’t hold true, appropriate error message will be prompted to the user for doing the needful.

3.6

Call Redirection

3.6.1 Description and Priority

When a call is coming it can automatically be redirected to any other number. For instance the user may want to transfer all incoming calls to her secretary.

This is a low priority feature. 3.6.2 Validity Checks

• The user should give a valid redirection number; 3.6.3 Sequencing Information

• A call comes in and it’s automatically redirected to the specified number; • The phone at the redirected address rings;

• The call is accepted, then the calling party and the redirected address get into connected state;

(12)

3.6.4 Error Handling/Response to Abnormal Situations

If any of the above validations/sequencing flow doesn’t hold true, appropriate error message will be prompted to the user for doing the needful.

3.7

Vocoders

3.7.1 Description and Priority

CrossTalk lets the user choose between G.711 (A-Law) and Speex as vocoders. There are plans to include GSM as well to the list of supported codecs. Depending on the bandwidth the user can choose a particular vocoder.

This is another high priority feature. 3.7.2 Validity Checks

NA

3.7.3 Sequencing Information

• Choose the vocoder to be used for all calls from the settings list box; 3.7.4 Error Handling/Response to Abnormal Situations

(13)

4. Other Nonfunctional Requirements

4.1 Performance Requirements

A high speed Internet is recommended to have good quality of voice and to avoid it’s cracking.

4.2 Safety Requirements

NA

4.3 Security Requirements

NA

4.4 Software Quality Attributes

CrossTalk is designed to be an easy to use and good-looking VoIP softphone. It will be tested extensively for making calls across Internet and all NAT issues will be taken care of. Also, all features of the software (calling, call transfer, hold, etc) will be tested extensively.

4.5 Business Rules

NA

4.6 Special User Requirements

The familiarity of the user with VoIP concepts and terminology will greatly ease the use of the software.

4.6.1 Backup and Recovery NA 4.6.2 Data Migration NA 4.6.3 Data Retention NA 4.6.4 User Training

The software will be accompanied with a help file (compiled HTML help) explaining the features and configuration of the software.

(14)

4.6.5 Installation

(15)

5. Other Requirements

None.

References

Related documents

Most companies recruit for full-time and internship positions, but some indicate Co-Op as a recruiting priority, while not attending Professional Practice

cell type, page size, and block size, on system-level metrics such as performance, cost, and power consumption in various applications with different characteristics, e.g..

In the previous sections, we dis- cuss the expectation that a neural network exploiting the fractional convolution should perform slightly worse than a pure binary (1-bit weights

Customer to pay any amount within ten (10) days after the amount is due and payable, b) abuse of the System or the equipment, c) dissolution, termination, discontinuance,

Call Transfer between 3 sites PSTN VoIP Gateway X Originating Call Site Terminating Call Site 1 Terminating Call Site 2 •App logic •Call Control •Voice dialog •App logic

Facet joint arthropathy - osteophyte formation and distortion of joint alignment MRI Axial T2 L3-L4 disk Psoas Paraspinal muscles Psoas Paraspinal NP AF MRI Axial T2 PACS, BIDMC

The high somatization group had a pre-intervention mean distress rating of 6.46 and a post-intervention mean distress rating of 4.86, which is a 1.60 point reduction in