#!/usr/bin/env python # -*- coding: utf-8 -*- import sys,os,hashlib sys.path.append('/usr/scripts/gestion') sys.path.append('/usr/scripts/') sys.path.append('/etc/crans/secrets/') import secrets import lc_ldap.shortcuts from sh import asterisk conn=lc_ldap.shortcuts.lc_ldap_admin() def gen_multidial(droit): dial="exten => %(droit)s,1,Ringing\nexten => %(droit)s,n,Wait(4)\nexten => %(droit)s,n,Answer\nexten => %(droit)s,n,Dial(" % {'droit':droit} adhs=conn.search(u'(&(droits=%s)(!(chbre=EXT)))' % droit) for nounou in adhs: dial+="SIP/1%04d&" % nounou['aid'][0].value return dial[:-1]+",30)\nexten => %(droit)s,n,Wait(3)\nexten => %(droit)s,n,VoiceMail(%(droit)s@666)\nexten => %(droit)s,n,Hangup()\n" % {'droit':droit} multidial=gen_multidial('nounou') + gen_multidial('bureau') + gen_multidial('cableur') + gen_multidial('imprimeur') multidial_md5=hashlib.md5(multidial).hexdigest() multidial_old_md5=hashlib.md5(open('/usr/scripts/var/sip/sip_multidial','r').read()).hexdigest() if multidial_md5 !=multidial_old_md5: file=open('/usr/scripts/var/sip/sip_multidial.new','w') file.write(multidial) file.close() os.rename('/usr/scripts/var/sip/sip_multidial.new','/usr/scripts/var/sip/sip_multidial') print asterisk('-x','dialplan reload')