We have a problem with a SIP doorbell device which sends media one way only, and NAT at the receiving device.
When the doorbell button is pressed
it makes a call to a configured destination. Since the doorbell only sends
and doesn't receive it sends the INVITE with sendonly in the SDP, and
the destination then replies with a 200 OK with recvonly in the SDP. The problem is that the destination is behind NAT, and its reply
contains a private network IP in the SDP.
Normally Asterisk when nat=yes
works around that by adjusting the destination for RTP to be the
address it actually receives audio from, however because this device is
recvonly Asterisk never receives audio from it. This means Asterisk
keeps trying to send the doorbell's RTP to the private network IP which of course
fails, and the destination never gets the RTP from the doorbell.
We haven't found a solution in Asterisk to this, so are now looking to Kamailio which acts as a load-balancing proxy in front of Asterisk for one. For example, maybe we could use fix_nated_sdp, but only on 200 OK's with recvonly.
Has anyone else encountered this, and are there any recommended solutions?
Thank you in advance!