<div dir="ltr">Hi All,<div><br></div><div>I have some quick and general questions regarding IPP over USB (&quot;IPP USB&quot; for short). Some are related to Till&#39;s proposed project &quot;<font face="arial, helvetica, sans-serif">Google Summer of Code 2014 - IPP-over-USB printer support</font>&quot;. Any help and feedback will be greatly welcomed. I should mention that I am in favor of the proposed project for this event.</div>
<div><br></div><div><p style="font-family:arial,sans-serif;font-size:13px">Assumptions (please confirm or correct):</p><p style="font-family:arial,sans-serif;font-size:13px">1) This first one may be obvious but to be sure - I am assuming that we are referring to IPP USB as defined in the &quot;USB Print Interface Class IPP Protocol Specification Revision 1.0&quot; dated 12/5/2012 and published by USB-IF and authored by HP&#39;s Smith Kennedy and Andrew R. Mitchell. I&#39;ll refer to it as the &quot;IPP USB Spec&quot;.</p>
<p style="font-family:arial,sans-serif;font-size:13px">2) As I understand the IPP USB Spec, there is NO network interface, NOR TCP/IP involved. The Communication Protocol to be used between Host and Device (Printer) is <i>purely HTTP + IPP directly over USB</i>. A place where this is noted is section 6.2 - &quot;HTTP Headers&quot; which states the following:</p>
<p style="font-family:arial,sans-serif;font-size:13px"><i>Since there is NO network interface connection, NO DNS hostnames or IP addresses, and NO TCP port numbers associated with USB connection, the requirements of the HTTP Host field is addressed by requiring that the value of this header MUST be &quot;localhost&quot;.</i></p>
<p style="font-family:arial,sans-serif;font-size:13px">Please correct me if I am wrong on either of these assumptions.<br></p><p style="font-family:arial,sans-serif;font-size:13px"><br></p><p style="font-family:arial,sans-serif;font-size:13px">
Questions:</p><p style="font-family:arial,sans-serif;font-size:13px">1) I know the Spec is already cast in stone but I would like to understand what function HTTP serves and if it is only used for identifying &quot;Host: localhost&quot; and the &quot;/ipp/printer&quot; path? In other words, could pure IPP Requests/Responses and IPP expected format &quot;Print Data&quot; have sufficed?<br>
</p><p><font face="arial, sans-serif" style="font-size:13px"> 2) Section 3.2 &quot;Interface Set&quot; paragraph 2 states that &quot;</font><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">All</span><span style="font-size:small;font-family:arial"> IPP USB</span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt"> capable</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt"> </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">Print</span><span style="font-size:small;font-family:arial">
class</span><span style="font-size:small;font-family:arial;letter-spacing:0.1pt"> </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">interfaces provided</span><span style="font-size:small;font-family:arial"> by</span><span style="font-size:small;font-family:arial;letter-spacing:-0.15pt"> </span><span style="font-size:small;font-family:arial">a</span><span style="font-size:small;font-family:arial;letter-spacing:0.05pt"> </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">device</span><span style="font-size:small;font-family:arial;letter-spacing:0.15pt"> </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">MUST</span><span style="font-size:small;font-family:arial">
be</span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt"> functionally</span><span style="font-size:small;font-family:arial;letter-spacing:3.65pt"> </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">equal</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt"> </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">from</span><span style="font-size:small;font-family:arial;letter-spacing:0.05pt"> </span><span style="font-size:small;font-family:arial">an</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt"> </span><span style="font-size:small;font-family:arial">IPP</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt"> </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">operation</span><span style="font-size:small;font-family:arial">
or </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">HTTP</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt"> </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">perspective.</span><span style="font-size:small;font-family:arial">  </span><span style="font-size:small;font-family:arial">In </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">other</span><span style="font-size:small;font-family:arial">
</span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">words,</span><span style="font-size:small;font-family:arial;letter-spacing:0.2pt"> </span><span style="font-size:small;font-family:arial">any</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt"> </span><span style="font-size:small;font-family:arial">IPP </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">operation</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt">
</span><span style="font-size:small;font-family:arial">or</span><span style="font-size:small;font-family:arial;letter-spacing:3.05pt"> </span><span style="font-size:small;font-family:arial">resource</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt"> </span><span style="font-size:small;font-family:arial">path </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">that</span><span style="font-size:small;font-family:arial">
is </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">valid</span><span style="font-size:small;font-family:arial"> </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">over</span><span style="font-size:small;font-family:arial"> one</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt"> </span><span style="font-size:small;font-family:arial">IPP</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt"> </span><span style="font-size:small;font-family:arial">USB</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt"> </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">interface</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt">
</span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">MUST</span><span style="font-size:small;font-family:arial;letter-spacing:0.25pt"> </span><span style="font-size:small;font-family:arial">be</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt"> </span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">reachable</span><span style="font-size:small;font-family:arial;letter-spacing:-0.1pt">
</span><span style="font-size:small;font-family:arial;letter-spacing:-0.05pt">via</span><span style="font-size:small;font-family:arial"> any and </span><font face="arial, helvetica, sans-serif">all<span style="letter-spacing:-0.05pt"> of</span><span style="letter-spacing:0.1pt"> </span><span style="letter-spacing:-0.05pt">the</span>
<span style="letter-spacing:-0.05pt">IPP</span> <span style="letter-spacing:-0.05pt">USB</span> interfaces.&quot;</font></p><p><font face="arial, helvetica, sans-serif">Does this imply that, for example, a Request from the host can be sent over one interface (I/F #1) and the response received over a different interface (e.g., I/F #2)?</font></p>
<p style="font-family:arial,sans-serif;font-size:13px">3) The last question is much simpler but would be helpful to an implementor - what specific printers (manufacturer, line and model) <i>on the market</i> support IPP USB? I have seen references to HP Photosmart and OfficeJet but no model given. Similarly, what Host(s) on the market, including OS and version, support the IPP USB protocol with these Printers?</p>
<p style="font-family:arial,sans-serif;font-size:13px">Knowing this would be helpful to implement and test either device and/or host support.</p><p style="font-family:arial,sans-serif;font-size:13px">I look forward to your reply and discussing the project further.</p>
<p style="font-family:arial,sans-serif;font-size:13px"><br></p><p style="font-family:arial,sans-serif;font-size:13px">Thanks!</p><p style="font-family:arial,sans-serif;font-size:13px"><br></p><p style="font-size:13px"><font face="georgia, serif" style="background-color:rgb(243,243,243)" color="#0000ff">Carlos Rimola</font></p>
<p style="font-size:13px"><font face="georgia, serif" style="background-color:rgb(243,243,243)" color="#0000ff">Software Developer</font></p><p style="font-size:13px"><font face="georgia, serif" style="background-color:rgb(243,243,243)" color="#0000ff"><a href="mailto:crimola@gmail.com">crimola@gmail.com</a></font></p>
<p style="font-size:13px"><span id="gc-number-11" class="gc-cs-link" title="Call with Google Voice"><font face="georgia, serif"><span id="gc-number-12" class="gc-cs-link" title="Call with Google Voice">408-508-8339</span></font></span></p>
</div></div>