| |
|
|
|
| RTP First |
| | |
| Nov 16, 2007 |
There is no RTOS with AR1688 software, everything is being performed inside a "while (1) { do_everything(); }" type loop. 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.
|
No comments for this page yet. |
|