blob: a26ad9fc3fbb3fc733d0f798b8bd4d63abf99c1e [file] [log] [blame]
Neels Hofmeyr52ef60f2019-11-20 12:37:41 +01001#!/usr/bin/env python3
2# vim: shiftwidth=4 tabstop=4 expandtab
3import socket
4import time
5
6MSLOOKUP_SOCKET_PATH = '/tmp/mslookup'
7
8def query_mslookup_socket(query_str, socket_path=MSLOOKUP_SOCKET_PATH):
9 mslookup_socket = socket.socket(socket.AF_UNIX, socket.SOCK_SEQPACKET)
10 mslookup_socket.setblocking(True)
11 mslookup_socket.connect(socket_path)
12 result = {'result': 'not-found'}
13 column_names = mslookup_socket.recv(1024).decode('ascii')
14 if not column_names:
15 return result
16 column_names = column_names.split('\t')
17 mslookup_socket.sendall(query_str.encode('ascii'))
18 while True:
19 csv = mslookup_socket.recv(1024).decode('ascii')
20 if not csv:
21 break
22 response = dict(zip(column_names, csv.split('\t')))
23 if response.get('result') == 'result':
24 result = response
25 print('Response: %r' % response)
26 return result
27
28if __name__ == '__main__':
29 import sys
30 print(
31 '\nPlease run separately: osmo-mslookup-client --socket /tmp/mslookup -d\n')
32 query_str = '1000-5000@sip.voice.12345.msisdn'
33 if len(sys.argv) > 1:
34 query_str = sys.argv[1]
35 print('Final result: %r' % query_mslookup_socket(query_str))