[asterisk-dev] RFC: MeetMe RealTime enhancements

Dan Austin Dan_Austin at Phoenix.com
Tue Apr 24 17:27:32 MST 2007


For a couple of years now I have been maintaining
an out-of-tree application to provide schedulable,
resource reserved conferencing.  The app only
checks and enforces limits, then passes control
to app_meetme.

I just noticed that the RealTime patch for 
app_meetme was merged before 1.4 was released, and
thought it was about time I got off my duff and
merged my scheduling features.

Before I start coding, I'd like to get some feedback
on my approach-

1.  Make it optional.  If an option in the [general]
section of meetme.conf (scheduled =) is set to yes use
the new logic, otherwise use the RealTime query as it
exists today.

2.  Extend the meetme database definition as follows:
CREATE TABLE `booking` (
  `bookId` int(10) unsigned NOT NULL auto_increment,
  `clientId` int(10) unsigned default '0',
  `confno` varchar(30) default '0',
  `userpin` varchar(30) NOT NULL default '0',
  `modpin` varchar(30) NOT NULL default '0',
  `startTime` datetime NOT NULL default '0000-00-00 00:00:00',
  `endTime` datetime NOT NULL default '0000-00-00 00:00:00',
  `dateReq` datetime NOT NULL default '0000-00-00 00:00:00',
  `dateMod` datetime NOT NULL default '0000-00-00 00:00:00',
  `maxUser` varchar(30) NOT NULL default '10',
  `status` varchar(30) NOT NULL default 'A',
  `confOwner` varchar(30) NOT NULL default '',
  `confDesc` varchar(100) NOT NULL default '',
  `uFlags` varchar(10) NOT NULL default '',
  `mFlags` varchar(10) NOT NULL default '',
  `sequenceNo` int(10) unsigned default '0',
  `recurInterval` int(10) unsigned default '0',
  PRIMARY KEY  (`bookId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=145 ;

A number of these columns are not needed directly by
app_meetme, but facilitate scheduling.  These columns
would be used if scheduling was enabled:
	confno	userpin	modpin
	startTime	endTime	maxUser
	uFlags	mFlags

Legacy RealTime (scheduled = no(default)) would use these columns:
	confno	userpin	modpin
	uFlags	mFlags
	
I already have a good number of people using my scheduler,
and they would need to rename some columns in their databases.
The carrot to encouraging that would be better integration
and RealTime opens up a whole range of DB engines.  My
app is currently supported MySQL only, but the scheduler
interface is DB agnostic.

After reviewing the RealTime support code in app_meetme,
I believe I can localize all changes to find_conf_realtime(),
and do it in about 20ish lines of code.

Thoughts?


More information about the asterisk-dev mailing list