add osmo-mslookup-client program (#2)

Standalone program using libosmo-mslookup to easily integrate with programs
that want to connect services (SIP, SMS,...) to the current location of a
subscriber. Also useful for manual testing.

For a detailed overview of the D-GSM and mslookup related files, please see the
elaborate comment at the top of mslookup.c (already added in an earlier patch).

Resubmit of 637bbfcd9275f8c47212b29b50110f56ba6397bf after revert in
41fe3625915c456513544b99ba8c057c0f650b3c.

Change-Id: Ie39d30e20461ab10ae3584863d8bfc6b76a12f37
diff --git a/contrib/dgsm/osmo-mslookup-pipe.py b/contrib/dgsm/osmo-mslookup-pipe.py
new file mode 100755
index 0000000..b18bf5f
--- /dev/null
+++ b/contrib/dgsm/osmo-mslookup-pipe.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python3
+# vim: shiftwidth=4 tabstop=4 expandtab
+import subprocess
+import json
+
+def query_mslookup(query_str):
+    result = {'result': 'not-found'}
+    proc = subprocess.Popen(('osmo-mslookup-client', '-f', 'json', query_str),
+		            stdout=subprocess.PIPE)
+    for line in iter(proc.stdout.readline,''):
+        if not line:
+            break
+        response = json.loads(line)
+        if response.get('result') == 'result':
+                result = response
+        print('Response: %r' % response)
+    return result
+
+if __name__ == '__main__':
+    import sys
+    query_str = '1000-5000@sip.voice.12345.msisdn'
+    if len(sys.argv) > 1:
+        query_str = sys.argv[1]
+    print('Final result: %r' % query_mslookup(query_str))