ECE355 Project SIP Applications Tiuley Alguindigue [email protected].

26
ECE355 Project SIP Applications Tiuley Alguindigue [email protected] o.ca

Transcript of ECE355 Project SIP Applications Tiuley Alguindigue [email protected].

ECE355 ProjectSIP Applications

Tiuley Alguindigue

[email protected]

Overview

• SIP COMMUNICATOR

• JAIN-SIP-PRESENCE-PROXY

• Eclipse Projects Setup

• Basic CVS commands

• Running Apps

• Making a SIP Phone Call

Taken from http://www.iptel.org/sip/siptutorial.pdf

Taken from http://www.iptel.org/sip/siptutorial.pdf

SIP COMMUNICATOR

• A software-based IP phone that runs on a PC audio/video.

• You can use SIP COMMUNICATOR to place VoIP phone calls between two PCs or between a PC and an IP Phone(such as the one in the E2-2363 Lab)

• A SIP User Agent in Java.– Can act as a client: creates a SIP request and sends it.– Also as a server: generates a response to a SIP request.

• Based on JAIN SIP libraries and JMF(More info on the architecture at Emil Ivov’s project site http://www.emcho.com/)

• Project info and download at https://sip-communicator.dev.java.net/

• ECE355 project will be based in the alpha version for Windows (sip-communicator-windows.zip).

SIP COMMUNICATOR

JAIN-SIP-PRESENCE-PROXY

• SIP Proxy, SIP Registar, and SIP Presence server.

– SIP proxy servers help route requests to the user's current location, authenticate and authorize users for services, implement provider call-routing policies, and provide features to users.

– SIP Registar servers allows users to upload their current locations for use by proxy servers.

• Based on JAIN SIP libraries

• Project info and download at http://snad.ncsl.nist.gov/proj/iptel/

Eclipse Projects SetupCVS Repositories in Group Accounts

• You create your projects in Eclipse importing the source code from your group account in UNIX.

• There is a CVS repository in each group account called sip-communicator.cvs

• In this CVS Repository, there are projects that contain the base source code for the ECE355 project:– Sip-Comunicator-Fall05– sipproxy

Eclipse Projects Setup

• For each project SIP COMMUNICATOR and JAIN-SIP-PRESENCE-PROXY, you will need to:

– Checkout code from group CVS repository– Set up Run Configuration parameters in

Eclipse– May need to change configuration settings for

the project in project .xml files.

Eclipse Projects Setup Checking Out Project from CVS

• File|New|Project• In Project Wizard select CVS|Checkout Project

from CVS• Next, select option “Create a new repository

location”• Repository path is

/home/e355gNN/sip-communicator.cvs

NN : Group Number

• User ID, and Password for UNIX Accounts.

Eclipse Projects Setup Checking Out Project from CVS

Eclipse Projects Setup Checking Out Project from CVS

Eclipse Projects Setup Checking Out Project from CVS

Eclipse Projects Setup Checking Out Project from CVS

Eclipse Projects Setup Creating Run Configuration

• Run|Run..

• New Configuration• Project Name• Main Class• Arguments (Program or Java VM)

SIP COMMUNICATORCreating Run Configuration

SIP COMMUNICATOR Creating Run Configuration

SIP PROXY Creating Run Configuration

SIP PROXY Creating Run Configuration

Running AppsSIP COMMUNICATOR

• SIP COMMUNICATOR reads execution parameters from sip-communicator.xml file

• Parameters in this file are currently set so that SIP COMMUNICATOR will use the SIP Services provided by JAIN-SIP-PRESENCE-PROXY running locally (127.0.0.1).

<sip> <PUBLIC_ADDRESS value="talguind"/> <TRANSPORT value=""/> <REGISTRAR_ADDRESS value="127.0.0.1:4000"/> <USER_NAME value="tiuley"/> <STACK_PATH value="gov.nist"/> <PREFERRED_LOCAL_PORT value=""/> <DISPLAY_NAME value="Tiuley Alguindigue"/> <REGISTRAR_TRANSPORT value="UDP"/> <REGISTRATIONS_EXPIRATION value="3600"/> <REGISTRAR_PORT value="5060"/>

<DEFAULT_DOMAIN_NAME value="127.0.0.1:4000"/> <DEFAULT_AUTHENTICATION_REALM value="127.0.0.1:4000"/> <WAIT_UNREGISTGRATION_FOR value="1100"/> <SAME_USER_EVERYWHERE value="true"/> …..</sip>

JAIN-SIP-PRESENCE-PROXYIP Address and Port

SIP COMMUNICATOR Port

Running AppsSIP COMMUNICATOR

• Parameters in sip-communicator.xml file also indicate the ports used for audio/video communication

<sip>

<media>

<PREFERRED_AUDIO_ENCODING value="9"/> <PREFERRED_VIDEO_ENCODING value="26"/> <MEDIA_SOURCE value=""/> <MEDIA_BUFFER_LENGTH value="100"/> <IP_ADDRESS value=""/> <AUDIO_PORT value="22224"/> <VIDEO_PORT value="22222"/> </media> …..</sip>

• More about SIP COMMUNICATOR parameters at https://sip-communicator.dev.java.net/instructions.html

Default Values areAUDIO 22224VIDEO 22222

• SIP PROXY uses reads parameters from configuration.xml file

• Parameters in this file are currently set so the SIP proxy runs in the same machine using Port 4000.

<CONFIGURATION> <SIP_STACK stack_name="nist-proxy"stack_IP_address="127.0.0.1"router_path="gov.nist.sip.proxy.router.ProxyRouter"<?xml version='1.0' encoding='us-ascii'?>max_connections="20"thread_pool_size="20" >

<LISTENING_POINT port="4000" transport="udp" /><LISTENING_POINT port="4000" transport="tcp" /><DOMAIN domain="there.com" /><DOMAIN domain="pingtel.com" /><DOMAIN domain="ubi.com" /><DOMAIN domain="hotmail.com" /><DOMAIN domain="nist.gov" /><DOMAIN domain="nitrogen.epact.se" /></SIP_STACK>

Local Address

Port

Running AppsJAIN-SIP-PRESENCE-PROXY

Making a SIP Phone Call Ports used for SIP

SIP COM 1 SIP COM 2

PROXY

5060 5060

4000

Making a SIP Phone Call All ports

SIP COM 1 SIP COM 2

PROXY

5060 5060

4000

22224(Audio)

22222(Video)

Making a SIP Phone Call

• For testing, you can run the two instances of SIP Communicator in one machine. You will need to change the SIP port, Audio and Video ports in the sip-communicator.xml files for the second instance.

References

• SIP COMMUNICATOR:https://sip-communicator.dev.java.net/

http://www.emcho.com/

• PROXY:http://snad.ncsl.nist.gov/proj/iptel/

• SIP:http://rfc.net/rfc3261.html