Hi Hugo, The flags you mention are per transaction flags and they are visible as time the route is in a transaction context. Unfortunately you came across the only exception. You are using the generic "onreply_route" where there is no transaction contect (openser has no idea -yet- about the transaction the reply belongs to). A reply route with transaction context is onreply_route[x] - this is set per transaction by t_on_reply().
Regards, Bogdan Hugo Koblmueller wrote: > high.*! > > i'm using openser v1.2 and am a bit confused about the scope of the > flag. just for information about my setup: i use openser as gateway > between OCSmediation server and asterisk. > > i learned that the message flags are transaction persistent, which > means that if i set some flags while processing the INVITE request, > these flags must be visible also when we process all other requests > and replies in scope of the same transaction. > > and i also learned, that the flags which are set for INVITE are > visible only when processing 100 (Trying), 180 (Ringing), and 487 > (Request Cancelled). however, the flags are not visible when > processing CANCEL, 200 (OK), and ACK. > thats for the theory. > > now i have two problems: > first (as i mentioned above) i experienced, that 'my' flags are not > that visible as they should be. means e.g. i set flag 3 in request > route and print it out in onreply_route, where it seems not to be set. > see my code below: > > route { > ... > if (src_ip == 172.xx.xx.xx) { > # relay request to * > if (!t_relay("udp:172.xx.xx.xx:5060")) { > sl_reply_error(); > } > } > else { > # relay request to OCS > if (!t_relay("tcp:172.xx.xx.xx:5060")) { > sl_reply_error(); > } > } > if (method == INVITE) setsflag(3); > xlog("L_INFO","$Cyb$rm: mf=$mf, bf=$bf, sf=$sf$Cxx\n"); > exit; > } > > onreply_route { > xlog("L_INFO","$Cyr$rs($rr): mf=$mf, bf=$bf, sf=$sf$Cxx\n"); > } > > > the output is the following: > 10(10569) INVITE: mf=0, bf=0, sf=8 > 7(10566) 100(Trying): mf=0, bf=0, sf=0 > 5(10564) 180(Ringing): mf=0, bf=0, sf=0 > 8(10567) 200(OK): mf=0, bf=0, sf=0 > 10(10569) ACK: mf=0, bf=0, sf=0 > 6(10565) BYE: mf=0, bf=0, sf=0 > 11(10570) 200(OK): mf=0, bf=0, sf=0 > > as you can see the flag 3 is only set, while processing the INVITE but > after this is stays reset. > > any ideas which problem i'm facing here? > > > my second problem is, that i need to identify the reply "200 OK" which > is answered to the relayed INVITE message. as i mentioned above, this > will not be covered by the flags scope anyways. Sad > is there any possibility to have kind of (real) global variables in > openser.cfg? > > thx & cheers > -hugo > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Users mailing list > Users@lists.openser.org > http://lists.openser.org/cgi-bin/mailman/listinfo/users > _______________________________________________ Users mailing list Users@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users