On (01.10.03 22:05), Jan Janak wrote:
Hello,
are you sure that the script (find-voicemail.pl) returns any URIs when
executed ? The error message means that no branches have been added.
I've found a (plain ugly) workaround to the problem.
It seems to me that in failure_route(), a call to exec_dset()
_does_ replace the destination set,
but does _not_ reset the branches status values.
Example:
destination set before exec_dset() in failure_route[]:
* sip:user@ip (SER internal branch status: 487)
destination set after exec_dset():
* sip:voicemailxxx@ip (SER internal branch status: still 487?)
So, it seems to me that the status value is still set to the old value, and
therefore that "new" branch is not being considered for relaying anymore, even
if it has a new destination.
So, my workaround (which obviously works only when the user has
registered exactly one location) is to return a dummy uri as first
destination, and the voicemail uri as the second one, like:
After exec_dset:
* sip:dummy@nowhere (status: 487)
* sip:vvoicemailxxx@ip (status: -)
which seems to do it as a workaround right now. I don't expect that to
be the final solution, imho the final solution would be to reset status
values of _all_ branches if exec_dset is being called from within a
failure route.
Another option would be to modify exec_dset's behaviour to not replace
but rather extend the destination set if called from within a failure_route().
Can anyone comment if modifying exec_dset() to reset branch status
values is the way to go [isn't the fact that it does _not_ happen
probably a bug?] ?
comments?
cheers
axelm