Home

Resources

Products

Developers

Main • YIAXDesign

IAXInfoElement

    Holds a single text Information Element that is 
    attached to a message.

IAXInfoElementNumeric

    Holds a single 1, 2 or 4 byte length Information 
    Element that is attached to a message.

IAXFormat

    Holds the enumeration values for audio and video 
    formats	

IAXFrame

    Holds an IAX mini or meta frame. Received frame 
    parser.

IAXFullFrame

    Holds an IAX full frame.

IAXFrameOut

    Holds enough information to manage an outgoing 
    frame.

IAXEvent

    Holds a message (event) for the client.

IAXTransaction

    Holds enough information to manage a link 
    between 2 peers.

    Keep incoming/outgoing frame lists.
    IAX protocol management.
    Data transfer between the two peers involved in 
    the transaction.

IAXEngine

    Transactions manager.

    Read/write data from/to socket.
    Creates transactions.
    Notify the client and the remote peer on 
    transaction state change.

The following actions are asynchronously done by IAXEngine:

  • Read data from socket.
  • Write data to socket.
  • Generate events.

When receiving a valid request from as remote peer to create a new transaction, creates it and notify the client, unless the new transaction is an internally processed one (such as a POKE request, which will not generate any event): - Parse received data. - Generate a local number identifier. - Create an IAXTransaction (giving it an IAXFullFrame). - Put it in the transactions list. - Notify the client (IAXEvent).

When the client requests a new transaction: - Generate a local number identifier. - Create an IAXTransaction (giving it the transaction type). - Put it in the transactions list. - Notify the client (IAXEvent) when the remote peer will respond.

Any received frame from the remote peer or command from the client is passed to the transaction

After creation, when the link has been established, IAXTransaction manages the IAX protocol for the link. On IAXEngine demand will change his state, generating an event, if necessary. Audio data is transferred asynchronously until a request to stop is received from the client or from the remote peer.

Internally, IAXTransaction keeps an IAXFullFrame list containing the incoming frames and an IAXFrameOut list containing the outgoing frames list. When requested, the transaction check his state, take some action (depending on it). If the state changes notify the appropriate peer(s).

3 May 2010:
Yate 3.0.0 alpha 3 released. Featuring the new Jabber server and wideband audio.
Download NOW

8 March 2010:
Yate 2.2 released. Mostly bug fixes. Dahdi compatible. Latest 2 release before 3.0.

6-7 February 2010:
Yate booth at FOSDEM 2010. Free CD with Freesentral available.

2 Nov 2009:
Yate 2.1 launched. Can replace a Cisco PGW2200 to control a Cisco AS54xx.

6 Aug 2008:
Yate and OpenSIPS (former OpenSER) join to build IP based clusters.

4 Aug 2008:
Yate 2 launched.

10 Jul 2008:
Yate presentation in Germany.

Feb 2008:
Yate 2.0.0 alpha 2 released. New routing module allows sending ENUM routed or forked calls to numbers of registered phones. More...

21 Jan 2008:
Yate 2 alpha released. Major changes, new ISDN, SS7 and MGCP stack. Added analogic and RBS support.

3 September:
Yate 1.3 released. Minor fixes and improvments mainly in client and SIP.

14 August:
Yate based ISDN passive recording system released by Trisys.

16 April:
Yate 1.2 released. Added Jingle and XML support, PBX improved.

25 September:
YateAdmin 1 released.

25 September:
Yate 1.1 released. Fallback routing from a database, fax support in Linux and bug fixes. Changelog and Download availables.

11 July 2006:
O'Reilly published an article about prototyping telephony applications with Yate and Python.

10 July 2006:
Yate 1 released. Includes YIAX, YSIP, YRTP and many new features.

June 1st 2006:
New Yate website launched


EditHistoryBacklinksRecent ChangesSearch