关于
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
第二篇将给大家介绍下,发送的注册消息体里面的每个参数所代表的意义.