Hi All, I managed to get it working by adding a whole lot of debugging and a whole lot of rtpproxy_offer() and rtpproxy_answer().
Now I need to clean up my config because it's a total mess. - Julian On Tue, Jul 6, 2010 at 6:33 AM, Julian Yap <julianok...@gmail.com> wrote: > Yeah, RTPProxy is being called. It just isn't using the correct port > when talking to the UA since the port changed. Is this a RTPProxy bug? > Everything works fine when the UA does not change port. > > > On 7/6/10, Klaus Darilion <klaus.mailingli...@pernau.at> wrote: >> Flags are only needed in special cases. Just make sure that you call >> force_rtpproxy() during processing of the reINVITE, and the 200 OK >> response to the reINVITE. >> >> just watch the logfile if the reINVITE also triggers rtpproxy. >> >> >> regards >> klaus >> >> Am 06.07.2010 12:16, schrieb Julian Yap: >>> Klaus, >>> >>> You mean I need to call force_rtpproxy() twice? >>> >>> Sorry, I'm full of questions: >>> - Should I be using any flags with force_rtp_proxy()? >>> - Should I be calling unforce_rtp_proxy() to tear down the initial G711 >>> media? >>> - Should I be using rtpproxy_offer() and rtpproxy_answer()? >>> >>> Here is my onreply_route. Does it look right?: >>> onreply_route[2] >>> { >>> if(nat_uac_test("1")) >>> { >>> fix_nated_contact(); >>> } >>> if(isbflagset(6)&& status=~"(180)|(183)|2[0-9][0-9]") >>> { >>> if(search("Content-Type: application/sdp")) >>> { >>> force_rtp_proxy(); >>> } >>> } >>> exit; >>> } >>> >>> Here is the initial INVITE that is processed properly: >>> INVITE sip:18085551...@8.8.178.41 SIP/2.0. >>> Via: SIP/2.0/UDP 192.168.0.15:5060;branch=z9hG4bK103B. >>> From: IPFax<sip:8085551...@192.168.0.15>;tag=IPF_PORT_0001_103A. >>> To:<sip:18085551...@8.8.178.41>. >>> Call-ID: f17e4c86-448f-4bb4-81b8-e06ce3c15...@192.168.0.15. >>> CSeq: 1 INVITE. >>> Max-Forwards: 70. >>> Contact:<sip:8085551...@192.168.0.15:5060>. >>> User-Agent: My IP_FAX-8.6.5233.924. >>> Allow: INVITE, ACK, BYE, CANCEL, REFER, NOTIFY. >>> Content-Type: application/sdp. >>> Content-Length: 164. >>> . >>> v=0. >>> o=IPFax 0 0 IN IP4 192.168.0.15. >>> s=SIP Fax Call. >>> i=IPFax. >>> c=IN IP4 192.168.0.15. >>> t=0 0. >>> m=audio 49200 RTP/AVP 0. >>> a=rtpmap:0 PCMU/8000. >>> a=ptime:20. >>> a=sendrecv. >>> >>> G711 is then established. >>> >>> T38 GW then sends the T38 INVITE: >>> INVITE sip:8085551...@8.7.230.15:5060 SIP/2.0. >>> Via: SIP/2.0/UDP 8.8.178.61;branch=z9hG4bKac315679218. >>> Max-Forwards: 70. >>> From:<sip:18085551...@8.8.178.41>;tag=1c215847348. >>> To: IPFax<sip:8085551...@192.168.0.15>;tag=IPF_PORT_0001_103A. >>> Call-ID: f17e4c86-448f-4bb4-81b8-e06ce3c15...@192.168.0.15. >>> CSeq: 1 INVITE. >>> Contact:<sip:1...@8.8.178.61>. >>> Route:<sip:8.8.178.41;lr=on;ftag=IPF_PORT_0001_103A;nat=yes>. >>> Supported: em,timer,replaces,path,early-session,resource-priority. >>> Allow: >>> REGISTER,OPTIONS,INVITE,ACK,CANCEL,BYE,NOTIFY,PRACK,REFER,INFO,SUBSCRIBE,UPDATE. >>> User-Agent: acm2k/v.5.60A.009.005. >>> Content-Type: application/sdp. >>> Content-Length: 294. >>> . >>> v=0. >>> o=AC_GW 215939645 215939274 IN IP4 8.8.178.61. >>> s=Phone-Call. >>> c=IN IP4 8.8.178.61. >>> t=0 0. >>> m=image 14002 udptl t38. >>> a=T38FaxVersion:0. >>> a=T38MaxBitRate:14400. >>> a=T38FaxMaxBuffer:1024. >>> a=T38FaxMaxDatagram:122. >>> a=T38FaxRateManagement:transferredTCF. >>> a=T38FaxUdpEC:t38UDPRedundancy. >>> >>> Here is the 200 OK from the UA with the different port: >>> SIP/2.0 200 OK. >>> Via: SIP/2.0/UDP 8.8.178.41;branch=z9hG4bK8e34.13ed1496.0. >>> Via: SIP/2.0/UDP >>> 8.8.178.61;rport=5060;received=8.8.178.61;branch=z9hG4bKac315679218. >>> Record-Route:<sip:8.8.178.41;lr=on;ftag=IPF_PORT_0001_103A;nat=yes>. >>> From:<sip:18085551...@8.8.178.41>;tag=1c215847348. >>> To: IPFax<sip:8085551...@192.168.0.15>;tag=IPF_PORT_0001_103A. >>> Call-ID: f17e4c86-448f-4bb4-81b8-e06ce3c15...@192.168.0.15. >>> CSeq: 1 INVITE. >>> Contact:<sip:8085551...@192.168.0.15:5060>. >>> User-Agent: My IP_FAX-8.6.5233.924. >>> Content-Type: application/sdp. >>> Content-Length: 357. >>> . >>> v=0. >>> o=IPFax 0 1 IN IP4 192.168.0.15. >>> s=SIP Fax Call. >>> i=IPFax. >>> c=IN IP4 192.168.0.15. >>> t=0 0. >>> m=image 49152 udptl t38. >>> a=T38FaxVersion:0. >>> a=T38MaxBitRate:14400. >>> a=T38FaxRateManagement:transferredTCF. >>> a=T38FaxMaxBuffer:200. >>> a=T38FaxMaxDatagram:72. >>> a=T38FaxFillBitRemoval:0. >>> a=T38FaxTranscodingMMR:0. >>> a=T38FaxTranscodingJBIG:0. >>> a=T38FaxUdpEC:t38UDPRedundancy. >>> >>> >>> - Julian >>> >>> On Sun, Jul 4, 2010 at 11:29 PM, Klaus Darilion >>> <klaus.mailingli...@pernau.at> wrote: >>>> Are you sure you are calling force_rtpproxy() also in reINVITE and >>>> correspondig 200 OK. >>>> >>>> regards >>>> Klaus >>>> >>>> Am 03.07.2010 09:46, schrieb Julian Yap: >>>>> >>>>> Hi all, >>>>> >>>>> Any help greatly appreciated! >>>>> >>>>> I'm having problems with a T38 UA which changes port when negotiating >>>>> T38 media. All the other UA's I've encountered thus far use the same >>>>> RTP port throughout. >>>>> >>>>> I'm also using RTPProxy invoked by OpenSIPS. >>>>> >>>>> In the final 200 OK SDP, the UA changes media port from 49200 to 49152 >>>>> but this changeover isn't detected and the media is sent back to port >>>>> 49200 so the call then fails to negotiate T38 properly. Not sure how >>>>> to log the port changes to further debug this issue as well. >>>>> >>>>> Here is the flow: >>>>> | UA | OpenSIPS | T38 GW | >>>>> | INVITE SDP ( g711U) | | >>>>> |(5060) ------------------> (5060) | | >>>>> | 100 Trying| | | >>>>> |(5060)<------------------ (5060) | | >>>>> | | INVITE SDP ( g711U) | >>>>> | |(5060) ------------------> (5060) | >>>>> | | 100 Trying| | >>>>> | |(5060)<------------------ (5060) | >>>>> | | 180 Ringing SDP ( g711U) | >>>>> | |(5060)<------------------ (5060) | >>>>> | | 200 OK SDP ( g711U) | >>>>> | |(5060)<------------------ (5060) | >>>>> | | RTP (g711U) | >>>>> | |(11392)<------------------ (14110) | >>>>> | RTP (g711U) | | >>>>> |(49200)<------------------ (10878) | | >>>>> | 180 Ringing SDP ( g711U) | | >>>>> |(5060)<------------------ (5060) | | >>>>> | RTP (g711U) | | >>>>> |(49200) ------------------> (10878) | | >>>>> | | RTP (g711U) | >>>>> | |(11392) ------------------> (14110) | >>>>> | 200 OK SDP ( g711U) | | >>>>> |(5060)<------------------ (5060) | | >>>>> | ACK | | | >>>>> |(5060) ------------------> (5060) | | >>>>> | RTP (g711U) | | >>>>> |(49200) ------------------> (10878) | | >>>>> | RTP (g711U) | | >>>>> |(49200)<------------------ (10878) | | >>>>> | | 200 OK SDP ( g711U) | >>>>> | |(5060)<------------------ (5060) | >>>>> | | RTP (g711U) | >>>>> | |(11392) ------------------> (14110) | >>>>> | | ACK | | >>>>> | |(5060) ------------------> (5060) | >>>>> | 200 OK SDP ( g711U) | | >>>>> |(5060)<------------------ (5060) | | >>>>> | ACK | | | >>>>> |(5060) ------------------> (5060) | | >>>>> | RTP (g711U) | | >>>>> |(49200) ------------------> (10878) | | >>>>> | RTP (g711U) | | >>>>> |(49200)<------------------ (10878) | | >>>>> | | ACK | | >>>>> | |(5060) ------------------> (5060) | >>>>> | | INVITE SDP ( t38) | >>>>> | |(5060)<------------------ (5060) | >>>>> | INVITE SDP ( t38) | | >>>>> |(5060)<------------------ (5060) | | >>>>> | 200 OK SDP ( t38) | | >>>>> |(5060) ------------------> (5060) | | >>>>> >>>>> This is where it sends the 200 OK with a different media port. >>>>> >>>>> - Julian >>>>> >>>>> _______________________________________________ >>>>> Users mailing list >>>>> Users@rtpproxy.org >>>>> http://lists.rtpproxy.org/mailman/listinfo/users >>>> >> > _______________________________________________ Users mailing list Users@rtpproxy.org http://lists.rtpproxy.org/mailman/listinfo/users