Go to the latest version of this document.

# ``twisted`.`protocols`.`sip`.`Via``

class documentation

`class Via: (source)`

Constructor: `Via(host, port, transport, ttl, ...)`

View In Hierarchy

A `Via` is a SIP Via header, representing a segment of the path taken by the request.

See RFC 3261, sections 8.1.1.7, 18.2.2, and 20.42.

Method | `__init__` | Set parameters of this Via header. All arguments correspond to attributes of the same name.
Method | `rport.setter` | `Base._fixupNAT` sets `rport` directly, so this method sets `rportValue` based on that.
Method | `toString` | Serialize this header for use in a request or response.
Instance Variable | `branch` | Unique identifier for this request.
Instance Variable | `hidden` | Obsolete in SIP 2.0.
Instance Variable | `host` | Hostname or IP for this leg.
Instance Variable | `maddr` | The destination multicast address, if any.
Instance Variable | `otherParams` | Any other parameters in the header.
Instance Variable | `port` | Port used for this leg. @type port `int`, or None.
Instance Variable | `received` | Undocumented
Instance Variable | `rportRequested` | Whether to request RFC 3581 client processing or not.
Instance Variable | `rportValue` | Servers wishing to honor requests for RFC 3581 processing should set this parameter to the source port the request was received from.
Instance Variable | `transport` | Network protocol used for this leg. (Probably either "TCP" or "UDP".)
Instance Variable | `ttl` | Time-to-live for requests on multicast paths.
Property | `rport` | Returns the rport value expected by the old SIP code.

def __init__(self, host, port=PORT, transport='UDP', ttl=None, hidden=False, received=None, rport=_absent, branch=None, maddr=None, **kw): (source)

Set parameters of this Via header. All arguments correspond to attributes of the same name.

To maintain compatibility with old SIP code, the 'rport' argument is used to determine the values of `rportRequested` and `rportValue`. If None, `rportRequested` is set to True. (The deprecated method for doing this is to pass True.) If an integer, `rportValue` is set to the given value.

Any arguments not explicitly named here are collected into the `otherParams` dict.

@rport.setter
def rport(self, newRPort): (source)

`Base._fixupNAT` sets `rport` directly, so this method sets `rportValue` based on that.

Parameters
newRPort:`int` | The new rport value.

def toString(self): (source)

Serialize this header for use in a request or response.

branch: `str` = (source)

Unique identifier for this request.

hidden: `bool` = (source)

Obsolete in SIP 2.0.

host: `str` = (source)

Hostname or IP for this leg.

maddr: `str`, or None. = (source)

The destination multicast address, if any.

otherParams: `dict` = (source)

Any other parameters in the header.

port = (source)

Port used for this leg. @type port `int`, or None.

received = (source)

Undocumented

rportRequested: `bool` = (source)

Whether to request RFC 3581 client processing or not.

rportValue: `int`, or None. = (source)

Servers wishing to honor requests for RFC 3581 processing should set this parameter to the source port the request was received from.

transport: `str` = (source)

Network protocol used for this leg. (Probably either "TCP" or "UDP".)

ttl: `int`, or None. = (source)

Time-to-live for requests on multicast paths.

@property
rport = (source)

Returns the rport value expected by the old SIP code.