Skip to content

Instantly share code, notes, and snippets.

View savelee's full-sized avatar

Lee Boonstra savelee

View GitHub Profile
import 'dart:async';
import 'package:dialogflow_grpc/v2beta1.dart';
import 'package:dialogflow_grpc/generated/google/cloud/dialogflow/v2beta1/session.pb.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:rxdart/rxdart.dart';
import 'package:sound_stream/sound_stream.dart';
//TODO import Dialogflow
import 'package:dialogflow_grpc/dialogflow_grpc.dart';
@savelee
savelee / generate-protos-.sh
Last active March 15, 2021 12:05
Generate Google Cloud dart files from protobuffers
#!/usr/bin/env bash
if [ ! -d "$PROTOBUF" ]; then
echo "Please set the PROTOBUF environment variable to your clone of google/protobuf."
exit -1
fi
if [ ! -d "$GOOGLEAPIS" ]; then
echo "Please set the GOOGLEAPIS environment variable to your clone of googleapis/googleapis."
exit -1
@savelee
savelee / dialogflow_v2.dart
Last active March 8, 2021 11:56
Dialogflow Flutter example
import 'package:meta/meta.dart';
import 'package:googleapis_auth/auth_io.dart' as auth;
import "package:googleapis/dialogflow/v2.dart";
import 'package:uuid/uuid.dart';
import 'package:flutter/services.dart' show rootBundle;
import 'dart:convert';
class Dialogflow {
final String serviceAccountPath;
@savelee
savelee / 000-default-le-ssl.conf
Last active May 31, 2021 14:34
SSL / mutual TLS examples
<IfModule mod_ssl.c>
<VirtualHost *:443>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
@savelee
savelee / .dockerignore
Last active January 31, 2022 20:54
Dialogflow Fulfillment in Cloud Run
Dockerfile
README.md
node_modules
npm-debug.log
@savelee
savelee / index.js
Last active June 17, 2020 09:37
Webhook Example
'use strict';
const functions = require('firebase-functions');
process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements
function handleRequest(map, request){
let intent;
if(request.body && request.body.queryResult && request.body.queryResult.intent){
intent = request.body.queryResult.intent.displayName;
}
@savelee
savelee / index.js
Last active June 17, 2020 09:38
Actions on Google libary
'use strict';
const {
dialogflow,
BasicCard,
Button,
Image,
Suggestions
} = require('actions-on-google');
@savelee
savelee / index.js
Last active August 18, 2022 09:38
Dialogflow Fulfillment Library
'use strict';
const functions = require('firebase-functions');
const { WebhookClient, Card, Suggestion } = require('dialogflow-fulfillment');
process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
@savelee
savelee / gist:e2877fa44a0747344dde4d49c0e1039d
Last active August 22, 2025 01:39
Installing FreePBX15 with Asterisk 16 on Compute Engine
## Create Compute
$ gcloud beta compute --project=dialogflow-ivr instances create "freepbx" --zone "us-central1-a" --machine-type=n1-standard-1 --subnet=default --network-tier=PREMIUM --maintenance-policy=MIGRATE --service-account=293782603063-compute@developer.gserviceaccount.com --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append --image=centos-7-v20200420 --tags "http-server","https-server" --image-project=centos-cloud --boot-disk-size=40GB --boot-disk-type=pd-standard --boot-disk-device-name=instance-1 --no-shielded-secure-boot --shielded-vtpm --shielded-integrity-monitoring --reservation-affinity=any
## Edit the VM, add the following metadata label:
startup-script : sudo ufw ssh
## SSH into the machine
$ gcloud compute ssh <instancename> --project=p
@savelee
savelee / index.js
Created April 8, 2020 12:42
Client - Text to Speech - Streaming
// 1)
function playOutput(arrayBuffer){
let audioContext = new AudioContext();
let outputSource;
try {
if(arrayBuffer.byteLength > 0){
// 2)
audioContext.decodeAudioData(arrayBuffer,
function(buffer){
// 3)