{"id":725,"date":"2011-07-05T10:12:01","date_gmt":"2011-07-05T14:12:01","guid":{"rendered":"http:\/\/www.streamingmeemee.com\/?p=725"},"modified":"2011-07-07T08:39:23","modified_gmt":"2011-07-07T12:39:23","slug":"breakdown-of-a-framechannel-request-well-helloooooo-ipad","status":"publish","type":"post","link":"https:\/\/www.streamingmeemee.com\/index.php\/2011\/07\/05\/breakdown-of-a-framechannel-request-well-helloooooo-ipad\/","title":{"rendered":"Breakdown of a FrameChannel request&#8230;.  Well Helloooooo iPad!"},"content":{"rendered":"<p>So I was reviewing my server logs this morning (Yes, I&#8217;m a geek &#8212; it&#8217;s what I do.) and I noticed an interesting entry&#8230;<\/p>\n<pre>GET \/productId=IP14882\/frameId=184820da466bcc29ccc5da3620389a26933950e3\/sk1=DB7B067C7B8BC66FE49A67DE8D268183D867DA5CF0376662F62CDD5FCA5A0D1B\/channellist HTTP\/1.1\" 404 356 \"-\" \"TTCatalog-iPad\/3.0 CFNetwork\/485.13.9 Darwin\/11.0.0\"<\/pre>\n<p>There are several interesting bits here&#8230;<\/p>\n<pre>productId=IP14882<\/pre>\n<p>The product ID field is used to communicate what make\/model photo frame is trying to connect with the service; In this case it is &#8216;IP14882&#8217;. \u00a0I use this information to determine the native screen size of the frame and to track if it supports custom Photo RSS feeds. \u00a0So far I have 14 unique productIDs in the database.<\/p>\n<pre>frameId=184820da466bcc29ccc5da3620389a26933950e3<\/pre>\n<p>FrameId is used to unqiuely identify individual photo frames.  Some manufactures use the <a title=\"What's a MAC address?\" href=\"http:\/\/en.wikipedia.org\/wiki\/Mac_address\" target=\"_blank\">MAC address<\/a> of the frame, others use a simple numeric serial number. \u00a0This one is larger than most.<\/p>\n<pre>sk1=DB7B067C7B8BC66FE49A67DE8D268183D867DA5CF0376662F62CDD5FCA5A0D1B<\/pre>\n<p>Huh&#8230;  I don&#8217;t know where to begin on this bit.  First time I&#8217;ve seen it in a frame request.  Anyone?<\/p>\n<p><strong>Update: <\/strong>I&#8217;ve re-read the <a title=\"FrameChannel Integration Guide details interaction with service\" href=\"http:\/\/www.streamingmeemee.com\/index.php\/2011\/06\/15\/framechannel-integration-guide-details-interaction-with-service\/\">FrameChannel Integration Guide<\/a> and discovered that this is the SecurityKey. \u00a0It is described as:<\/p>\n<blockquote><p>SECURITYKEY is an encrypted string used to validate that the URL is\u00a0coming from a genuine partner device. \u00a0The security key is an HMACSHA256 digest (as defined in RFC 2104) of the combination of\u00a0PRODUCTID-FRAMEID \u00a0(exactly in that order separated by a single hyphen\u00a0character), using a secret 32-character key provided by Thinking Screen\u00a0Media for each productId supplied. \u00a0IMPORTANT: the secret key should\u00a0be considered confidential information, and should not be shared or\u00a0exposed to the public. \u00a0A leak of the security key will require an Frame Media, Inc. Page 2 of 4 Company Confidentialimmediate firmware update by the device partner.<\/p><\/blockquote>\n<pre>channellist<\/pre>\n<p>I&#8217;m assuming that this bit indicates that the frame is looking for a list of channels available (Thank you Dr. Obvious).  However, I have no notion of the format it is expecting in return.  Anyone?<br \/>\nAnd now for the really interesting bit&#8230;<\/p>\n<pre>\"TTCatalog-iPad\/3.0 CFNetwork\/485.13.9 Darwin\/11.0.0\"<\/pre>\n<p><em><strong>Well Hellllooooo  iPad<\/strong><\/em>!  I knew that FrameChannel had an iPad application\/widget\/thingy but this is my first example request.  Many thanks to the intrepid soul who fiddled with their DNS and sent in this request.<\/p>\n<p>Now&#8230; If I could just figure out how to respond to a channelList request&#8230; \u00a0Anyone?  Bueller?  Anyone?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So I was reviewing my server logs this morning (Yes, I&#8217;m a geek &#8212; it&#8217;s what I do.) and I noticed an interesting entry&#8230; GET \/productId=IP14882\/frameId=184820da466bcc29ccc5da3620389a26933950e3\/sk1=DB7B067C7B8BC66FE49A67DE8D268183D867DA5CF0376662F62CDD5FCA5A0D1B\/channellist HTTP\/1.1&#8243; 404 356 &#8220;-&#8221; &#8220;TTCatalog-iPad\/3.0 CFNetwork\/485.13.9 Darwin\/11.0.0&#8221; There are several interesting bits here&#8230; productId=IP14882 The product ID field is used to communicate what make\/model photo frame is trying to &hellip; <a href=\"https:\/\/www.streamingmeemee.com\/index.php\/2011\/07\/05\/breakdown-of-a-framechannel-request-well-helloooooo-ipad\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Breakdown of a FrameChannel request&#8230;.  Well Helloooooo iPad!<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[26,41,33,25],"tags":[79,37,71,51,49,69,35,81,65,73,47,39,53,55,59,43,45,75,63,61,57,67,77],"class_list":["post-725","post","type-post","status-publish","format-standard","hentry","category-digital-media","category-framealbum","category-framechannel","category-photos","tag-apple","tag-community","tag-d-link","tag-digital-frame","tag-digital-photo-frame","tag-dlink","tag-framechannel-2","tag-ipad","tag-kodak","tag-motorola","tag-mrss","tag-open-source","tag-photo-frame","tag-protocol","tag-replacement","tag-rss","tag-sample","tag-samsung","tag-service","tag-shutdown","tag-specification","tag-toshiba","tag-wifi"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.streamingmeemee.com\/index.php\/wp-json\/wp\/v2\/posts\/725","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.streamingmeemee.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.streamingmeemee.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.streamingmeemee.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.streamingmeemee.com\/index.php\/wp-json\/wp\/v2\/comments?post=725"}],"version-history":[{"count":5,"href":"https:\/\/www.streamingmeemee.com\/index.php\/wp-json\/wp\/v2\/posts\/725\/revisions"}],"predecessor-version":[{"id":733,"href":"https:\/\/www.streamingmeemee.com\/index.php\/wp-json\/wp\/v2\/posts\/725\/revisions\/733"}],"wp:attachment":[{"href":"https:\/\/www.streamingmeemee.com\/index.php\/wp-json\/wp\/v2\/media?parent=725"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.streamingmeemee.com\/index.php\/wp-json\/wp\/v2\/categories?post=725"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.streamingmeemee.com\/index.php\/wp-json\/wp\/v2\/tags?post=725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}