Loading...
Searching...
No Matches
nta_tag.h File Reference

NTA tags. More...

`#include <sofia-sip/su_tag.h>`
`#include <sofia-sip/sip_tag.h>`
`#include <sofia-sip/url_tag.h>`
Include dependency graph for nta_tag.h:

Go to the source code of this file.

## Macros

#define | NTA_TAG_H
| Defined when <sofia-sip/nta_tag.h> has been included.
#define | NTATAG_ANY()
| Filter tag matching any nta tag.
#define | NTATAG_MCLASS(x)
| Message class used by NTA.
#define | NTATAG_BAD_REQ_MASK(x)
| Mask for bad request messages.
#define | NTATAG_BAD_RESP_MASK(x)
| Mask for bad response messages.
#define | NTATAG_DEFAULT_PROXY(x)
| URL for (default) proxy.
#define | NTATAG_CONTACT(x)
| Contact used by NTA.
#define | NTATAG_TARGET(x)
| Dialog target (contact) used by NTA.
#define | NTATAG_ALIASES(x)
| Aliases used by NTA.
#define | NTATAG_BRANCH_KEY(x)
| Branch ID to the topmost Via header.
#define | NTATAG_ACK_BRANCH(x)
| Branch of the transaction to ACK.
#define | NTATAG_COMP(x)
| Compression algorithm.
#define | NTATAG_MSG(x)
| Pass a SIP message to treply()/tcreate() functions.
#define | NTATAG_TPORT(x)
| Pass a transport object.
#define | NTATAG_REMOTE_CSEQ(x)
| Remote CSeq number.
#define | NTATAG_SMIME(x)
| Provide S/MIME context to NTA.
#define | NTATAG_MAXSIZE(x)
| Maximum size of incoming message.
#define | NTATAG_UDP_MTU(x)
| Maximum size of outgoing UDP request.
#define | NTATAG_MAX_PROCEEDING(x)
| Maximum size of proceeding queue.
#define | NTATAG_MAX_FORWARDS(x)
| Default value for Max-Forwards header.
#define | NTATAG_SIP_T1(x)
| Initial retransmission interval (in milliseconds).
#define | NTATAG_SIP_T1X64(x)
| Transaction timeout (defaults to T1 * 64).
#define | NTATAG_SIP_T2(x)
| Maximum retransmission interval (in milliseconds).
#define | NTATAG_SIP_T4(x)
| Transaction lifetime (in milliseconds).
#define | NTATAG_PROGRESS(x)
| Progress timer for User-Agents (interval for retranmitting 1XXs).
#define | NTATAG_TIMER_C(x)
| Value for timer C in milliseconds.
#define | NTATAG_GRAYLIST(x)
| Avoid failed servers.
#define | NTATAG_BLACKLIST(x)
| Add Retry-After header to error responses returned to application.
#define | NTATAG_DEBUG_DROP_PROB(x)
| Packet drop probability for debugging.
#define | NTATAG_SIGCOMP_OPTIONS(x)
| Semicolon-separated SigComp options.
#define | NTATAG_SIGCOMP_CLOSE(x)
| Close SigComp compartment after completing transaction.
#define | NTATAG_SIGCOMP_AWARE(x)
| Indicate that the application is SigComp-aware.
#define | NTATAG_SIGCOMP_ALGORITHM(x)
| Specify SigComp algorithm.
#define | NTATAG_UA(x)
| If true, NTA acts as User Agent Server or Client by default.
#define | NTATAG_STATELESS(x)
| Enable stateless processing.
#define | NTATAG_USER_VIA(x)
| Allow application to insert Via headers.
#define | NTATAG_EXTRA_100(x)
| Respond with "100 Trying" if application has not responded.
#define | NTATAG_PASS_100(x)
| Pass "<i>100 Trying</i>" provisional answers to the application.
#define | NTATAG_TIMEOUT_408(x)
| Generate "408 Request Timeout" response when request times out.
#define | NTATAG_PASS_408(x)
| Pass "408 Request Timeout" responses to the client.
#define | NTATAG_NO_DIALOG(x)
| Create a leg without dialog.
#define | NTATAG_MERGE_482(x)
| Merge requests, send 482 to other requests.
#define | NTATAG_CANCEL_2543(x)
| Follow RFC 2543 semantics with CANCEL.
#define | NTATAG_CANCEL_408(x)
| Do not send a CANCEL but just timeout the request.
#define | NTATAG_TAG_3261(x)
| When responding to requests, use unique tags.
#define | NTATAG_USE_TIMESTAMP(x)
| Use Timestamp header.
#define | NTATAG_METHOD(x)
| Method name.
#define | NTATAG_CANCEL_487(x)
| When a CANCEL is received, automatically return 487 response to original request.
#define | NTATAG_REL100(x)
| Include rel100 in INVITE requests.
#define | NTATAG_SIPFLAGS(x)
| Set SIP parser flags.
#define | NTATAG_CLIENT_RPORT(x)
| Enable client-side "rport".
#define | NTATAG_SERVER_RPORT(x)
| Use rport parameter at server.
#define | NTATAG_TCP_RPORT(x)
| Use rport with TCP, too.
#define | NTATAG_TLS_RPORT(x)
| Use rport with TLS, too.
#define | NTATAG_PRELOAD(x)
| Preload by N bytes.
#define | NTATAG_USE_NAPTR(x)
| If true, try to use NAPTR records when resolving.
#define | NTATAG_USE_SRV(x)
| If true, try to use SRV records when resolving.
#define | NTATAG_RSEQ(x)
| RSeq value for nta_outgoing_prack().
#define | NTATAG_S_IRQ_HASH_REF(x)
| Get size of hash table for server-side transactions.
#define | NTATAG_S_ORQ_HASH_REF(x)
| Get size of hash table for client-side transactions.
#define | NTATAG_S_LEG_HASH_REF(x)
| Get size of hash table for dialogs.
#define | NTATAG_S_IRQ_HASH_USED_REF(x)
| Get number of server-side transactions in the hash table.
#define | NTATAG_S_ORQ_HASH_USED_REF(x)
| Get number of client-side transactions in the hash table.
#define | NTATAG_S_LEG_HASH_USED_REF(x)
| Get number of dialogs in the hash table.
#define | NTATAG_S_RECV_MSG_REF(x)
| Get number of SIP messages received.
#define | NTATAG_S_RECV_REQUEST_REF(x)
| Get number of SIP requests received.
#define | NTATAG_S_RECV_RESPONSE_REF(x)
| Get number of SIP responses received.
#define | NTATAG_S_BAD_MESSAGE_REF(x)
| Get number of bad SIP messages received.
#define | NTATAG_S_BAD_REQUEST_REF(x)
| Get number of bad SIP requests received.
#define | NTATAG_S_BAD_RESPONSE_REF(x)
| Get number of bad SIP responses received.
#define | NTATAG_S_DROP_REQUEST_REF(x)
| Get number of SIP requests dropped.
#define | NTATAG_S_DROP_RESPONSE_REF(x)
| Get number of SIP responses dropped.
#define | NTATAG_S_CLIENT_TR_REF(x)
| Get number of client transactions created.
#define | NTATAG_S_SERVER_TR_REF(x)
| Get number of server transactions created.
#define | NTATAG_S_DIALOG_TR_REF(x)
| Get number of in-dialog server transactions created.
#define | NTATAG_S_ACKED_TR_REF(x)
| Get number of server transactions that have received ACK.
#define | NTATAG_S_CANCELED_TR_REF(x)
| Get number of server transactions that have been CANCELed.
#define | NTATAG_S_TRLESS_REQUEST_REF(x)
| Get number of requests that were processed stateless.
#define | NTATAG_S_TRLESS_TO_TR_REF(x)
| Get number of requests converted to transactions by message callback.
#define | NTATAG_S_TRLESS_RESPONSE_REF(x)
| Get number of responses without matching request.
#define | NTATAG_S_TRLESS_200_REF(x)
| Get number of successful responses missing INVITE client transaction.
#define | NTATAG_S_MERGED_REQUEST_REF(x)
| Get number of requests merged by UAS.
#define | NTATAG_S_SENT_MSG_REF(x)
| Get number of SIP messages sent by stack.
#define | NTATAG_S_SENT_REQUEST_REF(x)
| Get number of SIP requests sent by stack.
#define | NTATAG_S_SENT_RESPONSE_REF(x)
| Get number of SIP responses sent by stack.
#define | NTATAG_S_RETRY_REQUEST_REF(x)
| Get number of SIP requests retransmitted by stack.
#define | NTATAG_S_RETRY_RESPONSE_REF(x)
| Get number of SIP responses retransmitted by stack.
#define | NTATAG_S_RECV_RETRY_REF(x)
| Get number of retransmitted SIP requests received by stack.
#define | NTATAG_S_TOUT_REQUEST_REF(x)
| Get number of SIP client transactions that has timeout.
#define | NTATAG_S_TOUT_RESPONSE_REF(x)
| Get number of SIP server transactions that has timeout.

## Variables

tag_type_t | nta_tag_list []
| List of all nta tags.

## Detailed Description

NTA tags.

Author
  Pekka Pessi Pekka.nosp@m..Pes.nosp@m.si@no.nosp@m.kia..nosp@m.com

Date
  Created: Tue Sep 4 15:54:57 2001 ppessi

## Macro Definition Documentation

## NTATAG_ACK_BRANCH

#define NTATAG_ACK_BRANCH | ( |  | x | ) |

Branch of the transaction to ACK.

When creating a ACK transaction, the application should provide the branch parameter from the original transaction to the stack. The ACK transaction object then receives all the retransmitted 2XX responses to the original INVITE transaction.

Used with
  nta_outgoing_mcreate(), nta_outgoing_tcreate()

Parameter type
  string

Value
  - "branch" ID used to store the ACK transaction in the nta hash table for outgoing client transaction

Default Value
  - The INVITE transaction is looked from the hash table using the Call-ID, CSeq, From and To tags and its branch ID is used

## NTATAG_ALIASES

#define NTATAG_ALIASES | ( |  | x | ) |

Aliases used by NTA.

Deprecated

## NTATAG_BAD_REQ_MASK

#define NTATAG_BAD_REQ_MASK | ( |  | x | ) |

Mask for bad request messages.

If an incoming request has erroneous headers matching with the mask, nta automatically returns a 400 Bad Message response to them.

If mask ~0U (all bits set) is specified, all requests with any bad header are dropped. By default only the requests with bad headers essential for request processing or proxying are dropped.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned int

Values
  - bitwise or of enum sip_bad_mask values

Default Value
  - `sip_mask_response | sip_mask_ua | sip_mask_100rel |`
    `sip_mask_events | sip_mask_timer | sip_mask_publish` The following headers are considered essential by default:
  - Sip_request "request line"", @ref sip_from "From", @ref sip_to "To", @ref sip_cseq "CSeq", @ref sip_call_id "Call-ID", @ref sip_content_length "Content-Length", @ref sip_via "Via", @ref sip_content_type "Content-Type", @ref sip_content_disposition "Content-Disposition", @ref sip_content_encoding "Content-Encoding", @ref sip_supported "Supported", @ref sip_contact "Contact", @ref sip_require "Require", @ref sip_record_route "Record-Route", @ref sip_rack "RAck", @ref sip_rseq "RSeq", @ref sip_event "Event", @ref sip_expires "Expires", @ref sip_subscription_state "Subscription-State", @ref sip_session_expires "Session-Expires", @ref sip_min_se "Min-SE", @ref sip_etag "SIP-ETag", and @ref sip_if_match "SIP-If-Match".

See also
  enum sip_bad_mask, NTATAG_BAD_RESP_MASK()

## NTATAG_BAD_RESP_MASK

#define NTATAG_BAD_RESP_MASK | ( |  | x | ) |

Mask for bad response messages.

If an incoming response has erroneous headers matching with the mask, nta drops the response message.

If mask ~0U (all bits set) is specified, all responses with any bad header are dropped. By default only the responses with bad headers essential for response processing or proxying are dropped.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned int

Values
  - bitwise or of enum sip_bad_mask values

See also
  enum sip_bad_mask, NTATAG_BAD_REQ_MASK()

Default Value
  - `sip_mask_response | sip_mask_ua | sip_mask_100rel |`
    `sip_mask_events | sip_mask_timer | sip_mask_publish` The following headers are considered essential by default:
  - Sip_status "status line"", @ref sip_from "From", @ref sip_to "To", @ref sip_cseq "CSeq", @ref sip_call_id "Call-ID", @ref sip_content_length "Content-Length", @ref sip_via "Via", @ref sip_content_type "Content-Type", @ref sip_content_disposition "Content-Disposition", @ref sip_content_encoding "Content-Encoding", @ref sip_supported "Supported", @ref sip_contact "Contact", @ref sip_require "Require", @ref sip_record_route "Record-Route", @ref sip_rack "RAck", @ref sip_rseq "RSeq", @ref sip_event "Event", @ref sip_expires "Expires", @ref sip_subscription_state "Subscription-State", @ref sip_session_expires "Session-Expires", @ref sip_min_se "Min-SE", @ref sip_etag "SIP-ETag", and @ref sip_if_match "SIP-If-Match".

## NTATAG_BLACKLIST

#define NTATAG_BLACKLIST | ( |  | x | ) |

Add Retry-After header to error responses returned to application.

The NTATAG_BLACKLIST() provides a default value for Retry-After header added to the internally generated responses such as 503 DNS Error or 408 Timeout. The idea is that the application can retain its current state and retry the operation after a while.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned int

Values
  - Value of delta-seconds in Retry-After header, from 0 to 86400

Default Value
  - 0 (no Retry-After header is included)

See also
  NTATAG_TIMEOUT_408()

## NTATAG_BRANCH_KEY

#define NTATAG_BRANCH_KEY | ( |  | x | ) |

Branch ID to the topmost Via header.

The NTA generates a random branch ID for the topmost Via header by default. The application can the branch by itself, for intance, if it wants to create a RFC 2543-era transaction.

Note that according to RFC 3261 the branch ID must start with "z9hG4bK".

Used with
  nta_outgoing_mcreate(), nta_outgoing_tcreate(), nta_outgoing_tcancel(), nta_outgoing_prack(), nta_msg_tsend()

Parameter type
  string

Value
  - The "branch" ID to to insert into topmost Via header of the request to be sent

Default Value
  - A token is generated, either by random when a client transaction is created or by hashing the headers and contents of the request when request is sent statelessly

See also
  RFC 3261 section 8.1.1.7

## NTATAG_CANCEL_2543

#define NTATAG_CANCEL_2543 | ( |  | x | ) |

Follow RFC 2543 semantics with CANCEL.

By default, the nta follows "<a href="http://tools.ietf.org/html3261">RFC 3261</a>" semantics when CANCELing a request. The CANCEL does not terminate transaction, rather, it is just a hint to the server that it should respond immediately (with 487 Request Terminated if it has no better response). Also, if the original request was sent over unreliable transport such as UDP, the CANCEL is delayed until the server has sent a preliminary response to the original request.

If NTATAG_CANCEL_2543(1) is given, the transaction is canceled immediately internally (a 487 response is generated locally) and the CANCEL request is sent without waiting for an provisional response.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params() nta_outgoing_tcancel()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - follow "RFC 2543" semantics with CANCEL
  - false - follow "RFC 3261" semantics with CANCEL

See also
  NTATAG_CANCEL_408()

## NTATAG_CANCEL_408

#define NTATAG_CANCEL_408 | ( |  | x | ) |

Do not send a CANCEL but just timeout the request.

Calling nta_outgoing_tcancel() with this tag set marks request as canceled but does not actually send a CANCEL request. If NTATAG_CANCEL_2543(1) is also included, a 487 response is generated internally.

Used with
  nta_outgoing_tcancel()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - do not send CANCEL
  - false - let request to timeout

See also
  NTATAG_CANCEL_2543()

## NTATAG_CANCEL_487

#define NTATAG_CANCEL_487 | ( |  | x | ) |

When a CANCEL is received, automatically return 487 response to original request.

When the CANCEL is received for an ongoing server transaction nta_incoming_t, the stack will automatically return a 487 Request Terminated response to the client after returning from the #nta_incoming_f callback bound to the transaction with nta_incoming_bind()

The application can delay sending the response to the original request when NTATAG_CANCEL_408(0) is used. This is useful, for instance, with a proxy that forwards the CANCEL downstream and the forwards the response back to upstream.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - respond automatically to the CANCELed transaction
  - false - application takes care of responding

See also
  NTATAG_CANCEL_2543(), nta_incoming_bind()

## NTATAG_CLIENT_RPORT

#define NTATAG_CLIENT_RPORT | ( |  | x | ) |

Enable client-side "rport".

This tag controls RFC 3581 support on client side. The "rport" parameter is used when the response has to be routed symmetrically through a NAT box.

The client-side support involves just adding the "rport" parameter to the topmost Via header before the request is sent.

Note
  By default, the client "rport" is disabled when nta is used, and enabled when nua is used.

Used with
  nua_create() (nua uses NTATAG_CLIENT_RPORT(1) by default)
  nta_agent_create()
  nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - add "rport" parameter
  - false - do not add "rport" parameter

Note
  The NTATAG_RPORT() is a synonym for this.

See also
  RFC 3581, NTATAG_SERVER_RPORT(), NTATAG_TCP_RPORT(), NTATAG_TLS_RPORT(), Via

## NTATAG_COMP

#define NTATAG_COMP | ( |  | x | ) |

Compression algorithm.

Set compression algorithm for request as described in RFC 3486.

Note
  This tag is has no effect without a compression plugin.

Used with
  nta_outgoing_mcreate(), nta_outgoing_tcreate(), nta_outgoing_tcancel(), nta_outgoing_prack(), nta_msg_tsend()

  Note that NTATAG_COMP(NULL) can be used with nta_incoming_set_params() and nta_incoming_treply(), too. It indicates that the response is sent uncompressed, no matter what the client has in comp parameter of Via header.

Parameter type
  string

Values
  - name of the compression algorithm

Default Value
  - "sigcomp"

See also
  RFC 3320, RFC 3486, TPTAG_COMPARTMENT(), NTATAG_SIGCOMP_ALGORITHM(), NTATAG_SIGCOMP_AWARE(), NTATAG_SIGCOMP_CLOSE(), NTATAG_SIGCOMP_OPTIONS()

## NTATAG_DEBUG_DROP_PROB

#define NTATAG_DEBUG_DROP_PROB | ( |  | x | ) |

Packet drop probability for debugging.

The packet drop probability parameter is useful mainly for debugging purposes. The stack drops an incoming message received over an unreliable transport (such as UDP) with the given probability. The range is in 0 .. 1000, 500 means p=0.5.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned integer

Values
  - Valid values are in range 0 ... 1000
  - Probablity to drop a given message is value / 1000.

Default Value
  - 0 (no packets are dropped)

See also
  TPTAG_DEBUG_DROP()

## NTATAG_DEFAULT_PROXY

#define NTATAG_DEFAULT_PROXY | ( |  | x | ) |

URL for (default) proxy.

The requests are sent towards the default outbound proxy regardless the values of request-URI or Route headers in the request. The URL of the default proxy is not added to the request in the Route header or in the request-URI (against the recommendation of RFC 3261 section 8.1.2).

The outbound proxy set by NTATAG_DEFAULT_PROXY() is used even if the dialog had an established route set or registration provided User-Agent with a Service-Route set.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params(), nta_outgoing_mcreate(), nta_outgoing_tcreate(), nta_outgoing_tcancel(), nta_outgoing_prack(), nta_msg_tsend()

Parameter type
  Pointer to a url_t structure or a string containg a SIP or SIPS URI

Values
  - Valid SIP or SIPS URI

## NTATAG_EXTRA_100

#define NTATAG_EXTRA_100 | ( |  | x | ) |

Respond with "100 Trying" if application has not responded.

As per recommended by RFC 4320, the stack can generate a 100 Trying response to the non-INVITE requests if the application has not responded to a request within half of the SIP T2 (the default value for T2 is 4000 milliseconds, so the extra 100 Trying would be sent after 2 seconds).

At agent level, this option applies to retransmissions of both non-INVITE and INVITE transactions.

At incoming request level, this option can disable sending the 100 Trying for both retransmissions (if set at agent level) and N1 firings, for just a given incoming request.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params(), nta_incoming_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - send extra 100 Trying if application does not respond
  - false - do not send 100 Trying

Default Value at Agent level
  - 0 (false, do not respond with 100 Trying to retransmissions)

Default Value at incoming transaction level
  - 1 (true, respond with 100 Trying to retransmissions and when N1 fired)

See also
  RFC 4320, NTATAG_PASS_408(), NTATAG_TIMEOUT_408()

## NTATAG_GRAYLIST

#define NTATAG_GRAYLIST | ( |  | x | ) |

Avoid failed servers.

The NTATAG_GRAYLIST() provides the time that the servers are avoided after a request sent to them has been failed. Avoiding means that if a domain provides multiple servers, the failed servers are tried last.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned int

Values
  - Number of seconds that server is kept in graylist, from 0 to 86400.

Default Value
  - 600 (graylist server for 10 minutes)

See also
  NTATAG_BLACKLIST(), NTATAG_TIMEOUT_408()

Since
  New in 1.12.8

## NTATAG_MAX_FORWARDS

#define NTATAG_MAX_FORWARDS | ( |  | x | ) |

Default value for Max-Forwards header.

The default value of Max-Forwards header added to the requests. The initial value recommended by RFC 3261 is 70, but usually SIP proxies use much lower default value, such as 24.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned

Values
  - Default value added to the Max-Forwards header in the sent requests

Default Value
  - 70 (hops)

Since
  New in 1.12.2.

## NTATAG_MAX_PROCEEDING

#define NTATAG_MAX_PROCEEDING | ( |  | x | ) |

Maximum size of proceeding queue.

If the size of the proceedng message queue would exceed the given limit, the stack will automatically respond with 503 Service Unavailable.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  - #usize_t

Values
  - Maximum acceptable size of a queue (size_t).

Since
  New in 1.12.9

## NTATAG_MAXSIZE

#define NTATAG_MAXSIZE | ( |  | x | ) |

Maximum size of incoming message.

If the size of an incoming request message would exceed the given limit, the stack will automatically respond with 413 Request Entity Too Large.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  - #usize_t

Values
  - Maximum acceptable size of an incoming request message.

Default Value
  - 2097152 (bytes or 2 megabytes)

See also
  msg_maxsize(), NTATAG_UDP_MTU()

## NTATAG_MCLASS

#define NTATAG_MCLASS | ( |  | x | ) |

Message class used by NTA.

The nta can use a custom or extended parser created with msg_mclass_clone().

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  pointer to msg_mclass_t.

Values
  - custom or extended parser created with msg_mclass_clone()
  - NULL - use default parser

Default Value
  - Value returned by sip_default_mclass()

See also
  NTATAG_SIPFLAGS()

## NTATAG_MERGE_482

#define NTATAG_MERGE_482 | ( |  | x | ) |

Merge requests, send 482 to other requests.

If an User-Agent receives a duplicate request with same Call-ID, CSeq, From tag but different topmost Via header (see RFC 3261 section 8.2.2.2 Merged Requests), it should return 482 Request Merged response to the duplicate request. Such a duplicate request has been originally generated by a forking proxy and usually routed via different route to the User-Agent. The User-Agent should only respond meaningfully to the first request and return the 482 response to the following forked requests.

Note that also NTATAG_UA(1) should be set before nta detects merges and responds with 482 to them.

Note
  If your application is an multi-lined user-agent, you may consider disabling request merging. However, you have to somehow handle merging within a single line.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - detect duplicate requests and respond with 482 to them
  - false - process duplicate requests separately

See also
  NTATAG_UA(1)

## NTATAG_METHOD

#define NTATAG_METHOD | ( |  | x | ) |

Method name.

Create a dialogless nta_leg_t object matching only requests with the specified method.

Used with
  nta_leg_tcreate()

Parameter type
  String containing method name.

Values
  - A SIP method name (e.g., "SUBSCRIBE").

Default Value
  - None (i.e., all requests methods match with the leg)

## NTATAG_MSG

#define NTATAG_MSG | ( |  | x | ) |

Pass a SIP message to treply()/tcreate() functions.

Used with
  nta_outgoing_tcreate(), nta_incoming_treply()

Parameter type
  msg_t

Values
  - A message object which will be completed, serialized and encoded. Note that the functions modify directly the message.

Default Value
  - A new message object is created and populated by the function call.

See also
  msg_copy(), msg_dup(), msg_create(), sip_default_mclass()

## NTATAG_PASS_100

#define NTATAG_PASS_100 | ( |  | x | ) |

Pass "<i>100 Trying</i>" provisional answers to the application.

By default, the stack silently processes the 100 Trying responses from the server. Usually the 100 Trying responses are not important to the application but rather sent by the outgoing proxy immediately after it has received the request. However, the application can ask nta for them by setting NTATAG_PASS_100(1) if, for instance, the 100 Trying responses are needed for user feedback.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params(), nta_outgoing_mcreate(), nta_outgoing_tcreate(), nta_outgoing_tcancel(), nta_outgoing_prack(), nta_msg_tsend()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - pass 100 Trying to application
  - false - silently process 100 Trying responses

Default Value
  - 0 (false, save application from seeing 100 Trying)

See also
  NTATAG_EXTRA_100(), NTATAG_DEFAULT_PROXY()

## NTATAG_PASS_408

#define NTATAG_PASS_408 | ( |  | x | ) |

Pass "408 Request Timeout" responses to the client.

As per recommended by RFC 4320, the 408 Request Timeout responses to non-INVITE transaction are not sent over the network to the client by default. The application can ask stack to pass the 408 responses with NTATAG_PASS_408(1).

Note that unlike NTATAG_PASS_100(), this tags changes the way server side works.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - pass superfluous 408 responses
  - false - discard superfluous 408 responses

See also
  RFC 4320, NTATAG_EXTRA_100(), NTATAG_TIMEOUT_408()

## NTATAG_PRELOAD

#define NTATAG_PRELOAD | ( |  | x | ) |

Preload by N bytes.

When the memory block is allocated for an incoming request by the stack, the stack can allocate some extra memory for the parser in addition to the memory used by the actual message contents.

While wasting some memory, this can speed up parsing considerably. Recommended amount of preloading per packet is 1500 bytes.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned

Values
  Amount of extra per-message memory allocated for parser.

See also
  NTATAG_SIPFLAGS() and MSG_FLG_EXTRACT_COPY

## NTATAG_PROGRESS

#define NTATAG_PROGRESS | ( |  | x | ) |

Progress timer for User-Agents (interval for retranmitting 1XXs).

The UAS should retransmit preliminary responses to the INVITE transactions every minute in order to re-set the timer C within the intermediate proxies.

The default value for the progress timer is 60000.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned int

Values
  Value of progress timer in milliseconds.

Default Value
  - 90000 (milliseconds, 1.5 minutes)

See also
  RFC 3261 sections 13.3.1.1, 16.7 and 16.8, NTATAG_TIMER_C(), NTATAG_SIP_T1(), NTATAG_SIP_T1X4(), NTATAG_SIP_T2(), NTATAG_SIP_T4()

## NTATAG_REL100

#define NTATAG_REL100 | ( |  | x | ) |

Include rel100 in INVITE requests.

Include feature tag "100rel" in Supported header of the INVITE requests.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - include "100rel"
  - false - do not include "100rel"

See also
  nta_outgoing_prack(), nta_reliable_treply(), nta_reliable_mreply()

## NTATAG_REMOTE_CSEQ

#define NTATAG_REMOTE_CSEQ | ( |  | x | ) |

Remote CSeq number.

Specify remote command sequence number for a nta_leg_t dialog object. If an request is received matching with the dialog but with CSeq number less than the remote sequence number associated with the dialog, a 500 Internal Server Error response is automatically returned to the client.

Used with
  nta_leg_tcreate()

Parameter type
  - uint32_t

Values
  - Remote command sequence number

Default Value
  - Initially 0, then determined by the received requests

## NTATAG_RSEQ

#define NTATAG_RSEQ | ( |  | x | ) |

RSeq value for nta_outgoing_prack().

Used with
  nta_outgoing_prack()

Parameter type
  `unsigned` `int`

Values
  Response sequence number from the RSeq header.

## NTATAG_S_ACKED_TR_REF

#define NTATAG_S_ACKED_TR_REF | ( |  | x | ) |

Get number of server transactions that have received ACK.

Return number of INVITE server transactions for which an ACK request has been received.

See also
  nta_agent_get_stats(), NTATAG_S_SERVER_TR_REF(), NTATAG_S_CANCELED_TR_REF()

## NTATAG_S_BAD_MESSAGE_REF

#define NTATAG_S_BAD_MESSAGE_REF | ( |  | x | ) |

Get number of bad SIP messages received.

Return number of bad SIP messages that has been received.

See also
  nta_agent_get_stats(), NTATAG_S_RECV_MSG_REF(), NTATAG_S_BAD_REQUEST_REF(), NTATAG_S_BAD_RESPONSE_REF().

## NTATAG_S_BAD_REQUEST_REF

#define NTATAG_S_BAD_REQUEST_REF | ( |  | x | ) |

Get number of bad SIP requests received.

Return number of bad SIP requests that has been received.

See also
  nta_agent_get_stats(), NTATAG_S_BAD_MESSAGE_REF(), NTATAG_S_BAD_RESPONSE_REF().

## NTATAG_S_BAD_RESPONSE_REF

#define NTATAG_S_BAD_RESPONSE_REF | ( |  | x | ) |

Get number of bad SIP responses received.

Return number of bad SIP responses that has been received.

See also
  nta_agent_get_stats(), NTATAG_S_BAD_MESSAGE_REF(), NTATAG_S_BAD_REQUEST_REF()

## NTATAG_S_CANCELED_TR_REF

#define NTATAG_S_CANCELED_TR_REF | ( |  | x | ) |

Get number of server transactions that have been CANCELed.

Return number of server transactions for which an CANCEL request has been received. Currently, the count includes only INVITE server transactions that have been CANCELed.

See also
  nta_agent_get_stats(), NTATAG_S_SERVER_TR_REF(), NTATAG_S_ACKED_TR_REF().

## NTATAG_S_CLIENT_TR_REF

#define NTATAG_S_CLIENT_TR_REF | ( |  | x | ) |

Get number of client transactions created.

Return number of client transactions created. The number also includes client transactions with which stack failed to send the request because the DNS resolving failed or the transport failed.

Note
  The number include stateless requests sent with nta_msg_tsend(), too.

See also
  nta_agent_get_stats(), NTATAG_S_SENT_REQUEST_REF(), NTATAG_S_SERVER_TR_REF().

## NTATAG_S_DIALOG_TR_REF

#define NTATAG_S_DIALOG_TR_REF | ( |  | x | ) |

Get number of in-dialog server transactions created.

Return number of in-dialog server transactions created. The number includes only those transactions that were correlated with a dialog object.

See also
  nta_agent_get_stats(), NTATAG_S_SERVER_TR_REF(), NTATAG_S_CLIENT_TR_REF(), NTATAG_S_RECV_RESPONSE_REF().

## NTATAG_S_DROP_REQUEST_REF

#define NTATAG_S_DROP_REQUEST_REF | ( |  | x | ) |

Get number of SIP requests dropped.

Return number of SIP requests that has been randomly dropped after receiving them because of NTATAG_DEBUG_DROP_PROB() has been set.

See also
  nta_agent_get_stats(), NTATAG_DEBUG_DROP_PROB(), NTATAG_S_DROP_RESPONSE_REF()

Note
  The value was not calculated before 1.12.7.

## NTATAG_S_DROP_RESPONSE_REF

#define NTATAG_S_DROP_RESPONSE_REF | ( |  | x | ) |

Get number of SIP responses dropped.

Return number of SIP responses that has been randomly dropped after receiving them because of NTATAG_DEBUG_DROP_PROB() has been set.

See also
  nta_agent_get_stats(), NTATAG_DEBUG_DROP_PROB(), NTATAG_S_DROP_REQUEST_REF()

Note
  The value was not calculated before 1.12.7.

## NTATAG_S_IRQ_HASH_REF

#define NTATAG_S_IRQ_HASH_REF | ( |  | x | ) |

Get size of hash table for server-side transactions.

Return number of transactions that fit in the hash table for server-side transactions.

See also
  nta_agent_get_stats(), NTATAG_S_IRQ_HASH_USED_REF(), NTATAG_S_ORQ_HASH_REFxs(), NTATAG_S_LEG_HASH_REF()

## NTATAG_S_IRQ_HASH_USED_REF

#define NTATAG_S_IRQ_HASH_USED_REF | ( |  | x | ) |

Get number of server-side transactions in the hash table.

Return number of server-side transactions objects in the hash table. The number includes all transactions destroyed by the application which have not expired yet.

See also
  nta_agent_get_stats(), NTATAG_S_IRQ_HASH_REF(), NTATAG_S_ORQ_HASH_USED_REF(), NTATAG_S_LEG_HASH_USED_REF()

## NTATAG_S_LEG_HASH_REF

#define NTATAG_S_LEG_HASH_REF | ( |  | x | ) |

Get size of hash table for dialogs.

Return number of dialog objects that fit in the hash table for dialogs.

See also
  nta_agent_get_stats(), NTATAG_S_LEG_HASH_USED_REF(), NTATAG_S_IRQ_HASH_REF(), NTATAG_S_ORQ_HASH_REF()

## NTATAG_S_LEG_HASH_USED_REF

#define NTATAG_S_LEG_HASH_USED_REF | ( |  | x | ) |

Get number of dialogs in the hash table.

Return number of dialog objects in the hash table. Note that the nta_leg_t objects created with NTATAG_NO_DIALOG(1) and this not corresponding to a dialog are not included in the number.

See also
  nta_agent_get_stats(), NTATAG_S_LEG_HASH_REF(), NTATAG_S_IRQ_HASH_USED_REF(), NTATAG_S_ORQ_HASH_USED_REF()

## NTATAG_S_MERGED_REQUEST_REF

#define NTATAG_S_MERGED_REQUEST_REF | ( |  | x | ) |

Get number of requests merged by UAS.

Return number of requests for which UAS already has returned a response and which were merged (that is, returned a 482 Request Merged response).

See also
  nta_agent_get_stats(), NTATAG_UA(1), RFC 3261 section 8.2.2.2

## NTATAG_S_ORQ_HASH_REF

#define NTATAG_S_ORQ_HASH_REF | ( |  | x | ) |

Get size of hash table for client-side transactions.

Return number of transactions that fit in the hash table for client-side transactions.

See also
  nta_agent_get_stats(), NTATAG_S_ORQ_HASH_USED_REF(), NTATAG_S_IRQ_HASH_REF(), NTATAG_S_LEG_HASH_REF()

## NTATAG_S_ORQ_HASH_USED_REF

#define NTATAG_S_ORQ_HASH_USED_REF | ( |  | x | ) |

Get number of client-side transactions in the hash table.

Return number of client-side transactions objects in the hash table. The number includes all transactions destroyed by the application which have not expired yet.

See also
  nta_agent_get_stats(), NTATAG_S_ORQ_HASH_REF(), NTATAG_S_IRQ_HASH_USED_REF(), NTATAG_S_LEG_HASH_USED_REF()

## NTATAG_S_RECV_MSG_REF

#define NTATAG_S_RECV_MSG_REF | ( |  | x | ) |

Get number of SIP messages received.

Return number SIP messages that has been received. The number includes also bad and unparsable messages.

See also
  nta_agent_get_stats(), NTATAG_S_BAD_MESSAGE_REF(), NTATAG_S_RECV_REQUEST_REF(), NTATAG_S_RECV_RESPONSE_REF()

## NTATAG_S_RECV_REQUEST_REF

#define NTATAG_S_RECV_REQUEST_REF | ( |  | x | ) |

Get number of SIP requests received.

Return number SIP requests that has been received. The number includes also number of bad requests available with NTATAG_S_BAD_REQUEST_REF().

See also
  nta_agent_get_stats(), NTATAG_S_BAD_REQUEST_REF(), NTATAG_S_RECV_MSG_REF(), NTATAG_S_RECV_RESPONSE_REF()

## NTATAG_S_RECV_RESPONSE_REF

#define NTATAG_S_RECV_RESPONSE_REF | ( |  | x | ) |

Get number of SIP responses received.

Return number SIP responses that has been received. The number includes also number of bad and unusable responses available with NTATAG_S_BAD_RESPONSE_REF().

See also
  nta_agent_get_stats(), NTATAG_S_BAD_RESPONSE_REF(), NTATAG_S_RECV_MSG_REF(), NTATAG_S_RECV_REQUEST_REF()

## NTATAG_S_RECV_RETRY_REF

#define NTATAG_S_RECV_RETRY_REF | ( |  | x | ) |

Get number of retransmitted SIP requests received by stack.

Return number of SIP requests received by the stack. This number only includes retransmission for which a matching server transaction object was found.

See also
  nta_agent_get_stats(), NTATAG_S_RETRY_REQUEST_REF().

## NTATAG_S_RETRY_REQUEST_REF

#define NTATAG_S_RETRY_REQUEST_REF | ( |  | x | ) |

Get number of SIP requests retransmitted by stack.

Return number of SIP requests given to the transport layer for retransmission by the SIP stack. The number includes messages which the transport layer failed to send for different reasons.

See also
  nta_agent_get_stats(), NTATAG_S_SENT_MSG_REF(), NTATAG_S_SENT_REQUEST_REF(), NTATAG_S_RETRY_RESPONSE_REF()

## NTATAG_S_RETRY_RESPONSE_REF

#define NTATAG_S_RETRY_RESPONSE_REF | ( |  | x | ) |

Get number of SIP responses retransmitted by stack.

Return number of SIP responses given to the transport layer for retransmission by the SIP stack. The number includes messages which the transport layer failed to send for different reasons.

See also
  nta_agent_get_stats(), NTATAG_S_SENT_MSG_REF(), NTATAG_S_SENT_REQUEST_REF(), NTATAG_S_RETRY_REQUEST_REF()

## NTATAG_S_SENT_MSG_REF

#define NTATAG_S_SENT_MSG_REF | ( |  | x | ) |

Get number of SIP messages sent by stack.

Return number of SIP messages given to the transport layer for transmission by the SIP stack. The number includes also messages which the transport layer failed to send for different reasons.

See also
  nta_agent_get_stats(), NTATAG_S_RECV_MSG_REF(), NTATAG_S_SENT_REQUEST_REF(), NTATAG_S_SENT_RESPONSE_REF()

## NTATAG_S_SENT_REQUEST_REF

#define NTATAG_S_SENT_REQUEST_REF | ( |  | x | ) |

Get number of SIP requests sent by stack.

Return number of SIP requests given to the transport layer for transmission by the SIP stack. The number includes retransmissions and messages which the transport layer failed to send for different reasons.

See also
  nta_agent_get_stats(), NTATAG_S_RECV_REQUEST_REF(), NTATAG_S_SENT_MSG_REF(), NTATAG_S_SENT_RESPONSE_REF()

## NTATAG_S_SENT_RESPONSE_REF

#define NTATAG_S_SENT_RESPONSE_REF | ( |  | x | ) |

Get number of SIP responses sent by stack.

Return number of SIP responses given to the transport layer for transmission by the SIP stack. The number includes retransmissions and messages which the transport layer failed to send for different reasons.

See also
  nta_agent_get_stats(), NTATAG_S_RECV_RESPONSE_REF(), NTATAG_S_SENT_MSG_REF(), NTATAG_S_SENT_REQUEST_REF()

## NTATAG_S_SERVER_TR_REF

#define NTATAG_S_SERVER_TR_REF | ( |  | x | ) |

Get number of server transactions created.

Return number of server transactions created.

See also
  nta_agent_get_stats(), NTATAG_S_RECV_RESPONSE_REF(), NTATAG_S_CLIENT_TR_REF(), NTATAG_S_DIALOG_TR_REF(),

## NTATAG_S_TOUT_REQUEST_REF

#define NTATAG_S_TOUT_REQUEST_REF | ( |  | x | ) |

Get number of SIP client transactions that has timeout.

Return number of SIP client transactions that has timeout.

See also
  nta_agent_get_stats(), NTATAG_S_TOUT_RESPONSE_REF().

## NTATAG_S_TOUT_RESPONSE_REF

#define NTATAG_S_TOUT_RESPONSE_REF | ( |  | x | ) |

Get number of SIP server transactions that has timeout.

Return number of SIP server transactions that has timeout. The number includes only the INVITE transactions for which the stack has received no ACK requests.

See also
  nta_agent_get_stats(), NTATAG_S_TOUT_REQUEST_REF().

## NTATAG_S_TRLESS_200_REF

#define NTATAG_S_TRLESS_200_REF | ( |  | x | ) |

Get number of successful responses missing INVITE client transaction.

Return number of received 2XX responses to INVITE transaction for which no matching client transaction was found nor which were processed by a default client transaction created with nta_outgoing_default() or nta_message_f message callback given to nta_agent_create().

See also
  nta_agent_get_stats(), nta_outgoing_default(), nta_agent_create(), <sofia-sip/nta_stateless.h>, nta_message_f, nta_msg_ackbye(), NTATAG_S_TRLESS_RESPONSE_REF().

## NTATAG_S_TRLESS_REQUEST_REF

#define NTATAG_S_TRLESS_REQUEST_REF | ( |  | x | ) |

Get number of requests that were processed stateless.

Return number of received requests that were processed statelessly, either with nta_message_f message callback given with the nta_agent_create() or, missing the callback, by returning a 501 Not Implemented response to the request.

See also
  nta_agent_get_stats(), <sofia-sip/nta_stateless.h>, nta_agent_create(), nta_message_f, NTATAG_S_TRLESS_TO_TR_REF(), NTATAG_S_TRLESS_RESPONSE_REF()

## NTATAG_S_TRLESS_RESPONSE_REF

#define NTATAG_S_TRLESS_RESPONSE_REF | ( |  | x | ) |

Get number of responses without matching request.

Return number of received responses for which no matching client transaction was found. Such responses are processed either by the client transaction created with nta_outgoing_default(), the nta_message_f message callback given to nta_agent_create(), or, missing both the default client transaction and message callback, they are silently discarded.

The NTATAG_S_TRLESS_200_REF() counter counts those successful 2XX responses to the INVITE without client transaction which are silently discarded.

See also
  nta_agent_get_stats(), nta_outgoing_default(), nta_agent_create(), <sofia-sip/nta_stateless.h>, nta_message_f, nta_msg_ackbye(), NTATAG_S_TRLESS_REQUEST_REF(), NTATAG_S_TRLESS_200_REF().

## NTATAG_S_TRLESS_TO_TR_REF

#define NTATAG_S_TRLESS_TO_TR_REF | ( |  | x | ) |

Get number of requests converted to transactions by message callback.

Return number of requests that were converted to a server transaction with nta_incoming_create().

See also
  nta_agent_get_stats(), nta_incoming_create(), nta_agent_create(), nta_message_f, NTATAG_S_TRLESS_REQUEST_REF()

## NTATAG_SERVER_RPORT

#define NTATAG_SERVER_RPORT | ( |  | x | ) |

Use rport parameter at server.

This tag controls RFC 3581 support on server side. The "rport" parameter is used when the response has to be routed symmetrically through a NAT box.

If the topmost Via header has an "rport" parameter, the server stores the port number from which the request was sent in it. When sending the response back to the client, the server uses the port number in the "rport" parameter rather than the client-supplied port number in Via header.

Note that on server-side the port number is stored regardless of the transport protocol. (It is assumed that client supports rport if it includes "rport" parameter in Via field).

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - 3 - add "rport" parameter even if was not present in request and if client User-Agent is "Polycom"
  - 2 - add "rport" parameter even if was not present in request
  - 1 - use "rport" parameter (default)
  - 0 - do not use "rport" parameter

See also
  RFC 3581, NTATAG_CLIENT_RPORT(), NTATAG_TCP_RPORT(), NTATAG_TLS_RPORT(), Via

Since
  Tag type and NTATAG_SERVER_RPORT(2) was added in 1.12.9.

## NTATAG_SIGCOMP_ALGORITHM

#define NTATAG_SIGCOMP_ALGORITHM | ( |  | x | ) |

Specify SigComp algorithm.

Note
  This tag is has no effect without a SigComp plugin.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params(), nta_agent_add_tport()

Parameter type
  string

Values
  - opaque string passed to the SigComp plugin

See also
  NTATAG_COMP(), NTATAG_SIGCOMP_AWARE(), NTATAG_SIGCOMP_CLOSE(), NTATAG_SIGCOMP_OPTIONS(), RFC 3320

## NTATAG_SIGCOMP_AWARE

#define NTATAG_SIGCOMP_AWARE | ( |  | x | ) |

Indicate that the application is SigComp-aware.

Note
  This tag is has no effect without a SigComp plugin.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - application takes care of compartment management
  - false - stack manages compartments

See also
  NTATAG_COMP(), NTATAG_SIGCOMP_ALGORITHM(), NTATAG_SIGCOMP_CLOSE(), NTATAG_SIGCOMP_OPTIONS(), RFC 3320

## NTATAG_SIGCOMP_CLOSE

#define NTATAG_SIGCOMP_CLOSE | ( |  | x | ) |

Close SigComp compartment after completing transaction.

Note
  This tag is has no effect without a SigComp plugin.

Used with
  nta_incoming_set_params(), nta_incoming_treply() nta_outgoing_mcreate(), nta_outgoing_tcreate(), nta_outgoing_tmcreate(), nta_outgoing_tcancel(), nta_outgoing_prack(), nta_msg_tsend(), nta_msg_treply()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - application takes care of compartment management
  - false - stack manages compartments

See also
  NTATAG_COMP(), TPTAG_COMPARTMENT(), NTATAG_SIGCOMP_ALGORITHM(), NTATAG_SIGCOMP_AWARE(), NTATAG_SIGCOMP_OPTIONS(), RFC 3320

## NTATAG_SIGCOMP_OPTIONS

#define NTATAG_SIGCOMP_OPTIONS | ( |  | x | ) |

Semicolon-separated SigComp options.

Note
  This tag is has no effect without a SigComp plugin.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params(), nta_agent_add_tport()

Parameter type
  string

Values
  - semicolon-separated parameter-value pairs, passed to the SigComp plugin

See also
  NTATAG_COMP(), NTATAG_SIGCOMP_ALGORITHM(), NTATAG_SIGCOMP_AWARE(), NTATAG_SIGCOMP_CLOSE(), RFC 3320

## NTATAG_SIP_T1

#define NTATAG_SIP_T1 | ( |  | x | ) |

Initial retransmission interval (in milliseconds).

Set the T1 retransmission interval used by the SIP transaction engine. The T1 is the initial duration used by request retransmission timers A and E (UDP) as well as response retransmission timer G.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned int

Values
  - Value of SIP T1 in milliseconds

Default Value
  - NTA_SIP_T1 or 500 (milliseconds)

See also
  RFC 3261 appendix A, NTA_SIP_T1, NTATAG_SIP_T1X4(), NTATAG_SIP_T1(), NTATAG_SIP_T4()

## NTATAG_SIP_T1X64

#define NTATAG_SIP_T1X64 | ( |  | x | ) |

Transaction timeout (defaults to T1 * 64).

Set the T1x64 timeout value used by the SIP transaction engine. The T1x64 is duration used for timers B, F, H, and J (UDP) by the SIP transaction engine. The timeout value T1x64 can be adjusted separately from the initial retransmission interval T1, which is set with NTATAG_SIP_T1().

The default value for T1x64 is 64 times value of T1, or 32000 milliseconds.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned int

Values
  - Value of T1x64 in milliseconds

Default Value
  - 64 * NTA_SIP_T1 or 32000 (milliseconds)

See also
  RFC 3261 appendix A, NTA_SIP_T1, NTATAG_SIP_T1(), NTATAG_SIP_T2(), NTATAG_SIP_T4()

## NTATAG_SIP_T2

#define NTATAG_SIP_T2 | ( |  | x | ) |

Maximum retransmission interval (in milliseconds).

Set the maximum retransmission interval used by the SIP transaction engine. The T2 is the maximum duration used for the timers E (UDP) and G by the SIP transaction engine. Note that the timer A is not capped by T2. Retransmission interval of INVITE requests grows exponentially until the timer B fires.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned int

Values
  - Value of SIP T2 in milliseconds

Default Value
  - NTA_SIP_T2 or 4000 (milliseconds)

See also
  RFC 3261 appendix A, NTA_SIP_T2, NTATAG_SIP_T1(), NTATAG_SIP_T1X4(), NTATAG_SIP_T4()

## NTATAG_SIP_T4

#define NTATAG_SIP_T4 | ( |  | x | ) |

Transaction lifetime (in milliseconds).

Set the lifetime for completed transactions used by the SIP transaction engine. A completed transaction is kept around for the duration of T4 in order to catch late responses. The T4 is the maximum duration for the messages to stay in the network and the duration of SIP timer K.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned int

Values
  - Value of SIP T4 in milliseconds

Default Value
  - NTA_SIP_T4 or 4000 (milliseconds)

See also
  RFC 3261 appendix A, NTA_SIP_T4, NTATAG_SIP_T1(), NTATAG_SIP_T1X4(), NTATAG_SIP_T2()

## NTATAG_SIPFLAGS

#define NTATAG_SIPFLAGS | ( |  | x | ) |

Set SIP parser flags.

The SIP parser flags affect how the messages are parsed and the result presented to the application. They also control encoding of messages. The most important flags are as follows:

- MSG_FLG_COMPACT - use compact form (single-letter header names, minimum whitespace)
- MSG_FLG_EXTRACT_COPY - cache printable copy of headers when parsing. Using this flag can speed up proxy processing considerably. It is implied when the parsed messages are logged (because #TPORT_LOG environment variable is set, or TPTAG_LOG() is used.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned int

Values
  - Bitwise OR of SIP parser flags (enum msg_flg_user)

See also
  NTATAG_PRELOAD(), enum msg_flg_user, sip_s::sip_flags

## NTATAG_SMIME

#define NTATAG_SMIME | ( |  | x | ) |

Provide S/MIME context to NTA.

Todo
  S/MIME is not implemented.

## NTATAG_STATELESS

#define NTATAG_STATELESS | ( |  | x | ) |

Enable stateless processing.

Server side
  The incoming requests are processed statefully if there is a default leg (created with nta_leg_default()). This option is provided for proxies or other server elements that process requests statelessly.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Values
  - true - do not pass incoming requests to default leg
  - false - pass incoming requests to default leg, if it exists

Default Value
  - 0 (false, pass incoming requests to default leg)

Client side
  The outgoing requests can be sent statelessly, too, if the NTATAG_STATELESS(1) is included in the tag list of nta_outgoing_tcreate().

Used with
  nta_outgoing_mcreate(), nta_outgoing_tcreate(), nta_outgoing_tcancel(), nta_outgoing_prack()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - create only a transient nta_outgoing_t transaction object
  - false - create an ordinary client transaction object

Default Value
  - 0 (false, create client transaction)

See also
  NTATAG_IS_UA(), nta_incoming_default(), nta_outgoing_default(), nta_leg_default()

## NTATAG_TAG_3261

#define NTATAG_TAG_3261 | ( |  | x | ) |

When responding to requests, use unique tags.

If set the UA would generate an unique From/To tag for all dialogs. If unset UA would reuse same tag in order to make it easier to re-establish dialog state after a reboot.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - use different tag for each dialog
  - false - use same tag for all dialogs

See also
  RFC 3261 section 12.2.2

## NTATAG_TCP_RPORT

#define NTATAG_TCP_RPORT | ( |  | x | ) |

Use rport with TCP, too.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - include rport parameter in the TCP via line on client side
  - false - do not include rport parameter in the TCP via line on client side

See also
  RFC 3581, NTATAG_CLIENT_RPORT(), NTATAG_SERVER_RPORT(), Via

## NTATAG_TIMEOUT_408

#define NTATAG_TIMEOUT_408 | ( |  | x | ) |

Generate "408 Request Timeout" response when request times out.

This tag is used to prevent stack from generating extra 408 response messages to non-INVITE requests upon timeout. As per recommended by RFC 4320, the 408 Request Timeout responses to non-INVITE transaction are not sent over the network to the client by default. The application can ask stack to pass the 408 responses with NTATAG_PASS_408(1).

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - generate 408 response
  - false - invoke nta_response_f callback with NULL sip pointer when a non-INVITE transaction times out

See also
  RFC 4320, NTATAG_PASS_408(), NTATAG_EXTRA_100(),

## NTATAG_TIMER_C

#define NTATAG_TIMER_C | ( |  | x | ) |

Value for timer C in milliseconds.

By default the INVITE transaction will not timeout after a preliminary response has been received. However, an intermediate proxy can timeout the transaction using timer C. Timer C is reset every time a response belonging to the transaction is received.

The default value for the timer C is 185000 milliseconds (3 minutes and 5 seconds). By default, timer C is not run on user agents (if NTATAG_UA(1) without NTATAG_TIMER_C() is given).

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  unsigned int

Values
  Value of SIP timer C in milliseconds. The default value is used instead if NTATAG_TIMER_C(0) is given.

Default Value
  - 185000 (milliseconds, 3 minutes)

See also
  RFC 3261 sections 13.3.1.1, 16.7 and 16.8, NTATAG_UA(1), NTATAG_TIMER_C(), NTATAG_SIP_T1(), NTATAG_SIP_T1X4(), NTATAG_SIP_T2(), NTATAG_SIP_T4()

Since
  New in 1.12.7.

## NTATAG_TLS_RPORT

#define NTATAG_TLS_RPORT | ( |  | x | ) |

Use rport with TLS, too.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - include rport parameter in the TLS via line on client side
  - false - do not include rport parameter in the TLS via line on client side

See also
  RFC 3581, NTATAG_CLIENT_RPORT(), NTATAG_SERVER_RPORT(), Via

Since
  New in 1.12.10

## NTATAG_TPORT

#define NTATAG_TPORT | ( |  | x | ) |

Pass a transport object.

The transport object is used to send the request or response message(s).

Used with
  nta_outgoing_tcreate(), nta_outgoing_mcreate(), nta_outgoing_tcancel(), nta_incoming_create(), nta_msg_tsend(), nta_msg_mreply()

Parameter type
  - #tport_t

Values
  - A pointer to the transport object. Note that a new reference to the transport is created.

Default Value
  - The transport is selected by resolving the outbound URI (specified with NTATAG_DEFAULT_PROXY(), the topmost Route URI or Request-URI.

## NTATAG_UA

#define NTATAG_UA | ( |  | x | ) |

If true, NTA acts as User Agent Server or Client by default.

When acting as an UA, the NTA stack will

- respond with 481 to a PRACK request with no matching "100rel" response
- check for out-of-order CSeq headers for each nta_leg_t dialog object
- if NTATAG_MERGE_482(1) is also used, return 482 Request Merged to a duplicate request with same Call-ID, CSeq, From tag but different topmost Via header (see RFC 3261 section 8.2.2.2 Merged Requests)
- silently discard duplicate final responses to INVITE
- retransmit preliminary responses (101..199) to INVITE request in regular intervals ("timer N2")
- retransmit 2XX response to INVITE request with exponential intervals
- handle ACK sent in 2XX response to an INVITE using the nta_ack_cancel_f callback bound to nta_incoming_t with nta_incoming_bind()
- not use timer C unless its value has been explicitly set

Note
  This NUTAG_UA(1) is set internally by nua_create()

Used with
  nta_agent_create()
  nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - act as an UA
  - false - act as an proxy

Default Value
  - 0 (false)

See also
  NTATAG_MERGE_482()

## NTATAG_UDP_MTU

#define NTATAG_UDP_MTU | ( |  | x | ) |

Maximum size of outgoing UDP request.

The maximum UDP request size is used to control use of UDP with overtly large messages. The IETF requires that the SIP requests over 1300 bytes are sent over congestion-controlled transport such as TCP. If a SIP message size exceeds the UDP MTU, the TCP is tried instead of UDP. (If the TCP connection is refused, the stack reverts back to UDP).

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  - unsigned

Values
  - Maximum size of an outgoing UDP request

Default Value
  - 1300 (bytes)

See also
  RFC 3261 section 18.1.1, NTATAG_MAXSIZE()

## NTATAG_USE_NAPTR

#define NTATAG_USE_NAPTR | ( |  | x | ) |

If true, try to use NAPTR records when resolving.

The application can disable NTA from using NAPTR records when resolving SIP URIs.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - enable NAPTR resolving
  - false - disable NAPTR resolving

Bug
  NAPTRs are not used with SIPS URIs in any case.

See also
  RFC 3263, NTATAG_USE_SRV()

## NTATAG_USE_SRV

#define NTATAG_USE_SRV | ( |  | x | ) |

If true, try to use SRV records when resolving.

The application can disable NTA from using SRV records when resolving SIP URIs.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - enable SRV resolving
  - false - disable SRV resolving

See also
  RFC 3263, NTATAG_USE_NAPTR()

## NTATAG_USE_TIMESTAMP

#define NTATAG_USE_TIMESTAMP | ( |  | x | ) |

Use Timestamp header.

If set, a Timestamp header would be added to stateful requests. The header can be used to calculate the roundtrip transport latency between client and server.

Used with
  nua_create(), nta_agent_create(), nta_agent_set_params(), nta_outgoing_mcreate(), nta_outgoing_tcreate(), nta_outgoing_tcancel(), and nta_outgoing_prack().

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - Add Timestamp header
  - false - do not add Timestamp header

See also
  RFC 3261 section 8.2.6

## NTATAG_USER_VIA

#define NTATAG_USER_VIA | ( |  | x | ) |

Allow application to insert Via headers.

Used with
  nua_create(), nua_set_params(), nta_agent_create(), nta_agent_set_params(), nta_outgoing_mcreate(), nta_outgoing_tcreate(), nta_outgoing_tcancel(), nta_outgoing_prack(), nta_msg_tsend()

Parameter type
  boolean: true (non-zero or non-NULL pointer) or false (zero or NULL pointer)

Values
  - true - do not add Via header to the request (if it has one)
  - false - always add a Via header

Default Value
  - 0 (false, always add a Via header)

See also
  NTATAG_BRANCH(), NTATAG_TPORT()

Sofia-SIP 1.12.11devel - Copyright (C) 2006 Nokia Corporation. All rights reserved. Licensed under the terms of the GNU Lesser General Public License.