Packages
sippet
0.5.1
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
An Elixir Session Initiation Protocol (SIP) stack.
Current section
Files
Jump to
Current section
Files
lib/sippet/parser.ex
defmodule Sippet.Parser do
@moduledoc """
Communicates with the C++ NIF parser in order to parse the SIP header.
The C++ NIF module was created to optimize the parsing.
"""
@on_load {:init, 0}
app = Mix.Project.config[:app]
@doc """
Initializes and loads the C++ NIF module.
"""
def init() do
path = :filename.join(:code.priv_dir(unquote(app)), 'sippet_nif')
:ok = :erlang.load_nif(path, 0)
end
@doc """
Parses the SIP message into an Erlang-like map.
The `Sippet.Message` module translates the result into an Elixir-like struct.
"""
def parse(message) when is_binary(message),
do: :erlang.nif_error(:not_loaded)
end