who have the sample souce code use C++ call PJSIP?

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

 



You have to define a pointer to the callback object (as global variable)
and you have to create a callback object (and assign this object to the
global callback pointer) before usage.

I think you should read some basics about using c-style callbacks in
C++, e.g: http://www.newty.de/fpt/callback.html#example2

regards
klaus

Liusheng schrieb:
> I have an compile error as follow, when I used klaus's class PjCallback.
>  
> main.cpp:(.text+0x8a): undefined reference to `globalPjCallback'
> main.cpp:(.text+0xa4): undefined reference to `PjCallback::PjCallback()'
> main.cpp:(.text+0xbf): undefined reference to 
> `PjCallback::on_incoming_call_wrapper(int, int, pjsip_rx_data*)'
> main.cpp:(.text+0xc9): undefined reference to 
> `PjCallback::on_call_media_state_wrapper(int)'
> main.cpp:(.text+0xd3): undefined reference to 
> `PjCallback::on_call_state_wrapper(int, pjsip_event*)'
> collect2: ld returned 1 exit status
> make: *** [main.o] Error 1
> 
>  
> Actually, I have defined all this function in Pjcallback class, and call 
> them as follow:
> /* Init pjsua */
>     {
>         pjsua_config cfg;
>         pjsua_logging_config log_cfg;
>         PjCallback *pjCallback;
>         globalPjCallback = pjCallback = 0;
>         pjCallback = new PjCallback();
> 
>         pjsua_config_default(&cfg);
>         cfg.cb.on_incoming_call = 
> PjCallback::on_incoming_call_wrapper;         //&on_incoming_call;
>         cfg.cb.on_call_media_state 
> =PjCallback::on_call_media_state_wrapper;   // &on_call_media_state;
>         cfg.cb.on_call_state = 
> PjCallback::on_call_state_wrapper;              //&on_call_state;
> 
> Can you help me?
>  
> my make file as follow:
>  
> #Modify this to point to the PJSIP location.
> PJBASE=/home/ym/legacy_project_here/pjproject-0.9.0
> include $(PJBASE)/build.mak
> CC      = $(APP_CC)
> CC      = g++
> LDFLAGS = $(APP_LDFLAGS)
> LDLIBS  = $(APP_LDLIBS)
> CFLAGS  = $(APP_CFLAGS)
> CPPFLAGS= ${CFLAGS}
>  
> # this is the line you will need to build the binary.
> all: PjSourcePort.o PjSinkPort.o PjCallback.o main.o
> PjSourcePort.o: PjSourcePort.cpp
> PjSinkPort.o: PjSinkPort.cpp
> PjCallback.o: PjCallback.cpp
> main.o: main.cpp 
>  $(CC) -o $@ $< $(CPPFLAGS) $(LDFLAGS) $(LDLIBS)
> clean:
>  rm -f PjSourcePort.o PjSinkPort.o PjCallback.o  main.o sipgw
>  
>  
>  
> Thanks very much
>  
>  
> 
> 
>  > Date: Fri, 25 Jul 2008 16:27:38 +0200
>  > From: klaus.mailinglists@xxxxxxxxx
>  > To: pjsip at lists.pjsip.org
>  > Subject: Re: who have the sample souce code use C++ call PJSIP?
>  >
>  >
>  > You can take a look at QjSImple. It is Qt based (C++), thus you can get
>  > an idea how it works. (With C++ you need some kind of wrapper for the C
>  > callbacks, otherwise there is no difference if you program in C or C++)
>  >
>  > http://www.ipcom.at/index.php?id=560
>  >
>  > regards
>  > klaus
>  >
>  > Liusheng schrieb:
>  > > Hi,ALL:
>  > >
>  > > I want to develop c++ class to call API of PJSIP, for example;
>  > > pjsua_call_make_call.
>  > >
>  > > Does someone have such example souce code? could you help me?
>  > >
>  > > Thanks
>  > >
>  > > 
> ------------------------------------------------------------------------
>  > > ???Hotmail???????? Windows Live Mail? ?????
>  > > <http://get.live.com/wl/all>
>  > >
>  > >
>  > > 
> ------------------------------------------------------------------------
>  > >
>  > > _______________________________________________
>  > > 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
>  >
>  > _______________________________________________
>  > 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
> 
> 
> ------------------------------------------------------------------------
> MSN????????????? ??????? <http://im.live.cn/minigame>
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> 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



[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