eXosip的register注册
转载于:http://blog.sina.com.cn/s/blog_4868f98601018ioh.html
这个测试程序是从eXosip原有的测试程序改造的。原程序是tools 目录下的 sip_reg.c
本程序主要改造了这几个地方:
1) eXosip_event_wait() 函数的超时时间,从原来的1ms 修改为50ms
2) 对于初次注册时,服务器返回401的情况。 调用函数 eXosip_add_authentication_info()发送鉴权信息。
其余的内容基本没改,在我们的sipserver 上面注册成功了。
从这个例程中 我们可以看出sip鉴权的基本流程
从sip角度看, 注册过程是这样的:
客户端 server
| --------regester ---> |
| <----------401------ |
| ---regester + nonce -》 |
| 《----------200-------- |
其中 nonce中带有鉴权信息。形如:
Authorization: Digest username="buxiangyi", realm="Yate", nonce="143e882c902a9c38a3286e9043c35d40.1366083396", uri="sip:172.16.50.189:5060", response="8119330abd3ff5e4e26d2fa87b563b39", algorithm=MD5
对于 eXosip, 其处理过程如下:
1)eXosip_init (初始化)
|
v
2)eXosip_listen_addr (监听sip端口)
|
v
3)eXosip_register_build_initial_register (构建一个register)
|
v
4)eXosip_register_send_register (发送register)
|
v
5)eXosip_event_wait (等待对端事件)
|
v
6)eXosip_execute (处理事件,调整内部状态)
|
v
7)eXosip_automatic_action (根据当前状况,发出响应消息)
之后应循环执行 5)-》 7)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?