想要简化 Asterisk SIP 消息流

Want to simplify Asterisk SIP message flows

我正在尝试实现 SIP UA,为此,我研究了 SIP 调试模式下的 Asterisk 控制台。我试图从另一个分机 (B) 呼叫一个分机 (A)。

据我所知,初始消息流向 RINGING 消息,包括摘要身份验证部分。 它们是:

   (B) >--->INVITE-----[Asterisk]

随后是一系列来回消息:

  401 Unauthorized with NONCE
  ACK
  INVITE with correct Digest
  TRYING
  TRYING
  RINGING

振铃phone (A) 摘机后,看到如下交流信息:

  (A) >----> OK >-----> [Asterisk]  

   (A) <----< ACK<-----< [Asterisk]

                         [Asterisk] >----- OK ------> (B)

   (A) >---(re)INVITE--> [Asterisk] 

                         [Asterisk] <-----ACK-------< (B)

                         [Asterisk] >---(re)INVITE--> (B)

   (A) >---TRYING -----> [Asterisk]

                         [Asterisk] <-----OK--------< (B)

   (A) >-----OK--------> [Asterisk]

   (A) <----ACK--------< [Asterisk]

我正在 (B) 端编写 UA 部分并且事先知道 A 的 SDP 并且可以生成 B 的 SDP,由我控制。我的呼叫流总是从 B 到 A。 我可以控制来自 (B) 的所有消息。 如何减少上述消息流?此外,我不完全理解在交换初始 SDP 之后直到响铃之前需要这么多消息。或者他们是?

Asterisk 将按照 SIP 标准 (rfc) 中的描述进行操作。

您无法删除邀请。您唯一能做的就是禁用早期媒体并启用 directmedia/ignore sdp 部分。