モーニングコールを作る② AGIから登録
とりまスクリプトのみ
from asterisk.agi import * #ロジック部分。 #AGIのインスタンス化 agi = AGI() roomNo = agi.env['agi.callerid'] t_time = [] while True: t_time.append(agi.wait_for_digit(-1)) #数字が4つになったら登録して切断する if len(t_time) == 4: makedate(t_time,roomNo) agi.hangup() #数字4つを元に時刻を作ってSQLITEに登録する def makedate(t_time,roomNo): from sqlalchemy.ext.automap import automap_base from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine import datetime #tableの作成 engine= create_engine("sqlite:///test1.sqlite") base = automap_base() base.prepare(engine,reflect = True) table = base.classes.wakeup #sessionの作成 session = sessionmaker(bind=engine)() now = datetime.datetime.now() tomorrow =now + datetime.timedelta(days = 1) #13時から24時までに登録されたら明日のモーニングコール if (now.hour<24 and now.hour>13): target_date = tomorrow #それ以外なら当日のモーニングコール else: target_date = now wakeup_date =datetime.datetime(target_date.year,target_date.month,target_date.day,10*t_time[0]+t_time[1],10*t_time[2]+t_time[3]) new_table = table(roomNo = roomNo , reg_Date = now, wake_Date = wakeup_date) session.add(new_table) session.commit()