[asterisk-dev] extend IAX2 IE proposal

Markku Korpi markku at korpi.de
Sat Dec 2 23:01:46 MST 2006



Derek Smithies wrote:
> Hi,
> 
> On Wed, 29 Nov 2006, Kevin P. Fleming wrote:
> 
>> Di-Shi Sun wrote:> 
>>> 2. Our info data will be more than 256 bytes, but less than normal MTU
>>> of UDP. As we know that one IE block can only carry 256 or less bytes
>>> data. The "Date Length" is a byte. If we use multiple IE blocks, there
>>> are two solutions, one is using multiple IE types. Another is using one
>>> IE type, but adding a sequence number in DATA. The first one will
>>> consume more the identification number resource. The second one will
>>> bring some other issues. We want to know if this issue had been discussed.
>> IAX2 does not currently support having multiple instances of the same IE
>> number in a single frame, as far as I know, so I don't think your
>> sequence number method would work.
> 
> It ain't going to fit in an IE frame type, so you will need a fullframe 
> type. - It is not really an option to change the IE type (in iax3) to 
> support larger frames.
> 
> Which suggests you will need a new full frame type.
> Perhaps an extension of an image frame (copy it, new frame type, change 
> the meaning bits from image type to something else) or modify the firmware 
> full frame type. not sure...
> 

What would happen if an old client (or any other IAX peer/PBX/etc.) 
receives this new frame type?

If it would trigger e.g. sending of INVAL, the switch could immediately 
(without using timeout) invoke backward compatible procedure (for 
example resend the NEW with mandatory information elements, in order to 
establish the call without the new features).

The third option could be to add a segmentation procedure in a similar 
way as they are used e.g. in SS7 ISUP and Q.931. In this case we would 
need to select a message coding scheme that would cause an old 
client/peer to throw away the segment message, but proceed with the 
non-segmented content.

Markku


More information about the asterisk-dev mailing list