playback on NVR according to onvif standard - c#

i have a hikvission NVR that connecting with 1 camera, all recorded videos are saved on nvr.
I used the HIK SDK to connect and playback successfully on the NVR but my boss want to use onvif method to find and playback.
I searched for a week how to playback on NVR using onvif but found nothing. i try using onvif device manager but it show only camera, not NVR.
p/s: i am using ispy for development and found some clues.
my clues:
1. GetServices
2. GetRecordingSummary
3. FindRecordings
4. GetRecordingSearchResults
5. GetReplayUri
i tried implement base on document and code in onvif device manager software but not success
http://www.onvif.org/onvif/ver10/recording.wsdl
http://www.onvif.org/ver10/replay.wsdl
how to implement 5 step above ?
sorry for the dumb question but i am new with onvif :(

Search a lib that match the language you know. You can search here:
https://www.onvif.org/resources/
In each lib, they support method on Onvif specification, include: GetServices, GetRecordingSummary, FindRecordings, GetRecordingSearchResults, GetReplayUri, ... You can write some codes to do this. (Of course, you need a Onvif device (Onvif NVR, Onvif Camera) to comunicate with)
TIP: If you want to know what the Onvif server sent or received to Onvif device, You can use Wireshark App to catch the packet. I believe you will know more methods

Related

RaspberryPi bluetooth le application always asks for pairing on iOS

Im currently working on a Mobile application which connects to a Ble peripheral and reads data from it. In order to test if the connection is working. I have written a small C# application that utilizes the RaspberryPi4 bluetooth via DBus with BlueZ.
Everything works except that when connecting to iOS a pairing request is issued by the raspberry, eventhough I do not have any encrypted characteristics.
I have read on the Apple forum that this is because bluetoothd is automaticly trying to read the battery level of the phone. But sadly even after the fix suggested there I get the pairing requests.
Does anyone have an idea how I could fix this?
Thanks in advance
I believe disabling this bluez config option in /etc/bluetooth/main.conf would prevent the pi from trying to read characteristics from the iOS device, if that is the issue:
# Do reverse service discovery for previously unknown devices that connect to
# us. For BR/EDR this option is really only needed for qualification since the
# BITE tester doesn't like us doing reverse SDP for some test cases, for LE
# this disables the GATT client functionally so it can be used in system which
# can only operate as peripheral.
# Defaults to 'true'.
#ReverseServiceDiscovery = true
Check the connection min and max intervals, they shall be compliant with the iOS guidelines: https://developer.apple.com/accessories/Accessory-Design-Guidelines.pdf (page 180 - 40.6 Connection Parameters).
You can tune them like this:
echo "30" > /sys/kernel/debug/bluetooth/hci0/conn_min_interval
echo "45" > /sys/kernel/debug/bluetooth/hci0/conn_min_interval
The default values worked for me: [24,40]

How to scan for another device through Bluetooth- Xamarin

I'm developing Xamarin application using Visual Studio 2019. I have to connect to another device through Bluetooth and send some data and receive acknowledgement back. Tried these two samples out
https://github.com/msthrax/BLEApp
and
https://github.com/didourebai/BLEPluginDemo.
But didn't help me while scanning for nearby Bluetooth devices, since the below codes are not giving expected result respectively..
1.
listView_DeviceList.ItemsSource = CrossBluetooth.Adaptor.GetListOfDiscoveredDevices();
and
2.
adapter.DeviceDiscovered += (s, a) =>
{
deviceList.Add(a.Device);
};
Both Bluetooth and location turned on in my devices. Can anyone let me know the possibilities of problem here. I don't have any build errors in both of the above samples. Whereas, I have one surprise also. Below line is giving proper result, which is of no use for me currently.
listView_PairedDeviceList.ItemsSource = CrossBluetooth.Adaptor.GetPairedDevices();
After enabling the Location Permission for the app(earlier, I turned on Device Location, but we should allow the app to get device location), all my above problems are solved out.

Why is the online enrolling of ZKTeco time attendance terminal returning result=6?

I am using a ZKTeco Time Attendance Terminal with these details:
Model: K50-A
Platform: JZ4725_TFT
Firmware: Ver 6.60 May 25 2018
FP Algorithm: 10
I can perform almost all operations found in the demo application, except the online enrolling. Whenever I try to enroll fingerprints to a user, the device just blinks an this error shows up in the application status:
Enroll finger failed. Result=6
From what I found for the GetLastError() method in the SDK doc, it probably means, Wrong Password. But I have already connected with the device with commKey and all other operations are working.
What error is it? How can I fix it?
Share the program you used for connecting the device, and SDK call used for enrolling fingerprint in the comment to have a better understanding. Anyway, your issue looks like firmware issue. You have to get your vendor to give you the updated firmware as per your mother board version (ZKMxxx/ZLMxxx). The bad thing is, your vendor might not have this knowledge to understand at SDK level. So, all the best.

Twilio mms from an Android phone within Canada using Unity3D

Target Platform : Samsung S6 - Android
Development base : Unity3D using C#
Intention :
Send a picture (MMS) shot within an app to any desired phone number within Canada. This app is supposed to be preloaded to a single Samsung S6.
Questions :
I was unable to find any Unity samples within you SDK, however I was wondering if anyone knows Unity samples for my intended use. However planned to use these scripts as first of reference.
Though the Android Phone number which is used to send MMS can be associated with Twilio the receiver would have no association with Twilio as the sender phone number is not something we would know until the photo is taken - hence is this a concern?
I see that from from the API call
// Send a new outgoing MMS by POSTing to the Messages resource */
client.SendMessage(
"YYY-YYY-YYYY", // From number, must be an SMS-enabled Twilio number
person.Key, // To number, if using Sandbox see note above
// message content
string.Format("Hey {0}, Monkey Party at 6PM. Bring Bananas!", person.Value),
// media url of the image
new string[] {"https://demo.twilio.com/owl.png" }
);
the fourth and final parameter is a URL link. Can link of the image be from any server or should it only be from twilio's server?
Thank you very much for time. Highly appreciate it.
Here you are. As far as I know this works like a charm.

Shoretel SDK C# - Call Recordings

My company is using ShoreTel's SDK to record inbound and outbound calling. We are using LineRecord to handle the recording; however, it is storing the recordings on both the phone server and in the users voice mail. The documentation says there is a way to prevent it from recording in both but doesn't say exactly how.
The code I am using for the LineRecord is:
m_STMLCtl.LineRecord(nLineID, nCallID, RoutePoint, m_STMLCtl.LineGetAddress(nLineID));
The ShoreTel STMLBrowser test application has this code:
STMLCtl.LineRecord(nLineToRecordFrom, nCallID, strExtensionToCall, strContext);
How do I prevent the voice recording from recording to the user's voice mail?
The recording function just initiates a call to the specified extension. Whatever answers that call is responsible for recording the audio. If your recording is winding up in voice mail, then somehow the call is getting to the voice mail extension. If the call hits voice mail, then the recording will be saved in the mailbox of the extension specified in strContext. The only other option is to send the call to a route point and record the audio yourself.
As a note, the better place to ask for help is the ShoreTel Developer Network group.

Categories