Monday, August 15, 2011

Progress report on Client/Server PUSH for Amatuer Paging network

The server side software has been written, may need to be tweaked a little depending on a few things Mark (KC8GRQ) does on the server side of things, it's very simple very easy to use.
The script needs four things from the website, and can be called as an external script
The 1st thing it needs is:
$text this is the encoder sentence already formated and ready to goto the encoder (IE: #poc,1234567,3,a,"Hello World")

$text = '#poc,1234567,3,a,"Hello World"';

The 2nd thing it will need is the TX point (IT hasn't been decided yet how we are naming the TX points, so for the tests I just used my call sign):
$to - This is the TX point identification (callsign, node number, ???)

$to = 'KD8BXP';

The next thing -> Is the destination call sign - this is who will receive the page. I know the capcode also would indicate this, but for logging reasons I thought it would be a good idea to include the real call sign

$destination = This is the callsign of the person to receive the page
$destination = "N4TRQ";

The last is the originator call sign - this is the person who is sending the page (every effort should be made to include this in the message part of the encoder string as well) But again,
for logging reasons I wanted to include this.

$originator = This is who sent the page (callsign)
$originator = "KD8BXP";

That's it for the server side of the push notifications....easy peasy.

The client side, does some work, but not much, it will work on anything that can run PHP CLI and has a "REAL" serial port. (a USB to SERIAL port was used to test)

The client (TX point) does need to setup a couple of things - IT's very easy, but I will try to make it even easier. The client does need to be able to run php cli version 5.2 or better.

Here is what the TX point will need to setup. (3 things, not much really)

$mytxid this is you call sign or node number, or whatever we end up with, it will be something that is unique and will be used to identify you on the network. IE: The server will send your TX point (node number, callsign ???) out across the network, your TX point is just listening for your (node number, callsign ???) and will become active if it sees it. Otherwise it will just sit and wait until it does see it.

At the time of this writing we haven't decided what this will be, but it will most like be assigned by the server software when you register on the network.

The next thing that will need to be setup will be the TX point station ID - AT this time,
you will need to edit one line in the clientpush.php script. (I will be changing this very soon)

The line currently looks like this:
$text = '#poc,' . $capcode . ',3,a,"KD8BXP Pager TX node 123"';

At the time of this writing, we haven't determined how to or what to say when we ID the TX point.
The one thing that needs to be there is your call sign this will keep everything nice a legal.
The extra stuff is just a nice bonus.

You could put a small personal message - "Tnks for using TX node 123 DE KD8BXP" or something like that...I am not sure we will really have a set ID you will need to use.
IDing your station is your responsibility, this is an FCC (part 97) requirement. IT can be digital.

You may or may not also want to add a CW IDer to your personal setup. The only thing there is The CW can't not cover the pages that are going out over the air, so you'll need to come up with a way to turn the encoder off (or on hold) until after the CW goes out.

The last thing you need to setup is the COM port. This should be a REAL com port, I did not write the routes for serial usage it was written by Remy Sanchez, and is somewhat picky about having a "real com port"!

$comport - this is the com port number - NOTICE: for linux it's "/dev/ttyS?" where ? = a number
and for windows it's "com?" where ? = a number. (IE: /dev/ttyS0 or COM1)

That's it for the setup of the clientpush.php

To run the script, goto the command line, go into the directory/folder where the clientpush.php is located and type "PHP clientpush.php" without the quotes (NOTE: PHP much be installed, CLI version) and two other PHP scripts must be in the same directory (php_serial.class.php which is all of the routes for working with the serial port, and Pubnub.php - which is the how the script listens for it's ID)

The script will sit and just wait, you may or may not see any output on the screen (at least until you get a page to send out) (I will probably change this so at least you know the script did start)

How it works: IT just sits and waits, when the server gets a page it will "PUSH" that information out over the internet, IF your TX point hears it's ID (node number, call sign ???) it will grab the cap-code out of the message string. IT will send the entire encoder string to the encoder (using the serial port), It will log the DATE TIME ENCODER SENTENCE DESTINATION & ORIGINATOR in a file called log.txt, IT will then send a 2nd page with the TX point call sign (or personal message you setup), it will then LOG That page in the same format as above (with out the ORIGINATOR - you are the originator of this page)

After that (Which takes only a few seconds to complete) IT will sit and wait some more.
IT does output most of the information on screen so you can watch it work if you want.

The log file looks like this:

Mon, 15 Aug 2011 00:47:37 #poc,1234567,3,a,"Hello World" N4TRQ,KD8BXP
Mon, 15 Aug 2011 00:47:37 #poc,1234567,3,a,"KD8BXP Pager TX node 123" N4TRQ

At the time of this writing you need to make an empty file called log.txt (That will be changing very soon, it's on the todo list)

To stop getting pages -> just hit CTRL C, it will exit the script

My self and Authur (N4TRQ) did test this over the network, he got the messages I pushed to him.

During that testing is when I realized I could make it a little better. But it is usable in it's current condition. And it does work!

Thats about it for my report on how it went with getting a "push" to work! This setup uses very little CPU time, the client script can be ran on anything that can handle php 5.2 and has a real serial port.

My original envision what a simple computer with a command line install of linux - after the tests with N4TRQ I realized you don't need a dedicated computer to use this script, you may one a dedicated computer just because, but you don't need one.

-Report Ends


No comments:

Post a Comment