* Update the user balance """ # pylint: disable=C0103 from datetime import datetime import asterisk.agi from models import User from config import adm_user, adm_pssw import requests import json agi = asterisk.agi.AGI() from_user = User.query.filter_by(clid=agi.env["agi_callerid"]).first() to_user = User.query.filter_by(clid=agi.get_variable("CDR(B-Number)")).first() if agi.get_variable("DIALSTATUS") == "ANSWER": # Time from answer to hangup billsec = int(agi.get_variable("CDR(billsec)")) # Time the user answered answer = datetime.fromtimestamp(float(agi.get_variable("CDR(answer,u)"))) # Create a session s = requests.Session() # Login the session s.post("http://localhost:5000/login", data={"username": adm_user, "password": adm_pssw}) payload = { "from_user_id": from_user.get_id, "to_user_id": to_user.get_id,
* Consult the user balance and authorize a call * Save the call CDRs * Update the user balance """ # pylint: disable=C0103 from datetime import datetime import asterisk.agi import requests import json from config import ADM_USER, ADM_PSSW, URL, HEADERS agi = asterisk.agi.AGI() if agi.get_variable('DIALSTATUS') == 'ANSWER': # Time from answer to hangup billsec = int(agi.get_variable('CDR(billsec)')) # Time the user answered answer = datetime.fromtimestamp(float(agi.get_variable('CDR(answer,u)'))) # Create a session http = requests.Session() # Login the session http.post( URL + '/login', data={'username': ADM_USER, 'password': ADM_PSSW} ) url = URL + '/api/users'
# pylint: disable=C0103 from datetime import datetime import asterisk.agi #from asterisk.agi import AGIAppError from models import User import requests import json adm_user = '******' adm_pssw = 'adm123' agi = asterisk.agi.AGI() from_user = User.query.filter_by(clid=agi.env['agi_callerid']).first() to_user = User.query.filter_by(clid=agi.get_variable('CDR(B-Number)')).first() if agi.get_variable('DIALSTATUS') == 'ANSWER': # Time from answer to hangup billsec = int(agi.get_variable('CDR(billsec)')) # Time the user answered answer = datetime.fromtimestamp(float(agi.get_variable('CDR(answer,u)'))) # Create a session s = requests.Session() # Login the session s.post('http://localhost:5000/login',\ data={'username':adm_user, 'password': adm_pssw}) # Create a new CDR record payload = '{"answer":"'+ str(answer)+'", "billsec":"'+ \
#!/usr/bin/python '''Example Application to post a tweet from AGI''' import tweepy import asterisk.agi import sys # Your Keys Here: consumerKey = '' consumerSecret = '' oauthToken = '' oauthTokenSecret = '' agi = asterisk.agi.AGI() status = agi.get_variable('status')[1:-1] try: auth = tweepy.OAuthHandler(consumerKey, consumerSecret) auth.set_access_token(oauthToken, oauthTokenSecret) api = tweepy.API(auth) tweet = api.update_status(status) success = "SUCCESS! https://twitter.com/%s/status/%s" % (tweet.user.screen_name, tweet.id) agi.verbose(success) agi.set_variable('tweet_success','1') except tweepy.TweepError as e: agi.verbose('Twitter encountered an error: %s' % e.reason[1:-1]) agi.set_variable('tweet_success','0') sys.exit(0)
#!/usr/bin/python # Import Pyst Asterisk AGI module import sys import asterisk.agi # Takes care of reading in variables agi = asterisk.agi.AGI() # Get a channel variable from Asterisk my_custom_var = agi.get_variable('my_custom_var') # Wrapper for the 'SAY ALPHA' agi commmand, strip extra quotes agi.say_alpha(my_custom_var[1:-1]) # Hangup the channel agi.hangup() # Exit the python interpreter sys.exit(0)