Sample SIP applications .fr

Jan 18, 2012 - primary key (sipaddress, contactaddress). ); ... The res-jndi-name element must refer to a data source configured in rhino-config.xml .... Answer the call on user agent B. This sends a SIP 200 OK response back to the proxy. 7.
627KB taille 85 téléchargements 314 vues
Sample SIP applications for Rhino 2.3

18 JANUARY 2012

SAMPLE SIP APPLICATIONS | FOR RHINO 2.3

JANUARY 18, 2012

Copyright and Disclaimers Copyright © 2012 OpenCloud Limited. All rights reserved. OpenCloud™ is a trademark of OpenCloud Limited. Edinburgh House, St John's Innovation Park, Cowley Road, Cambridge CB4 0DS, United Kingdom Documentation is provided "as is" and all express or implied conditions, representations and warranties, including any implied warranty of merchantability, fitness for a particular purpose or non infringement, are disclaimed, except to the extent that such disclaimers are held to be legally invalid. The information in this document is confidential and meant for use only by the intended recipient and only in connection with and subject to the terms of its contractual relationship with OpenCloud. Acceptance and/or use of any of the information contained in this document indicates agreement not to disclose or otherwise make available to any person who is not an employee of the intended recipient, or to any other entity, any of the information contained herein. This documentation has the sole purpose of providing information regarding OpenCloud software products and/or services and shall be disclosed only to those individuals who have a need to know. Any entity or person with access to this information shall be subject to this confidentiality statement. No part of this publication may be reproduced or transmitted in any form or by any means for any purpose without the express written permission of OpenCloud.

Strictly Confidential The information in this document is confidential and only available under OpenCloud’s Nondisclosure Agreement (NDA). It must not be distributed or disclosed to any 3rd party. OpenCloud reserves the right to change the Product Portfolio information without notice or consultation. No part of this publication may be reproduced or transmitted in any form or by any means for any purpose.

© 2012 OpenCloud. All right reserved.

ii

SAMPLE SIP APPLICATIONS | FOR RHINO 2.3

JANUARY 18, 2012

Contents Sample SIP Applications

1 About the Sample Applications.....................................2 2 Quick Start........................................................................4 3 Manual Installation..........................................................5 1 Configure the SIP RA.......................................................................................6 2 Deploy the SIP RA............................................................................................9 3 Select and Deploy a Location Service.........................................................10 4 Deploy the Sample SIP Services..................................................................12

4 Using the Services.........................................................13 1 Configure User Agents..................................................................................14 2 Use the Registrar Service.............................................................................16 3 Use the Proxy Service...................................................................................17 4 Use the Presence Service.............................................................................19 5 Enable Tracing for SIP Services...................................................................22

© 2012 OpenCloud. All right reserved.

iii

SAMPLE SIP APPLICATIONS | FOR RHINO 2.3

JANUARY 18, 2012

OpenCloud’s Rhino is a real-time application server for agile development, deployment and efficient management of person-to-person communication services across current and next generation technology. Rhino is a high performance, genuinely carrier-grade service execution environment for realizing a Next Generation Service Delivery Platform (NG-SDP). It uses commercial-off-theshelf (COTS) hardware and software to deliver service layer agility to TDM and IP-based networks at a radically lower price-point than traditional solutions from network equipment providers. OpenCloud headquarters are in Cambridge, United Kingdom. R&D, Engineering and Support are located in New Zealand, Spain and there are OpenCloud branch offices in the United States, Singapore and Japan.

For more information go to:

www.opencloud.com http://developer.opencloud.com

© 2012 OpenCloud. All right reserved.

iv

Sample SIP Applications January 18, 2012

Sample SIP Applications This document describes the sample SIP applications that come with Rhino and how to prepare, deploy, configure and run them.

Topics This document includes the following topics: • About the Sample Applications — descriptions and list of files and directories containing the sample resource adaptor, services and SBBs included with the Rhino SLEE • Quick Start — brief instructions for setting up the environment, running the build script and configuring the services • Manual Installation — more detailed instructions for configuring and deploying the SIP RA installation; specifying a location service; installing the Registrar, Proxy and Presence services and modifying service source code. • Using the Services — how to configure and use a SIP user agent with the example services, and enable tracing SIP services.

Audience and Scope Intended Audience The SIP examples are for SLEE developers and administrators who want to: • quickly get demonstration applications running in Rhino SLEE • become familiar with SBB programming and deployment practices. The instructions in this section assume some basic familiarity with the SIP protocol and concepts.

Scope The examples illustrate how some typical SIP services can be implemented using a SLEE. They are not intended for production use. The examples run on all supported Rhino SLEE platforms, and can be used with most SIP user agents. See Using the Services for information about SIP user agents that have been tested with these examples.

developer.opencloud.com

Commercial in Confidence

1

Sample SIP Applications January 18, 2012

1 About the Sample Applications

Rhino's SIP resource adaptor (RA), services and components The Rhino SLEE comes with a SIP RA and sample SIP applications (services and components) that use Session Initiation Protocol – RFC3261 (SIP). As well as implementing some basic SIP services, these examples also demonstrate many SLEE features, such as: • • • • •

deploying and undeploying components such as resource adaptors and services service building blocks (SBBs) and container managed persistence (CMP) state child SBBs and SBB local interfaces shared state using null activities and activity-context attributes storing subscriber data using profiles.

Below are descriptions of the examples and related files and directories.

Resource adaptor, service and SBB examples The example SIP components included with the Rhino SLEE are:

Component

What it does

SIP resource adaptor

Provides the interface between SIP user agents and the SLEE. The SIP RA is responsible for sending and receiving SIP messages over the network. The SIP RA processes messages from the network and converts them to SLEE activities and events, for use by SLEE applications. The SIP RA must be installed in the SLEE before the other SIP applications can be used.

SIP Registrar service

An implementation of a SIP registrar as defined in RFC3261 section 10. This service handles SIP REGISTER requests, which SIP user agents send to register a binding from a user's public address to the physical network address of their user agent. The registrar service updates records in a location service, which other SIP applications use. The registrar service is implemented by a single SBB component, which uses a location service child SBB to query and update location service records.

SIP Stateful Proxy service

Implements a stateful proxy as described in RFC3261 section 16. This proxy is responsible for routing requests to their correct destination, as given by contact addresses that have been registered with the location service. The proxy service is implemented by a single SBB component, which uses a location service child SBB to query location service records.

SIP Find-me Follow-me service

Provides an intelligent SIP proxy service, which lets a user profile specify alternative SIP addresses to contact if their primary contact address is not available.

SIP Back-toback User-Agent service

An example of a back-to-back user agent (B2BUA). Behaves like the proxy service, but maintains SIP dialog state (call state) using dialog activities.

AC-naming, Profile & JDBC Location-Service SBBs

Provide alternate implementations of a SIP location service, which the proxy and registrar services use. The AC-naming location service uses the SLEE's ActivityContext Naming Facility to store location information. The profile location service uses SLEE profiles, and the JDBC location service stores location information in an external database.

SIP Presence service

An implementation of a SIP Presence service, as described in RFC3856, RFC3863 and RFC3903. Allows a user to subscribe to the presence information of another user, and to update his or her own presence information for other users to see.

developer.opencloud.com

Commercial in Confidence

2

Sample SIP Applications January 18, 2012

This enables the "buddy list" feature of many SIP clients, which in turn may also enable their instant-messaging features.

SIP example files and directories The base directory for the SIP examples is $RHINO_HOME/rhino-connectivity/sip-2.3.0.0. It contains:

File or directory

Description

build.xml

Ant build script for SIP sample applications. Manages building and deployment of the examples.

build.properties

Properties for the Ant build script.

sip.properties

Properties for the SIP services. When the Ant build script runs, it substitutes these properties into the application deployment descriptors.

README.txt

Text file containing "quick start" instructions.

CHANGELOG.txt

Text file describing recent changes to the SIP RA and examples.

docs/

Contains RA and API documentation.

src/

Contains source code for sample SIP services.

lib/

Contains SIP resource adaptor and RA-type jars, and required libraries.

classes/

Directory where the build script writes compiled class files.

jars/

Directory where the build script writes jar files that are ready for deployment.

developer.opencloud.com

Commercial in Confidence

3

Sample SIP Applications January 18, 2012

2 Quick Start

Getting the SIP examples up and running ASAP To get the default SIP examples up and running straight away, follow the quick start instructions here. For more detailed information on building, installing and configuring the examples, see Manual Installation.

Proxy, Registrar and Presence services "out of the box" The default sample SIP services deployed with Rhino are: the Proxy, Registrar and Presence services. Together, these services provide basic SIP-server functionality, and are intended to work "out of the box" with minimal configuration. Below are instructions on configuring and deploying the sample services. Files referred to in the instructions are in the directory $RHINO_HOME/rhino-connectivity/ sip-2.3.1.0.

Configure sample SIP services Before deploying the examples, you must first change the default configuration of the Proxy service to suit your environment. It is configured in the sip.properties file. Edit this file, changing the PROXY_DOMAINS property as follows: # Proxy SBB configuration # Add domains that the proxy is authoritative for PROXY_DOMAINS=opencloud.com,opencloud.co.nz

The default domains opencloud.com and opencloud.co.nz are just examples — change this property to use the correct domains for your environment. The PROXY_DOMAINS property contains the domains that the proxy SBB considers to be local. This means that if the proxy SBB receives a request addressed to a user in one of these domains (such as sip:[email protected]), it will use the location service to find the registered contact address of that user. If the user cannot be found, the Proxy service will return an error response. If the Proxy service receives a request addressed to a user in an unknown domain, it will forward the request according to normal SIP routing rules. On a Windows installation, with user agents on separate PCs, the Windows firewall may block SIP messages sent over the network. You may need to re-configure the firewall to ensure that Rhino can receive SIP messages.

Deploy sample SIP services By default, the Ant build script build.xml builds and deploys the Registrar, Proxy and Presence sample services with the components they need (including the SIP resource adaptor and location service), into Rhino. To deploy the examples, run Ant with the deployexamples target: $ ant deployexamples

If you don't have Ant installed, you can use a copy that is bundled with Rhino: run the deployexamples.sh script (or deployexamples.bat on Windows). Once you have deployed the sample Registrar, Proxy and Presence services, see Using the Services for instructions on how to test them with your SIP user agents.

developer.opencloud.com

Commercial in Confidence

4

Sample SIP Applications January 18, 2012

3 Manual Installation

Detailed configuration and deployment instructions This page explains in more detail how to configure and deploy the SIP resource adaptor and examples services that come with Rhino. If you just want to get something up and running quickly, see Quick Start.

Configuring and deploying the SIP resource adaptor and services To manually install and configure the example SIP services: • Configure and deploy the SIP resource adaptor (RA). • Optionally specify a location service. • Deploy one or more of the sample SIP services. (Then you can use the sample SIP services with SIP user agents.) Modifying service source code Please experiment with the examples, and try implementing new features. The source code for all the example services can be found in src/com/opencloud/slee/services. If you change the source code of any of the examples, you can easily recompile and deploy them using the Ant targets in build.xml. If a service is already installed, remove it using the relevant undeploy Ant target (such as undeployregistrar), then rebuild and redeploy using the relevant deploy target (use ant -p to list the possible targets). All the deploy targets are written so that they recompile, rebuild jars, and deploy any dependencies that are not already installed. It pays to familiarise yourself with Ant and the deploy/undeploy targets in build.xml. This will make it easier to build, deploy and test your own projects.

developer.opencloud.com

Commercial in Confidence

5

Sample SIP Applications January 18, 2012

1 Configure the SIP RA

Default configuration properties The default configuration of the SIP resource adaptor (RA) should be suitable for most environments. However, you can easily reconfigure it to suit a particular requirement, such as using a different IP address or port number. Each resource adaptor defines a default set of configuration properties that determine its behaviour. When an administrator creates a resource adaptor entity (an "instance" of the RA), they can specify configuration property values other than the defaults. Below are instructions for editing SIP RA configuration properties and a full listing of Rhino's default SIP RA configuration properties.

Editing SIP RA configuration properties The Ant build script build.xml creates the SIP resource adaptor entity with the following properties (defined in the build.properties file): sip.ra.properties=IPAddress=AUTO,Transports="udp,tcp",Port=5060,SecurePort=5061

To change these properties and specify others, edit the sip.ra.properties property. For example, to enable the SIP RA's replicated-dialog support, you would add that property as follows (and then deploy the SIP RA) : sip.ra.properties=IPAddress=AUTO,Transports="udp,tcp",Port=5060,SecurePort=5061,ReplicatedDialogSupport=true

The Ant build.xml script will pass these properties to the createRAEntity management command.

SIP RA configuration properties The complete set of configuration properties supported by the SIP RA are as follows.

Property

Type

Default

Description

IPAddress

java.lang.String

AUTO

The IP address the SIP RA will listen on. The value AUTO means the RA will listen on all interfaces and use the host's primary IP address in outgoing headers. On Unix machines, the address returned is the IP address associated with the machine's "hostname".

VirtualAddresses

java.lang.String

None

Hostnames and/or IP addresses that are local to the cluster. Required when a load balancer is providing a virtual IP address (VIP) for the Rhino cluster.

Port

java.lang.Integer

5060

Port used for unencrypted SIP transports (UDP, TCP).

SecurePort

java.lang.Integer

5061

Port used for encrypted SIP transports (TLS).

developer.opencloud.com

Commercial in Confidence

6

Sample SIP Applications January 18, 2012

Transports

java.lang.String

UDP,TCP

Supported SIP transports: comma-separated list containing one or more of UDP, TCP or TLS.

OffsetPorts

java.lang.Boolean

False

Required when running multiple cluster nodes on the same host. If true, the RA will automatically add an offset to the SIP port number, so that each SIP RA instance gets a different port number. See PortOffset below.

PortOffset

java.lang.Integer

101

Required when running multiple cluster nodes on the same host. If OffsetPorts is enabled, the SIP RA's port will be calculated as Port + (NodeID - PortOffset). Typically the PortOffset value used is the lowest NodeID in the cluster. So if Port is 5060, and the lowest NodeID is 101, and the cluster has nodes 101, 102 and 103, the SIP ports used will be 5060, 5061 and 5062 respectively.

Automatic100TryingSupport

java.lang.Boolean

True

If enabled, the RA will automatically generate 100 Trying responses for INVITEs.

WorkerPoolSize

java.lang.Integer

4

Number of worker threads the SIP RA will use to process incoming messages. If 0, the RA will receive and process messages in the same I/O thread. Otherwise the pool will be used so that incoming messages can be processed concurrently.

WorkerQueueSize

java.lang.Integer

50

Queue size for the worker thread pool. If the queue fills, then the RA will drop packets (UDP) or temporarily suspend reads (TCP).

TCPIOThreads

java.lang.Integer

1

Number of threads for handling TCP I/O. TCP connections will be divided between the I/O threads.

ReplicatedDialogSupport

java.lang.Boolean

false

Enables support for replicating SIP dialog state, so that dialog activities can continue on other cluster nodes after a node failure. Requires a clustered, production Rhino installation.

developer.opencloud.com

Commercial in Confidence

7

Sample SIP Applications January 18, 2012

ExtensionMethods

java.lang.String

None

SIP methods that can initiate dialogs, in addition to the standard INVITE and SUBSCRIBE methods.

Keystore

java.lang.String

sip-rassl.keystore

The keystore used to store the public certificates.

KeystoreType

java.lang.String

jks

The encryption type of the keystore.

KeystorePassword

java.lang.String

None

The keystore password.

Truststore

java.lang.String

sip-rassl.truststore

The keystore containing a private certificate.

TruststoreType

java.lang.String

jks

The encryption type of the trust keystore.

TruststorePassword

java.lang.String

None

The trust keystore password.

CRLURL

java.lang.String

None

The certificate-revocation list location.

CRLRefreshTimeout

java.lang.Integer

86400

The certificate-revocation list refresh timeout (seconds).

CRLLoadFailureRetryTimeout

java.lang.Integer

900

The certificate-revocation list load-failure timeout (seconds).

CRLNoCRLLoadFailureRetryTimeout

java.lang.Integer

60

The certificate-revocation list load-failure retry timeout (seconds).

ClientAuthentication

java.lang.String

NEED

Indicates that clients need to be authenticated against certificates in the keystore.

EnabledCipherSuites

java.lang.String

None

Restrict the SSL cipher suites used by the RA to those set in this property. Valid values are a comma separated list of cipher suites installed in the JVM running Rhino.

See Resource Adaptor Entities in the Rhino Administration and Deployment Guide for more information on creating and managing resource adaptor entities.

developer.opencloud.com

Commercial in Confidence

8

Sample SIP Applications January 18, 2012

2 Deploy the SIP RA

Run build.xml with targets to deploy or undeploy the SIP RA After configuring default properties, you can deploy the SIP resource adaptor into the SLEE. The Ant build script build.xml contains build targets for deploying and undeploying the SIP RA, as follows.

Deploy the SIP RA To deploy the SIP RA, first ensure the SLEE is running, and then run build.xml with the target deploysipra. For example: $ ant deploysipra

This script installs the SIP RA deployable unit and required libraries in the SLEE, and creates and activates the resource adaptor entity.

Undeploy the SIP RA To undeploy the SIP RA, run build.xml with the target undeploysipra. For example: $ ant undeploysipra

This script deactivates and removes the resource adaptor entity and uninstalls the SIP RA deployable unit.

developer.opencloud.com

Commercial in Confidence

9

Sample SIP Applications January 18, 2012

3 Select and Deploy a Location Service

What is a location service? The sample SIP Registrar, Proxy and Presence services require a location service, as defined by RFC3261 section 10. The location service stores SIP registrations, mapping a user's public SIP address to actual contact addresses. If you don't care how this is done, you can skip this step and use the default location service. Below are instructions for selecting a location service, specifying an external database for the JDBC location service and deploying the selected location service,

Selecting Activity Context Naming, JDBC or Profile location services Rhino's SIP examples include three implementations of the location-service interface, which demonstrate different SLEE features: • Activity Context Naming (Default) — stores registration information in memory using null activities, looked up using the SLEE Activity Context Naming Facility. This is deployed by default. • JDBC — stores registrations in an external database. • Profile — stores registrations in a writeable SLEE 1.1 profile table. Many other implementations are possible, for example LDAP. The build.properties file specifies the type of location service that build.xml deploys. To select one of the three available implementations, edit build.properties, changing the locationservice property: # The locationservice property should be set to one of "ac", "profile" or "jdbc". # If undefined or a different value, defaults to "ac". locationservice=ac

Using an external database for JDBC If you select the JDBC location service, you'll need to select a database other than the default, which uses Rhino's embedded database (Apache Derby in the SDK and PostgreSQL in the production versions of Rhino). To select an external database, you need to: 1 Create a table with the correct schema for the SIP Registrar The SQL script fragment below demonstrates how to create the table. This works on PostgreSQL and may need to be adjusted to suit your particular database server. create table registrations ( sipaddress varchar(80) not null, contactaddress varchar(80) not null, expiry bigint, qvalue integer, cseq integer, callid varchar(80), flowid varchar(80), primary key (sipaddress, contactaddress) ); COMMENT ON TABLE registrations IS 'SIP Location Service registrations';

2 Configure the JDBC data source in Rhino Please refer to External Databases in the Rhino Administration and Deployment Guide for instructions on setting up an external data source.

developer.opencloud.com

Commercial in Confidence

10

Sample SIP Applications January 18, 2012

3 Edit the JDBC location service's deployment descriptor to refer to the new data source Edit the extension deployment descriptor src/com/opencloud/slee/services/sip/location/jdbc/ META-INF/oc-sbb-jar.xml. The data source is specified in the resource-ref element: jdbc/SipRegistry javax.sql.DataSource Container Shareable jdbc/JDBCResource

The res-jndi-name element must refer to a data source configured in rhino-config.xml (see External Databases).

Deploy the location service Normally you do not need to deploy the location service explicitly, since deploying the Registrar, Proxy or Presence services will automatically deploy the location service as a dependency. If necessary you can deploy a location service separately using the Ant target deploylocationservice. For example: $ ant deploylocationservice

This will automatically deploy the location service that you specified in build.properties.

developer.opencloud.com

Commercial in Confidence

11

Sample SIP Applications January 18, 2012

4 Deploy the Sample SIP Services

Pre-configuring, installing and uninstalling Registrar, Proxy and Presence services Below are instructions for pre-configuring the Proxy service (required before installing it), and then installing and uninstalling the Registrar, Proxy and Presence services.

Pre-configure the Proxy service Before you install the Proxy service, you must change one configuration item to suit your environment. Edit the sip.properties file, to change the PROXY_DOMAINS property as follows: # Proxy SBB configuration # Add domains that the proxy is authoritative for PROXY_DOMAINS=opencloud.com,opencloud.co.nz

The default domains opencloud.com and opencloud.co.nz are just examples — change this property to use the correct domains for your environment. The PROXY_DOMAINS property contains the domains that the proxy SBB considers to be local. Depending on what domain the user to whom a request is addressed is in, the proxy SBB will do the following:

User's domain

What the proxy service does

One of the local domains (such as sip:[email protected] in our example).

Uses the location service to find the registered contact address of that user.

Local domain, but not registered in the location service.

Returns an error response.

Unknown domain.

Forwards the request according to normal SIP routing rules.

Install services To install the SIP Registrar, Proxy or Presence service, first ensure the SLEE is running. Then go to the SIP examples directory and execute the Ant targets deployregistrar, deployproxy or deploypresence. For example: $ ant deployregistrar

These scripts: • • • •

compile the service source code assemble jar files deploy the service and its dependencies into the SLEE activate the service.

Uninstall services To deactivate and remove the services, use the Ant target undeployregistrar, undeployproxy or undeploypresence. For example: $ ant undeployregistrar

developer.opencloud.com

Commercial in Confidence

12

Sample SIP Applications January 18, 2012

4 Using the Services

What is a SIP user agent? A "SIP user agent" means any SIP-capable device, such as a VoIP phone, softphone or instant-messaging client. Some examples of user agents that have been used successfully with Rhino are: • • • • • •

WengoPhone X-Lite Pidgin Windows Messenger Linphone SIPp

The instructions in this section are intended to be generic and should apply to most user agents. Please see your user agent's product documentation for specific installation and usage instructions. The following topics describe how to configure and use a SIP user agent with the sample Registrar, Proxy and Presence services. • • • • •

1 2 3 4 5

Configure User Agents Use the Registrar Service Use the Proxy Service Use the Presence Service Enable Tracing for SIP Services

developer.opencloud.com

Commercial in Confidence

13

Sample SIP Applications January 18, 2012

1 Configure User Agents

First, deploy the sample SIP services If you haven't already, deploy the sample SIP services on Rhino (see Quick Start or Manual Installation).

Configure network, SIP identity and SIP services Below are instructions for configuring typical network, SIP identity and SIP services user-agent settings. These settings must be configured correctly before using the sample SIP services with Rhino (or any SIP server).

Default network port A SIP user agent must listen on a network port, so that it can receive incoming calls or messages. The default port for SIP is 5060. Most user agents will attempt to use this port, and this is almost always the correct configuration. However, if Rhino and a user agent are running on the same host, then there may be a conflict (because Rhino's SIP resource adaptor defaults to port 5060 as well). If this is the case, you must change the port that either the SIP RA or the user agent uses. See Manual Installation for instructions on changing the port that the SIP RA uses. If your user agent is running on a different host to Rhino, then no additional network configuration should be necessary.

SIP identity Your SIP identity (sometimes called "address of record") is the public SIP address that you share with others so they can contact you. It is like your phone number or email address, and usually looks like sip:username@domain (for example, sip:[email protected]). When your user agent starts, it will register your SIP identity with the SIP server. The SIP server binds your SIP identity to the network address of your user agent (its contact address). This lets other users call you without knowing your user agent's network address. Unless you are integrating with an existing SIP network, the SIP identity you choose can be anything. However, the domain part of your identity (sip:[email protected]) should be one of the domains known by the sample Proxy service (see the PROXY_DOMAINS property described in Quick Start). This is so the proxy service forwards requests to your user agent's contact address.

SIP servers You need to tell your user agent which SIP servers it will use. Depending on the particular user agent, you may have to configure several SIP server addresses, for different SIP services. (Often a user agent will just require a single server address that it uses for everything.) The typical types of server that you may need to configure are:

Server

What it does

Registrar

Receives registration and unregistration requests from your user agent, and updates a location service with your SIP identity and the user agent's network address.

Proxy (or outbound proxy)

Receives messages or calls from the user agent, and figures out how to route them to their destination.

developer.opencloud.com

Commercial in Confidence

14

Sample SIP Applications January 18, 2012

Presence

Provides the status of other users to the user agent (for example, for buddy lists), and lets it publish its own status information (such as "available", "busy", or "away").

Some user agents may assume that the same server will provide all these services. To configure your SIP servers, enter the address of your Rhino server in the appropriate fields. Often this will need to be in the form of a SIP URI. For example if Rhino is running on the machine "rhino.company.com" and using port 5060, then the SIP address of the server would be sip:rhino.company.com:5060.

developer.opencloud.com

Commercial in Confidence

15

Sample SIP Applications January 18, 2012

2 Use the Registrar Service Most SIP user agents will automatically try to register when they start up, by sending a REGISTER request. This updates the Registrar with the user agent's contact address. SIP registrations are not permanent, so the user agent will periodically refresh its registration with the Registrar. When the user agent shuts down, it will send another request to un-register its contact address. The registration process is defined in RFC3261 section 10. When registering, refreshing or un-registering, the user agent sends a REGISTER request and expects to receive a 200 OK response, indicating that the operation succeeded: User Agent Registrar | | | REGISTER | |------------------>| | 200 OK | || | | 200 OK | | || | | | INVITE | | |------------------>| | | 1xx | | || | | 200 OK | | |