Skip to main content

IAX

  • rfc5456 IAX: Inter-Asterisk eXchange Version 2
  • peer-to-peer, VoIP-oriented protocol
  • control & media
  • iax:[[email protected]]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 时建立

  • 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                           |   |                                                               |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+