[Freeswitch-users] refusing t38 in outgoing fax server transmission

Sandro Bordacchini sandro.bordacchini at nems.it
Tue May 28 16:39:52 UTC 2019


Hello everyone.

I am have a few FS installations interconnected with a voip provider;
during outbound fax server transmissions, they told us that we need *to
refuse T38 even if offered by the network*.
The sdp offer/answer negotiation varies depending on the called number,
probably due to a different routing in the voip provider's network.
I experience some dropped calls (even before the fax transmission kicks in)
using both FS versions 1.4.9 and 1.6.16.

This is a successful sdp negotiation (after call is estabilished)
First reinvite:
REMOTE INVITE with SDP: v=0..o=LucentPCSF 413445855 413445856 IN IP4
10.198.1.230..s=-..c=IN IP4 10.198.1.230..t=0 0..m=audio 15756 RTP/AVP 8 96
4..a=rtpmap:96 telephone-event/8000..a=fmtp:96 0-15..a=ptime:20..a=X-sqn:
0..a=X-cap:  1 image udptl t38..
LOCAL 200OK with SDP: v=0..o=FreeSWITCH 1558069426 1558069428 IN IP4
10.197.98.6..s=FreeSWITCH..c=IN IP4 10.197.98.6..t=0 0..m=audio 30394
RTP/AVP 8 96..a=rtpmap:8 PCMA/8000..a=rtpmap:96
telephone-event/8000..a=fmtp:96 0-16..a=silenceSupp:off - - -
-..a=ptime:20..
Then, a second reinvite happens:
REMOTE INVITE with SDP: v=0..o=LucentPCSF 413445855 413445857 IN IP4
10.198.1.230..s=-..c=IN IP4 10.198.1.230..t=0 0..m=audio 0 RTP/AVP 0..c=IN
IP4 10.198.1.230..m=image 12834 udptl t38..a=X-sqn: 0..a=X-cap:  1 image
udptl t38..
LOCAL 488
Then, the last reinvite:
REMOTE INVITE with SDP: v=0..o=LucentPCSF 413445855 413445858 IN IP4
10.198.1.230..s=-..c=IN IP4 10.198.1.230..t=0 0..m=audio 15756 RTP/AVP 8 96
4..a=rtpmap:96 telephone-event/8000..a=fmtp:96 0-15..a=ptime:20..a=X-sqn:
0..a=X-cap:  1 image udptl t38..m=image 0 udptl t38..c=IN IP4 10.198.1.230..
LOCAL 200OK with SDP: v=0..o=FreeSWITCH 1558069426 1558069429 IN IP4
10.197.98.6..s=FreeSWITCH..c=IN IP4 10.197.98.6..t=0 0..m=audio 30394
RTP/AVP 8 96..a=rtpmap:8 PCMA/8000..a=rtpmap:96
telephone-event/8000..a=fmtp:96 0-16..a=silenceSupp:off - - -
-..a=ptime:20..m=image 0 udptl t38..
And the fax is transmitted correctly

This is an unsuccessful sdp negotiation:
First reinvite
REMOTE INVITE with SDP: v=0..o=LucentPCSF 579041281 579041282 IN IP4
10.198.1.230..s=-..c=IN IP4 10.198.1.230..t=0 0..m=audio 13302 RTP/AVP 8
96..a=rtpmap:96 telephone-event/8000..a=ptime:10..a=ecan:fb on
-..a=Fax..m=image 17522 udptl
t38..a=T38FaxVersion:0..a=T38MaxBitRate:14400..a=T38FaxRateManagement:transferredTCF..a=T38FaxMaxBuffer:1800..a=T38FaxMaxDatagram:260..a=T38FaxUdpEC:t38UDPRedundancy..a=ecan:fb
on -..
LOCAL 488
and the remote hangs up.

My point is that, in case of unsuccessful negotiation, FS receives a
reinvite with two "m=" in the sdp, one G711A (port 13302) and one T38 (port
17522).
Is it ok for FS to refuse "all the sdp" with 488 just because it has to
refuse T38 or it should be configured to refuse only the T38 media?
Should remote endpoint send another reinvite with only G711 or only T38
before hanging up?

Thanks in advance to whoever read till here :-)
Any hints?

S.

P.s.:
This is what i get in the log in the unsuccessful case during the reinvite
(1.4.9 code):
[...]
2019-05-17 11:22:57.498389 [DEBUG] switch_core_media.c:3476 Audio Codec
Compare [PCMA:8:8000:10:64000:1]/[PCMA:8:8000:10:64000:1]
2019-05-17 11:22:57.498389 [DEBUG] switch_core_media.c:3531 Audio Codec
Compare [PCMA:8:8000:10:64000:1] ++++ is saved as a match
2019-05-17 11:22:57.498389 [DEBUG] switch_core_media.c:3397 Set
telephone-event payload to 96
2019-05-17 11:22:57.498389 [DEBUG] switch_core_media.c:3713 Set 2833 dtmf
send payload to 96
2019-05-17 11:22:57.498389 [ERR] sofia.c:7065 Reinvite Codec Error!
2019-05-17 11:22:57.498389 [DEBUG] switch_core_session.c:1053 Send signal
sofia/external/<calledfaxnumber> [BREAK]
2019-05-17 11:22:57.498389 [DEBUG] switch_core_session.c:1053 Send signal
sofia/external/<calledfaxnumber> [BREAK]
2019-05-17 11:22:57.498389 [DEBUG] switch_core_media.c:2280 Already using
PCMA
2019-05-17 11:22:57.498389 [DEBUG] sofia.c:6444 Channel
sofia/external/<calledfaxnumber> entering state [ready][488]
2019-05-17 11:22:57.638443 [DEBUG] switch_core_session.c:1053 Send signal
sofia/external/<calledfaxnumber> [BREAK]
2019-05-17 11:22:57.638443 [NOTICE] sofia.c:952 Hangup
sofia/external/<calledfaxnumber> [CS_EXECUTE] [NORMAL_CLEARING]
2019-05-17 11:22:57.638443 [DEBUG] switch_channel.c:3222 Send signal
sofia/external/<calledfaxnumber> [KILL]
2019-05-17 11:22:57.638443 [DEBUG] switch_core_session.c:1388 Send signal
sofia/external/<calledfaxnumber> [BREAK]
2019-05-17 11:22:57.638443 [DEBUG] mod_spandsp_fax.c:293 FLOW T.30 Status
changing to 'The call dropped prematurely'

This are the most relevant settings on api originate:
[DEBUG] switch_event.c:1688 Parsing variable [fax_use_ecm]=[off]
[DEBUG] switch_event.c:1688 Parsing variable
[absolute_codec_string]=[PCMA at 10i]
[DEBUG] switch_event.c:1688 Parsing variable [fax_enable_t38]=[false]
[DEBUG] switch_event.c:1688 Parsing variable
[fax_enable_t38_request]=[false]
[DEBUG] switch_event.c:1688 Parsing variable [refuse_t38]=[true]
and on the external profile t38-passthru is set to false.




-- 

Ing. Sandro Bordacchini / System Engineering and Product Management
sandro.bordacchini at nems.it
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20190528/a9e7a8a2/attachment-0001.html>


More information about the FreeSWITCH-users mailing list