Woody Home Page
 
   
RTP First
  
Nov 16, 2007
There is no RTOS with AR1688 software, everything is being performed inside a loop like
while (1)
{
    do_everything();
}

To make things worse, the 8-bit Z80 processor is slow for task like MD5 encryption, typically takes 5-10 milliseconds. We use same FWD test account to test IAX2 and SIP protocol. IAX2 protocol needs 12ms to do a register with 1 MD5 calculation. SIP protocol needs 80ms to do a register with 3 MD5 calculation. Within the 80ms of SIP register, all incoming and outgoing RTP packets are held unhandled, thus cause a lot of RTP jitter during a call.
The problem was pointed out by customer on our mailing list, the customer suggested that the usage of RTOS is the only solution. However, AR1688 resource indeed can not afford an extra RTOS. Instead, we implemented a RTP first method in 0.25 software and solved this problem perfectly.
When inside a SIP message handling process, we will call TaskMiniRun a few times to handle outgoing and incoming RTP packets in time. The function acts sort of like an interrupt routine, it will save necessary information of the SIP message process, send and receive RTP data, and restore SIP message handling.
Nothing is impossible.
  
Updated on July 29, 2015
The interrupt like function need quite some resources, we recently found a stack overflow problem when user added some of his own code. To help debug, we added SYS_MINI_RUN in version.h, the RTP first Minu Run for RTL8019AS will only work when it is defined.
  
RTL8019AS chip on China Roby PB-35 IP phone inside PCB board.

No comments for this page yet.

More options? Please login or register account.