如何在未经联系人批准的情况下自动批准Ejabberd服务器中的状态请求

时间:2017-12-23 19:34:39

标签: erlang ejabberd

我在Linux中使用源代码中的Ejabberd服务器。我的情况是,如果我需要有人在场,那么我需要将他/她加入我的名册并批准他/她的在场请求。由于我有兴趣一次只有一个联系人,所以对我来说,在已经批准的情况下在名册中添加大量联系人是没用的。因此,我想要一些机制,通过该机制我向某人发送在线请求,并且该请求将立即被服务器批准,而不管在线可用的其他联系人是否批准该请求。我使用Ejabberd 17.11版本和后端SQL来存储Linux Mint上的大部分数据。

简而言之,Ejabberd服务器应自动批准所有在线请求,而不是将请求转发给联系人并等待批准。

2 个答案:

答案 0 :(得分:1)

根据RFC3921 https://xmpp.org/rfcs/rfc3921.html#presence,用户的服务器不得代表用户自动批准订阅请求。所有订阅请求必须指向用户的客户端,特别是指向与用户相关联的一个或多个可用资源。

我建议将自动批准功能移到客户端。

答案 1 :(得分:1)

您好我正在使用名为MongooseIM的增强型ejabberd。我用TechTalk用中文写了一些关于ejabberd的文章。

如果您要自动批准presence,则必须修改ejabberd_c2s:process_outgoing_stanzamod_roster:process_subscription_transaction以破坏MongooseIM中的原始批准流程。

我认为你可以在ejabberd做同样的事情。