Hi All, I am working on my first project activity in SIPX which is get "Mid call features on Nortel's Mobile Extension over SIP" working and require your valuable inputs to proceed further.
The goal here on SIPX is to decode RFC2833 packets and send the DTMF digits using SIP-INFO message with specific format to CS1000. CS1000 already has necessary implementation to decode SIP-INFO message from SIPX and to proceed further in activating mid call features like Call Transfer, Conference, etc. SIPX which sits in between PSTN/ITSP and CS1000 (Nortel's enterprise Communication Server) would act a SBC/bridge anchoring media and passing on to respective ends. This new implementation on SIPX would come into place once the call is established i.e. during media flow when RTP packets (in particular, RFC2833 packets carrying the DTMF digits) are exchanged between two ends. Following are two major requirements for this feature: 1. Extract/Decode the content of RTP packets and look for RFC2833 DTMF digits (explained further below). 2. If the RTP packet is found to be RFC2833, then build SIP-INFO message with 'n<digit>' DTMF content and pass on to CS1000 node. Below are few doubts on the SIPX section. Code Level implementation: Where the new implementation has to go: The new code implementation that is to be introduced should be done in area where 'sipXbridge' is implemented or more specifically in 'sipXrelay' code. With the investigations carried out so far, it could be done inside function run() just before calling 'send(bridge, datagramChannel, remoteAddress,stamp,false)'; of file PRE/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/symmitron/DataShu ffler.java. It is understood that this section of code will be executed continuously when media path is established and RTP packets are exchanged between two endpoints. Please inform if there are any corrections. What needs to be done: As per our understanding, SIPX does not have code to decode the content of RTP packets. So first goal is to decode the contents of RTP packets at above mentioned code location where the packets will be relayed. To do this, each packet that is exchanged has to be checked to see if 'Payload type' is of "telephone-event". If Payload type is not found to be "telephone-event", then usual existing functionality will be carried out without having to go through newly implemented code. If Payload type is found to be of "telephone-event", then the RTP packet that is being decoded is double checked to see if it is a RFC2833 DTMF packet. So based on "RFC 2833 RTP Event" information, further processing would be carried out and the respective DTMF digit content extracted from "Event ID" would be stored onto a variable. SIP-INFO message with 'n<digit>' format would be built and ready to be sent. The new SIP-INFO message which is being built would use the same implementation as it is already done on SIPX with some tweaking to add the DTMF digit information which will be in similar lines to CS1000. Later when "End of Event" is TRUE for consecutive RTP packet of same DTMF digit, based on the timestamp, the new SIP INFO message that has been built should eventually be sent out on the signaling path to CS1000. Note: In order to avoid overhead, we will also have to make sure that this implementation is specific when DTMF/RFC2833 packets flow from PSTN to CS1000 and not the other way round. How to implement the same: This section of how to implement the decoding of RTP packets on SIPX is not very clear. The issue is, in the above mentioned code section (/sipXbridge/src/main/java/org/sipfoundry/sipxbridge/symmitron/DataShuff ler.java), there are options to get various contents like datagramChannel, number of packets, ipAddress, port details, etc but there does not seem to be any datagramPacket or packet details available. At present, we are also not sure about code implementation of how existing SIP-INFO message can be generated once the RTP packets are decoded. While this is going to be next section, we need to be clear in first step of decoding the RTP packets. Basic understanding is importing java.net.DatagramPacket and execution similar to "RtpPacket.java" should be done. It will be great if we get help to know how exact code implementation in order to decode RTP packets at "sipXrelay" section should be carried out. Thanks a lot for your time and help. Regards Bharath +91-9900946000 Please do not print this email unless it is absolutely necessary. The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments. WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. www.wipro.com
_______________________________________________ sipx-dev mailing list [email protected] List Archive: http://list.sipfoundry.org/archive/sipx-dev Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev sipXecs IP PBX -- http://www.sipfoundry.org/
