Sip Proxy

This extension has the qualified name envoy.filters.network.sip_proxy

Note

This extension is only available in contrib images.

Note

This extension is functional but has not had substantial production burn time, use only with this caveat.

This extension is not hardened and should only be used in deployments where both the downstream and upstream are trusted.

Tip

This extension extends and can be used with the following extension category:

extensions.filters.network.sip_proxy.v3alpha.SipProxy

[extensions.filters.network.sip_proxy.v3alpha.SipProxy proto]

{
  "stat_prefix": "...",
  "route_config": "{...}",
  "sip_filters": [],
  "settings": "{...}"
}
stat_prefix

(string, REQUIRED) The human readable prefix to use when emitting statistics.

route_config

(extensions.filters.network.sip_proxy.v3alpha.RouteConfiguration) The route table for the connection manager is static and is specified in this property.

sip_filters

(repeated extensions.filters.network.sip_proxy.v3alpha.SipFilter) A list of individual Sip filters that make up the filter chain for requests made to the Sip proxy. Order matters as the filters are processed sequentially. For backwards compatibility, if no sip_filters are specified, a default Sip router filter (envoy.filters.sip.router) is used.

Tip

The following extensions are available in contrib images only:

settings

(extensions.filters.network.sip_proxy.v3alpha.SipProxy.SipSettings)

extensions.filters.network.sip_proxy.v3alpha.SipProxy.SipSettings

[extensions.filters.network.sip_proxy.v3alpha.SipProxy.SipSettings proto]

{
  "transaction_timeout": "{...}",
  "local_services": [],
  "tra_service_config": "{...}",
  "operate_via": "..."
}
transaction_timeout

(Duration) transaction timeout timer [Timer B] unit is milliseconds, default value 64*T1.

Session Initiation Protocol (SIP) timer summary

Timer

Default value

Section

Meaning

T1

500 ms

17.1.1.1

Round-trip time (RTT) estimate

T2

4 sec

17.1.2.2

Maximum re-transmission interval for non-INVITE requests and INVITE responses

T4

5 sec

17.1.2.2

Maximum duration that a message can remain in the network

Timer A

initially T1

17.1.1.2

INVITE request re-transmission interval, for UDP only

Timer B

64*T1

17.1.1.2

INVITE transaction timeout timer

Timer D

> 32 sec. for UDP 0 sec. for TCP and SCTP

17.1.1.2

Wait time for response re-transmissions

Timer E

initially T1

17.1.2.2

Non-INVITE request re-transmission interval, UDP only

Timer F

64*T1

17.1.2.2

Non-INVITE transaction timeout timer

Timer G

initially T1

17.2.1

INVITE response re-transmission interval

Timer H

64*T1

17.2.1

Wait time for ACK receipt

Timer I

T4 for UDP 0 sec. for TCP and SCTP

17.2.1

Wait time for ACK re-transmissions

Timer J

64*T1 for UDP 0 sec. for TCP and SCTP

17.2.2

Wait time for re-transmissions of non-INVITE requests

Timer K

T4 for UDP 0 sec. for TCP and SCTP

17.1.2.2

Wait time for response re-transmissions

local_services

(repeated extensions.filters.network.sip_proxy.v3alpha.LocalService) The service to match for ep insert

tra_service_config

(extensions.filters.network.sip_proxy.tra.v3alpha.TraServiceConfig)

operate_via

(bool) Whether via header is operated, including add via for request and pop via for response False: sip service proxy True: sip load balancer

extensions.filters.network.sip_proxy.v3alpha.SipFilter

[extensions.filters.network.sip_proxy.v3alpha.SipFilter proto]

SipFilter configures a Sip filter.

{
  "name": "...",
  "typed_config": "{...}"
}
name

(string, REQUIRED) The name of the filter to instantiate. The name must match a supported filter. The built-in filters are:

typed_config

(Any) Filter specific configuration which depends on the filter being instantiated. See the supported filters for further documentation.

extensions.filters.network.sip_proxy.v3alpha.SipProtocolOptions

[extensions.filters.network.sip_proxy.v3alpha.SipProtocolOptions proto]

SipProtocolOptions specifies Sip upstream protocol options. This object is used in typed_extension_protocol_options, keyed by the name envoy.filters.network.sip_proxy.

{
  "session_affinity": "...",
  "registration_affinity": "...",
  "customized_affinity": "{...}"
}
session_affinity

(bool) All sip messages in one dialog should go to the same endpoint.

registration_affinity

(bool) The Register with Authorization header should go to the same endpoint which send out the 401 Unauthorized.

customized_affinity

(extensions.filters.network.sip_proxy.v3alpha.CustomizedAffinity) Customized affinity

extensions.filters.network.sip_proxy.v3alpha.CustomizedAffinity

[extensions.filters.network.sip_proxy.v3alpha.CustomizedAffinity proto]

For affinity

{
  "entries": [],
  "stop_load_balance": "..."
}
entries

(repeated extensions.filters.network.sip_proxy.v3alpha.CustomizedAffinityEntry) Affinity rules to conclude the upstream endpoint

stop_load_balance

(bool) Configures whether load balance should be stopped or continued after affinity handling.

extensions.filters.network.sip_proxy.v3alpha.CustomizedAffinityEntry

[extensions.filters.network.sip_proxy.v3alpha.CustomizedAffinityEntry proto]

{
  "header": "...",
  "key_name": "...",
  "subscribe": "...",
  "query": "...",
  "cache": "{...}"
}
header

(string) The header name to match, e.g. “From”, if not specified, default is “Route”

key_name

(string) Affinity key for TRA query/subscribe, e.g. “lskpmc”, if key_name is “text” means use the header content as key.

subscribe

(bool) Whether subscribe to TRA is required

query

(bool) Whether query to TRA is required

cache

(extensions.filters.network.sip_proxy.v3alpha.Cache) Local cache

extensions.filters.network.sip_proxy.v3alpha.Cache

[extensions.filters.network.sip_proxy.v3alpha.Cache proto]

{
  "max_cache_item": "...",
  "add_query_to_cache": "..."
}
max_cache_item

(int32) Affinity local cache item max number

add_query_to_cache

(bool) Whether query result can be added to local cache

extensions.filters.network.sip_proxy.v3alpha.LocalService

[extensions.filters.network.sip_proxy.v3alpha.LocalService proto]

Local Service

{
  "domain": "...",
  "parameter": "..."
}
domain

(string) he domain need to matched

parameter

(string) he parameter to get domain