From 83bd508547cd4aefce9e02f1e70039299e8a1d71 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Wed, 13 Nov 2013 01:10:03 +0100 Subject: [PATCH] =?UTF-8?q?[sip/send=5Fsms.py]=20Caller=20id=20correct=20e?= =?UTF-8?q?t=20delaie=20des=20IM=20si=20le=20compte=20n'est=20pas=20connec?= =?UTF-8?q?t=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sip/send_sms.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/sip/send_sms.py b/sip/send_sms.py index 3d2631d9..a0cea18f 100755 --- a/sip/send_sms.py +++ b/sip/send_sms.py @@ -26,7 +26,7 @@ parser.add_argument('-d', '--dst', default=None, # 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 +from sip.asterisk import Manager, AsteriskError, Sms, Profile if __name__ == '__main__': args = parser.parse_args(sys.argv[1:]) @@ -38,19 +38,25 @@ if __name__ == '__main__': adh = ldap.search(u'uid=%s' % login)[0] # rajouter @crans.org ne semble pas marcher, pourquoi ? - own = "sip:1" + str(adh['aid'][0]) + "@crans.org" - # 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__) + num="1%04d" % adh['aid'][0].value + own = "sip:" + num + "@crans.org" + profile_manager = Profile("dbname='django' user='crans' " + + "host='pgsql.adm.crans.org'", "voip_profile") + callerid = profile_manager.num_to_callerid(num) caller = '"%s" <%s>' % (callerid, own) dst = args.dst if not dst: - dst = "sip:1" + str(adh['aid'][0]) + dst = "sip:1%04d" % adh['aid'][0].value ast_manager = Manager('sms', secrets.get('asterisk_sms_passwd')) # TODO mode hors ligne - ast_manager.messageSend(caller, dst, sys.stdin.read()) + try: + ast_manager.messageSend(caller, dst, sys.stdin.read()) + except AsteriskError as error: + if error.message == "Message failed to send.": + sms=Sms("dbname='django' user='crans' host='pgsql.adm.crans.org'", "voip_sms") + sms.sms_delay(error.params['from'], error.params['to'], error.params['base64body'], error.params['to'].split(':',1)[1], body_type='base64') + else: + raise -- GitLab