Kamailio是否为其他程序提供了创建SIP帐户的API

时间:2013-06-13 14:04:21

标签: ios sip voip kamailio

我正在使用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函数?提前谢谢!

2 个答案:

答案 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列,必须为:

  • ha1 = md5(用户名:realm:密码)
  • ha1b = md5(username @ domain:realm:password)

答案 1 :(得分:1)

您可以设置kamailio以使用来自任何数据库的任何SQL查询。

您也可以使用http auth,您可以实现的任何其他身份验证。

http://kamailio.org/docs/modules/stable/modules/auth_db.html

http://kamailio.org/docs/modules/stable/modules/avpops.html