[Freeswitch-users] PCMU fallback for T.38

Gabriel Kuri gkuri at ieee.org
Tue Mar 31 09:59:15 PDT 2009


> This part is interesting, and the subject of a discussion we had
> recently. A number of systems try that second re-invite after a 488, but
> the SIP specs say the call is pretty much dead after the 488 message is
> exchanged. Are they just hoping that maybe the other end will be
> non-compliant enough to keep the call alive, and recover its media mode,
> or haven't they read the specs?

I think they're hoping the other end is willing to recover it's media
mode rather than fail the call. I had no idea the call is technically
dead after the 488. Honestly, it would be nice if the call would still
be recoverable after that 488 on the T.38 ReINVITE, in order to try and
negotiate PCMU to try and keep the FAX going, but if that's not how it's
supposed to work, I'd rather follow the spec.

So for now I've disabled T.38 completely on both the SPA side and I had
the carrier disable it on my trunk, so they won't try a T.38 reinvite.
Instead they're trying a PCMU ReINVITE and the problem I'm seeing is
that if the carrier reINVITEs PCMU after the call initially started out
as G729, FS fails the call, because it seems to be trying to transcode
between G729 and PCMU, rather than pass the PCMU reINVITE through to the
other leg.

2009-03-31 00:30:50 [DEBUG] sofia_glue.c:1550
sofia_glue_tech_set_codec() Changing Codec from G729 to PCMU
2009-03-31 00:30:50 [DEBUG] sofia_glue.c:1601
sofia_glue_tech_set_codec() Set Codec
sofia/cedarwireless.net/1909XXXXXXX at 65.98.2
36.38 PCMU/8000 20 ms 160 samples
2009-03-31 00:30:50 [DEBUG] sofia_glue.c:1811 sofia_glue_activate_rtp()
Audio params are unchanged for sofia/cedarwireless.net/
1909XXXXXXX at 65.98.236.38.
2009-03-31 00:30:50 [DEBUG] sofia.c:2896 sofia_handle_sip_i_state()
Processing Reinvite
2009-03-31 00:30:50 [DEBUG] sofia.c:2542 sofia_handle_sip_i_state()
Channel sofia/cedarwireless.net/1909XXXXXXX at 65.98.236.38 en
tering state [completed]
2009-03-31 00:30:50 [DEBUG] switch_core_io.c:655
switch_core_session_write_frame()
sofia/cedarwireless.net/1909XXXXXXX at 65.98.23
6.38 receive message [SWITCH_MESSAGE_INDICATE_TRANSCODING_NECESSARY]
2009-03-31 00:30:50 [ERR] mod_g729.c:145 switch_g729_decode() This codec
is only usable in passthrough mode!
2009-03-31 00:30:50 [ERR] switch_core_io.c:723
switch_core_session_write_frame() Codec G.729 decoder error!

I have inherit_codec=true, set in the dialplan and
disable-transcoding=true set in the sofia profile, which is what I
thought would do the trick, but it doesn't seem to be doing anything, FS
is still trying to transcode between G729 and PCMU. Is there something
I'm missing to get the PCMU ReINVITE from one of the legs to passthrough
to the other leg? Does this work only in proxy_media or bypass_media modes?

I am testing this with the latest rev of trunk as well.

Thanks,

Gabe




More information about the FreeSWITCH-users mailing list