Discussion:
[SR-Users] User definable Ring Duration before forwarding
Tim Chubb
2014-09-22 16:46:23 UTC
Permalink
Hi

I was wondering if the following scenario is possible and if it is how I would go about implementing it:

I would like to be able read from a database a list of destinations associated with a given dialled number which are tried in order of priority with each destination having a user definable ring duration before the next destination is tried.
i.e.
A Call is received from the PSTN, the number the caller dialled is looked up, it has 3 destinations attached to it, the users deskphone which is configured to ring for 10 seconds before the call is forwarded to their Mobile phone with a ring duration of 15 seconds, which if unanswered would be redirected to the main switchboard IVR.

I think im looking for the equivalent of the Asterisk Dial app, where you can specify a timeout as an argument, is this possible to do with kamailio? All examples I have seen use a global timer value, which is unsuitable for this requirement, as each user could define n failover routes each with a distinct timeout before the next route is tried.

Currently I have got as far as querying the database to retrieve the data but im a bit stumped as to how to handle the timeout variable.

Any ideas?

Tim Chubb
Corey Edwards
2014-09-23 03:00:38 UTC
Permalink
Post by Tim Chubb
Hi
I was wondering if the following scenario is possible and if it is how I
I would like to be able read from a database a list of destinations
associated with a given dialled number which are tried in order of priority
with each destination having a user definable ring duration before the next
destination is tried.
i.e.
A Call is received from the PSTN, the number the caller dialled is looked
up, it has 3 destinations attached to it, the users deskphone which is
configured to ring for 10 seconds before the call is forwarded to their
Mobile phone with a ring duration of 15 seconds, which if unanswered would
be redirected to the main switchboard IVR.
I think im looking for the equivalent of the Asterisk Dial app, where you
can specify a timeout as an argument, is this possible to do with
kamailio? All examples I have seen use a global timer value, which is
unsuitable for this requirement, as each user could define n failover
routes each with a distinct timeout before the next route is tried.
Currently I have got as far as querying the database to retrieve the data
but im a bit stumped as to how to handle the timeout variable.
Set fr_inv_timer_avp module parameter:

modparam("tm", "fr_inv_timer_avp", "$avp(my_fr_inv_timer)")

Then put your database value into the avp. Tm module will time out after
that many milliseconds and call your failure_route, where you can try the
next destination or generate an error.

http://kamailio.org/docs/modules/4.1.x/modules/tm.html#fr_inv_timer_avp

Corey

Loading...