Хотелось бы услышать мнение специалистов и/или разработчиков по поводу реализации UPNP на сабже. Дело вот в чем: пробовал использовать библиотеку от cybergarage под java для управления роутером. Удается получить описание и т.п., НО! при попытке выполнить какой-нибудь action получаю следующее (для примера пробуем получить внешний IP):
POST /upnp/control3 HTTP/1.1
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.1.1:80
Content-Length: 285
SOAPACTION: "urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress"
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:GetExternalIPAddress xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
</s:Body>
</s:Envelope>
HTTP/1.1 500
Content-Type: text/xml; charset="utf-8"
Server: IGD-HTTP/1.1 UPnP/1.0 UPnP-Device-Host/1.0
Content-Length: 433
EXT:
Connection: close
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>401</errorCode>
<errorDescription>Invalid Action</errorDescription>
</UPnPError></detail></s:Fault></s:Body></s:Envelope>
То есть на законную запрос получаю ответ "Invalid Action". Вопрос почему?
логи получены тестовой программой того же cybergarage "Control Point" (
http://www.cybergarage.org/net/upnp/java/index.html)