[asterisk-users] RTP address learning and timing problem

David Cunningham dcunningham at voisonics.com
Wed Feb 22 17:13:08 CST 2023


Hello,

We have a system that interoperates with an external service, so that the
basic call flow is:

PSTN origination -> Asterisk A -> External service -> Asterisk B

Initially the SDP from the external service tells the two Asterisks to send
RTP directly to each other. Part way through the call the external service
sends re-INVITEs both Asterisks to change the address for audio to itself,
but this fails to work intermittently. The problem seems to be one of
timing.

If there's no RTP between the two re-INVITEs then it works fine, and both
Asterisks send future RTP to the external service as instructed.

The problem is if RTP is transmitted/received in the fraction of the second
between the two re-INVITEs. If Asterisk A receives the re-INVITE first, and
then receives RTP from Asterisk B (which hasn't yet received its
re-INVITE), then it re-learns the media address of Asterisk B and sends
audio there instead of the new address. Asterisk B gets the second
re-INVITE with the new media address, but soon re-learns the media address
of Asterisk A because it's getting RTP from it.

Note we have "canreinvite = no" in sip.conf, but I don't think that's
relevant to the problem.

Can anyone suggest how to prevent this problem? Is it possible to turn off
learning the media address per call or per peer?

Thanks for your help.

-- 
David Cunningham, Voisonics Limited
http://voisonics.com/
USA: +1 213 221 1092
New Zealand: +64 (0)28 2558 3782
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20230223/b77b7173/attachment.html>


More information about the asterisk-users mailing list