[sip] envoi de message en commandline
Petit script sans prétention pour s'envoyer des messages (ou à quelqu'un d'autre).
This commit is contained in:
parent
f917a5c467
commit
2239bf61c0
2 changed files with 56 additions and 0 deletions
0
sip/__init__.py
Normal file
0
sip/__init__.py
Normal file
56
sip/send_sms.py
Executable file
56
sip/send_sms.py
Executable file
|
@ -0,0 +1,56 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- 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
|
||||
sys.path.append('/usr/scripts/gestion/secrets')
|
||||
from secrets import asterisk_sms_passwd
|
||||
sys.path.pop()
|
||||
import os
|
||||
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
|
||||
# il existe déjà un module sip dans les libs python.
|
||||
# il faut donc mettre notre path, avant
|
||||
sys.path.insert(0, '/usr/scripts/')
|
||||
|
||||
import lc_ldap.shortcuts
|
||||
from sip.asterisk import Manager
|
||||
|
||||
if __name__ == '__main__':
|
||||
args = parser.parse_args(sys.argv[1:])
|
||||
|
||||
login = os.getenv("SUDO_USER") or os.getenv("USER")
|
||||
ldap = lc_ldap.shortcuts.lc_ldap_readonly()
|
||||
adh = ldap.search(u'uid=%s' % login)[0]
|
||||
|
||||
own = "sip:1" + adh.dn.split(',')[0].split('aid=')[1]
|
||||
# TODO utiliser le vrai caller id
|
||||
# profile_manager = Profile("dbname='django' user='crans' host='pgsql.adm.crans.org'", "voip_profile")
|
||||
# callerid = profile_manager.num_to_callerid(own)
|
||||
callerid = os.path.basename(__file__)
|
||||
caller = '"%s" <%s>' % (callerid, own)
|
||||
|
||||
dst = args.dst
|
||||
if not dst:
|
||||
dst = own
|
||||
|
||||
ast_manager = Manager('sms', asterisk_sms_passwd)
|
||||
|
||||
# TODO mode hors ligne
|
||||
ast_manager.messageSend(caller, dst, sys.stdin.read())
|
Loading…
Add table
Add a link
Reference in a new issue