I have to implement a biometric system. Im using ZKTeco LP600 time attendance device and ZKTeco SDK (ZKemKeeper.dll) here its the situation:
When I try to connect to device with no security password(the one who configure in the device > menu > communication > security > 6 digit Password ) I achieve it without any trouble.
But when I put some password things go wrong...I recive the error -6
Im using: bool isConn= axCZKEM1.Connect_Net(devIP,4370);
This is the answer to my own question if someone need the info in the future. After checking the class dictionary (Which I found in a remote place in the zk page) there's a method call SetCommPassword(int password) which you must set before use the Connect_Net method. Theres many strange things in this dll and im still trying to understand some....
Related
I'm currently in the middle of making a game launcher for my Garry's Mod server. Right now, when you press Launch all it does is start Garry's Mod with Process.Start("GarrysMod.exe").
Is it possible for me to start Garrys Mod with launch arguments for example that starts Garrys Mod up and connects to the server when it loads (e.g Process.Start("GarrysMod.exe -connect 1.2.3.4). If anyone knows if this is possible or how to do this, please let me know.
Thanks!
The simplest (and preferred) way of doing this is this:
steam://connect/<IP or DNS name>[:<port>][/<password>]
This will connect the user to the server specified by the IP or DNS name. You do not need to specify anything. Steam will detect on it's own that you want to connect to a GMod Server.
If GMod is already running it will just connect the user, otherwise GMod will be started.
More Information can be found here
Other Methods should not be necessary when using the official steam version of Garry's Mod
I'm using the Neo4j desktop client for a proof of concept. I'm having trouble figuring out how to obtain credentials to call out to the Neo4j server to query from managed code. I'm using the driver, and I'm unsure how to actually obtain/manage credentials with Neo4j. All the places I've looked say that I should be able to run the following command in the terminal of the Browser for Neo4j...but doesn't work.
CALL dbms.security.createUser('username', 'password', false)
I get the following response when try to run that line.
I'm currently using version 3.3.1 for Neo4j, and it's being run as enterprise edition. Can anyone explain what is wrong? Am I missing some step to configure/unlock this API call to add a user?
It's a limitation of the Desktop version :
Anybody & everybody can get a free-for-development use (single-user,
local desktop/ single machine) license via Neo4j Desktop.
It's a single user database, so obviously you are not allow to create.
I've installed a MSPL script to redirect INVITE audio messages to the UCMA sip address
I'm currently writing a UCMA app for Skype for Business to:
receive incoming calls
accept the call
create a conference call
add a trusted participant to the conference
create a recording instance on the trusted participant audio flow to record the conversation
The last thing I need to do is add the To caller URI to the conference call.
I've tried to invite the new participant into the conference using the code examples from this article, but I get an exception saying there are no AvailableMediaTypes in the conversation.
public static async void InviteToConference(string destinationUri)
{
//Create a new conversation for the application endpoint.
_toConversation = new Conversation(_server.ApplicationEndPoint);
var conferenceInviteSettings = new ConferenceInvitationSettings();
conferenceInviteSettings.ConferenceUri = _conferenceUri;
ConferenceInvitation invitation = new ConferenceInvitation(_toConversation, conferenceInviteSettings);
try
{
await invitation.DeliverAsync(destinationUri);
}
catch (InvalidOperationException)
{
// Conversation was terminated while trying to add participant.
}
}
Can someone please show me what I need to do to add / invite a participant into a conference call?
It would be even better if someone could show me how to record a Skype for Business call without the need to create a conference, as a conference can't be forwarded.
Your code looks like the old way (UCMA 3) of doing it. Have you tried this.
e.g.
McuDialOutOptions mcuDialOutOptions = new McuDialOutOptions();
mcuDialOutOptions.ParticipantUri = "sip:alice#contoso.com";
mcuDialOutOptions.ParticipantDisplayName = "Alice";
mcuDialOutOptions.PreferredLanguage = CultureInfo.GetCultureInfo("en-us");
conversation.ConferenceSession.AudioVideoMcuSession.BeginDialOut("tel:+14255551234", mcuDialOutOptions, dialOutCallback, state);
Using this sort of method to record very specific and low traffic should be fine but when you start to scale it up then you are going to hit all sorts of problems.
As for how to do it without a conference:
There is no way to do it fully with the supplied Microsoft API's.
What you have to do is implement, buy or use open source libraries for the following pieces:
sniff network packets
decode RTP/SRTP streams
decode the audio and/or video codecs used between the callers
encode streams into your desired format and save somewhere
To get access to the SRTP streams encryption setup and to figure out what the dynamic payload types for the audio/video codecs used, you also need to know the SDP offered and answered between the calling parties. You also need access to the SIP traffic to determine the calling parties to know who called who. This can be a lot more trouble than what it seems...
To get the SIP/SDP information there are two options that I know of:
Skype/Lync Server SDK (MSPL / Server Application) to see most of the SIP traffic. This is what I've used to implement a recording solution.
Skype/Lync SDN SDK - I haven't used this API but it seems to give access to the SDP so it should work.
If you get all these peices into place then the next problem is you can only "record" (basically "sniff") what you can see. If you can't see the RTP/SRTP traffic you can't record the calls.
So you need to have the sniffer part of the recording software on areas of the network that see the traffic you want to record. For example if you wish to record all PSTN calls, you can have a network spanning port off the Skype mediation servers.
If you wish to record ALL calls, then that gets a lot harder. You most likely need to either:
Force all media trafic to go through a known place (like the Edge server) and put sniffers on the that network.
Have lots of sniffers in strategic areas of the network to capture most RTP/SRTP traffic.
The problems with the above solutions are:
Forcing all the traffic through one point can cause performance issues (like you will see with your conference setup) once load starts to increase. Also forcing external (edge server users) and/or federated calls through this one point can cause a problems. Think edger server user calls to edge server users where the media traffic may not even go into your network at all but live only on the internet. Forcing the trafficing into your network can cause performance issues.
When not forcing all the traffic through one point, you may never be see all skype user to skype user calls depending on your network setup. Calls between Edge server skype users are even more of a problem as the media traffic may not even enter your network at all.
On top of all that there are the general problems of storage management (recording after a while will start taking up a large amount of disk space) and call recording management (e.g. searching for a specific call) and user security around these recordings to deal with. I'm sure I'm missing a lot but those are the basics.
If recording in not going to be a core component, you could just buy a 3rd party call recording solution that supports Lync/Skype.
I am looking for a way to connect to a non-broadcast (hidden) network via C#. This is a new area of development for me. It is a UWP application that needs to be able to manage WiFi connections. I am currently using the Windows.Devices.Wifi namespace to do pretty much everything else, but I don't know how to do the non-broadcast. I have the SSID and the password for the network. I might be missing something, and it could be really easy to do, but I am missing something. Anyone able to help me out?
You can use bssid to get the WiFiAvailableNetwork like I have done:-
await wifiAdapter.ScanAsync();
var wifiList= wifiList.AddRange(wifiAdapter.NetworkReport.AvailableNetworks.ToList());
WiFiAvailableNetwork targetWifi = wifiList.FirstOrDefault(x => x.Bssid.Equals("00:19:a9:7f:08:a0"));
According to the documentation, this can be done with the WiFiAdapter.ConnectAsync method.
public IAsyncOperation<WiFiConnectionResult> ConnectAsync(
WiFiAvailableNetwork availableNetwork,
WiFiReconnectionKind reconnectionKind,
PasswordCredential passwordCredential,
string ssid
)
Connect this Wi-Fi device to a hidden network, with the given passphrase and reconnection policy.
Thanks for reading my question.I wondered if you have any idea about this problem.
I wrote a SOAP-SERVER. Running it at CentOS. Changing Soap-Server's IPAddress for match with CentOS Ifconfig.
Running SOAP-SERVER in CentOS.
Using VisualStudio tools for AddWebReference .It'll auto generate a define object class.In this class,It containt all of function of SOAP-SERVER.
Developer will use these function for do something at ASP.Net-Client.
But,When I want to connect from ASP-NET to more SOAP-SERVER(in other CentOSs).And we musn't using AddWebReference .Because User will use web form for input IPAddress of these SOAP-SERVER.
Do you have any idea? Thanks for helping by anyway.Thanks
You'll have to keep a fixed no. of servers with same IP addresses, otherwise each time you want to access a service you'll have to change the Service proxy classes or service reference in visual studio for that matter.
What you can do is instead of letting the user enter the IP address, display a list all that you have and make him select one.