Scenario:
FreeSwitch acts as a simple SBC, connecting internal SIP hosts to external services (via the internet). The external service receives the call request and forwards it. Upon answer, it sends a 200 OK back to FreeSWITCH with updated RTP details (new IP/port in SDP). However, FreeSWITCH does not switch the RTP stream to the new destination—it keeps sending media to the external service’s IP.
Flow:
1. Internal host sends call to FreeSWITCH.
2. FreeSWITCH routes the call to the external service.
3. External service forwards the call to the carrier and waits for answer.
4. When the call is answered, the external service sends a 200 OK to FreeSWITCH with the carrier’s media IP in the SDP.
5. FreeSWITCH should then send RTP packets to this new IP but fails to do so.
Observations:
- The external service and carrier work correctly (validated using Asterisk as a replacement for FreeSWITCH).
- Tested multiple settings: external profile, gateway configurations, and dialplan—none resolved the issue.
Question:
Has anyone successfully implemented this scenario? Any suggestions for forcing FreeSWITCH to honor the SDP’s RTP update in the 200 OK?
Environment:
- LXC + Debian 12
- FreeSWITCH v1.10.12-release-10222002881
Thanks in advance!
Fernando Moreira