我刚刚(第一次)按照this指南编译并安装了kamailio。对于配置,我遵循文档here
我正在尝试测试新的SIP用户。我用它创建了它:
» kamctl add test testpasswd
用户在那里:
» kamctl db show subscriber
|----+----------+--------------------+------------+---------------+----------------------------------+----------------------------------+------|
| id | username | domain | password | email_address | ha1 | ha1b | rpid |
|----+----------+--------------------+------------+---------------+----------------------------------+----------------------------------+------|
| 5 | test | tethys.wavilon.net | testpasswd | | 5cf40781f33c6f43a26244046564b67e | eb898de815bc16092e4c2e8c04bfe188 | NULL |
|----+----------+--------------------+------------+---------------+----------------------------------+----------------------------------+------|
我尝试连接我的sip客户端,注册超时(Request Timeout (408)
)。我试图通过以下方式验证发生了什么:
» kamailio -l <my-ip> -E -ddddd -D 1
我看到很多消息,其中一个很有趣:
0(15818) DEBUG: auth [api.c:86]: pre_auth(): auth:pre_auth: Credentials with realm '<my-ip>' not found
但我不知道如何解决这个问题。如何验证与域<my-ip>
关联的凭据是否已配置?什么是“境界”?我找不到kamailio
的任何初学者指南。有关如何设置简单kamailio
配置的简单方法吗?
答案 0 :(得分:4)
您在问题中粘贴的日志消息是出于调试目的(因此是DEBUG级别),并且可以打印出没有凭证的第一个SIP请求(例如,第一个REGISTER) - 在这种情况下一切正常。这些请求受到401回复的身份验证质疑,然后通过电话重新发送,并在Autorization标头中显示凭据。
如果对于那些具有凭据的请求,您没有获得与质询功能参数中使用的相同的域(例如,www_challenge(),auth_challenge()...),那么SIP电话可能配置错误。通常,领域与SIP域相同,以确保它是唯一的,但这不是必须的。使用默认的kamailio配置,领域是From头URI域。
但是,你说你的注册超时是408,那么问题可能就是其他问题了。当找不到与领域匹配的凭证时,则返回401reply,而不是408。
超时的原因可能是REGISTER没有到达kamailio或kamailio尝试将其发送到其他地方。您应该查看kamailio服务器上的SIP流量,看看会发生什么。您可以将ngrep用于此目的,例如:
ngrep -d any -qt -W byline . port 5060
观察REGISTER是否来到kamailio服务器以及是否尝试将其发送到另一个IP。
答案 1 :(得分:0)
Kamailio是代理人。这并不简单,所以如果您想要简单的事情,请尝试使用Asterisk。 Kamailio配置需要 SIP知识。
对于这个问题:你将领域设置在某个地方(在配置文件或数据库中),但不使用它进行注册。可能的解决方案是:
tethys.wavilon.net
。有关详细信息,请访问Kamailio网站并阅读this document。
答案 2 :(得分:0)
我遇到了同样的问题。我在kamailio.cfg中添加了别名记录,效果很好。
alias="tethys.wavilon.net"