# Asterisk Project : Asterisk 13 Configuration_res_pjsip

Created and last modified by wikibot on Aug 11, 2014

# 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
--- | --- | --- | --- | ---
`100rel` | `Custom` | `yes` | `false` | Allow support for RFC3262 provisional ACK tags
`aggregate_mwi` | `Boolean` | `yes` | `false` | Condense MWI notifications into a single NOTIFY.
`allow` | `Codec` |  | `false` | Media Codec(s) to allow
`aors` | `String` |  | `false` | AoR(s) to be used with the endpoint
`auth` | `Custom` |  | `false` | Authentication Object(s) associated with the endpoint
`callerid` | `Custom` |  | `false` | CallerID information for the endpoint
`callerid_privacy` | `Custom` |  | `false` | Default privacy level
`callerid_tag` | `Custom` |  | `false` | Internal id_tag for the endpoint
`context` | `String` | `default` | `false` | Dialplan context for inbound sessions
`direct_media_glare_mitigation` | `Custom` | `none` | `false` | Mitigation of direct media (re)INVITE glare
`direct_media_method` | `Custom` | `invite` | `false` | Direct Media method type
`connected_line_method` | `Custom` | `invite` | `false` | Connected line method type
`direct_media` | `Boolean` | `yes` | `false` | Determines whether media may flow directly between endpoints.
`disable_direct_media_on_nat` | `Boolean` | `no` | `false` | Disable direct media session refreshes when NAT obstructs the media session
`disallow` |  |  |  | Media Codec(s) to disallow
`dtmf_mode` | `Custom` | `rfc4733` | `false` | DTMF mode
`media_address` | `String` |  | `false` | IP address used in SDP for media handling
`force_rport` | `Boolean` | `yes` | `false` | Force use of return port
`ice_support` | `Boolean` | `no` | `false` | Enable the ICE mechanism to help traverse NAT
`identify_by` | `Custom` | `username` | `false` | Way(s) for Endpoint to be identified
`redirect_method` | `Custom` | `user` | `false` | How redirects received from an endpoint are handled
`mailboxes` | `String` |  | `false` | NOTIFY the endpoint when state changes for any of the specified mailboxes
`moh_suggest` | `String` | `default` | `false` | Default Music On Hold class
`outbound_auth` | `Custom` |  | `false` | Authentication object used for outbound requests
`outbound_proxy` | `String` |  | `false` | Proxy through which to send requests, a full SIP URI must be provided
`rewrite_contact` | `Boolean` | `no` | `false` | Allow Contact header to be rewritten with the source IP address-port
`rtp_ipv6` | `Boolean` | `no` | `false` | Allow use of IPv6 for RTP traffic
`rtp_symmetric` | `Boolean` | `no` | `false` | Enforce that RTP must be symmetric
`send_diversion` | `Boolean` | `yes` | `false` | Send the Diversion header, conveying the diversion information to the called user agent
`send_pai` | `Boolean` | `no` | `false` | Send the P-Asserted-Identity header
`send_rpid` | `Boolean` | `no` | `false` | Send the Remote-Party-ID header
`timers_min_se` | `Unsigned Integer` | `90` | `false` | Minimum session timers expiration period
`timers` | `Custom` | `yes` | `false` | Session timers for SIP packets
`timers_sess_expires` | `Unsigned Integer` | `1800` | `false` | Maximum session timer expiration period
`transport` | `String` |  | `false` | Desired transport configuration
`trust_id_inbound` | `Boolean` | `no` | `false` | Accept identification information received from this endpoint
`trust_id_outbound` | `Boolean` | `no` | `false` | Send private identification details to the endpoint.
`type` | `None` |  | `false` | Must be of type 'endpoint'.
`use_ptime` | `Boolean` | `no` | `false` | Use Endpoint's requested packetisation interval
`use_avpf` | `Boolean` | `no` | `false` | Determines whether res_pjsip will use and enforce usage of AVPF for this endpoint.
`force_avp` | `Boolean` | `no` | `false` | Determines whether res_pjsip will use and enforce usage of AVP, regardless of the RTP profile in use for this endpoint.
`media_use_received_transport` | `Boolean` | `no` | `false` | Determines whether res_pjsip will use the media transport received in the offer SDP in the corresponding answer SDP.
`media_encryption` | `Custom` | `no` | `false` | Determines whether res_pjsip will use and enforce usage of media encryption for this endpoint.
`inband_progress` | `Boolean` | `no` | `false` | Determines whether chan_pjsip will indicate ringing using inband progress.
`call_group` | `Custom` |  | `false` | The numeric pickup groups for a channel.
`pickup_group` | `Custom` |  | `false` | The numeric pickup groups that a channel can pickup.
`named_call_group` | `Custom` |  | `false` | The named pickup groups for a channel.
`named_pickup_group` | `Custom` |  | `false` | The named pickup groups that a channel can pickup.
`device_state_busy_at` | `Unsigned Integer` | `0` | `false` | The number of in-use channels which will cause busy to be returned as device state
`t38_udptl` | `Boolean` | `no` | `false` | Whether T.38 UDPTL support is enabled or not
`t38_udptl_ec` | `Custom` | `none` | `false` | T.38 UDPTL error correction method
`t38_udptl_maxdatagram` | `Unsigned Integer` | `0` | `false` | T.38 UDPTL maximum datagram size
`fax_detect` | `Boolean` | `no` | `false` | Whether CNG tone detection is enabled
`t38_udptl_nat` | `Boolean` | `no` | `false` | Whether NAT support is enabled on UDPTL sessions
`t38_udptl_ipv6` | `Boolean` | `no` | `false` | Whether IPv6 is used for UDPTL Sessions
`tone_zone` | `String` |  | `false` | Set which country's indications to use for channels created for this endpoint.
`language` | `String` |  | `false` | Set the default language to use for channels created for this endpoint.
`one_touch_recording` | `Boolean` | `no` | `false` | Determines whether one-touch recording is allowed for this endpoint.
`record_on_feature` | `String` | `automixmon` | `false` | The feature to enact when one-touch recording is turned on.
`record_off_feature` | `String` | `automixmon` | `false` | The feature to enact when one-touch recording is turned off.
`rtp_engine` | `String` | `asterisk` | `false` | Name of the RTP engine to use for channels created for this endpoint
`allow_transfer` | `Boolean` | `yes` | `false` | Determines whether SIP REFER transfers are allowed for this endpoint
`sdp_owner` | `String` | `-` | `false` | String placed as the username portion of an SDP origin (o=) line.
`sdp_session` | `String` | `Asterisk` | `false` | String used for the SDP session (s=) line.
`tos_audio` | `Custom` | `0` | `false` | DSCP TOS bits for audio streams
`tos_video` | `Custom` | `0` | `false` | DSCP TOS bits for video streams
`cos_audio` | `Unsigned Integer` | `0` | `false` | Priority for audio streams
`cos_video` | `Unsigned Integer` | `0` | `false` | Priority for video streams
`allow_subscribe` | `Boolean` | `yes` | `false` | Determines if endpoint is allowed to initiate subscriptions with Asterisk.
`sub_min_expiry` | `Unsigned Integer` | `0` | `false` | The minimum allowed expiry time for subscriptions initiated by the endpoint.
`from_user` | `String` |  | `false` | Username to use in From header for requests to this endpoint.
`mwi_from_user` | `String` |  | `false` | Username to use in From header for unsolicited MWI NOTIFYs to this endpoint.
`from_domain` | `String` |  | `false` | Domain to user in From header for requests to this endpoint.
`dtls_verify` | `Custom` |  | `false` | Verify that the provided peer certificate is valid
`dtls_rekey` | `Custom` |  | `false` | Interval at which to renegotiate the TLS session and rekey the SRTP session
`dtls_cert_file` | `Custom` |  | `false` | Path to certificate file to present to peer
`dtls_private_key` | `Custom` |  | `false` | Path to private key for certificate file
`dtls_cipher` | `Custom` |  | `false` | Cipher to use for DTLS negotiation
`dtls_ca_file` | `Custom` |  | `false` | Path to certificate authority certificate
`dtls_ca_path` | `Custom` |  | `false` | Path to a directory containing certificate authority certificates
`dtls_setup` | `Custom` |  | `false` | Whether we are willing to accept connections, connect to the other party, or both.
`srtp_tag_32` | `Boolean` | `no` | `false` | Determines whether 32 byte tags should be used instead of 80 byte tags.
`set_var` | `Custom` |  | `false` | Variable set on a channel involving the endpoint.
`message_context` | `String` |  | `false` | Context to route incoming MESSAGE requests to.
`accountcode` | `String` |  | `false` | 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 the `invite` value.
- `update`

##### connected_line_method

Method used when updating connected line information.

- `invite`
- `reinvite` - Alias for the `invite` 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 older `chan_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.

Note

Icon

Be aware that the `external_media_address` option, set in Transport configuration, can also affect the final media address used 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.

Note

Icon

Endpoints can also be identified by IP address; however, that method of identification is not handled by this configuration option. See the documentation for the `identify` configuration section for more details on that method of endpoint identification. If this option is set to `username` and an `identify` configuration section exists for the endpoint, then the endpoint can be identified in multiple ways.

- `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.

Warning

Icon

Not specifying a transport will DEFAULT to the first configured transport in `pjsip.conf` which is valid for the URI we are trying to contact.

Warning

Icon

Transport configuration is not affected by reloads. In order to change transports, a full Asterisk restart is required

##### 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.

Note

Icon

This setting has no effect if the endpoint's one_touch_recording option is disabled

##### 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.

Note

Icon

This setting has no effect if the endpoint's one_touch_recording option is disabled

##### 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
--- | --- | --- | --- | ---
`auth_type` | `Custom` | `userpass` | `false` | Authentication type
`nonce_lifetime` | `Unsigned Integer` | `32` | `false` | Lifetime of a nonce associated with this authentication config.
`md5_cred` | `String` |  | `false` | MD5 Hash used for authentication.
`password` | `String` |  | `false` | PlainText password used for authentication.
`realm` | `String` |  | `false` | SIP realm for endpoint
`type` | `None` |  | `false` | Must be 'auth'
`username` | `String` |  | `false` | 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
--- | --- | --- | --- | ---
`type` | `None` |  | `false` | Must be of type 'domain_alias'.
`domain` | `String` |  | `false` | Domain to be aliased

### transport

SIP Transport

#### Configuration Option Reference

Option Name | Type | Default Value | Regular Expression | Description
--- | --- | --- | --- | ---
`async_operations` | `Unsigned Integer` | `1` | `false` | Number of simultaneous Asynchronous Operations
`bind` | `Custom` |  | `false` | IP Address and optional port to bind to for this transport
`ca_list_file` | `String` |  | `false` | File containing a list of certificates to read (TLS ONLY)
`cert_file` | `String` |  | `false` | Certificate file for endpoint (TLS ONLY)
`cipher` | `Custom` |  | `false` | Preferred Cryptography Cipher (TLS ONLY)
`domain` | `String` |  | `false` | Domain the transport comes from
`external_media_address` | `String` |  | `false` | External IP address to use in RTP handling
`external_signaling_address` | `String` |  | `false` | External address for SIP signalling
`external_signaling_port` | `Unsigned Integer` | `0` | `false` | External port for SIP signalling
`method` | `Custom` |  | `false` | Method of SSL transport (TLS ONLY)
`local_net` | `Custom` |  | `false` | Network to consider local (used for NAT purposes).
`password` | `String` |  | `false` | Password required for transport
`priv_key_file` | `String` |  | `false` | Private key file (TLS ONLY)
`protocol` | `Custom` | `udp` | `false` | Protocol to use for SIP traffic
`require_client_cert` | `Custom` |  | `false` | Require client certificate (TLS ONLY)
`type` | `None` |  | `false` | Must be of type 'transport'.
`verify_client` | `Custom` |  | `false` | Require verification of client certificate (TLS ONLY)
`verify_server` | `Custom` |  | `false` | Require verification of server certificate (TLS ONLY)
`tos` | `Custom` | `0` | `false` | Enable TOS for the signalling sent over this transport
`cos` | `Unsigned Integer` | `0` | `false` | Enable COS for the signalling sent over this transport
`websocket_write_timeout` | `Integer` | `100` | `false` | 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.

Note

Icon

This option does not apply to the ws or the wss protocols.

##### cos

See `https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service` for more information on this parameter.

Note

Icon

This option does not apply to the ws or the wss protocols.

##### 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
--- | --- | --- | --- | ---
`type` | `None` |  | `false` | Must be of type 'contact'.
`uri` | `String` |  | `false` | SIP URI to contact peer
`expiration_time` | `Custom` |  | `false` | Time to keep alive a contact
`qualify_frequency` | `Unsigned Integer` | `0` | `false` | Interval at which to qualify a contact
`outbound_proxy` | `String` |  | `false` | Outbound proxy used when sending OPTIONS request
`path` | `String` |  | `false` | Stored Path vector for use in Route headers on outgoing requests.
`user_agent` | `String` |  | `false` | 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
--- | --- | --- | --- | ---
`contact` | `Custom` |  | `false` | Permanent contacts assigned to AoR
`default_expiration` | `Unsigned Integer` | `3600` | `false` | Default expiration time in seconds for contacts that are dynamically bound to an AoR.
`mailboxes` | `String` |  | `false` | Allow subscriptions for the specified mailbox(es)
`maximum_expiration` | `Unsigned Integer` | `7200` | `false` | Maximum time to keep an AoR
`max_contacts` | `Unsigned Integer` | `0` | `false` | Maximum number of contacts that can bind to an AoR
`minimum_expiration` | `Unsigned Integer` | `60` | `false` | Minimum keep alive time for an AoR
`remove_existing` | `Boolean` | `no` | `false` | Determines whether new contacts replace existing ones.
`type` | `None` |  | `false` | Must be of type 'aor'.
`qualify_frequency` | `Unsigned Integer` | `0` | `false` | Interval at which to qualify an AoR
`authenticate_qualify` | `Boolean` | `no` | `false` | Authenticates a qualify request if needed
`outbound_proxy` | `String` |  | `false` | Outbound proxy used when sending OPTIONS request
`support_path` | `Boolean` | `no` | `false` | 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.

Note

Icon

This should be set to `1` and remove_existing set to `yes` if you wish to stick with the older `chan_sip` behaviour.

##### 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?

Note

Icon

This should be set to `yes` and max_contacts set to `1` if you wish to stick with the older `chan_sip` behaviour.

##### 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
--- | --- | --- | --- | ---
`timer_t1` | `Unsigned Integer` | `500` | `false` | Set transaction timer T1 value (milliseconds).
`timer_b` | `Unsigned Integer` | `32000` | `false` | Set transaction timer B value (milliseconds).
`compact_headers` | `Boolean` | `no` | `false` | Use the short forms of common SIP header names.
`threadpool_initial_size` | `Unsigned Integer` | `0` | `false` | Initial number of threads in the res_pjsip threadpool.
`threadpool_auto_increment` | `Unsigned Integer` | `5` | `false` | The amount by which the number of threads is incremented when necessary.
`threadpool_idle_timeout` | `Unsigned Integer` | `60` | `false` | Number of seconds before an idle thread should be disposed of.
`threadpool_max_size` | `Unsigned Integer` | `0` | `false` | Maximum number of threads in the res_pjsip threadpool. A value of 0 indicates no maximum.
`type` | `None` |  | `false` | 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
--- | --- | --- | --- | ---
`max_forwards` | `Unsigned Integer` | `70` | `false` | Value used in Max-Forwards header for SIP requests.
`type` | `None` |  | `false` | Must be of type 'global'.
`user_agent` | `String` | `Asterisk PBX SVN-branch-13-r420717` | `false` | Value used in User-Agent header for SIP requests and Server header for SIP responses.
`default_outbound_endpoint` | `String` | `default_outbound_endpoint` | `false` | Endpoint to use when sending an outbound request to a URI without a specified endpoint.
`debug` | `String` | `no` | `false` | 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