为什么kamailio服务器不会发送未经授权的401

时间:2019-04-29 09:13:27

标签: c#

为什么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

1 个答案:

答案 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的文章,如果您要达到这一目的。