About Repro

From reSIProcate
Jump to navigation Jump to search


What is repro?

repro is an open-source, free SIP server.

repro provides SIP proxy, registrar, redirect, and identity services. These services are the foundation needed to run a SIP service.

Where can repro be used?

  • As an enabler of peer-to-peer voice, IM, and presence services
  • As the core of large scale internet telephony services
  • As a policy enforcement point across large network boundaries

Key Features

It includes an embedded configuration web server, utilizing Berkeley DB to store user data.

Upcoming Features

  • MySQL or Postgres storage of user data
  • Acting as a Presence Server


Several companies are in the process of putting together commercial support plans for repro, reSIProcate and DUM that are targeted at application developers and service providers. More detail to follow.

How to Participate

Project Details

Current Features

  • Transports: UDP, TCP, TLS (v4 and v6)
  • Platforms: Win32, Linux, Mac OS X
  • RFC 3261 compliant proxy and registrar
  • RFC 3263 compliant: NAPTR, SRV, A, AAAA
  • Extendable features
  • In-memory location server
  • Embedded web server and user database for basic administration
  • Full support for draft-ietf-sip-identity-04
  • IPv6


Goals for 0.1 release (beginning of May)

  • source tar ball available
  • binaries available for Windows (exe), Linux (rpm), MacOSX (dmg)
  • allow web admin to modify and delete users and static routes
  • add access lists for devices that don't need to authenticate (like gateways)
  • tested according to test plan

Goals for 0.2 release

  • high availability (distribution of user database and registrations across a geographically diverse server farm)
  • call forwarding
  • certificate/credential service (draft-ietf-sipping-certs-01.txt)

Goals for 0.3 release

  • support for the GRUU extension and outbound-only connections

Test Plan

Basic Calling Scenarios

  • INVITE/180 200/ACK BYE/200 both directions
  • INVITE/180 CANCEL/200/487/ACK both directions
  • INVITE/180 4xx/ACK as caller
  • Make / receive basic call behind a NAT (with UDP)


  • Sipura SPA-2000
  • Cisco 7960
  • Xten eyeBeam
  • snom 2000
  • Cisco 3600 gateway
  • SER proxy (running at iptel.org)
  • Grandstream Bugetone
  • sipXphone
  • Vegastream phone
  • Jasomi B2BUA
  • M5T proxy server

Scenario tests

  • Make a call with TCP
  • Make a call with TLS
  • Forking test
  • Spiral test
  • Loop test
  • Basic load test - create 1000 test users, register them at certain rate, make basic calls at certain rate, specify average call duration before sending BYE.