On Jul 06, 2010 at 10:05, Daniel-Constantin Mierla miconda@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@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users