我正在使用SIP协议栈开发IOS VoIP应用程序。我将使用Kamailio作为sip服务器。
但是每个VoIP客户端都需要一个SIP地址(SIP帐户)来进行VoIP呼叫,这意味着我应该手动注册一个SIP帐户并使用客户端进行配置。现在我想让这更容易。我想要做的是,当用户使用应用程序注册到我的用户帐户服务器时,我的用户帐户服务器可以调用某些API(可能由Kamailio提供)来创建与该用户关联的SIP帐户,并将其传递回客户端,客户端然后自动使用此SIP帐户配置自己。
但是,我没有找到任何来自Kamailio的API来做这样的事情。 Kamailio是否提供此类API,或其他开源SIP服务器允许我这样做?
我认为Kamailio可以使用'kamctl add'命令添加用户,我可以使用RPC从我的用户帐户服务器调用类似的功能。如果是这样,我可以调用Kamailio的哪个RPC函数?提前谢谢!
答案 0 :(得分:3)
如果您使用auth_db进行用户身份验证与mysql后端(db_mysql模块),就像在kamailio的默认配置文件中一样,那么最简单的方法是连接到kamailio数据库并将记录添加到订阅者表。
以下是添加用户'101@test.com'和密码'test123'的示例,使用领域进行身份验证'test.com'(领域与域名相同):
INSERT INTO subscriber (username, domain, password, ha1, ha1b) VALUES
'101', 'test.com', 'test123',
MD5('101:test.com:test123'), MD5('101@test.com:test.com:test123')
);
此处的特殊值适用于ha1和ha1b列,必须为:
答案 1 :(得分:1)
您可以设置kamailio以使用来自任何数据库的任何SQL查询。
您也可以使用http auth,您可以实现的任何其他身份验证。
见
http://kamailio.org/docs/modules/stable/modules/auth_db.html