2100 Commits

Author SHA1 Message Date
Jeff Lenk
e22f42334d FS-4099 --resolve switch windows to use posix delimiter (/) for base paths. This will correct numerous problems with escaped chars. This change only effects windows builds. Please test. 2012-09-16 14:15:49 -05:00
Michael Jerris
d1ddb73c0b fix build of mod_freetdm 2012-09-14 14:40:16 -04:00
Anthony Minessale
d5e5fb032a add funcs to binary seralize/deserialize switch_events into a contiguous binary frame 2012-09-13 17:46:28 -05:00
Anthony Minessale
5a956890af update json lib in core and ESL and re-apply old patches 2012-09-13 12:54:31 -05:00
Anthony Minessale
631c976f59 don't put casue from unanswered pickups as result of originate 2012-09-12 10:22:03 -05:00
Anthony Minessale
c2893801cb add timestamps for on and off hold times to put in xml cdrs 2012-09-07 18:17:57 -05:00
Anthony Minessale
bfc46567c1 add uuid_media_reneg api command to tell a channel to send a re-invite with optional list of new codecs 2012-09-07 15:33:09 -05:00
Raymond Chandler
6ed3218f8a FS-4558: add uuid 2012-08-31 16:35:13 -04:00
Anthony Minessale
35f0e2ff3a add uuid_early_ok 2012-08-30 16:51:06 -05:00
Anthony Minessale
ada8b78393 FS-4573 --resolve 2012-08-29 11:46:36 -05:00
Anthony Minessale
3c685bff25 fix double sessions on auth challenged calls 2012-08-29 10:38:37 -05:00
Anthony Minessale
66677c940a move recovery engine up into the core 2012-08-22 16:27:07 -05:00
Anthony Minessale
33e642e98c remove unused resurrect code 2012-08-22 16:27:07 -05:00
Steve Underwood
ea58df8456 Fixed Cairo's entry in the timezone files
Changed mod_spandsp so it tries to resolve timezone names like Asia/HongKong
to a POSIX timezone descriptor string, like other parts of FreeSwitch do.
2012-08-22 22:25:54 +08:00
Anthony Minessale
142c051d68 cache session threads and reuse them if possible 2012-08-21 00:14:50 -05:00
Anthony Minessale
f454b79b9b fix color coding to be OS appropriate 2012-08-16 13:04:33 -05:00
Anthony Minessale
0f71d9cc08 up date 2012-08-16 12:30:26 -05:00
Anthony Minessale
cc351ca004 revert 2012-08-16 12:09:19 -05:00
Anthony Minessale
42bf44de51 FS-4539 please test this and post new logs if necessary 2012-08-16 11:56:55 -05:00
Anthony Minessale
bb69310259 FS-4079 FS-4540 please update to this version 2012-08-15 22:51:41 -05:00
Anthony Minessale
e5a15cde31 debug lost read lock 2012-08-15 15:11:57 -05:00
Stefan Knoblich
8bcf3b4fb8 FreeSWITCH: Add switch_strerror_r() to fix problems with XSI and GNU variants of strerror_r().
GNU variant of strerror_r() returns char *, while the XSI version returns int.

To make things worse, glibc ships both and added a unused result warning
in recent versions (2.16) causing the build to fail.

Add our own custom wrapper that always returns a pointer to the message buffer
and additionally make XSI versions of strerror_r() GNU compatible by
returning "Unknown error xxx" if no error message is available.

Fixes:
    src/switch_rtp.c: In function 'rtp_common_read':
    src/switch_rtp.c:3313:15: error: ignoring return value of 'strerror_r',
    declared with attribute warn_unused_result [-Werror=unused-result]
    cc1: all warnings being treated as errors

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-08-14 14:11:44 +02:00
Anthony Minessale
75abcd2099 fix build 2012-08-09 16:27:15 -05:00
Michael Jerris
f044f46250 add apr stub to get the real OS socket 2012-08-09 11:56:29 -05:00
Anthony Minessale
293429f78d add api-expansion to switch.conf.xml and fsctl api_expansion command to control allowing apis to be expanded via variable expansion 2012-07-27 18:53:04 -05:00
Anthony Minessale
d832b5dfef FS-4453 --resolve this will now cause up to a 20 second timeout waiting for the response and the call will be blocking 2012-07-24 13:45:10 -05:00
Travis Cross
a8019d803c Make version output more human-friendly
Our main version string is designed for release engineering purposes:
it matches file name conventions used for versioned tarballs and the
versions sort lexicographically while containing all pertinent
information.

With this commit we add in parentheses a more human-friendly rendering
of the version string: we spell out the meaning of each field and
render the datetime in RFC 822 notation.
2012-07-20 07:43:26 +00:00
Seven Du
14cb9af607 add switch_core_file_write_video
open a door to write video data
so it is possible to record a .fsv file
also possible to write to .mp4 with proper file format support
2012-07-20 11:38:20 +08:00
Anthony Minessale
f4715781dc FS-4382 reverse this so you have to enable instead of disable, this patch has been causing srtp issues because the change in ssrc 2012-07-18 22:01:41 -05:00
Anthony Minessale
46fee25dad add fsctl sql start/stop for standby controls 2012-07-12 14:30:44 -05:00
Anthony Minessale
088437cab1 add some rtcp stuff for sangoma 2012-07-11 15:23:12 -05:00
Anthony Minessale
2aebe2456f first pass on some new stuff 2012-07-11 15:15:50 -05:00
Anthony Minessale
16cb32cd5c come to cluecon will ya 2012-07-06 17:54:21 -05:00
Anthony Minessale
9ca929218f FS-4382 --resolve 2012-07-06 11:12:14 -05:00
Anthony Minessale
bf20f52452 add execute_on_post_originate and api_on_post_originate to run on chosen newly originated channels vs execute_on_originate which runs on all candidates 2012-07-05 12:34:09 -05:00
Anthony Minessale
b1ae97466d add enable-use-system-time param to switch.conf.xml use at your own risk, someone with windows could verify it works ok 2012-07-03 17:15:14 -05:00
Anthony Minessale
c5ba5acbd5 move stacksize thing into the core deeper to avoid build issues 2012-07-03 11:35:41 -05:00
Anthony Minessale
f3a49366a1 FS-4331 please test and post a new log if necessary 2012-07-03 08:05:41 -05:00
Anthony Minessale
7ec8fb43d4 add initial-event-threads to switch.conf.xml 2012-06-29 11:39:49 -05:00
Anthony Minessale
8b4c9dc42c FS-3659 and some refactor for rtcp ice and video ice and rtcp 2012-06-22 18:15:06 -05:00
Anthony Minessale
c30940462a update stun to more modern spec 2012-06-22 18:15:06 -05:00
dschreiber
6069adece5 Revert "add thread safe hash multi delete function and make callback optional"
I don't see this command being used anywhere. Since I don't like to touch core files unless absolutely necessary I'm reverting these two changes. I've emailed the author, Tamas, for an explanation. The other patches for FS-3432 (merged in now) appear to work fine without this commit.

This reverts commit fbcb86226581cdcc66fc7b633b505906c207a4cd.
2012-06-19 08:51:28 -07:00
dschreiber
7e6018985c Merge remote branch 'origin/master' into FS-3432 2012-06-19 08:10:54 -07:00
Anthony Minessale
830755ac85 allow event consumer to supply size as optional arg 2012-06-14 11:31:46 -05:00
Travis Cross
c1b2472781 SWITCH_VERSION_REVISION includes the dash or dot itself 2012-06-01 22:22:44 +00:00
Anthony Minessale
192030c578 add metadata col to internal registrations table 2012-05-30 13:05:05 -05:00
Anthony Minessale
8bb55ed4bf abstract out originate_signal_bond to a function to avoid confustion and regressions 2012-05-29 13:10:15 -05:00
Travis Cross
23f8967c32
add enhanced zrtp passthrough (zrtp passthru) mode
ZRTP passthrough mode allows two ZRTP-capable clients to negotiate an
end-to-end security association through FreeSWITCH.  The clients are
therefore able to be certain that the FreeSWITCH instance mediating
the call cannot eavesdrop on their conversation.

Importantly, this capability is maintained across multiple FreeSWITCH
hops.  If widely deployed, this enables a global network architecture
where two people can speak securely with strong cryptographically
protected authentication and confidentiality.

With this commit we implement a zrtp-passthru mode that handles all
the details of the negotiation intelligently.  This mode can be
selected by setting the boolean parameter inbound-zrtp-passthru in the
sofia profile.  This will also force late-negotiation as it is
essential for correctly negotiating an end-to-end ZRTP security
association.

When an incoming call with a zrtp-hash is received and this mode is
enabled, we find the first audio and the first video zrtp-hash in the
SDP and store them as remote values on this channel.  Once a b-leg is
available, we set the local zrtp-hash values on that channel to the
remote zrtp-hash values collected from the a-leg.

Because zrtp-passthru absolutely requires that the channels negotiate
the same codec, we offer to the b-leg only codecs that the a-leg can
speak.  Once the b-leg accepts a codec, we will force that choice onto
the a-leg.

If the b-leg sends us zrtp-hash values in the signaling, we store
those as remote values on the b-leg and copy them to the local values
on the a-leg.

At this point, each leg has the zrtp-hash values from the other, and
we know we can do ZRTP passthrough mode on the call.  We send the
b-leg's zrtp-hash back to the a-leg in the 200 OK.

We then enable UDPTL mode on the rtp streams for both the audio and
the video so that we don't interfere in the ZRTP negotiation.

If the b-leg fails to return a zrtp-hash in the signaling, we set up a
ZRTP security association with the a-leg ourselves, if we are so
equipped.  Likewise, if the a-leg fails to send a zrtp-hash in the
signaling, we attempt to set up a ZRTP security association ourselves
with the b-leg.

The zrtp-passthru mode can also be enabled in the dialplan by setting
the boolean channel variable zrtp_passthru.  If enabled in this
manner, we can't force late-negotiation, so the user would need to be
sure this is configured.

If ZRTP passthrough mode is not enabled in either manner, this change
should have no effect.

Channel variables for each of the various zrtp-hash values are set,
though it is anticipated that there is no good reason to use them, so
they may be removed without warning.  For checking whether zrtp
passthrough mode was successful, we provide the channel variable
zrtp_passthru_active which is set on both legs.

Though not implemented by this commit, the changes here should make it
more straightforward to add correct zrtp-hash values to the signaling
and verify that correct hello hash values are received when FreeSWITCH
is acting as a terminating leg of the ZRTP security association.

A historical note...

This commit replaces the recently-added sdp_zrtp_hash_string method,
commit 2ab1605a8887adc62be1b75f6ef67af87ff080de.

This prior method sets a channel variable from the a-leg's zrtp-hash,
then relies on the dialplan to export this channel variable to the
b-leg, where it is put into the SDP.

While it was a great start and wonderful for testing, this approach
has some drawbacks that motivated the present work:

 * There's no good way to pass the zrtp-hash from the b-leg back to
   the a-leg.  In fact, the implementation seems to send the a-leg's
   zrtp-hash back to the originating client in the 200 OK.  This is
   not correct.

 * To support video, we'd need to have a separate dialplan variable,
   and the dialplan author would need to deal with that explicitly.

 * The API is problematic as it requires the dialplan author to
   understand intricate details of how ZRTP works to implement a
   correct dialplan.  Further, by providing too fine-grained control
   (but at the same time, not enough control) it would limit our
   ability to make the behavior smarter once people started relying on
   this.
2012-05-24 20:39:03 +00:00
Tamas Cseke
fbcb862265 add thread safe hash multi delete function and make callback optional 2012-05-24 09:35:23 +02:00
Anthony Minessale
bbdcd33bde performance tweaks for sip message parsing and event system 2012-05-17 20:10:53 -05:00