Slide 1

Slide 1 text

> GET FLASK Hacking phones to make voice- activated text adventure games Mattt Thompson (@mattt) Lone Star Ruby Conf V

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Phone: (412) 228-4135 Skype: +990009369991482209 SIP Voice: sip:[email protected]

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Making a Call

Slide 6

Slide 6 text

Making a Call REST

Slide 7

Slide 7 text

Making a Call 555-4269

Slide 8

Slide 8 text

Making a Call 555-4269

Slide 9

Slide 9 text

Making a Call URL 555-4269

Slide 10

Slide 10 text

Making a Call {say} URL 555-4269

Slide 11

Slide 11 text

Receiving a Call

Slide 12

Slide 12 text

Receiving a Call 555-1337

Slide 13

Slide 13 text

Receiving a Call URL 555-1337

Slide 14

Slide 14 text

Receiving a Call {say} URL 555-1337

Slide 15

Slide 15 text

Receiving a Call {say} URL 555-1337

Slide 16

Slide 16 text

JSON

Slide 17

Slide 17 text

Tropo Web API say ask call record message

Slide 18

Slide 18 text

Tropo Web API say ask call record message

Slide 19

Slide 19 text

Tropo Web API say ask call record message

Slide 20

Slide 20 text

Tropo Web API say ask call record message

Slide 21

Slide 21 text

Tropo Web API say ask call record message

Slide 22

Slide 22 text

Tropo Web API say ask call record message

Slide 23

Slide 23 text

{ "ask": { "choices": Object, "allowSignals": String or Array, "attempts": Integer, "bargein": Boolean, "minConfidence": Integer, "name": String, "recognizer": String, "required": Boolean, "say": Object, "timeout": Float, "voice": String } }

Slide 24

Slide 24 text

on

Slide 25

Slide 25 text

{ "on": { "event": String, "name": String, "next": String, "required": Boolean, "say": Object } }

Slide 26

Slide 26 text

GrammarXML

Slide 27

Slide 27 text

out.predicateSlot=rules.PREDICATE.predicateSubslot; out.objectSlot=rules.OBJECT.objectSubslot; out.v=out.predicateSlot + out.objectSlot;

Slide 28

Slide 28 text

out.predicateSubslot="look"; out.objectSlot=""; ... get take get ye take ye get yon take yon out.predicateSubslot="get ";

Slide 29

Slide 29 text

north out.objectSubslot="north"; south out.objectSubslot="south"; dennis out.objectSubslot="dennis"; not dennis out.objectSubslot="not dennis";

Slide 30

Slide 30 text

github.com/mattt/Thy-Dungeonman @mattt

Slide 31

Slide 31 text

> THANKS!