Woody Home Page
 
   
Sending PTT via RFC 2833
  
Apr 30, 2012
Radio over IP was one of the most heavily used application of AR168M VoIP module. It was so popular that we eventually decided to build an AR168R RoIP module last year.
Having a strong desire to do everything in a standard way, I was hesitating to choose the way to send COR/PTT signals. I hate to use a separate UDP/TCP channel, as some of our customers did. RFC 4354 for Push-to-Talk over Cellular (PoC) Service seems to be the most close in existing SIP protocols, but I can not find an actual way to test the interoperability, and I really doubt who will follow poor old Nokia now. Somebody used RTCP, which was never implemented in AR1688 software. And somebody used RTP with a special SDP negotiation. All seems to me as strange behavior.
But yesterday all of a sudden I realized that what I need to send is just key information: I hold a key to talk, and release the key after talking. Why not just use existing RFC 2833 software to send it as DTMF key? Even when AR168R working with other SIP terminal, the other side will just understand that a key was pressed and nothing else special.
Based on this simple thought, I defined KEY_COR_HIGH and KEY_COR_LOW in ar168r.c, when PTT is pressed, I send out KEY_COR_LOW to announce I am going to talk, and when PTT is released, I send out KEY_COR_HIGH to indicate speech finished.
 
Update on Sep 19, 2013
Test with Asterisk MeetMe showed that PTT information via RFC 2833 was lost in the conference. We changed the way to exchange COR/PTT singals via SIP MESSAGE text "COR HIGH" and "COR LOW" in 0.63 software.
 
Update on Jun 25, 2014
Added OEM_JOSN compile option to keep using RFC 2833 for RoIP COR/PTT signals exchange method.

No comments for this page yet.

More options? Please login or register account. metropolitan-tundra