为什么kamailio服务器不发送401 unauthorized
消息,如果我想手动发送,那我该怎么办?我正在发送波纹管注册消息格式,
REGISTER sips:ss2.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS
client.biloxi.example.com:5061;branch=z9hG4bKnashds7
Max-Forwards: 70
From: Bob <sips:bob@biloxi.example.com>;tag=a73kszlfl
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 1j9FpLxk3uxtm8tn@biloxi.example.com
CSeq: 1 REGISTER
Allow: INVITE, ACK, CANCEL, BYE, PRACK, UPDATE, REFER, MESSAGE,
OPTIONS, NOTIFY, SUBSCRIBE
Contact: <sips:bob@client.biloxi.example.com>
Max-Forwards: 70
Expires: 3600
Content-Length: 0
答案 0 :(得分:0)
sl_reply("401", "Unauthorised");
这将发送回无状态的401未经授权的消息,但是它将对所有SIP消息做出响应。
通过将其添加到 request_route {} 块中,您可能只想对注册消息进行操作:
if(method=="REGISTER"){
sl_reply("401", "Unauthorised");
exit;
}
这将看到发送到您的Kamailio实例的所有REGISTER消息均返回401响应,并带有文本“ Unauthorized”。
在此处进行一些猜测,您可能希望看到401未经授权,以便可以对请求进行身份验证,在这种情况下,您需要向401响应中添加身份验证向量(即席,领域等),数据库后端,其中包含允许的用户,并将其记录在案地址存储为注册商。过去,我曾写过几篇关于设置SIP Registrar in Kamailio并添加Database backed Authentication的文章,如果您要达到这一目的。