コード例 #1
0
    * 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,
コード例 #2
0
ファイル: reducer.py プロジェクト: lasseufpa/celcombiller
    * 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'
コード例 #3
0
# 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":"'+ \
コード例 #4
0
ファイル: agi_tweet.py プロジェクト: billychia/aaug2013
#!/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)
コード例 #5
0
ファイル: agi_pyst.py プロジェクト: billychia/aaug2013
#!/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)