[SR-Users] About setflag()'s parameter

Andrei Pelinescu-Onciul andrei at iptel.org
Tue Jul 6 11:27:10 CEST 2010


On Jul 06, 2010 at 10:05, Daniel-Constantin Mierla <miconda at gmail.com> wrote:
> Hello,
> 
> here is a wiki page with some flag bitmask vector examples that might help:
> http://www.kamailio.org/dokuwiki/doku.php/tutorials:openser-flag-operations
> 
> The cfg file examples are for older kamailio versions.

Indeed.

The flags support names (you don't have to deal with flag numbers by
hand any longer).


E.g.:

flags  test, a, b;

route {
    #....
    setflag(test);
    if (isflagset(a)) {
        ...
    }
}


One could also force a specific mapping between a flag name and the
actual flag "number" used, e.g.:

flags a:1, b:2 ;

Andrei

> 
> 
> On 7/6/10 4:02 AM, Alex Balashov wrote:
> >On 07/05/2010 09:59 PM, zhou tianjun wrote:
> >
> >>I'm in doubt of the means of setflag()'s parameter. I have looked for
> >>it everywhere including internet and the ser source code, but no any
> >>docs explained it in detail. can anybody tell me about it  ?
> >
> >It sets bits in a 32-bit integer (it may be 64-bit on 64-bit
> >platforms, of this I am not sure) that is bound to a transaction,
> >so those "flags" may be accessed in requests and replies
> >associated with a given transaction, or, further down in the
> >execution flow of same message handler.
> >
> >It is precisely equivalent to the way bit vectors are used in
> >general-purpose programming languages, e.g.
> >
> >    int flags = 0;
> >
> >    flags |= (1 << 4);  /* Set bit 4 */
> >
> >    if(flags & (1 << 4)) {
> >       printf("Bit 4 is set!\n");
> >    } else {
> >       printf("Bit 4 is not set!\n");
> >    }
> >
> >    /* If bit 4 is set, unset it */
> >
> >    if(flags & (1 << 4))
> >       flags &= ~(1 << 4);
> >
> >
> 
> -- 
> Daniel-Constantin Mierla
> http://www.asipto.com/
> 
> 
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users



More information about the sr-users mailing list