Echo cancellation with PJSIP on Mac - c++

I'm building an SIP-based Mac application with PJSIP and I can't set the echo cancellation.
Already tried to set PJSUA_DEFAULT_EC_TAIL_LEN at compilation-time to a bigger value than 200 (the default one).
I set the media the EC value through the pjsua_media_config.ec_tail_len field, which should be the same as PJSUA_DEFAULT_EC_TAIL_LEN (here is the PJSIP ref).
Also tried to change pjmedia_echo_flag to every value: PJMEDIA_ECHO_DEFAULT, PJMEDIA_ECHO_SPEEX, PJMEDIA_ECHO_SPEEX (here is the PJSIP ref) but that does not seems to have any effect.
Does someone have already succeed setting EC with PJSIP? Am I missing something?
Thanks a lot!

Actually found a good Echo Canceler library: bdIMAD!
With the 2.4 PJSIP version, you can easily plug bdIMAD, check this link :)

Our experience shows that implementation of media engine in PJSIP is bad. I'd advice to use third party media engine that perfectly integrated with PJSIP - IntegrIT CrystalVu SDK www.integrit.com. It has advanced wideband echo canceller and many other voice enhancements.

Related

SMFL library not loaded error in Mac OS BigSur

Hello I have installed SFML in my M1 chip Bigsur using this tutorial https://www.youtube.com/watch?v=WOyp5n2FmZY and also fixed all the error related to M1 chip.But when I run my project I get this pop ups.
popups
dyld: Library not loaded: #rpath/../Frameworks/vorbisfile.framework/Versions/A/vorbisfile
Referenced from: /Library/Frameworks/sfml-audio.framework/Versions/2.5.1/sfml-audio
Reason: no suitable image found. Did find:
/Library/Frameworks/vorbisfile.framework/Versions/A/vorbisfile: code signature in (/Library/Frameworks/vorbisfile.framework/Versions/A/vorbisfile) not valid for use in process using Library Validation: library load disallowed by system policy
It even showed pop ups for every frameworks I went to settings and gave allow for each of them. But it kept on showing same popup how can I solve this problem in BigSur
I think you will find that the library in question has been quarantined by the operating system. I would suggest:
confirm the quarantine flag ls -l# /path/to/library-or-library_bundle
remove the quarantine flag sudo xattr -d com.apple.quarantine /path/to/library-or-library_bundle
You can also go to your system preferences, then Security & Privacy. On General you see the settings for Allow apps downloaded from:. If you have a message like the one you have mentioned above, it says here "your.framework" was blocked from use because it is not from an identified developer with a button Allow Anyway next to it. Click it.

How to make QSslSocket support SSL using an OpenSSL installation?

I'm trying to run a simple client/server to implement a communication using QSslSocket. I work on Windows (unfortunately) and I use QtCreator for more convenience.
When I try, from the client side, to connect to the server using MyQSslSocket->connectToHostEncrypted(ip, port), I get the following message:
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
When I print the raised error, I get the following one:
QAbstractSocket::SocketError(20)
In the documentation we can find that this error code corresponds to QAbstractSocket::SslInternalError whose the description is:
"The SSL library being used reported an internal error. This is probably the result of a bad installation or misconfiguration of the library."
After some investigations I found that Qt does not provide OpenSSL by itself so I installed it (the binaries, for both 32 and 64 bits versions to be sure) from here https://slproweb.com/products/Win32OpenSSL.html.
During the installation, the dll was copied to C:\Windows\System32 (for the 64 bits). Then I checked that the PATH environment variable does well contain this folder.
At this point I tried again, but I still had the same problem, as if the OpenSSL installation was still not found.
When I print the output of the following calls (in the main function of my client):
qDebug() << QSslSocket::supportsSsl();
qDebug() << QSslSocket::sslLibraryVersionString();
I get the following outputs:
false""
My question is, how to make QSslSocket::supportsSsl() return true ?
If anyone could teach me what I missed, what I am doing wrong and tell me what I should do to be able to make this SSL connection run properly, I would be very grateful.
Fareanor.
PS: Sorry for the long question but I think it is important to clearly expose the problem and the context to help you to easily understand the problem and give me more relevant answers.
Ok,
Thanks to #AlienPenguin and #Macias advices, it was that my version of OpenSSL was too recent.
Finally I have installed the closest available version of the one used for the Qt build (which does make sense, I should have thought of it) which can be found by running the following call:
qDebug() << QSslSocket::sslLibraryBuildVersionString();
Problem solved.
Thanks again.

EDSDK cpp error: 10 EDS_ERR_MISSING_SUBCOMPONENT

I am trying to get started with EDSDK to control my Canon 500D. I'm new to cpp, and windows XP apps and I'm using visual studio. After a great deal of blind trial and error I have finally managed to get the app to compile the basic sample code from the documentation. To do this I have the EDSDK.h, EDSDKTypes.h and EDSDKErrors.h headers in the right places and the EDSDK.dll and EDSDK.lib in the same folder as the code. It seems to be picking these up. I have got the 500D to be recognised by the PC so I believe the USB drivers are there.
The code is just trying to pick up the camera:
EdsError err=EDS_ERR_OK;
EdsCameraListRef cameraList=NULL;
err = EdsGetCameraList(&cameraList);
if(err == EDS_ERR_OK)
{...}
However, when I run this console app the error is picked up as 10 - which suggests, according to the document, that there is a missing subcomponent. This happens both if the camera is connected or not, so I'm thinking this is something missing from the compile. But I am getting nowhere with the documentation.
I have installed the edsdk 2.4 Windows version from a download not the official route, so this may be an issue.
Can anyone help? Specifically how can I find out what the missing subcomponent might be so I might include it. Is this a subcmponent of the build like a header file or something like a driver?
I know, old question but still it might help someone with the same problem.
From the documentation:
All DLLs are required in order to execute an EDSDK client application.
All of the modules in the DLL folder must be copied into the same folder where the EDSDK client application is in.
This means you'll have to have all DLLs beside your *.exe. Namely these DLLs:
DPPDLL.dll
DPPLibCom.dll
DPPRSC.dll
EDSDK.dll
EdsImage.dll
Mlib.dll
Ucs32P.dll

how to do cryptography (digital signature)in linux

I have done PKCS_7_ASN_ENCODING | X509_ASN_ENCODING in windows using wincrypt and I have to verify signature in linux. Can anyone tell by about good light crypto api on linux.
On searching I found http://home.gna.org/cryptodev-linux/ and on compiling it i am getting this error crypto/hash.h: No such file or directory
This error occurs because you don't have the kernel headers for your system/kernel, therefore when you try to compile, it's unable to find those headers.
More on your end goal, do you want to validate whether a certificate is signed by someone else's certificate?
If so, and if you're open to use OpenSSL, take a look at this answer.
NSS
I would either go with GPG (it also has its own API, just look on the side) or Beecrypt which is probably a little easier to understand but not as complex in its functionality

How can i know what is the release of osCommerce?

how can i know what is the release of osCommerce? is the release written in any file of the package?
Regards
Javi
in
includes/application_top.php
there should be something like:
// define the project version
define('PROJECT_VERSION', 'osCommerce 2.2-MS2');
Oscommerce version is also shown in Admin, using Server Info in Tools. It shows at the top of the server info page....cheers
If you look into 2.3.3 oscommerce version code.
// define the project version --- obsolete, now retrieved with tep_get_version()
define('PROJECT_VERSION', 'osCommerce Online Merchant v2.3');
in application_top.php above line states that define('PROJECT_VERSION', 'osCommerce Online Merchant v2.3'); is obsolete
This is what is expected
$current_version = tep_get_version();
echo $current_version;
Look into tep_get_version(); code
version is actually in DIR_FS_CATALOG . 'includes/version.php'
2.3.3