SIP and ZRTP objective c libraries - ios6

I want to use SIP and ZRTP protocols in my application . I have not found one objective c library/framework which has both of these implemented..
Although I'm aware of these protocols that are available separately like idoubs which uses SIP or icall which has ZRTP integration. I also went through the PJSIP - ZRTP integration from the site http://www.zrtp.org/pjsip-integration, but that integration is also somehow not happening. it shows errors
I want to know is there any other available approach to this problem.
EDIT : I have found a couple of more libraries but they all have lots of errors
https://github.com/traviscross/libzrtp
http://www.qutecom.org/browser/verona/oRTP/src/zrtp.c?rev=519
I'm using doubango framework for VoIP and video calling and i want to integrate zrtp for that framework. I'm stuck as to how to implement this feature? Any help would be more than appreciated.

Given that in SIP is media agnostic, why do you need a framework that uses both?
Use whatever ZRTP implementation you like, reserve the ports you need, and give the SIP implementation the constructed SDP for your INVITE.

Related

Running Node.js on STM32

Iam working yet with C program on STM32 microproc, what contains a web server, accesible by the user via web gui(HTML and javascript files). The web gui part became more complex, and it needs higher level operations.
The questions: is it possible to embed a node.js program with some node modules? Does it work with the C webserver, or the node program have to make the webserver, and communicate with the C program?
Or there is an other solution what is better in this case?
This question maybe seems dumb, but i didnt find documentation about it.
After a research I found some solutions:
Node.js for Embedded Systems
The book can then guide you to jerryscript which:
is a lightweight JavaScript engine for resource-constrained devices
such as microcontrollers
You can find there that it's also used with the STM32-Discovery board.
Node.js on clientside
This article guides to Browserify which allows to run node on clientside.
Just make it simpler
You could use HTTPD implementation shipped with LwIP. There is a script called makefsdata which allows to convert html, js, css ... files into c-arrays. This implementation also supports POST method.

Custom protocol support

I am not finding documentation for custom protocol support.
From what I understand, Gatling has core engine that does scheduling, thread management etc, and protocol support is designed as an Actor ?
I am trying to develop a custom protocol (thats basically a shell script that will talk to an external service). The latest reference documentation does not seem to have any reference to how to do this ? Any pointers will be greatly appreciated.
If you need to stress test something that is implemented in a shell script, then Gatling probably isn't the best fit. Gatling is designed for stress testing networking protocols. So unless you can duplicate what your shell script is doing in Gatling expressed in networking protocols, you then might want to use something else.
Secondly, if you did implement it, I would check with the core developers of Gatling if it's something that they would consider including (use a github issue to ask). Since the applications of this might not be widespread, they may choose to not include it in their project. If that's the case you would have to either run your own fork with the implementation or add some sort of plugin architecture to Gatling for 3rd part extensibility.
So my suggestions are:
Decompose your shell script into the specific network protocol parts you're interested in stress testing implementing in Gatling.
Use a different tool that's designed to running multiple shell scripts at once for stress testings. Something like GNU Parallel if you're on a Linux box.
Implement it yourself. There's no documentation on how to do this. However a good starting example would be the JMS Protocol Implementation to give you an idea of all that's involved.

is dronekit-python api only for Mavproxy?

This is the website of dronekit-python api.
http://python.dronekit.io/
I checked the examples and also online git repo, it seems all examples are built on top of mavproxy. and API itself doesn't have mavlink communication capability.
I wonder if there are any other use cases for droneapi.
and if I don't want to use mavproxy, does it mean I have to write my own mavlink layer?
Yes, using the current release implementation (1.x) everything is built on MAVProxy.
I understand that the intention is that in future you will not necessarily have to run your apps from within a MAVProxy console (I don't know if the actual dependency on MAVProxy is being removed - I supsect not!)
starting with v2 of dronekit-python we are MAVProxy free, please follow the migration guides http://python.dronekit.io/guide/migrating.html
dronekit-python doesn't need to run in mavproxy. You could use a custom mavlink communication layer to implement the API if you wanted.
(I find the implementation as a mavproxy module a little suboptimal for users in that it can be a bit confusing and a little bit weirder to write code that uses the API, but it does have the advantages of allowing the use of other mavproxy modules (maps, joystick control, whatever) along with basic mavproxy functionality like forwarding, and it can also be a faster path for development: It's probably easier to connect dronekit-python to mavproxy than to write a brand new, untested communication layer that does 50% of what mavproxy does. I'm guilty of doing the same thing to get something working fast.)

I'm searching a cgi lib in C to build a restful web service

I want to build a restful (CoAP) web service which can execute c code to handle events.
Therefore I'm searching a lib which provides me with a rest api in C and cgi similar to
restcgi which is sadly in c++ or CGI-Simple which is in perl.
The server is running on a embedded device so it has very limited resources and the services will be accessed only by machines.
Thank you very much.
You may be interested in Raphters framework and its architecture. It's pretty small, so you can examine the code, the framework itself can be used as a FastCGI backend for some web server, e.g. for nginx.
I have recently came across one quite interesting CoAP library which uses libevent. You will aslo want to check Klone embeddable HTTP server by the same guys at KoanLogic. I have previously looked at libcoap, but it didn't find it very usable at the time. You may also wish to try using either libuv, libev or libevent. But I guess it's probably gonna be much easier to adopt some of the code from WT repository and get your CoAP/HTTP server done.

Adding a TLS/SSL layer to communications..?

My stuff is made with several components among which some are written in C. As I would like to add some security features, I am thinking of communicating over an SSL/TLS layer.
Could you advise me some good lib to do this (if possible) ?
GnuTLS (Please note that it is mainly LGPL not GPL so you can link to it). At least I prefere it's API over OpenSSL.
Also there is Mozilla's NSS.
We use axTLS which works great on both our server (.NET) and our embedded systems (Linux and uClinux). We had problems getting OpenSSL to work well on uClinux.
axTLS is not as feature complete as OpenSSL yet so make sure it meets your requirements before using it.
How about OpenSSL?
I would suggest not spending your time trying to implement an SSL function in your app. Instead, you could just use an existing SSL-tunnel software, which creates an SSL tunnel in front of your existing socket application.
Internet --- [SSLTunnel] --- Your App
For example, you could tell the SSL tunnel to listen on port 443 (https) and forward all decrypted packets to port 80 (http). For your custom application, it will just see decrypted packets.
There are plenty of free apps that do it. Just google for one.
CyaSSL would be an excellent choice to consider. This is an embedded SSL library written in C which has been optimized for speed and size. It can be up to 20 times smaller than OpenSSL, and can be quite a bit faster as well.
Among the feature list are a minimum size of 30-100kb and an OpenSSL compatibility layer. The full feature list can be found on the yaSSL website here:
http://www.yassl.com/yaSSL/Products_cyassl.html.
It is dual licensed under the open source GPLv2 as well as a commercial license (for support). It is updated very frequently with new features. I think one of the cool features is support for the RABBIT and HC-128 stream ciphers from the eStream project.

Resources