scripts/sip/asterisk_reload_conf.py
2013-03-15 22:53:43 +01:00

60 lines
1.5 KiB
Python
Executable file

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import socket
import time
import sys
timeout=10
server="asterisk.adm.crans.org"
port=5038
user="django"
password="HLWkzyITZAmBk"
reload_srv={
'sip':['chan_sip'],
'voicemail':['app_voicemail'],
'dialplan':['pbx_config'],
'all':['chan_sip','app_voicemail','pbx_config'],
}
def reload_config(config):
if not config in reload_srv.keys():
print >> sys.stderr, "Reload config from : \n * %s" % ('\n * '.join( reload_srv.keys()))
return
sock = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
def send(str):
msg='%s\r\n' % (str)
sock.send (msg)
sock.settimeout(timeout)
sock.connect ( ( server, port ) )
send ( 'ACTION: LOGIN')
send ( 'USERNAME: %s' % user)
send ( 'SECRET: %s' % password)
send ( '')
for module in reload_srv[config]:
send ( 'ACTION: RELOAD')
send ( 'MODULE: %s' % module)
send ( 'ActionID: %s' % time.time())
send ( '')
send ( 'ACTION: LOGOFF')
send ( '')
data=[]
while True:
data.extend(sock.recv( 4096 ).split('\r\n'))
if data==['']:
sock.close()
return
while len(data)>0:
del data[0]
sock.close()
if __name__ == '__main__' :
if len(sys.argv)<2:
print >> sys.stderr, "Usage %s [%s]" %(sys.argv[0],'|'.join(reload_srv.keys()))
print >> sys.stderr, "Reload config from : \n * %s" % ('\n * '.join(reload_srv.keys()))
exit(1)
reload_config(sys.argv[1])