As I am new to this list, please tell me if there is a more appropriate list to which I should post this question.
Does the mediaproxy handle changes in the media description within the same call dialog? If not, are there plans to do so?
Here is what I have done:
I am using the SER mediaproxy module v1.4.2 and a co-located proxydispatcher and mediaproxy to accomplish NAT traversal between a 3PCC and an remote ATA. All basic call scenarios work fine. However, when the module receives a reINVITE to reconnect the ATA to a different party, the mediaserver fails to forward the RTP packets between the ATA and party described in the new SDP.
I saw in the mediaproxy logs that RTP packets had been received from both sides, but the signIn method was being invoked as "called" for both parties.
I explored the rtphandler.py and saw that the "catchall" clause at the end of RTPStream.handle_read was being invoked as you can see by the debug statement that I added to the code. It appears that this is invoked because both parties had already signed in based upon the previous media description, so none of the other mapping/forwarding clauses are invoked.
It seems that there needs to be a mechanism to clear the mappings when the mediaproxy receives a "request" command for the same session (based upon the SIP Call-ID) but a new SDP. I got it work by adding code to the beginning of RTPSession.updateStreams() that clears the list "mediaStreams" and letting the rest of the code in that method recreate the mappings from scratch. See the attached file containing the code, a mediaproxy log before the change, and a log from after the change.
Although this works, the solution is a bit incomplete since it can cause brief interruptions in the RTP stream when a reINVITE is received that does not include an SDP change, etc.
Please let me know if there is something I am missing with respect to how I should using the mediaproxy.
Thanks, - Joel Rosenfield
__________________________________ Yahoo! FareChase: Search multiple travel sites in one click. http://farechase.yahoo.com
Hi,
When I have a outgoing INVITE my mediaproxy crashes :(
See the following:
Nov 18 14:29:00 sip1 proxydispatcher[23201]: command request b566cc84-cd467d92-da2c547b@202.89.130.40 202.89.130.40:2252:audio 202.89.130.40 sip.qsi.net.nz remote eth0.1 remote PolycomSoundPointIP-SPIP_500-UA/1.5.2.0054 info=from:728728@sip.qsi.net.nz,to:8378@sip.qsi.net.nz,fromtag:60DCA320-5F6D23C9,totag: Nov 18 14:29:00 sip1 proxydispatcher[23201]: ---------------------------------------- Nov 18 14:29:00 sip1 proxydispatcher[23201]: Exception happened during processing of request from Nov 18 14:29:00 sip1 proxydispatcher[23201]: Traceback (most recent call last): Nov 18 14:29:00 sip1 proxydispatcher[23201]: File "/usr/lib/python2.2/SocketServer.py", line 458, in process_request_thread Nov 18 14:29:00 sip1 proxydispatcher[23201]: self.finish_request(request, client_address) Nov 18 14:29:00 sip1 proxydispatcher[23201]: File "/usr/lib/python2.2/SocketServer.py", line 253, in finish_request Nov 18 14:29:00 sip1 proxydispatcher[23201]: self.RequestHandlerClass(request, client_address, self) Nov 18 14:29:00 sip1 proxydispatcher[23201]: File "/usr/lib/python2.2/SocketServer.py", line 514, in __init__ Nov 18 14:29:00 sip1 proxydispatcher[23201]: self.handle() Nov 18 14:29:00 sip1 proxydispatcher[23201]: File "modules/dispatcher.py", line 303, in handle Nov 18 14:29:00 sip1 proxydispatcher[23201]: File "modules/dispatcher.py", line 349, in execute Nov 18 14:29:00 sip1 proxydispatcher[23201]: File "modules/dispatcher.py", line 580, in __init__ Nov 18 14:29:00 sip1 proxydispatcher[23201]: File "modules/dispatcher.py", line 583, in __setattr__ Nov 18 14:29:00 sip1 proxydispatcher[23201]: TypeError: 'in <string>' requires character as left operand Nov 18 14:29:00 sip1 proxydispatcher[23201]: ----------------------------------------
Any help would be appreciated :)
Pat
can ser.0.9.4 listen on multiple port and still remember the registration port for NAT and sending invites.
Thanks
Mohamed.
--------------------------------- Find your next car at Yahoo! Canada Autos