I would like to retrieve alarms by cameraId.I can't see any usefull information for filtering by CameraId.Is it possible to filter alarms by cameraId?

I think the target you need to use is objectId. (I am not sure but hope it fits.)

http://doc.developer.milestonesys.com/html/index.html?base=miphelp/namespace_video_o_s_1_1_platform_1_1_proxy_1_1_alarm.html#a8d56f2168e6b2e9560be6bda2e5d4854&tree=tree_search.html?search=target

enum VideoOS.Platform.Proxy.Alarm.Target

The target is the data field on which both the filter conditions and order by statements are constructed.

Enumerator:

LocalId

Id

State

Priority

Timestamp

SourceName

Name

AssignedTo

Type

RuleType

Location

Message

CustomTag

VendorName

ObjectValue

Description

ObjectId

Modified

PriorityName

Category

CategoryName

StateName

Bo, The following soap envelop

<soapenv:Envelope xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:cen=“http://videoos.net/2/CentralServerAlarmCommand” xmlns:vid=“http://schemas.datacontract.org/2004/07/VideoOS.Platform.Proxy.Alarm”>

soapenv:Header/

soapenv:Body

cen:GetAlarmLines

  <cen:token>TOKEN#6b27d525-1ccd-46e0-8276-919f01b12919#rthd-xms01.rthd.intra//ServerConnector#</cen:token>

 <cen:maxCount>10</cen:maxCount>

 <cen:filter>

  <vid:Conditions>

    <vid:Condition>

     <vid:Operator>Equals</vid:Operator>

     <vid:Target>ObjectId</vid:Target>

     <vid:Value>1</vid:Value>

    </vid:Condition>

  </vid:Conditions>       

 </cen:filter>

</cen:GetAlarmLines>

</soapenv:Body>

</soapenv:Envelope>

throws this answer :

<s:Envelope xmlns:s=“http://schemas.xmlsoap.org/soap/envelope/”>

<s:Body>

<s:Fault>

 <faultcode xmlns:a="[http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher](http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher)">a:DeserializationFailed</faultcode>

 <faultstring xml:lang="fr-FR">Le module de formatage a généré une exception en tentant de désérialiser le message : Une erreur s'est produite en tentant de désérialiser le paramètre [http://videoos.net/2/CentralServerAlarmCommand:filter](http://videoos.net/2/CentralServerAlarmCommand:filter). Le message InnerException était 'Aucun contenu enfant de l'élément Value provenant de l'espace de noms [http://schemas.datacontract.org/2004/07/VideoOS.Platform.Proxy.Alarm](http://schemas.datacontract.org/2004/07/VideoOS.Platform.Proxy.Alarm) ne peut être désérialisé en tant qu'objet. Utilisez XmlNode\[\] pour désérialiser ce modèle de XML.'. Pour plus d'informations, consultez InnerException.</faultstring>

</s:Fault>

</s:Body>

</s:Envelope>

I don’t know how I can send correct value for condition.

Do you have some examples?

The value would be the GUID (the camera GUID in this case).

Off course, I tried with a guid but the error is always the same.

For example, the following request:

<soapenv:Envelope xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:cen=“http://videoos.net/2/CentralServerAlarmCommand” xmlns:vid=“http://schemas.datacontract.org/2004/07/VideoOS.Platform.Proxy.Alarm”>

soapenv:Header/

soapenv:Body

cen:GetAlarmLines

  <cen:token>TOKEN#7cf096c5-8617-47e6-a3bc-03a46f7b55bd#rthd-xms01.rthd.intra//ServerConnector#</cen:token>

 <cen:maxCount>10</cen:maxCount>

 <cen:filter>

  <vid:Conditions>

    <vid:Condition>

     <vid:Operator>Equals</vid:Operator>

     <vid:Target>ObjectId</vid:Target>

     <vid:Value>58dd92f0-e02b-4b12-aad6-f474d9999166</vid:Value>

    </vid:Condition>

  </vid:Conditions>       

 </cen:filter>

</cen:GetAlarmLines>

</soapenv:Body>

</soapenv:Envelope>

is giving me the anwser :

<s:Envelope xmlns:s=“http://schemas.xmlsoap.org/soap/envelope/”>

<s:Body>

<s:Fault>

 <faultcode xmlns:a="[http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher](http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher)">a:DeserializationFailed</faultcode>

 <faultstring xml:lang="fr-FR">Le module de formatage a généré une exception en tentant de désérialiser le message : Une erreur s'est produite en tentant de désérialiser le paramètre [http://videoos.net/2/CentralServerAlarmCommand:filter](http://videoos.net/2/CentralServerAlarmCommand:filter). Le message InnerException était 'Aucun contenu enfant de l'élément Value provenant de l'espace de noms [http://schemas.datacontract.org/2004/07/VideoOS.Platform.Proxy.Alarm](http://schemas.datacontract.org/2004/07/VideoOS.Platform.Proxy.Alarm) ne peut être désérialisé en tant qu'objet. Utilisez XmlNode\[\] pour désérialiser ce modèle de XML.'. Pour plus d'informations, consultez InnerException.</faultstring>

</s:Fault>

</s:Body>

</s:Envelope>

So i don’t know how to format condition value to a be valid.

Do you have any idea?

I think you are missing the type for the Value parameter. So add something like this in the main Envelope node:

xmlns:inst=“http://www.w3.org/2001/XMLSchema-instance” xmlns:sch=“http://www.w3.org/2001/XMLSchema

And then change the Value node to something like this:

<vid:Value inst:type=“sch:string” >58dd92f0-e02b-4b12-aad6-f474d9999166</vid:Value>

If this does not work please try to do a trace of communication from Smart Client and compare to your code.

Thank’s Bo.

It works!