【问题标题】:Python pjsua - How to create a custom message?Python pjsua - 如何创建自定义消息?
【发布时间】:2014-03-28 18:09:56
【问题描述】:

我正在使用 pjsua python 模块,但我不知道如何创建如下自定义消息:

mY'0E@@b,%+&KEEPALIVE sip:user@192.168.0.10 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.10;rport;branch=z9hG4bKPjgdQdo8azxxwRZ9aCVJy5Wdr27fTgDBUy
Max-Forwards: 70
From: <sip:user@192.168.0.10>;tag=w0na7ZUHDVaB8QG38EGdH5f23W3fzKL6
To: <sip:server@192.168.0.10>
Contact: <sip:server@192.168.0.10>
Call-ID: -TtcAtmNnJM5uteQDgMmddoWx7IM1fDP
CSeq: 1 KEEPALIVE
Applier-ID: 24598
Expires: 2147483647
User-Agent: PU/1.0.0
Content-Length:  0

Obs:服务器和客户端在同一台电脑上。

有没有办法做到这一点?谢谢。

【问题讨论】:

  • 这个 KEEPALIVE 消息是什么?它是否在任何标准中定义?
  • 不,yotomy 服务器应用程序获取此自定义 KEEPALIVE 以了解客户端是否处于活动状态。我无法更改此标准,因为它是旧的遗留系统。

标签: python sip pjsip python-sip


【解决方案1】:

我还没有尝试过,但是您可以通过使用py_pjsua 模块来做到这一点:

http://trac.pjsip.org/repos/wiki/Py_PJSUA

pjsua_call_send_request: 通过调用发送任意请求。 这对于发送 INFO 请求很有用。注意 应用程序不应使用此函数发送请求 会改变邀请会话的状态,例如 re-INVITE、UPDATE、 PRACK,再见。

message on the PJSIP mailing list 解决了类似的情况,并表明 on_call_tsx_state() 回调可用于监视响应。

这似乎符合您的要求,因为我假设 KEEPALIVE 不会更改会话状态。见documentation here

【讨论】:

  • 谢谢,但我认为函数 send_request 将使用“Cseq: 'number' INFO”,我无法将 INFO 更改为另一个词,但我会测试,再次感谢。
  • 我希望 pjsua_call_send_request(标记为“方法”)的第二个参数的内容能够正确影响 CSeq,但我没有尝试过。
  • 谢谢yotommy,我可以用发送“KEEPALIVE”的方法,谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-06
  • 2021-10-29
  • 1970-01-01
相关资源
最近更新 更多