[OpenSIPS-Devel] [OpenSIPS-Users] [Request for Brain[storming]] New types of routes in config
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Tue Apr 28 17:12:35 CEST 2009
Hi Brett,
Brett Nemeroff wrote:
>
> 1. Init Route (new)
>
> A route to be executed at startup only - this will allow the script
> writer to load stuff from DB , to populate memcache-ul, so, to prepare
> the routing process. More or less you can do this first time load even
> now, but you need to check all the time if you already did it or
> not (if
> not yet loaded, load it now)...
>
>
> I just wanted to say that I'd have a lot of use for this. I've got
> some scenarios together with memcache and love it. However if/once you
> allow using an external cache store, this need may disappear.
there multiple tools that may need script init (localcache, shared
variables, etc). Of course, once we have the implementation for memchace
support (memchace server), so of the needs may disappear, but there are
cases where you want to use the localcache only and you need to init it.
>
> I had some other requests. I hope you don't mind me sticking them in here:
> 1. Something else I've mentioned (and I think I stuck on the tracker)
> is that I think some of the module needs to be able to load arbitrary
> data while returning rows. This is by far my #1 request. I feel like
> I'm always playing tricks to do this different ways.
>
> For example:
> A. Trusted module should allow loading of AVPs based on trusted entry.
> An example of use for this would be call limit for source IP. Another
> example would be an "Account Code" Which would be inserted as a header
> when this source IP is used. So maybe even the option to load multiple
> values.
>
> B. DB Routing module should set an avp indicating WHICH rule # was
> used and which Gateway ID # was used. Furthermore both the rule and
> the gateway should allow setting custom AVPs. An example of this is: I
> only have 5 channels to 411. Or Gateway Id #100 only has 5 available
> channels. That's actually really important since today, if Gateway Id
> #100 only has 5 channels, but gets picked first, I'll have to roll off
> it every time to find out it's full rather than "smartly" skipping it.
> I'm sure there are more examples of this.
>
> The basic idea is that every module that "returns" a value should also
> return some sort of primary key that was used for that value. Then it
> can be logged into ACC. Displayed on logging "Sending call to Gateway
> #100"
I see your point and I agree with that - personally I had this need also
and this is why I added in Drouting module the "attrs" field for the GWs
definition - see
http://www.opensips.org/html/docs/modules/devel/drouting.html#id272135.
Of course, the same mechanism can be added to several other modules
(like permissions as you suggested).
In this area I intend to add support for JSON (json.org) to be able to
structure more info in a single string value - you have a generic attr
field that may encode multiple values, keys, etc using json scheme. So,
the idea will be to add the json transformation to extract from the
encode string a certain attribute.
>
>
> 2. Native combined CDR format. One row, start, answer, end, duration.
> Yes, I know, not a B2BUA.. It'll have limitations, and a bit fat
> disclaimer and I'm sure we'll have "that talk" again. :)
you mean to get directly CDRs, instead of acc events?
>
> 3. New DRouting fifo commands: route lookup, route count, route last
> reload, route table dump (ek?). Sometimes it's good to know that
> what's in memory is really what you expected. However, that's not very
> useful in production.
maybe this can be split between stat vars (for counting rules and GW)
and MI commands (like triggering a routing request from outside).
>
> 4. Memcache: cache_fetch should return time to expiry for retrieved
> objects.
Ok
>
> 5. Memcache: full cache purge fifo option (not just 1 object, but
> everything)
like a command to purge the entire content?
>
> 6. Memcache: partial cache purge (not sure how to do this. Idea is
> "Purge all accountcodes" or "Purge all account limits" (to force
> loading new ones)
but how do you suggest to identify the attributes to be purges as they
have different names? regexp matching ?
>
> 7. Dialog: dlg_list should show profiles dialog belongs to. The dialog
> table (when db is used) should also show this.
this is something I'm working on - to have persistence across reboot for
profiles, dialog values and flags.
Best regards,
Bogdan
>
> That's it for now. As always, I appreciate everyone's hard work to
> make this product what it is. Thank you!
> -Brett
>
More information about the Devel
mailing list