Anthony,
Great answers indeed. Thanks a lot! Is there a documentation system that I can save it to ... like a wiki? These information are too valuable to be buried in the mail archive.
It took me a while but I think I have come to agreement for pretty much every point you made, except one. The only thing I felt suspicious is the busy waiting in which the originator polls check_channel_status() a million times after the originatee starts ringing but before it answers. Can't we wait for a mutex or condition waken up by CALL_ANSWERED? Imagine if you have a thousand incoming calls, there will be 1000 while loops spinning the processor.
Another issue I noticed is that hold/resume is not working properly. There was no 200OK for the re-INVITE. I tried to debug further but somehow couldn't get into mod_exosip.c using gdb. (DDD and Eclipse behaved the same. Does anybody have the same issue?) I kind of guess the issue is what kind of SDP is the SIP phone sending for hold. The old way is to set an all zero O field, as opposed to SENDONLY or INACTIVE. Anyways, if mod_exopsip.c is going way, we should probably just wait for mod_sofia.
Two more basic questions:
1. Licensing. A main problem I saw with Asterisk is it's GPL/Digium dual licensing scheme. I don't see any serious business development could be possible under this license. I think Mark and his company have made a big mistake on this subject. (And their business model as well.) What's the main rationale for you/other founders to choose MPL? Do you favour/oppose to commercial development using freeswitch in their proprietary systems?
2. Memory usage. I am seeing freeswitch using 25M bytes of memory with just one basic SIP call. It's a little surprising. Should I turn on the -Os to see if we can save some space?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
25295 root 0 -20 27040 25m 3696 S 0 2.5 0:00.12 lt-freeswitch
Thanks,
Alex
_______________