[Users] Re: Method BYE and loose_routed function

Klaus Darilion klaus.mailinglists at pernau.at
Tue Apr 11 11:09:33 CEST 2006


Usually all in-dialog requests are loose routed. Thus, if you want 
special routing (e.g. accouting) for all requests (=out-of-dialog + 
in-dialog) you should do this before loose_route: e.g.:


route{
	# sanity tests
	...

	if INVITE|BYE
		setflag(youraccountingflag)

	if (loose_route()) {
		# in dialog requests
		LOG("L_INFO","request is loose routed");

		# do NAT detection and traversal
		route(5);

		t_relay();
		exit;
	}

	# here we have out of dialog requests (initial INVITE+REGSITER)

	if REGISTER ..route(2)...exit

	# NAT detction + handling
	route(5);

	lookup();
	t_relay();
}

regards
klaus


buxalex at libero.it wrote:
> Hello Klaus,
> 
> you were right, my BYE is loose_routed. In fact, following your suggestion, I've got  the table updated. My question now is:
> how to know, when a call is loose_routed? I mean, in both cases now the configuration update the ACC table. should I create a if case or something like that?
> 
> Thanks in advance for your help
> Alessandro
> ---------- Initial Header -----------
> 
> From      : "Klaus Darilion" klaus.mailinglists at pernau.at
> To          : "buxalex at libero.it" buxalex at libero.it
> Cc          : "users" users at openser.org
> Date      : Mon, 10 Apr 2006 16:45:49 +0200
> Subject : Re: [Users] new module: siptrace
> 
> 
> 
> 
> 
> 
> 
>> Hi Alessandro!
>>
>> Please do not reply to emails when creating a new thread. Use "new 
>> email" and choose the proper subject. Otherwise the "thread view" 
>> feature of some email clients don't work anymore.
>>
>> Regarding your problem. May it be that the BYE is loose_routed and thus 
>> does not hit the setflag()?
>>
>> Try setflag(2) in loose_route block.
>>
>> regards
>> klaus
>>
>>
>> buxalex at libero.it wrote:
>>> Hello to everybody,
>>>
>>> I am running openser with the module ACC and I get the db correctly updated (table ACC) for the method INVITE and ACK; But I cannot retrieve the method BYE, I am sure I have made mistake in openser.cfg, anybody can give me any help? below my openser.cfg:
>>>
>>> #-----------------------------------
>>> #     ACC parameters
>>> #-----------------------------------
>>>
>>> modparam("acc",  "db_url", "mysql://openser:openser@localhost/openser")
>>> modparam("acc", "failed_transaction_flag", 4)
>>> modparam("acc", "report_cancels", 1)
>>> modparam("acc", "db_flag", 2)              
>>> modparam("acc", "db_missed_flag",3 )       
>>> ....
>>>
>>>              if (method=="BYE") {
>>>                    setflag(2);
>>>                    t_relay();
>>>                    return;
>>>                 };
>>>
>>>
>>>               if (method=="INVITE") {
>>>                    setflag(2);
>>>                    record_route();
>>>                  };
>>>                 lookup("aliases");
>>>                 if (!uri==myself) {
>>>                         append_hf("P-hint: outbound alias\r\n");
>>>                         route(1);
>>>                 };
>>>
>>> thank you very much
>>> Alessandro
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at openser.org
>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>
> 





More information about the Users mailing list