diff --git a/sip/asterisk.py b/sip/asterisk.py index 735c6dda..7e57901a 100644 --- a/sip/asterisk.py +++ b/sip/asterisk.py @@ -36,12 +36,17 @@ class Profile(object): cur.close() conn.close() + def right_to_nums(self, right): + conn=lc_ldap.shortcuts.lc_ldap_readonly() + ret=conn.search(u"(&(droits=%s)(!(chbre=EXT)))" % right) + return [ "1%04d" % adh['aid'][0].value for adh in ret] + def alias_to_num(self, alias): try: conn=lc_ldap.shortcuts.lc_ldap_readonly() ret=conn.search(u"(|(uid=%(alias)s)(mailAlias=%(alias)s@crans.org)(canonicalAlias=%(alias)s@crans.org))" % {'alias' : alias}) if len(ret) == 1: - return "1" + str(ret[0]['aid'][0]) + return "1%04d" % ret[0]['aid'][0].value else: return "NONE" except: diff --git a/sip/scripts/right_to_nums b/sip/scripts/right_to_nums new file mode 100755 index 00000000..40733803 --- /dev/null +++ b/sip/scripts/right_to_nums @@ -0,0 +1,16 @@ +#!/bin/bash /usr/scripts/python.sh +# -*- coding: utf-8 -*- + +import sys +from sip.asterisk import Profile + +if __name__ == '__main__' : + if len(sys.argv)>1: + profile = Profile() + nums=profile.right_to_nums(sys.argv[1]) + if nums: + sys.stdout.write('SIP/' + '&SIP/'.join(nums)) + else: + sys.stdout.write('NONE') + else: + print >> sys.stderr, "Usage %s {right}" % sys.argv[0]