二、GB28181:基于JAVA的设备注册实现[part2]

GB28181:基于JAVA的设备注册实现


一、不鉴权

image

二、鉴权

image

三、伪代码

/**

* 处理注册相关业务

*

* @param requestEvent

* @param messageFactory

* @param headerFactory

* @param sipProvider

*/

private void doRequestRegister(RequestEvent requestEvent,AddressFactory addressFactory, MessageFactory messageFactory, HeaderFactory headerFactory, SipProvider sipProvider) {

Request request = requestEvent.getRequest();

    try {

String deviceId = getDeviceIdByRequest(request);

        log.info("Register deviceId is {}, toURI is {}", deviceId);

        if (StringUtils.isEmpty(deviceId)) {

log.error("Register error, deviceId is empty!");

return;

        }

//无需鉴权或者鉴权判断通过

        if (isAuthClosed(deviceId) || isAuthorizationPass(request)) {

//返回成功 返回Response.OK

            log.info("Register doSuccess!");

            doSuccess(requestEvent, addressFactory, messageFactory, headerFactory, sipProvider);

        }else if (isRegisterWithoutAuth(request)) {

doUnAuthorized(requestEvent, messageFactory, headerFactory, sipProvider, request, deviceId);

        }else {

doLoginFail403(requestEvent, addressFactory, messageFactory, headerFactory, sipProvider);

        }

}catch (Exception e) {

log.error("处理Register请求的时候出错 error, {}", e.getMessage());

        e.printStackTrace();

    }

}

四、有兴趣加群一起交流

源码:给个star吧https://gitee.com/yuntian_admin/srymy

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。