On 09/02/2011 03:52 PM, caio wrote:
Hello,
Hello,
The documentation of carrierroute says "If flags
and mask are not
zero, and no match to the message flags is possible, no routing will
be done." Then is there any route entry which can act as default gw
(like an always-match entry)?
From what I see in the code and documentation, no.
For example this 'carrierroute' table:
+---------+--------+-------------+-------+------+------+
| carrier | domain | scan_prefix | flags | mask |
+---------+--------+-------------+-------+------+------+
1 | 1 | 1 | 156 | 500 | 0 |
2 | 1 | 1 | | 0 | 0 |
3 | 1 | 2 | | 0 | 0 |
+---------+--------+-------------+-------+------+-
Here if ruri is 156xx, and there is no flag set, then the cr module
does not find a match because of the non-zero value in the flag column
(entry 1).
But I want to route this call via carrier1 domain1 and scan_prefix
empty-value entry (entry 2).
It seems that you can't select route 2, but you can select rule 3. For
example
if(!cr_route("default", "1", "$rU", "$rU",
"call_id")){
if(!cr_route("default", "2", "$rU", "$rU",
"call_id")) #here rule 3
would be selected because domain is 2, not 1
send_reply("403", "Not allowed");
}
So you can have a special domain for each carrier that has no flags set
and just acts like a catch all construct. Performance should not be
impacted.
Hope this helps.
Marius
How can I set a default route entry here? Is possible
with cr? Now I
only find it possible via a pstn.def_gw_ip variable.
Thank you,
Claudio
--
Zbihlei Marius
Head of
Linux Development Services Romania
1&1 Internet Development srl Tel KA: 754-9512
Str Mircea Eliade 18 Tel RO: +40-31-223-9512
Sect 1, Bucuresti mailto: marius.zbihlei(a)1and1.ro
71295, Romania