Answered my own question . .
In function fixstringloadgws in /modules/lcr/lcr_mod.c . .
if(str2int(&s, (unsigned
int*)&model->spec.pvp.pvn.u.isname.name.n)!=0
|| model->spec.pvp.pvn.u.isname.name.n<100) {
As called by:
static cmd_export_t cmds[] = {
{"load_gws", load_gws, 0, 0, 0, REQUEST_ROUTE},
{"load_gws", load_gws_grp, 1, fixstringloadgws, 0,
REQUEST_ROUTE},
{"next_gw", next_gw, 0, 0, 0,
REQUEST_ROUTE | FAILURE_ROUTE},
{"from_gw", from_gw, 0, 0, 0,
REQUEST_ROUTE | FAILURE_ROUTE | ONREPLY_ROUTE},
{"from_gw", from_gw_grp, 1, fixup_str2int, 0,
REQUEST_ROUTE | FAILURE_ROUTE | ONREPLY_ROUTE},
{"to_gw", to_gw, 0, 0, 0,
REQUEST_ROUTE | FAILURE_ROUTE},
{"to_gw", to_gw_grp, 1, fixup_str2int, 0,
REQUEST_ROUTE | FAILURE_ROUTE},
{"load_contacts", load_contacts, 0, 0, 0,
REQUEST_ROUTE},
{"next_contacts", next_contacts, 0, 0, 0,
REQUEST_ROUTE | FAILURE_ROUTE},
{0, 0, 0, 0, 0, 0}
};
I was using values under 100, as the default value in the docs is "1". When I
set the group ids at 100 or higher, it works just fine.
Hate to answer my own questions, but thought I should so we can update the docs.
- Darren
On 5/1/08 2:48 PM, "Darren Sessions" <dsessions(a)icidirect.net> wrote:
Question . .
I'm trying to use the load_gws with a particular group id per the docs for 1.3, and am
getting the following error message when I try and start OpenSER:
May 1 20:40:05 [16853] DBG:core:fix_actions: fixing load_gws, line 487
May 1 20:40:05 [16853] ERROR:lcr:fixstringloadgws: Wrong value <2> for param
<1>!
May 1 20:40:05 [16853] ERROR:core:fix_actions: fixing failed (code=-1) at cfg line 487
May 1 20:40:05 [16853] CRITICAL:core:fix_expr: fix_actions error
May 1 20:40:05 [16853] ERROR:core:main: failed to fix configuration with err code -1
May 1 20:40:05 [16853] INFO:snmpstats:mod_destroy: The SNMPStats module got the kill
signal
May 1 20:40:05 [16853] INFO:snmpstats:mod_destroy: Shutting down the
AgentX Sub-Agent!
May 1 20:40:05 [16853] DBG:xlog:destroy: destroy module...
May 1 20:40:05 [16853] DBG:tm:tm_shutdown: tm_shutdown : start
May 1 20:40:05 [16853] DBG:tm:unlink_timer_lists: emptying DELETE list
May 1 20:40:05 [16853] DBG:tm:tm_shutdown: emptying hash table
May 1 20:40:05 [16853] DBG:tm:tm_shutdown: releasing timers
May 1 20:40:05 [16853] DBG:tm:tm_shutdown: removing semaphores
May 1 20:40:05 [16853] DBG:tm:tm_shutdown: destroying callback lists
May 1 20:40:05 [16853] DBG:tm:tm_shutdown: tm_shutdown : done
May 1 20:40:05 [16853] DBG:core:shm_mem_destroy:
May 1 20:40:05 [16853] DBG:core:shm_mem_destroy: destroying the shared memory lock
Am I missing something? Per the docs at
http://www.openser.org/docs/modules/1.3.x/lcr.html#AEN303 , I should be able to use a
particular gateway group id in that function.
My config code excerpt:
if (from_gw("1000")) {
xlog("L_ERR", "Route 14: Call originating from incoming
vendor\n");
if (!load_gws("2")) {
xlog("L_ERR", "Route 14: Error loading gateways (GW Group 2) -
M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
sl_send_reply("503", "Termination Currently Unavailable");
exit;
}
if (!next_gw()) {
xlog("L_ERR", "Route 14: No gateways available (GW Group 2) - M=$rm
RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
sl_send_reply("503", "Termination Currently Unavailable");
exit;
}
setflag(21);
t_on_failure("1");
route(10);
}
Basically, it's checking to see if the call is originating from one of the incoming
gateways in group id 1000, and if it is, I'd like to pull a gateway from group 2 and
send the call to it.
Any help would be appreciated.
Thanks,
- Darren