SIP Resource using PJProject
This configuration documentation is for functionality provided by res_pjsip
.
pjsip.conf
endpoint
Endpoint
Configuration Option Reference
Option Name |
Type |
Default Value |
Regular Expression |
Description |
---|---|---|---|---|
|
|
|
Allow support for RFC3262 provisional ACK tags |
|
|
|
|
Condense MWI notifications into a single NOTIFY. |
|
|
|
|
|
Media Codec(s) to allow |
|
|
|
AoR(s) to be used with the endpoint |
|
|
|
|
Authentication Object(s) associated with the endpoint |
|
|
|
|
CallerID information for the endpoint |
|
|
|
|
Default privacy level |
|
|
|
|
|
Internal id_tag for the endpoint |
|
|
|
|
Dialplan context for inbound sessions |
|
|
|
Mitigation of direct media (re)INVITE glare |
|
|
|
|
Direct Media method type |
|
|
|
|
Connected line method type |
|
|
|
|
|
Determines whether media may flow directly between endpoints. |
|
|
|
|
Disable direct media session refreshes when NAT obstructs the media session |
|
|
|
|
Media Codec(s) to disallow |
|
|
|
DTMF mode |
|
|
|
|
IP address used in SDP for media handling |
|
|
|
|
|
Force use of return port |
|
|
|
|
Enable the ICE mechanism to help traverse NAT |
|
|
|
Way(s) for Endpoint to be identified |
|
|
|
|
How redirects received from an endpoint are handled |
|
|
|
|
NOTIFY the endpoint when state changes for any of the specified mailboxes |
|
|
|
|
|
Default Music On Hold class |
|
|
|
|
Authentication object used for outbound requests |
|
|
|
|
Proxy through which to send requests, a full SIP URI must be provided |
|
|
|
Allow Contact header to be rewritten with the source IP address-port |
|
|
|
|
|
Allow use of IPv6 for RTP traffic |
|
|
|
|
Enforce that RTP must be symmetric |
|
|
|
|
Send the Diversion header, conveying the diversion information to the called user agent |
|
|
|
|
Send the P-Asserted-Identity header |
|
|
|
|
Send the Remote-Party-ID header |
|
|
|
Minimum session timers expiration period |
|
|
|
|
Session timers for SIP packets |
|
|
|
|
Maximum session timer expiration period |
|
|
|
|
Desired transport configuration |
|
|
|
|
Accept identification information received from this endpoint |
|
|
|
|
Send private identification details to the endpoint. |
|
|
|
|
|
Must be of type 'endpoint'. |
|
|
|
|
Use Endpoint's requested packetisation interval |
|
|
|
Determines whether res_pjsip will use and enforce usage of AVPF for this endpoint. |
|
|
|
|
Determines whether res_pjsip will use and enforce usage of AVP, regardless of the RTP profile in use for this endpoint. |
|
|
|
|
Determines whether res_pjsip will use the media transport received in the offer SDP in the corresponding answer SDP. |
|
|
|
|
Determines whether res_pjsip will use and enforce usage of media encryption for this endpoint. |
|
|
|
|
Determines whether chan_pjsip will indicate ringing using inband progress. |
|
|
|
|
The numeric pickup groups for a channel. |
|
|
|
|
The numeric pickup groups that a channel can pickup. |
|
|
|
|
The named pickup groups for a channel. |
|
|
|
|
The named pickup groups that a channel can pickup. |
|
|
|
|
The number of in-use channels which will cause busy to be returned as device state |
|
|
|
|
Whether T.38 UDPTL support is enabled or not |
|
|
|
|
T.38 UDPTL error correction method |
|
|
|
|
T.38 UDPTL maximum datagram size |
|
|
|
|
Whether CNG tone detection is enabled |
|
|
|
|
Whether NAT support is enabled on UDPTL sessions |
|
|
|
|
Whether IPv6 is used for UDPTL Sessions |
|
|
|
|
|
Set which country's indications to use for channels created for this endpoint. |
|
|
|
|
Set the default language to use for channels created for this endpoint. |
|
|
|
|
Determines whether one-touch recording is allowed for this endpoint. |
|
|
|
The feature to enact when one-touch recording is turned on. |
|
|
|
|
The feature to enact when one-touch recording is turned off. |
|
|
|
|
|
Name of the RTP engine to use for channels created for this endpoint |
|
|
|
|
Determines whether SIP REFER transfers are allowed for this endpoint |
|
|
|
|
String placed as the username portion of an SDP origin (o=) line. |
|
|
|
|
String used for the SDP session (s=) line. |
|
|
|
DSCP TOS bits for audio streams |
|
|
|
|
DSCP TOS bits for video streams |
|
|
|
|
Priority for audio streams |
|
|
|
|
Priority for video streams |
|
|
|
|
|
Determines if endpoint is allowed to initiate subscriptions with Asterisk. |
|
|
|
|
The minimum allowed expiry time for subscriptions initiated by the endpoint. |
|
|
|
|
Username to use in From header for requests to this endpoint. |
|
|
|
|
Username to use in From header for unsolicited MWI NOTIFYs to this endpoint. |
|
|
|
|
Domain to user in From header for requests to this endpoint. |
|
|
|
Verify that the provided peer certificate is valid |
|
|
|
|
Interval at which to renegotiate the TLS session and rekey the SRTP session |
|
|
|
|
Path to certificate file to present to peer |
|
|
|
|
Path to private key for certificate file |
|
|
|
|
Cipher to use for DTLS negotiation |
|
|
|
|
Path to certificate authority certificate |
|
|
|
|
Path to a directory containing certificate authority certificates |
|
|
|
|
Whether we are willing to accept connections, connect to the other party, or both. |
|
|
|
|
Determines whether 32 byte tags should be used instead of 80 byte tags. |
|
|
|
|
Variable set on a channel involving the endpoint. |
|
|
|
|
Context to route incoming MESSAGE requests to. |
|
|
|
|
An accountcode to set automatically on any channels created for this endpoint. |
Configuration Option Descriptions
100rel
no
required
yes
aggregate_mwi
When enabled, aggregate_mwi condenses message waiting notifications from multiple mailboxes into a single NOTIFY. If it is disabled, individual NOTIFYs are sent for each mailbox.
aors
List of comma separated AoRs that the endpoint should be associated with.
auth
This is a comma-delimited list of auth sections defined in pjsip.conf
to be used to verify inbound connection attempts.
Endpoints without an authentication
object configured will allow connections without vertification.
callerid
Must be in the format Name <Number>
, or only <Number>
.
callerid_privacy
allowed_not_screened
allowed_passed_screened
allowed_failed_screened
allowed
prohib_not_screened
prohib_passed_screened
prohib_failed_screened
prohib
unavailable
direct_media_glare_mitigation
This setting attempts to avoid creating INVITE glare scenarios by disabling direct media reINVITEs in one direction thereby allowing designated servers (according to this option) to initiate direct media reINVITEs without contention and significantly reducing call setup time.
A more detailed description of how this option functions can be found on the Asterisk wiki https://wiki.asterisk.org/wiki/display/AST/SIP+Direct+Media+Reinvite+Glare+Avoidance
none
outgoing
incoming
direct_media_method
Method for setting up Direct Media between endpoints.
invite
reinvite
- Alias for theinvite
value.update
connected_line_method
Method used when updating connected line information.
invite
reinvite
- Alias for theinvite
value.update
dtmf_mode
This setting allows to choose the DTMF mode for endpoint communication.
rfc4733
- DTMF is sent out of band of the main audio stream.This supercedes the older RFC-2833 used within the olderchan_sip
.inband
- DTMF is sent as part of audio stream.info
- DTMF is sent as SIP INFO packets.
media_address
At the time of SDP creation, the IP address defined here will be used as the media address for individual streams in the SDP.
identify_by
An endpoint can be identified in multiple ways. Currently, the only supported option is username
, which matches the endpoint based on the username in the From header.
username
redirect_method
When a redirect is received from an endpoint there are multiple ways it can be handled. If this option is set to user
the user portion of the redirect target is treated as an extension within the dialplan and dialed using a Local channel. If this option is set to uri_core
the target URI is returned to the dialing application which dials it using the PJSIP channel driver and endpoint originally used. If this option is set to uri_pjsip
the redirect occurs within chan_pjsip itself and is not exposed to the core at all. The uri_pjsip
option has the benefit of being more efficient and also supporting multiple potential redirect targets. The con is that since redirection occurs within chan_pjsip redirecting information is not forwarded and redirection can not be prevented.
user
uri_core
uri_pjsip
mailboxes
Asterisk will send unsolicited MWI NOTIFY messages to the endpoint when state changes happen for any of the specified mailboxes. More than one mailbox can be specified with a comma-delimited string. app_voicemail mailboxes must be specified as mailbox@context; for example: mailboxes=6001@default. For mailboxes provided by external sources, such as through the res_external_mwi module, you must specify strings supported by the external system.
For endpoints that SUBSCRIBE for MWI, use the mailboxes
option in your AOR configuration.
rewrite_contact
On inbound SIP messages from this endpoint, the Contact header will be changed to have the source IP address and port. This option does not affect outbound messages send to this endpoint.
timers_min_se
Minimium session timer expiration period. Time in seconds.
timers
forced
no
required
yes
timers_sess_expires
Maximium session timer expiration period. Time in seconds.
transport
This will set the desired transport configuration to send SIP data through.
trust_id_inbound
This option determines whether Asterisk will accept identification from the endpoint from headers such as P-Asserted-Identity or Remote-Party-ID header. This option applies both to calls originating from the endpoint and calls originating from Asterisk. If no
, the configured Caller-ID from pjsip.conf will always be used as the identity for the endpoint.
trust_id_outbound
This option determines whether res_pjsip will send private identification information to the endpoint. If no
, private Caller-ID information will not be forwarded to the endpoint. "Private" in this case refers to any method of restricting identification. Example: setting callerid_privacy to any prohib
variation. Example: If trust_id_inbound is set to yes
, the presence of a Privacy: id
header in a SIP request or response would indicate the identification provided in the request is private.
use_avpf
If set to yes
, res_pjsip will use the AVPF or SAVPF RTP profile for all media offers on outbound calls and media updates and will decline media offers not using the AVPF or SAVPF profile.
If set to no
, res_pjsip will use the AVP or SAVP RTP profile for all media offers on outbound calls and media updates, but will accept either the AVP/AVPF or SAVP/SAVPF RTP profile for all inbound media offers.
force_avp
If set to yes
, res_pjsip will use the AVP, AVPF, SAVP, or SAVPF RTP profile for all media offers on outbound calls and media updates including those for DTLS-SRTP streams.
If set to no
, res_pjsip will use the respective RTP profile depending on configuration.
media_use_received_transport
If set to yes
, res_pjsip will use the received media transport.
If set to no
, res_pjsip will use the respective RTP profile depending on configuration.
media_encryption
no
- res_pjsip will offer no encryption and allow no encryption to be setup.sdes
- res_pjsip will offer standard SRTP setup via in-SDP keys. Encrypted SIP transport should be used in conjunction with this option to prevent exposure of media encryption keys.dtls
- res_pjsip will offer DTLS-SRTP setup.
inband_progress
If set to yes
, chan_pjsip will send a 183 Session Progress when told to indicate ringing and will immediately start sending ringing as audio.
If set to no
, chan_pjsip will send a 180 Ringing when told to indicate ringing and will NOT send it as audio.
call_group
Can be set to a comma separated list of numbers or ranges between the values of 0-63 (maximum of 64 groups).
pickup_group
Can be set to a comma separated list of numbers or ranges between the values of 0-63 (maximum of 64 groups).
named_call_group
Can be set to a comma separated list of case sensitive strings limited by supported line length.
named_pickup_group
Can be set to a comma separated list of case sensitive strings limited by supported line length.
device_state_busy_at
When the number of in-use channels for the endpoint matches the devicestate_busy_at setting the PJSIP channel driver will return busy as the device state instead of in use.
t38_udptl
If set to yes T.38 UDPTL support will be enabled, and T.38 negotiation requests will be accepted and relayed.
t38_udptl_ec
none
- No error correction should be used.fec
- Forward error correction should be used.redundancy
- Redundacy error correction should be used.
t38_udptl_maxdatagram
This option can be set to override the maximum datagram of a remote endpoint for broken endpoints.
fax_detect
This option can be set to send the session to the fax extension when a CNG tone is detected.
t38_udptl_nat
When enabled the UDPTL stack will send UDPTL packets to the source address of received packets.
t38_udptl_ipv6
When enabled the UDPTL stack will use IPv6.
record_on_feature
When an INFO request for one-touch recording arrives with a Record header set to "on", this feature will be enabled for the channel. The feature designated here can be any built-in or dynamic feature defined in features.conf.
record_off_feature
When an INFO request for one-touch recording arrives with a Record header set to "off", this feature will be enabled for the channel. The feature designated here can be any built-in or dynamic feature defined in features.conf.
tos_audio
See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for more information about QoS settings
tos_video
See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for more information about QoS settings
cos_audio
See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for more information about QoS settings
cos_video
See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for more information about QoS settings
dtls_verify
This option only applies if media_encryption is set to dtls
.
dtls_rekey
This option only applies if media_encryption is set to dtls
.
If this is not set or the value provided is 0 rekeying will be disabled.
dtls_cert_file
This option only applies if media_encryption is set to dtls
.
dtls_private_key
This option only applies if media_encryption is set to dtls
.
dtls_cipher
This option only applies if media_encryption is set to dtls
.
Many options for acceptable ciphers. See link for more: http://www.openssl.org/docs/apps/ciphers.html#CIPHER\_STRINGS
dtls_ca_file
This option only applies if media_encryption is set to dtls
.
dtls_ca_path
This option only applies if media_encryption is set to dtls
.
dtls_setup
This option only applies if media_encryption is set to dtls
.
active
- res_pjsip will make a connection to the peer.passive
- res_pjsip will accept connections from the peer.actpass
- res_pjsip will offer and accept connections from the peer.
srtp_tag_32
This option only applies if media_encryption is set to sdes
or dtls
.
set_var
When a new channel is created using the endpoint set the specified variable(s) on that channel. For multiple channel variables specify multiple 'set_var'(s).
message_context
If specified, incoming MESSAGE requests will be routed to the indicated dialplan context. If no message_context is specified, then the context setting is used.
accountcode
If specified, any channel created for this endpoint will automatically have this accountcode set on it.
auth
Authentication type
Configuration Option Reference
Option Name |
Type |
Default Value |
Regular Expression |
Description |
---|---|---|---|---|
|
|
|
Authentication type |
|
|
|
|
|
Lifetime of a nonce associated with this authentication config. |
|
|
|
MD5 Hash used for authentication. |
|
|
|
|
PlainText password used for authentication. |
|
|
|
|
|
SIP realm for endpoint |
|
|
|
|
Must be 'auth' |
|
|
|
|
Username to use for account |
Configuration Option Descriptions
auth_type
This option specifies which of the password style config options should be read when trying to authenticate an endpoint inbound request. If set to userpass
then we'll read from the 'password' option. For md5
we'll read from 'md5_cred'.
md5
userpass
md5_cred
Only used when auth_type is md5
.
password
Only used when auth_type is userpass
.
domain_alias
Domain Alias
Configuration Option Reference
Option Name |
Type |
Default Value |
Regular Expression |
Description |
---|---|---|---|---|
|
|
|
|
Must be of type 'domain_alias'. |
|
|
|
|
Domain to be aliased |
transport
SIP Transport
Configuration Option Reference
Option Name |
Type |
Default Value |
Regular Expression |
Description |
---|---|---|---|---|
|
|
|
|
Number of simultaneous Asynchronous Operations |
|
|
|
|
IP Address and optional port to bind to for this transport |
|
|
|
|
File containing a list of certificates to read (TLS ONLY) |
|
|
|
|
Certificate file for endpoint (TLS ONLY) |
|
|
|
Preferred Cryptography Cipher (TLS ONLY) |
|
|
|
|
|
Domain the transport comes from |
|
|
|
External IP address to use in RTP handling |
|
|
|
|
|
External address for SIP signalling |
|
|
|
|
External port for SIP signalling |
|
|
|
Method of SSL transport (TLS ONLY) |
|
|
|
|
Network to consider local (used for NAT purposes). |
|
|
|
|
|
Password required for transport |
|
|
|
|
Private key file (TLS ONLY) |
|
|
|
Protocol to use for SIP traffic |
|
|
|
|
|
Require client certificate (TLS ONLY) |
|
|
|
|
Must be of type 'transport'. |
|
|
|
|
Require verification of client certificate (TLS ONLY) |
|
|
|
|
Require verification of server certificate (TLS ONLY) |
|
|
|
Enable TOS for the signalling sent over this transport |
|
|
|
|
Enable COS for the signalling sent over this transport |
|
|
|
|
The timeout (in milliseconds) to set on WebSocket connections. |
Configuration Option Descriptions
cipher
Many options for acceptable ciphers see link for more: http://www.openssl.org/docs/apps/ciphers.html#CIPHER\_STRINGS
external_media_address
When a request or response is sent out, if the destination of the message is outside the IP network defined in the option localnet
, and the media address in the SDP is within the localnet network, then the media address in the SDP will be rewritten to the value defined for external_media_address
.
method
default
unspecified
tlsv1
sslv2
sslv3
sslv23
local_net
This must be in CIDR or dotted decimal format with the IP and mask separated with a slash ('/').
protocol
udp
tcp
tls
ws
wss
tos
See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service
for more information on this parameter.
cos
See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service
for more information on this parameter.
websocket_write_timeout
If a websocket connection accepts input slowly, the timeout for writes to it can be increased to keep it from being disconnected. Value is in milliseconds; default is 100 ms.
contact
A way of creating an aliased name to a SIP URI
Configuration Option Reference
Option Name |
Type |
Default Value |
Regular Expression |
Description |
---|---|---|---|---|
|
|
|
|
Must be of type 'contact'. |
|
|
|
|
SIP URI to contact peer |
|
|
|
Time to keep alive a contact |
|
|
|
|
Interval at which to qualify a contact |
|
|
|
|
Outbound proxy used when sending OPTIONS request |
|
|
|
|
|
Stored Path vector for use in Route headers on outgoing requests. |
|
|
|
User-Agent header from registration. |
Configuration Option Descriptions
expiration_time
Time to keep alive a contact. String style specification.
qualify_frequency
Interval between attempts to qualify the contact for reachability. If 0
never qualify. Time in seconds.
outbound_proxy
If set the provided URI will be used as the outbound proxy when an OPTIONS request is sent to a contact for qualify purposes.
user_agent
The User-Agent is automatically stored based on data present in incoming SIP REGISTER requests and is not intended to be configured manually.
aor
The configuration for a location of an endpoint
Configuration Option Reference
Option Name |
Type |
Default Value |
Regular Expression |
Description |
---|---|---|---|---|
|
|
|
Permanent contacts assigned to AoR |
|
|
|
|
|
Default expiration time in seconds for contacts that are dynamically bound to an AoR. |
|
|
|
Allow subscriptions for the specified mailbox(es) |
|
|
|
|
Maximum time to keep an AoR |
|
|
|
|
Maximum number of contacts that can bind to an AoR |
|
|
|
|
Minimum keep alive time for an AoR |
|
|
|
|
Determines whether new contacts replace existing ones. |
|
|
|
|
|
Must be of type 'aor'. |
|
|
|
Interval at which to qualify an AoR |
|
|
|
|
Authenticates a qualify request if needed |
|
|
|
|
Outbound proxy used when sending OPTIONS request |
|
|
|
|
Enables Path support for REGISTER requests and Route support for other requests. |
Configuration Option Descriptions
contact
Contacts specified will be called whenever referenced by chan_pjsip
.
Use a separate "contact=" entry for each contact required. Contacts are specified using a SIP URI.
mailboxes
This option applies when an external entity subscribes to an AoR for Message Waiting Indications. The mailboxes specified will be subscribed to. More than one mailbox can be specified with a comma-delimited string. app_voicemail mailboxes must be specified as mailbox@context; for example: mailboxes=6001@default. For mailboxes provided by external sources, such as through the res_external_mwi module, you must specify strings supported by the external system.
For endpoints that cannot SUBSCRIBE for MWI, you can set the mailboxes
option in your endpoint configuration section to enable unsolicited MWI NOTIFYs to the endpoint.
maximum_expiration
Maximium time to keep a peer with explicit expiration. Time in seconds.
max_contacts
Maximum number of contacts that can associate with this AoR. This value does not affect the number of contacts that can be added with the "contact" option. It only limits contacts added through external interaction, such as registration.
minimum_expiration
Minimum time to keep a peer with an explict expiration. Time in seconds.
remove_existing
On receiving a new registration to the AoR should it remove the existing contact that was registered against it?
qualify_frequency
Interval between attempts to qualify the AoR for reachability. If 0
never qualify. Time in seconds.
authenticate_qualify
If true and a qualify request receives a challenge or authenticate response authentication is attempted before declaring the contact available.
outbound_proxy
If set the provided URI will be used as the outbound proxy when an OPTIONS request is sent to a contact for qualify purposes.
support_path
When this option is enabled, the Path headers in register requests will be saved and its contents will be used in Route headers for outbound out-of-dialog requests and in Path headers for outbound 200 responses. Path support will also be indicated in the Supported header.
system
Options that apply to the SIP stack as well as other system-wide settings
Configuration Option Reference
Option Name |
Type |
Default Value |
Regular Expression |
Description |
---|---|---|---|---|
|
|
|
Set transaction timer T1 value (milliseconds). |
|
|
|
|
Set transaction timer B value (milliseconds). |
|
|
|
|
|
Use the short forms of common SIP header names. |
|
|
|
|
Initial number of threads in the res_pjsip threadpool. |
|
|
|
|
The amount by which the number of threads is incremented when necessary. |
|
|
|
|
Number of seconds before an idle thread should be disposed of. |
|
|
|
|
Maximum number of threads in the res_pjsip threadpool. A value of 0 indicates no maximum. |
|
|
|
|
Must be of type 'system'. |
Configuration Option Descriptions
timer_t1
Timer T1 is the base for determining how long to wait before retransmitting requests that receive no response when using an unreliable transport (e.g. UDP). For more information on this timer, see RFC 3261, Section 17.1.1.1.
timer_b
Timer B determines the maximum amount of time to wait after sending an INVITE request before terminating the transaction. It is recommended that this be set to 64 * Timer T1, but it may be set higher if desired. For more information on this timer, see RFC 3261, Section 17.1.1.1.
global
Options that apply globally to all SIP communications
Configuration Option Reference
Option Name |
Type |
Default Value |
Regular Expression |
Description |
|
---|---|---|---|---|---|
|
|
|
|
Value used in Max-Forwards header for SIP requests. |
|
|
|
|
|
Must be of type 'global'. |
|
|
|
|
|
Value used in User-Agent header for SIP requests and Server header for SIP responses. |
|
|
|
|
|
Endpoint to use when sending an outbound request to a URI without a specified endpoint. |
|
|
|
|
|
Enable/Disable SIP debug logging. Valid options include yes |
no or a host address |
Import Version
This documentation was imported from Asterisk Version SVN-branch-13-r420717