3

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

4

2 回答 2

3

如果您使用 auth_db 与 mysql 后端(db_mysql 模块)进行用户身份验证,就像在 kamailio 的默认配置文件中一样,那么最简单的方法是连接到 kamailio 数据库并将记录添加到订阅者表。

下面是一个使用验证域“test.com”添加用户“101@test.com”和密码“test123”的示例(域与域相同):

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(用户名:领域:密码)
  • ha1b = md5(用户名@域:领域:密码)
于 2013-07-05T21:26:13.603 回答
1

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

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

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

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

于 2013-07-04T01:19:58.087 回答