Sipdroid中像服务器注册是如何实现的(一)?
来源:互联网 发布:南山区软件产业基地 编辑:程序博客网 时间:2024/06/06 22:19
关于Sipdroid是如何实现像服务器注册的?
首先告诉大家代码块在哪里,注册的核心在RegisterAgent类中的函数register(int time)中,注册的核心是:
注册稍微简单一点,因为只是需要客户端和服务器进行绑定就行了,注册在SIP协议中称作登记服务,再向服务提供商进行注册的时候,服务提供商都会给我们一个URL,这个URL在Sipdroid中被封装在SipURL中的,这个URL写的格式如下:
sip:20847236@sip.tocall.cn,用户名+主机名。
登陆服务过程中的具体流程如下:
程序启动便自动进行初始化,在初始化的过程中,每隔一段的时间,客户端这边就要发送Register信息给服务器,Register中的信息包含了服务提供商分配给当前用户的SIP URI(通俗点说,SIP URI 就是客户端的标识,这个标识是必须是唯一的)
服务器通过获得当前用户的URI便可以绑定这个用户,然后写到一个数据库中,在SIP协议中,这个叫做定位服务(location server)
发送的请求的格式如下:
F1 REGISTER Bob -> Registrar
REGISTER sip:registrar.biloxi.com SIP/2.0
Via: SIP/2.0/UDP bobspc.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
To: Bob <sip:bob@biloxi.com>
From: Bob <sip:bob@biloxi.com>;tag=456248
Call-ID: 843817637684230@998sdasdh09
CSeq: 1826 REGISTER
Contact: <sip:bob@192.0.2.4>
Expires: 7200
Content-Length: 0
注册会在2小时后超时。注册服务器回应一个200OK,返回的信息包含如下:
F2 200 OK Registar -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/UDP bobspc.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.0.2.4
To: Bob <sip:bob@biloxi.com>;tag=2493k59kd
From: Bob <sip:bob@biloxi.com>;tag=456248
Call-ID: 843817637684230@998sdasdh09
CSeq: 1826 REGISTER
Contact: <sip:bob@192.0.2.4>
Expires: 7200
Content-Length: 0
这里面涉及到很多参数,但是在RFC3261中都有详细的介绍,但是比较的分散,详见:SIP中涉及到的协议之-RFC3261
首先告诉大家代码块在哪里,注册的核心在RegisterAgent类中的函数register(int time)中,注册的核心是:
注册稍微简单一点,因为只是需要客户端和服务器进行绑定就行了,注册在SIP协议中称作登记服务,再向服务提供商进行注册的时候,服务提供商都会给我们一个URL,这个URL在Sipdroid中被封装在SipURL中的,这个URL写的格式如下:
sip:20847236@sip.tocall.cn,用户名+主机名。
登陆服务过程中的具体流程如下:
程序启动便自动进行初始化,在初始化的过程中,每隔一段的时间,客户端这边就要发送Register信息给服务器,Register中的信息包含了服务提供商分配给当前用户的SIP URI(通俗点说,SIP URI 就是客户端的标识,这个标识是必须是唯一的)
服务器通过获得当前用户的URI便可以绑定这个用户,然后写到一个数据库中,在SIP协议中,这个叫做定位服务(location server)
发送的请求的格式如下:
F1 REGISTER Bob -> Registrar
REGISTER sip:registrar.biloxi.com SIP/2.0
Via: SIP/2.0/UDP bobspc.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
To: Bob <sip:bob@biloxi.com>
From: Bob <sip:bob@biloxi.com>;tag=456248
Call-ID: 843817637684230@998sdasdh09
CSeq: 1826 REGISTER
Contact: <sip:bob@192.0.2.4>
Expires: 7200
Content-Length: 0
注册会在2小时后超时。注册服务器回应一个200OK,返回的信息包含如下:
F2 200 OK Registar -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/UDP bobspc.biloxi.com:5060;branch=z9hG4bKnashds7
;received=192.0.2.4
To: Bob <sip:bob@biloxi.com>;tag=2493k59kd
From: Bob <sip:bob@biloxi.com>;tag=456248
Call-ID: 843817637684230@998sdasdh09
CSeq: 1826 REGISTER
Contact: <sip:bob@192.0.2.4>
Expires: 7200
Content-Length: 0
这里面涉及到很多参数,但是在RFC3261中都有详细的介绍,但是比较的分散,详见:SIP中涉及到的协议之-RFC3261
第二篇将给大家介绍下,发送的注册消息体里面的每个参数所代表的意义.
转自http://www.shouyanwang.org/thread-35-1-1.html
- Sipdroid中像服务器注册是如何实现的(一)?
- Sipdroid中的视频通话是如何实现的?
- ssm框架中,上传的资料存放在另外一台ftp服务器中是如何实现的?以及编码问题
- [sipdroid]SipDroid的研究
- Sipdroid注册(三)-注册返回结果的监听
- Sipdroid源码初探(一):用户注册(RegisterAgent)
- 如何设置服务器的镜像磁盘
- android开发像QQ这样的选择日期的控件是如何实现的
- 注册机是如何获取序列号的?
- 如何判断通过WSAAsyncSelect 注册的事件中,发生的是那个
- Laravel 4 入门三讲(中)laravel 的路由是如何完成注册的?
- 浅谈一键内存加速功能是如何实现的
- Handler解析(一):是如何实现线程之间的切换
- 6分钟一分钟的开源sipdroid网络电话评测
- 在ArcCatalog中和AE操作中是如何取消注册版本的问题
- sipdroid实现添加通讯录
- 在服务器上登录注册的实现
- ActiveMQ中消费者是如何接收消息的(一)
- zz:给年轻程序员的几句话
- htb quantum of class 10001 is big. consider r2q change的解决方法
- sipdroid代码分析指导文章
- 实用链表(待续)
- uva 4723
- Sipdroid中像服务器注册是如何实现的(一)?
- zoj2740-简单并查集
- 各大公司android开源地址
- linux的自旋锁struct spinlock_t的使用
- 图灵机和NP难度问题
- linux下iconv()函数的用法
- ADA程序实例(字符串类型及其简单处理)
- 大小字节序
- android 解析json数据格式(整合)