Sangoma P320 & Digium D65 Outbound calls failing

Posting this for the benefit of the community.

I was testing the Sangoma P320 and D65 to replace our Cisco SPA phones and ran into trouble with outbound calls failing. The only way I was able to get it to work was to configure VPN on the phone, but that was only a solution for the P320.

After trying everything I knew to do and failing, was about to send them back but decided to try Sangoma’s support. I sent them a packet capture and they quickly diagnosed that the long list of codec selections on the phone resulted in the SDP part of the INVITE message being so long that it exceeded the 1500 byte packet size and fragmented the message.They suggested setting [Disallowed Codecs] to “all” and [Allowed Codecs] to “alaw&ulaw&g729” at the extension level to test and the phone worked perfectly after that.

To apply the settings globally, they suggested I edit the endpoint manager basefile directly and modify the codec section by deleting all unused codec. Sample of their recommended configuration below.

Although it was a frustrating process, I’m happy to report that both phones work perfectly now! Cheers to Sangoma for providing top notch support. I would have never figured this one out.

  <codecs>
    <codec id="PCMU" priority="255" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
    <codec id="PCMA" priority="13" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
    <codec id="G722" priority="11" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
    <codec id="G729" priority="4" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
  </codecs>

Although the solution given is definitely best practice (I’d also drop g.729, unless there is a very good reason to keep it), a contributory factor here can be firewall rules. The second and subsequent fragments don’t contain port numbers, so can get dropped by port number filters. It is possible to configure the Linux firewall to accept all second and subsequent fragments.

Using TCP will also avoid this problem.

1 Like

Not sure why, but I tried TCP and TLS and still observed the same behavior. Reducing the number of codecs fixed the Sangoma P320, Digium D65, and a few old Polycom speakerphones (IP 7000). On the IP 7000, it only failed on a 2nd call attempt so no one ever noticed.