Я пытаюсь реализовать простой код на Perl, который должен просто получать / отправлять сообщения с / на учетные записи gtalk. Я использую Net :: XMPP :: *
модули. Все отлично работает для пользователей, которые являются моими друзьями (в моем списке «друзей»).
Но я не могу отправить сообщение неизвестному пользователю. Я знаю, что для этого случая я должен сначала отправить приглашение, но
Net :: XMPP :: * не предоставляют такую возможность. Есть только один способ пригласить человека - создать свой собственный xml согласно
к протоколу "Переговоры о сеансе XEP-0155". Но это не работает правильно. Когда я отправляю xml на сервер, он
возвращает ошибку «служба недоступна».
Я отправляю:
<message to='TEST@gmail.com'>
<sxde xmlns='http://jabber.org/protocol/sxde'
xmlns:sxde='http://jabber.org/protocol/sxde#metadata'
session='0AEF4278DC4B6577'
id='b'>
<negotiation>
<invitation>
<feature var='http://jabber.org/protocol/whiteboard' />
</invitation>
</negotiation>
</sxde>
</message>
перед моим сообщением.
ОТВЕТ:
<message from='' to='ME@gmail.com/TALKCDDCCE63' type='error'>
<sxde id='b' session='0AEF4278DC4B6577' xmlns='http://jabber.org/protocol/sxde' xmlns:sxde='http://jabber.org/protocol/sxde#metadata'>
<negotiation>
<invitation>
<feature var='http://jabber.org/protocol/whiteboard'/>
</invitation>
</negotiation>
</sxde>
<nos:x value='disabled' xmlns:nos='google:nosave'/>
<arc:record otr='false' xmlns:arc='http://jabber.org/protocol/archive'/>
<error code='503' type='cancel'>
<service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</message>
Может быть, я что-то потерял или должен отправить другую информацию до (или после ..)?
А может быть, есть другой способ отправить сообщение без приглашения?
Заранее спасибо