History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: XCF-2407
Type: New Feature New Feature
Status: In Progress In Progress
Priority: Critical Critical
Assignee: Damian Krzeminski
Reporter: Martin Steinmann
Votes: 0
Watchers: 1
Available Workflow Actions

Request Information
Operations

If you were logged in you would be able to see more operations.
sipXconfig

Provide configuration support for XECS-415: Per user gateway preferences

Created: 2008-03-30 15:31   Updated: 2008-11-24 17:05
Component/s: dial plan
Affects Version/s: 4.0
Fix Version/s: 3.11.8

Original Estimate: Unknown Remaining Estimate: 0 minutes Time Spent: 4 days
File Attachments: 1. Text File 0001-XCF-2407-add-basic-support-for-site-based-routing.patch (96 kb)
2. Text File 0001-XCF-2407.patch (93 kb)
3. XML File fallbackrules.xml (4 kb)
4. XML File userlocation.xml (0.4 kb)
5. Text File XCF-2407-try3.patch (38 kb)
6. File XCF-2407.sql (0.7 kb)

Image Attachments:

1. snapshot1.png
(159 kb)

2. snapshot2.png
(151 kb)

3. snapshot3.png
(173 kb)
Issue Links:
Composition
This issue is part of:
XCF-3042 Provide interface to configure topolo... Major Open
XECS-415 Improve dial plans with the ability t... Critical Closed
 


 Description  « Hide
In order to better support multi-branch deployments an extension of the dialplan is needed based on XECS-415. This issue is about providing configuration support for this new feature.



 All   Comments   Work Log   Change History      Sort Order:
Mircea Carasel - 2008-10-13 06:26
XCF-2407-try3.patch consists of:
-user site support on user page (add/delete user sites). A site is in fact a group (same mechanism as for add/deletegroups)
-GUI - new text field added that contains user site (an user can belong only to one site at a given time)
-gateway site support on the gateway page
-GUI - see gateways in a chosen site (a combobox with sites added) Ajax refresh mechanism for the gateway table once the user changes the site.
-To one gateway you can associate more than one site.

-mechanism for user site xml generation : sitelocn.xml (not tested)
XCF-2407.sql contains database needed changes

Remained work:
-mechanism for adding site info in dial plan xml file: fallbackrules.xml
-Tests

Martin Steinmann - 2008-10-13 09:36
Could you post screenshots? thanks

Robert Joly - 2008-10-14 08:28
Mircea,
How much does this patch line up with the site location concept that was put forward in http://thread.gmane.org/gmane.comp.voip.sipx.devel/11931/focus=11969?

If I understand the patch correctly, it seems like we are moving away from it somewhat. Please comment.

Thanks,
bob

Robert Joly - 2008-11-03 09:38
Example of a location-aware fallback rules file

Robert Joly - 2008-11-03 09:38
example of a userlocation.xml file

Robert Joly - 2008-11-03 09:40
The October 2008 sprint delivers the server part of the location-based gateway selection feature (XECS-415). The purpose of XCF-2407 is to track the management work that will go alongside the work already done on the server side to deliver this feature end-to-end. The purpose of this comment is to summarize the configuration work that needs to be done.

Much of the details about what is required of sipXconfig can be found in http://article.gmane.org/gmane.comp.voip.sipx.devel/13354 and an example fallbackrules.xml file is attached to this tracker however there is one aspect that isn't covered in the referenced article that sipXconfig needs to provide to make the feature run as expected and that is the user location database.

The user location database is an xml file generated by sipXconfig that maps a user identities to their location. This file is expected to be called "userlocation.xml" and be located in the .../var/sipxdata/sipdb/. That file contains the location information for all the users that have been configured with one. An example "user location database" file has also been attached to this tracker.

Mircea Carasel - 2008-11-12 08:15
Reply to Bob's question: 2008-10-14 08;28
The location concept was a proposal but it is not implemented in sipXconfig (and will not be, because we have groups in sipXconfig0. We are interpreting the site location as a group.
In sipXconfig the group concept is very well defined and site location fits with group architecture well

Mircea Carasel - 2008-11-12 08:17
Reply to Martin's request: screenshots
I am going to rebase the old patch and align it with the changed requirements.
Then, I will post screenshots

Mircea Carasel - 2008-11-19 11:47
The patch: 0001-XCF-2407.patch consists:

EditUser page: add new text field : Site. You can assign a user to a chosen site location.
The mechanism is just like with user groups
**Currently you cannot delete user sites (User Group screen should be changed in order to support user site deletion)

EditGateway page: new checkbox that sets a gateway as **shared** or not
A shared gateway can be used for dialing rules for any location

EditDialingRule page: New drop-down that contains all available locations and allows user to group gateways per locations: one gateway can serve many locations(site) / one location(site) can be served by many gateways
If there is no location available you can still attach gateways to a dialing rule (current behaviour is not changed!) The functionality offered by location(site) comes on top of the current functionality.
ALSO: When you have a gateway attached per a location and you remove it - you will still see it if in the drop-down --no site-- option is selected (will still be attached to the rule - only the attached gateway location will be removed)
ALSO: When you have a gateway attached to a rule but with no location and you attach it to a location it will dissapear if you select --no site-- option
ALSO: If you have a gateway attached with --no site-- option and you remove it - it will be removed from the rule

userlocation.xml DATA SET generation as described.

fallbackrules.xml CONF FILE changed as described
**PROBLEM <user></user> tag is empty - should be filled with user info

-Tests changed/created
If I run tests independently all work - but if I run precommit I get the following:

/home/mirceac/git-work/git-sipx/sipXconfig/neoconf/src/org/sipfoundry/sipxconfig/phone/phone.beans.xml]: Cannot resolve reference to bean 'coreContext' while setting bean property 'coreContext'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'coreContext' defined in file [/home/mirceac/git-work/git-sipx/sipXconfig/neoconf/src/org/sipfoundry/sipxconfig/common/common.beans.xml]: Cannot resolve reference to bean 'coreContextImpl' while setting bean property 'target'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'coreContextImpl' defined in file [/home/mirceac/git-work/git-sipx/sipXconfig/neoconf/src/org/sipfoundry/sipxconfig/common/common.beans.xml]: Cannot resolve reference to bean 'sipxReplicationContext' while setting bean property 'replicationContext'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sipxReplicationContext' defined in file
....
Error creating bean with name 'coreContext': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Class must not be null
Caused by: java.lang.IllegalArgumentException: Class must not be null
at org.springframework.util.Assert.notNull(Assert.java:113)
at org.springframework.util.ClassUtils.getAllInterfacesForClass(ClassUtils.java:682)
at org.springframework.aop.framework.ProxyFactoryBean.getSingletonInstance(ProxyFactoryBean.java:293)
at org.springframework.aop.framework.ProxyFactoryBean.getObject(ProxyFactoryBean.java:227)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectFromFactoryBean(AbstractBeanFactory.java:1191)
at org.springframework.beans.factory.support.AbstractBeanFactory.

Some spring beans cannot be created when Inegration tests (tests that require-db) are run

Please advise/review


Mircea Carasel - 2008-11-19 11:56
Snapshots with GUI changes....(for Martin)

Damian Krzeminski - 2008-11-19 12:03
I'll have a look at it.
From what I am seeing in the UI gateway location is in the wrong place (location should be assigned to the gateway not to the dial rule).

Robert Joly - 2008-11-19 13:23
I reviewed the attached screenshots and contrasted them with the managements requirements captured in http://article.gmane.org/gmane.comp.voip.sipx.devel/13354 and I would like to point out a couple of deltas:

On the User Screen
=================
- The User should have a new attribute called 'Location' - not 'Site'
- You should be allowed to enter a maximum of one value in the 'Location' field - the screenshot shows two

On the gateway Screen
==================
- The gateway needs two new attributes - the screenshot only shows one: 'Is Shared'. The one that is missing is the 'Location'. This field is similar to the one in the User page with the exception that it can accept multiple location values

On Dialplan rule Screen
=====================
The requirements called for a single parameter added to that screen and it is a checkbox that indicates whether or not that dialplan rule is subject to location-based routing. I see in the screenshot that you added pull-down menus for location and that is how you associate gateways to location but that is not how the feature is intended to work. Instead, a gateway is associated with location(s) in the Gateway screen and the diaplan rule screen continues to show a linear list of gateways. For usability purposes, when a dialplan rule is subject to location-based routing, it would be nice if the gateway table in the dialplan rule screen had two extra read-only columns; one to show a gateway's configured location(s) and another to indicate if it is shared.

Other elements missing
===================
In the thread referenced at the top of this comment, it is mentioned that similar to Users, Groups should also have a 'Location' field.

Please review the requirements outlined in http://article.gmane.org/gmane.comp.voip.sipx.devel/13354 and do not hesitate to contact me if you have any questions.

Thanks!

Mircea Carasel - 2008-11-19 15:20
Actually to an user you can assign a single location.
I put there "Tucson Alabama" just to point out that the location can have two (or more) words
I should have said : "New York " or something else. There is no place called "Tucson Alabama" anyway :)

Location is an attribute of the Gateway indeed but I didn't place it in the EditGateway page. I was thinking that when the administrator configures a dial rule, would be nice to also configure (on the fly) what gateway should be used in what location.

Since location is a Gateway attribute - I guess that indeed it is better to put this kind of configuraion in the EditGateway page.


Damian Krzeminski - 2008-11-24 17:05
User site is determined by the group to which used belongs (if user belongs to multiple group the first one is used as location).
    
Gateway site is picked by the admin on a gateway screen. Gateway can be marked as shared which means that it's available for users from other sites. Gateway without a site always behaves as a shared gateway.
    
sipXconfig generates a new dataset (userlocation) that passes information about users with specified locations.
    
sipXconfig also generates a new format of fallbackrules.xml file allows for a different list of transfomations for each location.

Cannot check-in at the moment: looks like userlocation is not supported by sipxsupervisor's XML/RPC