[Freeswitch-dev] iksemel

Kristoff Bonne kristoff.bonne at skypro.be
Sat Dec 19 16:37:33 PST 2009


Hi all,


Can somebody please explain how exactly the "iksemel" library works.

I've been trying to hunt down the bug that causes freeswitch to crash
when making a jingle/gtalk call from ubuntu Empathy instead of the
google talk web/flash application.


I have narrowed the issue down to the difference in jingle-messages
call-setup messages send over the jabber-channel by empathy, compaired
to what the google webapplet sends.
(see http://jira.freeswitch.org/browse/LBDING-18 for more info on the
exact differences).



However, I'm trying to understand how exactly freeswitch processes these
messages.

So, if I get it correct, it goes like that:
- jabber xml-messages are treated by the iksemel library.
- this library is based on "filters", which are configured beforehands.
- when a jabber xml-message comes it, these filters are called. (va the
function "iks_parse").
- these filters call, in their turn, the function then call a number of
times the function "iks_find_attrib".

In this bug, the problem seams to be when a call-setup packet comes in
from empathy, on of these filters call the function "find_with_attrib",
however pointing to a datarecord which is not a valid iks-record,
resulting in a memory violation and hence a core-dump.


But can somebody explain how exactly the "iksemel" library works. There
seams to be a system of "hooks" used to attach pointers dynamically
created filters-functions. But how exactly it all fits together is not
very clear to me).

If I understand it well, the problem needs to be solved somewhere in the
code that creates these filters and define on what datarecord they
should be called. However, I got lost in the code.


Can somebody explain this a little bit.



Cheerio! Kr. Bonne.

-- 
jabber/gtalk: kristoff at krbonne.net

-------------- next part --------------
A non-text attachment was scrubbed...
Name: kristoff_bonne.vcf
Type: text/x-vcard
Size: 190 bytes
Desc: not available
Url : http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20091220/8dd3392b/attachment.vcf 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 261 bytes
Desc: OpenPGP digital signature
Url : http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20091220/8dd3392b/attachment.bin 


More information about the FreeSWITCH-dev mailing list