1

我正在向我的运营商 (Verizon) 发送WCTP wctp-SendMsgMulti操作,当人们发送短信作为回应时,我可以正常接收通知。

示例通知

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<wctp-Operation wctpVersion="wctp-dtd-v1r2">
  <wctp-MessageReply>
      <wctp-ResponseHeader responseTimestamp="2013-10-17T23:34:22.000Z" responseToMessageID="someLongId">
          <wctp-Originator senderID="7075551212"/>
          <wctp-MessageControl messageID="someLongId"/>
          <wctp-Recipient recipientID="myVzwLogin"/>
      </wctp-ResponseHeader>
      <wctp-Payload>
          <wctp-Alphanumeric>Yes</wctp-Alphanumeric>
      </wctp-Payload>
  </wctp-MessageReply>
</wctp-Operation>

现在,我正在向通知返回一个空的 HTTP 200 响应。

如果我在收到通知后轮询 WCTP 服务,我会看到相同wctp-MessageReply的消息仍在等待处理。承运人似乎认为它尚未交付给我。

由于通知到达时没有sequenceNo,因此我无法使用wctp-PollForMessages操作将其删除。

我希望能够以一种告诉运营商不要让消息排队的方式来响应通知,但是规范没有说明对wctp-MessageReply操作的正确响应是什么。

有什么帮助吗?

4

1 回答 1

1

我在名为Call Flow Between Network Elements的规范的第 3.8 节中找到了答案。你应该发送一个wctp-Confirmation.

成功:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<wctp-Operation wctpVersion="wctp-dtd-v1r2">
  <wctp-Confirmation>
    <wctp-Success successCode="200" successText="Reply received">Reply received</wctp-Success>
  </wctp-Confirmation>
</wctp-Operation>

失败:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<wctp-Operation wctpVersion="wctp-dtd-v1r2">
  <wctp-Confirmation>
    <wctp-Failure errorCode="300" errorText="Opertion not understood.">Operation not understood.</wctp-Failure>
  </wctp-Confirmation>
</wctp-Operation>
于 2013-10-21T19:43:54.290 回答