sippet v0.1.8 Sippet.Core behaviour

A behaviour module for implementing the Sippet.Core.

The Sippet.Core designates a particular type of SIP entity, i.e., specific to either a stateful or stateless proxy, a user agent or registrar.

Summary

Functions

Dispatches the network transport error to the registered Sippet.Core implementation

Dispatches the received request to the registered Sippet.Core implementation

Dispatches the received response to the registered Sippet.Core implementation

Callbacks

Receives an error from the server or client transaction

Receives a new incoming request from a remote host, or ACK

Receives a response for a sent request

Functions

receive_error(reason, client_or_server_transaction)
receive_error(reason :: term, Sippet.Transaction.Client.t | Sippet.Transaction.Server.t) :: any

Dispatches the network transport error to the registered Sippet.Core implementation.

receive_request(incoming_request, server_transaction)
receive_request(Sippet.Message.request, Sippet.Transaction.Server.t | nil) :: any

Dispatches the received request to the registered Sippet.Core implementation.

receive_response(incoming_response, client_transaction)
receive_response(Sippet.Message.response, Sippet.Transaction.Client.t | nil) :: any

Dispatches the received response to the registered Sippet.Core implementation.

Callbacks

receive_error(reason, client_or_server_transaction)
receive_error(reason :: term, client_or_server_transaction :: Sippet.Transaction.Client.t | Sippet.Transaction.Server.t) :: any

Receives an error from the server or client transaction.

The function receive_error/2 is called from the client or server transaction process created when sending or receiving requests.

receive_request(incoming_request, server_transaction)
receive_request(incoming_request :: Sippet.Message.request, server_transaction :: Sippet.Transaction.Server.t | nil) :: any

Receives a new incoming request from a remote host, or ACK.

The server_transaction indicates the name of the transaction created when the request was received. If it is an ACK, then the server_transaction is nil.

The function receive_request/2 is called from the server transaction process when the parameter server_transaction is not nil, and from the transport process (possibly a poolboy worker process), when the server_transaction is nil.

receive_response(incoming_response, client_transaction)
receive_response(incoming_response :: Sippet.Message.response, client_transaction :: Sippet.Transaction.Client.t | nil) :: any

Receives a response for a sent request.

The client_transaction indicates the name of the transaction created when the request was sent using Sippet.Transaction.send_request/1.

The function receive_response/2 is called from the client transaction process when the parameter client_transaction is not nil, and from the transport process (possibly a poolboy worker process), when the client_transaction is nil.