如果名册联系人不存在,eJabberd 可以调用 API 吗?

Can eJabberd call an API if a roster contact does not exist?

这里是 Ejabberd 新手。我希望这个问题是有道理的。

我们需要设置我们自己的 XMPP 服务器,以便 Web 上的客户和 Bria 客户端可以使用它。我能够使用 ejabberd 获得基础知识并 运行。

所有用户将在 'xmpp.exampledomain.com'

我们还有一个自定义的 SMS 网关(它实际上是一个可以接受 json APIs 的服务器)。

所以我想要完成的是:

  1. 我们的平台会创建一个 'normal' xmpp 用户,这样用户就可以登录到 ejabberd。
  2. 此用户可以添加其他 'normal' xmpp 用户的花名册联系人。
  3. 如果该用户想通过短信发送消息,我们会指示他们添加名册联系人(我假设),格式为 12125551234@sms.exampledomain.com。 (目前添加联系人有效)
  4. 如果用户向此“SMS”联系人发送消息,让 ejabberd 通过 json API 调用我们的自定义 SMS 网关,而不是尝试通过正常的 xmpp 传递。

这可能吗?

对于短信网关服务器的入站,可以调用ejabberd API发送消息功能,所以入站相当容易。

我很感激任何建议

谢谢

你想要的在过去的 IRC、ICQ、AIM 和 MSN 中被称为“传输”。它们是您安装在 ejabberd(或其他 Jabber 服务器)旁边的程序。用法示例:

  1. 您下载一个用于 ICQ 的传输
  2. 将其配置为可以访问 ICQ,
  3. 然后配置 ejabberd 连接到该传输,并允许用户在地址 icq.example.com.
  4. 联系它

有很老的教程满足你的好奇心: https://www.ejabberd.im/tutorials-transports/index.html

我不知道现在旧的“SMS-Jabber 传输”是否还能用。搜索结果很少:

或者,正如您提到的,您已经有了一个 SMS 程序,如果您可以使用 Erlang 或 Elixir,您可以编写一个在 sms.example.com 注册的 ejabberd 模块,并将 XMPP 消息转发为 json API...