Mailing List Archive

Email notification upon invite in DAViCal is 1.1.3.1
Hi,

I am new to DAViCal and just subscribed to this mailing list hopping to get
possible help.

Would option $c->enable_auto_schedule set to true (as it is by default) in
current stable version of DAViCal 1.1.3.1 allow users to be notified by
email by Davical when they are invited to an event by another Davical users
so they can approves or rejects it?

Would email notification require additional settings in Davical conf (e.g
email server)?

>From my understanding:
- setting it to false should force client to handle invitation but we would
like ideally the server to handle it instead and notify users by email,
would it be possible?
- Davical shall be able to do so for internal users but not external
once,is that correct? Is this limit still in place in DAViCal 1.1.3.1?
Would external users still be notified by email even though they may not be
able to reject/approve event directly from notification?

Internal users being those registered on my Davical system (within the same
domain), external users being those that are not (Calendar service provided
by other suppliers).

On a separate note, I was wondering where is the best place to find a list
of all the possible configuration options of Davical with
description/accepted&default values?

I found this http://davical.dhits.nl/index.php/Configuration_settings but
that does not seems to be an exhaustive list (e.g enable_auto_schedule not
listed).

I also found this http://davical.dhits.nl/index.php/Configuration/settings
but it seems empty with only the mention "<ListSubPages/>" on it.

Thank you in advance for your support.

Richard.
Re: Email notification upon invite in DAViCal is 1.1.3.1 [ In reply to ]
Hi Richard,

I have the same problems/question in my current davical (highly patched 1.1.1).
I will test davical 1.1.3.1 in February (I hope) and I'm already really excited
about the points you mentioned.

So far, in 1.1.1, I handle the "$c->enable_auto_schedule = true" issue with that patch:
------------------------------------------
--- htdocs/caldav.php.orig 2014-08-29 13:55:54.143073520 +0200
+++ htdocs/caldav.php 2014-08-29 13:56:01.443068319 +0200
@@ -73,7 +73,7 @@
}
else {
$dav = '1, 2, 3, access-control, calendar-access, calendar-schedule, extended-mkcol, bind, addressbook';
- if ( $c->enable_auto_schedule ) $dav .= ', calendar-auto-schedule';
+// if ( $c->enable_auto_schedule ) $dav .= ', calendar-auto-schedule';
if ( !isset($c->disable_caldav_proxy) || $c->disable_caldav_proxy == false) $dav .= ', calendar-proxy';
}
$dav = explode( "\n", wordwrap( $dav ) );
------------------------------------------
Davical tells the client, that it does no auto_schedule, but afterwards it does.
So clients are sending invitations via mail.
But as you tell, this generates a lot of other problems with invited users, which are externally invited via mail,
and which are not in the davical DB.

I have two other patches for:
- delete events with external attendees was not possible
- accept events with external attendees was not possible

But the patches are not so nice. I also asking myself, what is
the prober way for dealing with external users.

Is there a solution in Davical 1.1.3.1?
If anybody likes, I can post the other two paches.

Regards,

Sebastian



On Mon, Jan 26, 2015 at 02:19:16PM +0000, Richard LEGER wrote:
> Hi,
>
> I am new to DAViCal and just subscribed to this mailing list hopping to
> get possible help.
> Would option $c->enable_auto_schedule set to true (as it is by default) in
> current stable version of DAViCal 1.1.3.1 allow users to be notified by
> email by Davical when they are invited to an event by another Davical
> users so they can approves or rejects it?
>
> Would email notification require additional settings in Davical conf (e.g
> email server)?
> From my understanding:
> - setting it to false should force client to handle invitation but we
> would like ideally the server to handle it instead and notify users by
> email, would it be possible?
> - Davical shall be able to do so for internal users but not external
> once,is that correct? Is this limit still in place in DAViCal 1.1.3.1?
> Would external users still be notified by email even though they may not
> be able to reject/approve event directly from notification?
>
> Internal users being those registered on my Davical system (within the
> same domain), external users being those that are not (Calendar service
> provided by other suppliers).
>
> On a separate note, I was wondering where is the best place to find a list
> of all the possible configuration options of Davical with
> description/accepted&default values?
>
> I found this [1]http://davical.dhits.nl/index.php/Configuration_settings
> but that does not seems to be an exhaustive list (e.g enable_auto_schedule
> not listed).
>
> I also found this
> [2]http://davical.dhits.nl/index.php/Configuration/settings but it seems
> empty with only the mention "<ListSubPages/>" on it.
>
> Thank you in advance for your support.
> Richard.
>
> References
>
> Visible links
> 1. http://davical.dhits.nl/index.php/Configuration_settings
> 2. http://davical.dhits.nl/index.php/Configuration/settings

> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming. The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net/

> _______________________________________________
> Davical-general mailing list
> Davical-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/davical-general


--
Sebastian Kotthoff
Rechenzentrum
Universität Mannheim
B6, 23-29; Building B; Room 1.10
68159 Mannheim

Tel: +49 621 181 2516
Fax: +49 621 181 2682
Re: Email notification upon invite in DAViCal is 1.1.3.1 [ In reply to ]
Hi Andrew,

Any chance you may be able to provide feedback directly on the two
questions below?

On Mon, Jan 26, 2015 at 2:19 PM, Richard LEGER <richard.leger@gmail.com>
wrote:

Q1:


> Would option $c->enable_auto_schedule set to true (as it is by default) in
> current stable version of DAViCal 1.1.3.1 allow users to be notified by
> email by Davical when they are invited to an event by another Davical users
> so they can approves or rejects it?
>

Q2:


> Would email notification require additional settings in Davical conf (e.g
> email server)?
>

Looking at the source code, in Davical > config > debug-config.php file I
found the following section, which seems to confirm that Davical can send
email, am I right to think so?

"...

/*** if this is set then any e-mail that would normally be sent by
DAViCal will be* sent to this e-mail address for
debugging.*///$c->debug_email

"...

I just still don't understand how it does it (no apparent settings in
config file), and how to set it up so notification will be sent by email
(by Davical) to internal attendee when invited to an event.

As iCal does not take into consideration the $c->enable_auto_schedule =
false option, having Davical sent notification by email upon invite would
remain the only option.

I suspect it may just be a matter of setting up smtp settings
somewhere/somehow to allow Davical to send email.

I also found there are some setting in example-config.php for a Push
Notification Server (Jabber) but I guess that is for something completely
different.

Thank you for your support.
Regards,
Re: Email notification upon invite in DAViCal is 1.1.3.1 [ In reply to ]
Hi Richard,

regarding your questions, my understanding is as follows:

> Q1:
>
>
> > Would option $c->enable_auto_schedule set to true (as it is by default) in
> > current stable version of DAViCal 1.1.3.1 allow users to be notified by
> > email by Davical when they are invited to an event by another Davical users
> > so they can approves or rejects it?

DAViCal 1.1.3.1 does not send email, there are no settings to configure
an smtp smarthost or tell DAViCal how to receive replies. There is some
code in the handle_remote_attendees branch on github, which may do some
of that, but it is of experimental quality / unfinished / not integrated
into the latest DAViCal release. It would be good if someone could start
working on that, but up to now I think the options are to either do
scheduling server-side and limit yourself to participants known to the
server, or have the server tell clients that it can't do scheduling
(which is what will happen if you set $c->enable_auto_schedule to
false), so that clients such as Thunderbird do it on their own via email
(and others, e.g. calendar-only mobile apps, loose out).

Florian



------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Davical-general mailing list
Davical-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/davical-general
Re: Email notification upon invite in DAViCal is 1.1.3.1 [ In reply to ]
Hi Sylvain,

I'm currently try to get version 1.1.3.1 running productiv in our environment.
The patched handling the problems with external invitations should work so far.

First you have to to:


-----------------------------------------------
*** htdocs/caldav.php.bkup 2015-09-08 09:54:08.208000000 +0200
--- htdocs/caldav.php 2015-09-08 09:54:23.388000000 +0200
***************
*** 71,81 ****
if ( isset($c->override_dav_header) ) {
$dav = $c->override_dav_header;
}
else {
$dav = '1, 2, 3, access-control, calendar-access, calendar-schedule, extended-mkcol, bind, addressbook';
! if ( $c->enable_auto_schedule ) $dav .= ', calendar-auto-schedule';
if ( !isset($c->disable_caldav_proxy) || $c->disable_caldav_proxy == false) $dav .= ', calendar-proxy';
}
$dav = explode( "\n", wordwrap( $dav ) );
foreach( $dav AS $v ) {
header( 'DAV: '.trim($v, ', '), false);
--- 71,81 ----
if ( isset($c->override_dav_header) ) {
$dav = $c->override_dav_header;
}
else {
$dav = '1, 2, 3, access-control, calendar-access, calendar-schedule, extended-mkcol, bind, addressbook';
! // if ( $c->enable_auto_schedule ) $dav .= ', calendar-auto-schedule';
if ( !isset($c->disable_caldav_proxy) || $c->disable_caldav_proxy == false) $dav .= ', calendar-proxy';
}
$dav = explode( "\n", wordwrap( $dav ) );
foreach( $dav AS $v ) {
header( 'DAV: '.trim($v, ', '), false);
-----------------------------------------------
This will tell the the clients, that Davical does NOT "calendar-auto-schedule"
Even if you set in config "$c->enable_auto_schedule = true" - which is the DEFAULT in Davical.
-> the trick is, that the client now send invitation mails (thunderbird + lightning)
(the external people, davical it does not know, are invited via mail by the organizers client)


Now we have to skip the stuff, where davical like to handle external people during
doing its "calendar-auto-schedule", otherwise it will fail.

There are 2 patches, one for deleting events with external attendees
(delete causes an auto-schedule because davical wants to inform all attendees
This fails - so we skip that for externals:)
-----------------------------------------------
*** inc/schedule-functions.php.bkup 2015-09-08 09:55:49.684000000 +0200
--- inc/schedule-functions.php 2015-09-08 09:58:38.468000000 +0200
***************
*** 121,138 ****
--- 121,141 ----

dbg_error_log( 'schedule', 'Writing ATTENDEE scheduling REPLY from %s to %s', $request->principal->email(), $organizer_principal->email() );

$response = '3.7'; // Organizer was not found on server.
if ( !$organizer_calendar->Exists() ) {
+ $response = '1.1';
+ /*
if ( doImipMessage('REPLY', $organizer_principal->email(), $vcal) ) {
$response = '1.1'; // Scheduling whoosit 'Sent'
}
else {
dbg_error_log('ERROR','Default calendar at "%s" does not exist for user "%s"',
$organizer_calendar->dav_name(), $schedule_target->username());
$response = '5.2'; // No scheduling support for user
}
+ */
}
else {
if ( ! $organizer_inbox->HavePrivilegeTo('schedule-deliver-reply') ) {
$response = '3.8'; // No authority to deliver replies to organizer.
}
***************
*** 239,254 ****
--- 242,260 ----
dbg_error_log( 'schedule', "not delivering to %s, schedule agent set to value other than server", $email );
continue;
}
$schedule_target = new Principal('email',$email);
if ( !$schedule_target->Exists() ) {
+ $response = '1.1'; // Scheduling whoosit 'Sent'
+ /*
if ( doImipMessage('CANCEL', $email, $vcal) ) {
$response = '1.1'; // Scheduling whoosit 'Sent'
}
else {
$response = '3.7';
}
+ */
}
else {
$attendee_inbox = new WritableCollection(array('path' => $schedule_target->internal_url('schedule-inbox')));
if ( ! $attendee_inbox->HavePrivilegeTo('schedule-deliver-invite') ) {
dbg_error_log( 'schedule', "No authority to deliver invite to %s", $schedule_target->internal_url('schedule-inbox') );
-----------------------------------------------

And the second for accepting events with external attendees
(so A ist internal and invites B and C.
B is also internal, but C is external.
davical will fail, when B like to accept the event from A
because it does not no about C)
With the patch davical ignores C. May the Client of B inform C via Mail somehow
-----------------------------------------------
*** inc/caldav-PUT-functions.php.bkup 2015-09-08 10:00:12.752000000 +0200
--- inc/caldav-PUT-functions.php 2015-09-08 10:03:11.456000000 +0200
***************
*** 413,423 ****
// an attendee's reply should modify only the PARTSTAT on other attendees' objects
// other properties (that might have been adjusted individually by those other
// attendees) should remain unmodified. Therefore, we have to make $schedule_original
// and $schedule_request be initialized by each attendee's object here.
$attendee_principal = new DAVPrincipal ( array ('email'=>$email, 'options'=> array ( 'allow_by_email' => true ) ) );
! if ( $attendee_principal == false ){
dbg_error_log( 'PUT', 'Could not find attendee %s', $email);
continue;
}
$sql = 'SELECT caldav_data.dav_name, caldav_data.caldav_data, caldav_data.collection_id FROM caldav_data JOIN calendar_item USING(dav_id) ';
$sql .= 'WHERE caldav_data.collection_id IN (SELECT collection_id FROM collection WHERE is_calendar AND user_no =?) ';
--- 413,424 ----
// an attendee's reply should modify only the PARTSTAT on other attendees' objects
// other properties (that might have been adjusted individually by those other
// attendees) should remain unmodified. Therefore, we have to make $schedule_original
// and $schedule_request be initialized by each attendee's object here.
$attendee_principal = new DAVPrincipal ( array ('email'=>$email, 'options'=> array ( 'allow_by_email' => true ) ) );
! // if ( $attendee_principal == false ){
! if (( $attendee_principal == false) || ($attendee_principal->user_no() == "" )) {
dbg_error_log( 'PUT', 'Could not find attendee %s', $email);
continue;
}
$sql = 'SELECT caldav_data.dav_name, caldav_data.caldav_data, caldav_data.collection_id FROM caldav_data JOIN calendar_item USING(dav_id) ';
$sql .= 'WHERE caldav_data.collection_id IN (SELECT collection_id FROM collection WHERE is_calendar AND user_no =?) ';
***************
*** 561,571 ****
}
$schedule_target = new Principal('email',$email);
$response = '3.7'; // Attendee was not found on server.
dbg_error_log( 'PUT', 'Handling scheduling resources for %s on %s which is %s', $email,
($create?'create':'update'), ($attendee_is_new? 'new' : 'an update') );
! if ( $schedule_target->Exists() ) {
// Instead of always writing to schedule-default-calendar, we first try to
// find a calendar with an existing instance of the event.
$sql = 'SELECT caldav_data.dav_name, caldav_data.caldav_data, caldav_data.collection_id FROM caldav_data JOIN calendar_item USING(dav_id) ';
$sql .= 'WHERE caldav_data.collection_id IN (SELECT collection_id FROM collection WHERE is_calendar AND user_no =?) ';
$sql .= 'AND uid=? LIMIT 1';
--- 562,573 ----
}
$schedule_target = new Principal('email',$email);
$response = '3.7'; // Attendee was not found on server.
dbg_error_log( 'PUT', 'Handling scheduling resources for %s on %s which is %s', $email,
($create?'create':'update'), ($attendee_is_new? 'new' : 'an update') );
! // if ( $schedule_target->Exists() ) {
! if (( $schedule_target->Exists() ) && ( $schedule_target->user_no() != "" )) {
// Instead of always writing to schedule-default-calendar, we first try to
// find a calendar with an existing instance of the event.
$sql = 'SELECT caldav_data.dav_name, caldav_data.caldav_data, caldav_data.collection_id FROM caldav_data JOIN calendar_item USING(dav_id) ';
$sql .= 'WHERE caldav_data.collection_id IN (SELECT collection_id FROM collection WHERE is_calendar AND user_no =?) ';
$sql .= 'AND uid=? LIMIT 1';

-----------------------------------------------

One thing:
You should set up the users in Davical with their mail-addresses, they REALY use.
When davical does auto-schedule, it will find the correct attendee by looking in
the mail-adresses.

Normaly it is a good idea, to disable auto-schedule in config, when you invite external people.
Than you have no problems.
We have some special use-case, where we like to have the auto-schedule function.

Sebastian






On Thu, Sep 17, 2015 at 04:17:57PM +0200, silou633@hotmail.fr wrote:
> Hi Sebastian
>
> If I understand well you have two other patches for delete and accept events with external attendees, can you explain these patches ?
>
> Regards,
>
> Sylvain
>
>
> Hi Richard,
>
> I have the same problems/question in my current davical (highly patched
> 1.1.1).
> I will test davical 1.1.3.1 in February (I hope) and I'm already really
> excited
> about the points you mentioned.
>
> So far, in 1.1.1, I handle the "$c->enable_auto_schedule = true" issue with
> that patch:
> ------------------------------------------
> --- htdocs/caldav.php.orig 2014-08-29 13:55:54.143073520 +0200
> +++ htdocs/caldav.php 2014-08-29 13:56:01.443068319 +0200
> @@ -73,7 +73,7 @@
> }
> else {
> $dav = '1, 2, 3, access-control, calendar-access, calendar-schedule,
> extended-mkcol, bind, addressbook';
> - if ( $c->enable_auto_schedule ) $dav .= ', calendar-auto-schedule';
> +// if ( $c->enable_auto_schedule ) $dav .= ', calendar-auto-schedule';
> if ( !isset($c->disable_caldav_proxy) || $c->disable_caldav_proxy ==
> false) $dav .= ', calendar-proxy';
> }
> $dav = explode( "\n", wordwrap( $dav ) );
> ------------------------------------------
> Davical tells the client, that it does no auto_schedule, but afterwards it
> does.
> So clients are sending invitations via mail.
> But as you tell, this generates a lot of other problems with invited users,
> which are externally invited via mail,
> and which are not in the davical DB.
>
> I have two other patches for:
> - delete events with external attendees was not possible
> - accept events with external attendees was not possible
>
> But the patches are not so nice. I also asking myself, what is
> the prober way for dealing with external users.
>
> Is there a solution in Davical 1.1.3.1?
> If anybody likes, I can post the other two paches.
>
> Regards,
>
> Sebastian
>
>
>
> On Mon, Jan 26, 2015 at 02:19:16PM +0000, Richard LEGER wrote:
> > Hi,
> >
> > I am new to DAViCal and just subscribed to this mailing list hopping to
> > get possible help.
> > Would option $c->enable_auto_schedule set to true (as it is by default)
> > in
> > current stable version of DAViCal 1.1.3.1 allow users to be notified by
> > email by Davical when they are invited to an event by another Davical
> > users so they can approves or rejects it?
> >
> > Would email notification require additional settings in Davical conf
> > (e.g
> > email server)?
> > From my understanding:
> > - setting it to false should force client to handle invitation but we
> > would like ideally the server to handle it instead and notify users by
> > email, would it be possible?
> > - Davical shall be able to do so for internal users but not external
> > once,is that correct? Is this limit still in place in DAViCal 1.1.3.1?
> > Would external users still be notified by email even though they may
> > not
> > be able to reject/approve event directly from notification?
> >
> > Internal users being those registered on my Davical system (within the
> > same domain), external users being those that are not (Calendar service
> > provided by other suppliers).
> >
> > On a separate note, I was wondering where is the best place to find a
> > list
> > of all the possible configuration options of Davical with
> > description/accepted&default values?
> >
> > I found this
> > [1]http://davical.dhits.nl/index.php/Configuration_settings
> > but that does not seems to be an exhaustive list (e.g
> > enable_auto_schedule
> > not listed).
> >
> > I also found this
> > [2]http://davical.dhits.nl/index.php/Configuration/settings but it
> > seems
> > empty with only the mention "<ListSubPages/>" on it.
> >
> > Thank you in advance for your support.
> > Richard.
> >
> > References
> >
> > Visible links
> > 1. http://davical.dhits.nl/index.php/Configuration_settings
> > 2. http://davical.dhits.nl/index.php/Configuration/settings
>
> > ------------------------------------------------------------------------------
> > Dive into the World of Parallel Programming. The Go Parallel Website,
> > sponsored by Intel and developed in partnership with Slashdot Media, is
> > your
> > hub for all things parallel software development, from weekly thought
> > leadership blogs to news, videos, case studies, tutorials and more. Take a
> > look and join the conversation now. http://goparallel.sourceforge.net/
>
> > _______________________________________________
> > Davical-general mailing list
> > Davical-general@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/davical-general
>
>
> --
> Sebastian Kotthoff
> Rechenzentrum
> Universität Mannheim
> B6, 23-29; Building B; Room 1.10
> 68159 Mannheim
>
> Tel: +49 621 181 2516
> Fax: +49 621 181 2682
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming. The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> Davical-general mailing list
> Davical-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/davical-general
>
>
> smime.p7s (6K)
> <http://davical-general.89287.n3.nabble.com/attachment/4026449/0/smime.p7s>
>
> </quote>
> Quoted from:
> http://davical-general.89287.n3.nabble.com/Davical-general-Email-notification-upon-invite-in-DAViCal-is-1-1-3-1-tp4026448p4026449.html
>
>
> _____________________________________
> Sent from http://davical-general.89287.n3.nabble.com
>
>

--
Sebastian Kotthoff
Rechenzentrum
Universität Mannheim
B6, 23-29; Building B; Room 1.10
68159 Mannheim

Tel: +49 621 181 2516
Fax: +49 621 181 2682