跳至正文
Wener Notes

IAX

约 3 分钟阅读
标签:RFC协议
  • IAX: Inter-Asterisk eXchange Version 2
  • peer-to-peer, VoIP-oriented protocol
  • control & media
  • iax:[username@]host[:port][/number[?context]]
  • 60s 超时

  • Registration - 注册
    • REGREQ, REGAUTH, REGACK, REGREJ, REGREL
  • Call Link Management - Call Leg Management
    • NEW, AUTHREP, AUTHREQ, REJECT, HANGUP, ACCEPT, PROCEEDING, RINGING, ANSWER
  • Call Control
    • PROCEEDING, RINGING, ANSWER
  • Mid-Call Behavior - Mid-Call Link Operations
    • FLASH, HOLD, UNHOLD, QUELCH, UNQUELCH, TRANSFER
  • Call Path Optimization
    • TXREJ, TXREL, TXREQ, TXCNT, TXACC, TXREADY, TXMEDIA
  • Call Tear Down
    • HANGUP, REJECT, TRANSFER, TXREADY
  • Network Monitoring
    • POKE, PING, PONG, LAGRQ, LAGRP
  • Digit Dialing
    • DPREQ, DPREP, DIAL
  • Miscellaneous
    • ACK, INVAL, VNAK, MWI, UNSUPPORT
  • Media Messages
    • DMTF
    • voice, video, text, image, html
abbr.stand for
IEInformation Element

  • 消息传输
    • Mini Frame
      • media data
    • Full Frame - reliably
      • signaling, media data
      • 通过 ACK 确认
      • 维护 sequence
      • timestamp 要求单调递增
  • Trunking
    • trunk frame
      • 封装 trunked call audio
      • 2 octets - source number
      • 2 octets - length of data
  • Timers
  • Encryption
    • AES
    • NEW 时建立

Protocol

  • F - full frame
  • R - retransmitted
  • time-stamp - since first transmission of the call
  • OSeqno - outbound stream sequence number
  • ISeqno - inbound stream sequence number
  • C - 影响 Subclass
    • 0 - Subclass 7-bit unsigned integer
    • 1 - pow(Subclass,2)
  • frame type
    • DTMF
    • Voice
    • Video
    • Control
    • Null
    • IAX
      • 包含 IE
    • Text
    • Image
    • HTML
    • Comfort Noise
mini frame
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |F|     Source call number      |            time-stamp         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   :                             Data                              :
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
meta frame
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |F|         Meta Indicator      |V|      Source Call Number     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |?|          time-stamp         |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
   |                                         Data                  |
   :                                                               :
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • frame 前 16 byte 都为 0
  • Meta Indicator = 0
  • V=1 - meta video frame
meta trunk frame
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |F|         Meta Indicator      |V|Meta Command | Cmd Data (0)  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            time-stamp                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |R|      Source Call Number     |     Data Length (in octets)   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   :                             Data                              :
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                   .
                                   .
                                   .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |R|      Source Call Number     |     Data Length (in octets)   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   :                             Data                              :
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Meta Command=1 - meta trunk frame
  • Command Data
    • 0 - 不包含 timestamp
    • 1 - 额外增加 timestamp
full frame enc
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |F|     Source Call Number      |R|   Destination Call Number   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         12 Random bytes                       |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               28  Random bits                         |padding|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   : between 0 and 15 (as indicated by the padding field above)    :
   :                         Random bytes                          :
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   :                    Remainder of Actual Frame                  :
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
full frame dec
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |F|     Source Call Number      |R|   Destination Call Number   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Encrypted data                        |
   |                Multiple of 16 bytes                           |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

关联信息

反向链接、本文链接的其他页面和外部资料。

参考资料

标准文档1 条
  • RFC 5456datatracker.ietf.org/doc/html/rfc5456
    RFC

    IETF Request for Comments standard document.

其他外链1 条
最近更新commit 03ba65a编辑