[Kamailio-Users] carrierroute and scan_prefix value

Juan Asencio juan at asencio.dk
Wed Jan 21 14:39:51 CET 2009


Hi Henning and list, here is a description of the configuration that I’m
trying to test with carrierroute:

I have 4 groups of customers calling to 6 different destinations. Each
customerGroup has specific rules about the destinations that are allowed
to call.
For ex.
CustomerGroup 1 can call to S-fix, S-mob, N-fix and DK-fix, but not to
N-mob or DK-mob
CustomerGroup 2 can call to N-fix, N-mob, S-fix and DK-fix, but not to
S-mob or DK-mob
CustomerGroup 3 can call to DK-fix, DK-mob, S-fix and N-fix, but not to
S-mob or N-mob
CustomerGroup 4 can call to all destinations.

So, in order to apply the different rules to each customerGroup, I could
assign to each customerGroup a Carrier on the “subscriber” table, and each
carrier would have its rules about where is allowed to call using
“scan_prefix” on the “carrierroute” table.

But then I will need to have almost the same host information for every
carrier, but with the exceptions mentioned above. My point is that it
would be a lot of information that is repeated, is this really necessary?

It is anyway to avoid repeating all this rewrite_host and scan_prefix
information? Because in this example is just 6 rewrite_hosts that I’m
calling again and again on the different carriers, but in my
implementation it would be a lot more of Interconnect companies that I
need to add. Also, the same scan_prefix, would be called again for each
carrier.

As well, I see that I could put all hosts under 1 domain, but then what it
is the point of having different domains?

Am I trying to do with “carrierroute” something that the module was not
build for?

I would appreciate your advice about this implementation.

Configuration to test

					        host1(S-fix)
                	    Interconnect1(S)<
			    Domain1		host2(S-mob)

						host3(N-fix)
CustomerGroup1 - Carrier1 - Interconnect2(N)<
		            Domain2		---- o ----

	                                        Host5(DK-fix)
			    Interconnect3(DK)<
			    Domain3		---- o ----
-------------------------------------------------------------
					        Host1(S-fix)
                	    Interconnect1(S)<
			    Domain1		---- o ----

						host3(N-fix)
CustomerGroup2 - Carrier2 - Interconnect2(N)<
		            Domain2		host4(N-mob)

	                                        Host5(DK-fix)
			    Interconnect3(DK)<
			    Domain3		---- o ----
-------------------------------------------------------------

					        Host1(S-fix)
                	    Interconnect1(S)<
			    Domain1		---- o ----

						host3(N-fix)
CustomerGroup3 - Carrier3 - Interconnect2(N)<
		            Domain2		---- o ----

	                                        Host5(DK-fix)
			    Interconnect3(DK)<
			    Domain3		Host6(DK-mob)
-------------------------------------------------------------

					        Host1(S-fix)
                	    Interconnect1(S)<
			    Domain1		Host2(S-mob)

						host3(N-fix)
CustomerGroup4 - Carrier4 - Interconnect2(N)<
		            Domain2		host4(N-mob)

	                                        Host5(DK-fix)
			    Interconnect3(DK)<
			    Domain3		Host6(S-mob)
-------------------------------------------------------------

+----+---------+--------+-------------+-------+------+---------------+
| id | carrier | domain | scan_prefix | flags | prob | rewrite_host  |
+----+---------+--------+-------------+-------+------+---------------+
| 1  |       1 |      1 | 462         |     0 |    1 | host1.s-fix   |
| 2  |       1 |      1 | 465         |     0 |    1 | host2.s-mob   |
| 3  |       1 |      2 | 472         |     0 |    1 | host3.n-fix   |
| 4  |       1 |      2 | 473         |     0 |    1 | host3.n-fix   |
| 5  |       1 |      2 | 474         |     0 |    1 | host3.n-fix   |
| 6  |       1 |      3 | 452         |     0 |    1 | host5.dk-fix  |
| 7  |       1 |      3 | 453         |     0 |    1 | host5.dk-fix  |
| 8  |       1 |      3 | 454         |     0 |    1 | host5.dk-fix  |
| 9  |       2 |      1 | 462         |     0 |    1 | host1.s-fix   |
| 10 |       2 |      2 | 472         |     0 |    1 | host3.n-fix   |
| 11 |       2 |      2 | 475         |     0 |    1 | host4.n-mob   |
| 12 |       2 |      3 | 452         |     0 |    1 | host5.dk-fix  |
| 13 |       3 |      1 | 462         |     0 |    1 | host1.s-fix   |
+----+---------+--------+-------------+-------+------+---------------+

and so on...

Cheers,

Juan.-


> On Monday 19 January 2009, Juan Asencio wrote:
>> Is it possible to choose different domains using the parameter
>> "scan_prefix" on the "carrierroute" table?
>>
>> For example: 1 have one carrier with two different domains pointing each
>> one of them to a different host.
>>
>> If the user makes a call to a number starting with 234 the call goes to
>> domain 1 or if the user call to a number 567 the call goes to domain 2.
>>
>> I have been trying with the example 1.45. Configuration example -
>> Routing
>> to user tree. But since I specify a domain on this part of the code:
>>
>> # just an example domain
>> 	$avp(s:domain)="start";
>>
>> The call only goes through that domain "start" when it matches the
>> "scan_prefix". If the "scan_prefix" doesn't match it would keep trying.
>> But it doesn't try the other domain.
>>
>> How can I achieve that, if is possible at all?
>
> Hi Juan,
>
> i'm not sure if i completely understand your question. You've one carrier
> with
> several domains, each of them pointing to different hosts.
>
> carrier default, domains: 0, 1
> 0 -> host1
> 1 -> host2
>
> '234' -> 1 -> host1, '567' -> 2 -> host2
>
> This can be achieved with only one domain.
>
> default: 0
> 0 '234' -> host1
> 0 '567' -> host2
>
> Or do you've some more requirements that needs a second domain?
>
> Cheers,
>
> Henning
>






More information about the sr-users mailing list