Hi guys, thanks a bunch for lots of input and I really appreciate the willingness to contribute. Thus, I have created a "project page": http://www.iptel.org/sip_express_bundle_sip_service_in_15_minutes
I thought we could gather the current perspective on that page and document our decisions as we go. It will hopefully be useful in our process, as well as documentation for us and others later.
I have noted the following volunteers: Jai: testing and installation work ram: testing SIP: tesing Jiri: anyting? Mike: testing and documentation
Maybe we should set up a small mailing list for coordination emails, but for now, let's use serusers (where I think all the comments came). (I copy the other lists on this post, so the other lists know that the discussion will move to serusers).
Out of the comments, I read CentOS and vmware as the most wanted combination. I have documented the pros and cons on the project page, and suggest that we do some testing before we decide. I also tried out rpath (which I have no previous experience with). My observations are documented on the same page.
Thus, I have started setting up a minimal CentOS virtual appliance found in vmware's appliance directory on an esx server. I will send details on accessing it to the volunteers once it is up and running (decompressing, unpacking, and building a non-split disk takes an awful lot of time :-( ).
Ok, further comments, ideas, etc, please post to serusers or edit/add comments to the project page (requires an iptel.org account). I see the following steps with documentation as we go (steps also found on the project page): 1. Testing and specification of what we want to accomplish 2. Environment and OS setup to ensure that we easily can release new versions 3. Installation and configuration of the software. I assume this step also will involve development of some tools we need, as well as adaptation of existing stuff 4. Testing and user documentation 5. Packaging and deployment
Let's get going! g-)
Greger V. Teigre wrote:
Hi guys, thanks a bunch for lots of input and I really appreciate the willingness to contribute. Thus, I have created a "project page": http://www.iptel.org/sip_express_bundle_sip_service_in_15_minutes
I thought we could gather the current perspective on that page and document our decisions as we go. It will hopefully be useful in our process, as well as documentation for us and others later.
I have noted the following volunteers: Jai: testing and installation work ram: testing SIP: tesing Jiri: anyting? Mike: testing and documentation
Maybe we should set up a small mailing list for coordination emails, but for now, let's use serusers (where I think all the comments came). (I copy the other lists on this post, so the other lists know that the discussion will move to serusers).
Out of the comments, I read CentOS and vmware as the most wanted combination. I have documented the pros and cons on the project page, and suggest that we do some testing before we decide. I also tried out rpath (which I have no previous experience with). My observations are documented on the same page.
Thus, I have started setting up a minimal CentOS virtual appliance found in vmware's appliance directory on an esx server. I will send details on accessing it to the volunteers once it is up and running (decompressing, unpacking, and building a non-split disk takes an awful lot of time :-( ).
Ok, further comments, ideas, etc, please post to serusers or edit/add comments to the project page (requires an iptel.org account). I see the following steps with documentation as we go (steps also found on the project page):
- Testing and specification of what we want to accomplish
- Environment and OS setup to ensure that we easily can release new
versions 3. Installation and configuration of the software. I assume this step also will involve development of some tools we need, as well as adaptation of existing stuff 4. Testing and user documentation 5. Packaging and deployment
Let's get going! g-)
Regarding your project page, just a minor comment about your statement about Centos (and other O/S that will give the same impression)
"Recommended disk size and packaging creates a small OS image in zipped format (something like 3-400 Mb), but actual virtual disk inside tar/zip file is huge (10Gb) and results in loooooong unpacking times"
This is not necessarily correct. The typical Centos VM disk image is 4Gb most of which is empty space. In my experiments with Centos and SER this could be reduced to 2Gb without problems. In fact my current Centos systems need around 500Mb plus data space.
Also, when the image is correctly constructed (empty disk space set to zero) the image can be very rapidly expanded. If you have a downloaded VMware image that expands to 10Gb and takes a long time then it is a problem for the person who generated it rather than the VMWare system.
I recommend that you generate a custom VMWare image (or get a more efficient image to modify). You could start at 4Gb but perhaps 2Gb will be sufficient as SER is not very demanding on most resources. I guess you will need Apache, Bind, php, MySql etc. These do not take up a lot of space.
If you are stuck with no help to make a basic Centos VMWare image I can create one for you at a variety of sizes and with whatever support software you need.
Jeremy
[removed serdev, sems, and semsdev]
Jeremy A wrote:
Regarding your project page, just a minor comment about your statement about Centos (and other O/S that will give the same impression)
"Recommended disk size and packaging creates a small OS image in zipped format (something like 3-400 Mb), but actual virtual disk inside tar/zip file is huge (10Gb) and results in loooooong unpacking times"
This is not necessarily correct. The typical Centos VM disk image is 4Gb most of which is empty space. In my experiments with Centos and SER this could be reduced to 2Gb without problems. In fact my current Centos systems need around 500Mb plus data space.
Also, when the image is correctly constructed (empty disk space set to zero) the image can be very rapidly expanded. If you have a downloaded VMware image that expands to 10Gb and takes a long time then it is a problem for the person who generated it rather than the VMWare system.
Thanks, Jeremy. That has also been my previous experience, but I thought there was some special virtual appliance requirement. Thanks for enlightening me about zero-filled space, I actually thought that was the default. I'll disregard the example virtual appliance I tested and I have updated the project page.
I recommend that you generate a custom VMWare image (or get a more efficient image to modify). You could start at 4Gb but perhaps 2Gb will be sufficient as SER is not very demanding on most resources. I guess you will need Apache, Bind, php, MySql etc. These do not take up a lot of space.
If the compressed download is small, I'm not too worried about the resulting size. It should be large enough for a production install. We will probably have to experiment a bit.
If you are stuck with no help to make a basic Centos VMWare image I can create one for you at a variety of sizes and with whatever support software you need.
I would really appreciate if you could have a look at my comment just posted regarding scripted installation (also as a section on the project page) and validate the suggestion. We need to support new versions of SER, as well as new OS versions, so if we can script everything from scratch as long as we have a development linux environment where we can bootstrap things from, I think we are in a much better position. If you could take a lead in exploring this up to a ready OS for iptel apps, that would be great! g-)
Greger V. Teigre wrote:
Hi guys, thanks a bunch for lots of input and I really appreciate the willingness to contribute. Thus, I have created a "project page": http://www.iptel.org/sip_express_bundle_sip_service_in_15_minutes
I thought we could gather the current perspective on that page and document our decisions as we go. It will hopefully be useful in our process, as well as documentation for us and others later.
I have noted the following volunteers: Jai: testing and installation work ram: testing SIP: tesing Jiri: anyting? Mike: testing and documentation
Maybe we should set up a small mailing list for coordination emails, but for now, let's use serusers (where I think all the comments came). (I copy the other lists on this post, so the other lists know that the discussion will move to serusers).
Out of the comments, I read CentOS and vmware as the most wanted combination. I have documented the pros and cons on the project page, and suggest that we do some testing before we decide. I also tried out rpath (which I have no previous experience with). My observations are documented on the same page.
Thus, I have started setting up a minimal CentOS virtual appliance found in vmware's appliance directory on an esx server. I will send details on accessing it to the volunteers once it is up and running (decompressing, unpacking, and building a non-split disk takes an awful lot of time :-( ).
Ok, further comments, ideas, etc, please post to serusers or edit/add comments to the project page (requires an iptel.org account). I see the following steps with documentation as we go (steps also found on the project page):
- Testing and specification of what we want to accomplish
- Environment and OS setup to ensure that we easily can release new
versions 3. Installation and configuration of the software. I assume this step also will involve development of some tools we need, as well as adaptation of existing stuff 4. Testing and user documentation 5. Packaging and deployment
Let's get going! g-)
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Something I noted about the project. While I am all for a virtual image for testing purposes and getting things up and running while we're creating this project, I think the ultimate goal should be something like an ISO that's ready to go on a server. There are many of us in the systems world who have not bought into the whole virtualisation marketing gimmick when it comes to system deployment, and for the casual home user who's less comfortable with using VMs for an actual production system (which is, to be honest, a lot of people), it might be easier in the long term to get everything the way we want it and then make an ISO that's ready to drop onto whatever machine with all the components we need.
BUT... first things first. :) We need a list of everything that's going to be in this bundle.
My assumptions are (at the basic level):
-SER 2.0 (in whatever state it's in atm) -SERWeb -RTPProxy -SEMS
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0) -Apache (req'd for SERweb) -SIPsak -ngrep (invaluable for debugging as well as learning)
Optional: -mediaproxy -freeradius -radiusclient (for those who want to mesh SER with an existing radius infrastructure perhaps)
Thoughts?
N.
At 14:00 09/12/2007, SIP wrote:
My assumptions are (at the basic level):
-SER 2.0 (in whatever state it's in atm) -SERWeb -RTPProxy -SEMS
Yes. +ser_ctl.
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0)
why the patch?
-Apache (req'd for SERweb) -SIPsak -ngrep (invaluable for debugging as well as learning)
Optional: -mediaproxy -freeradius -radiusclient (for those who want to mesh SER with an existing radius infrastructure perhaps)
Just to keep things focused, I think starting with just mysql would be a more pragmatic (nothing against radius in next stage).
-jiri
-- Jiri Kuthan http://iptel.org/~jiri/
Jiri Kuthan wrote:
At 14:00 09/12/2007, SIP wrote:
My assumptions are (at the basic level):
-SER 2.0 (in whatever state it's in atm) -SERWeb -RTPProxy -SEMS
Yes. +ser_ctl.
Agreed.
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0)
why the patch?
MySQL 5.0.X automatically times out its sockets after a hardcoded period of time. Unless you have configured the socket to auto reconnect (see http://www.ideasip.com/support/utils/my_con.c.SER2 ), after a little while, the socket will just time out and you will have to restart SER in order to connect to the database (it will throw errors).
-Apache (req'd for SERweb) -SIPsak -ngrep (invaluable for debugging as well as learning)
Optional: -mediaproxy -freeradius -radiusclient (for those who want to mesh SER with an existing radius infrastructure perhaps)
Just to keep things focused, I think starting with just mysql would be a more pragmatic (nothing against radius in next stage).
-jiri
I agree.... that's why I added it as an optional -- something to think about in the future, but not essential.
N.
[removed sems and semsdev from cc]
SIP wrote:
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0)
why the patch?
MySQL 5.0.X automatically times out its sockets after a hardcoded period of time. Unless you have configured the socket to auto reconnect (see http://www.ideasip.com/support/utils/my_con.c.SER2 ), after a little while, the socket will just time out and you will have to restart SER in order to connect to the database (it will throw errors).
I thought that issue was resolved. Can you check the tracker ticket and verify that it is scheduled for ser 2.0 release? g-)
Greger V. Teigre wrote:
[removed sems and semsdev from cc]
SIP wrote:
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0)
why the patch?
MySQL 5.0.X automatically times out its sockets after a hardcoded period of time. Unless you have configured the socket to auto reconnect (see http://www.ideasip.com/support/utils/my_con.c.SER2 ), after a little while, the socket will just time out and you will have to restart SER in order to connect to the database (it will throw errors).
I thought that issue was resolved. Can you check the tracker ticket and verify that it is scheduled for ser 2.0 release? g-)
I can't get to the tracker at the moment (come to think of it, I can RARELY get to the tracker), but I know this fix is not in 2.0rc1. Whether or not it's made it into CVS after that, I've no idea.
N.
On Dec 10, 2007 at 07:20, Greger V. Teigre greger@teigre.com wrote:
[removed sems and semsdev from cc]
SIP wrote:
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0)
why the patch?
MySQL 5.0.X automatically times out its sockets after a hardcoded period of time. Unless you have configured the socket to auto reconnect (see http://www.ideasip.com/support/utils/my_con.c.SER2 ), after a little while, the socket will just time out and you will have to restart SER in order to connect to the database (it will throw errors).
I thought that issue was resolved. Can you check the tracker ticket and verify that it is scheduled for ser 2.0 release?
It is fixed in a different way in 2.1, but it was not backported to 2.0 (see http://lists.iptel.org/pipermail/serdev/2007-June/010460.html).
Jan, have you forgotten to backport it or is there some other reason?
(patch for 2.0 attached)
Andrei
2.0 should reconnect automatically, I turn the corresponding variable in MYSQL structure on after mysql_real_connect.
But, after looking into mysql documentation, I just found that that even 2.1 will not reconnect correctly with some versions of mysql:
---------- MYSQL_OPT_RECONNECT (argument type: my_bool *)
Enable or disable automatic reconnection to the server if the connection is found to have been lost. Reconnect has been off by default since MySQL 5.0.3; this option is new in 5.0.13 and provides a way to set reconnection behavior explicitly.
Note: mysql_real_connect() incorrectly reset the MYSQL_OPT_RECONNECT option to its default value before MySQL 5.0.19. Therefore, prior to that version, if you want reconnect to be enabled for each connection, you must call mysql_options() with the MYSQL_OPT_RECONNECT option after each call to mysql_real_connect(). This is not necessary as of 5.0.19: Call mysql_options() only before mysql_real_connect() as usual. -----------
Isn't this the problem? Aren't you using mysql version >=5.0.3 and <5.0.19? If so then neither 2.1 nor 2.0 will reconnect. It appears we will need to modify the code even more, because 2.1 calls mysql_options before mysql_real_connect.
Jan.
Andrei Pelinescu-Onciul wrote:
On Dec 10, 2007 at 07:20, Greger V. Teigre greger@teigre.com wrote:
[removed sems and semsdev from cc]
SIP wrote:
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0)
why the patch?
MySQL 5.0.X automatically times out its sockets after a hardcoded period of time. Unless you have configured the socket to auto reconnect (see http://www.ideasip.com/support/utils/my_con.c.SER2 ), after a little while, the socket will just time out and you will have to restart SER in order to connect to the database (it will throw errors).
I thought that issue was resolved. Can you check the tracker ticket and verify that it is scheduled for ser 2.0 release?
It is fixed in a different way in 2.1, but it was not backported to 2.0 (see http://lists.iptel.org/pipermail/serdev/2007-June/010460.html).
Jan, have you forgotten to backport it or is there some other reason?
(patch for 2.0 attached)
Andrei
? modules/mysql/.db_mod.c.swp Index: modules/mysql/db_mod.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.c,v retrieving revision 1.29 diff -u -r1.29 db_mod.c --- modules/mysql/db_mod.c 8 Jan 2006 22:43:17 -0000 1.29 +++ modules/mysql/db_mod.c 22 Jun 2007 14:33:02 -0000 @@ -41,6 +41,14 @@
int ping_interval = 5 * 60; /* Default is 5 minutes */ int auto_reconnect = 1; /* Default is enabled */ +unsigned int my_connect_to=2; /* 2 s by default */ +unsigned int my_send_to=0; /* enabled only for mysql >= 5.25 */ +unsigned int my_recv_to=0; /* enabled only for mysql >= 5.25 */
+unsigned long my_client_ver=0;
+#define DEFAULT_MY_SEND_TO 2 /* s */ +#define DEFAULT_MY_RECV_TO 4 /* s */
static int mysql_mod_init(void);
@@ -71,6 +79,9 @@ static param_export_t params[] = { {"ping_interval", PARAM_INT, &ping_interval}, {"auto_reconnect", PARAM_INT, &auto_reconnect},
- {"connect_timeout", PARAM_INT, &my_connect_to},
- {"send_timeout", PARAM_INT, &my_send_to},
- {"receive_timeout", PARAM_INT, &my_recv_to}, {0, 0, 0}
};
@@ -90,6 +101,28 @@
static int mysql_mod_init(void) { +#if MYSQL_VERSION_ID >= 40101
- my_client_ver=mysql_get_client_version();
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to==0)
my_send_to= DEFAULT_MY_SEND_TO;
if (my_recv_to==0)
my_recv_to= DEFAULT_MY_RECV_TO;
- }else if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set, but "
" not supported by the installed mysql client library"
" (needed at least 4.1.22 or 5.0.25, but installed %ld)\n",
my_client_ver);
- }
+#else
- if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set, but "
" not supported by the mysql client library used to compile"
" the mysql module (needed at least 4.1.1 but "
" compiled against %ld)\n", MYSQL_VERSION_ID);
- }
+#endif DBG("mysql: MySQL client version is %s\n", mysql_get_client_info()); return 0; } Index: modules/mysql/db_mod.h =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.h,v retrieving revision 1.3 diff -u -r1.3 db_mod.h --- modules/mysql/db_mod.h 28 Oct 2004 23:36:14 -0000 1.3 +++ modules/mysql/db_mod.h 22 Jun 2007 14:33:02 -0000 @@ -38,5 +38,10 @@
extern int ping_interval; extern int auto_reconnect; +extern unsigned int my_connect_to; /* 2 s by default */ +extern unsigned int my_send_to; /* enabled only for mysql >= 5.25 */ +extern unsigned int my_recv_to; /* enabled only for mysql >= 5.25 */
+extern unsigned long my_client_ver;
#endif /* DB_MOD_H */ Index: modules/mysql/dbase.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/dbase.c,v retrieving revision 1.48.2.1 diff -u -r1.48.2.1 dbase.c --- modules/mysql/dbase.c 23 Feb 2007 21:19:31 -0000 1.48.2.1 +++ modules/mysql/dbase.c 22 Jun 2007 14:33:02 -0000 @@ -68,7 +68,7 @@ t = time(0); if ((t - CON_TIMESTAMP(_h)) > ping_interval) { if (mysql_ping(CON_CONNECTION(_h))) {
DBG("submit_query: mysql_ping failed\n");
} CON_TIMESTAMP(_h) = t;ERR("mysql: submit_query: mysql_ping failed\n"); }
Index: modules/mysql/my_con.c
RCS file: /cvsroot/ser/sip_router/modules/mysql/my_con.c,v retrieving revision 1.7 diff -u -r1.7 my_con.c --- modules/mysql/my_con.c 30 Jan 2006 16:49:51 -0000 1.7 +++ modules/mysql/my_con.c 22 Jun 2007 14:33:02 -0000 @@ -26,6 +26,7 @@ */
#include "my_con.h" +#include "db_mod.h" #include "../../mem/mem.h" #include "../../dprint.h" #include "../../ut.h" @@ -41,6 +42,9 @@ struct my_con* new_connection(struct db_id* id) { struct my_con* ptr; +#if MYSQL_VERSION_ID >= 50013
- my_bool my_auto_reconnect;
+#endif
if (!id) { LOG(L_ERR, "new_connection: Invalid parameter value\n"); @@ -82,6 +86,34 @@ ZSW(id->database) ); } +#if MYSQL_VERSION_ID >= 50013
- my_auto_reconnect=1;
- if (my_client_ver>=50013){
if (mysql_options(ptr->con, MYSQL_OPT_RECONNECT ,
(char*)&my_auto_reconnect))
WARN("mysql: failed to set MYSQL_OPT_RECONNECT\n");
- }
+#endif
- if (my_connect_to){
if (mysql_options(ptr->con, MYSQL_OPT_CONNECT_TIMEOUT,
(char*)&my_connect_to))
WARN("mysql: failed to set MYSQL_OPT_CONNECT_TIMEOUT\n");
- }
+#if MYSQL_VERSION_ID >= 40101
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to){
if (mysql_options(ptr->con, MYSQL_OPT_WRITE_TIMEOUT ,
(char*)&my_send_to))
WARN("mysql: failed to set MYSQL_OPT_WRITE_TIMEOUT\n");
}
if (my_recv_to){
if (mysql_options(ptr->con, MYSQL_OPT_READ_TIMEOUT ,
(char*)&my_recv_to))
WARN("mysql: failed to set MYSQL_OPT_READ_TIMEOUT\n");
}
- }
+#endif
if (!mysql_real_connect(ptr->con, id->host, id->username, id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con));
Some more information:
mysql_options(ptr->con, MYSQL_OPT_RECONNECT,(char*)&my_auto_reconnect)
is internally implemented as:
case MYSQL_OPT_RECONNECT: mysql->reconnect= *(my_bool *) arg; break;
and that code is already present in 2.0:
if (!mysql_real_connect(ptr->con, id->host, id->username, id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con)); mysql_close(ptr->con); goto err; }
/* Enable reconnection explicitly */ ptr->con->reconnect = 1;
This is the old way of enabling automatic reconnects in mysql but it does the same.
Jan.
Andrei Pelinescu-Onciul wrote:
On Dec 10, 2007 at 07:20, Greger V. Teigre greger@teigre.com wrote:
[removed sems and semsdev from cc]
SIP wrote:
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0)
why the patch?
MySQL 5.0.X automatically times out its sockets after a hardcoded period of time. Unless you have configured the socket to auto reconnect (see http://www.ideasip.com/support/utils/my_con.c.SER2 ), after a little while, the socket will just time out and you will have to restart SER in order to connect to the database (it will throw errors).
I thought that issue was resolved. Can you check the tracker ticket and verify that it is scheduled for ser 2.0 release?
It is fixed in a different way in 2.1, but it was not backported to 2.0 (see http://lists.iptel.org/pipermail/serdev/2007-June/010460.html).
Jan, have you forgotten to backport it or is there some other reason?
(patch for 2.0 attached)
Andrei
? modules/mysql/.db_mod.c.swp Index: modules/mysql/db_mod.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.c,v retrieving revision 1.29 diff -u -r1.29 db_mod.c --- modules/mysql/db_mod.c 8 Jan 2006 22:43:17 -0000 1.29 +++ modules/mysql/db_mod.c 22 Jun 2007 14:33:02 -0000 @@ -41,6 +41,14 @@
int ping_interval = 5 * 60; /* Default is 5 minutes */ int auto_reconnect = 1; /* Default is enabled */ +unsigned int my_connect_to=2; /* 2 s by default */ +unsigned int my_send_to=0; /* enabled only for mysql >= 5.25 */ +unsigned int my_recv_to=0; /* enabled only for mysql >= 5.25 */
+unsigned long my_client_ver=0;
+#define DEFAULT_MY_SEND_TO 2 /* s */ +#define DEFAULT_MY_RECV_TO 4 /* s */
static int mysql_mod_init(void);
@@ -71,6 +79,9 @@ static param_export_t params[] = { {"ping_interval", PARAM_INT, &ping_interval}, {"auto_reconnect", PARAM_INT, &auto_reconnect},
- {"connect_timeout", PARAM_INT, &my_connect_to},
- {"send_timeout", PARAM_INT, &my_send_to},
- {"receive_timeout", PARAM_INT, &my_recv_to}, {0, 0, 0}
};
@@ -90,6 +101,28 @@
static int mysql_mod_init(void) { +#if MYSQL_VERSION_ID >= 40101
- my_client_ver=mysql_get_client_version();
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to==0)
my_send_to= DEFAULT_MY_SEND_TO;
if (my_recv_to==0)
my_recv_to= DEFAULT_MY_RECV_TO;
- }else if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set, but "
" not supported by the installed mysql client library"
" (needed at least 4.1.22 or 5.0.25, but installed %ld)\n",
my_client_ver);
- }
+#else
- if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set, but "
" not supported by the mysql client library used to compile"
" the mysql module (needed at least 4.1.1 but "
" compiled against %ld)\n", MYSQL_VERSION_ID);
- }
+#endif DBG("mysql: MySQL client version is %s\n", mysql_get_client_info()); return 0; } Index: modules/mysql/db_mod.h =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.h,v retrieving revision 1.3 diff -u -r1.3 db_mod.h --- modules/mysql/db_mod.h 28 Oct 2004 23:36:14 -0000 1.3 +++ modules/mysql/db_mod.h 22 Jun 2007 14:33:02 -0000 @@ -38,5 +38,10 @@
extern int ping_interval; extern int auto_reconnect; +extern unsigned int my_connect_to; /* 2 s by default */ +extern unsigned int my_send_to; /* enabled only for mysql >= 5.25 */ +extern unsigned int my_recv_to; /* enabled only for mysql >= 5.25 */
+extern unsigned long my_client_ver;
#endif /* DB_MOD_H */ Index: modules/mysql/dbase.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/dbase.c,v retrieving revision 1.48.2.1 diff -u -r1.48.2.1 dbase.c --- modules/mysql/dbase.c 23 Feb 2007 21:19:31 -0000 1.48.2.1 +++ modules/mysql/dbase.c 22 Jun 2007 14:33:02 -0000 @@ -68,7 +68,7 @@ t = time(0); if ((t - CON_TIMESTAMP(_h)) > ping_interval) { if (mysql_ping(CON_CONNECTION(_h))) {
DBG("submit_query: mysql_ping failed\n");
} CON_TIMESTAMP(_h) = t;ERR("mysql: submit_query: mysql_ping failed\n"); }
Index: modules/mysql/my_con.c
RCS file: /cvsroot/ser/sip_router/modules/mysql/my_con.c,v retrieving revision 1.7 diff -u -r1.7 my_con.c --- modules/mysql/my_con.c 30 Jan 2006 16:49:51 -0000 1.7 +++ modules/mysql/my_con.c 22 Jun 2007 14:33:02 -0000 @@ -26,6 +26,7 @@ */
#include "my_con.h" +#include "db_mod.h" #include "../../mem/mem.h" #include "../../dprint.h" #include "../../ut.h" @@ -41,6 +42,9 @@ struct my_con* new_connection(struct db_id* id) { struct my_con* ptr; +#if MYSQL_VERSION_ID >= 50013
- my_bool my_auto_reconnect;
+#endif
if (!id) { LOG(L_ERR, "new_connection: Invalid parameter value\n"); @@ -82,6 +86,34 @@ ZSW(id->database) ); } +#if MYSQL_VERSION_ID >= 50013
- my_auto_reconnect=1;
- if (my_client_ver>=50013){
if (mysql_options(ptr->con, MYSQL_OPT_RECONNECT ,
(char*)&my_auto_reconnect))
WARN("mysql: failed to set MYSQL_OPT_RECONNECT\n");
- }
+#endif
- if (my_connect_to){
if (mysql_options(ptr->con, MYSQL_OPT_CONNECT_TIMEOUT,
(char*)&my_connect_to))
WARN("mysql: failed to set MYSQL_OPT_CONNECT_TIMEOUT\n");
- }
+#if MYSQL_VERSION_ID >= 40101
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to){
if (mysql_options(ptr->con, MYSQL_OPT_WRITE_TIMEOUT ,
(char*)&my_send_to))
WARN("mysql: failed to set MYSQL_OPT_WRITE_TIMEOUT\n");
}
if (my_recv_to){
if (mysql_options(ptr->con, MYSQL_OPT_READ_TIMEOUT ,
(char*)&my_recv_to))
WARN("mysql: failed to set MYSQL_OPT_READ_TIMEOUT\n");
}
- }
+#endif
if (!mysql_real_connect(ptr->con, id->host, id->username, id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con));
I'm not sure what the conclusion to this thread was. SIP: could you verify your mysql version? Jan: I haven't seen a ticket on that. Will we say that we don't support mysql version >=5.0.3 and <5.0.19? g-)
Jan Janak wrote:
Some more information:
mysql_options(ptr->con, MYSQL_OPT_RECONNECT,(char*)&my_auto_reconnect)
is internally implemented as:
case MYSQL_OPT_RECONNECT: mysql->reconnect= *(my_bool *) arg; break;
and that code is already present in 2.0:
if (!mysql_real_connect(ptr->con, id->host, id->username, id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con)); mysql_close(ptr->con); goto err; }
/* Enable reconnection explicitly */ ptr->con->reconnect = 1;
This is the old way of enabling automatic reconnects in mysql but it does the same.
Jan.
Andrei Pelinescu-Onciul wrote:
On Dec 10, 2007 at 07:20, Greger V. Teigre greger@teigre.com wrote:
[removed sems and semsdev from cc]
SIP wrote:
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0)
why the patch?
MySQL 5.0.X automatically times out its sockets after a hardcoded period of time. Unless you have configured the socket to auto reconnect (see http://www.ideasip.com/support/utils/my_con.c.SER2 ), after a little while, the socket will just time out and you will have to restart SER in order to connect to the database (it will throw errors).
I thought that issue was resolved. Can you check the tracker ticket and verify that it is scheduled for ser 2.0 release?
It is fixed in a different way in 2.1, but it was not backported to 2.0 (see http://lists.iptel.org/pipermail/serdev/2007-June/010460.html).
Jan, have you forgotten to backport it or is there some other reason?
(patch for 2.0 attached)
Andrei
? modules/mysql/.db_mod.c.swp Index: modules/mysql/db_mod.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.c,v retrieving revision 1.29 diff -u -r1.29 db_mod.c --- modules/mysql/db_mod.c 8 Jan 2006 22:43:17 -0000 1.29 +++ modules/mysql/db_mod.c 22 Jun 2007 14:33:02 -0000 @@ -41,6 +41,14 @@
int ping_interval = 5 * 60; /* Default is 5 minutes */ int auto_reconnect = 1; /* Default is enabled */ +unsigned int my_connect_to=2; /* 2 s by default */ +unsigned int my_send_to=0; /* enabled only for mysql >= 5.25 */ +unsigned int my_recv_to=0; /* enabled only for mysql >= 5.25 */
+unsigned long my_client_ver=0;
+#define DEFAULT_MY_SEND_TO 2 /* s */ +#define DEFAULT_MY_RECV_TO 4 /* s */
static int mysql_mod_init(void);
@@ -71,6 +79,9 @@ static param_export_t params[] = { {"ping_interval", PARAM_INT, &ping_interval}, {"auto_reconnect", PARAM_INT, &auto_reconnect},
- {"connect_timeout", PARAM_INT, &my_connect_to},
- {"send_timeout", PARAM_INT, &my_send_to},
- {"receive_timeout", PARAM_INT, &my_recv_to}, {0, 0, 0}
};
@@ -90,6 +101,28 @@
static int mysql_mod_init(void) { +#if MYSQL_VERSION_ID >= 40101
- my_client_ver=mysql_get_client_version();
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to==0)
my_send_to= DEFAULT_MY_SEND_TO;
if (my_recv_to==0)
my_recv_to= DEFAULT_MY_RECV_TO;
- }else if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set, but "
" not supported by the installed mysql client library"
" (needed at least 4.1.22 or 5.0.25, but installed %ld)\n",
my_client_ver);
- }
+#else
- if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set, but "
" not supported by the mysql client library used to compile"
" the mysql module (needed at least 4.1.1 but "
" compiled against %ld)\n", MYSQL_VERSION_ID);
- }
+#endif DBG("mysql: MySQL client version is %s\n", mysql_get_client_info()); return 0; } Index: modules/mysql/db_mod.h =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.h,v retrieving revision 1.3 diff -u -r1.3 db_mod.h --- modules/mysql/db_mod.h 28 Oct 2004 23:36:14 -0000 1.3 +++ modules/mysql/db_mod.h 22 Jun 2007 14:33:02 -0000 @@ -38,5 +38,10 @@
extern int ping_interval; extern int auto_reconnect; +extern unsigned int my_connect_to; /* 2 s by default */ +extern unsigned int my_send_to; /* enabled only for mysql >= 5.25 */ +extern unsigned int my_recv_to; /* enabled only for mysql >= 5.25 */
+extern unsigned long my_client_ver;
#endif /* DB_MOD_H */ Index: modules/mysql/dbase.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/dbase.c,v retrieving revision 1.48.2.1 diff -u -r1.48.2.1 dbase.c --- modules/mysql/dbase.c 23 Feb 2007 21:19:31 -0000 1.48.2.1 +++ modules/mysql/dbase.c 22 Jun 2007 14:33:02 -0000 @@ -68,7 +68,7 @@ t = time(0); if ((t - CON_TIMESTAMP(_h)) > ping_interval) { if (mysql_ping(CON_CONNECTION(_h))) {
DBG("submit_query: mysql_ping failed\n");
} CON_TIMESTAMP(_h) = t;ERR("mysql: submit_query: mysql_ping failed\n"); }
Index: modules/mysql/my_con.c
RCS file: /cvsroot/ser/sip_router/modules/mysql/my_con.c,v retrieving revision 1.7 diff -u -r1.7 my_con.c --- modules/mysql/my_con.c 30 Jan 2006 16:49:51 -0000 1.7 +++ modules/mysql/my_con.c 22 Jun 2007 14:33:02 -0000 @@ -26,6 +26,7 @@ */
#include "my_con.h" +#include "db_mod.h" #include "../../mem/mem.h" #include "../../dprint.h" #include "../../ut.h" @@ -41,6 +42,9 @@ struct my_con* new_connection(struct db_id* id) { struct my_con* ptr; +#if MYSQL_VERSION_ID >= 50013
- my_bool my_auto_reconnect;
+#endif
if (!id) { LOG(L_ERR, "new_connection: Invalid parameter value\n"); @@ -82,6 +86,34 @@ ZSW(id->database) ); } +#if MYSQL_VERSION_ID >= 50013
- my_auto_reconnect=1;
- if (my_client_ver>=50013){
if (mysql_options(ptr->con, MYSQL_OPT_RECONNECT ,
(char*)&my_auto_reconnect))
WARN("mysql: failed to set MYSQL_OPT_RECONNECT\n");
- }
+#endif
- if (my_connect_to){
if (mysql_options(ptr->con, MYSQL_OPT_CONNECT_TIMEOUT,
(char*)&my_connect_to))
WARN("mysql: failed to set MYSQL_OPT_CONNECT_TIMEOUT\n");
- }
+#if MYSQL_VERSION_ID >= 40101
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to){
if (mysql_options(ptr->con, MYSQL_OPT_WRITE_TIMEOUT ,
(char*)&my_send_to))
WARN("mysql: failed to set MYSQL_OPT_WRITE_TIMEOUT\n");
}
if (my_recv_to){
if (mysql_options(ptr->con, MYSQL_OPT_READ_TIMEOUT ,
(char*)&my_recv_to))
WARN("mysql: failed to set MYSQL_OPT_READ_TIMEOUT\n");
}
- }
+#endif
if (!mysql_real_connect(ptr->con, id->host, id->username, id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con));
Serdev mailing list Serdev@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serdev
My current mysql version is 5.0.27. There's a note in my ser 0.9.X patch/faq that states what versions it's good for (5.0.19+).
I only created this as we ended up having the same issue in 2.0 as we had in 0.9.X with the connection timeouts (as were a few other people), so its inclusion is perhaps more recent than our install.
N.
Greger V. Teigre wrote:
I'm not sure what the conclusion to this thread was. SIP: could you verify your mysql version? Jan: I haven't seen a ticket on that. Will we say that we don't support mysql version >=5.0.3 and <5.0.19? g-)
Jan Janak wrote:
Some more information:
mysql_options(ptr->con, MYSQL_OPT_RECONNECT,(char*)&my_auto_reconnect)
is internally implemented as:
case MYSQL_OPT_RECONNECT: mysql->reconnect= *(my_bool *) arg; break;
and that code is already present in 2.0:
if (!mysql_real_connect(ptr->con, id->host, id->username, id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con)); mysql_close(ptr->con); goto err; }
/* Enable reconnection explicitly */ ptr->con->reconnect = 1;
This is the old way of enabling automatic reconnects in mysql but it does the same.
Jan.
Andrei Pelinescu-Onciul wrote:
On Dec 10, 2007 at 07:20, Greger V. Teigre greger@teigre.com wrote:
[removed sems and semsdev from cc]
SIP wrote:
> Secondary (but no less important) items that are a must-have: > -MySQL (I'm voting for 5 series here, but that will require my patch for > the mysql code in SER 2.0) > > > why the patch?
MySQL 5.0.X automatically times out its sockets after a hardcoded period of time. Unless you have configured the socket to auto reconnect (see http://www.ideasip.com/support/utils/my_con.c.SER2 ), after a little while, the socket will just time out and you will have to restart SER in order to connect to the database (it will throw errors).
I thought that issue was resolved. Can you check the tracker ticket and verify that it is scheduled for ser 2.0 release?
It is fixed in a different way in 2.1, but it was not backported to 2.0 (see http://lists.iptel.org/pipermail/serdev/2007-June/010460.html).
Jan, have you forgotten to backport it or is there some other reason?
(patch for 2.0 attached)
Andrei
? modules/mysql/.db_mod.c.swp Index: modules/mysql/db_mod.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.c,v retrieving revision 1.29 diff -u -r1.29 db_mod.c --- modules/mysql/db_mod.c 8 Jan 2006 22:43:17 -0000 1.29 +++ modules/mysql/db_mod.c 22 Jun 2007 14:33:02 -0000 @@ -41,6 +41,14 @@
int ping_interval = 5 * 60; /* Default is 5 minutes */ int auto_reconnect = 1; /* Default is enabled */ +unsigned int my_connect_to=2; /* 2 s by default */ +unsigned int my_send_to=0; /* enabled only for mysql >= 5.25 */ +unsigned int my_recv_to=0; /* enabled only for mysql >= 5.25 */
+unsigned long my_client_ver=0;
+#define DEFAULT_MY_SEND_TO 2 /* s */ +#define DEFAULT_MY_RECV_TO 4 /* s */
static int mysql_mod_init(void);
@@ -71,6 +79,9 @@ static param_export_t params[] = { {"ping_interval", PARAM_INT, &ping_interval}, {"auto_reconnect", PARAM_INT, &auto_reconnect},
- {"connect_timeout", PARAM_INT, &my_connect_to},
- {"send_timeout", PARAM_INT, &my_send_to},
- {"receive_timeout", PARAM_INT, &my_recv_to}, {0, 0, 0}
};
@@ -90,6 +101,28 @@
static int mysql_mod_init(void) { +#if MYSQL_VERSION_ID >= 40101
- my_client_ver=mysql_get_client_version();
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to==0)
my_send_to= DEFAULT_MY_SEND_TO;
if (my_recv_to==0)
my_recv_to= DEFAULT_MY_RECV_TO;
- }else if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set, but "
" not supported by the installed mysql client library"
" (needed at least 4.1.22 or 5.0.25, but installed %ld)\n",
my_client_ver);
- }
+#else
- if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set, but "
" not supported by the mysql client library used to compile"
" the mysql module (needed at least 4.1.1 but "
" compiled against %ld)\n", MYSQL_VERSION_ID);
- }
+#endif DBG("mysql: MySQL client version is %s\n", mysql_get_client_info()); return 0; } Index: modules/mysql/db_mod.h =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.h,v retrieving revision 1.3 diff -u -r1.3 db_mod.h --- modules/mysql/db_mod.h 28 Oct 2004 23:36:14 -0000 1.3 +++ modules/mysql/db_mod.h 22 Jun 2007 14:33:02 -0000 @@ -38,5 +38,10 @@
extern int ping_interval; extern int auto_reconnect; +extern unsigned int my_connect_to; /* 2 s by default */ +extern unsigned int my_send_to; /* enabled only for mysql >= 5.25 */ +extern unsigned int my_recv_to; /* enabled only for mysql >= 5.25 */
+extern unsigned long my_client_ver;
#endif /* DB_MOD_H */ Index: modules/mysql/dbase.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/dbase.c,v retrieving revision 1.48.2.1 diff -u -r1.48.2.1 dbase.c --- modules/mysql/dbase.c 23 Feb 2007 21:19:31 -0000 1.48.2.1 +++ modules/mysql/dbase.c 22 Jun 2007 14:33:02 -0000 @@ -68,7 +68,7 @@ t = time(0); if ((t - CON_TIMESTAMP(_h)) > ping_interval) { if (mysql_ping(CON_CONNECTION(_h))) {
DBG("submit_query: mysql_ping failed\n");
} CON_TIMESTAMP(_h) = t;ERR("mysql: submit_query: mysql_ping failed\n"); }
Index: modules/mysql/my_con.c
RCS file: /cvsroot/ser/sip_router/modules/mysql/my_con.c,v retrieving revision 1.7 diff -u -r1.7 my_con.c --- modules/mysql/my_con.c 30 Jan 2006 16:49:51 -0000 1.7 +++ modules/mysql/my_con.c 22 Jun 2007 14:33:02 -0000 @@ -26,6 +26,7 @@ */
#include "my_con.h" +#include "db_mod.h" #include "../../mem/mem.h" #include "../../dprint.h" #include "../../ut.h" @@ -41,6 +42,9 @@ struct my_con* new_connection(struct db_id* id) { struct my_con* ptr; +#if MYSQL_VERSION_ID >= 50013
- my_bool my_auto_reconnect;
+#endif
if (!id) { LOG(L_ERR, "new_connection: Invalid parameter value\n"); @@ -82,6 +86,34 @@ ZSW(id->database) ); } +#if MYSQL_VERSION_ID >= 50013
- my_auto_reconnect=1;
- if (my_client_ver>=50013){
if (mysql_options(ptr->con, MYSQL_OPT_RECONNECT ,
(char*)&my_auto_reconnect))
WARN("mysql: failed to set MYSQL_OPT_RECONNECT\n");
- }
+#endif
- if (my_connect_to){
if (mysql_options(ptr->con, MYSQL_OPT_CONNECT_TIMEOUT,
(char*)&my_connect_to))
WARN("mysql: failed to set MYSQL_OPT_CONNECT_TIMEOUT\n");
- }
+#if MYSQL_VERSION_ID >= 40101
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to){
if (mysql_options(ptr->con, MYSQL_OPT_WRITE_TIMEOUT ,
(char*)&my_send_to))
WARN("mysql: failed to set MYSQL_OPT_WRITE_TIMEOUT\n");
}
if (my_recv_to){
if (mysql_options(ptr->con, MYSQL_OPT_READ_TIMEOUT ,
(char*)&my_recv_to))
WARN("mysql: failed to set MYSQL_OPT_READ_TIMEOUT\n");
}
- }
+#endif
if (!mysql_real_connect(ptr->con, id->host, id->username, id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con));
Serdev mailing list Serdev@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serdev
On Dec 13, 2007 at 12:14, Greger V. Teigre greger@teigre.com wrote:
I'm not sure what the conclusion to this thread was. SIP: could you verify your mysql version? Jan: I haven't seen a ticket on that. Will we say that we don't support mysql version >=5.0.3 and <5.0.19?
I think the conclusion is it should work with ser 2.0 too if mysql is not one of the broken versions. We could try to add a warning message if the mysql versions is among the ones not supported, something like:
#if MYSQL_VERSION_ID >= 40016 my_client_ver=mysql_get_version(); if (my_client_ver >= 50003) && (my_client_ver < 50013) WARN("mysql: you are using an unsupported libmysqlclient version (%d), " "please upgrade to at least libmysqlclient 5.0.13\n", my_client_ver)); #endif
somewhere in mysql_mod_init.
Andrei
g-)
Jan Janak wrote:
Some more information:
mysql_options(ptr->con, MYSQL_OPT_RECONNECT,(char*)&my_auto_reconnect)
is internally implemented as:
case MYSQL_OPT_RECONNECT: mysql->reconnect= *(my_bool *) arg; break;
and that code is already present in 2.0:
if (!mysql_real_connect(ptr->con, id->host, id->username, id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con)); mysql_close(ptr->con); goto err; }
/* Enable reconnection explicitly */ ptr->con->reconnect = 1;
This is the old way of enabling automatic reconnects in mysql but it does the same.
Jan.
Andrei Pelinescu-Onciul wrote:
On Dec 10, 2007 at 07:20, Greger V. Teigre greger@teigre.com wrote:
[removed sems and semsdev from cc]
SIP wrote:
>Secondary (but no less important) items that are a must-have: >-MySQL (I'm voting for 5 series here, but that will require my patch >for the mysql code in SER 2.0) > > > why the patch?
MySQL 5.0.X automatically times out its sockets after a hardcoded period of time. Unless you have configured the socket to auto reconnect (see http://www.ideasip.com/support/utils/my_con.c.SER2 ), after a little while, the socket will just time out and you will have to restart SER in order to connect to the database (it will throw errors).
I thought that issue was resolved. Can you check the tracker ticket and verify that it is scheduled for ser 2.0 release?
It is fixed in a different way in 2.1, but it was not backported to 2.0 (see http://lists.iptel.org/pipermail/serdev/2007-June/010460.html).
Jan, have you forgotten to backport it or is there some other reason?
(patch for 2.0 attached)
Andrei
? modules/mysql/.db_mod.c.swp Index: modules/mysql/db_mod.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.c,v retrieving revision 1.29 diff -u -r1.29 db_mod.c --- modules/mysql/db_mod.c 8 Jan 2006 22:43:17 -0000 1.29 +++ modules/mysql/db_mod.c 22 Jun 2007 14:33:02 -0000 @@ -41,6 +41,14 @@
int ping_interval = 5 * 60; /* Default is 5 minutes */ int auto_reconnect = 1; /* Default is enabled */ +unsigned int my_connect_to=2; /* 2 s by default */ +unsigned int my_send_to=0; /* enabled only for mysql >= 5.25 */ +unsigned int my_recv_to=0; /* enabled only for mysql >= 5.25 */
+unsigned long my_client_ver=0;
+#define DEFAULT_MY_SEND_TO 2 /* s */ +#define DEFAULT_MY_RECV_TO 4 /* s */
static int mysql_mod_init(void);
@@ -71,6 +79,9 @@ static param_export_t params[] = { {"ping_interval", PARAM_INT, &ping_interval}, {"auto_reconnect", PARAM_INT, &auto_reconnect},
- {"connect_timeout", PARAM_INT, &my_connect_to},
- {"send_timeout", PARAM_INT, &my_send_to},
- {"receive_timeout", PARAM_INT, &my_recv_to}, {0, 0, 0}
};
@@ -90,6 +101,28 @@
static int mysql_mod_init(void) { +#if MYSQL_VERSION_ID >= 40101
- my_client_ver=mysql_get_client_version();
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to==0)
my_send_to= DEFAULT_MY_SEND_TO;
if (my_recv_to==0)
my_recv_to= DEFAULT_MY_RECV_TO;
- }else if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set,
but "
" not supported by the installed mysql
client library"
" (needed at least 4.1.22 or 5.0.25, but
installed %ld)\n",
my_client_ver);
- }
+#else
- if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set,
but "
" not supported by the mysql client library
used to compile"
" the mysql module (needed at least 4.1.1
but "
" compiled against %ld)\n",
MYSQL_VERSION_ID);
- }
+#endif DBG("mysql: MySQL client version is %s\n", mysql_get_client_info()); return 0; } Index: modules/mysql/db_mod.h =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.h,v retrieving revision 1.3 diff -u -r1.3 db_mod.h --- modules/mysql/db_mod.h 28 Oct 2004 23:36:14 -0000 1.3 +++ modules/mysql/db_mod.h 22 Jun 2007 14:33:02 -0000 @@ -38,5 +38,10 @@
extern int ping_interval; extern int auto_reconnect; +extern unsigned int my_connect_to; /* 2 s by default */ +extern unsigned int my_send_to; /* enabled only for mysql >= 5.25 */ +extern unsigned int my_recv_to; /* enabled only for mysql >= 5.25 */
+extern unsigned long my_client_ver;
#endif /* DB_MOD_H */ Index: modules/mysql/dbase.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/dbase.c,v retrieving revision 1.48.2.1 diff -u -r1.48.2.1 dbase.c --- modules/mysql/dbase.c 23 Feb 2007 21:19:31 -0000 1.48.2.1 +++ modules/mysql/dbase.c 22 Jun 2007 14:33:02 -0000 @@ -68,7 +68,7 @@ t = time(0); if ((t - CON_TIMESTAMP(_h)) > ping_interval) { if (mysql_ping(CON_CONNECTION(_h))) {
DBG("submit_query: mysql_ping failed\n");
ERR("mysql: submit_query: mysql_ping
failed\n"); } } CON_TIMESTAMP(_h) = t; Index: modules/mysql/my_con.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/my_con.c,v retrieving revision 1.7 diff -u -r1.7 my_con.c --- modules/mysql/my_con.c 30 Jan 2006 16:49:51 -0000 1.7 +++ modules/mysql/my_con.c 22 Jun 2007 14:33:02 -0000 @@ -26,6 +26,7 @@ */
#include "my_con.h" +#include "db_mod.h" #include "../../mem/mem.h" #include "../../dprint.h" #include "../../ut.h" @@ -41,6 +42,9 @@ struct my_con* new_connection(struct db_id* id) { struct my_con* ptr; +#if MYSQL_VERSION_ID >= 50013
- my_bool my_auto_reconnect;
+#endif
if (!id) { LOG(L_ERR, "new_connection: Invalid parameter value\n"); @@ -82,6 +86,34 @@ ZSW(id->database) ); } +#if MYSQL_VERSION_ID >= 50013
- my_auto_reconnect=1;
- if (my_client_ver>=50013){
if (mysql_options(ptr->con, MYSQL_OPT_RECONNECT ,
(char*)&my_auto_reconnect))
WARN("mysql: failed to set
MYSQL_OPT_RECONNECT\n");
- }
+#endif
- if (my_connect_to){
if (mysql_options(ptr->con, MYSQL_OPT_CONNECT_TIMEOUT,
(char*)&my_connect_to))
WARN("mysql: failed to set
MYSQL_OPT_CONNECT_TIMEOUT\n");
- }
+#if MYSQL_VERSION_ID >= 40101
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to){
if (mysql_options(ptr->con, MYSQL_OPT_WRITE_TIMEOUT
, + (char*)&my_send_to))
WARN("mysql: failed to set
MYSQL_OPT_WRITE_TIMEOUT\n");
}
if (my_recv_to){
if (mysql_options(ptr->con, MYSQL_OPT_READ_TIMEOUT ,
(char*)&my_recv_to))
WARN("mysql: failed to set
MYSQL_OPT_READ_TIMEOUT\n");
}
- }
+#endif
if (!mysql_real_connect(ptr->con, id->host, id->username, id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con));
Serdev mailing list Serdev@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serdev
If that's the case, then ought to make it >= 5003 < 50019, since the fix that was coded in to add the soft reconnects was ADDED in 5.0.13, but didn't work properly until 5.0.19. I think that's really all that can be done -- warn people to upgrade to a supported version.
N.
Andrei Pelinescu-Onciul wrote:
On Dec 13, 2007 at 12:14, Greger V. Teigre greger@teigre.com wrote:
I'm not sure what the conclusion to this thread was. SIP: could you verify your mysql version? Jan: I haven't seen a ticket on that. Will we say that we don't support mysql version >=5.0.3 and <5.0.19?
I think the conclusion is it should work with ser 2.0 too if mysql is not one of the broken versions. We could try to add a warning message if the mysql versions is among the ones not supported, something like:
#if MYSQL_VERSION_ID >= 40016 my_client_ver=mysql_get_version(); if (my_client_ver >= 50003) && (my_client_ver < 50013) WARN("mysql: you are using an unsupported libmysqlclient version (%d), " "please upgrade to at least libmysqlclient 5.0.13\n", my_client_ver)); #endif
somewhere in mysql_mod_init.
Andrei
g-)
Jan Janak wrote:
Some more information:
mysql_options(ptr->con, MYSQL_OPT_RECONNECT,(char*)&my_auto_reconnect)
is internally implemented as:
case MYSQL_OPT_RECONNECT: mysql->reconnect= *(my_bool *) arg; break;
and that code is already present in 2.0:
if (!mysql_real_connect(ptr->con, id->host, id->username, id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con)); mysql_close(ptr->con); goto err; }
/* Enable reconnection explicitly */ ptr->con->reconnect = 1;
This is the old way of enabling automatic reconnects in mysql but it does the same.
Jan.
Andrei Pelinescu-Onciul wrote:
On Dec 10, 2007 at 07:20, Greger V. Teigre greger@teigre.com wrote:
[removed sems and semsdev from cc]
SIP wrote:
>> Secondary (but no less important) items that are a must-have: >> -MySQL (I'm voting for 5 series here, but that will require my patch >> for the mysql code in SER 2.0) >> >> >> >> > why the patch? > > > > MySQL 5.0.X automatically times out its sockets after a hardcoded period of time. Unless you have configured the socket to auto reconnect (see http://www.ideasip.com/support/utils/my_con.c.SER2 ), after a little while, the socket will just time out and you will have to restart SER in order to connect to the database (it will throw errors).
I thought that issue was resolved. Can you check the tracker ticket and verify that it is scheduled for ser 2.0 release?
It is fixed in a different way in 2.1, but it was not backported to 2.0 (see http://lists.iptel.org/pipermail/serdev/2007-June/010460.html).
Jan, have you forgotten to backport it or is there some other reason?
(patch for 2.0 attached)
Andrei
? modules/mysql/.db_mod.c.swp Index: modules/mysql/db_mod.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.c,v retrieving revision 1.29 diff -u -r1.29 db_mod.c --- modules/mysql/db_mod.c 8 Jan 2006 22:43:17 -0000 1.29 +++ modules/mysql/db_mod.c 22 Jun 2007 14:33:02 -0000 @@ -41,6 +41,14 @@
int ping_interval = 5 * 60; /* Default is 5 minutes */ int auto_reconnect = 1; /* Default is enabled */ +unsigned int my_connect_to=2; /* 2 s by default */ +unsigned int my_send_to=0; /* enabled only for mysql >= 5.25 */ +unsigned int my_recv_to=0; /* enabled only for mysql >= 5.25 */
+unsigned long my_client_ver=0;
+#define DEFAULT_MY_SEND_TO 2 /* s */ +#define DEFAULT_MY_RECV_TO 4 /* s */
static int mysql_mod_init(void);
@@ -71,6 +79,9 @@ static param_export_t params[] = { {"ping_interval", PARAM_INT, &ping_interval}, {"auto_reconnect", PARAM_INT, &auto_reconnect},
- {"connect_timeout", PARAM_INT, &my_connect_to},
- {"send_timeout", PARAM_INT, &my_send_to},
- {"receive_timeout", PARAM_INT, &my_recv_to}, {0, 0, 0}
};
@@ -90,6 +101,28 @@
static int mysql_mod_init(void) { +#if MYSQL_VERSION_ID >= 40101
- my_client_ver=mysql_get_client_version();
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to==0)
my_send_to= DEFAULT_MY_SEND_TO;
if (my_recv_to==0)
my_recv_to= DEFAULT_MY_RECV_TO;
- }else if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set,
but "
" not supported by the installed mysql
client library"
" (needed at least 4.1.22 or 5.0.25, but
installed %ld)\n",
my_client_ver);
- }
+#else
- if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set,
but "
" not supported by the mysql client library
used to compile"
" the mysql module (needed at least 4.1.1
but "
" compiled against %ld)\n",
MYSQL_VERSION_ID);
- }
+#endif DBG("mysql: MySQL client version is %s\n", mysql_get_client_info()); return 0; } Index: modules/mysql/db_mod.h =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.h,v retrieving revision 1.3 diff -u -r1.3 db_mod.h --- modules/mysql/db_mod.h 28 Oct 2004 23:36:14 -0000 1.3 +++ modules/mysql/db_mod.h 22 Jun 2007 14:33:02 -0000 @@ -38,5 +38,10 @@
extern int ping_interval; extern int auto_reconnect; +extern unsigned int my_connect_to; /* 2 s by default */ +extern unsigned int my_send_to; /* enabled only for mysql >= 5.25 */ +extern unsigned int my_recv_to; /* enabled only for mysql >= 5.25 */
+extern unsigned long my_client_ver;
#endif /* DB_MOD_H */ Index: modules/mysql/dbase.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/dbase.c,v retrieving revision 1.48.2.1 diff -u -r1.48.2.1 dbase.c --- modules/mysql/dbase.c 23 Feb 2007 21:19:31 -0000 1.48.2.1 +++ modules/mysql/dbase.c 22 Jun 2007 14:33:02 -0000 @@ -68,7 +68,7 @@ t = time(0); if ((t - CON_TIMESTAMP(_h)) > ping_interval) { if (mysql_ping(CON_CONNECTION(_h))) {
DBG("submit_query: mysql_ping failed\n");
ERR("mysql: submit_query: mysql_ping
failed\n"); } } CON_TIMESTAMP(_h) = t; Index: modules/mysql/my_con.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/my_con.c,v retrieving revision 1.7 diff -u -r1.7 my_con.c --- modules/mysql/my_con.c 30 Jan 2006 16:49:51 -0000 1.7 +++ modules/mysql/my_con.c 22 Jun 2007 14:33:02 -0000 @@ -26,6 +26,7 @@ */
#include "my_con.h" +#include "db_mod.h" #include "../../mem/mem.h" #include "../../dprint.h" #include "../../ut.h" @@ -41,6 +42,9 @@ struct my_con* new_connection(struct db_id* id) { struct my_con* ptr; +#if MYSQL_VERSION_ID >= 50013
- my_bool my_auto_reconnect;
+#endif
if (!id) { LOG(L_ERR, "new_connection: Invalid parameter value\n"); @@ -82,6 +86,34 @@ ZSW(id->database) ); } +#if MYSQL_VERSION_ID >= 50013
- my_auto_reconnect=1;
- if (my_client_ver>=50013){
if (mysql_options(ptr->con, MYSQL_OPT_RECONNECT ,
(char*)&my_auto_reconnect))
WARN("mysql: failed to set
MYSQL_OPT_RECONNECT\n");
- }
+#endif
- if (my_connect_to){
if (mysql_options(ptr->con, MYSQL_OPT_CONNECT_TIMEOUT,
(char*)&my_connect_to))
WARN("mysql: failed to set
MYSQL_OPT_CONNECT_TIMEOUT\n");
- }
+#if MYSQL_VERSION_ID >= 40101
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to){
if (mysql_options(ptr->con, MYSQL_OPT_WRITE_TIMEOUT
, + (char*)&my_send_to))
WARN("mysql: failed to set
MYSQL_OPT_WRITE_TIMEOUT\n");
}
if (my_recv_to){
if (mysql_options(ptr->con, MYSQL_OPT_READ_TIMEOUT ,
(char*)&my_recv_to))
WARN("mysql: failed to set
MYSQL_OPT_READ_TIMEOUT\n");
}
- }
+#endif
if (!mysql_real_connect(ptr->con, id->host, id->username, id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con));
Serdev mailing list Serdev@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serdev
Greger V. Teigre wrote:
I'm not sure what the conclusion to this thread was. SIP: could you verify your mysql version? Jan: I haven't seen a ticket on that. Will we say that we don't support mysql version >=5.0.3 and <5.0.19?
No, I will try to fix it in both 2.0 and 2.1
Jan.
g-)
Jan Janak wrote:
Some more information:
mysql_options(ptr->con, MYSQL_OPT_RECONNECT,(char*)&my_auto_reconnect)
is internally implemented as:
case MYSQL_OPT_RECONNECT: mysql->reconnect= *(my_bool *) arg; break;
and that code is already present in 2.0:
if (!mysql_real_connect(ptr->con, id->host, id->username, id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con)); mysql_close(ptr->con); goto err; }
/* Enable reconnection explicitly */ ptr->con->reconnect = 1;
This is the old way of enabling automatic reconnects in mysql but it does the same.
Jan.
Andrei Pelinescu-Onciul wrote:
On Dec 10, 2007 at 07:20, Greger V. Teigre greger@teigre.com wrote:
[removed sems and semsdev from cc]
SIP wrote:
> Secondary (but no less important) items that are a must-have: > -MySQL (I'm voting for 5 series here, but that will require my > patch for the mysql code in SER 2.0) > why the patch?
MySQL 5.0.X automatically times out its sockets after a hardcoded period of time. Unless you have configured the socket to auto reconnect (see http://www.ideasip.com/support/utils/my_con.c.SER2 ), after a little while, the socket will just time out and you will have to restart SER in order to connect to the database (it will throw errors).
I thought that issue was resolved. Can you check the tracker ticket and verify that it is scheduled for ser 2.0 release?
It is fixed in a different way in 2.1, but it was not backported to 2.0 (see http://lists.iptel.org/pipermail/serdev/2007-June/010460.html).
Jan, have you forgotten to backport it or is there some other reason?
(patch for 2.0 attached)
Andrei
? modules/mysql/.db_mod.c.swp Index: modules/mysql/db_mod.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.c,v retrieving revision 1.29 diff -u -r1.29 db_mod.c --- modules/mysql/db_mod.c 8 Jan 2006 22:43:17 -0000 1.29 +++ modules/mysql/db_mod.c 22 Jun 2007 14:33:02 -0000 @@ -41,6 +41,14 @@
int ping_interval = 5 * 60; /* Default is 5 minutes */ int auto_reconnect = 1; /* Default is enabled */ +unsigned int my_connect_to=2; /* 2 s by default */ +unsigned int my_send_to=0; /* enabled only for mysql >= 5.25 */ +unsigned int my_recv_to=0; /* enabled only for mysql >= 5.25 */
+unsigned long my_client_ver=0;
+#define DEFAULT_MY_SEND_TO 2 /* s */ +#define DEFAULT_MY_RECV_TO 4 /* s */
static int mysql_mod_init(void);
@@ -71,6 +79,9 @@ static param_export_t params[] = { {"ping_interval", PARAM_INT, &ping_interval}, {"auto_reconnect", PARAM_INT, &auto_reconnect},
- {"connect_timeout", PARAM_INT, &my_connect_to},
- {"send_timeout", PARAM_INT, &my_send_to},
- {"receive_timeout", PARAM_INT, &my_recv_to}, {0, 0, 0}
};
@@ -90,6 +101,28 @@
static int mysql_mod_init(void) { +#if MYSQL_VERSION_ID >= 40101
- my_client_ver=mysql_get_client_version();
- if ((my_client_ver>=50025) || ((my_client_ver >= 40122) &&
(my_client_ver < 50000))){
if (my_send_to==0)
my_send_to= DEFAULT_MY_SEND_TO;
if (my_recv_to==0)
my_recv_to= DEFAULT_MY_RECV_TO;
- }else if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set, but "
" not supported by the installed mysql client library"
" (needed at least 4.1.22 or 5.0.25, but installed
%ld)\n",
my_client_ver);
- }
+#else
- if (my_recv_to || my_send_to){
LOG(L_WARN, "WARNING: mysql send or received timeout set, but "
" not supported by the mysql client library used to
compile"
" the mysql module (needed at least 4.1.1 but "
" compiled against %ld)\n", MYSQL_VERSION_ID);
- }
+#endif DBG("mysql: MySQL client version is %s\n", mysql_get_client_info()); return 0; } Index: modules/mysql/db_mod.h =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/db_mod.h,v retrieving revision 1.3 diff -u -r1.3 db_mod.h --- modules/mysql/db_mod.h 28 Oct 2004 23:36:14 -0000 1.3 +++ modules/mysql/db_mod.h 22 Jun 2007 14:33:02 -0000 @@ -38,5 +38,10 @@
extern int ping_interval; extern int auto_reconnect; +extern unsigned int my_connect_to; /* 2 s by default */ +extern unsigned int my_send_to; /* enabled only for mysql >= 5.25 */ +extern unsigned int my_recv_to; /* enabled only for mysql >= 5.25 */
+extern unsigned long my_client_ver;
#endif /* DB_MOD_H */ Index: modules/mysql/dbase.c =================================================================== RCS file: /cvsroot/ser/sip_router/modules/mysql/Attic/dbase.c,v retrieving revision 1.48.2.1 diff -u -r1.48.2.1 dbase.c --- modules/mysql/dbase.c 23 Feb 2007 21:19:31 -0000 1.48.2.1 +++ modules/mysql/dbase.c 22 Jun 2007 14:33:02 -0000 @@ -68,7 +68,7 @@ t = time(0); if ((t - CON_TIMESTAMP(_h)) > ping_interval) { if (mysql_ping(CON_CONNECTION(_h))) {
DBG("submit_query: mysql_ping failed\n");
ERR("mysql: submit_query: mysql_ping failed\n"); } } CON_TIMESTAMP(_h) = t;
Index: modules/mysql/my_con.c
RCS file: /cvsroot/ser/sip_router/modules/mysql/my_con.c,v retrieving revision 1.7 diff -u -r1.7 my_con.c --- modules/mysql/my_con.c 30 Jan 2006 16:49:51 -0000 1.7 +++ modules/mysql/my_con.c 22 Jun 2007 14:33:02 -0000 @@ -26,6 +26,7 @@ */
#include "my_con.h" +#include "db_mod.h" #include "../../mem/mem.h" #include "../../dprint.h" #include "../../ut.h" @@ -41,6 +42,9 @@ struct my_con* new_connection(struct db_id* id) { struct my_con* ptr; +#if MYSQL_VERSION_ID >= 50013 + my_bool my_auto_reconnect; +#endif
if (!id) { LOG(L_ERR, "new_connection: Invalid parameter value\n");
@@ -82,6 +86,34 @@ ZSW(id->database) ); } +#if MYSQL_VERSION_ID >= 50013 + my_auto_reconnect=1;
- if (my_client_ver>=50013){
if (mysql_options(ptr->con, MYSQL_OPT_RECONNECT ,
(char*)&my_auto_reconnect))
WARN("mysql: failed to set MYSQL_OPT_RECONNECT\n");
- }
+#endif
- if (my_connect_to){
if (mysql_options(ptr->con, MYSQL_OPT_CONNECT_TIMEOUT,
(char*)&my_connect_to))
WARN("mysql: failed to set
MYSQL_OPT_CONNECT_TIMEOUT\n");
- }
+#if MYSQL_VERSION_ID >= 40101 + if ((my_client_ver>=50025) || ((my_client_ver >= 40122) && + (my_client_ver < 50000))){
if (my_send_to){
if (mysql_options(ptr->con, MYSQL_OPT_WRITE_TIMEOUT ,
(char*)&my_send_to))
WARN("mysql: failed to set MYSQL_OPT_WRITE_TIMEOUT\n");
}
if (my_recv_to){
if (mysql_options(ptr->con, MYSQL_OPT_READ_TIMEOUT ,
(char*)&my_recv_to))
WARN("mysql: failed to set MYSQL_OPT_READ_TIMEOUT\n");
}
- }
+#endif
if (!mysql_real_connect(ptr->con, id->host, id->username,
id->password, id->database, id->port, 0, 0)) { LOG(L_ERR, "new_connection: %s\n", mysql_error(ptr->con));
Serdev mailing list Serdev@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serdev
SIP wrote:
BUT... first things first. :) We need a list of everything that's going to be in this bundle.
My assumptions are (at the basic level):
-SER 2.0 (in whatever state it's in atm) -SERWeb -RTPProxy -SEMS
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0) -Apache (req'd for SERweb) -SIPsak -ngrep (invaluable for debugging as well as learning)
Optional: -mediaproxy -freeradius -radiusclient (for those who want to mesh SER with an existing radius infrastructure perhaps)
Thoughts?
sip scenario and tcpdump is also must.
I would also add sipspy (http://www.wesip.com/mediawiki/index.php/SipSpy) spyAgent, as this allows to easily visualise what is going on, which is important especially for beginners - its like realtime sip scenario.
Stefan
Stefan Sayer wrote:
SIP wrote:
BUT... first things first. :) We need a list of everything that's going to be in this bundle.
My assumptions are (at the basic level):
-SER 2.0 (in whatever state it's in atm) -SERWeb -RTPProxy -SEMS
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0) -Apache (req'd for SERweb) -SIPsak -ngrep (invaluable for debugging as well as learning)
Optional: -mediaproxy -freeradius -radiusclient (for those who want to mesh SER with an existing radius infrastructure perhaps)
Thoughts?
sip scenario and tcpdump is also must.
I would also add sipspy (http://www.wesip.com/mediawiki/index.php/SipSpy) spyAgent, as this allows to easily visualise what is going on, which is important especially for beginners - its like realtime sip scenario.
+tshark/wireshark +sipp
/alfred
Stefan
Added tshark to the project list of tools, sipp was already there. g-)
Alfred E. Heggestad wrote:
Stefan Sayer wrote:
SIP wrote:
BUT... first things first. :) We need a list of everything that's going to be in this bundle.
My assumptions are (at the basic level):
-SER 2.0 (in whatever state it's in atm) -SERWeb -RTPProxy -SEMS
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0) -Apache (req'd for SERweb) -SIPsak -ngrep (invaluable for debugging as well as learning)
Optional: -mediaproxy -freeradius -radiusclient (for those who want to mesh SER with an existing radius infrastructure perhaps)
Thoughts?
sip scenario and tcpdump is also must.
I would also add sipspy (http://www.wesip.com/mediawiki/index.php/SipSpy) spyAgent, as this allows to easily visualise what is going on, which is important especially for beginners - its like realtime sip scenario.
+tshark/wireshark +sipp
/alfred
Stefan
Serdev mailing list Serdev@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serdev
On Dec 9, 2007 6:30 PM, SIP sip@arcdiv.com wrote:
Greger V. Teigre wrote:
Hi guys, thanks a bunch for lots of input and I really appreciate the willingness to contribute. Thus, I have created a "project page": http://www.iptel.org/sip_express_bundle_sip_service_in_15_minutes
I thought we could gather the current perspective on that page and document our decisions as we go. It will hopefully be useful in our process, as well as documentation for us and others later.
I have noted the following volunteers: Jai: testing and installation work ram: testing
yes iam there.
SIP: tesing Jiri: anyting? Mike: testing and documentation
Maybe we should set up a small mailing list for coordination emails, but for now, let's use serusers (where I think all the comments came). (I copy the other lists on this post, so the other lists know that the discussion will move to serusers).
Out of the comments, I read CentOS and vmware as the most wanted combination. I have documented the pros and cons on the project page, and suggest that we do some testing before we decide. I also tried out rpath (which I have no previous experience with). My observations are documented on the same page.
Thus, I have started setting up a minimal CentOS virtual appliance found in vmware's appliance directory on an esx server. I will send details on accessing it to the volunteers once it is up and running (decompressing, unpacking, and building a non-split disk takes an awful lot of time :-( ).
CENTOS will be good idea.
Ok, further comments, ideas, etc, please post to serusers or edit/add comments to the project page (requires an iptel.org account). I see the following steps with documentation as we go (steps also found on the project page):
- Testing and specification of what we want to accomplish
- Environment and OS setup to ensure that we easily can release new
versions 3. Installation and configuration of the software. I assume this step also will involve development of some tools we need, as well as adaptation of existing stuff 4. Testing and user documentation 5. Packaging and deployment Something I noted about the project. While I am all for a virtual image
for testing purposes and getting things up and running while we're creating this project, I think the ultimate goal should be something like an ISO that's ready to go on a server. There are many of us in the systems world who have not bought into the whole virtualisation marketing gimmick when it comes to system deployment, and for the casual home user who's less comfortable with using VMs for an actual production system (which is, to be honest, a lot of people), it might be easier in the long term to get everything the way we want it and then make an ISO that's ready to drop onto whatever machine with all the components we need.
BUT... first things first. :) We need a list of everything that's going to be in this bundle.
yes , we need to look at common man and make this installation process and to be menu driven, while installation going on.
My assumptions are (at the basic level):
-SER 2.0 (in whatever state it's in atm) -SERWeb -RTPProxy -SEMS
we need to look at Media proxy also as a base, since it has some monitoring tools.
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0) -Apache (req'd for SERweb) -SIPsak -ngrep (invaluable for debugging as well as learning)
yes all the tools needed
Optional: -mediaproxy -freeradius -radiusclient (for those who want to mesh SER with an existing radius infrastructure perhaps)
yes for the accurate billing we need to consider Radius
Thoughts?
we also need to look at modular solution. and documentation for the same.
Like each service in one server.
ram
Wow, Great, Seems the balling is rolling forward and there is great feedback from every one. 1. Just want to confirm that I am in. 2. I would also vote for CentOS and vmware. 3. How about sipp, which can be a good performance testing tool. 4. I hope we will be using latest release (or at least 2nst last stable release) of kernel, mysql, apache, php, perl etc. The reason I mentioned this is that, serweb had issues with Apache 2.x and php 5.x.
Cheers, -Jai
On Dec 9, 2007 8:23 PM, ram talk2ram@gmail.com wrote:
On Dec 9, 2007 6:30 PM, SIP sip@arcdiv.com wrote:
Greger V. Teigre wrote:
Hi guys, thanks a bunch for lots of input and I really appreciate the willingness to contribute. Thus, I have created a "project page": http://www.iptel.org/sip_express_bundle_sip_service_in_15_minutes
I thought we could gather the current perspective on that page and document our decisions as we go. It will hopefully be useful in our process, as well as documentation for us and others later.
I have noted the following volunteers: Jai: testing and installation work ram: testing
yes iam there.
SIP: tesing Jiri: anyting? Mike: testing and documentation
Maybe we should set up a small mailing list for coordination emails, but for now, let's use serusers (where I think all the comments came).
(I copy the other lists on this post, so the other lists know that the discussion will move to serusers).
Out of the comments, I read CentOS and vmware as the most wanted combination. I have documented the pros and cons on the project page, and suggest that we do some testing before we decide. I also tried out rpath (which I have no previous experience with). My observations are documented on the same page.
Thus, I have started setting up a minimal CentOS virtual appliance found in vmware's appliance directory on an esx server. I will send details on accessing it to the volunteers once it is up and running (decompressing, unpacking, and building a non-split disk takes an awful lot of time :-( ).
CENTOS will be good idea.
Ok, further comments, ideas, etc, please post to serusers or edit/add comments to the project page (requires an iptel.org account). I see the following steps with documentation as we go (steps also found on the project page):
- Testing and specification of what we want to accomplish
- Environment and OS setup to ensure that we easily can release new
versions 3. Installation and configuration of the software. I assume this step also will involve development of some tools we need, as well as adaptation of existing stuff 4. Testing and user documentation 5. Packaging and deployment Something I noted about the project. While I am all for a virtual
image for testing purposes and getting things up and running while we're creating this project, I think the ultimate goal should be something like an ISO that's ready to go on a server. There are many of us in the systems world who have not bought into the whole virtualisation marketing gimmick when it comes to system deployment, and for the casual
home user who's less comfortable with using VMs for an actual production system (which is, to be honest, a lot of people), it might be easier in the long term to get everything the way we want it and then make an ISO that's ready to drop onto whatever machine with all the components we need.
BUT... first things first. :) We need a list of everything that's going to be in this bundle.
yes , we need to look at common man and make this installation process and to be menu driven, while installation going on.
My assumptions are (at the basic level):
-SER 2.0 (in whatever state it's in atm) -SERWeb -RTPProxy -SEMS
we need to look at Media proxy also as a base, since it has some monitoring tools.
Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0) -Apache (req'd for SERweb) -SIPsak -ngrep (invaluable for debugging as well as learning)
yes all the tools needed
Optional: -mediaproxy -freeradius -radiusclient (for those who want to mesh SER with an existing radius infrastructure perhaps)
yes for the accurate billing we need to consider Radius
Thoughts?
we also need to look at modular solution. and documentation for the same.
Like each service in one server.
ram
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
[removed sems, semsdev, and serdev from cc]
I have updated the project page with: - all the suggestions for what we have to install - team members http://www.iptel.org/sip_express_bundle_sip_service_in_15_minutes g-)
Jai Rangi wrote:
Wow, Great, Seems the balling is rolling forward and there is great feedback from every one.
- Just want to confirm that I am in.
- I would also vote for CentOS and vmware.
- How about sipp, which can be a good performance testing tool.
- I hope we will be using latest release (or at least 2nst last
stable release) of kernel, mysql, apache, php, perl etc. The reason I mentioned this is that, serweb had issues with Apache 2.x and php 5.x.
Cheers, -Jai
On Dec 9, 2007 8:23 PM, ram <talk2ram@gmail.com mailto:talk2ram@gmail.com> wrote:
On Dec 9, 2007 6:30 PM, SIP <sip@arcdiv.com <mailto:sip@arcdiv.com>> wrote: Greger V. Teigre wrote: > Hi guys, thanks a bunch for lots of input and I really appreciate the > willingness to contribute. > Thus, I have created a "project page": > http://www.iptel.org/sip_express_bundle_sip_service_in_15_minutes > > I thought we could gather the current perspective on that page and > document our decisions as we go. It will hopefully be useful in our > process, as well as documentation for us and others later. > > I have noted the following volunteers: > Jai: testing and installation work > ram: testing yes iam there. > SIP: tesing > Jiri: anyting? > Mike: testing and documentation > > Maybe we should set up a small mailing list for coordination emails, > but for now, let's use serusers (where I think all the comments came). > (I copy the other lists on this post, so the other lists know that the > discussion will move to serusers). > > Out of the comments, I read CentOS and vmware as the most wanted > combination. I have documented the pros and cons on the project page, > and suggest that we do some testing before we decide. I also tried out > rpath (which I have no previous experience with). My observations are > documented on the same page. > > Thus, I have started setting up a minimal CentOS virtual appliance > found in vmware's appliance directory on an esx server. I will send > details on accessing it to the volunteers once it is up and running > (decompressing, unpacking, and building a non-split disk takes an > awful lot of time :-( ). > CENTOS will be good idea. > Ok, further comments, ideas, etc, please post to serusers or edit/add > comments to the project page (requires an iptel.org <http://iptel.org/> account). I see > the following steps with documentation as we go (steps also found on > the project page): > 1. Testing and specification of what we want to accomplish > 2. Environment and OS setup to ensure that we easily can release new > versions > 3. Installation and configuration of the software. I assume this step > also will involve development of some tools we need, as well as > adaptation of existing stuff > 4. Testing and user documentation > 5. Packaging and deployment >Something I noted about the project. While I am all for a virtual image for testing purposes and getting things up and running while we're creating this project, I think the ultimate goal should be something like an ISO that's ready to go on a server. There are many of us in the systems world who have not bought into the whole virtualisation marketing gimmick when it comes to system deployment, and for the casual home user who's less comfortable with using VMs for an actual production system (which is, to be honest, a lot of people), it might be easier in the long term to get everything the way we want it and then make an ISO that's ready to drop onto whatever machine with all the components we need. BUT... first things first. :) We need a list of everything that's going to be in this bundle. yes , we need to look at common man and make this installation process and to be menu driven, while installation going on. My assumptions are (at the basic level): -SER 2.0 (in whatever state it's in atm) -SERWeb -RTPProxy -SEMS we need to look at Media proxy also as a base, since it has some monitoring tools. Secondary (but no less important) items that are a must-have: -MySQL (I'm voting for 5 series here, but that will require my patch for the mysql code in SER 2.0) -Apache (req'd for SERweb) -SIPsak -ngrep (invaluable for debugging as well as learning) yes all the tools needed Optional: -mediaproxy -freeradius -radiusclient (for those who want to mesh SER with an existing radius infrastructure perhaps) yes for the accurate billing we need to consider Radius Thoughts? we also need to look at modular solution. and documentation for the same. Like each service in one server. ram _______________________________________________ Serusers mailing list Serusers@lists.iptel.org <mailto:Serusers@lists.iptel.org> http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
[removed sems, semsdev, and serdev from cc]
SIP wrote:
Something I noted about the project. While I am all for a virtual image for testing purposes and getting things up and running while we're creating this project, I think the ultimate goal should be something like an ISO that's ready to go on a server. There are many of us in the systems world who have not bought into the whole virtualisation marketing gimmick when it comes to system deployment, and for the casual home user who's less comfortable with using VMs for an actual production system (which is, to be honest, a lot of people), it might be easier in the long term to get everything the way we want it and then make an ISO that's ready to drop onto whatever machine with all the components we need.
Ok. When you say "ISO that's ready to drop onto", do you have a particular procedure in mind?
g-)
Greger V. Teigre wrote:
[removed sems, semsdev, and serdev from cc]
SIP wrote:
Something I noted about the project. While I am all for a virtual image for testing purposes and getting things up and running while we're creating this project, I think the ultimate goal should be something like an ISO that's ready to go on a server. There are many of us in the systems world who have not bought into the whole virtualisation marketing gimmick when it comes to system deployment, and for the casual home user who's less comfortable with using VMs for an actual production system (which is, to be honest, a lot of people), it might be easier in the long term to get everything the way we want it and then make an ISO that's ready to drop onto whatever machine with all the components we need.
Ok. When you say "ISO that's ready to drop onto", do you have a particular procedure in mind?
g-)
Something like taking a kickstart file and making an installable livecd from it (something similar to the LiveCD berlios project). I don't KNOW of one that works to create installable ISOs in CentOS, but I'm sure there must be... somewhere... maybe....?
N.
Hi
iam working on the other project making CD we have done something like this
but we done with asterisks and other
may be i can help to do the same with CENTOS
ram On Dec 10, 2007 5:12 PM, SIP sip@arcdiv.com wrote:
Greger V. Teigre wrote:
[removed sems, semsdev, and serdev from cc]
SIP wrote:
Something I noted about the project. While I am all for a virtual
image
for testing purposes and getting things up and running while we're creating this project, I think the ultimate goal should be something like an ISO that's ready to go on a server. There are many of us in the systems world who have not bought into the whole virtualisation marketing gimmick when it comes to system deployment, and for the
casual
home user who's less comfortable with using VMs for an actual
production
system (which is, to be honest, a lot of people), it might be easier in the long term to get everything the way we want it and then make an ISO that's ready to drop onto whatever machine with all the components we
need.
Ok. When you say "ISO that's ready to drop onto", do you have a particular procedure in mind?
g-)
Something like taking a kickstart file and making an installable livecd from it (something similar to the LiveCD berlios project). I don't KNOW of one that works to create installable ISOs in CentOS, but I'm sure there must be... somewhere... maybe....?
N. _______________________________________________ Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Preparing Kickstart file is a good idea. How about running a post installation script in the kickstart file. We have done this a lots on time in FC*. The process should be something like this, 1. Build a default kickstart file that will install all the required packages for all the ser components. 2. The kickstart file have an option to run a post installation script. 3. Now we need to have one zip file of all the components we want to install related to ser. (ser, werbwer, sems, sipp, sppsak etc). That file can be placed either on the CDs or can be downloaded from somewhere. All the components can be packaged in the one zip file of they can be downloaded separately. 4. The script can be interactive.
BTW I have a small postinstallation shell script like that, and I can share that.
-Jai
On Dec 10, 2007 3:42 AM, SIP sip@arcdiv.com wrote:
Greger V. Teigre wrote:
[removed sems, semsdev, and serdev from cc]
SIP wrote:
Something I noted about the project. While I am all for a virtual
image
for testing purposes and getting things up and running while we're creating this project, I think the ultimate goal should be something like an ISO that's ready to go on a server. There are many of us in the systems world who have not bought into the whole virtualisation marketing gimmick when it comes to system deployment, and for the
casual
home user who's less comfortable with using VMs for an actual
production
system (which is, to be honest, a lot of people), it might be easier in the long term to get everything the way we want it and then make an ISO that's ready to drop onto whatever machine with all the components we
need.
Ok. When you say "ISO that's ready to drop onto", do you have a particular procedure in mind?
g-)
Something like taking a kickstart file and making an installable livecd from it (something similar to the LiveCD berlios project). I don't KNOW of one that works to create installable ISOs in CentOS, but I'm sure there must be... somewhere... maybe....?
N. _______________________________________________ Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
On Dec 10, 2007 11:02 PM, Jai Rangi jprangi@gmail.com wrote:
Preparing Kickstart file is a good idea. How about running a post installation script in the kickstart file. We have done this a lots on time in FC*. The process should be something like this,
- Build a default kickstart file that will install all the required
packages for all the ser components. 2. The kickstart file have an option to run a post installation script. 3. Now we need to have one zip file of all the components we want to install related to ser. (ser, werbwer, sems, sipp, sppsak etc). That file can be placed either on the CDs or can be downloaded from somewhere. All the components can be packaged in the one zip file of they can be downloaded separately. 4. The script can be interactive.
yes that will be the idea, for the CD install
after install of OS, we can run post install script to compile rest all required for SER ( or compile already for the same OS Distro and move them directly to the respective Directory)
BTW I have a small postinstallation shell script like that, and I can share that.
post to group, may be if require people may use.
ram
-Jai
On Dec 10, 2007 3:42 AM, SIP < sip@arcdiv.com> wrote:
Greger V. Teigre wrote:
[removed sems, semsdev, and serdev from cc]
SIP wrote:
Something I noted about the project. While I am all for a virtual
image
for testing purposes and getting things up and running while we're creating this project, I think the ultimate goal should be something like an ISO that's ready to go on a server. There are many of us in
the
systems world who have not bought into the whole virtualisation marketing gimmick when it comes to system deployment, and for the
casual
home user who's less comfortable with using VMs for an actual
production
system (which is, to be honest, a lot of people), it might be easier
in
the long term to get everything the way we want it and then make an
ISO
that's ready to drop onto whatever machine with all the components we
need.
Ok. When you say "ISO that's ready to drop onto", do you have a particular procedure in mind?
g-)
Something like taking a kickstart file and making an installable livecd from it (something similar to the LiveCD berlios project). I don't KNOW of one that works to create installable ISOs in CentOS, but I'm sure there must be... somewhere... maybe....?
N. _______________________________________________ Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Sounds good, Here is the script. Its been a while that we have used it. We might need to modify something. I can look into it later. Let me know if this is something you are looking for. ************************ #!/bin/sh # Need to add /bin/sh path # This script will install the softwares required to build softswitch. # Sysrequirements FC5, DELL 1950, # Jai # 12/11/06
HOSTNAME=`hostname` TEMPLATE=192.168.1.1 http://192.168.2.201/
if [ "`id -u`" != "0" -o `hostname` != "$HOSTNAME" ]; then printf "NEED TO BE ROOT AND TO RUN ON $HOSTNAME\n" exit 0 fi
echo "You are ROOT on Make sure you know what are you doing, Press ENTER to continue"
read
echo "Server name = $HOSTNAME" echo "FTP Server = $TEMPLATE" echo "Press ENTER to start"
read
printf "PROCEEDING WITH INSTALLATION OF Softswitch on ${HOSTNAME} ...\n\n"
printf "ARE YOU SURE YOU WANT TO CONTINUE (Y/N)?" read X if [ "x$X" != "xY" ]; then printf "aborting. Press Y or N \n" exit 0 fi printf "\n"
mkdir //home/switch ln -s /home/switch /usr/local/
cd /usr/local/src
echo "------INSTALLING freeradius -----------------------------"
printf "Do you want to INSTALL FREERADIUS (Y/N)?" read X if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget ftp://ftp.freeradius.org/pub/radius/old/freeradius-1.1.2.tar.gz tar zxvf freeradius-1.1.2.tar.gz cd freeradius-1.1.2 ./configure
make make install #cd .. echo "enable digest auth in radiusd.conf, configure clients.conf, create radius db and import tables."
else printf "OK YOU Pressed N that means you don't want free radius. No Problem \n" fi
echo "------ radius client lib -----------------------------" printf "Do you want to radius client lib (Y/N)?"
read X
if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget http://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.2.tar.gz
tar zxvf radiusclient-ng-0.5.2.tar.gz cd radiusclient-ng-0.5.2 ./configure make make install
#vi /etc/ld.so.conf # /usr/local/lib cat "/usr/local/lib" > /etc/ld.so.conf.d/radius-i386.conf
ldconfig cd ..
else printf "OK YOU did not Pressed Y that means you don't want radius client lib. I don't care, I am just a script \n"
fi
echo "------ MEDIAPROXY -------------------" printf "Do you want to Mediaproxy (Y/N)?"
read X
if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget http://mediaproxy.ag-projects.com/old/mediaproxy-1.4.2.tar.gz tar mediaproxy-1.4.2.tar.gz mv mediaproxy /usr/local/mediaproxy
#cp mediaproxy.ini.sample mediaproxy.ini
#vi mediaproxy.ini # edit the options as per our envi. cd /usr/local/mediaproxy/ wget ftp://$TEMPLATE/configure_ser_server/configfiles/mediaproxy.ini
cp /usr/local/mediaproxy/boot/mediaproxy.other /etc/init.d/mediaproxy /etc/init.d/mediaproxy start cd /usr/local/src/
else printf "OK YOU did not Pressed Y that means you dont want Mediaproxy. I dont care, But remember SIP users wont be able to talk \n" fi
echo "------ ser -------------------" printf "Do you want to INSTALL SER (Y/N)?"
read X
if [ "x$X" == "xY" ]; then
## We make changes in the Makefile for all the modules, build our own tar and store it on our ftp server. #wget http://ftp.iptel.org/pub/ser/0.9.6/src/ser-0.9.6_src.tar.gz cd /usr/local/src/ wget ftp://$TEMPLATE/configure_ser_server/ser-0.9.6_bingo.tar.gz echo "Press ENTER to start" read tar zxvf ser-0.9.6_bingo.tar.gz echo "Press ENTER to start" read
cd ser-0.9.6 pwd
#cd modules/acc #vi Makefile #remove comment from sql and radius lines
#vi Makefile #remove *_radius from exclude list
make all make install cd /usr/local/etc/ser/ wget ftp://$TEMPLATE/configure_ser_server/configfiles/ser.cfg
else printf "OK YOU did not Pressed Y that means you don't want a softswitch you. Just playing with me HUHH, OK \n" fi
# http://www.openser.org/docs/openser-radius-1.0.x.html # ---------------------------------------------- echo "------ APACHE -------------------" printf "Do you want to INSTALL APACHE (Y/N)?" read X if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget http://www.axint.net/apache/httpd/httpd-2.2.3.tar.gz tar zxvf httpd-2.2.3.tar.gz cd httpd-2.2.3 ./configure --enable-shared=max --enable-module=rewrite --enable-module=so --with-apxs2 make make install
else printf "OK YOU did not Pressed Y that means you dont want APACHE. You might need this for serweb. \n" fi
echo "------ IMAP -------------------" printf "Do you want to INSTALL IMAP, (Y/N)?" read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/ cd /usr/local/src/ #wget http://www.mirrorservice.org/sites/tp.cac.washington.edu/imap/old/imap-2004c... wget ftp://192.168.2.201/configure_ser_server/imap-2004c1.tar.Z tar zxf imap-2004c1.tar.Z
cd imap-2004c1 make slx SSLTYPE=none cd c-client/ cp c-client.a /usr/lib cp rfc822.h mail.h linkage.h /usr/include/
else printf "OK YOU did not Pressed Y that means you dont want APACHE. You might need this for serweb. \n" fi
echo "------ PHP 4.xx -------------------" printf "Do you want to INSTALL PHP 4.xx, If you dont install this then DONT complain if your serweb doesnt work (Y/N)?"
read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/ wget http://museum.php.net/php4/php-4.3.10.tar.gz tar zxvf php-4.3.10.tar.gz cd php-4.3.10 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-imap make make install
cp php.ini-dist /usr/local/lib/php.ini cd /usr/local/apache2/ wget ftp://$TEMPLATE/configure_ser_server/configfiles/httpd.conf
#vi /usr/local/apache2/conf/httpd.conf # AddType application/x-httpd-php .php .phtml # LoadModule php4_module libexec/libphp4.so # # modify the index.html line and add index.php to the list # # Listen 81
/usr/local/apache2/bin/apachectl start
else printf "OK YOU did not Pressed Y that means you refused to install PHP. You will need this for serweb. \n" fi
echo "------ PHP 4.xx -------------------" printf "Do you want to INSTALL PHP 4.xx, If you dont install this then DONT complain if your serweb doesnt work (Y/N)?" read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/
wget http://ftp.iptel.org/pub/serweb/serweb-0.9.6.tar.gz
tar zxvf serweb-0.9.6.tar.gz
mv serweb-0.9.6 serweb # next few line have been taken care of httpd.conf in apache installation.
#vi /usr/local/apache2/conf/httpd.conf
#Alias /serweb "/usr/local/serweb/html/"
#<Directory "/usr/local/serweb/html"> # AllowOverride None # Options None # Order allow,deny # Allow from all #</Directory>
cd /usr/local/serweb/config
#vi config* modify all config files are per your env.
#edit: #vi /usr/local/etc/ser/ser.cfg #fifo_mode=666
#Send daily missed calls #Crontab line: #5 0 * * * /usr/local/bin/php /usr/local/serweb/scripts/cron_job/send_daily_missed_calls.php
#Server monitoring #Crontab line: #* * * * * /usr/local/bin/php /usr/local/serweb/scripts/cron_job/read_ser_moni.php
else printf "OK YOU did not Pressed Y that means you refused to install PHP. You will need this for serweb. \n" fi
echo "------ DIALIP_ADMIN -------------------" printf "Do you want to INSTALL DIALUP_ADMIN (Y/N)?" read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/ wget http://nchc.dl.sourceforge.net/sourceforge/dialup-admin/dialup_admin-1.62.ta...
tar zxvf dialup_admin-1.62.tar.gz mv dialup_admin /usr/local/radiusadmin
#vi /usr/local/apache2/conf/httpd.conf
#Alias /radius "/usr/local/radiusadmin/htdocs/"
#<Directory "/usr/local/radiusadmin/htdocs"> # AllowOverride None # Options None # Order allow,deny # Allow from all #</Directory>
#cd /usr/local/radiusadmin/sql # import all sql queries to radius database #cd /usr/local/radiusadmin/conf # modify config files
**********************
On Dec 10, 2007 9:15 PM, ram talk2ram@gmail.com wrote:
On Dec 10, 2007 11:02 PM, Jai Rangi jprangi@gmail.com wrote:
Preparing Kickstart file is a good idea. How about running a post installation script in the kickstart file. We have done this a lots on time in FC*. The process should be something like this,
- Build a default kickstart file that will install all the required
packages for all the ser components. 2. The kickstart file have an option to run a post installation script. 3. Now we need to have one zip file of all the components we want to install related to ser. (ser, werbwer, sems, sipp, sppsak etc). That file can be placed either on the CDs or can be downloaded from somewhere. All the components can be packaged in the one zip file of they can be downloaded separately. 4. The script can be interactive.
yes that will be the idea, for the CD install
after install of OS, we can run post install script to compile rest all required for SER ( or compile already for the same OS Distro and move them directly to the respective Directory)
BTW I have a small postinstallation shell script like that, and I can share that.
post to group, may be if require people may use.
ram
-Jai
On Dec 10, 2007 3:42 AM, SIP < sip@arcdiv.com> wrote:
Greger V. Teigre wrote:
[removed sems, semsdev, and serdev from cc]
SIP wrote:
Something I noted about the project. While I am all for a virtual
image
for testing purposes and getting things up and running while we're creating this project, I think the ultimate goal should be
something
like an ISO that's ready to go on a server. There are many of us in
the
systems world who have not bought into the whole virtualisation marketing gimmick when it comes to system deployment, and for the
casual
home user who's less comfortable with using VMs for an actual
production
system (which is, to be honest, a lot of people), it might be
easier in
the long term to get everything the way we want it and then make an
ISO
that's ready to drop onto whatever machine with all the components
we need.
Ok. When you say "ISO that's ready to drop onto", do you have a particular procedure in mind?
g-)
Something like taking a kickstart file and making an installable livecd from it (something similar to the LiveCD berlios project). I don't KNOW of one that works to create installable ISOs in CentOS, but I'm sure there must be... somewhere... maybe....?
N. _______________________________________________ Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Using kickstart sounds good to me. I think we should keep separate the different steps: 1. Create a base image of the OS 2. Install the iptel.org apps and dependencies 3. Do local configurations 4. Create deployable virtual machine
If each of these steps are isolated, different people can be responsible for the different steps.
I have reorganized the project page into sections and incorporated lots of input from Jeremy at http://iptel.org/bundle/project We now need to create a project plan, split into responsibilities, and take some key decisions. I think one key decision that we have already converged on is: for first version use CentOS5 and create vmware appliance. g-)
Jai Rangi wrote:
Sounds good, Here is the script. Its been a while that we have used it. We might need to modify something. I can look into it later. Let me know if this is something you are looking for.
#!/bin/sh # Need to add /bin/sh path # This script will install the softwares required to build softswitch. # Sysrequirements FC5, DELL 1950, # Jai # 12/11/06
HOSTNAME=`hostname` TEMPLATE= 192.168.1.1 http://192.168.2.201/
if [ "`id -u`" != "0" -o `hostname` != "$HOSTNAME" ]; then printf "NEED TO BE ROOT AND TO RUN ON $HOSTNAME\n" exit 0 fi
echo "You are ROOT on Make sure you know what are you doing, Press ENTER to continue"
read
echo "Server name = $HOSTNAME" echo "FTP Server = $TEMPLATE" echo "Press ENTER to start"
read
printf "PROCEEDING WITH INSTALLATION OF Softswitch on ${HOSTNAME} ...\n\n"
printf "ARE YOU SURE YOU WANT TO CONTINUE (Y/N)?" read X if [ "x$X" != "xY" ]; then printf "aborting. Press Y or N \n" exit 0 fi printf "\n"
mkdir //home/switch ln -s /home/switch /usr/local/
cd /usr/local/src
echo "------INSTALLING freeradius -----------------------------"
printf "Do you want to INSTALL FREERADIUS (Y/N)?" read X if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget ftp://ftp.freeradius.org/pub/radius/old/freeradius-1.1.2.tar.gz ftp://ftp.freeradius.org/pub/radius/old/freeradius-1.1.2.tar.gz tar zxvf freeradius-1.1.2.tar.gz cd freeradius-1.1.2 ./configure
make make install #cd .. echo "enable digest auth in radiusd.conf, configure clients.conf, create radius db and import tables."
else printf "OK YOU Pressed N that means you don't want free radius. No Problem \n" fi
echo "------ radius client lib -----------------------------" printf "Do you want to radius client lib (Y/N)?"
read X
if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget http://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.2.tar.gz http://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.2.tar.gz
tar zxvf radiusclient-ng-0.5.2.tar.gz cd radiusclient-ng-0.5.2 ./configure make make install
#vi /etc/ld.so.conf # /usr/local/lib cat "/usr/local/lib" > /etc/ld.so.conf.d/radius- i386.conf
ldconfig cd ..
else printf "OK YOU did not Pressed Y that means you don't want radius client lib. I don't care, I am just a script \n"
fi
echo "------ MEDIAPROXY -------------------" printf "Do you want to Mediaproxy (Y/N)?"
read X
if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget http://mediaproxy.ag-projects.com/old/mediaproxy-1.4.2.tar.gz tar mediaproxy-1.4.2.tar.gz mv mediaproxy /usr/local/mediaproxy
#cp mediaproxy.ini.sample mediaproxy.ini
#vi mediaproxy.ini # edit the options as per our envi. cd /usr/local/mediaproxy/ wget ftp://$TEMPLATE/configure_ser _server/configfiles/mediaproxy.ini
cp /usr/local/mediaproxy/boot/mediaproxy.other /etc/init.d/mediaproxy /etc/init.d/mediaproxy start cd /usr/local/src/
else printf "OK YOU did not Pressed Y that means you dont want Mediaproxy. I dont care, But remember SIP users wont be able to talk \n" fi
echo "------ ser -------------------" printf "Do you want to INSTALL SER (Y/N)?"
read X
if [ "x$X" == "xY" ]; then
## We make changes in the Makefile for all the modules, build our own tar and store it on our ftp server. #wget http://ftp.iptel.org/pub/ser/0.9.6/src/ser-0.9.6_src.tar.gz http://ftp.iptel.org/pub/ser/0.9.6/src/ser-0.9.6_src.tar.gz cd /usr/local/src/ wget ftp://$TEMPLATE/configure_ser_server/ser-0.9.6_bingo.tar.gz echo "Press ENTER to start" read tar zxvf ser-0.9.6_bingo.tar.gz echo "Press ENTER to start" read
cd ser-0.9.6 pwd
#cd modules/acc #vi Makefile #remove comment from sql and radius lines
#vi Makefile #remove *_radius from exclude list
make all make install cd /usr/local/etc/ser/ wget ftp://$TEMPLATE/configure_ser_server/configfiles/ser.cfg
else printf "OK YOU did not Pressed Y that means you don't want a softswitch you. Just playing with me HUHH, OK \n" fi
# http://www.openser.org/docs/openser-radius-1.0.x.html # ---------------------------------------------- echo "------ APACHE -------------------" printf "Do you want to INSTALL APACHE (Y/N)?" read X if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget http://www.axint.net/apache/httpd/httpd-2.2.3.tar.gz tar zxvf httpd-2.2.3.tar.gz cd httpd-2.2.3 ./configure --enable-shared=max --enable-module=rewrite --enable-module=so --with-apxs2 make make install
else printf "OK YOU did not Pressed Y that means you dont want APACHE. You might need this for serweb. \n" fi
echo "------ IMAP -------------------" printf "Do you want to INSTALL IMAP, (Y/N)?" read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/ cd /usr/local/src/ #wget http://www.mirrorservice.org/sites/tp.cac.washington.edu/imap/old/imap-2004c... wget ftp://192.168.2.201/configure_ser_server/imap-2004c1.tar.Z ftp://192.168.2.201/configure_ser_server/imap-2004c1.tar.Z tar zxf imap-2004c1.tar.Z
cd imap-2004c1 make slx SSLTYPE=none cd c-client/ cp c-client.a /usr/lib cp rfc822.h mail.h linkage.h /usr/include/
else printf "OK YOU did not Pressed Y that means you dont want APACHE. You might need this for serweb. \n" fi
echo "------ PHP 4.xx -------------------" printf "Do you want to INSTALL PHP 4.xx, If you dont install this then DONT complain if your serweb doesnt work (Y/N)?"
read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/ wget http://museum.php.net/php4/php-4.3.10.tar.gz tar zxvf php-4.3.10.tar.gz cd php-4.3.10 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-imap make make install
cp php.ini-dist /usr/local/lib/php.ini cd /usr/local/apache2/ wget ftp://$TEMPLATE/configure_ser_server/configfiles/httpd.conf
#vi /usr/local/apache2/conf/httpd.conf # AddType application/x-httpd-php .php .phtml # LoadModule php4_module libexec/libphp4.so # # modify the index.html line and add index.php to the list # # Listen 81
/usr/local/apache2/bin/apachectl start
else printf "OK YOU did not Pressed Y that means you refused to install PHP. You will need this for serweb. \n" fi
echo "------ PHP 4.xx -------------------" printf "Do you want to INSTALL PHP 4.xx, If you dont install this then DONT complain if your serweb doesnt work (Y/N)?" read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/
wget http://ftp.iptel.org/pub/serweb/serweb-0.9.6.tar.gz
tar zxvf serweb-0.9.6.tar.gz
mv serweb-0.9.6 serweb # next few line have been taken care of httpd.conf in apache installation.
#vi /usr/local/apache2/conf/httpd.conf
#Alias /serweb "/usr/local/serweb/html/"
#<Directory "/usr/local/serweb/html"> # AllowOverride None # Options None # Order allow,deny # Allow from all #</Directory>
cd /usr/local/serweb/config
#vi config* modify all config files are per your env.
#edit: #vi /usr/local/etc/ser/ser.cfg #fifo_mode=666
#Send daily missed calls #Crontab line: #5 0 * * * /usr/local/bin/php /usr/local/serweb/scripts/cron_job/send_daily_missed_calls.php
#Server monitoring #Crontab line: #* * * * * /usr/local/bin/php /usr/local/serweb/scripts/cron_job/read_ser_moni.php
else printf "OK YOU did not Pressed Y that means you refused to install PHP. You will need this for serweb. \n" fi
echo "------ DIALIP_ADMIN -------------------" printf "Do you want to INSTALL DIALUP_ADMIN (Y/N)?" read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/ wget http://nchc.dl.sourceforge.net/sourceforge/dialup-admin/dialup_admin-1.62.ta...
tar zxvf dialup_admin- 1.62.tar.gz mv dialup_admin /usr/local/radiusadmin
#vi /usr/local/apache2/conf/httpd.conf
#Alias /radius "/usr/local/radiusadmin/htdocs/"
#<Directory "/usr/local/radiusadmin/htdocs"> # AllowOverride None # Options None # Order allow,deny # Allow from all #</Directory>
#cd /usr/local/radiusadmin/sql # import all sql queries to radius database #cd /usr/local/radiusadmin/conf # modify config files
On Dec 10, 2007 9:15 PM, ram <talk2ram@gmail.com mailto:talk2ram@gmail.com> wrote:
On Dec 10, 2007 11:02 PM, Jai Rangi <jprangi@gmail.com <mailto:jprangi@gmail.com>> wrote: Preparing Kickstart file is a good idea. How about running a post installation script in the kickstart file. We have done this a lots on time in FC*. The process should be something like this, 1. Build a default kickstart file that will install all the required packages for all the ser components. 2. The kickstart file have an option to run a post installation script. 3. Now we need to have one zip file of all the components we want to install related to ser. (ser, werbwer, sems, sipp, sppsak etc). That file can be placed either on the CDs or can be downloaded from somewhere. All the components can be packaged in the one zip file of they can be downloaded separately. 4. The script can be interactive. yes that will be the idea, for the CD install after install of OS, we can run post install script to compile rest all required for SER ( or compile already for the same OS Distro and move them directly to the respective Directory) BTW I have a small postinstallation shell script like that, and I can share that. post to group, may be if require people may use. ram -Jai On Dec 10, 2007 3:42 AM, SIP < sip@arcdiv.com <mailto:sip@arcdiv.com>> wrote: Greger V. Teigre wrote: > [removed sems, semsdev, and serdev from cc] > > > SIP wrote: >> Something I noted about the project. While I am all for a virtual image >> for testing purposes and getting things up and running while we're >> creating this project, I think the ultimate goal should be something >> like an ISO that's ready to go on a server. There are many of us in the >> systems world who have not bought into the whole virtualisation >> marketing gimmick when it comes to system deployment, and for the casual >> home user who's less comfortable with using VMs for an actual production >> system (which is, to be honest, a lot of people), it might be easier in >> the long term to get everything the way we want it and then make an ISO >> that's ready to drop onto whatever machine with all the components we need. >> > Ok. When you say "ISO that's ready to drop onto", do you have a > particular procedure in mind? > > g-) Something like taking a kickstart file and making an installable livecd from it (something similar to the LiveCD berlios project). I don't KNOW of one that works to create installable ISOs in CentOS, but I'm sure there must be... somewhere... maybe....? N. _______________________________________________ Serusers mailing list Serusers@lists.iptel.org <mailto:Serusers@lists.iptel.org> http://lists.iptel.org/mailman/listinfo/serusers <http://lists.iptel.org/mailman/listinfo/serusers> _______________________________________________ Serusers mailing list Serusers@lists.iptel.org <mailto:Serusers@lists.iptel.org> http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Hi All,
I would like to be a part of this project I can do testing and other configuration of this automated script.
Thanks,
Arun
On Dec 16, 2007 12:03 PM, Greger V. Teigre greger@teigre.com wrote:
Using kickstart sounds good to me. I think we should keep separate the different steps:
- Create a base image of the OS
- Install the iptel.org apps and dependencies
- Do local configurations
- Create deployable virtual machine
If each of these steps are isolated, different people can be responsible for the different steps.
I have reorganized the project page into sections and incorporated lots of input from Jeremy at http://iptel.org/bundle/project We now need to create a project plan, split into responsibilities, and take some key decisions. I think one key decision that we have already converged on is: for first version use CentOS5 and create vmware appliance. g-)
Jai Rangi wrote:
Sounds good, Here is the script. Its been a while that we have used it. We might need to modify something. I can look into it later. Let me know if this is something you are looking for.
#!/bin/sh # Need to add /bin/sh path # This script will install the softwares required to build softswitch. # Sysrequirements FC5, DELL 1950, # Jai # 12/11/06
HOSTNAME=`hostname` TEMPLATE= 192.168.1.1 http://192.168.2.201/
if [ "`id -u`" != "0" -o `hostname` != "$HOSTNAME" ]; then printf "NEED TO BE ROOT AND TO RUN ON $HOSTNAME\n" exit 0 fi
echo "You are ROOT on Make sure you know what are you doing, Press ENTER to continue"
read
echo "Server name = $HOSTNAME" echo "FTP Server = $TEMPLATE" echo "Press ENTER to start"
read
printf "PROCEEDING WITH INSTALLATION OF Softswitch on ${HOSTNAME} ...\n\n"
printf "ARE YOU SURE YOU WANT TO CONTINUE (Y/N)?" read X if [ "x$X" != "xY" ]; then printf "aborting. Press Y or N \n" exit 0 fi printf "\n"
mkdir //home/switch ln -s /home/switch /usr/local/
cd /usr/local/src
echo "------INSTALLING freeradius -----------------------------"
printf "Do you want to INSTALL FREERADIUS (Y/N)?" read X if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget ftp://ftp.freeradius.org/pub/radius/old/freeradius-1.1.2.tar.gz tar zxvf freeradius-1.1.2.tar.gz cd freeradius-1.1.2 ./configure
make make install #cd .. echo "enable digest auth in radiusd.conf, configure clients.conf, create radius db and import tables."
else printf "OK YOU Pressed N that means you don't want free radius. No Problem \n" fi
echo "------ radius client lib -----------------------------" printf "Do you want to radius client lib (Y/N)?"
read X
if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget http://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.2.tar.gz
tar zxvf radiusclient-ng-0.5.2.tar.gz cd radiusclient-ng-0.5.2 ./configure make make install
#vi /etc/ld.so.conf # /usr/local/lib cat "/usr/local/lib" > /etc/ld.so.conf.d/radius- i386.conf
ldconfig cd ..
else printf "OK YOU did not Pressed Y that means you don't want radius client lib. I don't care, I am just a script \n"
fi
echo "------ MEDIAPROXY -------------------" printf "Do you want to Mediaproxy (Y/N)?"
read X
if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget http://mediaproxy.ag-projects.com/old/mediaproxy-1.4.2.tar.gz tar mediaproxy-1.4.2.tar.gz mv mediaproxy /usr/local/mediaproxy
#cp mediaproxy.ini.sample mediaproxy.ini
#vi mediaproxy.ini # edit the options as per our envi. cd /usr/local/mediaproxy/ wget ftp://$TEMPLATE/configure_ser _server/configfiles/mediaproxy.ini
cp /usr/local/mediaproxy/boot/mediaproxy.other /etc/init.d/mediaproxy /etc/init.d/mediaproxy start cd /usr/local/src/
else printf "OK YOU did not Pressed Y that means you dont want Mediaproxy. I dont care, But remember SIP users wont be able to talk \n" fi
echo "------ ser -------------------" printf "Do you want to INSTALL SER (Y/N)?"
read X
if [ "x$X" == "xY" ]; then
## We make changes in the Makefile for all the modules, build our own tar and store it on our ftp server. #wget http://ftp.iptel.org/pub/ser/0.9.6/src/ser-0.9.6_src.tar.gz cd /usr/local/src/ wget ftp://$TEMPLATE/configure_ser_server/ser-0.9.6_bingo.tar.gz echo "Press ENTER to start" read tar zxvf ser-0.9.6_bingo.tar.gz echo "Press ENTER to start" read
cd ser-0.9.6 pwd
#cd modules/acc #vi Makefile #remove comment from sql and radius lines
#vi Makefile #remove *_radius from exclude list
make all make install cd /usr/local/etc/ser/ wget ftp://$TEMPLATE/configure_ser_server/configfiles/ser.cfg
else printf "OK YOU did not Pressed Y that means you don't want a softswitch you. Just playing with me HUHH, OK \n" fi
# http://www.openser.org/docs/openser-radius-1.0.x.html # ---------------------------------------------- echo "------ APACHE -------------------" printf "Do you want to INSTALL APACHE (Y/N)?" read X if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget http://www.axint.net/apache/httpd/httpd-2.2.3.tar.gz tar zxvf httpd-2.2.3.tar.gz cd httpd-2.2.3 ./configure --enable-shared=max --enable-module=rewrite --enable-module=so --with-apxs2 make make install
else printf "OK YOU did not Pressed Y that means you dont want APACHE. You might need this for serweb. \n" fi
echo "------ IMAP -------------------" printf "Do you want to INSTALL IMAP, (Y/N)?" read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/ cd /usr/local/src/ #wget http://www.mirrorservice.org/sites/tp.cac.washington.edu/imap/old/imap-2004c... wget ftp://192.168.2.201/configure_ser_server/imap-2004c1.tar.Z tar zxf imap-2004c1.tar.Z
cd imap-2004c1 make slx SSLTYPE=none cd c-client/ cp c-client.a /usr/lib cp rfc822.h mail.h linkage.h /usr/include/
else printf "OK YOU did not Pressed Y that means you dont want APACHE. You might need this for serweb. \n" fi
echo "------ PHP 4.xx -------------------" printf "Do you want to INSTALL PHP 4.xx, If you dont install this then DONT complain if your serweb doesnt work (Y/N)?"
read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/ wget http://museum.php.net/php4/php-4.3.10.tar.gz tar zxvf php-4.3.10.tar.gz cd php-4.3.10 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-imap make make install
cp php.ini-dist /usr/local/lib/php.ini cd /usr/local/apache2/ wget ftp://$TEMPLATE/configure_ser_server/configfiles/httpd.conf
#vi /usr/local/apache2/conf/httpd.conf # AddType application/x-httpd-php .php .phtml # LoadModule php4_module libexec/libphp4.so # # modify the index.html line and add index.php to the list # # Listen 81
/usr/local/apache2/bin/apachectl start
else printf "OK YOU did not Pressed Y that means you refused to install PHP. You will need this for serweb. \n" fi
echo "------ PHP 4.xx -------------------" printf "Do you want to INSTALL PHP 4.xx, If you dont install this then DONT complain if your serweb doesnt work (Y/N)?" read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/
wget http://ftp.iptel.org/pub/serweb/serweb-0.9.6.tar.gz
tar zxvf serweb-0.9.6.tar.gz
mv serweb-0.9.6 serweb # next few line have been taken care of httpd.conf in apache installation.
#vi /usr/local/apache2/conf/httpd.conf
#Alias /serweb "/usr/local/serweb/html/"
#<Directory "/usr/local/serweb/html"> # AllowOverride None # Options None # Order allow,deny # Allow from all #</Directory>
cd /usr/local/serweb/config
#vi config* modify all config files are per your env.
#edit: #vi /usr/local/etc/ser/ser.cfg #fifo_mode=666
#Send daily missed calls #Crontab line: #5 0 * * * /usr/local/bin/php /usr/local/serweb/scripts/cron_job/send_daily_missed_calls.php
#Server monitoring #Crontab line: #* * * * * /usr/local/bin/php /usr/local/serweb/scripts/cron_job/read_ser_moni.php
else printf "OK YOU did not Pressed Y that means you refused to install PHP. You will need this for serweb. \n" fi
echo "------ DIALIP_ADMIN -------------------" printf "Do you want to INSTALL DIALUP_ADMIN (Y/N)?" read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/ wget http://nchc.dl.sourceforge.net/sourceforge/dialup-admin/dialup_admin-1.62.ta...
tar zxvf dialup_admin- 1.62.tar.gz mv dialup_admin /usr/local/radiusadmin
#vi /usr/local/apache2/conf/httpd.conf
#Alias /radius "/usr/local/radiusadmin/htdocs/"
#<Directory "/usr/local/radiusadmin/htdocs"> # AllowOverride None # Options None # Order allow,deny # Allow from all #</Directory>
#cd /usr/local/radiusadmin/sql # import all sql queries to radius database #cd /usr/local/radiusadmin/conf # modify config files
On Dec 10, 2007 9:15 PM, ram <talk2ram@gmail.com > wrote:
On Dec 10, 2007 11:02 PM, Jai Rangi jprangi@gmail.com wrote:
Preparing Kickstart file is a good idea. How about running a post installation script in the kickstart file. We have done this a lots on time in FC*. The process should be something like this,
- Build a default kickstart file that will install all the required
packages for all the ser components. 2. The kickstart file have an option to run a post installation script. 3. Now we need to have one zip file of all the components we want to install related to ser. (ser, werbwer, sems, sipp, sppsak etc). That file can be placed either on the CDs or can be downloaded from somewhere. All the components can be packaged in the one zip file of they can be downloaded separately. 4. The script can be interactive.
yes that will be the idea, for the CD install
after install of OS, we can run post install script to compile rest all required for SER ( or compile already for the same OS Distro and move them directly to the respective Directory)
BTW I have a small postinstallation shell script like that, and I can share that.
post to group, may be if require people may use.
ram
-Jai
On Dec 10, 2007 3:42 AM, SIP < sip@arcdiv.com> wrote:
Greger V. Teigre wrote:
[removed sems, semsdev, and serdev from cc]
SIP wrote:
Something I noted about the project. While I am all for a
virtual image
for testing purposes and getting things up and running while
we're
creating this project, I think the ultimate goal should be
something
like an ISO that's ready to go on a server. There are many of us
in the
systems world who have not bought into the whole virtualisation marketing gimmick when it comes to system deployment, and for the
casual
home user who's less comfortable with using VMs for an actual
production
system (which is, to be honest, a lot of people), it might be
easier in
the long term to get everything the way we want it and then make
an ISO
that's ready to drop onto whatever machine with all the
components we need.
Ok. When you say "ISO that's ready to drop onto", do you have a particular procedure in mind?
g-)
Something like taking a kickstart file and making an installable livecd from it (something similar to the LiveCD berlios project). I don't KNOW of one that works to create installable ISOs in CentOS, but I'm sure there must be... somewhere... maybe....?
N. _______________________________________________ Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing listSerusers@lists.iptel.orghttp://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Greger, et. al.
While I did volunteer for Documentation and Testing already, I am going to branch out and perform each step myself so we can "document as we design".
To that end I am setting up two "target machines" in New York on which to install-test-document each step wearing the hat of the Enterprise-IT-Guy. I have a couple of techs that we can use in the role of "outside tester" who will strictly follow the documentation to give the procedures a good Q-A test. I can be ready in early Janurary.
I would like to hear from the current CVS maintainer regards creation of third machine as a Subversion / CVS mirror. Can you contact me via EMAIL with some guidance?
Regards, ..mike..
At 03:03 AM 12/16/2007, Greger V. Teigre wrote:
Using kickstart sounds good to me. I think we should keep separate the different steps:
- Create a base image of the OS
- Install the iptel.org apps and dependencies
- Do local configurations
- Create deployable virtual machine
If each of these steps are isolated, different people can be responsible for the different steps.
I have reorganized the project page into sections and incorporated lots of input from Jeremy at http://iptel.org/bundle/projecthttp://iptel.org/bundle/project We now need to create a project plan, split into responsibilities, and take some key decisions. I think one key decision that we have already converged on is: for first version use CentOS5 and create vmware appliance. g-)
Jai Rangi wrote:
Sounds good, Here is the script. Its been a while that we have used it. We might need to modify something. I can look into it later. Let me know if this is something you are looking for.
#!/bin/sh # Need to add /bin/sh path # This script will install the softwares required to build softswitch. # Sysrequirements FC5, DELL 1950, # Jai # 12/11/06
HOSTNAME=`hostname` TEMPLATE=http://192.168.2.201/ 192.168.1.1
if [ "`id -u`" != "0" -o `hostname` != "$HOSTNAME" ]; then printf "NEED TO BE ROOT AND TO RUN ON $HOSTNAME\n" exit 0 fi
echo "You are ROOT on Make sure you know what are you doing, Press ENTER to continue"
read
echo "Server name = $HOSTNAME" echo "FTP Server = $TEMPLATE" echo "Press ENTER to start"
read
printf "PROCEEDING WITH INSTALLATION OF Softswitch on ${HOSTNAME} ...\n\n"
printf "ARE YOU SURE YOU WANT TO CONTINUE (Y/N)?" read X if [ "x$X" != "xY" ]; then printf "aborting. Press Y or N \n" exit 0 fi printf "\n"
mkdir //home/switch ln -s /home/switch /usr/local/
cd /usr/local/src
echo "------INSTALLING freeradius -----------------------------"
printf "Do you want to INSTALL FREERADIUS (Y/N)?" read X if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget ftp://ftp.freeradius.org/pub/radius/old/freeradius-1.1.2.tar.gzftp://ftp.freeradius.org/pub/radius/old/freeradius-1.1.2.tar.gz
tar zxvf freeradius-1.1.2.tar.gz cd freeradius-1.1.2 ./configure
make make install #cd .. echo "enable digest auth in radiusd.conf, configure clients.conf, create radius db and import tables."
else printf "OK YOU Pressed N that means you don't want free radius. No Problem \n" fi
echo "------ radius client lib -----------------------------" printf "Do you want to radius client lib (Y/N)?"
read X
if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget http://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.2.tar.gzhttp://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.2.tar.gz
tar zxvf radiusclient-ng-0.5.2.tar.gz cd radiusclient-ng-0.5.2 ./configure make make install
#vi /etc/ld.so.conf # /usr/local/lib cat "/usr/local/lib" > /etc/ld.so.conf.d/radius- i386.conf
ldconfig cd ..
else printf "OK YOU did not Pressed Y that means you don't want radius client lib. I don't care, I am just a script \n"
fi
echo "------ MEDIAPROXY -------------------" printf "Do you want to Mediaproxy (Y/N)?"
read X
if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget http://mediaproxy.ag-projects.com/old/mediaproxy-1.4.2.tar.gzhttp://mediaproxy.ag-projects.com/old/mediaproxy-1.4.2.tar.gz tar mediaproxy-1.4.2.tar.gz mv mediaproxy /usr/local/mediaproxy
#cp mediaproxy.ini.sample mediaproxy.ini
#vi mediaproxy.ini # edit the options as per our envi. cd /usr/local/mediaproxy/ wget ftp://$TEMPLATE/configure_serftp://$TEMPLATE/configure_ser _server/configfiles/mediaproxy.ini
cp /usr/local/mediaproxy/boot/mediaproxy.other /etc/init.d/mediaproxy /etc/init.d/mediaproxy start cd /usr/local/src/
else printf "OK YOU did not Pressed Y that means you dont want Mediaproxy. I dont care, But remember SIP users wont be able to talk \n" fi
echo "------ ser -------------------" printf "Do you want to INSTALL SER (Y/N)?"
read X
if [ "x$X" == "xY" ]; then
## We make changes in the Makefile for all the modules, build our own tar and store it on our ftp server. #wget http://ftp.iptel.org/pub/ser/0.9.6/src/ser-0.9.6_src.tar.gzhttp://ftp.iptel.org/pub/ser/0.9.6/src/ser-0.9.6_src.tar.gz
cd /usr/local/src/ wget ftp://$TEMPLATE/configure_ser_server/ser-0.9.6_bingo.tar.gzftp://$TEMPLATE/configure_ser_server/ser-0.9.6_bingo.tar.gz echo "Press ENTER to start" read tar zxvf ser-0.9.6_bingo.tar.gz echo "Press ENTER to start" read
cd ser-0.9.6 pwd
#cd modules/acc #vi Makefile #remove comment from sql and radius lines
#vi Makefile #remove *_radius from exclude list
make all make install cd /usr/local/etc/ser/ wget ftp://$TEMPLATE/configure_ser_server/configfiles/ser.cfgftp://$TEMPLATE/configure_ser_server/configfiles/ser.cfg
else printf "OK YOU did not Pressed Y that means you don't want a softswitch you. Just playing with me HUHH, OK \n" fi
# http://www.openser.org/docs/openser-radius-1.0.x.htmlhttp://www.openser.org/docs/openser-radius-1.0.x.html # ---------------------------------------------- echo "------ APACHE -------------------" printf "Do you want to INSTALL APACHE (Y/N)?" read X if [ "x$X" == "xY" ]; then cd /usr/local/src/ wget http://www.axint.net/apache/httpd/httpd-2.2.3.tar.gzhttp://www.axint.net/apache/httpd/httpd-2.2.3.tar.gz tar zxvf httpd-2.2.3.tar.gz cd httpd-2.2.3 ./configure --enable-shared=max --enable-module=rewrite --enable-module=so --with-apxs2 make make install
else printf "OK YOU did not Pressed Y that means you dont want APACHE. You might need this for serweb. \n" fi
echo "------ IMAP -------------------" printf "Do you want to INSTALL IMAP, (Y/N)?" read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/ cd /usr/local/src/ #wget http://www.mirrorservice.org/sites/tp.cac.washington.edu/imap/old/imap-2004c1.tar.Zhttp://www.mirrorservice.org/sites/tp.cac.washington.edu/imap/old/imap-2004c... wget ftp://192.168.2.201/configure_ser_server/imap-2004c1.tar.Zftp://192.168.2.201/configure_ser_server/imap-2004c1.tar.Z
tar zxf imap-2004c1.tar.Z
cd imap-2004c1 make slx SSLTYPE=none cd c-client/ cp c-client.a /usr/lib cp rfc822.h mail.h linkage.h /usr/include/
else printf "OK YOU did not Pressed Y that means you dont want APACHE. You might need this for serweb. \n" fi
echo "------ PHP 4.xx -------------------" printf "Do you want to INSTALL PHP 4.xx, If you dont install this then DONT complain if your serweb doesnt work (Y/N)?"
read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/ wget http://museum.php.net/php4/php-4.3.10.tar.gzhttp://museum.php.net/php4/php-4.3.10.tar.gz tar zxvf php-4.3.10.tar.gz cd php-4.3.10 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-imap make make install
cp php.ini-dist /usr/local/lib/php.ini cd /usr/local/apache2/ wget ftp://$TEMPLATE/configure_ser_server/configfiles/httpd.confftp://$TEMPLATE/configure_ser_server/configfiles/httpd.conf
#vi /usr/local/apache2/conf/httpd.conf # AddType application/x-httpd-php .php .phtml # LoadModule php4_module libexec/libphp4.so # # modify the index.html line and add index.php to the list # # Listen 81
/usr/local/apache2/bin/apachectl start
else printf "OK YOU did not Pressed Y that means you refused to install PHP. You will need this for serweb. \n" fi
echo "------ PHP 4.xx -------------------" printf "Do you want to INSTALL PHP 4.xx, If you dont install this then DONT complain if your serweb doesnt work (Y/N)?" read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/
wget http://ftp.iptel.org/pub/serweb/serweb-0.9.6.tar.gzhttp://ftp.iptel.org/pub/serweb/serweb-0.9.6.tar.gz
tar zxvf serweb-0.9.6.tar.gz
mv serweb-0.9.6 serweb # next few line have been taken care of httpd.conf in apache installation.
#vi /usr/local/apache2/conf/httpd.conf
#Alias /serweb "/usr/local/serweb/html/"
#<Directory "/usr/local/serweb/html"> # AllowOverride None # Options None # Order allow,deny # Allow from all #</Directory>
cd /usr/local/serweb/config
#vi config* modify all config files are per your env.
#edit: #vi /usr/local/etc/ser/ser.cfg #fifo_mode=666
#Send daily missed calls #Crontab line: #5 0 * * * /usr/local/bin/php /usr/local/serweb/scripts/cron_job/send_daily_missed_calls.php
#Server monitoring #Crontab line: #* * * * * /usr/local/bin/php /usr/local/serweb/scripts/cron_job/read_ser_moni.php
else printf "OK YOU did not Pressed Y that means you refused to install PHP. You will need this for serweb. \n" fi
echo "------ DIALIP_ADMIN -------------------" printf "Do you want to INSTALL DIALUP_ADMIN (Y/N)?" read X
if [ "x$X" == "xY" ]; then
cd /usr/local/src/ wget http://nchc.dl.sourceforge.net/sourceforge/dialup-admin/dialup_admin-1.62.tar.gzhttp://nchc.dl.sourceforge.net/sourceforge/dialup-admin/dialup_admin-1.62.ta...
tar zxvf dialup_admin- 1.62.tar.gz mv dialup_admin /usr/local/radiusadmin
#vi /usr/local/apache2/conf/httpd.conf
#Alias /radius "/usr/local/radiusadmin/htdocs/"
#<Directory "/usr/local/radiusadmin/htdocs"> # AllowOverride None # Options None # Order allow,deny # Allow from all #</Directory>
#cd /usr/local/radiusadmin/sql # import all sql queries to radius database #cd /usr/local/radiusadmin/conf # modify config files
On Dec 10, 2007 9:15 PM, ram <mailto:talk2ram@gmail.comtalk2ram@gmail.com > wrote:
On Dec 10, 2007 11:02 PM, Jai Rangi <mailto:jprangi@gmail.comjprangi@gmail.com> wrote: Preparing Kickstart file is a good idea. How about running a post installation script in the kickstart file. We have done this a lots on time in FC*. The process should be something like this,
- Build a default kickstart file that will install all the
required packages for all the ser components. 2. The kickstart file have an option to run a post installation script. 3. Now we need to have one zip file of all the components we want to install related to ser. (ser, werbwer, sems, sipp, sppsak etc). That file can be placed either on the CDs or can be downloaded from somewhere. All the components can be packaged in the one zip file of they can be downloaded separately. 4. The script can be interactive.
yes that will be the idea, for the CD install
after install of OS, we can run post install script to compile rest all required for SER ( or compile already for the same OS Distro and move them directly to the respective Directory)
BTW I have a small postinstallation shell script like that, and I can share that.
post to group, may be if require people may use.
ram
-Jai
On Dec 10, 2007 3:42 AM, SIP <mailto:sip@arcdiv.com sip@arcdiv.com> wrote: Greger V. Teigre wrote:
[removed sems, semsdev, and serdev from cc]
SIP wrote:
Something I noted about the project. While I am all for a virtual image for testing purposes and getting things up and running while we're creating this project, I think the ultimate goal should be something like an ISO that's ready to go on a server. There are many of us in the systems world who have not bought into the whole virtualisation marketing gimmick when it comes to system deployment, and for the casual home user who's less comfortable with using VMs for an actual production system (which is, to be honest, a lot of people), it might be easier in the long term to get everything the way we want it and then make an ISO that's ready to drop onto whatever machine with all the
components we need.
Ok. When you say "ISO that's ready to drop onto", do you have a particular procedure in mind?
g-)
Something like taking a kickstart file and making an installable livecd from it (something similar to the LiveCD berlios project). I don't KNOW of one that works to create installable ISOs in CentOS, but I'm sure there must be... somewhere... maybe....?
N. _______________________________________________ Serusers mailing list mailto:Serusers@lists.iptel.orgSerusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list mailto:Serusers@lists.iptel.orgSerusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list mailto:Serusers@lists.iptel.orgSerusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
On Dec 16, 2007 1:33 PM, Greger V. Teigre greger@teigre.com wrote:
Using kickstart sounds good to me. I think we should keep separate the different steps:
- Create a base image of the OS
- Install the iptel.org apps and dependencies
- Do local configurations
- Create deployable virtual machine
If each of these steps are isolated, different people can be responsible for the different steps.
I have reorganized the project page into sections and incorporated lots of input from Jeremy at http://iptel.org/bundle/project We now need to create a project plan, split into responsibilities, and take some key decisions. I think one key decision that we have already converged on is: for first version use CentOS5 and create vmware appliance. g-)
I have Server ready with Centos5
let me know any test need to be done
ram
:-) we only need to get this thing together then... g-)
ram wrote:
On Dec 16, 2007 1:33 PM, Greger V. Teigre <greger@teigre.com mailto:greger@teigre.com> wrote:
Using kickstart sounds good to me. I think we should keep separate the different steps: 1. Create a base image of the OS 2. Install the iptel.org <http://iptel.org/> apps and dependencies 3. Do local configurations 4. Create deployable virtual machine If each of these steps are isolated, different people can be responsible for the different steps. I have reorganized the project page into sections and incorporated lots of input from Jeremy at http://iptel.org/bundle/project We now need to create a project plan, split into responsibilities, and take some key decisions. I think one key decision that we have already converged on is: for first version use CentOS5 and create vmware appliance. g-)
I have Server ready with Centos5
let me know any test need to be done
ram
Okay... starting with a base image of CentOS 5 (which, I believe, includes MySQL 5.0.? Don't recall which version... perhaps someone can fill in there), what are the initial things that would need to be installed for base-level dependencies (things not already on the machine and ready to go).
Then, we should start a list of what needs to be installed based on the order in which it should be installed (for the post-processing script) for the basic required stuff.
Also, for any optional packages that will be installed, we'll need a list of dependencies.
I think that's a logical next step assuming the CentOS machine has been installed (which is NOT an assumption we should overlook, as we'll need to determine what portions of the CentOS base machine SHOULD and should NOT be installed (i.e. do we really need print services, games, and an X environment in our base install, etc, etc)).
SO.... three steps really.
1) Determine what needs to be on the basic CentOS 5 install for everything to work properly (including iptables and such since we should assume security is an important factor). 2) Determine what's left that needs to be installed that doesn't come with the distro for any base dependencies. 3) Determine the order in which the apps need to be installed (for the post-proc. script).
I'm just throwing out ideas here. Feel free to tell me I'm going about this the wrong way.
N.
Greger V. Teigre wrote:
:-) we only need to get this thing together then... g-)
ram wrote:
On Dec 16, 2007 1:33 PM, Greger V. Teigre <greger@teigre.com mailto:greger@teigre.com> wrote:
Using kickstart sounds good to me. I think we should keep separate the different steps: 1. Create a base image of the OS 2. Install the iptel.org <http://iptel.org/> apps and dependencies 3. Do local configurations 4. Create deployable virtual machine If each of these steps are isolated, different people can be responsible for the different steps. I have reorganized the project page into sections and incorporated lots of input from Jeremy at http://iptel.org/bundle/project We now need to create a project plan, split into responsibilities, and take some key decisions. I think one key decision that we have already converged on is: for first version use CentOS5 and create vmware appliance. g-)
I have Server ready with Centos5
let me know any test need to be done
ram
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
1) Determine what needs to be on the basic CentOS 5 install for everything to work properly (including iptables and such since we should assume security is an important factor). 2) Determine what's left that needs to be installed that doesn't come with the distro for any base dependencies. 3) Determine the order in which the apps need to be installed (for the post-proc. script).
This sounds good approach. The only thing I see is that be might be going 2->3->2->3->... few times before we get the final version of 2. Ofcourse this assumes that all the dependencies should be the default/latest versions of packages from CentOS CD.
-Jai
On Dec 17, 2007 6:16 AM, SIP sip@arcdiv.com wrote:
Okay... starting with a base image of CentOS 5 (which, I believe, includes MySQL 5.0.? Don't recall which version... perhaps someone can fill in there), what are the initial things that would need to be installed for base-level dependencies (things not already on the machine and ready to go).
Then, we should start a list of what needs to be installed based on the order in which it should be installed (for the post-processing script) for the basic required stuff.
Also, for any optional packages that will be installed, we'll need a list of dependencies.
I think that's a logical next step assuming the CentOS machine has been installed (which is NOT an assumption we should overlook, as we'll need to determine what portions of the CentOS base machine SHOULD and should NOT be installed (i.e. do we really need print services, games, and an X environment in our base install, etc, etc)).
SO.... three steps really.
- Determine what needs to be on the basic CentOS 5 install for
everything to work properly (including iptables and such since we should assume security is an important factor). 2) Determine what's left that needs to be installed that doesn't come with the distro for any base dependencies. 3) Determine the order in which the apps need to be installed (for the post-proc. script).
I'm just throwing out ideas here. Feel free to tell me I'm going about this the wrong way.
N.
Greger V. Teigre wrote:
:-) we only need to get this thing together then... g-)
ram wrote:
On Dec 16, 2007 1:33 PM, Greger V. Teigre <greger@teigre.com mailto:greger@teigre.com> wrote:
Using kickstart sounds good to me. I think we should keep separate the different steps: 1. Create a base image of the OS 2. Install the iptel.org <http://iptel.org/> apps and dependencies 3. Do local configurations 4. Create deployable virtual machine If each of these steps are isolated, different people can be responsible for the different steps. I have reorganized the project page into sections and incorporated lots of input from Jeremy at http://iptel.org/bundle/project We now need to create a project plan, split into responsibilities, and take some key decisions. I think one key decision that we have already converged on is: for first version use CentOS5 and create vmware appliance. g-)
I have Server ready with Centos5
let me know any test need to be done
ram
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Also I was thinking what some one can do if I give him a machine which has all the packages installed. Dont we need some good case studies/example configurations which should be part of the project.
-Jai
On Dec 17, 2007 9:44 AM, Jai Rangi jprangi@gmail.com wrote:
- Determine what needs to be on the basic CentOS 5 install for
everything to work properly (including iptables and such since we should assume security is an important factor). 2) Determine what's left that needs to be installed that doesn't come with the distro for any base dependencies. 3) Determine the order in which the apps need to be installed (for the post-proc. script).
This sounds good approach. The only thing I see is that be might be going 2->3->2->3->... few times before we get the final version of 2. Ofcourse this assumes that all the dependencies should be the default/latest versions of packages from CentOS CD.
-Jai
On Dec 17, 2007 6:16 AM, SIP sip@arcdiv.com wrote:
Okay... starting with a base image of CentOS 5 (which, I believe, includes MySQL 5.0.? Don't recall which version... perhaps someone can fill in there), what are the initial things that would need to be installed for base-level dependencies (things not already on the machine
and ready to go).
Then, we should start a list of what needs to be installed based on the order in which it should be installed (for the post-processing script) for the basic required stuff.
Also, for any optional packages that will be installed, we'll need a list of dependencies.
I think that's a logical next step assuming the CentOS machine has been installed (which is NOT an assumption we should overlook, as we'll need to determine what portions of the CentOS base machine SHOULD and should NOT be installed (i.e. do we really need print services, games, and an X environment in our base install, etc, etc)).
SO.... three steps really.
- Determine what needs to be on the basic CentOS 5 install for
everything to work properly (including iptables and such since we should assume security is an important factor). 2) Determine what's left that needs to be installed that doesn't come with the distro for any base dependencies. 3) Determine the order in which the apps need to be installed (for the post-proc. script).
I'm just throwing out ideas here. Feel free to tell me I'm going about this the wrong way.
N.
Greger V. Teigre wrote:
:-) we only need to get this thing together then... g-)
ram wrote:
On Dec 16, 2007 1:33 PM, Greger V. Teigre < greger@teigre.com mailto:greger@teigre.com> wrote:
Using kickstart sounds good to me. I think we should keep separate the different steps: 1. Create a base image of the OS 2. Install the iptel.org < http://iptel.org/> apps and
dependencies
3. Do local configurations 4. Create deployable virtual machine If each of these steps are isolated, different people can be responsible for the different steps. I have reorganized the project page into sections and incorporated lots of input from Jeremy at http://iptel.org/bundle/project We now need to create a project plan, split into responsibilities, and take some key decisions. I think one key decision that we have already converged on is: for first version use CentOS5 and create vmware appliance. g-)
I have Server ready with Centos5
let me know any test need to be done
ram
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Jai,
I like this second thought you expressed.
When building from CentOS CD/DVD it is common to build servers first with Gnome as for DeskTop use. After fully configured, we always change them down to run level 3 for server mode use. The extra programs on the hard disk are not usually an issue to most Enterprise IT folks.
If we expect the Enterprise-IT person to build the OS from distro, then we need to document the required build details, then when we get our first script to examine it, we can survey the landscape and see if all the right stuff is present.
If we expect to fine-tune a minimum image size, then we must do the 2->3->2->3-> dance until we really shrink it down. However, I feel that decision can be held until we see a complete running SER with all goodies that can be dropped in on top of a known OS baseline.
Right after new year, I will build two CentOS-5.1 machines and put them on public IP for examination and tinkering by all. This should be helpful for developers to confirm what is available in standard distro.
..mike..
At 12:48 PM 12/17/2007, Jai Rangi wrote:
Also I was thinking what some one can do if I give him a machine which has all the packages installed. Dont we need some good case studies/example configurations which should be part of the project.
-Jai
On Dec 17, 2007 9:44 AM, Jai Rangi <mailto:jprangi@gmail.comjprangi@gmail.com> wrote:
- Determine what needs to be on the basic CentOS 5 install for
everything to work properly (including iptables and such since we should assume security is an important factor). 2) Determine what's left that needs to be installed that doesn't come with the distro for any base dependencies. 3) Determine the order in which the apps need to be installed (for the post-proc. script).
This sounds good approach. The only thing I see is that be might be going 2->3->2->3->... few times before we get the final version of 2. Ofcourse this assumes that all the dependencies should be the default/latest versions of packages from CentOS CD.
-Jai
On Dec 17, 2007 6:16 AM, SIP <mailto:sip@arcdiv.comsip@arcdiv.com> wrote: Okay... starting with a base image of CentOS 5 (which, I believe, includes MySQL 5.0.? Don't recall which version... perhaps someone can fill in there), what are the initial things that would need to be installed for base-level dependencies (things not already on the machine and ready to go).
Then, we should start a list of what needs to be installed based on the order in which it should be installed (for the post-processing script) for the basic required stuff.
Also, for any optional packages that will be installed, we'll need a list of dependencies.
I think that's a logical next step assuming the CentOS machine has been installed (which is NOT an assumption we should overlook, as we'll need to determine what portions of the CentOS base machine SHOULD and should NOT be installed (i.e. do we really need print services, games, and an X environment in our base install, etc, etc)).
SO.... three steps really.
- Determine what needs to be on the basic CentOS 5 install for
everything to work properly (including iptables and such since we should assume security is an important factor). 2) Determine what's left that needs to be installed that doesn't come with the distro for any base dependencies. 3) Determine the order in which the apps need to be installed (for the post-proc. script).
I'm just throwing out ideas here. Feel free to tell me I'm going about this the wrong way.
N.
Greger V. Teigre wrote:
:-) we only need to get this thing together then... g-)
ram wrote:
On Dec 16, 2007 1:33 PM, Greger V. Teigre <
mailto:greger@teigre.comgreger@teigre.com
mailto:greger@teigre.com> wrote:
Using kickstart sounds good to me. I think we should keep separate the different steps: 1. Create a base image of the OS 2. Install the <http://iptel.org>iptel.org <
http://iptel.org/%3E apps and dependencies
3. Do local configurations 4. Create deployable virtual machine If each of these steps are isolated, different people can be responsible for the different steps. I have reorganized the project page into sections and incorporated lots of input from Jeremy at <http://iptel.org/bundle/project>http://iptel.org/bundle/project We now need to create a project plan, split into responsibilities, and take some key decisions. I think one key decision that we have already converged on is: for first version use CentOS5 and create vmware appliance. g-)
I have Server ready with Centos5
let me know any test need to be done
ram
Serusers mailing list mailto:Serusers@lists.iptel.orgSerusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list mailto:Serusers@lists.iptel.orgSerusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
On Dec 18, 2007 6:25 AM, Mike Trest - Personal Mike@trest.com wrote:
Jai,
I like this second thought you expressed.
When building from CentOS CD/DVD it is common to build servers first with Gnome as for DeskTop use. After fully configured, we always change them down to run level 3 for server mode use. The extra programs on the hard disk are not usually an issue to most Enterprise IT folks.
If we expect the Enterprise-IT person to build the OS from distro, then we need to document the required build details, then when we get our first script to examine it, we can survey the landscape and see if all the right stuff is present.
If we expect to fine-tune a minimum image size, then we must do the 2->3->2->3-> dance until we really shrink it down. However, I feel that decision can be held until we see a complete running SER with all goodies that can be dropped in on top of a known OS baseline.
Right after new year, I will build two CentOS-5.1 machines and put them on public IP for examination and tinkering by all. This should be helpful for developers to confirm what is available in standard distro.
..mike..
Hi all
I see day by day people involved very much in to this
iam trying Centos5.0 with kick start ( in my lab)
compiling with all the options of Ser Modules.
even i want to add freeradius support, but due to lack of documentation
i was reading CDRTOOLS just to see if i can get some information so that i can add in to the installation.
let me know if some one can able to help me
put me offline mesage
Need advise from people
iam looking for 2 options
1. install OS and install post install all related to SER
2. Installed OS with precompiled SER and make ISO image for the specific hardware.
ram
At 11:16 09/12/2007, Greger V. Teigre wrote:
Hi guys, thanks a bunch for lots of input and I really appreciate the willingness to contribute. Thus, I have created a "project page": http://www.iptel.org/sip_express_bundle_sip_service_in_15_minutes
I thought we could gather the current perspective on that page and document our decisions as we go. It will hopefully be useful in our process, as well as documentation for us and others later.
I have noted the following volunteers: Jai: testing and installation work ram: testing SIP: tesing Jiri: anyting?
we most likely will contribute with all-in-one debian packaging built on top of oob. not sure how that fits in the wide desire for CentOs though :-)
-jiri
Mike: testing and documentation
Maybe we should set up a small mailing list for coordination emails, but for now, let's use serusers (where I think all the comments came). (I copy the other lists on this post, so the other lists know that the discussion will move to serusers).
Out of the comments, I read CentOS and vmware as the most wanted combination. I have documented the pros and cons on the project page, and suggest that we do some testing before we decide. I also tried out rpath (which I have no previous experience with). My observations are documented on the same page.
Thus, I have started setting up a minimal CentOS virtual appliance found in vmware's appliance directory on an esx server. I will send details on accessing it to the volunteers once it is up and running (decompressing, unpacking, and building a non-split disk takes an awful lot of time :-( ).
Ok, further comments, ideas, etc, please post to serusers or edit/add comments to the project page (requires an iptel.org account). I see the following steps with documentation as we go (steps also found on the project page):
- Testing and specification of what we want to accomplish
- Environment and OS setup to ensure that we easily can release new versions
- Installation and configuration of the software. I assume this step also will involve development of some tools we need, as well as adaptation of existing stuff
- Testing and user documentation
- Packaging and deployment
Let's get going! g-)
Sems mailing list Sems@lists.iptel.org http://lists.iptel.org/mailman/listinfo/sems
-- Jiri Kuthan http://iptel.org/~jiri/
Jiri Kuthan wrote:
At 11:16 09/12/2007, Greger V. Teigre wrote:
Hi guys, thanks a bunch for lots of input and I really appreciate the willingness to contribute. Thus, I have created a "project page": http://www.iptel.org/sip_express_bundle_sip_service_in_15_minutes
I thought we could gather the current perspective on that page and document our decisions as we go. It will hopefully be useful in our process, as well as documentation for us and others later.
I have noted the following volunteers: Jai: testing and installation work ram: testing SIP: tesing Jiri: anyting?
we most likely will contribute with all-in-one debian packaging built on top of oob. not sure how that fits in the wide desire for CentOs though :-)
I believe the m4 buildsystem is more suited for this project as it allows local adaptations through answering a few questions. However, as I have told you previously, I'm quite agnostic when it comes to which config the buildsystem uses, and I have started the process of joining the current gettingstarted config with ser-oob. g-)
At 07:30 10/12/2007, Greger V. Teigre wrote:
Jiri Kuthan wrote:
At 11:16 09/12/2007, Greger V. Teigre wrote:
Hi guys, thanks a bunch for lots of input and I really appreciate the willingness to contribute. Thus, I have created a "project page": http://www.iptel.org/sip_express_bundle_sip_service_in_15_minuteshttp://www.iptel.org/sip_express_bundle_sip_service_in_15_minutes
I thought we could gather the current perspective on that page and document our decisions as we go. It will hopefully be useful in our process, as well as documentation for us and others later.
I have noted the following volunteers: Jai: testing and installation work ram: testing SIP: tesing Jiri: anyting?
we most likely will contribute with all-in-one debian packaging built on top of oob. not sure how that fits in the wide desire for CentOs though :-)
I believe the m4 buildsystem is more suited for this project as it allows local adaptations through answering a few questions.
debian installation does it too. Besides that it has a genuine system of resolving dependencies, which makes upgrades painless, which is the key advantage.
However, as I have told you previously, I'm quite agnostic when it comes to which config the buildsystem uses, and I have started the process of joining the current gettingstarted config with ser-oob.
marvelllous.
-jiri
g-)
-- Jiri Kuthan http://iptel.org/~jiri/
Jiri Kuthan wrote:
we most likely will contribute with all-in-one debian packaging built on top of oob. not sure how that fits in the wide desire for CentOs though :-)
I believe the m4 buildsystem is more suited for this project as it allows local adaptations through answering a few questions.
debian installation does it too. Besides that it has a genuine system of resolving dependencies, which makes upgrades painless, which is the key advantage.
Agreed, but not everyone uses debian-based distros... g-)
Hi Greger and all others,
I like the idea very much and I will try to contribute on the SEMS side. What do we want to have in services? voicemail, away announcement and dial-in conference for the beginning? Maybe a prepaid b2b with SIP authentication towards a gateway so people can easily and in a cheap way (no setup fee) provide prepaid outbound PSTN connectivity?
Greger V. Teigre wrote:
Hi guys, thanks a bunch for lots of input and I really appreciate the willingness to contribute. Thus, I have created a "project page": http://www.iptel.org/sip_express_bundle_sip_service_in_15_minutes
I thought we could gather the current perspective on that page and document our decisions as we go. It will hopefully be useful in our process, as well as documentation for us and others later.
I have noted the following volunteers: Jai: testing and installation work ram: testing SIP: tesing Jiri: anyting? Mike: testing and documentation
Stefan: SEMS support
Maybe we should set up a small mailing list for coordination emails, but for now, let's use serusers (where I think all the comments came). (I copy the other lists on this post, so the other lists know that the discussion will move to serusers).
Out of the comments, I read CentOS and vmware as the most wanted combination. I have documented the pros and cons on the project page, and suggest that we do some testing before we decide. I also tried out rpath (which I have no previous experience with). My observations are documented on the same page.
Thus, I have started setting up a minimal CentOS virtual appliance found in vmware's appliance directory on an esx server. I will send details on accessing it to the volunteers once it is up and running (decompressing, unpacking, and building a non-split disk takes an awful lot of time :-( ).
Ok, further comments, ideas, etc, please post to serusers or edit/add comments to the project page (requires an iptel.org account). I see the following steps with documentation as we go (steps also found on the project page):
- Testing and specification of what we want to accomplish
- Environment and OS setup to ensure that we easily can release new
versions 3. Installation and configuration of the software. I assume this step also will involve development of some tools we need, as well as adaptation of existing stuff 4. Testing and user documentation 5. Packaging and deployment
Let's get going! g-)
Sems mailing list Sems@lists.iptel.org http://lists.iptel.org/mailman/listinfo/sems
Hi Stefan, Thanks for volunteering. I think you are in the best position to judge which applications are in popular demand and should be included. In the initial release, I think we should focus on things that do not have external dependencies (i.e. PSTN etc), as this will probably complicate things. I prefer to create a focused, limited-functionality 1.0 release and then rather quickly add more stuff instead of taking forever with 1.0.
I think we should focus on enterprise-type apps in the beginning. g-)
Stefan Sayer wrote:
Hi Greger and all others,
I like the idea very much and I will try to contribute on the SEMS side. What do we want to have in services? voicemail, away announcement and dial-in conference for the beginning? Maybe a prepaid b2b with SIP authentication towards a gateway so people can easily and in a cheap way (no setup fee) provide prepaid outbound PSTN connectivity?
Greger V. Teigre wrote:
Hi guys, thanks a bunch for lots of input and I really appreciate the willingness to contribute. Thus, I have created a "project page": http://www.iptel.org/sip_express_bundle_sip_service_in_15_minutes
I thought we could gather the current perspective on that page and document our decisions as we go. It will hopefully be useful in our process, as well as documentation for us and others later.
I have noted the following volunteers: Jai: testing and installation work ram: testing SIP: tesing Jiri: anyting? Mike: testing and documentation
Stefan: SEMS support
Maybe we should set up a small mailing list for coordination emails, but for now, let's use serusers (where I think all the comments came). (I copy the other lists on this post, so the other lists know that the discussion will move to serusers).
Out of the comments, I read CentOS and vmware as the most wanted combination. I have documented the pros and cons on the project page, and suggest that we do some testing before we decide. I also tried out rpath (which I have no previous experience with). My observations are documented on the same page.
Thus, I have started setting up a minimal CentOS virtual appliance found in vmware's appliance directory on an esx server. I will send details on accessing it to the volunteers once it is up and running (decompressing, unpacking, and building a non-split disk takes an awful lot of time :-( ).
Ok, further comments, ideas, etc, please post to serusers or edit/add comments to the project page (requires an iptel.org account). I see the following steps with documentation as we go (steps also found on the project page):
- Testing and specification of what we want to accomplish
- Environment and OS setup to ensure that we easily can release new
versions 3. Installation and configuration of the software. I assume this step also will involve development of some tools we need, as well as adaptation of existing stuff 4. Testing and user documentation 5. Packaging and deployment
Let's get going! g-)
Sems mailing list Sems@lists.iptel.org http://lists.iptel.org/mailman/listinfo/sems
This goes in on the top as a general comment to more than one person.
I agree that locking into one virtual imaging technology or format is not a good thing when it comes to reaching as many people as possible. Through the work on SER - Getting Started incl config files + the config buildsystem + non-iptel.org work maintaing OS images, I have really experienced the pain and costs of multi-option projects and how manual operations explode in such a setting. I have thus started to hate everything that cannot be scripted.
Hence, I have researched the various options we have and I believe we have a possibility of scripting nearly everything we need, from the installation of the OS through tailoring, iptel.org installations and configurations. I post below a comment I added to the project page (which I now have incorporated into the project page as "Scripted installation"). g-)
I found a way to possibly automate and create Amazon ECC and vmware images (possibly also xen) for both centos and ubuntu (if we want to).
Steps:
Use a linux vmware machine (with apt and/or yum installed). Bootstrap a new OS installation into either a dd image or a physical (empty) disk using the same principles found in the scripts used by Rightscale (http://info.rightscale.com/content/rightimages-changelog, btw, Rightscale, thanks for publishing the scripts!). Make sure that the script has sections for installing both vmware tools and Amazon stuff (with a selection), and Xen if needed. Upload the image to Amazon S3 if that was the target ...or create vmdk file for vmware either by using qemu-img or http://liveview.sourceforge.net/ or by simply run the whole process inside a vmware virtual machine and not use dd, but a virtual disk as target for the OS bootstrap (voila! you already have a vmdk file) A dd image should also be easy to convert to Xen or even into a bootable partition (I guess those who wants this know how to do it...) The script bootstrapping the OS installation can also install and configure all iptel.org software. I believe that if we force ourselves to put all steps into a script, we will benefit greatly the next time we update the virtual machine, and the script itself documents all the details of the virtual machine.