Hi,
One of the emerging standards that attracts me is H.presence - and I see from the 1.20.2 distribution of h323plus that the recent draft of AVD-3293 is included. However, whilst the code stubs are built by the parser, those stubs don't appear to be included when building the h323plus library.
Adding their inclusion to src/Makefile in the H323_H460 section and rebuilding fails with what appear to be fundamental errors (copied at http://pastebin.ca/911251). Have I missed something obvious?
I'm trying to build in an Ubuntu 7.10 environment with g++ 4.1.3.
Also, I note that the stubs present in CVS under /extensions/h460/h460.presence are different from those bundled in h323lib-proper. Is there some magic documented somewhere that would enable me to build the testapp under the extensions tree?
Sorry if this is all a bit "n00b"-like -- I'm new to h323plus. Feel free to kick me towards a readme somewhere that I most likely have missed!
Thanks in advance for any input you can offer,
Mark.
Mark
NOTE: H.460.presence is still very much *in development*. The code has been slightly modified from AVD-3293 after some consultation and the h323plus implementation will be resubmitted at the next ITU meeting.
Support was only included with the windows distribution of H323plus v1.20, the reason for this is I did not get time to test the compile on linux hence why the files are not included in the makefile.
From your attached log I have now patched the CVS version (files
h460/h460p.h and h460/h460p.cxx) feel free to test to make sure it compiles.
The code in /extensions/h460/h460.presence is a simple endpoint (currently for windows, no linux make files) on how to use the presence feature in your application.
The bulk of new work on presence will now move to linux and GnuGk for inclusion in GnuGk v2.2.8 (one after next release).
Simon
-----Original Message----- From: h323plus-bounces@lists.packetizer.com [mailto:h323plus-bounces@lists.packetizer.com]On Behalf Of Mark Stripes Sent: Thursday, February 21, 2008 2:28 AM To: H323plus Subject: [h323plus] H.pres status
Hi,
One of the emerging standards that attracts me is H.presence - and I see from the 1.20.2 distribution of h323plus that the recent draft of AVD-3293 is included. However, whilst the code stubs are built by the parser, those stubs don't appear to be included when building the h323plus library.
Adding their inclusion to src/Makefile in the H323_H460 section and rebuilding fails with what appear to be fundamental errors (copied at http://pastebin.ca/911251). Have I missed something obvious?
I'm trying to build in an Ubuntu 7.10 environment with g++ 4.1.3.
Also, I note that the stubs present in CVS under /extensions/h460/h460.presence are different from those bundled in h323lib-proper. Is there some magic documented somewhere that would enable me to build the testapp under the extensions tree?
Sorry if this is all a bit "n00b"-like -- I'm new to h323plus. Feel free to kick me towards a readme somewhere that I most likely have missed!
Thanks in advance for any input you can offer,
Mark.
-- "I don't care to belong to a club that accepts people like me as members" - Groucho
Simon,
Thanks for the impressively quick turnaround - and for revealing an edge of C++ that I hadn't stumbled on before: "not" as a reserved keyword!
On Thu, Feb 21, 2008 at 12:32 AM, Simon Horne s.horne@packetizer.com wrote:
NOTE: H.460.presence is still very much *in development*. The code has been slightly modified from AVD-3293 after some consultation and the h323plus implementation will be resubmitted at the next ITU meeting.
Caveat noted.
I can confirm that updating to CVS head and adding h460p(res).(h|cxx) to the linux Makefile results in successful compilation and linking.
I'm a little stuck, though, when it comes to modifying simple_h323 application to play with the concepts as the p[wt]lib stuff is all new to me and doesn't seem to behave the way I thought it would. Do you have available a concrete example of an H.460 extension external to the core h323plus library being added as a feature by an application and then being used?
I'm grounding my investigation on Simple 1.20.0 and using the pattern evident from your previous submission to the opal effort (the only place that I could find relevant documentation). In SimpleH323Process::Initialise, having invoked LoadBaseFeatureSet(), I then create an instance of H460_FeatureOID3 and attach the SimpleH323EndPoint instance thus:
BOOL SimpleH323Process::Initialise(PArgList & args) { ... // Load the base featureSet LoadBaseFeatureSet(); // mstr PresenceEnable(2, "WELL_KNOWN_STRING"); H460_FeatureOID3 * presenceFeature = new H460_FeatureOID3; presenceFeature->AttachEndPoint(this); features.LoadFeatureSet(H460_Feature::FeatureBase); features.AddFeature(presenceFeature); features.AttachEndPoint(this); // seemingly redundant ... }
The debug trace shows that an instance is created and that the new feature is loaded, but when the Available Features are dumped as trace there is nothing shown and, more importantly, when RAS tries to RRQ my GK, the FeatureSet created is empty.
0:00.005 StripesPres Version 1.20.0 by H323Plus on Unix Linux (2.6.22-14-generic-i686) at 2008/2/25 15:14:30.355 0:00.006 StripesPres PWLib File handle high water mark set: 6 Thread unblock pipe 0:00.006 StripesPres PWLib Created thread 0x807b120 H323 Cleaner 0:00.006 StripesPres PWLib Thread high water mark set: 2 0:00.006 StripesPres H323 Created endpoint. 0:00.006 StripesPres H460 Endpoint Attached 0:00.006 StripesPres mstr PresenceEnable 0:00.007 StripesPres OID3 Instance Created 0:00.007 StripesPres OID3 Presence Handler created! 0:00.007 StripesPres OID3 Attaching Endpoint 0:00.007 StripesPres H460 Endpoint Attached 0:00.007 StripesPres H460 Loaded OID 1.3.6.1.4.1.17090.0.3 ... 0:00.038 StripesPres Trans Making request: registrationRequest 0:00.038 StripesPres H460 Create FeatureSet Reg Request PDU 0:00.038 StripesPres H460 FeatureSet for Reg Request PDU { replacementFeatureSet = FALSE }
It seems that despite adding an instance of my (well, OK, 'your') H460_FeatureOID3 through H460_FeatureSet::AddFeature, when it comes to processing H460_FeatureSet::Features, the presence implementation is no longer there.
Now I'm not going to call for a code review ;-) but a pointer to an extension example or some documentation about how extensions can be built and used would be a wonderful help, particularly as I move forward and consider h323plus as a component in my application.
Many thanks,
Mark.
Mark
There is no need to add this code
... // Load the base featureSet LoadBaseFeatureSet(); // mstr PresenceEnable(2, "WELL_KNOWN_STRING"); H460_FeatureOID3 * presenceFeature = new H460_FeatureOID3; presenceFeature->AttachEndPoint(this); features.LoadFeatureSet(H460_Feature::FeatureBase); features.AddFeature(presenceFeature); features.AttachEndPoint(this); // seemingly redundant ...
The H.460 presence code is automatically loaded via factory loader system when registering with the gatekeeper.
Let me explain, there are 3 types of H.460 features Base (loaded at startup), RAS (loaded when first registering with GK) and Signal (loaded at the start of a call). These are automatically created in the H323plus code. Presence is an RAS feature so it gets automatically loaded via the H.460 Factory loader system when you register with gk.
Now the reason you are not seeing the H.460 feature in the trace log is that you have not enabled it and given it a status. Look for MyH323EndPoint::PresenceEnable() in the sample application in the "testapp" directory under extensions/h460/H.460.presence in the CVS :-)
Simon
-----Original Message----- From: Mark Stripes [mailto:mark.stripes@gmail.com] Sent: Tuesday, February 26, 2008 1:40 AM To: Simon Horne Cc: H323plus Subject: Re: [h323plus] H.pres status
Simon,
Thanks for the impressively quick turnaround - and for revealing an edge of C++ that I hadn't stumbled on before: "not" as a reserved keyword!
On Thu, Feb 21, 2008 at 12:32 AM, Simon Horne s.horne@packetizer.com wrote:
NOTE: H.460.presence is still very much *in development*. The
code has been
slightly modified from AVD-3293 after some consultation and
the h323plus
implementation will be resubmitted at the next ITU meeting.
Caveat noted.
I can confirm that updating to CVS head and adding h460p(res).(h|cxx) to the linux Makefile results in successful compilation and linking.
I'm a little stuck, though, when it comes to modifying simple_h323 application to play with the concepts as the p[wt]lib stuff is all new to me and doesn't seem to behave the way I thought it would. Do you have available a concrete example of an H.460 extension external to the core h323plus library being added as a feature by an application and then being used?
I'm grounding my investigation on Simple 1.20.0 and using the pattern evident from your previous submission to the opal effort (the only place that I could find relevant documentation). In SimpleH323Process::Initialise, having invoked LoadBaseFeatureSet(), I then create an instance of H460_FeatureOID3 and attach the SimpleH323EndPoint instance thus:
BOOL SimpleH323Process::Initialise(PArgList & args) { ... // Load the base featureSet LoadBaseFeatureSet(); // mstr PresenceEnable(2, "WELL_KNOWN_STRING"); H460_FeatureOID3 * presenceFeature = new H460_FeatureOID3; presenceFeature->AttachEndPoint(this); features.LoadFeatureSet(H460_Feature::FeatureBase); features.AddFeature(presenceFeature); features.AttachEndPoint(this); // seemingly redundant ... }
The debug trace shows that an instance is created and that the new feature is loaded, but when the Available Features are dumped as trace there is nothing shown and, more importantly, when RAS tries to RRQ my GK, the FeatureSet created is empty.
0:00.005 StripesPres Version 1.20.0 by H323Plus on Unix Linux (2.6.22-14-generic-i686) at 2008/2/25 15:14:30.355 0:00.006 StripesPres PWLib File handle high water mark set: 6 Thread unblock pipe 0:00.006 StripesPres PWLib Created thread 0x807b120 H323 Cleaner 0:00.006 StripesPres PWLib Thread high water mark set: 2 0:00.006 StripesPres H323 Created endpoint. 0:00.006 StripesPres H460 Endpoint Attached 0:00.006 StripesPres mstr PresenceEnable 0:00.007 StripesPres OID3 Instance Created 0:00.007 StripesPres OID3 Presence Handler created! 0:00.007 StripesPres OID3 Attaching Endpoint 0:00.007 StripesPres H460 Endpoint Attached 0:00.007 StripesPres H460 Loaded OID 1.3.6.1.4.1.17090.0.3 ... 0:00.038 StripesPres Trans Making request: registrationRequest 0:00.038 StripesPres H460 Create FeatureSet Reg Request PDU 0:00.038 StripesPres H460 FeatureSet for Reg Request PDU { replacementFeatureSet = FALSE }
It seems that despite adding an instance of my (well, OK, 'your') H460_FeatureOID3 through H460_FeatureSet::AddFeature, when it comes to processing H460_FeatureSet::Features, the presence implementation is no longer there.
Now I'm not going to call for a code review ;-) but a pointer to an extension example or some documentation about how extensions can be built and used would be a wonderful help, particularly as I move forward and consider h323plus as a component in my application.
Many thanks,
Mark.
-- "I don't care to belong to a club that accepts people like me as members" - Groucho
Hi Simon,
On Mon, Feb 25, 2008 at 8:40 PM, Simon Horne s.horne@packetizer.com wrote:
There is no need to add this code
...
Now the reason you are not seeing the H.460 feature in the trace log is that you have not enabled it and given it a status.
Now that makes a lot more sense from an application developer's perspective, and that's where I had started from. However, the trace output from SimpleH323EndPoint::Initialise's call to H460_Feature::GetFeatureNames was showing an empty PStringList indicating that the feature wasn't available.
Re-building ptlib using the WIN32 loading mechanism gets the feature loaded by the runtime and sees an RRQ generated with the right presence pdu. I suspect that I may have mis-built ptlib - or that I'm missing something else in my build.
Regardless, I now have an image that's sending presence PDUs at my Gatekeeper, which is the point I want to be at.
Thanks very much for your assistance. I look forward to seeing where you are taking GnuGK.
Mark.
participants (2)
-
Mark Stripes
-
Simon Horne