{"id":704,"date":"2013-03-06T04:38:53","date_gmt":"2013-03-06T04:38:53","guid":{"rendered":"http:\/\/aaron-sherwood.com\/blog\/?p=704"},"modified":"2025-09-26T09:16:15","modified_gmt":"2025-09-26T09:16:15","slug":"dial-in-openframeworks","status":"publish","type":"post","link":"https:\/\/aaron-sherwood.com\/blog\/?p=704","title":{"rendered":"openFrameworks over phone"},"content":{"rendered":"<p>I&#8217;m dialing into openFrameworks from a landline. My button presses on the phone are displayed on screen as confirmation.<\/p>\n<p><iframe loading=\"lazy\" title=\"vimeo-player\" src=\"https:\/\/player.vimeo.com\/video\/61155727?h=70de3924cb\" width=\"800\" height=\"450\" frameborder=\"0\" referrerpolicy=\"strict-origin-when-cross-origin\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\"   allowfullscreen><\/iframe><\/p>\n<p>When I call in I&#8217;m routed to an Asterisk dial plan that waits for my button presses. When a button is pressed it calls a short Ruby script that makes a post request to a url sending the number of the button. A small Sinatra app receives this number and places it into a yaml file. The Sinatra app is also receiving get requests from openFrameworks. The get route in the Sinatra app returns the last number placed in the yaml file and it&#8217;s ID. Openframeworks keeps track of the ID. If it is different then the last ID it knows it is a new number and displays the number on screen.<br \/>\n<!--more--><\/p>\n<p><script src=\"https:\/\/gist.github.com\/aaronsherwood\/5096681.js\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m dialing into openFrameworks from a landline. My button presses on the phone are displayed on screen as confirmation. When I call in I&#8217;m routed to an Asterisk dial plan that waits for my button presses. When a button is &hellip; <a href=\"https:\/\/aaron-sherwood.com\/blog\/?p=704\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[39,3,23,10,38,6],"tags":[118,11,43],"class_list":["post-704","post","type-post","status-publish","format-standard","hentry","category-asterisk","category-itp","category-itp-group-blog","category-openframeworks","category-redial-telephony","category-web","tag-asterisk","tag-openframeworks-2","tag-telephony"],"_links":{"self":[{"href":"https:\/\/aaron-sherwood.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/704","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aaron-sherwood.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aaron-sherwood.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aaron-sherwood.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aaron-sherwood.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=704"}],"version-history":[{"count":4,"href":"https:\/\/aaron-sherwood.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/704\/revisions"}],"predecessor-version":[{"id":2090,"href":"https:\/\/aaron-sherwood.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/704\/revisions\/2090"}],"wp:attachment":[{"href":"https:\/\/aaron-sherwood.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=704"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aaron-sherwood.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=704"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aaron-sherwood.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=704"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}