|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.sip.InvalidArgumentException; | 
|---|
|  |  |  | import javax.sip.RequestEvent; | 
|---|
|  |  |  | import javax.sip.ServerTransaction; | 
|---|
|  |  |  | import javax.sip.SipException; | 
|---|
|  |  |  | import javax.sip.header.AuthorizationHeader; | 
|---|
|  |  |  | import javax.sip.header.ContactHeader; | 
|---|
|  |  |  | 
|---|
|  |  |  | // 校验密码是否正确 | 
|---|
|  |  |  | if (authorhead != null) { | 
|---|
|  |  |  | passwordCorrect = new DigestServerAuthenticationHelper().doAuthenticatePlainTextPassword(request, | 
|---|
|  |  |  | sipConfig.getSipPassword()); | 
|---|
|  |  |  | sipConfig.getPassword()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (StringUtils.isEmpty(sipConfig.getSipPassword())){ | 
|---|
|  |  |  | if (StringUtils.isEmpty(sipConfig.getPassword())){ | 
|---|
|  |  |  | passwordCorrect = true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | logger.info("[{}] 密码错误 回复401", requestAddress); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | response = getMessageFactory().createResponse(Response.UNAUTHORIZED, request); | 
|---|
|  |  |  | new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getSipDomain()); | 
|---|
|  |  |  | new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getDomain()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | if (!passwordCorrect){ | 
|---|
|  |  |  | // 注册失败 | 
|---|
|  |  |  | 
|---|
|  |  |  | ExpiresHeader expiresHeader = (ExpiresHeader) request.getHeader(Expires.NAME); | 
|---|
|  |  |  | if (expiresHeader == null) { | 
|---|
|  |  |  | response = getMessageFactory().createResponse(Response.BAD_REQUEST, request); | 
|---|
|  |  |  | getServerTransaction(evt).sendResponse(response); | 
|---|
|  |  |  | ServerTransaction serverTransaction = getServerTransaction(evt); | 
|---|
|  |  |  | serverTransaction.sendResponse(response); | 
|---|
|  |  |  | if (serverTransaction.getDialog() != null) serverTransaction.getDialog().delete(); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 添加Contact头 | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | getServerTransaction(evt).sendResponse(response); | 
|---|
|  |  |  | ServerTransaction serverTransaction = getServerTransaction(evt); | 
|---|
|  |  |  | serverTransaction.sendResponse(response); | 
|---|
|  |  |  | if (serverTransaction.getDialog() != null) serverTransaction.getDialog().delete(); | 
|---|
|  |  |  | // 注册成功 | 
|---|
|  |  |  | // 保存到redis | 
|---|
|  |  |  | // 下发catelog查询目录 | 
|---|