BeepagePHP can dial any standard paging dispatcher, such as Sprint PCS, Metrocall, Nextel, Cingular, or other common paging companies.
The web interface allows a user to...
- Send text messages to any pager and almost any cell phone
- Add subscriber info
- Edit groups of subscribers
- Add service info (e.g., Metrocall dispatcher)
When a user composes a page in the web interface, the page is queued on the server for immediate sending. The server uses a single modem to dial up each queued service provider (such as Metrocall), then transmits all pages that have been queued for that provider.
BeepagePHP requires the -s sender
functionality
provided by the version of beep in the sender branch at
enhanced version of beepage.
This enables beepagePHP to pass the contents of the REMOTE_USER
server variable to the beep client running on localhost.
Consequently, the cell phone or pager that receives the page displays the name
of the originating sender and not the name of the httpd user account from the
web server.
-
Build and install beepage.
-
Clone beepagePHP into an appropriate content directory, such as
/var/www/html/beepage
. -
Update your apache config to implement basic authentication on the
beepage/
directory. Consult the Apache how-to if you are unsure how to accomplish this.Here is an example
/etc/httpd/conf.d/beepage.conf
file:################################################## # # httpd configuration settings for use with beepagephp # # establish a .htaccess file for general usage <Directory /var/www/html/beepage/> AllowOverride AuthConfig <FilesMatch "\.inc$"> Order Allow,Deny Deny from all </FilesMatch> </Directory> # establish a different .htaccess file for the admin # directory <Directory /var/www/html/beepage/admin/> AllowOverride AuthConfig <FilesMatch "\.inc$"> Order Allow,Deny Deny from all </FilesMatch> </Directory> ##################################################
-
Update the permissions on your
beepage/etc
files as follows (assuming httpd runs as group apache):chgrp apache etc/{users,aliases,services} chmod 770 etc/{users,aliases,services}
A. beepagePHP assumes that beepaged
is running on localhost.
You may need to edit beepagePHP/inc/vars.inc
if
you modified the location of files in the beepage Makefile.
B. Sample user, group (aliases), and services files are included with the beepage tarball in the downloads section.
C. Check your host-based firewall rules to ensure that localhost (on which httpd is running) can connect to itself on port 6661.
D. Please configure web server to authenticate your users. Otherwise:
-
Anybody visiting your web server will be able to send messages (this may be what you want).
-
Outgoing messages will show "From: apache" assuming that httpd is running as apache.
The following pages list TAP phone numbers for common cell phone and paging service providers:
BeepagePHP originally lived at
http://beepagephp.sourceforge.net.
I threw it together to solve an immediate business need at a time when
PagerDuty and other cloud services did not exist.
Perhaps there is still some value in BeepagePHP or Beepage,
so the source code now lives on GitHub at:
Beepage is a Unix-based, Internet-aware text paging system that implements the Telocator Alphanumeric Protocol (TAP), and upstream lives at http://beepage.org.
Upstream beepage is in CVS, so I used the instructions from http://blog.gorwits.me.uk/2011/06/22/migrate-sourceforge-cvs-repository-to-git/ to export the history to git.
mkdir ~/cvs && cd ~/cvs
rsync -av rsync://beepage.cvs.sourceforge.net/cvsroot/beepage/* .
cd ~/cvs
svn export --username=guest http://cvs2svn.tigris.org/svn/cvs2svn/trunk cvs2svn-trunk
cp cvs2svn-trunk/cvs2git-example.options cvs2git.options
Edit cvs2git.options
, where
diff -u cvs2svn-trunk/cvs2git-example.options cvs2git.options
shows my changes:
--- cvs2svn-trunk/cvs2git-example.options 2013-12-29 01:27:07.452000000 +0000
+++ cvs2git.options 2013-12-29 01:49:30.747000000 +0000
@@ -522,6 +522,10 @@
# This one will be used for commits for which CVS doesn't record
# the original author, as explained above.
'cvs2git' : 'cvs2git <admin@example.com>',
+ 'admorten' : 'admorten <beepage@umich.edu>',
+ 'cmessina' : 'messina <beepage@umich.edu>',
+ 'wes' : 'wes <beepage@umich.edu>',
+ 'wescraig' : 'wescraig <beepage@umich.edu>',
}
# This is the main option that causes cvs2git to output to a
@@ -561,7 +565,7 @@
# The filesystem path to the part of the CVS repository (*not* a
# CVS working copy) that should be converted. This may be a
# subdirectory (i.e., a module) within a larger CVS repository.
- r'test-data/main-cvsrepos',
+ r'cvs/beepage',
# A list of symbol transformations that can be used to rename
# symbols in this project.
Finish the cvs2git conversion and push to GitHub:
cd ~/cvs
cvs2svn-trunk/cvs2git --options=cvs2git.options --fallback-encoding utf-8
cd ~/cvs/beepage
git init
cat ../cvs2git-tmp/git-{blob,dump}.dat | git fast-import
git tag -l | while read ver; do
git checkout $ver;
git tag -d $ver;
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a $ver -m "prep for $ver release";
done
git checkout master
git remote add git@github.com:jumanjiman/beepage.git
git push origin master && git push origin --tags
For reasons I cannot remember from 2004, I never mirrored my
CVS (or was it subversion?) repo to SourceForge, so
I now had to reconstruct my trivial patch to beep.c
and kin.
The patch is now in the sender branch at
https://github.com/jumanjiman/beepage/tree/sender.
I originally licensed BeepagePHP as GPLv2, but it's now MIT.