1046 Commits

Author SHA1 Message Date
Anthony Minessale
68e0b7e859 optimize sofia sql by using new core transaction processor we will no longer support databases that do not support transactions 2012-10-25 11:31:47 -05:00
Brian West
fbb99f60b4 really fix FS-3726 this time 2012-10-18 15:56:06 -05:00
Anthony Minessale
986fede6b0 make a way to get the jitter buffer down to the codecs 2012-10-18 15:29:00 -04:00
Anthony Minessale
a20aec182a add rtp_manual_video_rtp_bugs 2012-10-16 18:43:00 -04:00
Anthony Minessale
7eafa85de5 add execute_on_media_timeout var 2012-10-16 12:48:16 -04:00
Anthony Minessale
ea599992e1 FS-4656 --resolve with this patch the bug is fixed but also the old behaviour of setting this variable on the A leg expecting it to auto-set it on the B leg is no longer supported. It must be exported or put in the dialstring with {} to put it on the B leg going forward 2012-10-03 07:42:05 -05:00
Anthony Minessale
06a3266360 FS-4655 its not a bug its a behaviour request, try this patch 2012-09-27 14:27:28 -05:00
Anthony Minessale
9c97ae3ccc FS-4640 please test 2012-09-21 14:45:30 -05:00
Raymond Chandler
bf4bb0028e Merge branch 'master' into FS-4558 2012-09-08 02:29:59 -04:00
Raymond Chandler
8ef13dd8a2 FS-4558 --resolve 2012-09-08 02:28:35 -04: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
Anthony Minessale
455b22480c FS-3971 --resolve 2012-09-04 12:30:23 -05:00
Anthony Minessale
a5e9f65e31 FS-4582 --resolve 2012-09-01 11:46:45 -05:00
Raymond Chandler
6ed3218f8a FS-4558: add uuid 2012-08-31 16:35:13 -04:00
Anthony Minessale
6d2b3256c3 another efficiency pass on sofia and refactoring of 3c685bff255779d21c1d6cd577276f1861be7aa2 to be more efficient 2012-08-30 15:26:13 -05:00
Anthony Minessale
04924f1694 FS-4079 FS-4540 regression from 5213c764bbaf779a0b4c4f9feb35f13b5097c6c4 please update ASAP if you are running this one 2012-08-23 14:56:37 -05:00
Anthony Minessale
5213c764bb FS-4079 FS-4540 minor refactoring to fix some minor side effects of recent changes 2012-08-23 11:10:03 -05:00
Anthony Minessale
2a8841ab66 change mod_sofia to use new core based recovery engine 2012-08-22 16:27:07 -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
ef5c1256f3 add rtp endpoint contributed by sangoma 2012-08-08 14:46:38 -05:00
Anthony Minessale
06ed24b2d4 FS-4501 try this 2012-08-06 19:38:56 -05:00
Anthony Minessale
c3de9637af FS-4079 please test 2012-08-06 16:12:03 -05:00
Anthony Minessale
beed0336c0 FS-4484 I missed the part about gateways, that is a different story. Try this patch 2012-07-31 15:53:00 -05:00
Anthony Minessale
32b3f3e224 doh 2012-07-25 19:09:03 -05:00
Anthony Minessale
c9e172789c FS-4467 try this patch that will sanity check for dups to catch this case when the ambigous method is used 2012-07-25 16:34:43 -05:00
Anthony Minessale
5867d0424d FS-4079 please try this 2012-07-18 21:48:53 -05:00
Anthony Minessale
ba6c404eb9 FS-4422 2012-07-12 18:10:20 -05:00
Anthony Minessale
2aebe2456f first pass on some new stuff 2012-07-11 15:15:50 -05:00
Anthony Minessale
15fda06646 FS-4381 --resolve 2012-07-03 09:23:25 -05:00
Michael Jerris
e9a66618ff FS-4353: missing free from last commit 2012-06-27 15:53:15 -04:00
Anthony Minessale
ed0ab36e2d FS-4353 redirect case 2012-06-27 12:25:03 -05:00
Anthony Minessale
b0f53cd625 FS-4353 --resolve this may also fix FS-4079 2012-06-27 09:33:01 -05:00
Brian West
37e61ee6eb FS-4320 sigh 2012-06-21 13:07:38 -05:00
Michael Jerris
ea503ea23e fix pnp config for grandstream 2012-06-19 14:22:57 -04:00
Anthony Minessale
56325e8c71 FS-4079 possible fix 2012-06-11 11:15:41 -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
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
718a311a41 FS-4224 --resolve add optional wait param to sofia profile stop [sofia profile foo stop wait] 2012-05-18 07:52:58 -05:00
Anthony Minessale
bbdcd33bde performance tweaks for sip message parsing and event system 2012-05-17 20:10:53 -05:00
Anthony Minessale
f9653fbd38 FS-4204 --resolve 2012-05-10 22:34:37 -05:00
Anthony Minessale
225eebc20d take out 101 dialing 2012-05-08 19:44:39 -05:00
Anthony Minessale
07204a1fb5 add param:confirm-blind-transfer var:confirm_blind_transfer that makes blind transfers keep the transferrer on the line until its confirmed that the call was completed or brings it back to the bridge. blind_transfer_ack app can be executed in the dp by the transferee to indicate sucess or fail or a sucessful bridge will automatically trigger a success 2012-05-08 08:50:41 -05:00
Anthony Minessale
a511ff3026 re-implement sla barge using eavesdrop backend 2012-05-07 13:44:16 -05:00
Moises Silva
105ce9ff33 Fixes before merging sangoma repo with upstream 2012-05-07 16:26:48 -04:00
Moises Silva
1f08e2b0ec Merge remote branch 'fsorig/master' 2012-05-07 15:46:08 -04:00
Anthony Minessale
8664dc6d5a some perfomance tweaks 2012-05-03 16:31:21 -05:00