[OpenSER-Users] Carrierroute... Do I almost have it???

Douglas Garstang dougmig33 at yahoo.com
Wed Mar 26 17:41:23 CET 2008


Ovidiu,

Ok, so now it's routing but it's not selecting the carrier by matching the source IP address in the subscriber table against the IP address of the incoming INVITE. Is that even possible? 

If it's not possible, how do I have a different routing table for each OpenSER system? I was going to use my carrier as my OpenSER instance.... that would have worked... 

I have these tables...

mysql> select * from carrierroute;
+----+---------+-------------+--------+------+-------+--------------+----------------+----------------+---------+
| id | carrier | scan_prefix | domain | prob | strip | rewrite_host | rewrite_prefix | rewrite_suffix | comment |
+----+---------+-------------+--------+------+-------+--------------+----------------+----------------+---------+
|  1 |       0 |             | 1      |    1 |     0 | 200.1.1.1    |                |                | NULL    | 
|  4 |       0 |             | 2      |    1 |     0 | 200.1.1.2    |                |                | NULL    | 
|  5 |       0 |             | 3      |    1 |     0 | 200.1.1.3    |                |                | NULL    | 
|  9 |       1 |             | 1      |    1 |     0 | 100.1.1.1    |                |                | NULL    | 
| 10 |       1 |             | 2      |    1 |     0 | 100.1.1.2    |                |                | NULL    | 
| 11 |       1 |             | 3      |    1 |     0 | 100.1.1.3    |                |                | NULL    | 
+----+---------+-------------+--------+------+-------+--------------+----------------+----------------+---------+
6 rows in set (0.00 sec)

mysql> select * from route_tree;
+----+-----------+
| id | carrier   |
+----+-----------+
|  1 | Hong Kong | 
|  0 | default   | 
|  2 | San Jose  | 
+----+-----------+

mysql> select username, domain, cr_preferred_carrier from subscriber;
+----------+----------------+----------------------+
| username | domain         | cr_preferred_carrier |
+----------+----------------+----------------------+
|          | 192.168.255.53 |                    2 | 
|          | 192.168.1.240  |                    1 | 
+----------+----------------+----------------------+



----- Original Message ----
From: Ovidiu Sas <osas at voipembedded.com>
To: Douglas Garstang <dougmig33 at yahoo.com>
Cc: Henning Westerholt <henning.westerholt at 1und1.de>; users at lists.openser.org
Sent: Wednesday, March 26, 2008 6:56:15 AM
Subject: Re: [OpenSER-Users] Carrierroute... Do I almost have it???

On Wed, Mar 26, 2008 at 2:31 AM, Douglas Garstang <dougmig33 at yahoo.com> wrote:
>
> >I am using this module in production with more then 400k routes loaded
> >for 8 different providers and it is working like a charm.
> >As Henning mentioned, the interface is a little bit cumbersome but usable.
> >You can put all the carriers under the same table and prioritize the
> >gateway based on domains.  Like tis you don't need to hardcode
> >anything in the config file.
> >
> >Carrierroute was designed to deal with a big amount of routing rules
> >and it is doing an amazing job.
> >LCR was designed to deal with a limited number of routes/gateways but
> >it has a different level of flexibility and a more mature interface.
> >
> >Carrierroute is a brand new module and for sure it will improve in
> >flexibility as times go by (just like the lcr did along releases).
>
> Ovidiu (or anyone else....)
>
> I think I may almost have it..... If I treat all routes as being in the same
> carrier, I can just use cr_rewrite_uri("1","call_id"), and then
> cr_rewrite_uri("2","call_id") in failure_route[1] and
> cr_rewrite_uri("2","call_id") in failure_route[2], correct? I tested this
> and it seems to work. I guess it's up to me then to populate the
> rewrite_host column with a gateway belonging to the cheapest carrier for
> domain 1, the a gateway from the next cheapest carrier for domain 2 and so
> on. Still sound right?

finally you got it ;)


> Here's where it gets a bit tricky. We have OpenSER running in 6 different
> locations. The gateways we use will differ for each location (we always want
> to use the closest gateway belonging to a carrier). So, I figured I could
> use the 'user' functionality in carrierroute to do this. I could simply put
> the domain (IP address) in the domain column, leave the user blank (we don't
> have users... calls are forwarded from asterisk), and then associate a
> carrier in the cr_preferred_carrier column. You can see all that in my
> subscriber table below.
>
> Doesn't seem to work though. When routing a call, OpenSER complains that it
> can't find a default carrier, and then because it seems not to match the
> incoming call against an entry in the subscriber table, it can't find a
> carrier to use, and fails the call.

add a 'default' carrier into the route_tree table

> So... how would I be able to use the source IP address of the asterisk box
> that sends the calls to OpenSER in the subscriber table so that I could have
> different routing entries for each OpenSER system???
>
> Here's my db tables...
>
>
> mysql> select * from route_tree;
> +----+-----------+
> | id | carrier   |
> +----+-----------+
> |  1 | Hong Kong |
> |  0 | San Jose  |
> +----+-----------+
>
> mysql> select * from carrierroute order by carrier, scan_prefix, domain;
> +----+---------+-------------+--------+------+-------+--------------+----------------+----------------+---------+
> | id | carrier | scan_prefix | domain | prob | strip | rewrite_host |
> rewrite_prefix | rewrite_suffix | comment |
> +----+---------+-------------+--------+------+-------+--------------+----------------+----------------+---------+
> |  1 |       0 |             | 1      |    1 |     0 | 200.1.1.1    |
> |                | NULL    |
> |  4 |       0 |             | 2      |    1 |     0 | 200.1.1.2    |
> |                | NULL    |
> |  5 |       0 |             | 3      |    1 |     0 | 200.1.1.3    |
> |                | NULL    |
> |  9 |       1 |             | 1      |    1 |     0 | 100.1.1.1    |
> |                | NULL    |
> | 10 |       1 |             | 2      |    1 |     0 | 100.1.1.2    |
> |                | NULL    |
> | 11 |       1 |             | 3      |    1 |     0 | 100.1.1.3    |
> |                | NULL    |
> +----+---------+-------------+--------+------+-------+--------------+----------------+----------------+---------+
>
> mysql> select id, username, domain, cr_preferred_carrier from subscriber;
> +----+----------+----------------+----------------------+
> | id | username | domain         | cr_preferred_carrier |
> +----+----------+----------------+----------------------+
> |  1 |          | 192.168.255.53 |                    0 |
> |  2 |          | 192.168.255.54 |                    1 |
> +----+----------+----------------+----------------------+
>
>
>
>
>
>
>  ________________________________
> Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it
> now.






      ____________________________________________________________________________________
Looking for last minute shopping deals?  
Find them fast with Yahoo! Search.  http://tools.search.yahoo.com/newsearch/category.php?category=shopping
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20080326/5e7673cb/attachment.htm>


More information about the sr-users mailing list