Free secure SIP server components

Free download
Installation and running
Command reference

Tivi has released a lightweight freeware version of its SIP server connecting up to 200 subscribers of your office phone system. This time we focus on offering the SIP server to our customers who use the secure version of TiviPhone with the ZRTP encryption function.
Tivi SIP server is your best chance to avoid other products containing hundreds of files and multiple configurations, obscure setups and preinstalled modules you don't really need!
Tivi's SIP server components are easy to manage: one configuration file, one running executable, suitable for inexpensive server hardware.

Free download:

Software Description Download
Tivi SIP proxy/registrar SIP proxy/registrar server for 200 users Linux /17.January 2011/ (.tar.gz)
Windows /17.January 2011/ (.zip)
Tivi RTP proxy RTP proxy server/codec transcoder (100 channels) Linux /04.August 2010/ (.tar.gz)
Windows /06.January 2011/ (.zip)
Tivi STUN server STUN server module Linux /04.August 2010/ (.tar.gz)

Installation and running:

Download and decompress the archive packages, each to a separate directory.

sipreg - sip proxy/registrar's executable name

simply run sip server:
./sipreg sip server will listen on all system network interfaces
or
./sipreg eth1 sip server will listen on specified interface
or
./sipreg eth1 5060 to specify server port

rtppx - rtp proxy's executable name

Usage: ./rtppx [command port] [min-port] [max-port]
just run it with a command: ./rtppx 52004 52006 52010 Command port (52004) should be protected by your servers firewall and accessible only to the sipreg server. Increase the RTP port range (eg. 52006-52180, use even-number ports only) if other SIP clients are used as well.

stun - Session traversal utilities for NAT server's executable name

In order for stun network detection to run correctly it is required that stun is launched on 2 servers or 2 interfaces accessible by SIP clients. For example you may have server with 2 Ethernet interfaces then you should run stun executables in following order:
./stun1 eth0 [ip.address.of.stun2]
./stun2 eth1 [ip.address.of.stun1]
This way stun1 and stun2 will be able to communicate with each other and SIP clients to ensure the detection of remote network NAT types.

Command reference:

Configuration settings for sipreg process, you can change configuration by changing commands.txt file.
Command Description
add debug Switch on a debug for SIP messages
add nr [12345678] Allocate a number to a SIP registrar
rem nr [12345678] remove a phone number from a system
add user nr [user1,12345678] Assign a phone number to a SIP user
rem user nr [user1,12345678] remove a phone number assignment to a SIP user
add user [1,user1,pass] Add a user, where 1 is ID, user1 - a username, pass - a password
rem user [user1] remove a user,user1 - a username
add rtp ipport [x.x.x.x:52004,52006,52010,0] RTP proxy definition, IP address, signaling port, RTP port range - 52006, 52008, 52010 (use even ports only), 0-reserved
set cmd ipport [x.x.x.x] Authorize remote IP to send administration commands and requests to SIP proxy
set gw ipport [x.x.x.x] Definition of external trunk/SIP provider
set ivr ipport [x.x.x.x:4002] Definition of voicemail/IVR server
set ivr name [ivr.domain.name] Definition of voicemail/ivr host name
set nr forward [from-nr, to-nr,0] Enable forwarding for a number
set user forward [user, to-nr,0] Enable forwarding from sip user to number
rem forward [from-nr] Remove forwarding for a number
rem forward [user] Remove forwarding for a user
set forward ipport[192.168.1.111:5080] Definition of a forward server's IP
set fax ipport [192.168.1.110] Definition of a fax server's IP
set user ipport [user2,x.x.x.x:5060] Redirect incoming calls to user2 (assigned numbers) to external server IP
set reg name[sip.domain.name] Define SIP proxy server hostname
set [gud.uiMinExpTimeInSec, 120] Set minimum SIP re-registration time
set rtp[0] RTP proxy settings, values 1 = proxy everything, 0 = don't use RTP proxy,
set rtp [unknownnat,video,mobnats,smart
,nr2nr,gsm2gw,gw2gsm,nat2nat,from2nr]
other possible network combinations for RTP proxying