HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [hylafax-users] Generating a Caller-ID only log file



* Lee Howard <faxguy@xxxxxxxxxxxxxxxx> [060314 11:40]:
> Aidan Van Dyk wrote:
> 
> >Wouldn't it just make more sense to switch the order of isCIDOk, and the
> >DynamicConfig invocation?  This way, the DynamicConfig script could
> >change QualifyCID (as well as any other config option) based on the full
> >set of device/callid passed to it?  The patch looks big, but it's
> >basically just a cut-n-paste with changing an indent level.
> >
> 
> There are some types of call screening that are too exotic for 
> QualifyCID as it is.  For example, take screening calls based in part on 
> the time of day.  For example, take screening calls based on both 
> Caller*ID Name and Number.  Let's say that there is a single phone line 
> hooked up in serial with multiple modems ... with QualifyCID as it is 
> you cannot cause all but one of those modems to reject the call... but 
> by so doing you can, effectively, choose which modems are used to answer 
> which calls.  These kinds of things are just too exotic for QualifyCID 
> as it is.

Exactly.  But using your qualifycid-ex, you can't do that type of
screening based on device either (except for running different
qualifycid-ex scripts for each device).

> In order to do that kind of exotic call screening with DynamicConfig 
> running before QualifyCID you'd have to do something along the lines of 
> creating a temporary cid file that accomplishes what you need and then 
> setting QualifyCID to point to it instead.  It seems too difficult.

Sure - you need a different file,  But how bad is:
$SPOOL/etc/cid.accept:
	.
$SPOOL/etc/cid.reject:
	!.

And then it's another line that your DynamicConfig has to output.
	QualifyCID: etc/cid.reject
or 
	QualifyCID: etc/cid.accept

> DynamicConfig has been working off of a basis of only being run when a 
> call is going to be answered.  In some cases this may actually be the 
> desired behavior... to only do certain things if the call will be 
> answered.  With DynamicConfig running before QualifyCID, then 
> DynamicConfig would need to parse the QualifyCID file in order to make 
> this determination.  And yes, the downside is that this way 
> DynamicConfig cannot be run if the call will not be answered, but moving 
> it before QualifyCID is essentially exchanging one missing feature for 
> another.

You see - the point is that if DynamicConfig is changing QualifyCID, it
*knows* if the call is going to be answered or now. 

I actually was working off the assumption that dynamic config was being
run on *all* incoming calls - that it wasn't being run on calls being
reject was on oversite on my part - something that I probably would have
suggested fixing before.   Until I saw that setting QualifyCID had no
effect on the current call (only on the next call)...

And I think running DynamicConfig *before* the call is "answered" is
actually the correct thing to do.  For instance, it should be able to
change any configuration, one of them being the qualifycid that is used.

> Yes, I do feel that adding QualifyCID-Ex adds some bloat.  What I'd 
> really prefer would be to combine QualifyCID, DynamicConfig, and 
> QualifyCID-Ex all into one... essentially disposing of the Caller*ID 
> Number screening method currently used by QualifyCID.  That way the 
> resulting method will know which calls will be answered or not, and it 
> will be able to do all sorts of exotic call screening.  I didn't do this 
> because it seemed a bit too radical at the moment for me to want to do 
> independently, but if you're in favor of that approach, then I'm 
> certainly okay for it.  Trying to remain backwards-compatible for old 
> configs may be difficult or impossible, though.

I think taking exit status of DynamiConfig would be a better solution
than a separate script invocation.  But what about adding a "ANSWER:
REJECT|ACCEPT" line that it prints generates. That single line could easily
control the result of answering/rejecting, etc without needing a
backwards-incompatible change.  We could even only check that if
QualifyCID is not set if we're concerned about complete backwards
compatibility.

But, for the 4.2 series, I don't see backwards compatibility as a big
thing.  Unfortunately, we've played loose, and broken bigger things in
pushing features in..

-- 
Aidan Van Dyk                                             aidan@xxxxxxxx
Senior Software Developer                          +1 215 438-4638 x8103
iFAX Solutions, Inc.                                http://www.ifax.com/

____________________ HylaFAX(tm) Users Mailing List _______________________
  To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-bin/lsg2.cgi
 On UNIX: mail -s unsubscribe hylafax-users-request@xxxxxxxxxxx < /dev/null
  *To learn about commercial HylaFAX(tm) support, mail sales@xxxxxxxxx*




Project hosted by iFAX Solutions