jaspreet-eltropy created an issue (kamailio/kamailio#4270)
**I’m running into an issue when using Yealink SIP phones in a setup involving
Kamailio + RTPengine + FreeSWITCH/Fusionpbx.**
**Setup Overview:**
SIP Proxy: Kamailio (handling NAT traversal, registration, and routing)
Media Relay: RTPengine (with replace-origin, replace-session-connection,
media-address, and other options)
Media Server: FreeSWITCH (handles RTP/audio and call logic)
Phone: Yealink T54w Series (but likely affects other models too)
Transport: UDP (with force_rport() and NAT detection routes in place)
Environment: Mixed NAT/public IPs with STUN/TURN enabled on WebRTC
clients(SIP.js) (where applicable)
Problem Description:
When a call is placed from/to a Yealink phone, the call signaling works fine
(INVITE, 200 OK, ACK are all seen correctly), but there is no audio or
sometimes one-way audio. This only happens with Yealink; other SIP clients
(Zoiper, Linphone, SIP.js etc.) work fine with the same setup.
>From packet captures and Kamailio logs, I can see the following:
RTPengine receives the call and processes it.
The rtpengine_manage() is called with these flags:
May 30 05:38:13 ip-10-7-37-179 /usr/local/sbin/kamailio[62354]: INFO: <script>:
BRIDGING: TRYING TO BRIDGE udp sip:5555@192.168.1.10:12561;transport=TCP
May 30 05:38:13 ip-10-7-37-179 /usr/local/sbin/kamailio[62354]: INFO: <script>:
NATMANAGE branch_id:0 ruri: sip:5555@192.168.1.10:12561;transport=TCP,
method:INVITE, status:<null>, extra_id: z9hG4bKcSBpr6vNyyepe0,
rtpengine_manage: replace-origin replace-session-connection
media-address=52.24.225.81 trust-address via-branch=extra
The Yealink phone sends SDP with correct IPs, but it doesn’t receive RTP
(confirmed via tcpdump).
Interestingly, if I bypass RTPengine + kamilio (media goes directly to/from
FreeSWITCH), audio works.
What I’ve Tried:
Enabling/disabling trust-address and via-branch options.
Using set_contact_alias() for REGISTER/NATed clients.
Ensured that Contact header aliasing is applied.
Verified that Yealink NAT settings are configured correctly.
Using force_rport() and fix_nated_register() in Kamailio.
Ensured RTP ports are open and media_address in RTPengine is set correctly.
My Questions:
Is there a known compatibility issue with Yealink phones and RTPengine in
relayed mode?
Does Yealink require specific NAT handling rules that differ from softphones?
Are there any recommended rtpengine_manage() flags or Kamailio routing
practices specifically for Yealink endpoints?
Any suggestions to debug further — SIP traces seem clean, but RTP is not
received by the Yealink.
Sample Logs (Kamailio):
NATMANAGE branch_id:0 ruri: <null>, method:INVITE, status:100, extra_id:
z9hG4bK4b1.ffbb20e21cff840bb08800b46398f55b.00, rtpengine_manage:
replace-origin replace-session-connection media-address=52.24.225.81
trust-address via-branch=extra
Yealink SIP Config:
NAT Traversal: Enabled (STUN)
Keep-Alive: 30s
UDP port: 5060
SIP registration: works
Audio: not working when RTPengine is in the path
Any help or suggestions would be greatly appreciated. Let me know if logs or
traces are needed.
```
-[ RECORD 1
]-+----------------------------------------------------------------------
id | 3259
ruid | uloc-683943f5-f3a0-1
username | 5555
domain |
contact | sip:5555@192.168.1.10:12561;transport=TCP
received | sip:182.77.49.201:12561;transport=tcp
path |
expires | 2025-05-30 05:44:04
q | -1
callid | [2_689921921@192.168.1.10](mailto:2_689921921@192.168.1.10)
cseq | 6
last_modified | 2025-05-30 05:42:04
flags | 0
cflags | 64
user_agent | Yealink SIP-T54W 96.86.0.75
socket | tcp:10.7.37.179:5060
methods | 16383
instance |
reg_id | 0
server_id | 0
connection_id | 4
keepalive | 1
partition | 28
```
Thanks in advance
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4270
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4...@github.com>
_______________________________________________
Kamailio - Development Mailing List -- sr-dev@lists.kamailio.org
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the
sender!