36 lines
1.2 KiB
Python
Executable File
36 lines
1.2 KiB
Python
Executable File
#!/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))
|