[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openser-users
Subject:    Re: [SR-Users] How to access additional xavp's
From:       Alex Hermann <alex () speakup ! nl>
Date:       2010-12-24 11:27:41
Message-ID: 201012241227.42104.alex () speakup ! nl
[Download RAW message or body]

On Friday 24 December 2010, Daniel-Constantin Mierla wrote:
> On 12/21/10 2:44 PM, Alex Hermann wrote:
> > I'm currently toying with xavp's and have some trouble accessing the
> > values. I want to have access to the xavp that isn't the last added
> > one. From the wiki page on http://sip-router.org/wiki/devel/xavp I got
> > the impression that indices are supported, but that doesn't seem to
> > work.
> > 
> > In the following fragment i want access to the values 1A&  1B, how to
> > do that?
> > 
> > 	$xavp(test=>a) = "1A";
> > 	$xavp(test[0]=>b) = "1B";
> > 	$xavp(test=>a) = "2A";
> > 	$xavp(test[0]=>b) = "2B";
> 
> Yes, indexes are supported, functionality should be: when you do not use
> an index, then you just stack a new value. When you use indexes, you
> overwrite.
> 
> In this case you have to use indexes after a and be, like
> $xavp(test=>a[0]) a.s.o.
This also doesn't work, see below and the wiki page says the index should be on the \
avpname... Can you explain what the index on the avpname does and  what the index on \
the subfield does, because i thought i understood, but it doesn't seem to work.

What i want to accomplish is to set an xavp (test) multiple times with multiple \
subfields (a & b) so that when i do an pv_unset($xavp(test)) i get the  next set of \
subfields (to be used for a serial forking scenario later on). This already works. \
Now i want to have random access to the xavp, using an  index to get to the right set \
of subfields. ie if i query $xavp(test[0]=>a) i get 2A, $xavp(test[1]=>b) should give \
1B.

If i get this working i'll post an interesting patch to sqlops soon :)


I did some more testing and think there is a off-by-one bug somewhere:

	$xavp(test=>a) = "1A";
	$xavp(test[0]=>b) = "1B";
	$xavp(test=>a) = "2A";
	$xavp(test[0]=>b) = "2B";
	$xavp(test[1]=>a) = "3A";
	$xavp(test[1]=>b) = "3B";

	xlog("Index on subavp");
	xlog("0: $xavp(test)");
	xlog("0a: $xavp(test=>a[0])");
	xlog("0b: $xavp(test=>b[0])");
	xlog("1: $xavp(test)");
	xlog("1a: $xavp(test=>a[1])");
	xlog("1b: $xavp(test=>b[1])");
	xlog("2: $xavp(test)");
	xlog("2a: $xavp(test=>a[2])");
	xlog("2b: $xavp(test=>b[2])");

	xlog("Index on avpname");
	xlog("0: $xavp(test[0])");
	xlog("0a: $xavp(test[0]=>a)");
	xlog("0b: $xavp(test[0]=>b)");
	xlog("1: $xavp(test[1])");
	xlog("1a: $xavp(test[1]=>a)");
	xlog("1b: $xavp(test[1]=>b)");
	xlog("2: $xavp(test[2])");
	xlog("2a: $xavp(test[2]=>a)");
	xlog("2b: $xavp(test[2]=>b)");


Results in:

Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: Index on subavp
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 0: <<xavp:0xb3a627c4>>
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 0a: 2A
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 0b: 2B
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 1: <<xavp:0xb3a627c4>>
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 1a: <null>
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 1b: <null>
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 2: <<xavp:0xb3a627c4>>
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 2a: <null>
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 2b: <null>
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: Index on avpname
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 0: <<xavp:0xb3a627c4>>
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 0a: 2A
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 0b: 2B
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 1: <<xavp:0xb3a6286c>>
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 1a: 1A
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 1b: 1B
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 2: <null>
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 2a: <null>
Dec 24 12:07:40 veyron wsproxy1[13032]: ERROR: <script>: 2b: <null>
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:470]: +++++ XAVP list: \
                0xb3a62770
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: test
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:474]:      XAVP id: \
                2063405720
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 6
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:496]:      XAVP value: \
                <xavp:0xb3a627c4>
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:470]: +++++ XAVP list: \
                0xb3a627c4
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: b
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:474]:      XAVP id: 110
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:484]:      XAVP value: \
                2B
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: a
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:474]:      XAVP id: 109
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:484]:      XAVP value: \
                2A
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:505]: ----- XAVP list
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: test
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:474]:      XAVP id: \
                2063405720
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 6
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:496]:      XAVP value: \
                <xavp:0xb3a6286c>
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:470]: +++++ XAVP list: \
                0xb3a6286c
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: b
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:474]:      XAVP id: 110
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:484]:      XAVP value: \
                3B
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: a
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:474]:      XAVP id: 109
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:484]:      XAVP value: \
                3A
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: b
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:474]:      XAVP id: 110
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:484]:      XAVP value: \
                1B
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: a
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:474]:      XAVP id: 109
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:484]:      XAVP value: \
                1A
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:505]: ----- XAVP list
Dec 24 12:07:40 veyron wsproxy1[13032]: INFO: <core> [xavp.c:505]: ----- XAVP list


Notice that the index on the subfield doesn't return the proper values, but that the \
index on the avpname now returns 1A, 1B, 2A & 2B (still missing 3  thugh).


If i remove the setting of test[1]:
	$xavp(test=>a) = "1A";
	$xavp(test[0]=>b) = "1B";
	$xavp(test=>a) = "2A";
	$xavp(test[0]=>b) = "2B";


I get 
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: Index on subavp
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 0: <<xavp:0xb3aa77c4>>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 0a: 2A
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 0b: 2B
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 1: <<xavp:0xb3aa77c4>>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 1a: <null>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 1b: <null>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 2: <<xavp:0xb3aa77c4>>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 2a: <null>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 2b: <null>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: Index on avpname
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 0: <<xavp:0xb3aa77c4>>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 0a: 2A
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 0b: 2B
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 1: <<xavp:0xb3aa76c8>>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 1a: <null>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 1b: <null>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 2: <null>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 2a: <null>
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: 2b: <null>
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:470]: +++++ XAVP list: \
                0xb3aa7770
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: test
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:474]:      XAVP id: \
                2063405720
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 6
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:496]:      XAVP value: \
                <xavp:0xb3aa77c4>
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:470]: +++++ XAVP list: \
                0xb3aa77c4
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: b
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:474]:      XAVP id: 110
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:484]:      XAVP value: \
                2B
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: a
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:474]:      XAVP id: 109
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:484]:      XAVP value: \
                2A
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:505]: ----- XAVP list
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: test
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:474]:      XAVP id: \
                2063405720
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 6
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:496]:      XAVP value: \
                <xavp:0xb3aa76c8>
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:470]: +++++ XAVP list: \
                0xb3aa76c8
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: b
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:474]:      XAVP id: 110
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:484]:      XAVP value: \
                1B
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: a
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:474]:      XAVP id: 109
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:484]:      XAVP value: \
                1A
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:505]: ----- XAVP list
Dec 24 12:08:43 veyron wsproxy1[13835]: INFO: <core> [xavp.c:505]: ----- XAVP list
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: Authorization processing.
Dec 24 12:08:43 veyron wsproxy1[13835]: ERROR: <script>: Unauthorized (-5) - No \
                credentials.  (UA: Twinkle/1.4.2)
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: Ts:1293188923  TS:1293188923 \
                request
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: [87.208.184.242:5066] \
Request. INVITE <sip:31887732510@speakup.nl> =>  <sip:4671900000@speakup.nl>  \
                cid:<jiqumpgknwbpxsn@waxy.wenlex.nl>  len:1130
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: Index on subavp
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 0: <<xavp:0xb3aa75cc>>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 0a: 2A
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 0b: 2B
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 1: <<xavp:0xb3aa75cc>>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 1a: <null>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 1b: <null>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 2: <<xavp:0xb3aa75cc>>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 2a: <null>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 2b: <null>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: Index on avpname
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 0: <<xavp:0xb3aa75cc>>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 0a: 2A
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 0b: 2B
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 1: <<xavp:0xb3aa7770>>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 1a: <null>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 1b: <null>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 2: <null>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 2a: <null>
Dec 24 12:08:43 veyron wsproxy1[13839]: ERROR: <script>: 2b: <null>
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:470]: +++++ XAVP list: \
                0xb3aa77c4
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: test
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:474]:      XAVP id: \
                2063405720
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 6
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:496]:      XAVP value: \
                <xavp:0xb3aa75cc>
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:470]: +++++ XAVP list: \
                0xb3aa75cc
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: b
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:474]:      XAVP id: 110
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:484]:      XAVP value: \
                2B
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: a
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:474]:      XAVP id: 109
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:484]:      XAVP value: \
                2A
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:505]: ----- XAVP list
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: test
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:474]:      XAVP id: \
                2063405720
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 6
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:496]:      XAVP value: \
                <xavp:0xb3aa7770>
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:470]: +++++ XAVP list: \
                0xb3aa7770
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: b
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:474]:      XAVP id: 110
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:484]:      XAVP value: \
                1B
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:473]:      *** XAVP \
                name: a
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:474]:      XAVP id: 109
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:475]:      XAVP value \
                type: 2
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:484]:      XAVP value: \
                1A
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:505]: ----- XAVP list
Dec 24 12:08:43 veyron wsproxy1[13839]: INFO: <core> [xavp.c:505]: ----- XAVP list


Where have 1A and 1B gone?

-- 
Alex Hermann


_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic