I recieved a bunch of source code contributions to Red5phone which I have added to a new version that works with the lates Red5 server 0.8 RC2. Most of the changes are already in the Red5 Plugin for Openfire except for the multi-codec support which now enables Red5Phone to handle PCMU, PCMA, iLBC and G.729.
You would need to purchase a license to use G729
I am not in a postion right now to test everything and make sure everything is working fine, so if you find a fault, please let me know.
Dele Olajide contributions
- Fixed DTMF. Tested with UK PSTN and works ok.
- Added Nellymoser encoder from Joseph Artsimovich (firstname.lastname@example.org)
Mauro Brasil, Rafael and UOL (www.uol.co.br) contributions
- Cleaned up the code
- Implemented multi-codec support for Red5phone (PCMU, PCMA, iLBC and G.729). G.729 requires payment of royalities and license rights if used.
- Adjustments to support different packetization were made as well.
Prabhu Tamilarasan contributions
- Normalize function to improve volume
Lior Herman contributions
- Red5phone show busy or rejected message for busy outgoing calls.
- Add Dial external command to Flex to dial from a link.
- Used UID (unique identifier) in Flex instead of the username value for binding the sipprovider object in Mjsip. Now you can use same sip account to register from multiple remote locations.
- Changed registration of red5phone using phone@sip_provider.getViaAddress() instead of phone@realm
- Mjsip now uses Outboundproxy = Proxy like that all sip headers using realm, but the message is send to the proxy ip.
- Process of OPTIONS messages in Mjsip some sbc’s using to check call keep alive.
- Fix authentication header for REG and INVITE to use cnounce value when proxy send qop= auth in 401 or 407 message.
- Fix red5phone application close for complete unregister before sipprovider.halt is execute.
- Fix the microphone.init in Flex to not be bind to the REGISTER SUCCESS message as it can be many SUCCESS messages coming during a call and mic need to be init only once.
- Fix Cancel message for Invite (call) that have not been answered yet. When you want hangup a call before the remote user answered Mjsip send wrong Cseq in Cancel message.
- Fixed NullException error when application is closed in provider.halt() its try to close a null tcp_socket and get Null exception back. Fix is in org.zoolu.net.TcpServer.java in the end of the file.
- Patch all sip Register message using same Call-ID header and increment Cseq as recommended by RFC3261.