Commit Graph

3378 Commits

Author SHA1 Message Date
Anthony Minessale e4e9b1b9f9 have resume media on hold not send invite back out at the holder but rather enable media in the 200ok 2014-10-10 16:09:43 -05:00
Travis Cross b5294c53d6 Fix crash on transport=tls with non-TLS profile
We use the transport of the Contact header of the remote UAC to decide
which of our own Contact addresses we should use when replying to a
SUBSCRIBE or sending a presence NOTIFY.

If TLS is not enabled on a Sofia profile, then the TLS Contacts for
that profile are NULL.  Unfortunately we were using these NULL values
uncritically when the remote UAC sent us a Contact header with a TLS
transport and our own Sofia profile did not have TLS enabled.

With this commit we fall back to our TCP Contact address when the
remote Contact is TLS and our Sofia profile does not have TLS enabled.
2014-10-10 18:36:37 +00:00
Michael Jerris 855cc4b4e0 add 908-retry-seconds gateway param to set reg retry time when getting a 908 for backup interfaces to connect quickly 2014-10-09 14:43:23 -04:00
Mike Jerris 34bc98cafa Merge pull request #47 in FS/freeswitch from ~FLAVIO/freeswitch-fs-5106:master to master
* commit '56535519043201c723467c66c772d7519a2b6f62':
  FS-5106 fire an event when a sip client doesn't respond to option-ping
2014-10-07 14:06:34 -05:00
Anthony Minessale 2051a86df2 FS-6889 #resolve 2014-10-07 13:47:44 -05:00
Mike Jerris 6860b41763 Merge pull request #83 in FS/freeswitch from ~MKVONARX/freeswitch-fs-6710:FS-6710 to master
* commit '490efb7177ddcd3e61018f02c1435362937e8b15':
  FS-6710: fix incorrect comparison for Min-SE values between SIP INVITE and local configuration
2014-10-07 11:50:19 -05:00
Mike Jerris d4929443f9 Merge pull request #59 in FS/freeswitch from ~SJTHOMASON/freeswitch:FS-5868 to master
* commit '747322dcc6f4db1bffc985c9bcff0bd32a2682a9':
  Remove Contact header from BYE and CANCEL requests.
2014-10-07 11:47:40 -05:00
Markus von Arx 490efb7177 FS-6710: fix incorrect comparison for Min-SE values between SIP INVITE and local configuration 2014-10-07 10:41:36 +02:00
Anthony Minessale b2ae5f4cc2 few bugs on recent new features 2014-10-03 15:36:23 -05:00
Anthony Minessale bde2e2da51 FS-6889 #resolve 2014-10-03 11:34:42 -05:00
Jeff Lenk ae5d86515a FS-6884 #comment these were mostly simple warnings 2014-10-02 19:20:35 -05:00
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
Brian West 644b41f792 FS-6874 #resolve 2014-09-30 17:05:06 -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
Travis Cross 5bd35471f7 Add var to suppress Privacy: none header
Apparently the MetaSwitch guys incorrectly interpret `Privacy: none`
as `Privacy: id`.

ref: RFC 3325

Reported-by: Stéphane Alnet <stephane@shimaore.net>

FS-6817 #resolve
2014-09-11 19:56:19 +00:00
Anthony Minessale 7144b25254 obey sip_copy_custom_headers on bye 2014-09-12 00:37:19 +05:00
Anthony Minessale 77c99b6306 FS-6806 #resolve #comment off by 1 error in last fix 2014-09-10 20:32:36 +05:00
Mike Jerris 98c8a9b508 Merge pull request #38 in FS/freeswitch from ~ALEXDG/freeswitch-event-for-gateway-ping:master to master
* commit '388e9638de7c14e00272777245dacc87cf09fc1c':
  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-08 14:35:47 -05:00
Anthony Minessale a73583b5f3 FS-6806 #resolve 2014-09-09 00:09:31 +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
Travis Cross 5c29d8d4fa Show gateway uptime in seconds
In `sofia status gateway ...` let's show the uptime in seconds rather
than in microseconds.  We'll output the uptime in microseconds in
`xmlstatus` and we'll label it as such.
2014-09-04 05:39:26 +00: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
Travis Cross 5a209a9680 Remove misleading tport example from configs
As an example of using mod_sofia's gateway parameter `contact-params`
we'd used the value `tport=tcp`.  Looking around, it's clear this has
misled people into believing you can specify `tport=tcp` to make the
gateway use TCP or `tport=tls` to make the gateway use TLS.  This does
not work.

The actual contact parameter is named `transport` rather than `tport`,
and you shouldn't use `transport` in `contact-params` because we
automatically add a `transport` to the Contact: based on the value of
`register-transport` (even if the gateway is set to not register).

It's clear why this would be confusing, so we'll just remove this as
an example.
2014-08-27 23:15:45 +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
Anthony Minessale 5075d4af0d fix typo that can lead to seg 2014-07-30 22:17:47 +05:00
Anthony Minessale 49700ecf0f fix extraneous < in sip url parser 2014-07-30 22:13:57 +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 II 83a4305003 Merge pull request #6 in FS/freeswitch from ~FRANCOIS/fs-6568:master to master
* commit 'e3b0d7219e1ea269ccd7c5f04747ad21f62c73b2':
  Fix BLF confusion when dealing with the same extension in multiple domains
2014-07-18 12:27:19 -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
Travis Cross 1b7360159a Associate "sending early media" log with session 2014-07-16 04:57:39 +00:00
Anthony Minessale c58e64bf6d add some more headers to sip messages 2014-07-16 00:55:46 +05:00
Mike Jerris 6dca24bb2a Merge pull request #5 in FS/freeswitch from ~KATHLEEN.KING/freeswitch-fork:clang-warnings-werror to master
* commit '1affff9db4aaa29ab66f9f5db76f575eeabd86b5':
  Fixed a clang-3.5 missing-prototype warning and added doxygen documentation for switch_channel_set_presence_data_vals. #doxygen
  Fixed dead code.
  Fixed trucation of value warning.
  Removed a useless called to abs.
  Removed an autological-pointer-compare from src/switch_utils.c.
  Fixed trucation of value warning.
2014-07-14 17:38:21 -05:00
Brian West a0a8a66525 FS-6420 2014-07-10 10:17:54 -05:00
Brian West 36fd87a67a Merge pull request #7 in FS/freeswitch from ~PFOURNIER/freeswitch:bugfix/t38_require_timer to master
* commit '21ae587063eb3b55c690f47cf9299a539ec25415':
  Disabling Require timer for T.38 re-Invites cause problems
2014-07-09 10:49:04 -05:00
Brian West 28e90addf2 FS-5501 fire event on profile start 2014-07-09 08:53:14 -05:00
Patrice Fournier 21ae587063 Disabling Require timer for T.38 re-Invites cause problems
Disabling Require timer for T.38 re-Invites tells the remote side it
doesn't need to refresh the session but FreeSwitch will still terminate
the call if the remote session doesn't refresh.
2014-07-08 01:00:52 -04:00
François e3b0d7219e Fix BLF confusion when dealing with the same extension in multiple domains 2014-07-06 16:57:50 +02:00
Kathleen King 85699480b3 Fixed trucation of value warning.
There was a parameter mismatch between abs(), which expects an int,
and atol() which returns a long. Since max_drift is defined as an int,
there is no need to pars q as a long rather than an int.
2014-07-03 14:41:24 -07: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