Author: sayer
Date: 2008-08-20 15:30:11 +0200 (Wed, 20 Aug 2008)
New Revision: 1063

Modified:
   branches/1.0.0/apps/ivr/Makefile.ivr_application
   branches/1.0.0/apps/mailbox/Makefile
   branches/1.0.0/apps/pin_collect/Makefile
   branches/1.0.0/apps/reg_agent/RegistrationAgent.cpp
   branches/1.0.0/apps/registrar_client/SIPRegistrarClient.cpp
   branches/1.0.0/apps/registrar_client/SIPRegistrarClient.h
Log:
install python applications' audio files (backport)

Modified: branches/1.0.0/apps/ivr/Makefile.ivr_application
===================================================================
--- branches/1.0.0/apps/ivr/Makefile.ivr_application    2008-08-20 13:23:41 UTC 
(rev 1062)
+++ branches/1.0.0/apps/ivr/Makefile.ivr_application    2008-08-20 13:30:11 UTC 
(rev 1063)
@@ -4,6 +4,8 @@
 COREPATH ?= ../../core
 IVRPATH ?= ../ivr
 
+AUDIO_FILES=$(notdir $(wildcard wav/*.wav))
+
 include $(COREPATH)/../Makefile.defs
 include $(IVRPATH)/Makefile.defs
 
@@ -37,7 +39,7 @@
        python${PYTHON_VERSION} $(IVRPATH)/py_comp -q .
 
 .PHONY: install
-install: all
+install: all $(extra_install)
        install -d $(DESTDIR)${BASEDIR}/${LIB_INSTALLDIR}
        install -m ${LIB_PERMISSIONS}  *.pyc 
$(DESTDIR)${BASEDIR}/${LIB_INSTALLDIR}
        install -d $(DESTDIR)${BASEDIR}/${LIB_INSTALLDIR}/${LIBDIR}
@@ -55,7 +57,19 @@
                        < $$r > $(DESTDIR)$(cfg-target)$$r; \
        done
 
+$(DESTDIR)(audio-prefix)/$(audio-dir):
+       mkdir -p $(DESTDIR)$(audio-prefix)/$(audio-dir)
 
+.PHONY: $(NAME)_audio
+$(NAME)_audio: $(DESTDIR)$(audio-prefix)/$(audio-dir)
+       mkdir -p $(DESTDIR)$(audio-prefix)/$(audio-dir)$(NAME)
+       [EMAIL PROTECTED] f in $(AUDIO_FILES) ; do \
+               if [ -n "wav/$$f" ]; then \
+                       $(INSTALL-TOUCH) 
$(DESTDIR)$(audio-prefix)/$(audio-dir)$(NAME)/$$f; \
+                       $(INSTALL-AUDIO) wav/$$f 
$(DESTDIR)$(audio-prefix)/$(audio-dir)$(NAME)/$$f; \
+               fi ; \
+       done
+
 uninstall: 
        @echo "please remove the files from $(DESTDIR)${LIB_INSTALLDIR} 
manually."
 

Modified: branches/1.0.0/apps/mailbox/Makefile
===================================================================
--- branches/1.0.0/apps/mailbox/Makefile        2008-08-20 13:23:41 UTC (rev 
1062)
+++ branches/1.0.0/apps/mailbox/Makefile        2008-08-20 13:30:11 UTC (rev 
1063)
@@ -4,5 +4,7 @@
 
 LIBDIR=imap_mailbox
 
+extra_install = $(NAME)_audio
+
 include ../ivr/Makefile.ivr_application
 

Modified: branches/1.0.0/apps/pin_collect/Makefile
===================================================================
--- branches/1.0.0/apps/pin_collect/Makefile    2008-08-20 13:23:41 UTC (rev 
1062)
+++ branches/1.0.0/apps/pin_collect/Makefile    2008-08-20 13:30:11 UTC (rev 
1063)
@@ -4,5 +4,7 @@
 
 LIBDIR=.
 
+extra_install = $(NAME)_audio
+
 include ../ivr/Makefile.ivr_application
 

Modified: branches/1.0.0/apps/reg_agent/RegistrationAgent.cpp
===================================================================
--- branches/1.0.0/apps/reg_agent/RegistrationAgent.cpp 2008-08-20 13:23:41 UTC 
(rev 1062)
+++ branches/1.0.0/apps/reg_agent/RegistrationAgent.cpp 2008-08-20 13:30:11 UTC 
(rev 1063)
@@ -156,19 +156,24 @@
       di_args.push(ri.handle.c_str());
       uac_auth_i->invoke("getRegistrationState", di_args, res);
       if (res.size()) {
-       if (!res.get(0).asInt())
+       if (!res.get(0).asInt()) {
+         INFO("dne\n");
+
          return false; // does not exist
+       }
        int state = res.get(1).asInt();
        int expires = res.get(2).asInt();
        DBG("Got state %s with expires %us for registration.\n", 
            getSIPRegistationStateString(state), expires);
        if (state == 2) // expired ... FIXME: add values from API here
          return false;
+       INFO("pending\n");
        // else pending or active
        return true;
       }
     }
   }
+  INFO("all\n");
   return false;
 }
 
@@ -181,7 +186,7 @@
     for (vector<RegInfo>::iterator it = registrations.begin(); 
         it != registrations.end(); it++) {
       if (!check_registration(*it)) {
-       DBG("Registration %d does not exist or timeout. Creating 
registration.\n",
+       INFO("Registration %d does not exist or timeout. Creating 
registration.\n",
            (int)(it - registrations.begin()));
        create_registration(*it);
       }

Modified: branches/1.0.0/apps/registrar_client/SIPRegistrarClient.cpp
===================================================================
--- branches/1.0.0/apps/registrar_client/SIPRegistrarClient.cpp 2008-08-20 
13:23:41 UTC (rev 1062)
+++ branches/1.0.0/apps/registrar_client/SIPRegistrarClient.cpp 2008-08-20 
13:30:11 UTC (rev 1063)
@@ -186,7 +186,8 @@
   : AmSIPEventHandler(name),
     AmEventQueue(this) ,
     uac_auth_i(NULL),
-    AmDynInvokeFactory(MOD_NAME)
+    AmDynInvokeFactory(MOD_NAME),
+    started(false)
 { 
 }
 
@@ -279,10 +280,19 @@
 }
 
 int SIPRegistrarClient::onLoad() {
-  instance()->start();
+  instance()->start_once();
   return 0;
 }
 
+void SIPRegistrarClient::start_once() {
+  if (started) 
+    return;
+  started=true;
+
+  start();
+}
+
+
 void SIPRegistrarClient::process(AmEvent* ev) {
   AmSipReplyEvent* sip_rep = dynamic_cast<AmSipReplyEvent*>(ev);
   if (sip_rep) {
@@ -414,6 +424,7 @@
 
 void SIPRegistrarClient::onNewRegistration(SIPNewRegistrationEvent* new_reg) {
 
+  string handle = new_reg->handle;
   SIPRegistration* reg = new SIPRegistration(new_reg->handle, new_reg->info, 
                                             new_reg->sess_link);
   
@@ -443,6 +454,10 @@
   
   add_reg(new_reg->handle, reg);
   reg->doRegistration();
+
+  outstanding_regs_mut.lock();
+  outstanding_regs.erase(handle);
+  outstanding_regs_mut.unlock();
 }
 
 void SIPRegistrarClient::onRemoveRegistration(SIPRemoveRegistrationEvent* 
new_reg) {
@@ -548,6 +563,10 @@
                                              const string& sess_link) {
        
   string handle = AmSession::getNewId();
+  outstanding_regs_mut.lock();
+  outstanding_regs.insert(handle);
+  outstanding_regs_mut.unlock();
+
   instance()->
     postEvent(new SIPNewRegistrationEvent(SIPRegistrationInfo(domain, user, 
                                                              name, auth_user, 
pwd),
@@ -575,6 +594,15 @@
   }
                
   reg_mut.unlock();
+  if (!res) {
+    outstanding_regs_mut.lock();
+    if (outstanding_regs.find(handle) != outstanding_regs.end()) {
+      res = true;
+      state = SIPRegistration::RegisterPending;
+      expires_left = 1000;
+    }
+    outstanding_regs_mut.unlock();
+  }
   return res;
 }
 

Modified: branches/1.0.0/apps/registrar_client/SIPRegistrarClient.h
===================================================================
--- branches/1.0.0/apps/registrar_client/SIPRegistrarClient.h   2008-08-20 
13:23:41 UTC (rev 1062)
+++ branches/1.0.0/apps/registrar_client/SIPRegistrarClient.h   2008-08-20 
13:30:11 UTC (rev 1063)
@@ -39,8 +39,10 @@
 
 #include <map>
 #include <string>
+#include <set>
 using std::map;
 using std::string;
+using std::set;
 
 struct SIPRegistrationInfo {
   string domain;
@@ -170,6 +172,13 @@
 
 
   void checkTimeouts();
+
+  bool started;
+  void start_once();
+
+  set<string> outstanding_regs;
+  AmMutex outstanding_regs_mut;
+
  public:
   SIPRegistrarClient(const string& name);
   // DI factory

_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to