Команда PrivacyManager
Назначение:
Требует ввода номера телефона, если CallerID не полученОписание:
PrivacyManagerЕсли не получен Caller*ID, PrivacyManager переводит канал в отвеченное состояние и предлагает вызывающему абоненту ввести его 10'значный номер телефона. Абоненту дается три попытки. Если в течении трех попыток пользователь не ввел свой 10'значный номер телефона, и если существует команда с приоритетом n + 101, где 'n' приоритет текущей команды, тогда выполнение команд плана набора будет продолжено с этого приоритета. Иначе, команда возвратит 0. Команда ничего не делает, если уже был получен Caller*ID.
Новое (July 2005): bug 752 было добавлено в CVS (Asterisk 1.1) и значительно расширяет возможности для privacy manager'a. В результате этих изменений, флаг 'n' команды Dial изменил свое значение и теперь является флагом использования возможностей privacy manager'a, вместо старого значения 'не переходить по приоритету +101'. Теперь за это отвечает флаг 'j'.
2005-03-30: Вызовы проходят через PrivacyManager, когда Caller*ID установлен в какую-нибудь лабуду (типа 'anonymous'). Этот простенький патч обеспечивает то, чтоб в Caller*ID содержались бы только цифры телефонного номера, перед принятием решения о дальнейших действиях. Код базируется на аналогичной проверке в chan_zap.c
--- app_privacy.c.orig 2005-03-29 15:49:07.000000000 -0500
+++ app_privacy.c 2005-03-29 16:09:18.000000000 -0500
@@ -58,12 +58,18 @@
char *s;
char phone10;
char new_cid144;
+ char *l=NULL,*n=NULL;
struct localuser *u;
struct ast_config *cfg;
LOCAL_USER_ADD (u);
if (chan->callerid)
{
+ ast_callerid_parse(chan->callerid, &n, &l);
+ if (l) ast_shrink_phone_number(l);
+ }
+ if (l && ast_isphonenumber(l))
+ {
if (option_verbose > 2)
ast_verbose (VERBOSE_PREFIX_3 "CallerID Present: Skipping\n");
}