[sane-devel] Is there any plan to support Web Devices Services (WDS) protocol?

Patrick Roncagliolo ronca.pat at gmail.com
Mon Feb 5 23:05:27 UTC 2018


Hi,

you can find a basic implementation of a WSD discovery scanner here:
https://github.com/roncapat/WSD-python

Here is a sample output (it detects a response from my MB2350):

EndPoint Reference Address:
urn:uuid:00000000-0000-1000-8000-f4813944662e
Implemented Types:
wsdp:Device
wprt:PrintDeviceType
wscn:ScanDeviceType
Transport addresses:
http://192.168.1.5:80/wsd/pnpx-metadata.cgi

Basically, it retrieves an unique identifier, the capabilities of the
devices (MB2350 is both printer and scanner), and an HTTP address for later
use.
More coming. Understanding the protocol with an easy language as Python
with no API constraints helps to bootstrap a working implementation, but
ideally the next step would be a true backend implementation.

Patrick Roncagliolo


Il giorno lun 5 feb 2018 alle ore 16:25 Patrick Roncagliolo <
ronca.pat at gmail.com> ha scritto:

> Hi Till,
> WSD came in with Windows Vista IIRC.
> It is HTTP/XML based, so yeah, it works only on network, in fact my canon
> maxify uses an entirely different protocol on USB (similar, if not equal,
> to the BJNP network protocol used by Canon for basic Linux LAN support).
> It defines a discovery protocol, a scan service, a print service, but
> probably there are more, unrelated with the printer/multifunction/scanner
> world (I started today to dig the docs).
>
> By the way, I managed to fix the script found in the github repo I linked,
> and maybe the first step for me to get comfortable with the protocol will
> be to play a bit more from python, extending as much as I can the short
> script as a more complete CLI tool with discovery support and all the
> possible options. Then, I could manage to reimplement the protocol as a
> sane backend, which I think is a bit more hard (I need to study sane api
> first).
>
> Beware I'm a student with not-so-much spare time, but I'm interested in
> learning something new and get my canon working at best, and obviously
> contribute as much as I can. I'd like to add or expand wireshark dissectors
> for WSD and BJNP too. We'll see how much I can do.
>
> NB. if in the coming days I start a github repo for a WSD python
> playground, I'll share here the link.
>
> Here are a few links:
> -WS-Discovery (full spec)
> http://specs.xmlsoap.org/ws/2005/04/discovery/ws-discovery.pdf
> -WS-Print (at the bottom of the page there are links to all print & scan
> XML schemas and tech specifications)
> https://docs.microsoft.com/en-us/windows-hardware/drivers/print/ws-print-v1-1
> -WS-Print 2.0 (only printing? 3d printers? have no time to check)
> http://go.microsoft.com/fwlink/p/?LinkId=534008
>
>
>
>
> Il giorno lun 5 feb 2018 alle ore 15:54 Till Kamppeter <
> till.kamppeter at gmail.com> ha scritto:
>
>> On 02/05/2018 01:32 PM, Patrick Roncagliolo wrote:
>> > WDS is a protocol based on http connection with devices such as
>> > scanners, printers and so on. Most of the work is based on a bunch of
>> > XML schemas, that are publicly available on MSDN. Searched a lot, but
>> > for Linux I only found this (https://github.com/al42and/WSDolefuls),
>> > that fails to parse the scanner response, but succeeds to start the scan
>> > job.
>> > I tried to search around SANE for WDS support, but I understood there
>> > isn't.
>> >
>> > Is there a technical motivation behind the lack of support for WDS? or
>> > it's just not the top priority? Could it be possible to create a backend
>> > for this protocol? A lot of Canon printers would work like a charm with
>> > a single good implementation, and I think it would be the same with a
>> > lot of modern hardware. I could try to start a simple implementation if
>> > someone instructs me with the basics of the SANE internal API for
>> > backends and working principles, I'm a student with (not much) free time
>> > and it could be great to help a bit (and learn something) if possible.
>> >
>>
>> This looks like a second driverless (meaning no device/model-specific
>> software or data (aka driver) required) scanning method after PWG's
>> (Printer Working Group, http://www.pwg.org/) IPP Scanning which I
>> mentioned in another post on this list.
>>
>> It seems that WDS exists already for longer time and is already
>> established, so that there are actually several scanners using it. Am I
>> right? Which manufacturers are participating? Does it only work on
>> network devices? Or only on USB? Does it only work on printer/scanner MF
>> devices or also on stand-alone scanners?
>>
>> Patrick, it would be great if you could make a SANE module for that.
>> Another step to making a scanner as easy to connect under Linux as a USB
>> stick. Also great for MF devices which happily print with PWG's
>> driverless IPP printing but do not support IPP scanning.
>>
>>     Till
>>
>> --
>> sane-devel mailing list: sane-devel at lists.alioth.debian.org
>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/sane-devel
>> Unsubscribe: Send mail with subject "unsubscribe your_password"
>>              to sane-devel-request at lists.alioth.debian.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20180205/0e3ec21c/attachment-0001.html>


More information about the sane-devel mailing list