libsip 0.1.0

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

libsip

libsip is a library implementation of the sip protocol as described in rfc3261. libsip intends to implement parsing the entire SIP Protocol, but will only provide helpers for certain common use cases.

WIP This library is still very much under construction.

License: MIT Build Status

Parsing

extern crate libsip;

use libsip::parse_message;

const SIP_MESSAGE: &'static str "SIP/2.0 200 OK\r\n\r\n";

fn main() {
  let res = parse_message(SIP_MESSAGE.as_ref());
  println!("{:?}", res);
}

Running the examples

git clone https://github.com/Bytebuddha/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 udp_register
# 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 --features async

dependencies

Optional

Alternatives

  • parsip Is only for parsing SIP messages. I wanted libsip to be able to handle some user case's specifically Registration.
  • 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 this crate.
  • sip This crate appears to be empty
  • tokio-sip This crate also appears to be empty