sip_header_as_string returns new memory alloc'd on the nua_handle's memory pool. This memory would not be freed until
the handle was destroyed. Since there is no usage of the call-info header after it is added to the event as a header value,
we should make sure to both su_free the sofia returned string, but also more cleanly create the event header value to reduce a strdup.
I found a problem here but it may not completely match your expectations.
I reviewed the RFC 4028 and checked against the code and I discovered we should not be putting a Min-SE in any response at all besides a 422:
section 5:
The Min-SE header field MUST NOT be used in responses except for
those with a 422 response code. It indicates the minimum value of
the session interval that the server is willing to accept.
I corrected this problem and implemented the 422 response so if you request a value lower than the minimum specified for the profile.
If the value is equal or higher to the minimum, it will be reflected in the Session-Expires header in the response and no Min-SE will be present.
Adds app: enable_keepalive 0|<seconds>
This app can be run in the dialplan or with execute_on_* type variables for B-legs.
Adds sofia param: keepalive-method : defaults to MESSAGE can also be "INFO"
This param sets which SIP method to use.
These all were set before but now are disabled by default because they are not proper to have enabled without a good reason.
tcp-unreg-on-socket-close
If registration is TCP or TLS and socket connection is interrupted, unregister the client.
tcp-always-nat
Treat all TCP connections as NATTED, this causes all traffic back to the phone to reuse the existing TCP socket but may
cause problems when not used with TCP keepalive.
tls-always-nat
Same as tcp-always-nat but only for TLS connections.
Copy URI params from Refer-To header into custom header in subsequent INVITE
sip_h_X-FS-Refer-Params is set to show up in the INVITE as X-FS-Refer-Params
This adds a sip profile parameter parse-all-invite-headers that when
set parses all headers from an INVITE into channel variables. The
headers are converted to lowercase, underscores are replaced with
dashes, and the result is prefixed with sip_i_. Headers than exist
more than once are set as arrays.
FS-6075 --resolve
Thanks-to: Peter Olsson <peter@olssononline.se>
When an endpoint registers to us we internally mark the expiration as
some seconds longer than the actual registration. Previously this
value was fixed at 60 seconds.
Some people need this value to be shorter so they can meet their SLA
by taking a different action when a device doesn't re-register when
expected.
This commit adds a SIP profile parameter sip-expires-late-margin which
allows setting the margin value we apply here.
FS-6101 --resolve
Thanks-to: Emmanuel Schmidbauer <e.schmidbauer@gmail.com>
Some OSes like linux provide a mechanism for sending TCP keepalive
pings. Sofia provides its own mechanism for doing this in userspace.
We shouldn't conflate these two mechanisms.
FS-6104
Previously if tls-version was set to tlsv1 we supported only TLSv1,
but if it was set to sslv23 we supported all versions of TLS. This
was a weird incorrectly documented behavior that we hope no one was
relying on.
Now we can pass a comma-separated list of TLS/SSL versions that we
would like to support in tls-version.
FS-5839 --resolve