使用 SIPSorcery 的 PRACK 请求

PRACK Request using SIPSorcery

如何发送消息PRACK?

我给:

m_uac.CallRinging += (ISIPClientUserAgent uac, SIPResponse sipResponse) =>
{

if ((sipResponse.StatusCode == (int)SIPResponseStatusCodesEnum.SessionProgress ||
sipResponse.StatusCode == (int)SIPResponseStatusCodesEnum.Ringing) && 
sipResponse.Header.Require == "100rel")
    {
      m_uac.SendRequest(sipResponse, SIPMethodsEnum.PRACK, null, $"RAck: {sipResponse.Header.RSeq} {sipResponse.Header.CSeq} {sipResponse.Header.CSeqMethod}")
    }

 }

得到错误: 异常 CreateNonInviteTransaction。试图添加重复的 SIP 事务。 异常 SIPNonInviteClientUserAgent SendRequest 到 sip:test@sip.srv_1.com。尝试添加重复的 SIP tra 异常 UACInviteTransaction_TransactionInformationResponseReceived。试图添加重复的 SIP 事务。

谁知道?

PRACK 在 SIPSorcery SIP 实现中不受支持(它们不是主要规范的一部分,也不是很常见)。

方法是使用 uac.ServerInviteTransaction 生成基于 GetInTransactionACKRequest 的 PRACK 请求。

这个问题更好的地方是 github,如果您仍然需要,我可以相对快速地添加它。