libsip 0.2.5

SIP protocol Implementation, with a focus towords softphone clients.
Documentation
# libsip


libsip is a library implementation of the sip protocol as described in
[rfc3261](https://tools.ietf.org/html/rfc3261). libsip intends to implement
parsing the entire SIP Protocol, but will only provide helpers for certain
common use cases. I begin developing this library because i was frustrated with
many of the SIP clients / Libraries on linux.

**WIP** This library is still very much under construction.

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Crates.io](https://img.shields.io/crates/v/libsip.svg)](https://crates.io/crates/libsip)
[![Docs.rs](https://docs.rs/libsip/badge.svg)](https://docs.rs/libsip)
[![Build Status](https://travis-ci.org/byteheathen/libsip.svg?branch=master)](https://travis-ci.org/byteheathen/libsip)
[![Build status](https://ci.appveyor.com/api/projects/status/5ritiyyl4jva3n4d?svg=true)](https://ci.appveyor.com/project/bytebuddha/libsip)

#### Running the examples

```bash
git clone https://github.com/ByteHeathen/libsip
cd /libsip
# This example expects a server with the credentials in examples/udp_register.rs

# to be running without it will fail.

cargo run --example registration
# This example expects a server with the credentials in examples/console.rs

# to be running without it will fail. It prints all requests received to the terminal.

cargo run --example console
```

#### dependencies

  - **[nom]https://crates.io/crates/nom 6.0.0-alpha1**
  - **[rand]https://crates.io/crates/rand 0.7.3**
  - **[md5]https://crates.io/crates/md5 0.7.0**
  - **[sha]https://crates.io/crates/sha 1.0.3**
  - **[serde]https://crates.io/crates/serde 1.0.107**

### Development

  I've been using [fusionpbx](https://fusionpbx.com) as the testing server for this library.
I use a VirtualBox virtual machine running in bridged mode to simulate a PBX server running
on my local network. At this point i have only been able to implement Placing Calls,
Sending Messages and SIP registration.

#### Alternatives

  - **[parsip]https://crates/crates/parsip**
  Is only for parsing SIP messages. I wanted libsip to be able to handle some user case's
  specifically Registration.
  - **[sip-codec]https://crates/crates/sip-codec**
  I attempted to use this library first, lots of features are not implemented like writing
  sip requests and a few other fairly common things. I also wanted SIP Headers to be in the form of an enum witch would have required
  basically rewriting the whole crate.
  - **[sip]https://crates/crates/sip**
  This crate appears to be empty
  - **[tokio-sip]https://crates.io/crates/tokio-sip**
  This crate also appears to be empty