0

这不是“Test Anything Protocol”,而是“Telocator Alphanumeric Protocol”。

供应商告诉我,有一个 IP 地址和端口可用于向其发送“TAP 消息”。

但是,供应商没有提供有关如何格式化这些消息的其他文档,只是一遍又一遍地坚持认为这是足够的信息。只需“向 IP 端口发送 TAP 消息”......

有人可以就这可能意味着什么以及该消息的格式可能是什么样子提供任何想法吗?不确定它是 XML/ASCII/BINARY、通过 HTTP(S) 运行还是什么。

谢谢!

4

3 回答 3

3

TAP is a serial protocol. You can download a pdf from http://www.phoner.de/TAP_V1P8.PDF. It is designed to operate over the PSTN (telephone line); you dial a network provider and upload your text message and recipient number, then hang up. The network provider then sends the messages.

To be honest this is already an obsolete technology. Here in the UK O2 discontinued its TAP service at the end of March 2012 leaving just the Vodafone service (which doesn't seem to have worked for a while either). From what I can gather it is similar tale in other countries. You would be better off looking at SMS gateway services, such as Clickatell, or e-mail to SMS services. In this age of smartphones and push e-mail I suspect that pure e-mail notifications will eventually take over.

于 2012-06-08T15:32:18.927 回答
1

自从提出这个问题以来已经有一段时间了,3 年多,但与仍然有这样的寻呼机系统的医院客户有同样的问题,还说我们已经给了你 ip 和端口让它工作。

使用 php 打开到服务器和端口的套接字连接。然后发送所需的 TAP 命令并从服务器获取响应。

我的目标服务器不需要用户名或密码即可登录,而不是读取响应并循环等待它们,这可以通过 socket_read($socket, 1024); 完成。在发送下一个命令之前,我只是暂停了脚本两秒钟。当我关闭套接字并最终让服务器在发送消息序列结束后执行此操作时,服务器不喜欢它。如果您省略消息结尾部分,您可以发送多条消息,但是我必须处理的服务器崩溃了很多,下面对我有用。客户将在 6 个月内购买具有更好界面的新系统,因此不再对此进行研究。

//$msg_to = the pager number
//$msg_text = the message
//$host  = ip of server
//$port  = port number

$message = chr(2).$msg_to.chr(13).$msg_text.chr(13).chr(3);
$checksum = calcChecksum($message);
$message .= $checksum.chr(13);
$CR = chr(13);
$end = chr(27).chr(4).chr(13); //<ESC><EOT><CR>
$login = chr(27)."PG1".chr(13);  //<ESC>PG1thepwd<CR>
//- <ACK><CR><ESC>[p<CR> check for [p

$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket");
$result = socket_connect($socket, $host, $port) or die("Could not connect to server"); 
sleep(1); stream_set_timeout($socket, 5);
socket_write($socket, $CR, strlen($CR)) or die("Could not send <CR> to server");
sleep(2);
socket_write($socket, $message, strlen($message)) or die("Could not send message to server");
sleep(2);
socket_write($socket, $end, strlen($end)) or die("Could not send end to server");

function calcChecksum($message) {
$split = str_split($message); $sum = 0;
foreach ($split as $value) { $numb = ord($value); $sum += $numb; }
$d3 = 48 + $sum - intval($sum / 16) * 16;
$sum = intval($sum / 16);
$d2 = 48 + $sum - intval($sum / 16) * 16;
$sum = intval($sum / 16);
$d1 = 48 + $sum - intval($sum / 16) * 16;
return chr($d1).chr($d2).chr($d3);
};
于 2015-05-21T07:46:51.720 回答
0

我正在查看 TAP 协议的服务器端。但是,在我的研究中,我发现以下客户端对您发送 TAP 消息很有用。

Beepage(Windows 版): http ://rsug.itd.umich.edu/software/beepage/

Beepage(Unix 版本):在 sourceforge 中搜索 beepage

空气信使: http ://www.fileheap.com/software-air-messenger-lite-download-27994.html

您可以谷歌 TAP 规范以了解其含义。

于 2012-02-10T16:33:34.823 回答