Woody Home Page
 
   
使用RFC 2833发送PTT
  
2012年4月30日
Radio over IP是AR168M网络语音模块用得最多的地方之一. 基于它的受欢迎程度, 我们甚至在去年开始了AR168R RoIP模块的设计.
由于有强烈的标准愿望, 我一直在犹豫用什么方式传送COR/PTT信号. 我强烈反对某些客户单开一路UDP/TCP的做法. 用于手机对讲(PoC)的RFC 4354看来是已有SIP协议中最接近的, 但是我无法找到实际测试兼容性的方法, 同时我还很怀疑现在谁还会跟着可怜的老Nokia走. 有人用AR1688软件中从来没有用过的RTCP, 还有人用特殊的SDP协商后在RTP中传输, 所有这一切对我而言都看上去很奇怪.
昨天我突然想到, 其实我要传送的无非就是按键的信息: 我按下键开始说话, 停止说话后松开键. 为什么不直接用代码中现成的RFC 2833软件当成DTMF按键传送? 这样即使AR168R跟其它SIP终端通信的时候, 对方也无非认为只是几个按键而已, 没有什么特别的.
基于这个简单的想法, 我在ar168r.c中定义了KEY_COR_HIGH和KEY_COR_LOW. PTT按下时我送出KEY_COR_LOW宣布我要说话了. PTT松开后我送出KEY_COR_HIGH表示讲话完毕.
 
2013年9月19日更新
跟Asterisk MeetMe的测试发现用RFC 2833发送的PTT信息会在会议中丢失. 我们在0.63软件中修改了交换COR/PTT信号的方式, 改为用SIP MESSAGE文本发送"COR HIGH"和"COR LOW".
 
2014年6月25日更新
增加OEM_JOSN编译选项, 给需要保留用RFC 2833交换RoIP COR/PTT信号的厂商.

本页面尚无任何评论.

更多选项? 请先登录或者注册. metropolitan-tundra