[SR-Users] Kamailio as front proxy for multiple sip servers

Eliphas Levy Theodoro eliphas at gmail.com
Thu May 6 20:41:19 CEST 2021


As I have got 4 different answers (thanks!) I will paste them all down there.

Em qua., 5 de mai. de 2021 às 18:44, Eliphas Levy Theodoro
<eliphas at gmail.com> escreveu:
>
> I am trying to config one kamailio as reverse proxy for a bunch of internal (no internet address) separate asterisk sip
> instances (per domain). The kamailio server would be the only with the valid IP address, so would use rtpengine to
> force to be in the media path.
>
> Like this scenario: https://opensips.org/pipermail/users/2020-August/043610.html
>
> I have used as starting point this very basic config:
> https://blog.voipxswitch.com/2015/03/27/kamailio-basic-sip-proxy-all-requests-setup/
>
> Basically just added rtpproxy support, and voilà, inter-SIP is working, media always passing into the proxy.
>
> The problem: I would have WebRTC phones connecting too. I tried setting WSS up in kamailio, and asterisk (pjsip)
> wouldn't know how to send the message to the proxy: on register it has trasnport=wss in the contact: header, looks
> like it is confusing the asterisk.
>
> So, I resort for the wisdom of the list :) What would be the good-best-path to take here, hack the header, or put the
> webphones registering directly on the asterisks (with a nginx reverse proxy maybe)?

[..]

Daniel-Constantin Mierla miconda at gmail.com por  lists.kamailio.org
06:26 (há 8 horas)
>
> if both endpoints can do webrtc srtp, then it works with rtpproxy to do srtp packet forwarding for nat traversal or networks bridging.

Yes, when a pair of softphones (ok) and softphones (not yet) exchange
signalling alright in that scenario, I will start on transcoding...


Wojtko, Daniel daniel.wojtko at rittec.de por  lists.kamailio.org 05:32
(há 8 horas)
> afaik rtpproxy doesn't support WebRTC but rtpengine does

As Daniel said above, I reckon that rtpproxy would work when
transcoding/translating sip/webrtc is not needed. But first, need to
pass signalling at least :)


Yuriy Gorlichenko ovoshlook at gmail.com por  lists.kamailio.org 05:55 (há 8 horas)
>
> If you looking for examples: you can use this one
> https://github.com/havfo/WEBRTC-to-SIP as starting point
>
> anyway, the Path mentioned by Alex is the best approach.

I tried that one but could not figure most of it out... I think I
borked it. Tried only changing $du to asterisk instead of doing
register locally and got the same results (and lots of rtpengine
chattiness) too, so I am using now a very simple config to make
finding the signalling problem easier.


> Alex Balashov abalashov at evaristesys.com por  lists.kamailio.org 03:26 (há 10 horas)
> It sounds like you are in need of the Path extension:

That was one of the modifications I have made, found out later that
the problem is PJSIP not handling Path: anyway:
https://community.asterisk.org/t/pjsip-path-module-issues/88046
https://issues.asterisk.org/jira/browse/ASTERISK-28211
So I have changed back to the older chan_sip interface, problem
solved, that one worked with Path: header. Now asterisk sends the
invite back to kamailio!

Now, the basic signalling of webphone -> kamailio -> asterisk ->
kamailio -> otherphone is stopping on kamailio itself, it is sending
the packet via UDP like asterisk was, instead of using the socket.

This is how the webphone contact looks like:
<sip:cakrtk0i at 192.0.2.210;transport=wss>
Kamailio (and asterisk before Path: worked) invites
UDP:192.0.2.210:5060, instead of the "local" websocket, and of course
never succeeding.

I tried save()ing the register locally, but I am sure I am doing it wrong.

if someone wants to look at the actual test config, I pasted it:
https://pastebin.com/RuXniDTU

Cheers,
-- 
Eliphas



More information about the sr-users mailing list