1

是否可以通过编程方式创建 SIP 数据包并将其发送到已注册的 SIP 设备?我想发送一条 SIP 通知消息,如下所示:

      NOTIFY sip:alice@alice-phone.example.com SIP/2.0
      To: <sip:alice@example.com>;tag=78923
      From: <sip:alice@example.com>;tag=4442
      Date: Mon, 10 Jul 2000 04:28:53 GMT
      Contact: <sip:alice@vmail.example.com>
      Call-ID: 1349882@alice-phone.example.com
      CSeq: 31 NOTIFY
      Event: message-summary
      Subscription-State: active
      Content-Type: application/simple-message-summary
      Content-Length: 503

      Messages-Waiting: yes
      Message-Account: sip:alice@vmail.example.com
      Voice-Message: 4/8 (1/2)

我想使用 Perl 将此信息发送到 SIP 设备。我是 SIP 世界的新手,所以我的问题可能听起来模棱两可。但是,我们将非常感谢您对此的任何帮助。

谢谢你。

4

2 回答 2

6

是的,当然,它只是一个 IP 数据包。对于 Perl,我的第一个尝试是来自 CPAN 的 Net::SIP。

或者,如果您想保持简单,请查看此消息中的代码:http: //archive.cert.uni-stuttgart.de/bugtraq/2005/07/msg00276.html

为了符合标准,您需要处理来自手机的 SUBSCRIBE 消息,并仅向订阅者发送 NOTIFY - 但由于您的示例似乎直接取自 RFC 3842,我想您已经知道了。:)

于 2009-07-10T02:22:06.167 回答
0

SIP 是一种在 IP 上运行的基于文本的协议,就像 HTTP 一样。这使得用几乎任何编程语言编写 SIP 客户端成为可能。当然,当您使用 SIP 堆栈时,它会容易得多。@Marie 的建议看起来很适合 PHP。Java 世界当然有几个非常成熟的 SIP 堆栈,例如JAIN。C# 也是如此:请参阅这个 SO question

于 2009-07-10T03:01:09.050 回答