[Users] Not able to access avp variables in reply route

Klaus Darilion klaus.mailinglists at pernau.at
Tue Mar 27 16:59:33 CEST 2007



Asterisk Expert wrote:
> On 3/26/07, Klaus Darilion <klaus.mailinglists at pernau.at> wrote:
>>
>>
>>
>> Asterisk Expert wrote:
>> > So you mean it is not possible to access values set from one
>> > dialog(INVITE-200 OK) in (BYE-200OK) ?
>>
>> You can use avp_db_query to store a certain value into a table during
>> INVITE and fetch it back during BYE. Of course you need a key which is
>> identical during the dialog - e.g. callid+fromtag+totag.
> 
> 
> But totag will be null before relaying invite request, isn't it?
> Currently I did it with just call id. Let me know if it will create any
> problem.

Yes, this will create problems. The call-id is not enough. You can wirte 
the CDR in the reply route of the 200 Ok - then you have the totag.

Or you use openser's acc module.

regards
klaus

> 
> regards
>> klaus
>>
>> > Is there any alternative? I must have to use custom CDR not db or
>> radius.
>> >
>> > On 3/26/07, Klaus Darilion <klaus.mailinglists at pernau.at> wrote:
>> >>
>> >>
>> >>
>> >> Asterisk Expert wrote:
>> >> > I thought one call is one transaction isn't it?
>> >>
>> >> No.
>> >>
>> >> A transaction is a request till the final response, e.g. INVITE-200 
>> OK.
>> >> or OPTIONS-200 Ok.
>> >>
>> >> In SIP terminology a call is named "dialog". A dilaog consists of
>> >> multiple transaction. The first transaction is the "dialog creating
>> >> transaction" (e.g. INVITE) and the last transaction in this dialog is
>> >> the "dialog terminating transcation" e.g. BYE.
>> >>
>> >> Thus, INVITE and BYE are seperate transactions which belong to the 
>> same
>> >> dialog.
>> >>
>> >> Openser is transaction statefull, but not dialog statefull.
>> >>
>> >> regards
>> >> klaus
>> >>
>> >> >
>> >> > On 3/26/07, Klaus Darilion <klaus.mailinglists at pernau.at> wrote:
>> >> >>
>> >> >> I guess you are trying to use an AVP created during INVITE in the
>> BYE
>> >> >> transaction. This is not possible as the BYE is a different
>> >> transaction
>> >> >> and AVP lifetime is limited to a single transaction.
>> >> >>
>> >> >> regards
>> >> >> klaus
>> >> >>
>> >> >> Asterisk Expert wrote:
>> >> >> > Hello,
>> >> >> > I'm trying to implement custom CDR using OpenSER. What I do is,
>> >> >> insert a
>> >> >> > record in cdr table on invite request. I get the id of the
>> inserted
>> >> row
>> >> >> > using LAST_INSERT_ID() function of mysql in avp_db_query and
>> >> store in
>> >> >> avp
>> >> >> > variable rowid. I set connect time in reply route when I receive
>> 200
>> >> OK
>> >> >> for
>> >> >> > Invite request. When I get 200 OK for BYE request, I update the
>> cdr
>> >> >> record
>> >> >> > and store connect time, disconnect time, duration, etc. But at
>> this
>> >> >> > place(reply route) I get the null rowid so as connect time.
>> >> >> According to
>> >> >> tm
>> >> >> > module's onreply_avp_mode parameter, I should be able to see the
>> >> values
>> >> >> set
>> >> >> > from request route in reply route if I set that parameter to 1
>> >> but it
>> >> >> > has no
>> >> >> > effect. I can not use either avp variables or script variables as
>> >> >> > transaction variables to record custom cdr. Can anyone guide me
>> >> >> > implementing
>> >> >> > this scenario or tell me what I've done wrong?
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >>
>> >>
>> ------------------------------------------------------------------------
>> >> >> >
>> >> >> > _______________________________________________
>> >> >> > Users mailing list
>> >> >> > Users at openser.org
>> >> >> > http://openser.org/cgi-bin/mailman/listinfo/users
>> >> >>
>> >> >
>> >> >
>> >> >
>> >>
>> >
>> >
>> >
>>
> 
> 
> 




More information about the Users mailing list