[pjsip] Integrating PJSIP into Mozilla Framework

Roland Klabunde roland.klabunde at freenet.de
Fri Feb 22 04:44:46 EST 2008


The better approach for Mozilla is to pack PJSIP into a XPCOM. I already 
made that. It is not that easy as an ActiveX is, but does the job.

Regards

----- Original Message ----- 
From: "Benny Prijono" <bennylp at pjsip.org>
To: "pjsip list" <pjsip at lists.pjsip.org>
Sent: Friday, February 22, 2008 9:54 AM
Subject: Re: [pjsip] Integrating PJSIP into Mozilla Framework


> On 2/21/08, Adeyeye O. Michael <micadeyeye at crg.ee.uct.ac.za> wrote:
>> Hi Benny,
>>  I was able to integrate the SIP stack into Mozilla FF(firefox) by making
>>  shared lib. of it and loading into FF using a stub.
>>  I have quite a number of shared lib. such as libpjsipregister.so,
>>  libpjsipsendim.so, libpjsipreceiveim.so and so on.
>>
>
> I'm not sure why we need to create one library for each function (!),
> that sounds like bad packaging to me, but then again I'm clueless
> about Mozilla framework or HTTP mobility, so maybe this is something
> that's enforced by the framework.
>
>>  In one of my shared lib. (libpjsipregister.so), I cloned the result
>>  after receiving IM since pjsip_rx_data will be reset after the all
>>  callback s are executed. I read that I can't pass pjsip_rx_data
>>  structure to another thread for asynchronous processing. So I have
>>  something like this:
>>
>>  static void on_pager(...){
>>                 ....
>>                 ....
>>                 pjsip_msg_body* cloned_msg = &pjsip_msg_body_clone;
>>                 ....
>>                 ....
>>           }
>>
>
> If you want to clone a message body, then the above snippet won't do
> it. Use this instead:
>
> {
>  pjsip_rx_data *rdata;
>  pjsip_msg *msg;
>  char dup[1500];
>  int dup_len;
>
>  // retrieve rdata from pjsip_event
>  // see http://trac.pjsip.org/repos/wiki/FAQ#pjsip_event
>  rdata = ...
>  msg = rdata->msg_info.msg;
>
>  // extract text representation of message body to "dup"
>  dup_len = pjsip_print_text_body(msg->body, dup, sizeof(dup));
> }
>
> I'm not sure who are your supposed to communicate the cloned body to
> another XPCOM or whatever mechanism that you use, so I can't comment
> on your snippet below. But lets start with having correct message body
> content by using my snippet above first.
>
> cheers,
> -benny
>
>>  In another shared lib.(libpjsipreceiveim.so), I tried to retrieve the
>>  data sent in the IM session, basically HTTP URL. I have something like 
>> this:
>>
>>  char *sipreceiveimonly(){
>>                 pj_thread_desc desc;
>>                 pj_thread_t *thread;
>>                 ....
>>                 ....
>>                 pjsip_msg_body* cloned_msg;
>>
>>                 return cloned_msg->data;
>>                                      }
>>
>>  The returned values are passed to my XPCOMs in FF which implement those
>>  shared lib.
>>
>>  The problem is that I couldn't retrieve the URL(I guess it's in
>>  "cloned_msg->data") on calling *sipreceiveimonly(). This is a
>>  provisional solution, I planned to pass such info via SIP INFO rather
>>  than IM in the nearest future.
>>
>>
>>  How can I retrieve the IM data (i.e.URL)??
>>  Guess I am missing something.
>>
>>  Yours,
>>  Mike.
>>
>> Benny Prijono wrote:
>>  > On 2/19/08, Adeyeye Oluwasegun Michael <micadeyeye at crg.ee.uct.ac.za> 
>> wrote:
>>  >
>>  >> Hi Benny,
>>  >> I am currently integrating PJSIP into Mozilla Firefox in order to 
>> achieve
>>  >> HTTP Session Mobility using SIP. My research intention is to transfer 
>> web
>>  >> sessions between web browsers using SIP. Though I planned sending the
>>  >> data(contents of cookies, rewritten URL, hidden element) via SIP 
>> INFO, at
>>  >> present, I am sending the data as IM(Instant Messaging).
>>  >>
>>  >>
>>  >
>>  > Hi Adeyeye,
>>  >
>>  > Interesting! I didn't know that we can use SIP for that.
>>  >
>>  >
>>  >> While I have accomplished the task of transferring URL from a 
>> browser's
>>  >> addressbar to another as IM data using pjsua_im_send(), I haven't 
>> been
>>  >> able to retrieve the data at the destination browser. I wish you had 
>> a
>>  >> function like pjsua_im_send() that can help retrieve such data. I 
>> tried
>>  >> couple of things such as trying to implement the callback, getting 
>> value
>>  >> of "msg" attribute in the IM message struct 
>> pjsua_msg_data/pjsip_rx_data
>>  >> but all were futile.
>>  >>
>>  >
>>  > Sorry I don't quite get you. Did you want to retrieve a particular
>>  > message element (such as header or message body) from an incoming IM?
>>  > Will this help: http://trac.pjsip.org/repos/wiki/FAQ#pjsip_event ?
>>  >
>>  > cheers,
>>  >  -benny
>>  >
>>  >
>>  >
>>  >> Do you know if such data is stored in variable not listed in the 
>> PJSUA
>>  >> module/API?
>>  >>
>>  >> Your contributions are welcome.
>>  >>
>>  >> Mike.
>>  >>
>>  >>
>>  >> _______________________________________________
>>  >> 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
>>  >
>>
>>
>>  _______________________________________________
>>  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
> 





More information about the pjsip mailing list