Call Screening Bounties Wanted
I spoke with a former client this past week and they would really like to see a modification to the privacy manager to allow for proper call screening.
If privacy manager is enabled for an extension
Ask caller to record their name
Dial Extension
Play "Incoming call from" + Recorded Name
Play "Press 1 to accept this call, 2 to send to voicemail, or 3 to reject"
If user hits 1 send call to extension
If user hits 2 send call to voicemail
If user hits 3 hang up
I have already talked to Schmoozecom who think this could be done fairly quickly by one of their guys if there is any demand for it. The client is in for $200 to get this bounty call started.
If this project gets some traction then Fonality will kick in some to help it get going too.
OK I'm in for $50 at the moment.
I already have the Privacy Manager enabled but it does nothing right now even on blocked calls. So having this features as part of the Privacy Manger sorta worries me.
I'd rather see it as part of the Follow Me/Find Me feature instead to be honest with you.
Thanks!
Dean
Anaheim, CA
Yes, Kerry is right. The fact the privacy manager may or may not be broken right now is irrelevant because screening will be a completely separate option of Privacy manager and will be all new code and will function both as a call to the user or a follow-me to the user. If the current implementation of privacy manager is in fact broken, it can be fixed in the future and will still remain an option of the drop-down.
Right now the privacy manager is simply a way to force a user who has their caller id blocked to put in a 10 digit phone number which would then be passed as caller id to the phone. The screening option will force the user record their name before the extension is rung and the called party will then have the option of accepting or rejecting the call. It is only related to the privacy manager in such that it will be in the same drop-down of options. It will function completely separately.
Here's how it worked out:
When someone calls your extension (even through a follow-me, say, to your cell phone) before the call is connected to anything the caller must say their name which is recorded. The call is then initiated and the caller beings to hear ringing. Meanwhile, whatever phone you answer the call on will receive the callers name recording and a message with the following options:
Dial 1 if you wish to immediately connect to the incoming call
Dial 2 if you wish to send this caller to voicemail
Dial 3 to send this caller to the torture menus (music on hold forever)
Dial 4 to send this caller to a polite don't call menu (send special information tone for telemarketers)
Each user has two additional privacy manager options now: Screen Caller - No Memory and Screen Caller - Memory.
If no memory screening is selected, it will not cache the caller-id-based recording. This is useful if you get calls from an organization that has an outbound caller-id that may be the same for multiple people. This option will force every call to your extension to record their name.
The screening with memory option will remember who has called your entire organization (not just you) in the past and automatically play that previous screening recording to you. The call is still screened, but that comes with the caveat previously mentioned.
It gets interesting because screened callers are cached organization wide, and the settings are user-specific. This isn't horrible because it will only remove the previously recorded screen if an individual user with no memory gets called by that caller and they a new recording will replace it so subsequent calls to users who have memory enabled will still pull the most recent recording.
I have a few more things to figure out, but it's going rather well right now, so I expect it to be done this weekend.
I'm always interested in call routing options. I always view the privacy manager as a last resort.
More so than a modification to the privacy manager, I'd like to see flexibility at the inbound route/destination level. I'd like to see this ability to set the blacklist destination become a standard part of the blacklist module.
And an option to catch / redirect unknown numbers:
http://trixbox.org/forums/trixbox-forums/help/blocking-unknown-nu...
Right now the only option is to implement the privacy manager to deal with them. I'd love to be able to set a destination for these too.
If anyone plans to tackle either of those call screening issues let me know, I'd consider contributing to either.
I already have this, just not in a pretty module for FreePBX :( Its not pretty but works great :D
[screen]
;screen-record: Please record your name press pound when finished.
;screen-from: You have a call from
;screen-accept: Press 1 to accept 2 to reject, and 3 to transfer.
exten => s,1,Wait(1)
;Enter Phone Number to Call In Forwarding
exten => s,2,Set(PHONENUMBER=YOUREXTERNALNUMBER)
;Dial Initial Extenion
exten => s,3,Dial(SIP/INTERNAL INITIAL,15,mt)
exten => s,4,Playback(followme/status)
exten => s,5,Playback(priv-recordintro&then-press-pound)
exten => s,6,Set(SCREENFILE=/tmp/screen-${CALLERID(number)}-${EPOCH})
exten => s,7,Record(${SCREENFILE}.ulaw|2|10)
exten => s,8,Playback(auth-thankyou&pls-wait-connect-call)
;Dial Extension and include [macro-screen]
exten => s,9,Dial(SIP/VP-SIP-SFO/${PHONENUMBER},30,mtM(screen^${SCREENFILE}))
;Goto Voice Mail If We Reject Call
exten => s,10,Playback(custom/sorry)
exten => s,11,Goto(17);VM
exten => s,17,Goto(ext-local,vmu8004,1)
exten => s,18,Playback(goodbye)
exten => s,19,Hangup
exten => s,107,Goto(17)
exten => h,1,noop(${ARG2})
exten => h,2,System(/bin/rm -f ${ARG1}.ulaw)
[macro-screen]
;this is called in the Dial statement using M
;ARG1 recorded name to play back
;TODO: add a response timeout, after which the message is repeated
;(needed for outgoing zap fxo channels) and absolute timeout, after
;which VM is used
;exten => s,1,noop(${ARG1})
exten => s,1,noop(${ARG1})
exten => s,2,Playback(custom/call-from) ;you have an incoming call from:
exten => s,3,Playback(${ARG1})
;press 1 to accept 2 to reject 3 to transfer
exten => s,4,Read(ACCEPT|custom/options|1)
exten => s,5,Gotoif($["${ACCEPT}"="1"]?50) ;connect/bridge
exten => s,6,Gotoif($["${ACCEPT}"="2"]?30) ;reject to vm/fail to main context
exten => s,7,Gotoif($["${ACCEPT}"="3"]?40) ;transfer
exten => s,8,Gotoif($["${ACCEPT}"="4"]?30:30) ;any thing else vm/fail to main context
exten => s,n,GotoIf($["${INPUT}"="5"]?noanswer)
exten => s,30,SetGlobalVar(MACRO_RESULT=CONTINUE)
exten => s,31,Goto(51)
;If We Hit Transfer We Ask for Extension and Transfer call
exten => s,40,Read(TEXTEN|pls-ent-num-transfer|4);ask for extension then set macro to goto that and continue
exten => s,41,Gotoif($["${LEN(${TEXTEN})}"="4"]?42:45)
exten => s,42,SetGlobalVar(MACRO_RESULT=GOTO:from-internal^${TEXTEN}^1)
exten => s,43,Goto(51)
exten => s,45,Gotoif("$["${TEXTEN}"="0"] ?46:46);the logic is here to allow transfer to operator, i just didn't imlepent;it yet
exten => s,46,SetGlobalVar(MACRO_RESULT=CONTINUE)
exten => s,47,Playback(invalid)
exten => s,48,Goto(4)
;If We Accept Call We Continue and Brige Callers
exten => s,50,SetGlobalVar(MACRO_RESULT=)
exten => s,51,System(/bin/rm -f ${ARG1}.ulaw)
;If Call Is Rejected We Hangup and Fallback to Main Context
exten => h,1,System(/bin/rm -f ${ARG1}.ulaw)
If you add the option to send them to a user defined destination (IVR, Disconnect Tones, Announcement, Extension, etc) I'm in for $100.00. So in other words,
People who are private, unknown, anonymous, etc.. no caller id, etc.. automatically go to a certain place of my choosing.
I'll put in $100 if that's part of the module.
-----------------------------------------------
Percy Kwong
www.swimminginthought.com
I would like to collect the bounties committed so far. I have submitted the patches to Kerry and FreePBX, so for right now, the application is done for it's current state. Once I have collected the bounties, I'll get Kerry the updated patches which fixed some minor things. Call screening has been integrated into FreePBX 2.5a which is available to try right now. 2.5 has some pretty major changes, so the patches are different that 2.4.
Once the initial bounties are collected, I would be willing to look at enhancements such as Percy's request. I am also going to work on integrating this into the ARI so users can control their own screening. That will hopefully make it in 2.5b.
I just want to check this off my list for now, so let's get this closed out.
FreePBX 2.5.0 Beta Program Launched
A VERY short list of highlights includes:
Caller Screening, a form of Privacy Manager requiring callers to announce themselves so you can decide if you want to take the call or not
So if you still want to contribute, as I did to freepbx maybe it can put to further screening ideas like some of the ones I suggested:
http://freepbx.org/forum/freepbx/development/suggestions-more-nui...
Call screening has been integrated into FreePBX 2.5a which is available to try right now. 2.5 has some pretty major changes, so the patches are different that 2.4.
One comment on that. It is the result of the merging of directdids and incoming routes. If you happen to use any earlier version of this there will be no migration patch as the 2.5 implementation will be the first FreePBX implementation. It is what ethans checked into FreePBX with the required changes because of the inbound route/directdid changes.
kb9mwr,
As I had promised, on the good faith that the promised bounties would be paid, I submitted the patches to FreePBX. That is why this feature is in 2.5.
On a side note, other possible contributions include:
http://trixbox.org/forums/trixbox-forums/open-discussion/really-e...
And a thanks to parallex420. I have pm'd you with details. If you are interested in the 2.4 patches, let me know, otherwise everything is in 2.5 and has been sent to Kerry for integration into the Trixbox patch plussed version.
Ok, I have some patches. The below set of commands will retrieve and attempt the patching without actually patching anything. Post the results of running this. It won't actually do anything, but I don't have a pristine 2.4 system to test the patches on. If the below works, I'll post further details.
cd ~ wget http://test2.schmoozecom.com/call-screening-patches/call-screening-patches.patch patch -d / -p0 --dry-run -b < call-screening-patches.patch
Thanks Ethan,
Here's the output:
[trixbox4.necits.com agi-bin]# patch -d / -p0 --dry-run -b < call-screening-patches.patch
patching file /var/lib/asterisk/agi-bin/dialparties.agi
patching file /var/www/html/admin/modules/core/functions.inc.php
Hunk #1 succeeded at 1936 (offset -15 lines).
Hunk #3 succeeded at 2567 (offset -15 lines).
Hunk #5 succeeded at 4015 (offset -15 lines).
patching file /etc/asterisk/extensions.conf
[trixbox4.necits.com agi-bin]#
Ok, it looks like it should go fine. You should do a "now" backup in the FreePBX Backup module just in case, but the command below will also backup the affected files for you.
Run:
patch -d / -p0 -b < call-screening-patches.patch
Then asterisk -rx reload
NOTE:
dialparties.agi will be replaced the next time you hit the reload bar in FreePBX. In order to prevent this from happening, you need to change the permissions on dialparties.agi:
chmod 555 /var/lib/asterisk/agi-bin/dialparties.agi
The problem with this is the next time you upgrade FreePBX, it isn't going to be able to write this file, so before you upgrade FreePBX the next time:
chmod 755 /var/lib/asterisk/agi-bin/dialparties.agi.
I upgraded to 2.5 and enabled the Call Screening on my extention for testing. It works great however I would like to see the Call Screening option enabled only on "Follow Me" calls UNLESS the caller ID is blocked, then I would like the call screening on my extention phone.
Also is there a way to change the voice prompts for Call Screening?
Dean
Anaheim, CA
citapinc,
The messages are hardcoded in Asterisk. The message played to the caller is:
priv-recordintro
and the message played to thee callee with the options they have is:
priv-callpending
so if you changed those messages in your installation, you could change the message. As far as the conditional use of screening only when using followme - that's not there. The place to put such a request is in the FreePBX tracker on
http://freepbx.org/trac/newticket
and you need to be logged in to the site with your account to put in a new ticket.



Member Since:
2006-05-31