260 likes | 378 Views
ECE355 Project SIP Applications. Tiuley Alguindigue talguind@ecemail.uwaterloo.ca. 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.
E N D
ECE355 ProjectSIP Applications Tiuley Alguindigue talguind@ecemail.uwaterloo.ca
Overview • SIP COMMUNICATOR • JAIN-SIP-PRESENCE-PROXY • Eclipse Projects Setup • Basic CVS commands • Running Apps • Making a SIP Phone Call
SIP COMMUNICATOR • A software-based IP phone that runs on a PCaudio/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).
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 Creating Run Configuration • Run|Run.. • New Configuration • Project Name • Main Class • Arguments (Program or Java VM)
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-PROXY IP 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 are AUDIO 22224 VIDEO 22222
Running AppsJAIN-SIP-PRESENCE-PROXY • 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
Making a SIP Phone CallPorts used for SIP 4000 PROXY 5060 5060 SIP COM 1 SIP COM 2
Making a SIP Phone CallAll ports 4000 PROXY 5060 5060 22222(Video) SIP COM 1 SIP COM 2 22224(Audio)
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