[asterisk-dev] Unicode in Text frames - how to fix?

Tim Panton tim at mexuar.com
Mon Apr 30 02:28:53 MST 2007


Asterisk's handling of text frames does not support unicode.

We discovered this by accident, our Java IAX stack sends IAX text  
frames in
unicode (ascii is deprecated in Java) without a terminating '\0' byte.
The IAX draft rfc (link) says that text frames should be in unicode.
Asterisk however requires (but doesn't test for) a '\0' byte as the  
traditional
'C' end of string marker, and determines the length of the text  
string with
strlen(data).

Although we found it in the case of IAX text frames it looks like
this is a general problem.

At first glance it looks easy to fix, just add a lenght attribute to  
the text frame.
However this would change the channel api, so isn't to be done lightly.

Other options would be:
	1) change the IAX rfc to state that text frames are null terminated  
ascii and reject
any packets that aren't. (I.e. drop unicode)
	2) carry the unicode by encoding it in some way (like in html) and  
mandate this.
	3) ??? ideas ????

Tim Panton

www.mexuar.net
www.westhawk.co.uk/





More information about the asterisk-dev mailing list