scripts/sip/sip_multidial.py
2013-06-14 12:53:30 +02:00

30 lines
1.3 KiB
Python
Executable file

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