T38 Passthrough on Multihomed / Multitrunk Server uses wrong source IP


#1

Hello all,
I am trying to use latest Asterisk 15 (mainly configured with freepbx) for FAX T.38 passthrough. This is basically working.
But in a multihomed environment I cannot get the UDPTL packets on a pjsip trunk side to be routed with a correct source IP. I have 2 trunks to SBC1 and SBC2 (of the provider) which are connected over interface eth3 and eth4. A default route is configured to another interface eth0 (local LAN with ip phones). This works fine for calls, which are estabilshed over one of the 2 trunks.

But after the Re-INVITEs from T.38 to change to UDPTL transport, all outgoing packets over the trunks use the default route and IP address of eth0.

It seems, that asterisk/fax cannot set a source IP or transport for those outgoing UDPTL packets, as it would be done for RTP. The “trick” in my case is, that the source IP and interface shall be used as signalled in SIP/SDP and route (policy based routing) such that UDPTL is using the same asterisk IP address as the SIP signalling. As said, for the RTP traffic, this is properly working (using bind_rtp_to_media_address=yes or individual pjsip transport per interface). The media endpoints on the service provider SBCs are shared for all trunks and a normal route cannot be done, as it shall be chosen based on the source IPs.

Can this be solved by some udptl or pjsip configuration?

Many thanks
cog


#2

You don’t actually have a mutlhomed system. On a multihomed system it would not matter which IP address was used.

chan_sip cannot handle such broken routing configurations. I believe chan_pjsip may have some support.

With chan_sip, you need to run separate instances on each network.


#3

At the moment I like to stick to chan_pjsip. I’ll remember to come to try with chan_sip, if there is no other option possible.

I call it multihomed, as I am running multiple interfaces, for the extensions and trunks in this way:

LAN side:

fax-t38 )
) - - - pjsip ----- LAN 192.168.0.0/24 — ( eth0 on Asterisk )
Cisco SP112 )

WAN trunk connections:
eth3 ) — pjsip trunk_1 — WAN 172.88.1.0/24 — routed to SBC1
Asterisk ) MGW
eth3 ) — pjsip trunk_2 — WAN 172.89.1.0/24 — routed to SBC2

The other T.38 endpoint is external. SBC1, SBC2 and MGW have connectivity over both WANs.

Then I require, that SIP and the corresponding RTP media use the same Asterisk eth3 or eth4. This I got properly working.

Only UDPTL packets make trouble. They are routed out with the src IP of eth0. I believe, since, the default route is to eth0.

I wonder, if Asterisk is not seeting up this UDPTL T.38 media with the right src IP (as is done for RTP).