47 lines
1.5 KiB
Python
Executable file
47 lines
1.5 KiB
Python
Executable file
#!/bin/bash /usr/scripts/python.sh
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
Petit script d'envoi de message via sip.
|
|
Pour l'instant uniquement pour les personnes connectées
|
|
(le message est jeté sinon)
|
|
Prend le message sur stdin.
|
|
|
|
Alternatives intéressantes à étudier :
|
|
https://github.com/grengojbo/python-sipsimple
|
|
https://github.com/grengojbo/sipclients
|
|
"""
|
|
|
|
import sys
|
|
import gestion.secrets_new as secrets
|
|
import os
|
|
import getpass
|
|
import sys
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser(description="Envoi d'un message sip")
|
|
parser.add_argument('-d', '--dst', default=None,
|
|
help="Destinataire, peut être de la forme sip:13570. (Défaut: soi-même)")
|
|
|
|
# Attention: on a besoin d'importer le module sip de /usr/scripts
|
|
# et non celui des libs python
|
|
import lc_ldap.shortcuts
|
|
from sip.asterisk import Manager, AsteriskError, Sms, Profile
|
|
|
|
if __name__ == '__main__':
|
|
args = parser.parse_args(sys.argv[1:])
|
|
|
|
login = getpass.getuser()
|
|
if login == 'respbats':
|
|
login = os.getenv('SUDO_USER')
|
|
ldap = lc_ldap.shortcuts.lc_ldap_readonly()
|
|
src = ldap.search(u'uid=%s' % login)[0]
|
|
|
|
dst = args.dst
|
|
if not dst:
|
|
dst = src
|
|
else:
|
|
dst = ldap.search(u"(|(uid=%(dst)s)(mailAlias=%(dst)s@crans.org)(canonicalAlias=%(dst)s@crans.org)(aid=%(dst)s)(aid=%(dst_alt)s))" % {'dst' : dst, 'dst_alt' : dst.replace('sip:','')[1:]})[0]
|
|
|
|
sms=Sms("dbname='django' user='crans' host='pgsql.adm.crans.org'", "voip_sms")
|
|
sms.send(dst, sys.stdin.read(), src)
|