Porting requirements for OS functionality to run only PJMEDIA_SESSION instance

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I'm working with Jan on this PJSIP porting to the embedded system and I
have a complicated question. I'll try to give you brief overview of the
situation and sketch out our problem.

Our embedded system consists of 2 Nios2 CPUs. One of them is running
uCLinux OS, the other one is without OS. These CPUs are sharing one
memory chip, but there is a rule set, that they do not interfere with
the memory area of the opposite one. To share data, there's a
proprietary interface implemented. It works in a way, that only a
pointer and size to the memory of the other CPU is exchanged and a
attach/detach mechanism ensures the data consistency.

We want to use the PJSIP project to provide the VoIP functionality on
this system. The problem is, that only the uClinux has ethernet
connectivity, but it's rather loaded with other tasks. So we originally
planed to split the PJSIP between 2 CPUs - SIP and media_transport part
of pjmedia would run on the uClinux, while the rest of the pjmedia
library (media_session) would run on the nonOS CPU. We already ported
the pjlib library to the nonOS CPU, excluding the network functionality.
But then we find out, that splitting the pjmedia library could be a
little tricky. Because there's a lot of callback functions and other
dependencies inside the pjmedia library, and we would have to substitute
them with some virtual layer, that would communication agent between
these CPUs over our proprietary communication interface.

So I want to ask, if you think this is a good approach or whether we
should find some other way, how to get the stuff working. Maybe
implementing the virtual ethernet interface on the nonOS CPU and runnig
the PJSIP in one piece would be more easy and secure way? The uClinux
CPU would just read data from RTP and SIP sockets and forward them to
the nonOS CPU. Or even something completely different?

I'd deeply appreciate your suggestions
Pascal Cassinelli



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux