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

3400 North Ashton Blvd, Suite 470

Lehi, Utah 84043

www.kombea.com

 

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:
  * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users