Date: Wed, 15 Feb 2006 09:57:55 +0300 From: Dmitry Kostikov <kostikov@vstu.ru> To: jmz@freebsd.org Cc: ports@freebsd.org Subject: FreeBSD Port: mgetty-1.1.34 Message-ID: <43F2D0F3.8060007@vstu.ru>
next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------080006050900030205000003 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit Hello. I am using mgetty with patch (mgetty.sc.zip in attachment) by Alexey U Gretchaninov (scorpus@iname.com, ICQ 3272821) for some time. This patch add some features: "answer-time" and time periods. I think, it can be useful for other people. "answer-time" option allow to define answer periods for rings in the mgetty.config. Examples: "answer-time 23" answer only during 23-th hour. "answer-time 23,0,1,2" answer during 23, 0, 1 and 2 hours. "answer-time 23-2" ΙΜΙ "answer-time 23:00-2:00" answer in period from 23 to 2. "answer-time 1.23" answer only during 23 hour at Monday. "answer-time 7.23" answer only during 23 hour at Sunday. "answer-time 2.23-2.2" ΙΜΙ "answer-time 2.23:00-2.2:00" answer only from 23 to 2 at Tuesday. "answer-time 2.23-5.2" ΙΜΙ "answer-time 2.23:00-5.2:00" answer from 23 to 2 at Tuesday, Wednesday, Thursday and Friday. Time periods can be combined in any order: "answer-time 23-7,6.0-7.24" or "answer-time 1.23:00-5.7:00,6.0:00-7.24:00" Time periods support in the mgetyy.conf Using of such construction: {<time period>} <option> in mgetty.conf allow to control behaviour of mgetty, depending of current time. I.e. option <option> will be read from config only if current time lies in the <time period>. Examples: ========================== {22:00-8:00} rings 1 {8:00-22:00} rings 5 ========================== From 22 to 8 mgetty will be answer from 1 ring, in the period from 8 to 22 - from 5 rings. ================================== {1.22:00-5.8:00} rings 1 {6.00:00-7.24:00} rings 2 {1.8:00-5.22:00} rings 5 ================================== ============================== {8:00-22:00} rings 5 {8:00-22:00} fax-only y {22:00-8:00} rings 1 {22:00-8:00} data-only y ============================== Hints: 1. Don't forget to restart mgetty then next period comes (with cron, for example). For first example: ==================================== 0 22 * * * killall -q mgetty 0 8 * * * killall -q mgetty ==================================== 2. /etc/nologin[.device] and answer-time have more higher priority over {<time period>}. Also, i attach patch-x (my adaptation of original patch for current version of mgetty+sendfax port). I am apologize for my english. :-( With best regards, Dmitry Kostikov --------------080006050900030205000003 Content-Type: application/octet-stream; name="mgetty.sc.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="mgetty.sc.zip" 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 --------------080006050900030205000003 Content-Type: text/plain; name="patch-x" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="patch-x" --- cnd.c.orig Sun Apr 17 15:55:43 2005 +++ cnd.c Wed Feb 15 08:05:15 2006 @@ -85,6 +85,9 @@ /* (if AT#CID=10 is set, contributed by Edwin Groothuis) */ {"NDID=", &CalledNr}, + /* USR Courier V.Evr with ID SDL (Russian caller ID support) */ + {"CallerID: ", &CallerId}, + /* yet another incompatible modem... */ {"CALLER'S NUMBER: ", &CallerId}, --- conf_mg.c.orig Thu Nov 24 19:57:58 2005 +++ conf_mg.c Wed Feb 15 08:05:15 2006 @@ -88,7 +88,9 @@ { "rings", {1}, CT_INT, C_PRESET }, { "msn-list", {(p_int) NULL}, CT_CHAT, C_EMPTY }, { "get-cnd-chat", {0}, CT_CHAT, C_EMPTY }, + { "deny-chat", {0}, CT_CHAT, C_EMPTY }, { "cnd-program", {(p_int) NULL}, CT_STRING, C_EMPTY }, + { "answer-time", {(p_int) NULL}, CT_STRING, C_EMPTY }, { "answer-chat", {0}, CT_CHAT, C_EMPTY }, { "answer-chat-timeout", {80}, CT_INT, C_PRESET }, { "autobauding", {FALSE}, CT_BOOL, C_PRESET }, --- conf_mg.h.orig Thu Nov 24 19:57:58 2005 +++ conf_mg.h Wed Feb 15 08:05:15 2006 @@ -33,7 +33,9 @@ rings_wanted, /* number of RINGs */ msn_list, /* ISDN MSNs (dist.ring) */ getcnd_chat, /* get caller ID (for ELINK)*/ + deny_chat, /* hangup modem chat */ cnd_program, /* accept caller? */ + answer_time, /* Answer time */ answer_chat, /* ATA...CONNECT...""...\n */ answer_chat_timeout, /* longer as S7! */ autobauding, --- config.c.orig Sun Feb 28 22:17:55 1999 +++ config.c Wed Feb 15 08:05:15 2006 @@ -12,6 +12,7 @@ #include "syslibs.h" #include <ctype.h> #include <string.h> +#include <time.h> #ifndef ENOENT #include <errno.h> #endif @@ -19,6 +20,8 @@ #include "mgetty.h" #include "config.h" +int is_time_now(char *); + /* read a line from FILE * fp, terminated by "\n" * the line can be of any length (buffer will dynamically grow) * - trailing "\n" is chopped off @@ -323,6 +326,13 @@ { norm_line( &line, &key ); if ( key[0] == 0 ) continue; /* empty line */ + + if( key[0] == '{') + { + if( strchr(key, '}') ) *strchr( key, '}' ) = 0; + if( !is_time_now( key + 1 ) ) continue; + norm_line( &line, &key ); + } lprintf( L_NOISE, "conf lib: read: '%s %s'", key, line ); @@ -419,6 +429,216 @@ return NOERROR; } + +int is_time_now(char *timeRanges) +{ +int firstDay, secondDay, firstHour, firstMinute, secondHour, secondMinute, + firstMark, secondMark, currentMark, Day, Hour, Min; +char *p, *s, *f, *rs, *r; +time_t Time; +struct tm *localTime; + +if(!strlen(timeRanges)) + { + lprintf( L_ERROR, "empty timerange(s) string!"); + return 0; + } + +if(!(rs = strdup(timeRanges))) return 0; + +lprintf( L_NOISE, "work timerange(s): \"%s\"", rs); + +for(r = strtok(rs, ","); r; r = strtok(NULL, ",")) + { + if(!strcasecmp(r, "CM")) { free(rs); return 1;} + if(!strlen(r)) continue; + + firstDay = -1; + secondDay = -1; + firstHour = -1; + firstMinute = -1; + secondHour = -1; + secondMinute = -1; + + lprintf( L_NOISE, "timerange: \"%s\"", r); + + if((p = strchr(r, '-'))) + { + if((s = strchr(r, '.'))) + { + firstDay = atoi(s - 1); + firstHour = atoi(s + 1); + if((f = strchr(s + 1, ':')) && f < p) firstMinute = atoi(f + 1); + + if((s = strchr(p + 1, '.'))) + { + secondDay = atoi(s - 1); + secondHour = atoi(s + 1); + if((f = strchr(s + 1, ':'))) secondMinute = atoi(f + 1); + } + else + { + lprintf( L_ERROR, "can't parse timerange: \"%s\"", r); + free(rs); + return 0; + } + } + else + { + firstHour = atoi(r); + if((f = strchr(r, ':')) && f < p) firstMinute = atoi(f + 1); + secondHour = atoi(p + 1); + if((f = strchr(p + 1, ':'))) secondMinute = atoi(f + 1); + } + } + else + { + if((s = strchr(r, '.'))) + { + firstDay = atoi(s - 1); + firstHour = atoi(s + 1); + if((p = strchr(s + 1,':'))) firstMinute = atoi(p + 1); + } + else + { + firstHour = atoi(r); + if((p = strchr(r,':'))) firstMinute = atoi(p + 1); + } + } + + if( firstDay < -1 || firstDay > 7 || firstDay == 0 || firstHour < -1 || + firstHour > 23 || firstMinute< -1 || firstMinute > 59 || secondDay < -1 + || secondDay > 7 || secondDay == 0 || secondHour < -1 || + secondHour > 24 || secondMinute < -1 || secondMinute > 59 || + firstHour == -1 || (secondDay != -1 && secondHour == -1)) + { + lprintf( L_ERROR, "can't parse timerange: \"%s\"", r); + free(rs); + return 0; + } + + lprintf( L_NOISE, "parsed timerange: %i.%i:%i - %i.%i:%i", firstDay, + firstHour, firstMinute, secondDay, secondHour, secondMinute); + + Time = time(NULL); + localTime = localtime(&Time); + + Day = localTime->tm_wday; + if(!Day) Day = 7; + Hour = localTime->tm_hour; + Min = localTime->tm_min; + + lprintf( L_NOISE, "current time: day %u, hour %u, min %u", Day, Hour, Min); + + firstMark = firstHour * 60; + if(firstMinute != -1) firstMark += firstMinute; + + secondMark = secondHour * 60; + if(secondMinute != -1) secondMark += secondMinute; + + currentMark = Hour * 60 + Min; + + lprintf( L_NOISE, "firstmark: %i, secondmark: %i, currentmark: %i", + firstMark, secondMark, currentMark); + + if(secondDay != -1) + { + if(firstDay < secondDay) + { + if(Day >= firstDay && Day <= secondDay) + { + if(firstMark < secondMark) + { + if(currentMark >= firstMark && currentMark < secondMark) + { free(rs); return 1; } + } + else + { + if(currentMark >= firstMark || currentMark < secondMark) + { free(rs); return 1; } + } + } + } + else + { + if(firstDay == secondDay) + { + if(Day == firstDay) + { + if(firstMark < secondMark) + { + if(currentMark >= firstMark && currentMark < secondMark) + { free(rs); return 1;} + } + else + { + if(currentMark >= firstMark || currentMark < secondMark) + { free(rs); return 1;} + } + } + } + else + { + if(Day >= firstDay || Day <= secondDay) + { + if(firstMark < secondMark) + { + if(currentMark >= firstMark && currentMark < secondMark) + { free(rs); return 1;} + } + else + { + if(currentMark >= firstMark || currentMark < secondMark) + { free(rs); return 1;} + } + } + } + } + } + else if(secondHour != -1) + { + if(firstMark < secondMark) + { + if(currentMark >= firstMark && currentMark < secondMark) + { free(rs); return 1;} + } + else + { + if(currentMark >= firstMark || currentMark < secondMark) + { free(rs); return 1;} + } + } + else if(firstDay != -1) + { + if(firstMinute != -1) + { + if(Day == firstDay && Hour == firstHour && Min == firstMinute) + { free(rs); return 1;} + } + else + { + if(Day == firstDay && Hour == firstHour) + { free(rs); return 1;} + } + } + else + { + if(firstMinute != -1) + { + if(Hour == firstHour && Min == firstMinute) + { free(rs); return 1;} + } + else + { + if(Hour == firstHour) + { free(rs); return 1;} + } + } + } + +free(rs); +return 0; +} /* makepath * * only needed on non-ANSI-compilers or for non-fixed arguments --- mgetty.c.orig Thu Nov 24 20:00:30 2005 +++ mgetty.c Wed Feb 15 08:05:15 2006 @@ -38,6 +38,8 @@ #include "voice/include/voice.h" #endif +int is_time_now(char *); + /* how much time may pass between two RINGs until mgetty goes into */ /* "waiting" state again */ int ring_chat_timeout = 10; @@ -613,6 +615,14 @@ break; } #endif + + if(c_string(answer_time) && !is_time_now(c_string(answer_time))) + { + lprintf( L_MESG, "out of answer time - do not accept call!"); + mgetty_state = St_nologin; + break; + } + mgetty_state = St_wait_for_RINGs; break; @@ -657,8 +667,24 @@ &what_action, &dist_ring ) == SUCCESS ) { rings++; - if ( access( buf, F_OK ) != 0 || /* removed? */ - virtual_ring == TRUE ) /* SIGUSR1? */ + if ( access( buf, F_OK ) != 0 ) /* removed? */ + { + if( c_string( answer_time )) + { + if( is_time_now( c_string(answer_time))) + { + mgetty_state = St_wait_for_RINGs; /* -> accept */ + break; + } + } + else + { + mgetty_state = St_wait_for_RINGs; /* -> accept */ + break; + } + } + + if ( virtual_ring == TRUE ) /* SIGUSR1? */ { mgetty_state = St_wait_for_RINGs; /* -> accept */ break; @@ -813,6 +839,9 @@ ( c_isset(cnd_program) && cnd_call( c_string(cnd_program), Device, dist_ring ) == 1)) { + if ( c_isset(deny_chat) ) + do_chat( STDIN, c_chat(deny_chat), NULL, NULL, 10, TRUE ); + lprintf( L_AUDIT, "denied caller dev=%s, pid=%d, caller='%s'", Device, getpid(), CallerId); clean_line( STDIN, 80 ); /* wait for ringing to stop */ @@ -820,6 +849,9 @@ mgetty_state = St_go_to_jail; break; } + + if(strcmp(CallerId, "none")) + lprintf( L_MESG, "caller-id: '%s'", CallerId); /* from here, there's no way back. Either the call will succeed and mgetty will exec() something else, or it will fail and @@ -1124,3 +1156,4 @@ } } } + --- mgetty.cfg.in.orig Mon Nov 17 22:09:41 2003 +++ mgetty.cfg.in Wed Feb 15 08:05:15 2006 @@ -32,6 +32,7 @@ #fax-group uucp #fax-mode 0640 +# answer-time 23:00-07:00 # ----- port specific section ----- # @@ -41,8 +42,12 @@ # Zoom V.FX 28.8, connected to ttyS0: don't do fax, less logging # #port ttyS0 +# answer-time 0:00-24:00 +# or +# {22:00-8:00} rings 1 +# {8:00-22:00} rings 8 # debug 3 -# data-only y +# {8:00-22:00} data-only y # some other Rockwell modem, needs "switchbd 19200" to receive faxes # properly (otherwise it will fail with "timeout"). @@ -54,6 +59,15 @@ # ZyXEL 2864, connected to ttyS2: maximum debugging, grab statistics # #port ttyS2 +# answer-time 23:00-7:00 +# or +# {23:00-7:00} rings 1 +# {7:00-23:00} rings 8 +# +# For USR Courier V.Evr with ID SDL (ver >= 3.03): +# get-cnd-chat "" AT+S62=3+S64=1+S65=0+SR1 OK +# deny-chat "" ATH0 OK +# # debug 8 # init-chat "" \d\d\d+++\d\d\dAT&FS2=255 OK ATN3S0=0S13.2=1 OK # statistics-chat "" AT OK ATI2 OK --- version.h.orig Wed Nov 30 11:47:43 2005 +++ version.h Wed Feb 15 08:05:15 2006 @@ -1 +1 @@ -char * mgetty_version = "interim release 1.1.34-Nov30"; +char * mgetty_version = "interim release 1.1.34-Nov30.sc"; --------------080006050900030205000003--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43F2D0F3.8060007>