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/

Reply via email to