From 36ce5024dfcaf35bd2c8b41c3fa530b03b209858 Mon Sep 17 00:00:00 2001 From: Matteo Brancaleoni Date: Thu, 27 Feb 2003 06:00:12 +0000 Subject: [PATCH] Thu Feb 27 07:00:01 CET 2003 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@625 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- Makefile | 2 +- apps/Makefile | 2 +- apps/app_privacy.c | 149 +++++++++++++++++++++++++++++++++++ sounds.txt | 16 ++++ sounds/privacy-incorrect.gsm | Bin 0 -> 4620 bytes sounds/privacy-prompt.gsm | Bin 0 -> 6930 bytes sounds/privacy-thankyou.gsm | Bin 0 -> 1947 bytes sounds/privacy-unident.gsm | Bin 0 -> 7029 bytes 8 files changed, 167 insertions(+), 2 deletions(-) create mode 100755 apps/app_privacy.c create mode 100755 sounds/privacy-incorrect.gsm create mode 100755 sounds/privacy-prompt.gsm create mode 100755 sounds/privacy-thankyou.gsm create mode 100755 sounds/privacy-unident.gsm diff --git a/Makefile b/Makefile index d2e48c2595..7c8456205e 100755 --- a/Makefile +++ b/Makefile @@ -144,7 +144,7 @@ datafiles: all exit 1; \ fi; \ done - for x in sounds/vm-* sounds/transfer* sounds/pbx-* sounds/ss-* sounds/beep* sounds/dir-* sounds/conf-* sounds/agent-* sounds/invalid* sounds/tt-* sounds/auth-*; do \ + for x in sounds/vm-* sounds/transfer* sounds/pbx-* sounds/ss-* sounds/beep* sounds/dir-* sounds/conf-* sounds/agent-* sounds/invalid* sounds/tt-* sounds/auth-* sounds/privacy-*; do \ if grep -q "^%`basename $$x`%" sounds.txt; then \ install $$x $(ASTVARLIBDIR)/sounds ; \ else \ diff --git a/apps/Makefile b/apps/Makefile index 48e69c76a4..de77cfd30f 100755 --- a/apps/Makefile +++ b/apps/Makefile @@ -19,7 +19,7 @@ APPS=app_dial.so app_playback.so app_voicemail.so app_directory.so app_intercom. app_queue.so app_senddtmf.so app_parkandannounce.so app_striplsd.so \ app_setcidname.so app_lookupcidname.so app_substring.so app_macro.so \ app_authenticate.so app_softhangup.so app_lookupblacklist.so \ - app_waitforring.so + app_waitforring.so app_privacy.so #APPS+=app_sql_postgres.so #APPS+=app_sql_odbc.so diff --git a/apps/app_privacy.c b/apps/app_privacy.c new file mode 100755 index 0000000000..babb6c652f --- /dev/null +++ b/apps/app_privacy.c @@ -0,0 +1,149 @@ +/* + * Asterisk -- A telephony toolkit for Linux. + * + * Block all calls without Caller*ID, require phone # to be entered + * + * Copyright (C) 1999, Mark Spencer + * + * Mark Spencer + * + * This program is free software, distributed under the terms of + * the GNU General Public License + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static char *tdesc = "Require phone number to be entered, if no CallerID sent"; + +static char *app = "PrivacyManager"; + +static char *synopsis = "Require phone number to be entered, if no CallerID sent"; + +static char *descrip = + " PrivacyManager: If no Caller*ID is sent, PrivacyManager answers the\n" + "channel and asks the caller to enter their 10 digit phone number.\n" + "The caller is given 3 attempts. If after 3 attempts, they do no enter\n" + "their 10 digit phone number, and if there exists a priority n + 101,\n" + "where 'n' is the priority of the current instance, then the\n" + "channel will be setup to continue at that priority level.\n" + "Otherwise, it returns 0. Does nothing if Caller*ID was received on the\n" + "channel.\n"; + +STANDARD_LOCAL_USER; + +LOCAL_USER_DECL; + +static int +privacy_exec (struct ast_channel *chan, void *data) +{ + int res=0; + int retries; + char phone[10]; + char new_cid[144]; + struct localuser *u; + + LOCAL_USER_ADD (u); + if (chan->callerid) + { + if (option_verbose > 2) + ast_verbose (VERBOSE_PREFIX_3 "CallerID Present: Skipping\n"); + } + else + { + /*Answer the channel if it is not already*/ + if (chan->_state != AST_STATE_UP) { + res = ast_answer(chan); + if (res) { + LOCAL_USER_REMOVE(u); + return -1; + } + } + /*Just a quick sleep*/ + sleep(1); + + /*Play unidentified call*/ + res = ast_streamfile(chan, "privacy-unident", chan->language); + if (!res) + res = ast_waitstream(chan, ""); + + /*Ask for 10 digit number, give 3 attempts*/ + for (retries = 0; retries < 3; retries++) { + res = ast_app_getdata(chan, "privacy-prompt", phone, sizeof(phone), 0); + if (res < 0) + break; + + /*Make sure we get 10 digits*/ + if (strlen(phone) == 10) + break; + else { + res = ast_streamfile(chan, "privacy-incorrect", chan->language); + if (!res) + res = ast_waitstream(chan, ""); + } + } + + /*Got a number, play sounds and send them on their way*/ + if ((retries < 3) && !res) { + res = ast_streamfile(chan, "privacy-thankyou", chan->language); + if (!res) + res = ast_waitstream(chan, ""); + snprintf (new_cid, sizeof (new_cid), "\"%s\" <%s>", "Privacy Manager", phone); + ast_set_callerid (chan, new_cid, 0); + if (option_verbose > 2) + ast_verbose (VERBOSE_PREFIX_3 "Changed Caller*ID to %s\n",new_cid); + } else { + /*Send the call to n+101 priority, where n is the current priority*/ + if (ast_exists_extension(chan, chan->context, chan->exten, chan->priority + 101, chan->callerid)) + chan->priority+=100; + } + } + + LOCAL_USER_REMOVE (u); + return 0; +} + +int +unload_module (void) +{ + STANDARD_HANGUP_LOCALUSERS; + return ast_unregister_application (app); +} + +int +load_module (void) +{ + return ast_register_application (app, privacy_exec, synopsis, + descrip); +} + +char * +description (void) +{ + return tdesc; +} + +int +usecount (void) +{ + int res; + STANDARD_USECOUNT (res); + return res; +} + +char * +key () +{ + return ASTERISK_GPL_KEY; +} diff --git a/sounds.txt b/sounds.txt index bddb29df09..e4b9416c6c 100755 --- a/sounds.txt +++ b/sounds.txt @@ -186,6 +186,14 @@ %priv-instruct.gsm%Press 1 to accept this call. Press 2 to not accept this call. Press 3 to always accept calls from this number. Press 4 to never accept calls from this number. Press 5 to reject calls from this number and request that they add you to their do not call list. +%privacy-unident.gsm%The party you are trying to reach does not accept unidentified calls. + +%privacy-prompt.gsm%Please enter your 10 digit phone number, starting with the area code. + +%privacy-incorrect.gsm%I'm sorry, that number is not valid. + +%privacy-thankyou.gsm%Thank you. + %tt-allbusy.gsm%All representatives of the household are currently assisting other telemarketers. Please hold and your call will be answered in the order it was received. ;digits directory - File Name Sound File Script @@ -300,3 +308,11 @@ %thousand.gsm%thousand +%privacy-incorrect.gsm%will_be_added_later + +%privacy-prompt.gsm%will_be_added_later + +%privacy-thankyou.gsm%will_be_added_later + +%privacy-unident.gsm%will_be_added_later + diff --git a/sounds/privacy-incorrect.gsm b/sounds/privacy-incorrect.gsm new file mode 100755 index 0000000000000000000000000000000000000000..e4cac90ff7dc17caa157fd06b38df6007cdc37eb GIT binary patch literal 4620 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 q*wM`NUjzZ$U6*HQS;8=UHqoTh|M-71A7q~Z literal 0 HcmV?d00001 diff --git a/sounds/privacy-prompt.gsm b/sounds/privacy-prompt.gsm new file mode 100755 index 0000000000000000000000000000000000000000..97f2fca615f311f35df92648f3a64944edc7d74e GIT binary patch literal 6930 zcmWNWXHXLc1BSJV3vCq4kLlVLW1WObYEf(1U06~e#*OO=^hsjY>h&Pqb)rySVX2<`O2v6rGlI-=Vk_3LXjO zops}erf<&{)IqtQvo@w5AdC)*B0>uao7;4|g8J1TpH0|lKY(5&n7;uYzTnyMzZQoc z1<%`6N%1=OJs^%=#U$J{jeA-4j?fUsxPW^$H*V?n7Qi`0*rvqH8ukMs4WhKmdoIxS>s(+1p=IWCI z(Z+cYMpc>Pb|5T|5Hr68E^PU(y>Q53_2bLpow~n+PHdTn1FgQ9lDGd*qEP0_16KEj*q$Ut#4e6Qs^-M@NyuISjGz#R~#QZ4C+&Gbtjq6hZn zzF79X%;v;W(-Kj;F*i(@A8))q_!Cq5P@yn)H{iVon&&nQ7_!TPujM>QtpKH-uI;1* zm}XxJdH@1$UWFCM%O_0Rp=<0i^dD~V_TQnipX=gN3N(6_udb%z_)RXC+vF}loTEOw zBJ5A^c#`Z`qI<#m{<5B{8Sgq$Ls`kcsy{&6ylsbN^EEs-Hv6ErymPxDN%gf+xr375 zGvFzit3i|WrjT>UD#5acw)rFlC0;8Hc{awcJ{lcOAM5kcgGE0~T@lVL_=uuN<&3FR z8*b$dzm+s=tM+Ts)@7phxuA%T4m4IA$66qXk_Z*#bc_9c;yX>w2jGs{3Bay|#ja;P z4OSh4hBCHpWmi$;EK!Owx1!M&USD2R5d~R!%x^7b_enuROkbv&t$r)hj>{8DWp4;%~7h7oud_I<4eO zuOD+^rL~7^sEuw?ns`EaoGPtd0X1e?ESP<-L&)qv_tG{|?`k!-?4~bDmml&yoqd;R zJWm@FITJ7%)l*aJaw29rSozfTM9E=2>Co_5u5)-H35OG_@+QYJzTJQJM;3(nE-Me|dI$5vTl4-WDbC zbPYQypEn-RF-d%to7H#oDSWWf1uDPhJ1SgrnEdP;$kQ?GkS-gAX|tR_Qia-+S0$wK zdf?qsP2y78v)^~>SiDNrd&@H5!Qcs_Y1w}ByRKRz#Vd$J558LUeizA!@Enf7>fhtU zwAC*@{fA$mBtN!x8*hdMx7M-Cd{jDMZFCK;NM*?}U;FT4R>Vjv=Szmn=mhi*DFnlhEY{<)U-&e{^})tI`@vL0jwb4q^ix8N@;T09cU~X%`)Q+l znQee>`)hbDde3XGpwTFsA>+Bu(C7x80OO4D85>cYqlj%7+x8dQ#o#puxE*0kWk%fc znp>+5I$qKcNtaLI%njMgK3z7P!wo;hn&{pIPv~k6RZ3u!qCDH5M8?%JtTTdV0O(4% zOIO?Fba+KWffA$4oZLf7=8q7O(jjuYY;u7m3A-37v@djBv<1*=?PFaODfOY7KX_7G zga&@%n1N_^_3u>Ewd?e)wi^Jk{tz(RS(Q7C(CM<&4Xde#d=HounLair#*s=Xd5fE= z?^)U_mjHM2XV05rian1k5ME6=|*IM1Kv|>wBm1c>56KrztFrqMGm0zZsM}N*d zrZ4Pad8FKFX%@G*X?2`+X~Z>#{l2Anv7*#0=$28!Oii&68>*#Nvf%nVxkunV&-nS4 z=HZ@a^w*DE@SW$%G@jhj<>|U0tKjY#88F8pYTg2|B0_^Seb)8j+tRi7kV5ZoXpX-t zq%y?fx-?;fS2cI0(w$?uM(7t>HelWnz%`EuD7Hp%)U3p!!G1joP`p(?RMJ? zVWF{bK@19;dHOUg`;nkj>T+@?9XvT~`G>=3Q@VjGQOhl2!9s3=O1Gn06tsD!+UZ$C z#)?vx1I#ZBXpGvcBF@5Q7h<-|$xnyTu5lBs!_pGnJi-3dnibgxh5Pv4-Xs@i!2HM0 zO^9@ZheZGR=*eY+2Q^VznW6p)7hpL@U+esc@H6*YY7&0QI|?3NTnS`KU-yot-h9^n z@sd_riyp*-nxARn64X|(h>vP8JkoK3SwH>}hCj3-^!Nuc8wqUQr3T=kql$KL<=c$U zImIOuR#4re6#U`uf!GrYd?OwUvlqTSWFttrOrDvv_X+9K;c`R!Lb;=DX}lf<@kUnZ zjHI)ltYYc@wW^*p^E9CaD^y23s@)h-V}#E3HrP!>-Gm*DN%b9%?*q;}rEZ7ffs&@0 zWpV+^HQF%Yc*JCgzq|7}yzAsRjseJ+1S?M51WG!jr!BV+)S)pxc7j9R)5X^Hp;)Q} z_sf{4E8#f~GR5OLK>o_d+EN+EC3D-~)RF$p8SN$pddl3)^U!p-)fUGu??PjCdu`BH zNX1;v&aW>^Cl<`GRzEn-vfO%Dtvfi5Fg`Xe|Co~))gmWsS)V4XBRQ^CwnP|_<#H5M zNN4k;H_lix89VWDCI?rHbw0WG>9nHoh)=s7ZvZrOAAMYeDbfRexS<)id%bpKG{85p z@7nOXCJ1Rk3{+|S#r=w^u$dev&Zanfjx@H5!_*YRSEuquD{$umM#IKlYj>Pq6gG{@ zk@$VBx}`cm%;>2N%BpGy%36Xyq$~mrp6Uk6gr={|S(wr0@YxJGd-RB8=P96IzjDbl zpe$CAi)II41?%G`hJ#~P-8he%FDKgBv8(&C(_k?zDN1T8_V~>!?ZWj@xpbaR)=roi zMukJS7H)?ZD?U(CwlCbC00WWHB>tM*AA?YFbx;Y^9EaKJ9UcJR&V(v(#;X&mOTYp4 z276`b=i`64ImUNhKNB?{;cqse{u>jxTR@+=ceBju*|j=O1e2T3L8 z(>qlMzeMJPUbfOxlmY|?wfo}GOM;4=3bfc_v=R5syzX`>x6Jdc*@ngkwVx{EfY!-- zA2>ajwswBk8F@+Ff8ul}!wMOHU%ct4C_XKy;ynLYX5SfpN+St;z87ImW$|plNU;89SfA@a z|BH1MkC?(!?hhQCT}N*QZblfB3;Cl=(~$)2muW_QJ1IU}BXeapcMfsHT(%^gLWt*`U@ueB83dSm|VCJ6XZ&Y~E^pGgGF{#A- zjX260RlJS%jJj6Gs-h{Uq|+vcBcD(e>r8Rm?s_E#Qjt0FuySp(X|&Iug)XPsue-6O z(F3R#hosWftL*p2p+K`=&AcdwHZ!e9nIziEyq61IwUGv7_UtpY7;D~+vd;qkd{%PL<7m2W+1pd2JQ!?MY+gsaTTPS!J@Y5h^ zvMBZe>J90v?8JEYn-O2@0!ZxwSagAe+WWajV{97z!}Tqp765H`$gyI>H#8J}q>lJ) zAxvh0oc`hBr{8=zXgiVE*NHf5pk?(}H6SANbQ68HV18wH9YL>+MqU7SE*Ri~;(dbV zYklCku7)ur8yU`>#a2WMe-lfcp6S<99yo^d5`a~ykrQWDpNuO5J#UOKe#HuZVl|nq>iUwJJA04^W5ig_ zF^sO}IVred=GrfrYX{g~zwNTusB3Xf4_GRmT^}w1B@wK|Ao@1HO~n(2f%-&aYcNExce`o}=2oJ1z zrblL5l^J_0TPgD28Y)DLanqGLFgYm%^N4a)J+v->XQ8ULDbEya_)@ph>dUKO@Aua< zgbCyEst+@IAH{RU-1hx&M+ z$pfZ0`zCpi%X;R1WY4gnUYReMUTD^9)<2Rk)2Jq<8?469nVjbJxh{~z24{U^{e#7J zw!^T1%B-bVOdRCDZ;T2seXPyv#0e~y^e^3SZQ84>xzx>}r-^I8TMw*Hv|e{UTRNf5 z-9(~WUM2%&_@S7!WSh-G6CFMcDk+>mjr>QjJ^;@o@y^zh8h@QAs-i0yp@XBy!jmEL zE~p$wb3S!*LYHThxQtq(!GWF-*#^xSNSLggqFL**FDzvF0*7&OrI?>tm&-o90>5f4!;oR>``9RfQ_vZ3fISUsfA%n_U;Merm-IqNT z!?$q8pA*LE@7kNkJi;Ab$Enr{n_26K1_yv??LBys!+KDZp0t0=a6?(A%}?|Da%zer ziWHet%ps3ddxQj0h8y;8AM%~D^8u7a!`hd7MEU&+VMI&aNu`0!Na4iUjN~$(Y{SnZ zd+rS0I$6|JvyDZQibT!DwRilkV`NqL-v*8NiEthzUilHJ8CyDcW(PZVdRQEOUb{h6 zCs4UVwNHELO2M93NqIRAa7(=Z*0R4c7$)HaC!8nEp4Z54@AI0zmCkGqU&=Y}M@g_f zSa93o6vmRp1!1+;1m|JR_y$GUxzPaV6J^OUd`=2Nr^Esi<~&fuX+;D_E+74{*8WP8 zGG}G?HOf*xLj@Jtddiz=&mUiban|npyj+_r-tF}x%5H)r?GF4B^Its>3y+}m$EP?7I;=+gr~ zK`vf3-Tw7y^sGVXqMNHlCEq zt|Ai(8P9Phu_~||V_6ycr0VZF+3ELVJR7-lDLLvb_FeN7c6W?qxowtjP)&h_FY)Z?!V0Q+!P9>6ie*bdE%HxGZPG&QNFBMr4qv=6i5D0eohyYf z3qprVr(S*%*{}85YE3Z1DuZ_LX;zZTjpn-{Gl)cOycxf?OIXD+FQrQ4=c zUX(eu^o6e|icsIhMGA}drw=|`qX{#rw=s|uwqLwyt?1xmsi`$6fo@?Gnjvi@mBSPJ zDnB4q!xO?8+)89EQNH&m7x$e=T?TmO{b9B>Tzs;WVSwJty;1><7OXa-)u!!7#D#cu z^gbW`t|$YtVR~;iTDy2-uF1)-;bT;nZ*9GjE-!`Hb5CErlC7L~{U@@>0@t?EM!9jX zXBz>{{$?>b#eO_sYry9D?7F5OAOofD42H@Ezi?z{+Nst%@_W>*)1>s88i@~{b+?^aARjaJ98Oy}U~L%Df*_#jw;pSr zS%@&)>AYmj)x7%V2tj_6mii zEEuqy`IjiaQOnsA9)^$E`+Uw-jZ+!)rl81pXnorLkR;||cX4T1N%R0EYwX*y>Opyy zOpmV*__|zy>6c?wl$BY}deT@|s%PK`h#k|ze8)7dp_vcVy;$xst*O`M`Q7ViLQ7oF z_c}9Vm;0f=eatpwnBqk)S+C8cx#`L+$CvqV^g--}dE=HtkKoxi^x@$TuJ|{PvgK~* z4{c6b^7*eM_#q>>`+#;^#O=krOFkXxTv1-ADNEsFc-}wKxG4B67as1tf&JRsx&L|9 zZ3esBv04?~y~~pMV9s}gF~6Ku=lKI2@AXrkbweKj3Z0M$aMNtNUm#~uPq~f&YrM~{ zUg!liW+?k!_l_TsKI9H{udk4w`N?^;D))?oj9t9YmfJy&%Y#uD8$!UYGYUguNW`~` zL`X4DPq)uMNVdQCf^)^|@xfNvNo0r<*z4TdC)5h_$adfo@6OS0u)xfR4Oto4T@VUpay@knStL z@}}wNI|F*oRmU?k2DtAvKBhDJj5A(l?t;b}hRC(#7K^CxO=eAFkGp1If6bq|7bZ^5 zBn#J>lsZ9AD;V>5i!LsN{u6DUQr*S?pcclxf{Uvg8*y@OS&X2Ut+!kcQ^BZhyV6Wu z{2tk6d%0L3mM8SKBNrc^D9;yQyH5*~qI$8-S$c)*L(GpAp&JaRmI%kkWfl?IF*TNa zWWY#~&(Y|AJCX8fcDbY1H7&-5`(Fu6vVag_S;*?TD90ojyh# z8?GdfwMWkfSLHeC1a9Mh@tM%0wHDb6&2%}EoFgAcTBmZ6o9<&X{hJp`-YspsV#l4w zBRBt7Rp_+N38{2O&YGH+_3)+0O(?`(gFHG{5D~o4acM&E+#+xC)UW01st9xy_21|HZ`~$n;K3)-@2S> zFRZmWcsMrAy&LBwX1kfj{4DucsO%H^4?OvByx_OX(S z>|(Z7uIqXtpodej14=S99?lNkjQ?Tt*qJbIT-1gqOE(q3(AV z>z`4AjL!biMC5BDh4vV-zA6T*E|g85?qSz)Lz}vLKG&6!z-G9iJpP?*Qo)v86RX0i zC~vQ|Dzz!7c~37r!5>k3gj>2rN`gxF|X`HJm)8$(4uRp9 literal 0 HcmV?d00001 diff --git a/sounds/privacy-thankyou.gsm b/sounds/privacy-thankyou.gsm new file mode 100755 index 0000000000000000000000000000000000000000..45e7104e2b058fada26d91741d0e67f78cc6c065 GIT binary patch literal 1947 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