exosip鉴权及使用

刚刚调试成功exosip鉴权,现在总结下。

1.sip注册。流程:首先客户端发送注册包不带鉴权信息,服务器探测到不带鉴权信息的register包会回复401,后客户端回复带鉴权信息的注册包,服务器验证密码和账号,通过就返回200成功包,不通过返回403访问拒绝。

客户端注册方法:eXosip_register_build_initial_register,eXosip_register_send_register两个函数即可发送第一次注册包。后eXosip_event_wait检测事件,会检测到注册失败且状态号为401的事件,调用eXosip_add_authentication_info,eXosip_register_build_register,eXosip_register_send_register三个函数即可。也可以先eXosip_add_authentication_info,后在eXosip_event_wait后调用eXosip_automatic_refresh()即可自动处理并发送带鉴权的数据包。

重点是服务器端:当收到鉴权包后,需要对鉴权数据和服务器端数据进行比对。服务器端自动生成随机nonce字段,realm字段发送给客户端,客户端根据这些字段把nonce, realm, 用户名,密码一起通过MD5加密并放到response字段发送给服务器。服务器端根据客户端事先注册的用户密码,之前发给客户端的nonce, realm生成MD5,与客户端发来的的MD5进行比较,一样则鉴权通过,返回200 ok包,不一样返回403拒绝包。几个有关服务器端生成md5的链接希望能帮到大家。点击打开链接, 点击打开链接, 点击打开链接。


你可能感兴趣的:(exosip鉴权及使用)