【发布时间】:2013-02-25 23:10:04
【问题描述】:
我的客户公司有一个简单的网络应用程序,用户可以通过桌面/移动网站与之交互。最近他们要求实现通知功能。用户如果愿意,可以注册网络应用程序的实时通知。
不过,真正有趣的要求是通知应该:
- 实时交付(延迟 60 秒以上为失败);
- 保证送达,即我的客户希望确保每个用户都能收到他/她的所有通知。
- 能够以某种方式从后台通知用户,例如,典型用户不会等待在其 Android 上打开浏览器窗口的通知。首选方法是让手机响铃和/或振动,并将一些消息放入通知区域,这样即使手机放在口袋或包里,用户也能注意到通知。
注意事项:
- 一个典型的通知消息很短,下面是一个例子:“你好!你今天在
$5pm与$John开会”; - 所有用户都拥有支持 3G 连接的智能手机 (iPhone/Android)。
由于现代移动浏览器当前的state无法满足要求3,因此完全达到规范的唯一两种方法是:
- A.制作适用于 iOS/Android 的应用程序并使用原生 API 制作 收到通知后电话响铃和振动;
- 乙。使用类似的 IVR Asterisk 通过 SIP 呼叫用户,播放带有通知的声音和 请他/她按 1 确认收到通知 (声音可能类似于“你今天与约翰开会 下午 5 点。请按 1 确认”)。
但是当我开始测试那些 A 和 B 选项时,我发现(1)和(2)不能通过常规的 3G 连接来满足(公司在欧洲,连接还可以)。例如,Android 设备上的 Jabber 客户端可能会延迟很长时间(几分钟)才能收到一些消息,甚至会丢失一些消息。
因此,满足要求 1、2 和 3 的唯一选择是使用 B(自动 IVR - Asterisk)。
我的推理正确吗?是否有任何其他机制可以向启用智能手机的用户实时发送简短通知,100% 保证并让智能手机在收到通知时响铃和/或振动?我是否应该尝试使用其他方式来代替自动 IVR 呼叫?
附:在我的研究中我不考虑 SMS 技术,因为据我所知有no guaranteed delivery 的消息。
【问题讨论】:
-
Class 1 SMS 将满足您在屏幕上弹出的要求。交付非常可靠(生活中没有多少事情可以保证 100% :-)),但仅凭时间要求可能就排除了 SMS。老实说,我觉得你客户的 100% 交付要求有点不切实际——任何系统都可能出现故障。实际上,您正在寻找能够提供最佳可用性能的系统。
标签: sms push-notification asterisk 3g ivr