Sipdroid中像服务器注册是如何实现的(一)?

本文详细介绍了Sipdroid应用如何通过SIP协议实现客户端与服务器的注册过程。核心在于RegisterAgent类中的register方法,该方法创建并发送Register请求,其中包含客户端的唯一标识SIP URI。服务器接收到请求后,会将其写入数据库完成绑定。
摘要由CSDN通过智能技术生成
关于 Sipdroid是如何实现像服务器注册的

首先告诉大家代码块在哪里,注册的核心在RegisterAgent类中的函数register(int time)中,注册的核心是:


  1. //Create message re (modified by mandrajg)
  2. Message req = MessageFactory.createRegisterRequest(sip_provider,
  3. target, target, new NameAddress(user_profile.contact_url), qvalue, icsi);

  4. req.setExpiresHeader(new ExpiresHeader(String.valueOf(expire_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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值