Partial faxes with G711 and Fax Failure with T.38

Status
Not open for further replies.

Wagsjr

Platinum Partner
Advanced Certified
Joined
Sep 10, 2020
Messages
4
Reaction score
0
I have been working on this issue for a long time. About a month now. I have created a wireshark captures for the many many tests I have performed.

Context:
We have recently pulled a 3CX from a hosted cloud environment, to an on prim environment.
We experienced a loss of fax capability.
Enabled the BETA g711 fallback
Could receive faxes again, but partials and incomplete.
Began researching why the partial documentation
Called the SIP provider to analyze for packet loss. No loss.
Provider has T.38 enabled on the SIP trunk
Captured wireshark from one end to another from the perspective of 3CX and the UTM
Provider and myself saw a "clean" connection as far as we could tell. Meaning it looked to have gotten there and sent its responses.
There were visual queues to indicate that a page had been malformed in the wireshark details

---Like when we would recreate the audio RTP stream and play it, we could see in our 5 pages sent example one of the audio streams would look different than the others
---We would find out then that the same page that would have come in during that was either cut off, or missing.
---We would notice during the G711 fallback that their partials would result in consistent and very cut off partials. However when I would send to them from outside,
---Their network, It would be intermittent in that some pages would come in okay, and some would be garbage.
---All inbound faxes are affected, but I am told they are not getting complaints about their faxes leaving in poor condition.

The firewall checker when run would find mismatched ports and throw that error.
Regular calling works perfectly fine.

---Each time we ran it the ports were different, but always seemed to be 2 in number
---The final time we ran it being the 5th time in a row, it passed (Because 3CX support wouldn't engage until it was green). So we kept it there

------Regarding this we checked the UTM on the network to make sure the correct ports were being forwarded, as per instructed in 3CX documentation.
------I don't believe this is the reason for the Fax T.38 Failures. The connection is still being made from our end and being picked up on the 3CX active calls.
------We would call a DID when sending the fax and the active call log would say the Callee was 8888 our default fax extension. I believe this is normal.

We ran an extensive capture of the network with the fallback enabled to try and find where the disconnect was. Perspectives from the UTM and the 3CX both indicate normal routing.
We decided from this point to attempt to get T.38 working instead of work through a BETA solution that is not guaranteed.
********Turned the G711 fallback off*************
Now the fax was using G711 only to esablish the call and then the switchover would occur.
We sent test faxes to them from outside the network, and they themselves sent some for testing purposes.
Sending to themselves would result in no successful fax delivered.
Myself sending to them would indicate the CNG tones, the 3CX would see the call in the active call log, but again no fax delivered.

---They are using Fax Star for their sending purposes with this test in specific. So the fax generates from fax star and the provider would see a different number in the 'from' in the call trace
---This is normal behavior.

From here what we are seeing is the 3CX will receive the call and it will reflect as such on the active call log, but the fax will not be sent to the email that we specify in the 3CX
I have checked the outbound rules to make sure, but if they worked with G711, I can not imagine T.38 would change that.
I have done 5 captures with this BETA feature disabled
I began digging deep into the wireshark.

I believe there is something happening with my T.38 handshake not completing. *SEE ATTACHED* The invite and such that is cut off in the top of the snap is normal and not the focus.
My reading up on the subject suggests that there is meant to be a process that continues after the v21 Preamble. But once it tried 3 times, the DCN - Disconnect is thrown.

Further more, you can see that the direction of the connection after the T.38 switchover is only from the private address.

the .135 address is the trunk to the provider
the .10 address is the private address
the .181 address is the UTM Public Nat address
the 75 is the SIP DID that was called using our fax

I have noticed that after the switchover, the private address is the only one sending in relation to this call ID with T.38. That can not be right...Right? Looks like one way to me, but the only thing in between the Gateway UTM and 3CX server is an avaya switch. :(

I can not for the life of me figure out why this is happening. Maybe this is not the problem and I am too far down the rabbit hole?

call flow pic.PNGWireshark pt1_LI.jpgwireshark pt 2_LI.jpg
 
Hello @Wagsjr


I will be short and to the point. I would not bother with Fax over G711. It is bad in the best scenarios and the slightest delay or jitter will cause issues.
Regarding T38, you can see the issue in the first screenshot you posted. The PBX is sending from port 10116 and it expects to receive on the same port but data from the provider come to port 10114.

If you examine the captures you will see that the initial call is established to port 10114 of the PBX but in the T38 re-invite the PBX switched port to 10116. Unfortunately the provider does not seem to follow this change.
We see this issue with a number of providers because the have an option enabled to send data to the port they receive data from and ignore re-invites. Some providers call this RTP auto adjust.
In this scenario the provider sees data coming from port 10114 until the ACK is sent. Only after the ACK is the renegotiation final and the PBX switches ports. Once the ACK is sent the port is switched and the PBX expects data to the new port. Data coming to the old port are ignored. And of course that causes the fax negotiation to fail and data only be sent from one side.
Show the port change to your provider and ask them why they do not follow the re-invite. Perhaps they can adjust their platform. Some providers even have options into their customer portal you can turn on or off to solve this.
Wasn't that short after all but hope that was on point.
 
  • Like
Reactions: eddv123
I had Call tower on the phone and they sent me the wireshark. From their end, they are sending both directions, but it looks like once the switchover happens, there is panic and everyone begins saying "no signal". However this is the capture from my UTM and it looks like there is just no talking whatsoever after the twitchover. If the UTM was interfering, wouldn't I see a call leg come in from the call flow diagram and not get passed to the private .10 IP address?

I looked into the ports as well, and the call tower person confirmed, he can see the new port. This does not make sense. Call tower's perspective is the call flow on the right side of the screenshots. The UTM Perspective is the Left.


Cupdate improved 1.PNGupdate improved 2.PNG
 
From what i can see your UTM is not interfering and in this example the provider does switch to the correct port. However i cannot see any data coming from the provider in either capture.
There is the first no-signal which is correct from both sides but once the 3CX fax server starts the fax negotiation there is no reply. You can see in both captures that the fax server is sending data but it is not receiving any so eventually the call is dropped.
I am not sure why the provider stops sending data during the negotiation but its clear nothing else is being received.
 
Status
Not open for further replies.

Latest Posts

Forum statistics

Threads
111,964
Messages
590,001
Members
164,869
Latest member
hpgitsupport