Summary: | ASTERISK-03347: PrivacyManager Doesn't Intercept Calls | ||
Reporter: | velochap (velochap) | Labels: | |
Date Opened: | 2005-01-25 10:39:02.000-0600 | Date Closed: | 2011-06-07 14:10:15 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | Core/General |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
Description: | PrivacyManager is not intercepting calls with the CallerID field set to Unavailable. Calls are being placed by using *67 before dialing the DID on Asterisk which in turn disabled CallerID display and makes the call private. Calls are arriving via IAX2 from VoicePulse Connect and the IAX2 debug does confirm that the CallerID is indeed arriving as Unavailable. However, PrivacyManager executes and determines "CallerID Present: Skipping" PrivacyManager is determining that the callerid is present even when it is being relayed as Unavailable. The correct operation would be for PrivacyManager to intercept the call when is sees Unavailable in the CallerID field. Debugs are console output are included. ****** ADDITIONAL INFORMATION ****** asterisk1*CLI> Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: NEW Timestamp: 00011ms SCall: 00335 DCall: 00000 [66.234.228.170:4569] VERSION : 2 CALLED NUMBER : 7326556755 CALLING NUMBER : Unavailable <************************************** CALLING NAME : Unavailable <************************************** LANGUAGE : en USERNAME : voicepulse-in-01 FORMAT : 4 CAPABILITY : 1086 ADSICPE : 2 DATE TIME : 171511810 Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: AUTHREQ Timestamp: 00015ms SCall: 00001 DCall: 00335 [66.234.228.170:4569] AUTHMETHODS : 4 CHALLENGE : 123344711 USERNAME : voicepulse-in-01 Rx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: AUTHREP Timestamp: 00049ms SCall: 00335 DCall: 00001 [66.234.228.170:4569] RSA RESULT : Sc+mxi0AL1JdD4Gh3s8Y5LJ13MrLm4DNNMDkCV2a5nSwuPx9djbCr2YmJO7eoxCbrP+077fdeMhpfXo -- Accepting AUTHENTICATED call from 66.234.228.170, requested format = 4, actual format = 4 -- Executing PrivacyManager("IAX2[voicepulse-in-01@66.234.228.170:4569]/1", "") in new stack Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 002 Type: IAX Subclass: ACCEPT Timestamp: 00051ms SCall: 00001 DCall: 00335 [66.234.228.170:4569] FORMAT : 4 -- CallerID Present: Skipping <************************************** -- Executing Dial("IAX2[voicepulse-in-01@66.234.228.170:4569]/1", "SIP/5001") in new stack -- Called 5001 Extensions.conf =============================== exten => 7326556755,1,PrivacyManager exten => 7326556755,2,DIAL(SIP/5001) exten => 7326556755,3,Voicemail(u5001) exten => 7326556755,4,Hangup | ||
Comments: | By: twisted (twisted) 2005-01-28 19:33:00.000-0600 This is becuase _technically_ the Caller*ID *IS* set, it's set to Unavailable. You could always hanlde this yourself in the dialplan, like so: exten => s,1,GotoIf($[${CALLERIDNAME} != Unavailable]?5) exten => s,2,NoOp(Current Callerid = ${CALLERID}) exten => s,3,SetCallerid(""<>) exten => s,4,NoOp(New Callerid = ${CALLERID}) exten => s,5,PrivacyManager() I can confirm this works. By: velochap (velochap) 2005-01-28 20:41:31.000-0600 Ok, interesting workaround. Would it be also possible to change the code to catch an "Unavailable" setting as well? Setting the CLID to "Unavailable" is pretty standard when someone hits *67 I think the change would be: (I am not a C programmer so just taking a stab..) OLD ------- if (chan->callerid) { if (option_verbose > 2) ast_verbose (VERBOSE_PREFIX_3 "CallerID Present: Skipping\n"); } NEW -------- if (chan->callerid) or (chan[0]!="Unavailable") { if (option_verbose > 2) ast_verbose (VERBOSE_PREFIX_3 "CallerID Present: Skipping\n"); } By: nick (nick) 2005-01-28 20:56:38.000-0600 That would be a hard-coded solution to what esentially is a highly variable configuration problem... By: velochap (velochap) 2005-01-28 20:59:40.000-0600 I took your idea and tweaked it a bit to get it to work. I have found that this works: exten => s,1,GotoIf($[${CALLERIDNUM} != Unavailable]?4) exten => s,2,SetCIDNum() exten => s,3,SetCIDName() exten => s,4,PrivacyManager() exten => s,5,DIAL(SIP/5001) exten => s,6,Voicemail(u5001) exten => s,7,Hangup Since "Unavailable" is pretty standard when someone is trying to block their CallerID and PrivacyManager's intention is to intercept these calls I still think it would be good to test for "Unavailable" or "unavailable" in the CALLERIDNUM field within the code itself. By: velochap (velochap) 2005-01-28 21:01:55.000-0600 Ok, if the consensus is to leave it as is...I'll add a config note to the Wiki for this. By: Mark Spencer (markster) 2005-01-28 21:45:48.000-0600 I don't see this as a bug... By: Brian West (bkw918) 2005-01-28 22:40:57.000-0600 Not a bug... bkw |