The problem seems to that the kamailio is trying to route it over UDP port using WSS transport, which will never work.
You are creating a transport bridge (UDP <-> WSS i.e. stateless transport <-> stateful transport) as well media bridge (RTP <-> SRTP), so it is going to be tricky. I strongly discourage it since things get messy for sequential requests. But you can try the following,
Here are some PATH module parameters and functions, you will need to setup.
1. You will need to enable "use_received" parameter to ensure connection tracking. 2. It seems you may have enabled "received_format", so you make sure you do NAT detection and use "handle_ruri_alias" for initial requests. 3. You must also enabled "enable_r2", but with caution, since both ends (i.e. UAC and UAS) can be using same kamailio (proxy) socket for in/out. 4. Make sure to use "add_path_received" instead of "add_path". 5. If using OUTBOUND module then make sure it is loaded BEFORE the PATH module.
Thank you.
-- Muhammad Shahzad Shafi Burraq Technologies Tel: +49 176 99 83 10 85
On Sat, Jun 26, 2021 at 12:47 AM Peter Manley peter.manley@kombea.com wrote:
Hello,
I’m working on building an RTP Proxy which will allow both regular SIP to SIP transactions and WebRTC to SIP transactions to an Asterisk Server.
SIP UAC < ---UDP/SIP --- > Kamailio/RTPEngine Proxy < ---UDP/SIP----- > Asterisk Server
AND
WebRTC UAC < ---WSS--- > Kamailio/RTPEngine Proxy < ---UDP/SIP----- > Asterisk Server
The Kamailio/RTPEngine Proxy is stateless (does not use the tm or registerer modules), and uses the Path module to replace the Route header with a Path header.
It works grep for SIP/UDP to SIP/UDP transactions.
HOWEVER… It only partially works for WSS to SIP/UDP transactions. The REGISTER/401(Unauthorized), REGISTER/200(OK) transaction works well.
When the Asterisk server sends a SIP Options message, I get the following error:
Jun 25 15:47:03 VRTPENGINE kamailio[4953]: INFO: <script>: => OPTIONS < sip:l4umfumh@192.0.2.97;transport=ws;alias=209.141.117.212~59751~6 -> <null> (IP:172.16.0.48:sp)
Jun 25 15:47:03 VRTPENGINE kamailio[4953]: WARNING: <core> [core/msg_translator.c:2815]: via_builder(): TCP/TLS connection (id: 0) for WebSocket could not be found
Jun 25 15:47:03 VRTPENGINE kamailio[4953]: ERROR: <core> [core/msg_translator.c:2003]: build_req_buf_from_sip_req(): could not create Via header
Jun 25 15:47:03 VRTPENGINE kamailio[4953]: ERROR: <core> [core/forward.c:550]: forward_request(): building failed
Jun 25 15:47:03 VRTPENGINE kamailio[4953]: WARNING: <core> [core/receive.c:425]: receive_msg(): error while trying script
It appears that the WebSocket corresponding to the WSS leg cannot be located when the request is initiated from the Asterisk Server.
Any thoughts on how I can get this to work in the other direction (Asterisk to Kamailio)? I’ve been looking at the WebRTC to SIP Client and Server (https://github.com/havfo/WEBRTC-to-SIP), but that doesn’t quite do what I want it to do (i.e. it appears to act as a registrar server and doesn’t forward REGISTER requests on to another registrar).
Thanks and regards,
*Peter H. Manley, Ph.D.*
Chief Software Architect
KomBea Corporation
Office:+1.801.610.5808
Mobile +1.801.243.7773
Kamailio - Users Mailing List - Non Commercial Discussions
- sr-users@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender! Edit mailing list options or unsubscribe: