Skip to content

Commit

Permalink
filter invalid number
Browse files Browse the repository at this point in the history
  • Loading branch information
Karl Anderson committed Oct 11, 2017
1 parent 8a1a36b commit d1923c2
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
2 changes: 1 addition & 1 deletion asteriskserver/src/etc/asterisk/extensions.conf
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,7 @@ exten => _211,1,Macro(dial,+18666986155)
exten => _933,1,Macro(dial,${EXTEN})
; voip.ms 911 test, which must be in this format for some reason
exten => _15555550911,1,Macro(dial,${EXTEN})
; blocked information numbers go to operator
; information numbers blocked by provider go to operator
exten => _NXX5551212,1,Goto(operator,s,1)
exten => _1NXX5551212,1,Goto(operator,s,1)
; 11 digit prefixed with 1: NANPA, normalize to e.164 with + prefix
Expand Down
11 changes: 9 additions & 2 deletions asteriskserver/src/var/lib/asterisk/agi-bin/filter_outgoing.agi
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ agi = agi.AGI()

config_filename = 'blocklist.yaml'

# prefixes of expensive numbers
premium_nampa_prefixes = [
'1900',
'1976',
Expand All @@ -36,14 +37,17 @@ premium_nampa_prefixes = [
'1869',
'1876']

# prefixes of numbers which providers will fail
invalid_prefixes = ['1911']

def filter_blocklist(blocklist, number, extension):
"""Return True if number and extension are in blocklist."""
return any(
all([str(block_map.get('number')) == number,
str(block_map.get('extension')) == extension])
for block_map in blocklist)

def filter_premium(prefixes, number):
def filter_prefix(prefixes, number):
"""Return True if prefix of number is in prefixes."""
return any(number.startswith(prefix) for prefix in prefixes)

Expand All @@ -55,9 +59,12 @@ def filter_outgoing(blocklist, number, extension):
return # survive
if number == '933': # callcentric 911 test number
return # survive
if filter_premium(premium_nampa_prefixes, number):
if filter_prefix(premium_nampa_prefixes, number):
util.metric(agi, 'filter-outgoing-premium')
agi.hangup()
if filter_prefix(invalid_prefixes, number):
util.metric(agi, 'filter-outgoing-invalid')
agi.hangup()
if filter_blocklist(blocklist, number, extension):
util.metric(agi, 'filter-outgoing-blocked')
agi.hangup()
Expand Down

0 comments on commit d1923c2

Please sign in to comment.