[asterisk-users] How is it best to initialize specific SIP peer settings
John Todd
jtodd at digium.com
Wed Nov 5 12:02:33 CST 2008
On Nov 5, 2008, at 12:01 AM, Olivier wrote:
> Hello,
>
> Let's say you would like to define, for every SIP peer, a value
> which would set, for instance, the maximum daytime calls number.
> Extension 101 would get a 2 value, extension 102 would also get 2,
> extension 103 would get 1, and so ...
>
> How is it best to proceed as those values :
> - shall be usable from dial plan,
> - shall be set when system starts up.
>
> Now I would simply use database set from CLI to set those values
> once for all but using some sort of config file might be more
> flexible (if you've got many values to set).
> How would you proceed ?
>
> Regards
Oliver -
Perhaps what you are looking for is the "setvar=" parameters in
sip.conf? For each peer, you can set values which will carry over
into the dialplan. I'm not sure if this is what you're looking for.
Combining this with the templates methods in sip.conf, it would be
quickly possible to define a large number of SIP peers with very few
lines of configuration file, and set values that could be used for
pretty much any purpose in the Dialplan. Of course, these values only
get set on inbound calls to these peers - for calls destined TO these
SIP peers, you'd need to also store these values in some database in
order to obtain those values and process the data, and perhaps the
astdb or ODBC would be appropriate for this. It all depends on what
you're trying to do and what is the minimum amount of work you wish to
expend. Heck, I've even used System() calls with grep and awk for
very rare and slow lookups, though I wouldn't suggest it as a matter
of course. One may argue that the best use of "setvar" is to store a
key value, which then is used to look up the "real" data (astdb or
ODBC) in the dialplan as the first parts of the dialplan logic. That
way, both inbound and outbound events can easily access the same data
set as long as they have the correct key.
I include the most simplistic, non-database-y example below:
...from sip.conf...
[my-template](!)
context=my-main-context
type=friend
host=dynamic
disallow=all
allow=ulaw
allow=alaw
nat=yes
[1234](my-template)
secret=somepassword
setvar=USER="John Whorfin"
[1235](my-template)
secret=otherpassword
setvar=USER="Penny Preddy"
JT
---
John Todd
jtodd at digium.com +1-256-428-6083
Asterisk Open Source Community Director
More information about the asterisk-users
mailing list