Пример #1
0
    def test_inbound_permissions(self):
        token = ClientCapabilityToken("AC123", "XXXXX")
        token.allow_client_incoming("andy")

        eurl = "scope:client:incoming?clientName=andy"
        assert_equal(len(token._generate_payload()), 1)
        assert_equal(token._generate_payload()['scope'], eurl)
Пример #2
0
def get_token():
    capability = ClientCapabilityToken(TWILIO_SID, TWILIO_TOKEN)
    capability.allow_client_outgoing(TWILIO_TWIML_SID)
    capability.allow_client_incoming(default_client)
    token = capability.to_jwt()
    # encoded = base64.encodestring(token)
    return token
Пример #3
0
def generate_view(charset='utf-8'):
    worker_sid = request.args.get('WorkerSid')  # TaskRouter Worker Token
    worker_capability = WorkerCapabilityToken(
        account_sid=account_sid,
        auth_token=auth_token,
        workspace_sid=workspace_sid,
        worker_sid=worker_sid)  # generate worker capability token

    worker_capability.allow_update_activities(
    )  # allow agent to update their activity status e.g. go offline
    worker_capability.allow_update_reservations(
    )  # allow agents to update reservations e.g. accept/reject
    worker_token = worker_capability.to_jwt(ttl=28800)

    capability = ClientCapabilityToken(
        account_sid, auth_token)  # agent Twilio Client capability token
    capability.allow_client_outgoing(twiml_app)
    capability.allow_client_incoming(worker_sid)

    client_token = capability.to_jwt()

    # render client/worker tokens to the agent desktop so that they can be queried on the client side
    return render_template('agent_desktop.html',
                           token=client_token.decode("utf-8"),
                           worker_token=worker_token.decode("utf-8"),
                           client_=worker_sid,
                           activity=activity,
                           caller_id=caller_id)
Пример #4
0
def get_token(request):
    capability = ClientCapabilityToken(
        settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN)

    capability.allow_client_outgoing(settings.TWIML_APPLICATION_SID)
    capability.allow_client_incoming('general')

    token = capability.to_jwt()
    return JsonResponse({'token': token.decode('utf-8')})
Пример #5
0
def get_token(request):
    """Returns a Twilio Client token"""
    # Create a TwilioCapability token with our Twilio API credentials
    capability = ClientCapabilityToken(settings.TWILIO_ACCOUNT_SID,
                                       settings.TWILIO_AUTH_TOKEN)

    capability.allow_client_outgoing(settings.TWILIO_ACCOUNT_SID)
    capability.allow_client_incoming('support_agent')
    token = capability.to_jwt()

    return JsonResponse({'token': token.decode('utf-8')})
Пример #6
0
    def test_encode_full_payload(self):
        token = ClientCapabilityToken("AC123", "XXXXX")
        token.allow_event_stream(foobar="hey")
        token.allow_client_incoming("andy")

        event_uri = "scope:stream:subscribe?params=foobar%3Dhey&path=%2F2010-04-01%2FEvents"
        incoming_uri = "scope:client:incoming?clientName=andy"

        self.assertIn(event_uri, token.payload["scope"])
        self.assertIn(incoming_uri, token.payload["scope"])
        self.assertEqual(token.payload['iss'], 'AC123')
        self.assertGreaterEqual(token.payload['exp'], self.now())
Пример #7
0
def generate(agent_id):
    account_sid = ENV['TWILIO_ACCOUNT_SID']
    auth_token = ENV['TWILIO_AUTH_TOKEN']
    capability = ClientCapabilityToken(account_sid, auth_token)
    capability.allow_client_incoming(agent_id)
    jwt = capability.to_jwt()

    try:
        jwt_str = jwt.decode('utf-8')
    except Exception as e:
        jwt_str = jwt

    return jwt_str
def get_capability_token():
    """Respond to incoming requests."""

    # Find these values at twilio.com/console
    account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    auth_token = 'your_auth_token'

    capability = ClientCapabilityToken(account_sid, auth_token)

    capability.allow_client_incoming("jenny")
    token = capability.generate()

    return Response(token, mimetype='application/jwt')
def get_capability_token():
    """Respond to incoming requests."""

    # Find these values at twilio.com/console
    account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    auth_token = 'your_auth_token'

    capability = ClientCapabilityToken(account_sid, auth_token)

    capability.allow_client_incoming("jenny")
    token = capability.generate()

    return Response(token, mimetype='application/jwt')
Пример #10
0
def get_capability_token():
    """Respond to incoming requests."""

    # Find these values at twilio.com/console
    # To set up environmental variables, see http://twil.io/secure
    account_sid = os.environ['TWILIO_ACCOUNT_SID']
    auth_token = os.environ['TWILIO_AUTH_TOKEN']

    capability = ClientCapabilityToken(account_sid, auth_token)

    capability.allow_client_incoming("joey")
    token = capability.to_jwt()

    return Response(token, mimetype='application/jwt')
Пример #11
0
def token():
    print(request.args)
    if request.args.get('identity'):
        identity = request.args.get('identity')
    else:
        identity = alphanumeric_only.sub('', fake.user_name())

    # Create a Capability Token
    capability = ClientCapabilityToken(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)
    capability.allow_client_outgoing(TWILIO_TWIML_APP_SID)
    capability.allow_client_incoming(identity)
    token = capability.to_jwt()

    # Return token info as JSON
    return jsonify(identity=identity, token=token.decode('utf-8'))
Пример #12
0
    def test_decode(self):
        token = ClientCapabilityToken("AC123", "XXXXX")
        token.allow_client_outgoing("AP123", foobar=3)
        token.allow_client_incoming("andy")
        token.allow_event_stream()

        outgoing_uri = "scope:client:outgoing?appParams=foobar%3D3&appSid=AP123&clientName=andy"
        incoming_uri = "scope:client:incoming?clientName=andy"
        event_uri = "scope:stream:subscribe?path=%2F2010-04-01%2FEvents"

        result = Jwt.from_jwt(token.to_jwt(), "XXXXX")
        scope = result.payload["scope"].split(" ")

        self.assertIn(outgoing_uri, scope)
        self.assertIn(incoming_uri, scope)
        self.assertIn(event_uri, scope)
Пример #13
0
def token():
    # get credentials for environment variables
    account_sid = os.environ['TWILIO_ACCOUNT_SID']
    auth_token = os.environ['TWILIO_AUTH_TOKEN']
    application_sid = os.environ['TWILIO_TWIML_APP_SID']
    # Generate a random user name
    identity = alphanumeric_only.sub('', fake.user_name())

    # Create a Capability Token
    capability = ClientCapabilityToken(account_sid, auth_token)
    capability.allow_client_outgoing(application_sid)
    capability.allow_client_incoming(identity)
    token = capability.to_jwt()

    # Return token info as JSON
    return jsonify(identity=identity, token=token.decode('utf-8'))
Пример #14
0
def get_capability_token():
    """Respond to incoming requests."""

    # Find these values at twilio.com/console
    account_sid = 'ACf2d4b74b4b25771e647846fd049d58fa'
    auth_token = 'c0e421d575b7c12c28434af8b9c02d79'

    capability = ClientCapabilityToken(account_sid, auth_token)

    # Twilio Application Sid
    application_sid = 'APXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    capability.allow_client_outgoing(application_sid)
    capability.allow_client_incoming('joey')
    token = capability.to_jwt()

    return Response(token, mimetype='application/jwt')
def get_voice_token(username):
    logger.info(f'Generating Voice token for {username}')

    token = ClientCapabilityToken(settings.TWILIO_ACCOUNT_SID,
                                  settings.TWILIO_AUTH_TOKEN)
    token.allow_client_incoming(username)

    # Expire token in three minutes
    expiration = 180

    jwt_token = token.to_jwt(ttl=expiration).decode("utf-8")

    # Cache the token, set to expire after the token expires
    cache.set(f'tokens:voice:{username}', jwt_token, expiration)

    return jwt_token
Пример #16
0
def get_capability_token():
    """Respond to incoming requests."""

    # Find these values at twilio.com/console
    account_sid = 'ACab62879858e561e0bee754b4beb4363f'
    auth_token = '09eddc4f6d8fc25860589d648f1f5fa8'

    capability = ClientCapabilityToken(account_sid, auth_token)

    # Twilio Application Sid
    application_sid = 'AP32bea3e2b14a2063a3bbc7fe36489eb3'
    capability.allow_client_outgoing(application_sid)
    capability.allow_client_incoming('joey')
    token = capability.to_jwt()

    return Response(token, mimetype='application/jwt')
Пример #17
0
def get_capability_token():
    """Respond to incoming requests."""

    # Find these values at twilio.com/console
    account_sid = '<Twilio sid>'
    auth_token = '<Twilio auth token>'

    capability = ClientCapabilityToken(account_sid, auth_token)

    # Twilio Application Sid
    application_sid = '<TwilioML app sid>'
    capability.allow_client_outgoing(application_sid)
    capability.allow_client_incoming('joey')
    token = capability.generate()

    return Response(token, mimetype='application/jwt')
Пример #18
0
def get_capability_token():
    """Respond to incoming requests."""

    # Find these values at twilio.com/console
    account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    auth_token = 'your_auth_token'

    capability = ClientCapabilityToken(account_sid, auth_token)

    # Twilio Application Sid
    application_sid = 'APXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    capability.allow_client_outgoing(application_sid)
    capability.allow_client_incoming(request.form["ClientName"])
    token = capability.to_jwt()

    return Response(token, mimetype='application/jwt')
Пример #19
0
def get_capability_token():
    """Respond to incoming requests."""

    # Find these values at twilio.com/console
    account_sid = 'ASID'
    auth_token = 'ATOKEN'

    capability = ClientCapabilityToken(account_sid, auth_token)

    # Twilio Application Sid
    application_sid = 'AP2439c31dd3d2b5604f3d795d40bfb97c'
    capability.allow_client_outgoing(application_sid)
    capability.allow_client_incoming('ValerieTest')
    token = capability.to_jwt()
    print(capability.to_jwt())

    return Response(token, mimetype='application/jwt')
Пример #20
0
def get_token(request):
    """Returns a Twilio Client token"""
    # Create a TwilioCapability token with our Twilio API credentials
    capability = ClientCapabilityToken(
        settings.TWILIO_ACCOUNT_SID,
        settings.TWILIO_AUTH_TOKEN)

    # If the user is on the support dashboard page, we allow them to accept
    # incoming calls to "support_agent"
    # (in a real app we would also require the user to be authenticated)
    capability.allow_client_incoming(request.user.username)
    # Allow our users to make outgoing calls with Twilio Client
    capability.allow_client_outgoing(settings.TWIML_APPLICATION_SID)
    # Generate the capability token
    token = capability.to_jwt()

    return JsonResponse({'token': token})
Пример #21
0
def client():
    """Respond to incoming requests."""
    client_name = request.values.get('client', None) or "TomPY"
    
    account_sid = os.environ.get("Twilio_account_sid")
    auth_token = os.environ.get("Twilio_auth_token")
 
    # This is a special Quickstart application sid - or configure your own
    # at twilio.com/user/account/apps
    application_sid = os.environ.get("Twilio_application_sid")
    capability = ClientCapabilityToken(account_sid, auth_token)

    capability.allow_client_outgoing(application_sid)
    capability.allow_client_incoming(client_name)
    
    
    token = capability.to_jwt()
    print(capability.to_jwt())
 
    return render_template('index.html', token=token.decode("utf-8"), client_name=client_name)
Пример #22
0
def get_token(request):
    """Returns a Twilio Client token"""

    # Create a TwilioCapability token with our Twilio API credentials
    capability = ClientCapabilityToken(
        settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN
    )

    # Allow our users to make outgoing calls with Twilio Client
    capability.allow_client_outgoing(settings.TWIML_APPLICATION_SID)

    if request.user.groups.filter(name="Comprendre").exists():
        capability.allow_client_incoming('understand_user')
    else:
        capability.allow_client_incoming('awareness_user')

    # Generate the capability token
    token = capability.to_jwt()

    return JsonResponse({'token': token.decode('utf-8')})
Пример #23
0
def client():
    """Respond to incoming requests."""
    client_name = request.values.get('client', None) or "TomPY"

    account_sid = os.environ.get("Twilio_account_sid")
    auth_token = os.environ.get("Twilio_auth_token")

    # This is a special Quickstart application sid - or configure your own
    # at twilio.com/user/account/apps
    application_sid = os.environ.get("Twilio_application_sid")
    capability = ClientCapabilityToken(account_sid, auth_token)

    capability.allow_client_outgoing(application_sid)
    capability.allow_client_incoming(client_name)

    token = capability.to_jwt()
    print(capability.to_jwt())

    return render_template('index.html',
                           token=token.decode("utf-8"),
                           client_name=client_name)
Пример #24
0
def get_token(request):
    """Returns a Twilio Client token"""
    # Create a TwilioCapability token with our Twilio API credentials
    capability = ClientCapabilityToken(settings.TWILIO_ACCOUNT_SID,
                                       settings.TWILIO_AUTH_TOKEN)

    # Allow our users to make outgoing calls with Twilio Client
    capability.allow_client_outgoing(settings.TWIML_APPLICATION_SID)

    # If the user is on the support dashboard page, we allow them to accept
    # incoming calls to "support_agent"
    # (in a real app we would also require the user to be authenticated)
    if request.GET['forPage'] == reverse('dashboard'):
        capability.allow_client_incoming('support_agent')
    else:
        # Otherwise we give them a name of "customer"
        capability.allow_client_incoming('customer')

    # Generate the capability token
    token = capability.generate()

    return JsonResponse({'token': token})
Пример #25
0
def get_token(request):
    """Returns a Twilio Client token"""
    # Create a TwilioCapability token with our Twilio API credentials
    capability = ClientCapabilityToken(settings.TWILIO_ACCOUNT_SID,
                                       settings.TWILIO_AUTH_TOKEN)

    # Allow our users to make outgoing calls with Twilio Client
    capability.allow_client_outgoing(settings.TWIML_APP_SID_BROWSERCALL)

    # If the user is on the support dashboard page, we allow them to accept
    # incoming calls to "sales_rep"
    # (in a real app we would also require the user to be authenticated)
    if request.GET['forPage'] == reverse('call_tracking:recent-activity'):
        capability.allow_client_incoming('sales_rep')
    else:
        # Otherwise we give them a name of "lead"
        capability.allow_client_incoming('lead')

    # Generate the capability token
    token = capability.to_jwt()

    return JsonResponse({'token': token.decode('utf-8')})
Пример #26
0
def get_token():
    """Returns a Twilio Client token"""
    # Create a TwilioCapability object with our Twilio API credentials
    capability = ClientCapabilityToken(app.config['TWILIO_ACCOUNT_SID'],
                                       app.config['TWILIO_AUTH_TOKEN'])

    # Allow our users to make outgoing calls with Twilio Client
    capability.allow_client_outgoing(app.config['TWIML_APPLICATION_SID'])

    # If the user is on the support dashboard page, we allow them to accept
    # incoming calls to "support_agent"
    # (in a real app we would also require the user to be authenticated)
    if request.args.get('forPage') == '/dashboard':
        capability.allow_client_incoming('support_agent')
    else:
        # Otherwise we give them a name of "customer"
        capability.allow_client_incoming('customer')

    # Generate the capability token
    token = capability.generate()

    return jsonify({'token': token})
Пример #27
0
def get_token():
    """Returns a Twilio Client token"""
    # Create a TwilioCapability object with our Twilio API credentials
    capability = ClientCapabilityToken(
        app.config['TWILIO_ACCOUNT_SID'],
        app.config['TWILIO_AUTH_TOKEN'])

    # Allow our users to make outgoing calls with Twilio Client
    capability.allow_client_outgoing(app.config['TWIML_APPLICATION_SID'])

    # If the user is on the support dashboard page, we allow them to accept
    # incoming calls to "support_agent"
    # (in a real app we would also require the user to be authenticated)
    if request.args.get('forPage') == '/dashboard':
        capability.allow_client_incoming('support_agent')
    else:
        # Otherwise we give them a name of "customer"
        capability.allow_client_incoming('customer')

    # Generate the capability token
    token = capability.to_jwt()

    return jsonify({'token': token})