Is there a way to effectively clean up the person database? For example, we import new people from our LDAP server. The import process modifies existing person records, but it does not delete records from SD. We are a college and have hundreds of new people(students) added each semester to the SD database. Once those students leave the school, I don't want their names to be able to be selected as a caller.
Also, generally you will be having the status records for each person in LDAP. You can write a DB rule in such a way that if the status is 'INACTIVE' (or something like this) then you can block that person record.
I have a different approach to the Jasper "reverse XML" mechanism. I use a small ACCESS database which reads from AD and from SD and compares the results to produce NEW, MOD and DEL lists which can be processed as two data exchange runs (new and mod share same mapping). This is so efficient (compared to XML delta or running the whole AD file again) that it can be run daily and because numbers of changes are small there is little impact from the Data Exchanges even if fired during the day.
When it comes to telephone numbers you cannot block them and I couldn't possibly suggest that you generate a set of OID values and use raw SQL on them now could I?