Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
La Quadrature du Net
piphone
piphone-sip
Commits
dcec8db4
Commit
dcec8db4
authored
Apr 19, 2017
by
okhin
Browse files
Let's use sanitize number to check up on blacklisted numbers
parent
4242d11a
Changes
2
Hide whitespace changes
Inline
Side-by-side
ari.py
View file @
dcec8db4
...
...
@@ -115,7 +115,7 @@ class Channel(object):
def
originate
(
self
,
endpoint
):
'''
Originate a call to endpoint
Originate a call to endpoint
.
'''
try
:
return
ari_call
(
self
.
config
,
[
'channels'
,
self
.
name
],
'POST'
,
{
'endpoint'
:
endpoint
})
...
...
piphone.py
View file @
dcec8db4
...
...
@@ -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
],)
else
:
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
@
asyncio
.
coroutine
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment