我在restcomm sip servlet上工作。我使用restcomm web sdk 和restcomm tomcat 作为服务器。当我想在 doRegister 方法中获取密码时,它返回 null。
服务器代码是:
String password = ((SipURI) request.getFrom().getURI()).getUserPassword();
客户端代码是:
var parameters = {
'debug': true,
'username': 'alice',
'password': '1234',
'registrar': 'ws://192.168.1.3:5082',
'domain': '192.168.1.3'
};
RestCommClient.Device.setup(parameters);
是否需要在 dar 文件中进行一些设置?
编辑
我找到了这个链接。它描述了如何为 sip servlet 启用安全性,但有些不正确,例如没有:
<Realm className="org.apache.catalina.realm.MemoryRealm" />
取消注释,但我将其插入如下:
<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Realm className="org.apache.catalina.realm.MemoryRealm" />
</Realm>
第二个问题是在该教程中添加步骤 3 的位置(我使用“在 Tomcat 中启用安全性”部分)
这个配置对我也不起作用。
我发现的另一件事是您没有任何其他 SipUrI 类对象,除了用户名可能在库中有问题并且没有填充 SipUrl