Если у вас проблемы со сборкой, мне жаль вас, сынок.Потому что, если серьезно, libjingle - это сука для компиляции.Если вы можете скомпилировать его для любой платформы, на которой вы строите, то вы на 90% пути.Это действительно будет зависеть от того, будете ли вы сидеть на выходных и разбираться с проблемами компилятора один за другим.Два быстрых указателя для XCode: удалите (но не удалите) все специфические для Windows дерьмо и удалите все файлы, у которых есть основной метод (юнит-тесты и сеть.)
Как только вы его построите, API будетна самом деле довольно просто.Архитектура типичного приложения libjingle имеет несколько выполняемых задач XMPP.Некоторые задачи являются выходными задачами, которые будут отправлять разделы: http://code.google.com/p/libjingle/source/browse/trunk/talk/examples/call/friendinvitesendtask.cc (посмотрите на метод Send). Это должно быть довольно простым.Он создает раздел XML и ставит его в очередь для обработки XMPPclient.
Существуют также входные задачи, которые обрабатывают строфы: http://code.google.com/p/libjingle/source/browse/trunk/talk/examples/call/mucinviterecvtask.cc (посмотрите на метод HandleStanza)
Хотя этот конкретный метод HandleStanza является дерьмовым шоу, суть егочто этот метод вызывается для всех сообщений XMPP.Сначала вам нужно определить, заботитесь ли вы об этом или нет:
if (stanza->Name() != QN_MESSAGE) return false;
Затем вы пройдетесь по XML и извлечете необходимую вам информацию и оповестите части своего приложения, которые заботятся об этом.
Конечно, есть и API-интерфейс туннелирования, который существенно сложнее и не входит в сферу ответа StackOverflow.Если есть достаточно интереса, я могу в этом разобраться, но я рекомендую вам сначала хотя бы настроить libjingle и передать некоторые сообщения XMPP, прежде чем погрузиться в настройку туннелей.
Последний указатель на использование libjingle: be EXTREMELYосторожнее с резьбами.