[h323plus] H.pres status

Simon Horne s.horne at packetizer.com
Mon Feb 25 15:40:36 EST 2008


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 at 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 at 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




More information about the h323plus mailing list