| #!/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)) |