TBCP 消息简要概述
TBCP消息属于RTCP里面的一种,目前主要被OMA应用在Push-To-Talk整套solution场景中。在这种半双工的应用中,一个主要的技术难点就是会话控制权分配的问题。目前,TBCP消息主要包括:
1)TBCP通话突发请求(TB_Request)——客户端发出该消息,用以请求允许发送一个通话突发。例如当用户按下PTT发送按键以便进行会话时,就生成该消息。
2)TBCP通话突发授权(TB_Granted)——该消息由Poc服务器发往Poc客户端,指示该Poc客户端已经获得Poc平台的授权。这意味着允许该客户端发送一个通话突发,此时在Poc会话中的其他参与者将听到这个人的声音。
3)TBCP通话突发拒绝(TB_Deny)——该消息由Poc服务器发往Poc客户端,声明已经拒绝该客户端使用Poc平台的权利。这意味着不允许该客户端发送通话突发,此时其他参与者将听不到这个人的声音。
4)TBCP通话突发释放(TB_Release)——该消息由Poc客户端发往服务器,声明该Poc客户端已经完成了通话突发的发送。
5)TBCP通话突发取走(TB_Taken)——该消息由Poc服务器发往会话的所有其他的参与者,以通知他们另一个Poc客户端已经获得讲话的权利,并正在发送通话突发的过程中。
6)TBCP通话突发撤回(TB_Revoke)——该消息由Poc服务器发出,撤回已经授予的讲话授权。例如服务器中断过长的通话突发。
7)TBCP通话突发空闲(TB_Idle)——该消息由Poc服务器发往Poc会话的所有参与者,通知他们Poc平台空闲可用,Poc服务器愿意接受TBCP通话突发请求的消息。
8)TBCP通话突发应答(TB_Ack)——该消息由Poc客户端发往Poc服务器,作为收到请求后发回的相应请求。
9)TBCP通话突发队列状态响应(TB_Queued)——该消息由Poc服务器发往Poc客户端,指示通话突发已经请求并加入队列。该消息也可以指示当前用户在队列中的位置。
10)TBCP通话突发队列状态请求(TB_Position)——该消息由Poc客户端发往服务器,请求它在通话突发或平台队列中的位置。
11)TBCP链接(Connect)——在预建立会话中,该消息由Poc服务器发往客户端,指示已经收到新的会话,并已经为此创建了相应的平台。
12)TBCP断链接(Disconnect)——在预建立会话中,该消息由Poc服务器发往客户端,指示某个特定的会话已经结束,并销毁了相应的平台。
TBCP使用RTCP的协议格式,RTCP APP的消息格式:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P| subtype | PT=APP=204 | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| name (ASCII) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| application-dependent data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Version(v)和Padding(p)两个字段与其他RTCP包相同,Name字段标示了应用;在TBCP中,Subtype字段标示了TBCP的消息类型。SSRC字段标示TBCP请求的来源。下面是Subtype的二进制模式到TBCP消息的映射:
二进制 TBCP消息
00000 TB_Request
00001 TB_Granted
00010 TB_Taken(请求TB_Ack)
00011 TB_Deny
00100 TB_Release
00101 TB_Idle
00110 TB_Revoke
00111 TB_Ack
01000 TB_Position
01001 TB_Queued
01010 保留
01011 TB_Disconnect
01100 保留
01101 保留
01110 保留
01111 TB_Connect
10010 TB_Taken(不请求TB_Ack)
更加多的,可以参看OMA PTT标准。
From:
http://wsqhs.spaces.live.com/blog/cns!94F639580F58209C!133.entry?sa=63638777