[asterisk-dev] Implementation using libpri and socketpair()

Paulo Garcia paulo.astdev at gmail.com
Wed Feb 7 11:30:18 MST 2007


Hi,

in my own channel, I'm implementing ISDN support using Libpri. The
implementation is completely independent from zaptel then I'm trying to do
all communications between my hardware and libpri using socketpair function.

The idea is to create a socketpair, passing fd[0] to pri_new function and
writing to fd[1] to pass data to libpri. So far so good...

To receive data from libpri, I have a thread checking for all file
descriptors fd[1] using select() function and when I receive something, I
pass it to my card. This approach also works well but sometimes I receive
two messages (from libpri) in only one read() call. I think this is because
of libpri writes two messages so fast then when the read is called, there
are already two messages in socket buffer...

How can I avoid this behavior? Maybe using another way different of
socketpair ? This communication will be used only inside the same process,
between different threads.

Any path or idea will be appreciated.


Regards


Paulo Garcia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-dev/attachments/20070207/0bc21819/attachment.htm


More information about the asterisk-dev mailing list