Author: sebawagner
Date: Sat May  5 15:51:09 2012
New Revision: 1334435

URL: http://svn.apache.org/viewvc?rev=1334435&view=rev
Log:
OPENMEETINGS-127 Backup\Import Asterisk related tables

Modified:
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/sip/api/impl/asterisk/AsteriskDbSipClient.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/sip/api/impl/asterisk/dao/AsteriskDAOImpl.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupExport.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupImportController.java

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/sip/api/impl/asterisk/AsteriskDbSipClient.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/sip/api/impl/asterisk/AsteriskDbSipClient.java?rev=1334435&r1=1334434&r2=1334435&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/sip/api/impl/asterisk/AsteriskDbSipClient.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/sip/api/impl/asterisk/AsteriskDbSipClient.java
 Sat May  5 15:51:09 2012
@@ -75,6 +75,6 @@ public class AsteriskDbSipClient impleme
     }
 
     public Integer getConferenceMembersNumber(String sipNumber) {
-        return asteriskDAO.getConferensMembersNumber(sipNumber);
+        return asteriskDAO.getConferenceMembersNumber(sipNumber);
     }
 }
\ No newline at end of file

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/sip/api/impl/asterisk/dao/AsteriskDAOImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/sip/api/impl/asterisk/dao/AsteriskDAOImpl.java?rev=1334435&r1=1334434&r2=1334435&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/sip/api/impl/asterisk/dao/AsteriskDAOImpl.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/sip/api/impl/asterisk/dao/AsteriskDAOImpl.java
 Sat May  5 15:51:09 2012
@@ -18,6 +18,8 @@
  */
 package org.openmeetings.app.sip.api.impl.asterisk.dao;
 
+import java.util.List;
+
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
 
@@ -90,9 +92,40 @@ public class AsteriskDAOImpl {
         return sipNumber;
     }
 
-    public Integer getConferensMembersNumber(String confNo) {
+    public Integer getConferenceMembersNumber(String confNo) {
         return ((Number)em.createQuery("SELECT m.members FROM MeetMe AS m 
WHERE m.confno=:confno")
                 .setParameter("confno", confNo)
                 .getSingleResult()).intValue();
     }
+    
+    public int saveAsteriskSipUsers(AsteriskSipUsers asteriskSipUsers) {
+       em.persist(asteriskSipUsers);
+       return asteriskSipUsers.getId();
+    }
+    
+    public List<AsteriskSipUsers> getAsteriskSipUsers() {
+       return em.createQuery("select c from AsteriskSipUsers as c", 
AsteriskSipUsers.class)
+                .getResultList();
+    }
+    
+    public int saveExtensions(Extensions extensions) {
+       em.persist(extensions);
+       return extensions.getId();
+    }
+    
+    public List<Extensions> getExtensions() {
+       return em.createQuery("select c from Extensions as c", Extensions.class)
+                .getResultList();
+    }
+    
+    public String saveMeetMe(MeetMe meetMe) {
+       em.persist(meetMe);
+       return meetMe.getConfno();
+    }
+    
+    public List<MeetMe> getMembers() {
+        return em.createQuery("select c from MeetMe as c", MeetMe.class)
+                .getResultList();
+    }
+    
 }
\ No newline at end of file

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupExport.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupExport.java?rev=1334435&r1=1334434&r2=1334435&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupExport.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupExport.java
 Sat May  5 15:51:09 2012
@@ -76,10 +76,14 @@ import org.openmeetings.app.persistence.
 import org.openmeetings.app.persistence.beans.rooms.RoomModerators;
 import org.openmeetings.app.persistence.beans.rooms.Rooms;
 import org.openmeetings.app.persistence.beans.rooms.Rooms_Organisation;
+import org.openmeetings.app.persistence.beans.sip.asterisk.AsteriskSipUsers;
+import org.openmeetings.app.persistence.beans.sip.asterisk.Extensions;
+import org.openmeetings.app.persistence.beans.sip.asterisk.MeetMe;
 import org.openmeetings.app.persistence.beans.user.PrivateMessageFolder;
 import org.openmeetings.app.persistence.beans.user.PrivateMessages;
 import org.openmeetings.app.persistence.beans.user.UserContacts;
 import org.openmeetings.app.persistence.beans.user.Users;
+import org.openmeetings.app.sip.api.impl.asterisk.dao.AsteriskDAOImpl;
 import org.openmeetings.utils.math.CalendarPatterns;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -137,6 +141,8 @@ public class BackupExport {
        private PollManagement pollManagement;
        @Autowired
        private Configurationmanagement cfgManagement;
+       @Autowired
+       private AsteriskDAOImpl asteriskDAOImpl;
 
        public void performExport(String filePath, File backup_dir,
                        boolean includeFiles, String omFilesDir) throws 
Exception {
@@ -369,6 +375,40 @@ public class BackupExport {
                        FileOutputStream fos = new FileOutputStream(aListXML);
                        this.serializetoXML(fos, "UTF-8", doc);
                }
+               
+               /*
+                * ##################### Asterisk SIP Data
+                */
+               List<AsteriskSipUsers> asteriskSipUsers = 
asteriskDAOImpl.getAsteriskSipUsers();
+               if (asteriskSipUsers != null) {
+                       Document doc = 
createAsteriskSipUsersDocument(asteriskSipUsers);
+                       File aListXML = new File(backup_dir, 
"asterisksipusers.xml");
+                       FileOutputStream fos = new FileOutputStream(aListXML);
+                       this.serializetoXML(fos, "UTF-8", doc);
+               }
+               
+               /*
+                * ##################### Asterisk SIP Extensions
+                */
+               List<Extensions> extensions = asteriskDAOImpl.getExtensions();
+               if (extensions != null) {
+                       Document doc = createExtensionsDocument(extensions);
+                       File aListXML = new File(backup_dir, "extensions.xml");
+                       FileOutputStream fos = new FileOutputStream(aListXML);
+                       this.serializetoXML(fos, "UTF-8", doc);
+               }
+               
+               /*
+                * ##################### Asterisk SIP Meetme
+                */
+               List<MeetMe> members = asteriskDAOImpl.getMembers();
+               if (members != null) {
+                       Document doc = createMembersDocument(members);
+                       File aListXML = new File(backup_dir, "members.xml");
+                       FileOutputStream fos = new FileOutputStream(aListXML);
+                       this.serializetoXML(fos, "UTF-8", doc);
+               }
+               
 
                if (includeFiles) {
                        /*
@@ -1686,6 +1726,114 @@ public class BackupExport {
                return document;
        }
        
+       private Document createAsteriskSipUsersDocument(
+                       List<AsteriskSipUsers> asteriskSipUsers) {
+               
+               Document document = getDocument();
+               Element root = document.addElement("root");
+               Element astusersElem = root.addElement("asterisksipusers");
+               
+               for (AsteriskSipUsers asteriskSipUser : asteriskSipUsers) {
+                       Element astuserElem = 
astusersElem.addElement("asterisksipuser");
+                       astuserElem.addElement("id").addCDATA(formatString("" + 
asteriskSipUser.getId()));
+                       
astuserElem.addElement("accountcode").addCDATA(formatString("" + 
asteriskSipUser.getAccountcode()));
+                       
astuserElem.addElement("disallow").addCDATA(formatString("" + 
asteriskSipUser.getDisallow()));
+                       
astuserElem.addElement("allow").addCDATA(formatString("" + 
asteriskSipUser.getAllow()));
+                       
astuserElem.addElement("allowoverlap").addCDATA(formatString("" + 
asteriskSipUser.getAllowoverlap()));
+                       
astuserElem.addElement("allowsubscribe").addCDATA(formatString("" + 
asteriskSipUser.getAllowsubscribe()));
+                       
astuserElem.addElement("allowtransfer").addCDATA(formatString("" + 
asteriskSipUser.getAllowtransfer()));
+                       
astuserElem.addElement("amaflags").addCDATA(formatString("" + 
asteriskSipUser.getAmaflags()));
+                       
astuserElem.addElement("autoframing").addCDATA(formatString("" + 
asteriskSipUser.getAutoframing()));
+                       astuserElem.addElement("auth").addCDATA(formatString("" 
+ asteriskSipUser.getAuth()));
+                       
astuserElem.addElement("buggymwi").addCDATA(formatString("" + 
asteriskSipUser.getBuggymwi()));
+                       
astuserElem.addElement("callgroup").addCDATA(formatString("" + 
asteriskSipUser.getCallgroup()));
+                       
astuserElem.addElement("callerid").addCDATA(formatString("" + 
asteriskSipUser.getCallerid()));
+                       
astuserElem.addElement("cid_number").addCDATA(formatString("" + 
asteriskSipUser.getCid_number()));
+                       
astuserElem.addElement("fullname").addCDATA(formatString("" + 
asteriskSipUser.getFullname()));
+                       
astuserElem.addElement("callingpres").addCDATA(formatString("" + 
asteriskSipUser.getCallingpres()));
+                       
astuserElem.addElement("canreinvite").addCDATA(formatString("" + 
asteriskSipUser.getCanreinvite()));
+                       
astuserElem.addElement("context").addCDATA(formatString("" + 
asteriskSipUser.getContext()));
+                       
astuserElem.addElement("defaultip").addCDATA(formatString("" + 
asteriskSipUser.getDefaultip()));
+                       
astuserElem.addElement("dtmfmode").addCDATA(formatString("" + 
asteriskSipUser.getDtmfmode()));
+                       
astuserElem.addElement("fromuser").addCDATA(formatString("" + 
asteriskSipUser.getFromuser()));
+                       
astuserElem.addElement("fromdomain").addCDATA(formatString("" + 
asteriskSipUser.getFromdomain()));
+                       
astuserElem.addElement("fullcontact").addCDATA(formatString("" + 
asteriskSipUser.getFullcontact()));
+                       
astuserElem.addElement("g726nonstandard").addCDATA(formatString("" + 
asteriskSipUser.getG726nonstandard()));
+                       astuserElem.addElement("host").addCDATA(formatString("" 
+ asteriskSipUser.getHost()));
+                       
astuserElem.addElement("insecure").addCDATA(formatString("" + 
asteriskSipUser.getInsecure()));
+                       
astuserElem.addElement("ipaddr").addCDATA(formatString("" + 
asteriskSipUser.getIpaddr()));
+                       
astuserElem.addElement("language").addCDATA(formatString("" + 
asteriskSipUser.getLanguage()));
+                       
astuserElem.addElement("lastms").addCDATA(formatString("" + 
asteriskSipUser.getLastms()));
+                       
astuserElem.addElement("mailbox").addCDATA(formatString("" + 
asteriskSipUser.getMailbox()));
+                       
astuserElem.addElement("maxcallbitrate").addCDATA(formatString("" + 
asteriskSipUser.getMaxcallbitrate()));
+                       
astuserElem.addElement("mohsuggest").addCDATA(formatString("" + 
asteriskSipUser.getMohsuggest()));
+                       
astuserElem.addElement("md5secret").addCDATA(formatString("" + 
asteriskSipUser.getMd5secret()));
+                       
astuserElem.addElement("musiconhold").addCDATA(formatString("" + 
asteriskSipUser.getMusiconhold()));
+                       astuserElem.addElement("name").addCDATA(formatString("" 
+ asteriskSipUser.getName()));
+                       astuserElem.addElement("nat").addCDATA(formatString("" 
+ asteriskSipUser.getNat()));
+                       
astuserElem.addElement("outboundproxy").addCDATA(formatString("" + 
asteriskSipUser.getOutboundproxy()));
+                       astuserElem.addElement("deny").addCDATA(formatString("" 
+ asteriskSipUser.getDeny()));
+                       
astuserElem.addElement("permit").addCDATA(formatString("" + 
asteriskSipUser.getPermit()));
+                       
astuserElem.addElement("pickupgroup").addCDATA(formatString("" + 
asteriskSipUser.getPickupgroup()));
+                       astuserElem.addElement("port").addCDATA(formatString("" 
+ asteriskSipUser.getPort()));
+                       
astuserElem.addElement("progressinband").addCDATA(formatString("" + 
asteriskSipUser.getProgressinband()));
+                       
astuserElem.addElement("promiscredir").addCDATA(formatString("" + 
asteriskSipUser.getPromiscredir()));
+                       
astuserElem.addElement("qualify").addCDATA(formatString("" + 
asteriskSipUser.getQualify()));
+                       
astuserElem.addElement("regexten").addCDATA(formatString("" + 
asteriskSipUser.getRegexten()));
+                       
astuserElem.addElement("regseconds").addCDATA(formatString("" + 
asteriskSipUser.getRegseconds()));
+                       
astuserElem.addElement("rfc2833compensate").addCDATA(formatString("" + 
asteriskSipUser.getRfc2833compensate()));
+                       
astuserElem.addElement("rtptimeout").addCDATA(formatString("" + 
asteriskSipUser.getRtptimeout()));
+                       
astuserElem.addElement("rtpholdtimeout").addCDATA(formatString("" + 
asteriskSipUser.getRtpholdtimeout()));
+                       
astuserElem.addElement("secret").addCDATA(formatString("" + 
asteriskSipUser.getSecret()));
+                       
astuserElem.addElement("sendrpid").addCDATA(formatString("" + 
asteriskSipUser.getSendrpid()));
+                       
astuserElem.addElement("setvar").addCDATA(formatString("" + 
asteriskSipUser.getSetvar()));
+                       
astuserElem.addElement("subscribecontext").addCDATA(formatString("" + 
asteriskSipUser.getSubscribecontext()));
+                       
astuserElem.addElement("subscribemwi").addCDATA(formatString("" + 
asteriskSipUser.getSubscribemwi()));
+                       
astuserElem.addElement("t38pt_udptl").addCDATA(formatString("" + 
asteriskSipUser.getId()));
+                       
astuserElem.addElement("trustrpid").addCDATA(formatString("" + 
asteriskSipUser.getTrustrpid()));
+                       astuserElem.addElement("type").addCDATA(formatString("" 
+ asteriskSipUser.getType()));
+                       
astuserElem.addElement("useclientcode").addCDATA(formatString("" + 
asteriskSipUser.getUseclientcode()));
+                       
astuserElem.addElement("username").addCDATA(formatString("" + 
asteriskSipUser.getUsername()));
+                       
astuserElem.addElement("usereqphone").addCDATA(formatString("" + 
asteriskSipUser.getUsereqphone()));
+                       
astuserElem.addElement("videosupport").addCDATA(formatString("" + 
asteriskSipUser.getVideosupport()));
+                       
astuserElem.addElement("vmexten").addCDATA(formatString("" + 
asteriskSipUser.getVmexten()));
+
+               }
+               return document;
+               
+       }
+       
+       private Document createExtensionsDocument(List<Extensions> extensions) {
+               Document document = getDocument();
+               Element root = document.addElement("root");
+               Element extensionsElem = root.addElement("extensions");
+               
+               for (Extensions extension : extensions) {
+                       Element extensionElem = 
extensionsElem.addElement("extension");
+                       extensionElem.addElement("id").addCDATA(formatString("" 
+ extension.getId()));
+                       
extensionElem.addElement("exten").addCDATA(formatString("" + 
extension.getExten()));
+                       
extensionElem.addElement("priority").addCDATA(formatString("" + 
extension.getPriority()));
+                       
extensionElem.addElement("app").addCDATA(formatString("" + extension.getApp()));
+                       
extensionElem.addElement("appdata").addCDATA(formatString("" + 
extension.getAppdata()));
+               }
+               return document;
+       }
+       
+       private Document createMembersDocument(List<MeetMe> members) {
+               Document document = getDocument();
+               Element root = document.addElement("root");
+               Element membersElem = root.addElement("members");
+               
+               for (MeetMe member : members) {
+                       Element memberElem = membersElem.addElement("member");
+                       
memberElem.addElement("confno").addCDATA(formatString("" + member.getConfno()));
+                       memberElem.addElement("pin").addCDATA(formatString("" + 
member.getPin()));
+                       
memberElem.addElement("adminpin").addCDATA(formatString("" + 
member.getAdminpin()));
+                       
memberElem.addElement("members").addCDATA(formatString("" + 
member.getMembers()));
+               }
+               return document;
+       }
+       
        public void serializetoXML(OutputStream out, String aEncodingScheme,
                        Document doc) throws Exception {
                OutputFormat outformat = OutputFormat.createPrettyPrint();

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupImportController.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupImportController.java?rev=1334435&r1=1334434&r2=1334435&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupImportController.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupImportController.java
 Sat May  5 15:51:09 2012
@@ -78,12 +78,16 @@ import org.openmeetings.app.persistence.
 import org.openmeetings.app.persistence.beans.rooms.RoomModerators;
 import org.openmeetings.app.persistence.beans.rooms.Rooms;
 import org.openmeetings.app.persistence.beans.rooms.Rooms_Organisation;
+import org.openmeetings.app.persistence.beans.sip.asterisk.AsteriskSipUsers;
+import org.openmeetings.app.persistence.beans.sip.asterisk.Extensions;
+import org.openmeetings.app.persistence.beans.sip.asterisk.MeetMe;
 import org.openmeetings.app.persistence.beans.user.PrivateMessageFolder;
 import org.openmeetings.app.persistence.beans.user.PrivateMessages;
 import org.openmeetings.app.persistence.beans.user.UserContacts;
 import org.openmeetings.app.persistence.beans.user.UserSipData;
 import org.openmeetings.app.persistence.beans.user.Users;
 import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.openmeetings.app.sip.api.impl.asterisk.dao.AsteriskDAOImpl;
 import org.openmeetings.utils.math.CalendarPatterns;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -139,6 +143,8 @@ public class BackupImportController exte
        private PollManagement pollManagement;
        @Autowired
        private Configurationmanagement cfgManagement;
+       @Autowired
+       private AsteriskDAOImpl asteriskDAOImpl;
 
        private final HashMap<Long, Long> usersMap = new HashMap<Long, Long>();
        private final HashMap<Long, Long> organisationsMap = new HashMap<Long, 
Long>();
@@ -408,7 +414,40 @@ public class BackupImportController exte
                } else {
                        importConfigs(configsFile);
                }
-               log.info("Configs import complete, starting copy of files and 
folders");
+               log.info("Configs import complete, starting 
asteriskSipUsersFile import");
+               
+               /*
+                * ##################### Import AsteriskSipUsers
+                */
+               File asteriskSipUsersFile = new File(f, "asterisksipusers.xml");
+               if (!asteriskSipUsersFile.exists()) {
+                       log.debug("asteriskSipUsersFile missing");
+               } else {
+                       importAsteriskSipUsers(asteriskSipUsersFile);
+               }
+               log.info("AsteriskSipUsers import complete, starting extensions 
import");
+               
+               /*
+                * ##################### Import Extensions
+                */
+               File extensionsFile = new File(f, "extensions.xml");
+               if (!extensionsFile.exists()) {
+                       log.debug("extensionsFile missing");
+               } else {
+                       importExtensions(extensionsFile);
+               }
+               log.info("Extensions import complete, starting members import");
+               
+               /*
+                * ##################### Import Extensions
+                */
+               File membersFile = new File(f, "members.xml");
+               if (!membersFile.exists()) {
+                       log.debug("membersFile missing");
+               } else {
+                       importMembers(membersFile);
+               }
+               log.info("Members import complete, starting copy of files and 
folders");
 
                /*
                 * ##################### Import real files and folders
@@ -420,7 +459,7 @@ public class BackupImportController exte
                deleteDirectory(f);
        }
        
-    @RequestMapping(value = "/backup.upload", method = RequestMethod.POST)
+       @RequestMapping(value = "/backup.upload", method = RequestMethod.POST)
        public void service(HttpServletRequest request,
                        HttpServletResponse httpServletResponse)
                        throws ServletException, IOException {
@@ -470,6 +509,213 @@ public class BackupImportController exte
 
        }
        
+       private void importMembers(File membersFile) throws Exception {
+               SAXReader reader = new SAXReader();
+               Document document = reader.read(membersFile);
+
+               Element root = document.getRootElement();
+               Element extensions = root.element("members");
+               for (@SuppressWarnings("unchecked")
+                       Iterator<Element> iter = 
extensions.elementIterator("member"); iter.hasNext();) {
+                       
+                       Element extensionElem = iter.next();
+                       String confno = extensionElem.elementText("confno");
+                       try {
+                               MeetMe meetMe = new MeetMe();
+                               meetMe.setConfno(unformatString(extensionElem
+                                                               
.element("confno").getText()));
+                               meetMe.setPin(unformatString(extensionElem
+                                               .element("pin").getText()));
+                               meetMe.setAdminpin(unformatString(extensionElem
+                                               
.element("adminpin").getText()));
+                               
meetMe.setMembers(importIntegerType(unformatString(extensionElem
+                                               
.element("members").getText())));
+                               
+                               asteriskDAOImpl.saveMeetMe(meetMe);
+                       } catch (Exception e) {
+                               log.debug("failed to add/update members confno: 
" + confno, e);
+                       }
+               }
+       }
+       
+       private void importExtensions(File extensionsFile) throws Exception {
+               SAXReader reader = new SAXReader();
+               Document document = reader.read(extensionsFile);
+
+               Element root = document.getRootElement();
+               Element extensions = root.element("extensions");
+               for (@SuppressWarnings("unchecked")
+                       Iterator<Element> iter = 
extensions.elementIterator("extension"); iter.hasNext();) {
+                       
+                       Element extensionElem = iter.next();
+                       String id = extensionElem.elementText("id");
+                       try {
+                               Extensions extension = new Extensions();
+                               //the primary key must be null for new objects 
if its an auto-increment
+                               extension.setExten(unformatString(extensionElem
+                                               .element("exten").getText()));
+                               
extension.setPriority(importIntegerType(unformatString(extensionElem
+                                               
.element("priority").getText())));
+                               extension.setApp(unformatString(extensionElem
+                                               .element("app").getText()));
+                               
extension.setAppdata(unformatString(extensionElem
+                                               .element("appdata").getText()));
+                               
+                               asteriskDAOImpl.saveExtensions(extension);
+                       } catch (Exception e) {
+                               log.debug("failed to add/update extensions id: 
" + id, e);
+                       }
+               }
+       }
+       
+       private void importAsteriskSipUsers(File asteriskSipUsersFile) throws 
Exception {
+               SAXReader reader = new SAXReader();
+               Document document = reader.read(asteriskSipUsersFile);
+
+               Element root = document.getRootElement();
+               Element asterisksipusers = root.element("asterisksipusers");
+               for (@SuppressWarnings("unchecked")
+                       Iterator<Element> iter = 
asterisksipusers.elementIterator("asterisksipuser"); iter.hasNext();) {
+                       
+                       Element asterisksipuserElem = iter.next();
+                       
+                       String id = asterisksipuserElem.elementText("id");
+                       
+                       try {
+                       
+                               AsteriskSipUsers asterisksipuser = new 
AsteriskSipUsers();
+                               //the primary key must be null for new objects 
if its an auto-increment
+                               
asterisksipuser.setAccountcode(unformatString(asterisksipuserElem
+                                               
.element("accountcode").getText()));
+                               
asterisksipuser.setDisallow(unformatString(asterisksipuserElem
+                                               
.element("disallow").getText()));
+                               
asterisksipuser.setAllow(unformatString(asterisksipuserElem
+                                               .element("allow").getText()));
+                               
asterisksipuser.setAllowoverlap(unformatString(asterisksipuserElem
+                                               
.element("allowoverlap").getText()));
+                               
asterisksipuser.setAllowsubscribe(unformatString(asterisksipuserElem
+                                               
.element("allowsubscribe").getText()));
+                               
asterisksipuser.setAllowtransfer(unformatString(asterisksipuserElem
+                                               
.element("allowtransfer").getText()));
+                               
asterisksipuser.setAmaflags(unformatString(asterisksipuserElem
+                                               
.element("amaflags").getText()));
+                               
asterisksipuser.setAutoframing(unformatString(asterisksipuserElem
+                                               
.element("autoframing").getText()));
+                               
asterisksipuser.setAuth(unformatString(asterisksipuserElem
+                                               .element("auth").getText()));
+                               
asterisksipuser.setBuggymwi(unformatString(asterisksipuserElem
+                                               
.element("buggymwi").getText()));
+                               
asterisksipuser.setCallgroup(unformatString(asterisksipuserElem
+                                               
.element("callgroup").getText()));
+                               
asterisksipuser.setCallerid(unformatString(asterisksipuserElem
+                                               
.element("callerid").getText()));
+                               
asterisksipuser.setCid_number(unformatString(asterisksipuserElem
+                                               
.element("cid_number").getText()));
+                               
asterisksipuser.setFullname(unformatString(asterisksipuserElem
+                                               
.element("fullname").getText()));
+                               
asterisksipuser.setCallingpres(unformatString(asterisksipuserElem
+                                               
.element("callingpres").getText()));
+                               
asterisksipuser.setCanreinvite(unformatString(asterisksipuserElem
+                                               
.element("canreinvite").getText()));
+                               
asterisksipuser.setContext(unformatString(asterisksipuserElem
+                                               .element("context").getText()));
+                               
asterisksipuser.setDefaultip(unformatString(asterisksipuserElem
+                                               
.element("defaultip").getText()));
+                               
asterisksipuser.setDtmfmode(unformatString(asterisksipuserElem
+                                               
.element("dtmfmode").getText()));
+                               
asterisksipuser.setFromuser(unformatString(asterisksipuserElem
+                                               
.element("fromuser").getText()));
+                               
asterisksipuser.setFromdomain(unformatString(asterisksipuserElem
+                                               
.element("fromdomain").getText()));
+                               
asterisksipuser.setFullcontact(unformatString(asterisksipuserElem
+                                               
.element("fullcontact").getText()));
+                               
asterisksipuser.setG726nonstandard(unformatString(asterisksipuserElem
+                                               
.element("g726nonstandard").getText()));
+                               
asterisksipuser.setHost(unformatString(asterisksipuserElem
+                                               .element("host").getText()));
+                               
asterisksipuser.setInsecure(unformatString(asterisksipuserElem
+                                               
.element("insecure").getText()));
+                               
asterisksipuser.setIpaddr(unformatString(asterisksipuserElem
+                                               .element("ipaddr").getText()));
+                               
asterisksipuser.setLanguage(unformatString(asterisksipuserElem
+                                               
.element("language").getText()));
+                               
asterisksipuser.setLastms(unformatString(asterisksipuserElem
+                                               .element("lastms").getText()));
+                               
asterisksipuser.setMailbox(unformatString(asterisksipuserElem
+                                               .element("mailbox").getText()));
+                               
asterisksipuser.setMaxcallbitrate(importIntegerType(unformatString(asterisksipuserElem
+                                               
.element("maxcallbitrate").getText())));
+                               
asterisksipuser.setMohsuggest(unformatString(asterisksipuserElem
+                                               
.element("mohsuggest").getText()));
+                               
asterisksipuser.setMd5secret(unformatString(asterisksipuserElem
+                                               
.element("md5secret").getText()));
+                               
asterisksipuser.setMusiconhold(unformatString(asterisksipuserElem
+                                               
.element("musiconhold").getText()));
+                               
asterisksipuser.setName(unformatString(asterisksipuserElem
+                                               .element("name").getText()));
+                               
asterisksipuser.setNat(unformatString(asterisksipuserElem
+                                               .element("nat").getText()));
+                               
asterisksipuser.setOutboundproxy(unformatString(asterisksipuserElem
+                                               
.element("outboundproxy").getText()));
+                               
asterisksipuser.setDeny(unformatString(asterisksipuserElem
+                                               .element("deny").getText()));
+                               
asterisksipuser.setPermit(unformatString(asterisksipuserElem
+                                               .element("permit").getText()));
+                               
asterisksipuser.setPickupgroup(unformatString(asterisksipuserElem
+                                               
.element("pickupgroup").getText()));
+                               
asterisksipuser.setPort(unformatString(asterisksipuserElem
+                                               .element("port").getText()));
+                               
asterisksipuser.setProgressinband(unformatString(asterisksipuserElem
+                                               
.element("progressinband").getText()));
+                               
asterisksipuser.setPromiscredir(unformatString(asterisksipuserElem
+                                               
.element("promiscredir").getText()));
+                               
asterisksipuser.setQualify(unformatString(asterisksipuserElem
+                                               .element("qualify").getText()));
+                               
asterisksipuser.setRegexten(unformatString(asterisksipuserElem
+                                               
.element("regexten").getText()));
+                               
asterisksipuser.setRegseconds(importIntegerType(unformatString(asterisksipuserElem
+                                               
.element("regseconds").getText())));
+                               
asterisksipuser.setRfc2833compensate(unformatString(asterisksipuserElem
+                                               
.element("rfc2833compensate").getText()));
+                               
asterisksipuser.setRtptimeout(unformatString(asterisksipuserElem
+                                               
.element("rtptimeout").getText()));
+                               
asterisksipuser.setRtpholdtimeout(unformatString(asterisksipuserElem
+                                               
.element("rtpholdtimeout").getText()));
+                               
asterisksipuser.setSecret(unformatString(asterisksipuserElem
+                                               .element("secret").getText()));
+                               
asterisksipuser.setSendrpid(unformatString(asterisksipuserElem
+                                               
.element("sendrpid").getText()));
+                               
asterisksipuser.setSetvar(unformatString(asterisksipuserElem
+                                               .element("setvar").getText()));
+                               
asterisksipuser.setSubscribecontext(unformatString(asterisksipuserElem
+                                               
.element("subscribecontext").getText()));
+                               
asterisksipuser.setSubscribemwi(unformatString(asterisksipuserElem
+                                               
.element("subscribemwi").getText()));
+                               
asterisksipuser.setT38pt_udptl(unformatString(asterisksipuserElem
+                                               
.element("t38pt_udptl").getText()));
+                               
asterisksipuser.setTrustrpid(unformatString(asterisksipuserElem
+                                               
.element("trustrpid").getText()));
+                               
asterisksipuser.setType(unformatString(asterisksipuserElem
+                                               .element("type").getText()));
+                               
asterisksipuser.setUseclientcode(unformatString(asterisksipuserElem
+                                               
.element("useclientcode").getText()));
+                               
asterisksipuser.setUsername(unformatString(asterisksipuserElem
+                                               
.element("username").getText()));
+                               
asterisksipuser.setUsereqphone(unformatString(asterisksipuserElem
+                                               
.element("usereqphone").getText()));
+                               
asterisksipuser.setVideosupport(unformatString(asterisksipuserElem
+                                               
.element("videosupport").getText()));
+                               
asterisksipuser.setVmexten(unformatString(asterisksipuserElem
+                                               .element("vmexten").getText()));
+                               
+                               
asteriskDAOImpl.saveAsteriskSipUsers(asterisksipuser);
+                               
+                       } catch (Exception e) {
+                               log.debug("failed to add/update asterisksipuser 
id: "+id, e);
+                       }
+               }
+       }
+       
        private void importConfigs(File configsFile) throws Exception {
                SAXReader reader = new SAXReader();
                Document document = reader.read(configsFile);


Reply via email to