[Serusers] Help on managing ser.cfg
Greg Fausak
greg at addabrand.com
Tue Aug 17 16:43:57 CEST 2004
I may have posted this
before, if so, I apologize for the duplication.
Our ser.cfg files became unmanageable almost
immediately. It was apparent that something had
to be done to get a grasp on things. We have dozens of
configuration files that must all work together, ports,
gateways, etc. We did not want to duplicate
code fragments.
We used the standard C preprocessor. #include, #define, etc.
Although not perfect, it goes a long way.
For example, here is a proxy definition of ours.
------------begin-----------------
#include "sercommon.pre"
/* customize for this server */
#define DOMAIN voicething.com
#define LISTENIP 198.212.169.20
#define NATIP 198.212.169.253
#define VMHOSTPORT vm.voicething.com:5060
#define DBURL "sql://USER@HOST:PORT/DATABASE"
/* this is the top section, common to all ser servers */
#include "sertop.pre"
/* this is the custom proxy server */
/* #include "sergatewaysimple.pre" */
#include "sergatewayob.pre"
-----------------end-------------------------
I've got an include directory in /usr/local/lib/ser/include:
sergatewayice.pre sermodenuminit.pre
README sergatewaynorm.pre sermodgroupinit.pre
ser800.pre sergatewayob.pre sermodtminit.pre
sercommon.pre sermoduriinit.pre
sercontus.pre sermodusrlocinit.pre
serdef.pre serinclude.pre serproxy.pre
serdef.pre.old serintl.pre serregister.pre
serenum.pre serlocal.pre sertop.pre
sererror.pre sermodaccinit.pre
sergatewaybyip.pre sermodauth_dbinit.pre
Then I have a Makefile, simply:
IDIR=/usr/local/lib/ser/include
CPDEF=-I$(IDIR)
CPP=cpp
CPFLAGS=-w -x c -E -undef
CPCMD=$(CPP) $(CPFLAGS) $(CPDEF)
SERFILE=ser.cfg
.SUFFIXES: .cfg .pre
.pre.cfg:
-rm -f ser.cfg
-mv $(SERFILE)=1 $ $(SERFILE)=2
-mv $(SERFILE)=0 $ $(SERFILE)=1
-mv $*.cfg $ $(SERFILE)=0
$(CPCMD) -o - $< | sed 's/\\"//g' > $*.cfg
ln -s $*.cfg $(SERFILE)
The resulting ser.cfg file is HUGE, but very consistent.
I can add a gateway, open another port, change DB permissions, whatever,
and those changes are usually isolated to an include file. Testing is
easier too. I can include a different gateway file (for instance) and
test a ser.cfg production before deploying.
Strings are hard (but not impossible) to work with using the
C-preprocessor.
---greg
On Aug 17, 2004, at 6:47 AM, Steve Blair wrote:
>
> Alan:
>
> I need this functionality too. I was looking at cobbling together
> something
> using exec but if you find a better way I'd like to hear about it.
>
> Thanks,Steve
>
> Alan Litster wrote:
>
>> Hi List,
>>
>> My ser.cfg file has grown quite large now and it's becoming quite
>> hard to
>> manage all the gateways. For example, if we need to change them.
>>
>> What I'd like to have is a file that contains the hosts, e.g.
>> @GW1@ gateway1.mydomin.com
>> @GW2@ gateway2.mydomin.com
>>
>> then have a ser.cfg.template script where I'd define the hosts in the
>> forward/reply commands as @GW1@ etc.. and run a shell script/command
>> on that
>> file to generate the master ser.cfg file.
>>
>> My question is that is there already a program available that would
>> allow me
>> to do this kind of thing?
>>
>> Regards,
>>
>> Alan
>>
>>
>> ----------------------------------------------------------------------
>> ---------------------------------
>> This email, and any files transmitted with it, is copyright and may
>> contain confidential information.
>> The contents are intended for the use of the addressee(s) only.
>> Unauthorized use may be unlawful.
>> If you receive this email by mistake, please advise sender
>> immediately.
>> The views of the author may not necessarily constitute the views of
>> Telco Electronics Limited.
>> Nothing in this mail shall bind Telco Electronics Limited in any
>> contract or obligation.
>>
>> Telco Electronics Limited
>> 6-8 Oxford Court
>> Brackley
>> Northants
>> NN13 7XY
>>
>> Tel 07000 701999
>> Fax 07000 701777
>>
>> _______________________________________________
>> Serusers mailing list
>> serusers at lists.iptel.org
>> http://lists.iptel.org/mailman/listinfo/serusers
>>
>
> --
> ISC Network Engineering
> The University of Pennsylvania
> 3401 Walnut Street, Suite 221A
> Philadelphia, PA 19104
>
> voice: 215-573-8396
> 215-746-7903
>
> fax: 215-898-9348
> sip:blairs at upenn.edu
>
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
>
Greg Fausak
www.AddaBrand.com
(US) 469-546-1265
More information about the sr-users
mailing list