通过TCP / IP分页协议,Telocator字母数字协议,“TAP”?

时间:2012-02-06 18:37:38

标签: tcp telephony custom-paging

这不是“测试任何协议”,而是“Telocator字母数字协议”。

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

然而,供应商没有提供关于如何格式化这些消息的其他文档,并且只是一再坚持认为这是足够的信息。只需“将TAP消息发送到IP端口”....

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

谢谢!

3 个答案:

答案 0 :(得分:3)

TAP是一种串行协议。您可以从http://www.phoner.de/TAP_V1P8.PDF下载pdf。它旨在通过PSTN(电话线)运行;您拨打网络提供商并上传您的短信和收件人号码,然后挂机。然后,网络提供商发送消息。

说实话,这已经是一种过时的技术。在英国,O2在2012年3月底停止了其TAP服务,只留下了沃达丰服务(这似乎也没有工作一段时间)。从我可以收集的内容来看,其他国家也是如此。您最好不要查看SMS网关服务,例如Clickatell,或通过电子邮件发送到SMS服务。在这个智能手机和推送电子邮件时代,我怀疑纯电子邮件通知最终将会接管。

答案 1 :(得分:1)

自问这个问题已经有一段时间了,3年+但是医院客户仍然有这样的寻呼机系统也有同样的问题,并且说我们已经给你ip和端口使它工作。< / p>

使用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);
};

答案 2 :(得分:0)

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

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

Beepage(Unix版): 搜索sourceforge for beepage

Air Messenger: http://www.fileheap.com/software-air-messenger-lite-download-27994.html

您可以使用Google TAP规范查看其含义。