短信到端口号

张贴者 于2007年6月18日在 支持博客

主题关键字: , , , ,

应用程序或端口定向的SMS:如何将SMS发送到Java应用程序/ MIDlet

It’是一项常见的任务,但却是一项令人困惑的任务。随着Java在手机上得到越来越广泛的支持,最明显的应用程序需求之一就是能够将SMS消息发送到应用程序,并使该应用程序根据SMS消息的内容采取某些措施。

但是,尽管J2ME将允许应用程序接收消息,但不允许MIDlet直接与电话交互。’的短信收件箱。而是,应用程序仅接收发送到其特定端口号的消息。有关如何从手机上运行的应用程序接收这些消息的更多信息,请参阅  JSR-120 和/或 JSR-205 爪哇 社区发布的规范。

从MIDlet内部,将SMS消息发送到特定端口相对容易,因为您只需将端口号包含在收件人地址(sms:// phonenumber:port)中。

但是,这并不容易 (或者在许多情况下甚至可能) 从常规SMS客户端向特定端口发送SMS消息。

We’我支持一个相对容易的 (如果不清楚) 从2004年初开始,将短信发送到NowSMS中特定端口的方法。

使用NowSMS 2007和更高版本,它变得更加容易,因为“Send Text Message”网络表单现在将包含一个“Destination Port”领域。另外,通过网址请求提交时,请包括“&DestPort=xxxx” or “&SourcePort=xxxx”在URL请求中指定目标和/或源端口。或者,可以使用格式phonenumber:port在收件人电话号码中指定目标端口。 (注意:使用phonenumber:port格式时,如果指定了多个收件人,则相同的目标端口将应用于所有收件人,这是收件人列表中遇到的第一个目标端口。)

例如:

http:// serverip:port /?phone = phonenum&DestPort=3333&text=this+is+a+test

上面的示例向端口3333发送一条消息(十六进制值,十进制值= 13107)。消息的文本是“this is a test”,它刚刚为了在URL中进行编码而转义了URL。

使用旧版本的NowSMS时,将SMS消息发送到特定端口也相对容易。端口号编址在SMS消息的用户数据标头(UDH)中。

在网络表单中,使用“发送二进制消息其他”格式,请指定以下内容的用户数据标头(UDH):060504xxxxyyyy其中xxxx是十六进制的目标端口,而yyyy是十六进制的源端口。 (如果源端口不重要,则将其替换为0’s.) 在里面“Binary Data”字段,输入您的文本,并将DCS保留为0。 (如果要发送二进制数据,请将二进制数据的十六进制字符串放在“Binary Data”字段,并使用二进制DCS值(例如4)。

如果要通过直接URL提交进行发布,请使用参数指定用户数据标题“&UDH=060504xxxxxxxx”,然后像平常一样使用“&Text=” parameter.

例如:

http:// serverip:port /?phone = phonenum&udh=06050433330000&text=this+is+a+test

上面的示例向端口3333发送一条消息(十六进制值,十进制值= 13107)。在此示例中,源端口为0。消息的文本为“this is a test”,它刚刚为了在URL中进行编码而转义了URL。

如有评论和更多讨论,请单击此处访问NowSMS技术论坛(讨论板)...

2回应 to “SMS to a Port Number”

  1. 这是否适用于通过SMPP发送SMS。

    谢谢
    查尔斯·奥克瓦格武

  2. 布莱斯·诺伍德 说:

    >>> 这是否适用于通过SMPP发送SMS。 <<< Yes. It may be worth noting that there are some differences in how different SMPP providers support port addressing, particularly with text (as oppposed to binary) message content. When you define an SMPP connection in NowSMS, there are 3 different settings that you should try if you experience unexpected results. By default, NowSMS generates GSM format UDH (User Data Header) for port addressing. Some SMPP providers expect the text 短信message content to be packed into 7-bit encoding when UDH is present. So if you receive garbage text when you send a message that includes port addressing, try changing the value for the checkbox “Encode long text messages with 7-bit packed encoding” under the “Advanced Settings” for the SMPP connection. (This setting applies not only to long text messages, but it also applies to any text messages that include UDH such as EMS or port addressing.) Alternatively, some SMPP providers expect you to use the optional SMPP TLV parameters (source_port, dest_port) to specify port addressing. Check the setting “Use TLV parameters for port numbers and segmentation” to configure NowSMS to use this format. Unfortunately it is often guess work to determine which format your provider expects. -bn

引用/引用

  1. 彩信到基于电话的应用程序NowSMS -[...]上一篇文章中,我谈到了通过使用以下命令向手机上运行的Java MIDlet发送SMS消息…