1528 Commits

Author SHA1 Message Date
Anthony Minessale
10a3fa55ef %FEATURE add bypass_media_resume_on_hold and bypass_media_after_hold variables to be set to true to enable these functions on a per channel basis 2014-10-02 17:49:09 -05:00
Anthony Minessale
43733a6166 FS-6886 #comment addition of ignoring unhold as well 2014-10-02 15:48:29 -05:00
Spencer Thomason
747322dcc6 Remove Contact header from BYE and CANCEL requests.
Per rfc3261 the Contact header is not applicable and MUST not appear in
the request.

FS-5868 #resolve
2014-10-02 12:24:46 -07:00
Anthony Minessale
9e9175321a FS-6886 #resolve 2014-10-02 11:30:13 -05:00
Flavio Grossi
5653551904 FS-5106 fire an event when a sip client doesn't respond to option-ping
When all-reg-options-ping is enabled, this adds a new custom event to mod_sofia
(sofia::sip_user_state), which is fired when a client stops responding to such
ping packets (or when it is reachable again).

Add two needed new columns to the sip_registrations table:
  - ping_status, which is "Reachable" or "Unreachable" depending on the client
    status;
  - ping_count, which tracks the number of ping responses received and is used
    to provide some kind of hysteresis to avoid firing the event in case of
    transitory network failures.

Then ping_count is checked against two threshold values, sip-user-ping-min
and sip-user-ping-max in a similar fashion as the ping-{max,min} options for
the gateways. These two values are configurable in the profile's xml
configuration file.

Also, if unregister-on-options-fail is enabled, the client is unregistered
based on the number of OPTIONS failure which is also checked against the
sip-user-ping-{min,max} values.
2014-10-02 12:34:47 +02:00
Anthony Minessale
789e1481ed FS-6880 #resolve #comment I would think that in real life once the call agreed on a codec it would only offer the negotiated codecs but we can fix this to always filter for good measure. I am not sure what the ramifications are of filtering responses but I think this patch will do so as well. 2014-10-01 13:03:50 -05:00
Anthony Minessale
24084adf77 %FEATURE Add new feature to filter the SDP on bypass_media calls to remove or limit codecs.
VARIABLE: bypass_media_sdp_filter

Can be set globally or per leg on the inbound side of a bypass_media bridge.

VALID FILTERS:

remove(): Removes the specified codec if it exists in the SDP.
only():   Removes all codecs besides the one specified (providing that it exists in the sdp) (will not remove telephone-event))

EXAMPLE 1 (remove everything leaving only g729):

  <action application="set" data="bypass_media_sdp_filter=only(g729)"/>
  <action application="set" data="bypass_media=true"/>
  <action application="bridge" data="sofia/internal/1238@conference.freeswitch.org"/>

EXAMPLE 2 (remove everything leaving only g729 and also remove dtmf):

  <action application="set" data="bypass_media_sdp_filter=only(g729)|remove(telephone-event)"/>
  <action application="set" data="bypass_media=true"/>
  <action application="bridge" data="sofia/internal/1238@conference.freeswitch.org"/>

EXAMPLE 3 (remove alaw and speex):

  <action application="set" data="bypass_media_sdp_filter=remove(pcma)|remove(speex)"/>
  <action application="set" data="bypass_media=true"/>
  <action application="bridge" data="sofia/internal/1238@conference.freeswitch.org"/>
2014-10-01 01:28:10 +05:00
Anthony Minessale
7144b25254 obey sip_copy_custom_headers on bye 2014-09-12 00:37:19 +05:00
Alexander Haugg
388e9638de F-5946 add the patches. if in the sofia gateway config the param pin-monitoring is true, then every ping result raise an sofia::gateway-state event 2014-09-05 10:57:01 +02:00
Steven Ayre
93bd5833c2 Add uptime property to mod_sofia gateways
The 'UP' status indicates a gateway is online as determined by
registration and/or SIP OPTIONS pinging.

The time the gateway has been in the 'UP' status is recorded,
and can be monitored using 'sofia status' and 'sofia xmlstatus'.

This can be used to detect and graph when there are outages.

ref: FS-6772

Reviewed-by: Travis Cross <tc@traviscross.com>
2014-09-04 03:43:36 +00:00
Brian West
1dc44067cd FS-6770 #resolve 2014-08-27 13:28:15 -05:00
Stan Gor
64060c7dbd Add sofia gateway parameter "destination-prefix"
FS-5497 add sofia gateway parameter destination-prefix in case you need to send Invites to your provider with prefix only to this gateway
2014-08-19 11:54:09 -07:00
Anthony Minessale
e3e84a7820 FS-6679 #resolve 2014-08-09 02:13:00 +05:00
Brian West
940171c623 FS-6670 #resolve #comment Doh, see this one is dangerous 2014-07-21 16:04:36 -05:00
Brian West
c15663cba2 FS-6670 #resolve #comment This should resolve this fun stuff. 2014-07-21 15:58:32 -05:00
Anthony Minessale
3ce4ae962b FS-6540 #comment please test this patch for the added notify functionality 2014-07-17 22:35:04 -05:00
Anthony Minessale
91d405a2c1 call recovery_track on recovering channels once the recovery has completed and fix race condition with repeated recovery 2014-07-16 21:40:23 +05:00
Anthony Minessale
c58e64bf6d add some more headers to sip messages 2014-07-16 00:55:46 +05:00
Brian West
28e90addf2 FS-5501 fire event on profile start 2014-07-09 08:53:14 -05:00
Anthony Minessale
2423fc7d0f FS-6540 This should proxy all refers now, the param has changed to proxy-refer 2014-06-30 12:53:22 -05:00
Travis Cross
52fb53cba4 Allow reincarnation from mod_sofia's shutdown-on-fail
mod_sofia's parameter shutdown-on-fail now accepts the value
"reincarnate-now".  This will cause the switch to exit immediately
with a non-zero exit code so that the supervisor can recover the
switch.  For this to work you have to pass in -reincarnate or
-reincarnate-reexec to freeswitch.
2014-06-27 22:18:39 +00:00
Travis Cross
80ed14ab3e Ensure mod_sofia params can be unset or reset
This is the result of auditing each mod_sofia profile parameter to
ensure that it can be unset or reset after being set.  One use-case
for this being done correctly is so a later parameter in a
configuration file can reliably override an earlier one, which is
useful for setups with layered include files.
2014-06-26 09:04:56 +00:00
Travis Cross
75feed68fc Avoid leaking memory on sofia profile reload
We were leaking the string values of apply-candidate-acl parameters.
2014-06-26 08:39:55 +00:00
Travis Cross
f7b4ec617a Allow SIP UPDATE messages without display updates
Previously if send-display-update was set to false we would also
remove UPDATE from our Allow: headers.  This is unnecessary.  The
UPDATE message is useful in SIP transactions even if we're not sending
display updates.

With this commit, we add a new boolean profile flag, allow-update.  If
set to true we'll send Allow: UPDATE.  If set to false, we will not.
If there is a conflict with another setting that requires UPDATE
support, the allow-update parameter will win and a warning will be
printed.

ref: RFC 3311
2014-06-25 20:43:29 +00:00
Brian West
8f47f403fd FS-6612: Don't use rport in tcp or tls 2014-06-20 10:23:05 -05:00
Anthony Minessale
49ee6781a5 FS-6540 please test 2014-06-05 23:49:50 +05:00
Brian West
6722e3dfea fix regression from regression 2014-06-02 19:25:04 -05:00
Brian West
f358c35b67 remove debug line 2014-06-02 19:21:02 -05:00
Anthony Minessale
a7b9329a08 FS-6446 regression fixed 2014-06-02 19:09:48 -05:00
Anthony Minessale
956da6d689 Modify sofia profile to attempt to bind to the interface up to 3 tries with a 5 second wait between attempts.
Add new profile params bind-attempts and bind-attempt-interval to modify default behavior.
--NEEDSDOCS
2014-06-02 22:47:26 +05:00
Anthony Minessale
7c2b4381cf FS-6446 --resolve 2014-05-27 20:40:00 +05:00
Anthony Minessale
bedf8327b6 FS-6418 FS-6427 add profile param NDLB-proxy-never-patch-reinvites to solve both issues 2014-05-21 03:31:50 +05:00
William King
388e119e55 CID: 1214221,1214222
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.
2014-05-16 16:35:49 -07:00
Russell Treleaven
3666029ff0 add auth-subscriptions flag. sofia ua can now optionally challenge subscrition requests 2014-05-16 19:05:35 +00:00
William King
af32ca00e3 Correction to commit 0ba59aa6c2d252886eb4889c5d37fe114e07b4f4 using the correct variable in tel uri param parsing for mod_sofia 2014-04-29 15:23:24 -07:00
Anthony Minessale
cc06d9181b FS-4779 FS-6467 the behaviour from 4479 is now masked behind the param 3pcc-reinvite-bridged-on-ack FS-6467 please test master 2014-04-28 22:10:14 +05:00
William King
0ba59aa6c2 Expanding on 052638186b2784c4142089008adf4289d40c80bc to support boolean tel url params in mod_sofia 2014-04-25 13:49:59 -07:00
Anthony Minessale
79ebcb104b add enable-chat sofia profile param which defaults to true when not present, set to false to turn off the chat interface in sofia 2014-04-19 12:29:10 -05:00
Anthony Minessale
bce51017fb FS-6462 --resolve
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.
2014-04-17 04:26:43 +05:00
Anthony Minessale
a4a792488b add generic keepalive system and implement it in sofia to send MESSAGE or INFO packets in-dialog at specified interval.
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.
2014-04-16 06:10:25 +05:00
Raymond Chandler
052638186b add parsing of user params on invite 2014-04-15 12:48:07 -04:00
Brian West
19e3175518 FS-6422: --resolve obvious copy and paste error 2014-04-03 07:20:41 -05:00
Anthony Minessale
7151d6acea FS-6402 part 2 2014-04-02 03:21:37 +05:00
Anthony Minessale
5c0cff70b3 FS-6402 --resolve 2014-04-02 01:20:19 +05:00
Michael Jerris
65c58a7ceb FS-6341: fix compiler warning from set but unused var 2014-03-17 18:42:02 -04:00
Michael Jerris
340b697e1b FS-6341: --resolve add 3pcc invite w/o sdp support for 100rel/PRACK 2014-03-17 12:27:42 -04:00
Michael Jerris
3c95a52ff6 we are intentionally using a value outside of the enum here as a special value. The compiler will always make this an int anyways, so this is safe. cast to remove the warning 2014-03-15 22:47:55 -04:00
Anthony Minessale
89f9490710 FS-6350 --resolve Parse params out of user portion of caller_id and save them to sip_name_params 2014-03-14 13:13:22 -05:00
Anthony Minessale
70f2908976 more nat fix 2014-03-11 16:12:43 -05:00
Anthony Minessale
5c8a3b12fd Convert some behaviors to optional.
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.
2014-03-11 15:17:02 -05:00