Yes, select_core.h is the main source of all the calls.
Then each module can register it's own select tables, so you should look
for register_select_table calls in modules subdirectories....
Michal
On Wed, Jul 12, 2006 at 04:04:47PM +0200, samuel wrote:
I looked into select_core.h and found quite a lot of
possible vars for the
core....
Samuel.
2006/7/12, Greger V. Teigre <greger(a)teigre.com>om>:
>
>AFAIK, there is no single place to find all the @vars. It's still on the
>to-do...
>Jan: Could you provide some quick pointers?
>g-)
>
>Luis Silva wrote:
>>
>> Hi Greger, where can I find the complete list of all the @vars?
>>
>> @from, @from.uri, @to, @to.uri, @from.tag, @from.name, @to.tag.
>> @to.name, @from.params, @to.params, @contact, @contact.uri,
>> @contact.params, @contact.expires, @contact.q, @via, and so on. <---
>>
>> Regards,Luis Silva
>>
>>
>>
>>
>>> From: "Greger V. Teigre" <greger(a)teigre.com>
>>> To: sip <sip(a)arcdiv.com>
>>> CC: serusers(a)lists.iptel.org
>>> Subject: Re: SER CVS head, new select identifiers info - was - Re:
>>> [Serusers]Textops with AVPs?
>>> Date: Wed, 12 Jul 2006 08:47:11 +0200
>>>
>>> It's in head only (0.10.x track)
>>> g-)
>>>
>>> sip wrote:
>>>> Greger,
>>>>
>>>> Sounds incredibly handy. Is this available only in SER head or is it
>>>> something
>>>> that's been around for a little while (i.e. do I have any hope of
>>>> using it in
>>>> ser 0.9.6) ?
>>>>
>>>>
>>>> N.
>>>>
>>>>
>>>> On Tue, 11 Jul 2006 21:18:38 +0200, Greger V. Teigre wrote
>>>>
>>>>> I repost Jan's original description of the "select
identifier"
>>>>>
>>>> functionality. Since then, more select identifiers have been added,
>>>> both from
>>>> core and modules.
>>>> g-)
>>>>
>>>> SER core can parse select identifiers using the configuration parser.
>>>> A select identifiers begins with @ characters and contains several
>>>> components/tokens delimited by . (unless it is integer component).
>>>> Integer components are enclosed in [], for example:
>>>>
>>>> @contact[1].uri
>>>>
>>>> This identifier is converted into binary structure which contains the
>>>> array of components. After that the parser tries to lookup function
>>>> that matches the identifier.
>>>>
>>>> Available functions are arranged in a tree-like structure. When
>>>> looking up a function the tree is traversed (starting at the root)
>>>> until the parser finds corresponding function. The part of the tree
>>>> containing TLS functions looks like:
>>>>
>>>> "tls"-+-"peer"-+-"subj"-+-"name"
(select_peer_name())
>>>> | \
>>>> | "state" (select_peer_state())
>>>> |
>>>> +-"issuer"-+-"name" (select_peer_issuer_name())
>>>> \
>>>> "state" (select_peer_issuer_state())
>>>>
>>>> Thus when you write @tls.peer.subj.state in the configuration file
>>>> then the parser will traverse the tree until it reaches
>>>> select_peer_state() function and then it would remember that this
>>>> function should be called.
>>>>
>>>> The tree of identifiers and functions is built dynamically at runtime.
>>>> This is a nice feature becase this way modules can register their own
>>>> functions or whole subtrees and make their functions available in the
>>>> configuration file.
>>>>
>>>> Thus if you load TLS module then all @tls.* selects become avaiable,
>>>> if you do not load the module they are not available. Only a couple
>of
>>>> core functions and the framework is built in the core, the rest can
>be
>>>> in modules.
>>>>
>>>> This framework is currently used in tls and xmlrpc modules. XMLRPC
>>>> module exports the name of the XML-RPC method to the script. TLS
>>>> module exports information from TLS layer.
>>>>
>>>> The SER core itself contains a couple of functions that can retrieve
>>>> various parts of a SIP message:
>>>>
>>>> @from, @from.uri, @to, @to.uri, @from.tag, @from.name, @to.tag.
>>>> @to.name, @from.params, @to.params, @contact, @contact.uri,
>>>> @contact.params, @contact.expires, @contact.q, @via, and so on.
>>>>
>>>> TLS related functions are described in a separate email.
>>>>
>>>>> sip wrote: Sounds like something I might look more into. Thanks,
>>>>> Greger. Is
>>>>>
>>>> there
>>>> anything written more about @var constructs? I checked the admin
>>>> guide (I
>>>> know... that was kind of silly considering how out of date it is ;)
>>>> ), and
>>>> tried to do a search in Google (it seems to ignore the @, so @var
>>>> just gives
>>>> me every message with the word 'var' in it) and didn't see
anything.
>>>> Is there
>>>> anything over at OnSIP discussing it?
>>>>
>>>> N.
>>>>
>>>> On Tue, 11 Jul 2006 08:35:11 +0200, Greger V. Teigre wrote
>>>> If this functionality was added in later openser versions than 0.9,
>>>> it will most likely not be in SER. What you are describing is hard
>>>> to do with the avpops version in 0.9. The avpops module was generic
>>>> enough to do more than it was designed for; making some code
>>>> operations quite dirty in 0.9 (using the ruri as a temporary storage
>>>> while manipulating a variable). SER head uses @var to more directly
>>>> access data instead of going through a module. You may want to have
>>>> a look at it! g-)
>>>>
>>>> sip wrote:
>>>> Is there a version of textops that can do substs with AVPs that
>>>> will work on
>>>> SER 0.9.6 or is that an openSER-only modification of the code?
>>>>
>>>> I'm curious because we're ALSO running into the issues of
charging the
>>>> call-forwarding user for forwarding a call to the PSTN instead of
>>>> charging the
>>>> calling party. Ideally, I'd like to rewrite the from address solely
>>>> for the
>>>> purpose of authenticating the user who's doing the forwarding and
>>>> charging him
>>>> for the call, but that would likely break things as there'd be no
>>>> way to get
>>>> back to the original user if I just rewrote the from username.
>>>>
>>>> SO, I thought, why not let the b2bua handle the details and just
>>>> forward a uri
>>>> with a prefix string that includes the user who's forwarding the
>>>> call (the
>>>> original RURI instead of just the rewritten one).
>>>>
>>>> And there's the trick. How do I craft a RURI out of bits and pieces
>>>> of things
>>>> into one long RURI?
>>>>
>>>> If it were all the same number, I could use prefix, but it's
dynamic
>>>> (as is
>>>> the nature of most things), so prefix won't work.
>>>>
>>>> How do I take
>>>>
>>>> RURI=1105
>>>>
>>>> And add to it:
>>>>
>>>> The rewritten RURI from the call forwarding info: 18005551212
>>>>
>>>> AND the prefix for the b2bua auth: 9999
>>>>
>>>> To make:
>>>>
>>>> new ruri: 9999110518005551212
>>>>
>>>> N.
>>>> _______________________________________________
>>>> Serusers mailing list
>>>> Serusers(a)lists.iptel
>.orghttp://lists.iptel.org/mailman/listinfo/serusers
>>>>
>>>>
>>>>
>>>>
>>
>>
>>> _______________________________________________
>>> Serusers mailing list
>>> Serusers(a)lists.iptel.org
>>>
http://lists.iptel.org/mailman/listinfo/serusers
>>
>>
>>
>_______________________________________________
>Serusers mailing list
>Serusers(a)lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
>
_______________________________________________
Serusers mailing list
Serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers