[sip] Factorisation et mise au propre des scripts pour asterisk
This commit is contained in:
parent
9b5c5eb93d
commit
399bf75dbe
20 changed files with 475 additions and 201 deletions
|
@ -12,19 +12,30 @@ 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}
|
||||
def gen_multidial(name, entensions):
|
||||
dial="""
|
||||
exten => %(name)s,1,Ringing
|
||||
exten => %(name)s,n,Wait(4)
|
||||
exten => %(name)s,n,Answer
|
||||
exten => %(name)s,n,Dial(%(entensions)s,30)
|
||||
exten => %(name)s,n,Wait(3)
|
||||
exten => %(name)s,n,VoiceMail(%(name)s@666)
|
||||
exten => %(name)s,n,Hangup()
|
||||
""" % {'name':name, 'entensions': '&'.join('SIP/1%04d' % num for num in entensions)}
|
||||
return dial
|
||||
|
||||
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')
|
||||
if __name__ == '__main__' :
|
||||
multidial=""
|
||||
for droit in ['nounou', 'bureau', 'cableur', 'imprimeur']:
|
||||
multidial+=gen_multidial(droit, (adh['aid'][0].value for adh in conn.search(u'(&(droits=%s)(!(chbre=EXT)))' % droit)))
|
||||
multidial_md5=hashlib.md5(multidial).hexdigest()
|
||||
try:
|
||||
multidial_old_md5=hashlib.md5(open('/usr/scripts/var/sip/sip_multidial','r').read()).hexdigest()
|
||||
except IOError:
|
||||
multidial_old_md5=""
|
||||
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')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue