Commit dcec8db4 authored by okhin's avatar okhin
Browse files

Let's use sanitize number to check up on blacklisted numbers

parent 4242d11a
......@@ -115,7 +115,7 @@ class Channel(object):
def originate(self, endpoint):
Originate a call to endpoint
Originate a call to endpoint.
return ari_call(self.config, ['channels',], 'POST', {'endpoint': endpoint})
......@@ -145,6 +145,21 @@ def sanitize_phonenumber(number):
number = ''.join([c for c in number if c in '0123456789'])
if not number.startswith('00'):
raise TypeError('{} is not a valid international number, it should start with 00')
# We're checking if we're blacklisted
db = sqlite3.connect(config['piphone']['db'])
bl_re = None
with blacklist in db.execute('SELECT pattern, reason FROM blacklist').fetchall():
if bl_re == None:
bl_re ='(?P<{reason}>^{pattern})'.format(pattern=blacklist[0],reason=blacklist[1],)
bl_re +='|(?P<{reason}>^{pattern})'.format(pattern=blacklist[0], reason=blacklist[1],)
if bl_re != None:
# We have blacklisted patterns, need to chck for them
groups = re.match(bl_re, number)
if len(groups) >= 1:
# We matched, so we're blacklisted
raise ValueException('{} is blacklisted. Reason: {}', (number, groups.groupdict().keys[0],))
return number
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment