Search code examples
sonysony-camera-api

Can't Connect to Sony Camera Remote API


I'm developing apps on iOS.

I try to connect Sony Camera Remote API and I can't find the right device description file. So I can't use the API.

I try to connect with follow steps:

  1. Connect mac to camera over WiFi:

     Open my camera menu ——> Wifi ——> Send to Smartphone ——>
     Select on Smartphone ——> connect mac to camera over access point
    
  2. Use SSDP to discover the camera

     Use the UdpRequest provided by sony to send ssdp-discovery message.
    
     Then the message send successfully.
    
     Then I received the follow message:
    
             CFSocket receiveData response = NOTIFY * HTTP/1.1
             HOST: 239.255.255.250:1900
             CACHE-CONTROL: max-age=1800
             LOCATION: http://192.168.122.1:64321/DmsDesc.xml
             NT: upnp:rootdevice
             NTS: ssdp:alive
             SERVER: UPnP/1.0 SonyImagingDevice/1.0
             USN: uuid:00000000-0000-0010-8000-a408ea87692a::upnp:rootdevice
             X-AV-Physical-Unit-Info: pa=""; pl=;
             X-AV-Server-Info: av=5.0; hn=""; cn="Sony Corporation";
             mn="SonyImagingDevice"; mv="1.0"; 
    
    
     In the Development Guide, the response should seems like this:
    
             HTTP/1.1 200 OK
             LOCATION: http://192.168.122.1:64321/dd.xml
             CACHE-CONTROL: max-age=1800
             EXT:
             SERVER: OS/version UPnP/1.0 product/version ST: urn:schemas-sony-com:service:ScalarWebAPI:1
    
  3. I campared DmsDesc.xml with dd.xml

     Main part of DmsDesc.xml:
    
             DMS-1.50
             urn:schemas-upnp-org:device:MediaServer:1
             ILCE-7M2
             Sony Corporation
             http://www.sony.com/
             SonyDigitalMediaServer
             SonyImagingDevice
             http://www.sony.net/
             uuid:00000000-0000-0010-8000-a408ea87692a
    
             urn:schemas-upnp-org:service:ContentDirectory:1
             urn:upnp-org:serviceId:ContentDirectory
             /CdsDesc.xml
             /upnp/control/ContentDirectory
             /upnp/event/ContentDirectory
    
             urn:schemas-upnp-org:service:ConnectionManager:1
             urn:upnp-org:serviceId:ConnectionManager
             /CmsDesc.xml
             /upnp/control/ConnectionManager
             /upnp/event/ConnectionManager
    
             urn:schemas-sony-com:service:DigitalImaging:1
             urn:schemas-sony-com:serviceId:DigitalImaging
             /DigitalImagingDesc.xml
             /upnp/control/DigitalImaging
    

dd.xml in the Development Guide should like this:

<av:X_ScalarWebAPI_DeviceInfo xmlns:av="urn:schemas-sony-com:av">
<av:X_ScalarWebAPI_Version>1.0</av:X_ScalarWebAPI_Version>
<av:X_ScalarWebAPI_ServiceList>
<av:X_ScalarWebAPI_Service>
<av:X_ScalarWebAPI_ServiceType>guide</av:X_ScalarWebAPI_ServiceType>
<av:X_ScalarWebAPI_ActionList_URL>http://192.168.122.1:8080/sony</av:X_ScalarWebAPI_ActionList_URL>
</av:X_ScalarWebAPI_Service> <av:X_ScalarWebAPI_Service>
<av:X_ScalarWebAPI_ServiceType>camera</av:X_ScalarWebAPI_ServiceType>
<av:X_ScalarWebAPI_ActionList_URL>http://192.168.122.1:8080/sony</av:X_ScalarWebAPI_ActionList_URL> </av:X_ScalarWebAPI_Service>
</av:X_ScalarWebAPI_ServiceList></av:X_ScalarWebAPI_DeviceInfo>

My Question is:

  1. How to get the right device description file.

  2. How to connect Sony Camera Remote API, demo will be perfect.

  3. if sony engineer can see my question, renew the official demo please.It's too old.


Solution

  • I found the answer by myself.

    To connect sony camera remote API, we must set the camera as an caccess point.

    There are two way to do this.

    1. Menu--->Wi-Fi--->tab1--->send to smartphone
    2. Menu--->Application--->Application List--->start the app named "Smart Remote Embedded"

    When smartphone connect to camera by the first way, the response is like what mentioned in my question.

    When smartphone connect to camera by the second way, the response main part is below. It's the same as development guide:

    <av:X_ScalarWebAPI_DeviceInfo xmlns:av="urn:schemas-sony-com:av">
          <av:X_ScalarWebAPI_Version>1.0</av:X_ScalarWebAPI_Version>
          <av:X_ScalarWebAPI_ServiceList>
            <av:X_ScalarWebAPI_Service>
              <av:X_ScalarWebAPI_ServiceType>guide</av:X_ScalarWebAPI_ServiceType>
              <av:X_ScalarWebAPI_ActionList_URL>http://192.168.122.1:8080/sony</av:X_ScalarWebAPI_ActionList_URL>
              <av:X_ScalarWebAPI_AccessType/>
            </av:X_ScalarWebAPI_Service>
            <av:X_ScalarWebAPI_Service>
              <av:X_ScalarWebAPI_ServiceType>accessControl</av:X_ScalarWebAPI_ServiceType>
              <av:X_ScalarWebAPI_ActionList_URL>http://192.168.122.1:8080/sony</av:X_ScalarWebAPI_ActionList_URL>
              <av:X_ScalarWebAPI_AccessType/>
            </av:X_ScalarWebAPI_Service>
            <av:X_ScalarWebAPI_Service>
              <av:X_ScalarWebAPI_ServiceType>camera</av:X_ScalarWebAPI_ServiceType>
              <av:X_ScalarWebAPI_ActionList_URL>http://192.168.122.1:8080/sony</av:X_ScalarWebAPI_ActionList_URL>
              <av:X_ScalarWebAPI_AccessType/>
            </av:X_ScalarWebAPI_Service>
          </av:X_ScalarWebAPI_ServiceList>
        </av:X_ScalarWebAPI_DeviceInfo>