pjsip callbacks in C++

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

 



I have one application in c++. My solution  is not the
most pretty, but it works just fine. I have one file
called app_main.cpp that has all my callback functions
in plain C that I register with pjsua. When the call
comes in (on_incoming_call) I use
pjsua_call_set_user_data to save the pointer to the
object that I have my callback function (the real
one). All my callbacks that are inside app_main.cpp
only get the address of the object with
pjsua_call_get_user_data and then call the real
callback function from this object. Bellow is one
example for the callback that receives dtmf:

static void on_dtmf_digit(pjsua_call_id call_id, int
digit )
{	
void *tpjcCallPtr;
tpjcCallPtr = pjsua_call_get_user_data(call_id);
	((TPJCall*)tpjcCallPtr)->ReceiveDTMF((char)digit);
}


My object that holds the code for the callback is of
type TPJCall that has a member function called
ReceiveDTMF. It doesn't even need to be static or
anything.

Thiago

> Hi!
> 
> I'm trying to add pjsip to a QT C++ application.
> This gives me headaches 
>   as I have no clue how to make callbacks in C++.
> There are lots of 
> different approaches (static member function as
> wrapper, templates ...).
> 
> I tried the static member function wrapper with
> logging callbacks but my 
> application crashes ~50%.
> 
> I wonder if someone have practical tips for my how
> to connect pjsip's 
> callbacks to member functions.
> 
> thanks
> klaus
> 
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
> 
> pjsip mailing list
> pjsip at lists.pjsip.org
>
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> 



      Abra sua conta no Yahoo! Mail, o ?nico sem limite de espa?o para armazenamento!
http://br.mail.yahoo.com/



[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