On 06/16/2017 at 04:00 PM, Joshua Colp wrote:
> On Fri, Jun 16, 2017, at 10:49 AM, Michael Maier wrote:
> 
> <snip>
> 
>>
>> t38modem and asterisk are using
>>
>> m=image 35622 udptl t38
>>                ^^^^^
>>
>> Provider uses
>>
>> m=image 35622 UDPTL t38
>>                ^^^^^
>>
>> Could this be a problem? If I'm sending internal only, it's always 
>> lowercase.
> 
> Looking at the tests we have we only use 'udptl' as the transport.
> Without diving deep into the SDP negotiator it is possible that it gets
> upset at that, as we would only produce 'udptl'. If the SDP negotiator
> in PJSIP is case sensitive then you'd get a declined stream like you
> see. Looking at the T.38 examples from the ITU doc also shows it in
> lowercase, so uppercase is probably not commonly used.

I can proof, that UDPTL vs. udptl is the problem. After "fixing"
asterisk and opal both using UDPTL, the negotiation works flawlessly.
See attached patches.

Sending t38 faxes internally works fine. Externally via provider gets
stuck: the provider doesn't send back any t38-package to the client
(t38-packages are leaving asterisk towards the provider, but the
provider doesn't send back any package to the client :-().

Any idea what to change to get the provider to communicate?

(From the 200 Ok from the provider - nothing critical from my point of
view - these are the values I sent in the reinvite to the provider)

Connection Information (c): IN IP4 195.185.37.60
  Time Description, active time (t): 0 0
  Media Description, name and address (m): image 31410 UDPTL t38
  Media Attribute (a): sendrecv
  Media Attribute (a): T38FaxVersion:0
  Media Attribute (a): T38MaxBitRate:14400
  Media Attribute (a): T38FaxRateManagement:transferredTCF
  Media Attribute (a): T38FaxMaxDatagram:397
  Media Attribute (a): T38FaxUdpEC:t38UDPRedundancy


Thanks,
Michael
--- a/src/t38/t38proto.cxx	2013-02-20 03:18:46.000000000 +0100
+++ b/src/t38/t38proto.cxx	2017-06-17 06:08:19.447901812 +0200
@@ -470,7 +470,7 @@
 };
 
 
-PFACTORY_CREATE(PFactory<RTP_Encoding>, T38PseudoRTP_Handler, "udptl", false);
+PFACTORY_CREATE(PFactory<RTP_Encoding>, T38PseudoRTP_Handler, "UDPTL", false);
 
 
 /////////////////////////////////////////////////////////////////////////////
--- a/src/t38/sipt38.cxx	2013-02-20 03:18:46.000000000 +0100
+++ b/src/t38/sipt38.cxx	2017-06-17 06:09:08.687899689 +0200
@@ -82,7 +82,7 @@
 
 PCaselessString SDPFaxMediaDescription::GetSDPTransportType() const
 { 
-  return "udptl";
+  return "UDPTL";
 }
 
 SDPMediaDescription * SDPFaxMediaDescription::CreateEmpty() const
--- a/src/t38/t38mf.cxx	2013-02-20 03:18:46.000000000 +0100
+++ a/src/t38/t38mf.cxx	2017-06-17 06:07:51.499903017 +0200
@@ -92,7 +92,7 @@
 
 PString OpalFaxMediaType::GetRTPEncoding() const
 {
-  return "udptl";
+  return "UDPTL";
 }
 
 
--- a/res/res_pjsip_t38.c	2017-06-15 19:17:02.316000000 +0200
+++ b/res/res_pjsip_t38.c	2017-06-15 19:20:26.280000000 +0200
@@ -728,7 +730,7 @@
 	static const pj_str_t STR_IN = { "IN", 2 };
 	static const pj_str_t STR_IP4 = { "IP4", 3};
 	static const pj_str_t STR_IP6 = { "IP6", 3};
-	static const pj_str_t STR_UDPTL = { "udptl", 5 };
+	static const pj_str_t STR_UDPTL = { "UDPTL", 5 };
 	static const pj_str_t STR_T38 = { "t38", 3 };
 	static const pj_str_t STR_TRANSFERREDTCF = { "transferredTCF", 14 };
 	static const pj_str_t STR_LOCALTCF = { "localTCF", 8 };
-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
      https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to