aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/dgsm/osmo-mslookup-socket.py
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/dgsm/osmo-mslookup-socket.py')
-rwxr-xr-xcontrib/dgsm/osmo-mslookup-socket.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/contrib/dgsm/osmo-mslookup-socket.py b/contrib/dgsm/osmo-mslookup-socket.py
new file mode 100755
index 0000000..a26ad9f
--- /dev/null
+++ b/contrib/dgsm/osmo-mslookup-socket.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env python3
+# vim: shiftwidth=4 tabstop=4 expandtab
+import socket
+import time
+
+MSLOOKUP_SOCKET_PATH = '/tmp/mslookup'
+
+def query_mslookup_socket(query_str, socket_path=MSLOOKUP_SOCKET_PATH):
+ mslookup_socket = socket.socket(socket.AF_UNIX, socket.SOCK_SEQPACKET)
+ mslookup_socket.setblocking(True)
+ mslookup_socket.connect(socket_path)
+ result = {'result': 'not-found'}
+ column_names = mslookup_socket.recv(1024).decode('ascii')
+ if not column_names:
+ return result
+ column_names = column_names.split('\t')
+ mslookup_socket.sendall(query_str.encode('ascii'))
+ while True:
+ csv = mslookup_socket.recv(1024).decode('ascii')
+ if not csv:
+ break
+ response = dict(zip(column_names, csv.split('\t')))
+ if response.get('result') == 'result':
+ result = response
+ print('Response: %r' % response)
+ return result
+
+if __name__ == '__main__':
+ import sys
+ print(
+ '\nPlease run separately: osmo-mslookup-client --socket /tmp/mslookup -d\n')
+ query_str = '1000-5000@sip.voice.12345.msisdn'
+ if len(sys.argv) > 1:
+ query_str = sys.argv[1]
+ print('Final result: %r' % query_mslookup_socket(query_str))