[OpenSER-Users] kagoor voiceflow replacement

Klaus Darilion klaus.mailinglists at pernau.at
Thu Apr 17 18:31:26 CEST 2008



Jens Thiele schrieb:
> Klaus Darilion <klaus.mailinglists at pernau.at> writes:
> 
>> Gentrice's kaiser schrieb:
>>> Hi,
>>>
>>> The hard part is upper register . It means user auth information is 
>>> stored in Broadsoft instead of your mysql DB.
>> If broadsoft supports "Path" then it should be easy by forwarding the
>> REGISTER to broadsoft and adding a Path header. Further, save() (before
>> or after forwarding) for NAT pinging.
> 
> 1. Path may disclose information you do not want to forward (internal
>    network address)
> 
> 2. You probably don't want to forward arbitrary SIP packets into your
>    internal network

of course you should some message screening on the openser before 
forwarding it to the registrar.

> 
>> If Path is not supported then it is more complicated (but doable).
> 
> I would say (but please correct me ;-):
> 
> If Path is not supported by your upstream registrar, which is quite
> likely, then it is much more complicated and at the moment, depending on
> your security requirements, not doable without modifying openser code.

Well - I guess the "depending on your security requirements" is the key 
point.

>> You have to save() the original contact and the public socket of the
>> client. Further you have to rewrite the contact header before
>> forwarding, so that the URI points to openser. Further, you have to put
>> some identifier into the user part which will then be used to lookup the
>> usrloc table. I think this can be done with raw DB queries.
> 
> The problem is that you want to populate your usrloc at least only on
> successful replies to a register and that IMHO is not possible.

Wouldn't it be possible to save needed parameters during request 
processing in AVPs and during 200 response processing save the AVPs 
using raw DB queries. I think in single-domain setups it is doable.
Of course it would be nicer to modify save() to work on responses too.

> Otherwise any client in your network may populate your usrlow without
> credentials and depending on your setup just grab other users accounts.

Even if you save() during request processing and have "bad" data in the 
usrloc table account hijacking shouldn't be possible because if the 
registration fails on the registrar, the registrar wont forward incoming 
calls to openser.

> But once more: please correct me - post some example config.
> My point is: I wasted a lot of time with that and I think it is really
> bad to make people believe this is easily doable.

I didn't said "easily doable". But I remember I made such an 
outboundproxy based on openser using a rather old openser version just 
by using tons of regular expressions and massive message rewriting. Thus 
I think it is doable (but not easily)

> I ended up using asterisk for this.
> 
> Greetings
> Jens
> 
> PS: the closest match I did find is milkfish [1] which has IMHO the problem
> described above.
> http://www.milkfish.org/
> http://packages.milkfish.org/boozy/Milkfish_Sources_for_OpenWrt-SDK/OpenWrt-SDK/package/milkfish-sip/files/etc/openser/milkfish_openser.cfg

I also did take a look at milkfish some time ago and the config was 
really buggy.



regards
klaus




More information about the Users mailing list