How can I set the t_relay() INVITE timeout in the lcr module?
Setting fr_inv_timer and fr_inv_timer_next with modparam seems to have no effect. What's the significance of fr_inv_timer_avp? Do I need to set that instead? And just what is an 'rpid'??? I can't find this documented anywhere.
Thanks
I need to add some functions in my ser.cfg for nat
support.
I use my open(ser) as outbound proxy with two
interfaces ppp0 and eth0.
sip agents send requests to eth0.
I want my packets passing through the register and
invite blocks by fixing contact with a public ip.
All packets from private network must be sent to eth0.
Any suggestions
Bob
Accédez au courrier électronique de La Poste : www.laposte.net ;
3615 LAPOSTENET (0,34/mn) ; tél : 08 92 68 13 50 (0,34/mn)
Hi,
Is there a way (from the script) to write a URI list from a SIP header
(like the ones in Route or Record-Route headers) into one or more
AVPs?
Thanks in advance!
JF
So, will the lcr module let me timeout a gateway, and try another if it's unavailable, as someone else suggested? As soon as I call t_relay(), I hit the same problem.... it never times out and tries to reach the first gateway forever.
-----Original Message-----
From: Daniel-Constantin Mierla [mailto:daniel@voice-system.ro]
Sent: Fri 11/25/2005 2:56 AM
To: Douglas Garstang
Cc: users(a)openser.org
Subject: Re: [Users] Dispatcher module - Does it actually work?
On 11/24/05 22:42, Douglas Garstang wrote:
> Hashing over call-id may work to some degree, and I'll investigate it more, but hashing over the From: means that the same caller will always get the same Asterisk box, and your redundancy goes down the toilet.
>
The redundancy you talk about is only in your mind. I never said that
dispatcher supports redundancy. Please read carefully the messages and
have an adequate language.
Besides that, the topic was not about the redundancy, but about traffic
dispatching. To get the right answer put the proper question.
As you said, "The request URI from the phones is always going to be the
same." I suggested to use either call-id or from uri hash algorithm.
Yes, for same From uri the destination will be the same, and also for
same call-id the destination will be the same. Moreover, for different
values, the destination can be the same, since there is hash computation
and some results will overlap.
Cheers,
Daniel
>
> Actually I guess it's down the toilet anyway. The bottom line seems to be that it doesn't matter whether you use the dispatcher or SRV records to distribute load, OpenSER will never try to connect to anything else on failure and at least for us, that makes it use in a production system, not an option.
>
>
>
> -----Original Message-----
> From: Daniel-Constantin Mierla [mailto:daniel@voice-system.ro]
> Sent: Thu 11/24/2005 12:19 PM
> To: Douglas Garstang
> Cc: users(a)openser.org
> Subject: Re: [Users] Dispatcher module - Does it actually work?
>
>
>
> On 11/24/05 19:53, Douglas Garstang wrote:
> > The request URI from the phones is always going to be the same. Doesn't that mean that OpenSER will always just use the same Asterisk box then?
> if you do hash over r-uri, then yes, all messages will go to same
> destination.
> > I'm trying to round-robin as evenly (as possible) and distribute call load amonst multiple Asterisk systems.
> >
> In this case hash over call-id or from is more indicated.
>
> Cheers,
> Daniel
>
> > -----Original Message-----
> > From: Daniel-Constantin Mierla [mailto:daniel@voice-system.ro]
> > Sent: Thu 11/24/2005 10:25 AM
> > To: Douglas Garstang
> > Cc: users(a)openser.org
> > Subject: Re: [Users] Dispatcher module - Does it actually work?
> >
> >
> >
> > On 11/24/05 01:37, Douglas Garstang wrote:
> > > After many many fruitless hours spent on trying to get OpenSER to work with DNS SRV records (I made a post to the group earlier today on this), I stumbled across the dispatcher module, and have been trying to get it to work instead.
> > >
> > > The module was designed to load balance, right? It doesn't seem to have been designed very well, unless I am missing something.
> > >
> > If you read carefully the documentation of the module, you will see the
> > scope and limitations of the module:
> > http://openser.org/docs/modules/1.0.x/dispatcher.html
> >
> > If something is not according to the documentation, then it is a bug.
> > Stateless means that the module does not keep any state, so it cannot
> > select the same destination using algorithm 4 (round robin) after a
> > authentication request, choose another algorithm (hashing r-uri,
> > callid). Also, being stateless, it cannot try the next address if the
> > selected destination fails.
> >
> > The module was not designed to be load balancer, but a request
> > dispatcher. Load balancing is something more complex.
> >
> > In the last weeks I added destination failover support in dispatcher
> > (serial forking within the destination set, with auto-detection of
> > failed destinations). It will be on cvs very soon, I have to update the
> > documentation and do some testing.
> >
> > Cheers,
> > Daniel
> >
> > >
> > > If you set the algorithm with ds_select_dst() to 4, round robin, it doesn't work! Here's what happens.
> > >
> > > 1. UA sends INVITE to OpenSER
> > > 2. OpenSER forwards INVITE to the first proxy in the dispatcher list.
> > > 3. Proxy sends back a digest challenge for authorisation credentials to OpenSER.
> > > 4. OpenSER forwards the challenge back to the UA.
> > > 5. The UA sends the INVITE again to OpenSER, this time with the requested credentials.
> > > 6. OpenSER forwards the new INVITE to the _OTHER_ proxy in the dispatcher list.
> > >
> > > This is where things start to fall over. This proxy has not issued a challenge request yet so it _again_ sends a digest challenge back to the UA through OpenSER. The UA does not like to receive a second challenge to what it's already sent and gives up.
> > >
> > > If you set the algorithm to something else besides 4, say 0, to hash to the callid, then OpenSER tries to use an arbitrary proxy from the list. Given that it's hashed against the callid it doesn't switch proxies like it does above in mid call. However, if that proxy is down, it _NEVER_ tries another proxy, thus rending the dispatcher module as a load balancer completely useless.
> > >
> > > If this module was designed to be a load balancer, how have people gotten it to work? I find it incredibly hard to believe that the dispatcher module was not designed with the above scenarios in mind. I'm so frustrated because what I am trying to do is so simple (had issues with SRV behaving in a similar way). Send requests from OpenSER to another proxy/pbx in a redundant and load balanced fashion. If a system is down, simply go to the next! It's that simple!
> > >
> > > Btw, the 'proxy' that OpenSER is forwarding too is Asterisk (yeah ok so it isn't a proxy) and the UA's are Polycom 301/501/601 phones.
> > >
> > > Help very much appreciated!
> > >
> > > Thanks.
> > >
> > >
> > >
> > > ------------------------------------------------------------------------
> > >
> > > _______________________________________________
> > > Users mailing list
> > > Users(a)openser.org
> > > http://openser.org/cgi-bin/mailman/listinfo/users
> > >
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Users mailing list
> > Users(a)openser.org
> > http://openser.org/cgi-bin/mailman/listinfo/users
> >
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users(a)openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
>
Hello,
I've been using Asus WL-500G as NAT/Router device for my testing
purposes with SER.
I implemented MyStun server which is running on the same OS as SER on
192.168.1.50.
I also have two IP addresses on the server which are 192.168.1.50-51 for
MyStun functionality.
When I start MyStun it listens on default ports 3478 an 3479.
UA behind the NAT is Xlite so the STUN implemetation of this softphone
should be ok.
Question 1:
Where should I be able to determine/see what type of NAT I'm behind with
X-lite?
I'm trying to combine NAThelper/RTPproxy with STUN and use STUN if there
is no symmetric NAT.
Question 2: Could you advice me what tools I should use for debugging
functionality of STUN, please?
Hopefully, everything is clear.
Ladislav
Correct me if I am wrong here, but the sketchy docs at openser.org seem to imply that I am going to need to have multiple rows in my mysql table 'gw' for every single user who places calls? Is that correct? Is there some way to trim this down?
-----Original Message-----
From: Andreas Granig [mailto:andreas.granig@inode.info]
Sent: Thu 11/24/2005 5:24 PM
To: Douglas Garstang
Cc: users(a)openser.org
Subject: Re: [Users] Dispatcher module - Does it actually work?
Douglas Garstang wrote:
> Andy, no. No one has suggested using the lcr module, and I wasn't even aware of it until you mentioned it just now. I took a look at the module docs, they're way beyond my current understanding. it. I'll have to do some reading. Does it allow you to try another route when one is not responding?
Yes. You have to define a set of destinations which you can load in the
script using load_gws(), and every call to next_gw() sets the ip/port of
another destination as ruri, until no more destinations are available.
You can find an example here:
http://linguin.org/ser/lcr_cap/lcr_config_example.txt
It's for a lcr-version which I have extended a little to be able to
group destinations according to their capabilities
(http://linguin.org/ser.php#lcr-cap), but you should at least get the
idea on how to do it with the vanilla lcr module (just leave out the
argument in load_gws()).
Andy
Hello Patrick,
The issue can be fixed by the attached patch (it will be also fixed in
the
next release).
Alternatively use python2.3 or newer which works even with the existing
code.
Index: dispatcher.py
===================================================================
RCS file: /home/cvs/cvsroot/mediaproxy/modules/dispatcher.py,v
retrieving revision 1.28
diff -u -r1.28 dispatcher.py
--- dispatcher.py 25 Jul 2005 11:18:17 -0000 1.28
+++ dispatcher.py 25 Nov 2005 05:03:47 -0000
@@ -579,7 +579,7 @@
else:
self.address = MediaProxyAddress(url) # implement this
def __setattr__(self, name, value):
- readonly = ('address')
+ readonly = ('address',)
if name in readonly and self.__dict__.has_key(name):
raise AttributeError, "'%s' is a readonly attribute" % name
self.__dict__[name] = value
>>>>>>>>>>
Patrick Jordan-Smith pjs at quicksilver.co.nz
Fri Nov 18 02:46:18 CET 2005
Hi,
When I have a outgoing INVITE my mediaproxy crashes :(
See the following:
Nov 18 14:29:00 sip1 proxydispatcher[23201]: command request
b566cc84-cd467d92-da2c547b at 202.89.130.40 202.89.130.40:2252:audio
202.89.130.40 sip.qsi.net.nz remote eth0.1 remote
PolycomSoundPointIP-SPIP_500-UA/1.5.2.0054
info=from:728728 at sip.qsi.net.nz,to:8378 at
sip.qsi.net.nz,fromtag:60DCA320-5F6D23C9,totag:
Nov 18 14:29:00 sip1 proxydispatcher[23201]:
----------------------------------------
Nov 18 14:29:00 sip1 proxydispatcher[23201]: Exception happened during
processing of request from
Nov 18 14:29:00 sip1 proxydispatcher[23201]: Traceback (most recent call
last):
Nov 18 14:29:00 sip1 proxydispatcher[23201]: File
"/usr/lib/python2.2/SocketServer.py", line 458, in
process_request_thread
Nov 18 14:29:00 sip1 proxydispatcher[23201]:
self.finish_request(request, client_address)
Nov 18 14:29:00 sip1 proxydispatcher[23201]: File
"/usr/lib/python2.2/SocketServer.py", line 253, in finish_request
Nov 18 14:29:00 sip1 proxydispatcher[23201]:
self.RequestHandlerClass(request, client_address, self)
Hello Patrick,
The issue can be fixed by the attached patch (it will be also fixed in
the
next release).
Alternatively use python2.3 or newer which works even with the existing
code.
>>>>>>>>>>
Patrick Jordan-Smith pjs at quicksilver.co.nz
Fri Nov 18 02:46:18 CET 2005
Hi,
When I have a outgoing INVITE my mediaproxy crashes :(
See the following:
Nov 18 14:29:00 sip1 proxydispatcher[23201]: command request
b566cc84-cd467d92-da2c547b at 202.89.130.40 202.89.130.40:2252:audio
202.89.130.40 sip.qsi.net.nz remote eth0.1 remote
PolycomSoundPointIP-SPIP_500-UA/1.5.2.0054
info=from:728728 at sip.qsi.net.nz,to:8378 at
sip.qsi.net.nz,fromtag:60DCA320-5F6D23C9,totag:
Nov 18 14:29:00 sip1 proxydispatcher[23201]:
----------------------------------------
Nov 18 14:29:00 sip1 proxydispatcher[23201]: Exception happened during
processing of request from
Nov 18 14:29:00 sip1 proxydispatcher[23201]: Traceback (most recent call
last):
Nov 18 14:29:00 sip1 proxydispatcher[23201]: File
"/usr/lib/python2.2/SocketServer.py", line 458, in
process_request_thread
Nov 18 14:29:00 sip1 proxydispatcher[23201]:
self.finish_request(request, client_address)
Nov 18 14:29:00 sip1 proxydispatcher[23201]: File
"/usr/lib/python2.2/SocketServer.py", line 253, in finish_request
Nov 18 14:29:00 sip1 proxydispatcher[23201]:
self.RequestHandlerClass(request, client_address, self)