Skip to end of metadata
Go to start of metadata

General

The new SIP channel driver for Asterisk will have a clear separation of persistent data from the various modules and implementations therein. This will allow the persistent data to be stored using different methods such as: flat file, astdb, and other databases with no changes required elsewhere. A common API will be designed and implemented to allow this to happen. Before this occurs though the objects exposed by this data access layer need to be defined with minimal content and relationships. The objects listed will evolve and change with additional objects being added as development progresses. This page aims to propose an initial idea for the minimum required and to solicit feedback.

Transport

The transport object contains information about configured SIP transports. These are what send and receive SIP traffic.

Variable Name

Type

Contents

name

string

Unique name for transport

type

enum

Type of transport (UDP, TCP, TLS, WS, WSS)

host

ast_sockaddr

IP address for transport to bind to (may be optional)

port

integer

Port to bind to (may be optional)

TLS Specific

Variable Name

Type

Contents

authority

string

Certificate authority filename or path

certificate

string

Path to certificate to use

key

string

Path to private key

password

string

Password for private key

verifyserver

bool

Whether to require verification of server certificate or not

verifyclient

bool

Whether to require verification of client certificate or not

requireclient

bool

Whether to require a client certificate or not

Endpoint

The endpoint object contains information about a SIP trunk or SIP device.

Variable Name

Type

Contents

name

string

Unique name for endpoint

codecs

ast_format_cap

Allowed formats

dtmf

enum

DTMF method to use (inband, INFO, RFC2833)

transport

string

Name of transport to force endpoint to use

cid_num

string

Caller ID number

cid_name

string

Caller ID name

cid_tag

string

Caller ID tag

context

string

Context to place incoming calls into

registrations

list

Outgoing registrations associated with endpoint

domain

string

Domain that the endpoint belongs to

aor

string

Address of record to use for endpoint

Registration

The registration object contains information about an outgoing registration.

Variable Name

Type

Contents

host

string

IP address or host to register to

port

int

Port to contact server on

username

string

Username to authenticate as

password

string

Password to use for authentication

Domain

The domain object holds information about a specific SIP domain.

Variable Name

Type

Contents

name

string

Unique name for domain

context

string

Context to place incoming calls into, if unauthenticated

AOR

The address of record object contains information used by a registrar for registrations.

Variable Name

Type

Contents

name

string

Unique name for AOR

expiration

int

Default expiration if registration does not provide it

contacts

list

List of contacts associated with this AOR

domain

string

Domain that the AOR belongs to

Contact

The contact object contains information about an inbound registration.

Variable Name

Type

Contents

uri

string

Full URI to contact

expiration

timeval

When this contact should expire

Notes

The above objects represent a minimum required to achieve basic functionality. They do not reflect all needed variables and objects and as previously stated will evolve and grow.

  • No labels