1099 Commits

Author SHA1 Message Date
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
Anthony Minessale
b3a6bb9c2b improve parsing 2012-08-15 11:19:16 -05:00
Anthony Minessale
0d05762085 FS-4079 revert 4ef9b3fe5622e417e8cd2916491e0058492a3bb7 2012-08-14 17:06:02 -05:00
Anthony Minessale
4ef9b3fe56 FS-4079 new patch, please test 2012-08-13 13:48:06 -05:00
Anthony Minessale
d806014009 FS-4079 try this 2012-08-07 17:23:01 -05:00
Anthony Minessale
b843e8fd8b FS-4495 --resolve 2012-08-06 10:49:48 -05:00
Anthony Minessale
996c5378a1 4579 tweaks 2012-08-05 16:45:14 -05:00
Anthony Minessale
e97da8e20a remove debug 2012-07-31 16:35:56 -05:00
Anthony Minessale
a7b10081c8 send notifies for refer for 4579 2012-07-31 15:26:03 -05:00
Anthony Minessale
e40e8696fc update 4579 stuff 2012-07-31 14:01:56 -05:00
Anthony Minessale
0f4ecab5e9 FS-4481 --resolve seg is fixed but just utf-8 will not work. you need type/subtype format like text/utf-8 2012-07-30 16:36:20 -05:00
Anthony Minessale
365b9feb72 457x tweaks 2012-07-27 15:07:11 -05:00
Anthony Minessale
034d3741c1 4569 tweaks 2012-07-26 21:07:10 -05:00
Anthony Minessale
772f60d235 4569 tweaks 2012-07-26 16:47:50 -05:00
Anthony Minessale
93f96addc3 FS-4453 confirm this fixes your problem please 2012-07-26 12:32:51 -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
Anthony Minessale
9fe08675a1 add tags to allow crypto in avp 2012-07-20 12:11:02 -05:00
Anthony Minessale
f50d14a7d1 treate no method as INVITE 2012-07-19 17:03:23 -05:00
Anthony Minessale
7ec09b0e56 FS-4378 --resolve 0 is success, thats the missing bit, this will work 2012-07-19 11:09:30 -05:00
Anthony Minessale
ec412c07d2 typo 2012-07-18 23:02:32 -05:00
Anthony Minessale
d3f1eeea61 FS-4378 actually fire the event 2012-07-18 12:37:12 -05:00
Anthony Minessale
223244d491 FS-4435 looks ok at a glance, at least this code is isolated to the small few who actually use it so i will put it in for testing 2012-07-17 17:01:10 -05:00
Anthony Minessale
cbca8b3480 FS-4428 --resolve 2012-07-16 13:53:19 -05:00
Anthony Minessale
18a16e6931 FS-4335 test this patch, and also remember you must resubmit the logs after each new test 2012-07-12 17:45:43 -05:00
Anthony Minessale
cc48015709 conf tweaks 2012-07-12 14:30:44 -05:00
Anthony Minessale
4e0f40d7c6 update 2012-07-11 17:25:45 -05:00
Anthony Minessale
2aebe2456f first pass on some new stuff 2012-07-11 15:15:50 -05:00
Anthony Minessale
ba428a1559 FS-4406 please test asap and report back 2012-07-10 23:04:16 -05:00
Anthony Minessale
6904ae6f3b FS-4404 regression from b9b4db7d40159ec1b8d2a0c0f41655339daa0887 2012-07-10 13:28:38 -05:00
Stefan Knoblich
111ef49f1f mod_sofia: Use switch_add_event_header_string() for string values.
Errors fixed:
	sofia.c: In function 'sofia_handle_sip_i_refer':
	sofia.c:7323:5: error: format not a string literal and no format arguments
	sofia.c:7324:5: error: format not a string literal and no format arguments

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-07-10 14:30:01 +02:00
Anthony Minessale
e79e6146c5 FS-4378 add sofia::error custom event 2012-07-09 10:56:04 -05:00
Anthony Minessale
b9b4db7d40 FS-4404 --resolve 2012-07-09 10:37:15 -05:00
Anthony Minessale
694c8c0fa1 FS-4335 please update and try this 2012-07-05 11:42:07 -05:00
Anthony Minessale
9470c079dd FS-4298 see if you can see the sip_reinvite_sdp variable with this patch 2012-06-12 10:15:14 -05:00
Travis Cross
c85c8d7bbd
Add mechanism to set OpenSSL session timeout
In a sofia profile, you can now set the parameter tls-timeout to a
positive integer value which represents the maximum time in seconds
that OpenSSL will keep a TLS session (and its ephemeral keys) alive.

This value is passed to OpenSSL's SSL_CTX_set_timeout(3).

OpenSSL's default value is 300 seconds, but the relevant standard
(RFC 2246) suggests that much longer session lifetimes are
acceptable (it recommends values less than 24 hours).

Longer values can be useful for extending battery life on mobile
devices.

Signed-off-by: Travis Cross <tc@traviscross.com>
2012-06-11 21:46:05 +00:00
Michael Jerris
ec27618fc8 don't segfault after starting sofia, upon xml_open_config lookup failure for the profile from launch_sofia_worker_thread 2012-06-11 10:43:55 -04:00
Anthony Minessale
fc2bb00eb1 FS-4298 --resolve var is called execute_on_sip_reinvite 2012-06-08 12:43:50 -05:00
Raymond Chandler
9b488fbffd pnp 2012-06-04 15:16:30 -04:00
Travis Cross
c98cdb4e04 avoid warning if late negotiation is enabled anyway 2012-06-01 21:44:21 +00:00
Anthony Minessale
410040218a add warning so users know inbound-zrtp-passthru will enable late negotiation 2012-06-01 14:11:21 -05:00
Anthony Minessale
f685e4c504 allow ep_codec_string to draw from absolute_codec_string before the profile prefs 2012-06-01 10:06:28 -05:00
Anthony Minessale
693e04a7de FS-4250 please post a new log if this does not work 2012-05-31 09:04:14 -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
Travis Cross
16cf43a68d fix indentation; whitespace 2012-05-23 23:46:21 +00:00
Anthony Minessale
fb790bc320 block any inbound messages when queue is full; add debounce for mwi and pres on register; fix missing detach attr on new mode to process reg in new thread 2012-05-22 10:27:23 -05:00
Anthony Minessale
792b004f36 add mwi-use-reg-callid 2012-05-21 13:55:50 -05:00