[asterisk-scf-commits] asterisk-scf/integration/sip.git branch "route_replica" updated.

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Mon Apr 25 16:25:38 CDT 2011


branch "route_replica" has been updated
       via  f75f0e1e052168c7553f0eab93fe8398a363d8bf (commit)
       via  f77fb7c654bc02c677ccfc1cdcf986d4ed49726e (commit)
       via  79407522c82b6c35e6f8fbb72d0e20c656d5c2e0 (commit)
       via  985367c6b9d55b0064d654984ab763647d5bf16a (commit)
       via  8fcd9dc04649857437183a335565f27071b20028 (commit)
       via  de1c49f45105d4a62b9572f8bf4efbf8c718933c (commit)
       via  0791f44ddb97bced3ded5da19580ba16966e9f63 (commit)
       via  2d535b3c8813521ba060c544c80baabc2b452f76 (commit)
       via  4c8c74c547955dd93c9e15d2f5c188918517aeeb (commit)
       via  ca95f560a6c8ccf5b3ffd2bff26249b982ecedea (commit)
       via  307e2b902ca3b1466aff00951914feb31bdedfec (commit)
       via  0fafee70d034c4406eb11b37817b12a70b50304e (commit)
       via  1f886e1225940e228bec9a983cf4a7b844e69cb4 (commit)
       via  24244fa6392253ffe2ff6c60757435be1b26da20 (commit)
       via  2b68a207e8b733c5d32f7f3baa63ab743a4a4f82 (commit)
       via  872dc33703f403a63e896a8b778a1e43fa7bad09 (commit)
       via  929982dac23f77950f2b7ff18ec85b51a42de558 (commit)
       via  95c838e77ca99e63a13721981e2aa07867c4bea1 (commit)
       via  d7418a0d23a8a23431e859442c782501abfc0553 (commit)
       via  7a25b8073e1e0d2bb2391a3feafb61b6bdacb380 (commit)
       via  6ced932f19f094541afd5c7ef8b069ea83f26438 (commit)
       via  238e6bb3ddcb4d697e3ac5189c73e0683132ad5e (commit)
       via  04e2c162bc7f6cd6b9bceb74089d1a9a29148b59 (commit)
       via  0c1ba29dc6631ac5ce38a3d2629fe17afcd39627 (commit)
       via  df6502431fb6d495c88eb9a223820f063432bd7e (commit)
       via  6fa0d1a69f5290d1154951965017380dc4e61825 (commit)
       via  06ba07d7d56ed8447eeb188eb4bb5770a9c41adc (commit)
       via  a2ce7d678f3574f6f63691dacead5e2574ded080 (commit)
       via  413bb6369fb40c99a952305fa924dc087da7792c (commit)
       via  626ae7f220d8b0ad44820a5110eeceb61248d032 (commit)
       via  ab478a5684fed6d71a1169104ff9067a240b1e81 (commit)
       via  dd6f1be516148b8f328adf3f174c43fe949a1b61 (commit)
       via  0024d93bcf841b13eec471b2d3f726cdbe686978 (commit)
       via  db6b6404ec286000fcb921edfe080fc6c2cc1c9d (commit)
       via  148efc74ad128c054300d461fb29ae8e31392bed (commit)
       via  827fc662e122ea00689893d167e77a46adf47a15 (commit)
       via  dc0dbb97620670914e030aab47cf1e0f90915ef1 (commit)
       via  c5ed0db396867362132166c17aac2a74274bb48d (commit)
       via  891cedd06767489bf8e00b9c1b98318d9c09d3ef (commit)
       via  0f17de699ae1b4e8f7abdb69053405a30b4b7952 (commit)
       via  4c5178bacdf897e9717c93187b2bcb657f2e1871 (commit)
       via  d17c5711691e51a7a46e787da409c568e8dc6cfd (commit)
       via  e37d9494e7db63a6f9e0798020dc3de62533da91 (commit)
       via  72138cabee93955fb3d648ac78c1faea422e2733 (commit)
       via  01940e42606ff1b41b53778a2b5148021be8d80b (commit)
       via  053aefa444ff4d34070d67d6f45809005c9c7c57 (commit)
       via  8b96c2315423a29b508d1d32622b5fd28b386653 (commit)
       via  116744bd3cb957d26797c50bcc63e4c673ec49ad (commit)
       via  7560c60db1c62ab3b846eba93098d9e81f1be09d (commit)
       via  db9137c28c816f89efc2f9d69accd5e60cc7ec95 (commit)
       via  1cc1ec91224cb05370e8e996433ecb7b5f8201fe (commit)
       via  49098782accde3746af4857574c15ceac1ea7916 (commit)
       via  475da6c6e49647d883663e3b93e443c57f415169 (commit)
       via  0adc89a842ccb2893a472539fe89ffb2e032f41a (commit)
       via  f9be80d1e56708c2673f952d14a0a42b35cb891e (commit)
       via  c004843947a6e1724a08225c7791cb46eee01304 (commit)
      from  ae4f01805596e1d4703327ae525f00f0b20471cc (commit)

Summary of changes:
 config/Configurator.py                             |  179 +++
 config/Sip.config                                  |   77 ++
 config/SipConfigurator.py                          |  166 +++
 local-slice/SipConfigurationIf.ice                 |  535 ++++++---
 local-slice/SipStateReplicationIf.ice              |    2 +-
 src/CMakeLists.txt                                 |    3 +
 src/PJSipLoggingModule.cpp                         |    4 +-
 src/PJSipManager.cpp                               |   83 ++-
 src/PJSipManager.h                                 |   30 +-
 src/PJSipModule.cpp                                |    9 +-
 src/PJSipSessionModule.cpp                         |  217 +++--
 src/PJSipSessionModule.h                           |   16 +-
 src/PJSipSessionModuleConstruction.cpp             |   13 +-
 src/SipConfiguration.cpp                           | 1180 ++++++++++++++++++++
 src/SipConfiguration.h                             |   66 ++
 src/SipEndpoint.cpp                                |  102 ++-
 src/SipEndpoint.h                                  |   48 +-
 src/SipEndpointFactory.cpp                         |   24 +-
 src/SipEndpointFactory.h                           |   20 +-
 src/SipSession.cpp                                 |  233 ++--
 src/SipSession.h                                   |   21 +-
 src/SipSessionManagerApp.cpp                       |   71 +-
 src/SipSessionManagerEndpointLocator.h             |    3 +-
 ...cator.h => SipSessionManagerEndpointLocator.h~} |    8 +-
 src/SipSessionManagerEventPublisher.cpp            |    7 +-
 src/SipSessionManagerEventPublisher.h              |    2 +-
 src/SipStateReplicator.h                           |   25 +-
 src/SipStateReplicatorApp.cpp                      |   30 +-
 src/SipStateReplicatorListener.cpp                 |   43 +-
 29 files changed, 2680 insertions(+), 537 deletions(-)
 create mode 100755 config/Configurator.py
 create mode 100644 config/Sip.config
 create mode 100755 config/SipConfigurator.py
 create mode 100644 src/SipConfiguration.cpp
 create mode 100644 src/SipConfiguration.h
 copy src/{SipSessionManagerEndpointLocator.h => SipSessionManagerEndpointLocator.h~} (81%)


- Log -----------------------------------------------------------------
commit f75f0e1e052168c7553f0eab93fe8398a363d8bf
Merge: f77fb7c ae4f018
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Mon Apr 25 16:24:45 2011 -0500

    Updates for merge with release.
    Conflicts:
    	src/PJSipSessionModule.cpp
    	src/SipSessionManagerEndpointLocator.h

diff --cc src/PJSipSessionModule.cpp
index 69ad639,d48be72..7b7363e
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@@ -797,7 -753,7 +796,8 @@@ void PJSipSessionModule::handleRefer(pj
              PJSipSessionModInfo *session_mod_info = (PJSipSessionModInfo*)inv->mod_data[mModule.id];
              SipSessionPtr session = session_mod_info->getSessionPtr();
              ConnectBridgedSessionsWithDestinationCallbackPtr cb(
 -                    new ConnectBridgedSessionsWithDestinationCallback(inv, rdata, session, target, operationId));
 +                new ConnectBridgedSessionsWithDestinationCallback(inv, rdata, session, target, operationId));
++
              Ice::CallbackPtr d = Ice::newCallback(cb, &ConnectBridgedSessionsWithDestinationCallback::callback);
  
              lg(Debug) << "handleRefer() calling router connectBridgedSessionsWithDestination(). ";

commit f77fb7c654bc02c677ccfc1cdcf986d4ed49726e
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Sun Apr 24 17:12:01 2011 -0500

    Changed a transactionId in the Ice context to an operationId as a parameter for session router interfaces.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index 61cd7bd..69ad639 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -55,8 +55,19 @@ using namespace AsteriskSCF::SIP::V1;
 class RouteSessionCallback : public IceUtil::Shared
 {
 public:
-    RouteSessionCallback(pjsip_inv_session *inv_session, pjsip_tx_data *tdata)
-        : mInvSession(inv_session), mTData(tdata) { }
+    RouteSessionCallback(pjsip_inv_session *inv_session, 
+                         pjsip_tx_data *tdata,
+                         const SipSessionPtr& session,
+                         const std::string& destination,
+                         const std::string& operationId)
+        : mInvSession(inv_session), 
+          mTData(tdata),
+          mSession(session),
+          mDestination(destination),
+          mOperationId(operationId)
+    { 
+    }
+
     void callback(const Ice::AsyncResultPtr& r)
     {
         SessionRouterPrx router = SessionRouterPrx::uncheckedCast(r->getProxy());
@@ -78,14 +89,29 @@ public:
 private:
     pjsip_inv_session *mInvSession;
     pjsip_tx_data *mTData;
+    SipSessionPtr mSession;
+    std::string mDestination;
+    std::string mOperationId;
 };
 typedef IceUtil::Handle<RouteSessionCallback> RouteSessionCallbackPtr;
 
 class ConnectBridgedSessionsCallback : public IceUtil::Shared
 {
 public:
-    ConnectBridgedSessionsCallback(pjsip_inv_session *inv_session, pjsip_rx_data *rdata, const SipSessionPtr& session)
-        : mInvSession(inv_session), mRData(rdata), mSession(session) { }
+
+    ConnectBridgedSessionsCallback(pjsip_inv_session *inv_session,
+                                   pjsip_rx_data *rdata, 
+                                   const SipSessionPtr& session,
+                                   const SipSessionPtr& otherSession,
+                                   const std::string& operationId)
+        : mInvSession(inv_session), 
+          mRData(rdata), 
+          mSession(session),
+          mOtherSession(otherSession),
+          mOperationId(operationId)
+
+    { 
+    }
 
     void callback(const Ice::AsyncResultPtr &r)
     {
@@ -110,6 +136,8 @@ private:
     pjsip_inv_session *mInvSession;
     pjsip_rx_data *mRData;
     SipSessionPtr mSession;
+    SipSessionPtr mOtherSession;
+    std::string mOperationId;
 };
 
 typedef IceUtil::Handle<ConnectBridgedSessionsCallback> ConnectBridgedSessionsCallbackPtr;
@@ -117,9 +145,18 @@ typedef IceUtil::Handle<ConnectBridgedSessionsCallback> ConnectBridgedSessionsCa
 class ConnectBridgedSessionsWithDestinationCallback : public IceUtil::Shared
 {
 public:
-    ConnectBridgedSessionsWithDestinationCallback(pjsip_inv_session *inv_session, pjsip_rx_data *rdata,
-            const SipSessionPtr& session, const std::string& target)
-        : mInvSession(inv_session), mRData(rdata), mSession(session), mTarget(target) { }
+    ConnectBridgedSessionsWithDestinationCallback(pjsip_inv_session *inv_session, 
+                                                 pjsip_rx_data *rdata, 
+                                                 SipSessionPtr session, 
+                                                 const std::string& target,
+                                                 const std::string& operationId)
+        : mInvSession(inv_session), 
+          mRData(rdata), 
+          mSession(session), 
+          mTarget(target),
+          mOperationId(operationId)
+    { 
+    }
 
     void callback(const Ice::AsyncResultPtr &r)
     {
@@ -153,6 +190,7 @@ private:
     pjsip_rx_data *mRData;
     SipSessionPtr mSession;
     std::string mTarget;
+    std::string mOperationId;
 };
 
 typedef IceUtil::Handle<ConnectBridgedSessionsWithDestinationCallback> ConnectBridgedSessionsWithDestinationCallbackPtr;
@@ -169,17 +207,6 @@ private:
     const std::string mCallbackName;
 };
 
-/**
- * Utility function to create an Ice context with a single entry. 
- * The entry in the context is a transaction id, and it is set to a UUID. 
- */
-Ice::Context nextTransactionalContext()
-{
-    Ice::Context context;
-    context[AsteriskSCF::SessionCommunications::V1::TransactionKey] = IceUtil::generateUUID();
-    return context;
-}
-
 typedef IceUtil::Handle<ListenerCallback> ListenerCallbackPtr;
 
 PJSipSessionModInfo::PJSipSessionModInfo(pjsip_inv_session *inv_session,
@@ -603,10 +630,10 @@ void PJSipSessionModule::handleNewInvite(pjsip_rx_data *rdata)
         else
         {
             // If this is not an attended transfer we can just route the session as normally
-            RouteSessionCallbackPtr cb = new RouteSessionCallback(inv_session, tdata);
+            std::string operationId = ::IceUtil::generateUUID();
+            RouteSessionCallbackPtr cb = new RouteSessionCallback(inv_session, tdata, session, destination, operationId);
             Ice::CallbackPtr d = Ice::newCallback(cb, &RouteSessionCallback::callback);
-            Ice::Context context = nextTransactionalContext();
-            mSessionRouter->begin_routeSession(session->getSessionProxy(), destination, context, d);
+            mSessionRouter->begin_routeSession(operationId, session->getSessionProxy(), destination, d);
         }
     }
     catch (const Ice::CommunicatorDestroyedException &)
@@ -743,13 +770,13 @@ void PJSipSessionModule::handleRefer(pjsip_inv_session *inv, pjsip_rx_data *rdat
 
         try
         {
-            ConnectBridgedSessionsCallbackPtr cb(new ConnectBridgedSessionsCallback(inv, rdata, session));
+            std::string operationId = ::IceUtil::generateUUID();
+            ConnectBridgedSessionsCallbackPtr cb(new ConnectBridgedSessionsCallback(inv, rdata, session, other_session, operationId));
             Ice::CallbackPtr d = Ice::newCallback(cb, &ConnectBridgedSessionsCallback::callback);
 
             lg(Debug) << "handleRefer() calling router connectBridgedSessions(). ";
 
-            Ice::Context context = nextTransactionalContext();
-            mSessionRouter->begin_connectBridgedSessions(session->getSessionProxy(), other_session->getSessionProxy(), context, d);
+            mSessionRouter->begin_connectBridgedSessions(operationId, session->getSessionProxy(), other_session->getSessionProxy(), d);
         }
         catch (const Ice::CommunicatorDestroyedException &)
         {
@@ -766,15 +793,15 @@ void PJSipSessionModule::handleRefer(pjsip_inv_session *inv, pjsip_rx_data *rdat
         // Now that we have the target user we can pass this into routing and go on our marry way
         try
         {
+            std::string operationId = ::IceUtil::generateUUID();
             PJSipSessionModInfo *session_mod_info = (PJSipSessionModInfo*)inv->mod_data[mModule.id];
             SipSessionPtr session = session_mod_info->getSessionPtr();
             ConnectBridgedSessionsWithDestinationCallbackPtr cb(
-                new ConnectBridgedSessionsWithDestinationCallback(inv, rdata, session, target));
+                new ConnectBridgedSessionsWithDestinationCallback(inv, rdata, session, target, operationId));
             Ice::CallbackPtr d = Ice::newCallback(cb, &ConnectBridgedSessionsWithDestinationCallback::callback);
 
             lg(Debug) << "handleRefer() calling router connectBridgedSessionsWithDestination(). ";
-            Ice::Context context = nextTransactionalContext();
-            mSessionRouter->begin_connectBridgedSessionsWithDestination(session->getSessionProxy(), target, context, d);
+            mSessionRouter->begin_connectBridgedSessionsWithDestination(operationId, session->getSessionProxy(), target, d);
         }
         catch (const Ice::CommunicatorDestroyedException &)
         {

commit 79407522c82b6c35e6f8fbb72d0e20c656d5c2e0
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Tue Apr 12 20:34:04 2011 -0500

    Cleanup of transaction setting on routing operations.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index ee8d528..61cd7bd 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -169,6 +169,17 @@ private:
     const std::string mCallbackName;
 };
 
+/**
+ * Utility function to create an Ice context with a single entry. 
+ * The entry in the context is a transaction id, and it is set to a UUID. 
+ */
+Ice::Context nextTransactionalContext()
+{
+    Ice::Context context;
+    context[AsteriskSCF::SessionCommunications::V1::TransactionKey] = IceUtil::generateUUID();
+    return context;
+}
+
 typedef IceUtil::Handle<ListenerCallback> ListenerCallbackPtr;
 
 PJSipSessionModInfo::PJSipSessionModInfo(pjsip_inv_session *inv_session,
@@ -594,8 +605,7 @@ void PJSipSessionModule::handleNewInvite(pjsip_rx_data *rdata)
             // If this is not an attended transfer we can just route the session as normally
             RouteSessionCallbackPtr cb = new RouteSessionCallback(inv_session, tdata);
             Ice::CallbackPtr d = Ice::newCallback(cb, &RouteSessionCallback::callback);
-            Ice::Context context;
-            context[AsteriskSCF::SessionCommunications::V1::TransactionKey] = IceUtil::generateUUID();
+            Ice::Context context = nextTransactionalContext();
             mSessionRouter->begin_routeSession(session->getSessionProxy(), destination, context, d);
         }
     }
@@ -738,8 +748,7 @@ void PJSipSessionModule::handleRefer(pjsip_inv_session *inv, pjsip_rx_data *rdat
 
             lg(Debug) << "handleRefer() calling router connectBridgedSessions(). ";
 
-            Ice::Context context;
-            context[AsteriskSCF::SessionCommunications::V1::TransactionKey] = IceUtil::generateUUID();
+            Ice::Context context = nextTransactionalContext();
             mSessionRouter->begin_connectBridgedSessions(session->getSessionProxy(), other_session->getSessionProxy(), context, d);
         }
         catch (const Ice::CommunicatorDestroyedException &)
@@ -764,8 +773,7 @@ void PJSipSessionModule::handleRefer(pjsip_inv_session *inv, pjsip_rx_data *rdat
             Ice::CallbackPtr d = Ice::newCallback(cb, &ConnectBridgedSessionsWithDestinationCallback::callback);
 
             lg(Debug) << "handleRefer() calling router connectBridgedSessionsWithDestination(). ";
-            Ice::Context context;
-            context[AsteriskSCF::SessionCommunications::V1::TransactionKey] = IceUtil::generateUUID();
+            Ice::Context context = nextTransactionalContext();
             mSessionRouter->begin_connectBridgedSessionsWithDestination(session->getSessionProxy(), target, context, d);
         }
         catch (const Ice::CommunicatorDestroyedException &)

commit 985367c6b9d55b0064d654984ab763647d5bf16a
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Mon Mar 7 01:22:20 2011 -0600

    Adds transaction id to the IceContext for all routing operations.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index 0d15243..ee8d528 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -594,7 +594,9 @@ void PJSipSessionModule::handleNewInvite(pjsip_rx_data *rdata)
             // If this is not an attended transfer we can just route the session as normally
             RouteSessionCallbackPtr cb = new RouteSessionCallback(inv_session, tdata);
             Ice::CallbackPtr d = Ice::newCallback(cb, &RouteSessionCallback::callback);
-            mSessionRouter->begin_routeSession(session->getSessionProxy(), destination, d);
+            Ice::Context context;
+            context[AsteriskSCF::SessionCommunications::V1::TransactionKey] = IceUtil::generateUUID();
+            mSessionRouter->begin_routeSession(session->getSessionProxy(), destination, context, d);
         }
     }
     catch (const Ice::CommunicatorDestroyedException &)
@@ -735,8 +737,10 @@ void PJSipSessionModule::handleRefer(pjsip_inv_session *inv, pjsip_rx_data *rdat
             Ice::CallbackPtr d = Ice::newCallback(cb, &ConnectBridgedSessionsCallback::callback);
 
             lg(Debug) << "handleRefer() calling router connectBridgedSessions(). ";
-            mSessionRouter->begin_connectBridgedSessions(session->getSessionProxy(),
-                    other_session->getSessionProxy(), d);
+
+            Ice::Context context;
+            context[AsteriskSCF::SessionCommunications::V1::TransactionKey] = IceUtil::generateUUID();
+            mSessionRouter->begin_connectBridgedSessions(session->getSessionProxy(), other_session->getSessionProxy(), context, d);
         }
         catch (const Ice::CommunicatorDestroyedException &)
         {
@@ -760,7 +764,9 @@ void PJSipSessionModule::handleRefer(pjsip_inv_session *inv, pjsip_rx_data *rdat
             Ice::CallbackPtr d = Ice::newCallback(cb, &ConnectBridgedSessionsWithDestinationCallback::callback);
 
             lg(Debug) << "handleRefer() calling router connectBridgedSessionsWithDestination(). ";
-            mSessionRouter->begin_connectBridgedSessionsWithDestination(session->getSessionProxy(), target, d);
+            Ice::Context context;
+            context[AsteriskSCF::SessionCommunications::V1::TransactionKey] = IceUtil::generateUUID();
+            mSessionRouter->begin_connectBridgedSessionsWithDestination(session->getSessionProxy(), target, context, d);
         }
         catch (const Ice::CommunicatorDestroyedException &)
         {
diff --git a/src/SipSessionManagerEndpointLocator.h b/src/SipSessionManagerEndpointLocator.h
index f5ce9e4..7132abc 100644
--- a/src/SipSessionManagerEndpointLocator.h
+++ b/src/SipSessionManagerEndpointLocator.h
@@ -43,12 +43,8 @@ public:  // Overrides of EndpointLocator
      * The Routing Service will call this method when it needs to lookup an endpoint that
      * we have indicated that we are managing.
      */
-<<<<<<< HEAD
-     ::AsteriskSCF::Core::Endpoint::V1::EndpointSeq lookup(const ::std::string& destination,
-             const ::Ice::Current& = ::Ice::Current());
-=======
+
     virtual void lookup_async(const ::AsteriskSCF::Core::Routing::V1::AMD_EndpointLocator_lookupPtr& cb, const ::std::string& destination, const ::Ice::Current& = ::Ice::Current());
->>>>>>> Changes for amd/ami tags on routing operations.
 
 private:
     /**

commit 8fcd9dc04649857437183a335565f27071b20028
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Mon Dec 20 21:46:04 2010 -0600

    Changes for amd/ami tags on routing operations.

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 18a4bfd..dc283f1 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -75,7 +75,6 @@ asterisk_scf_component_add_slice(SipStateReplicator
     ../local-slice/SipIf.ice)
 
 asterisk_scf_component_add_ice_libraries(SipStateReplicator IceStorm)
-asterisk_scf_component_add_boost_libraries(SipStateReplicator thread date_time)
 
 asterisk_scf_component_build_icebox(SipStateReplicator)
 target_link_libraries(SipStateReplicator logging-client)
diff --git a/src/SipSessionManagerEndpointLocator.cpp b/src/SipSessionManagerEndpointLocator.cpp
index ff2439c..3fd8679 100644
--- a/src/SipSessionManagerEndpointLocator.cpp
+++ b/src/SipSessionManagerEndpointLocator.cpp
@@ -26,7 +26,14 @@ namespace AsteriskSCF
 namespace SipSessionManager
 {
 
-AsteriskSCF::Core::Endpoint::V1::EndpointSeq SipSessionManagerEndpointLocator::lookup(const ::std::string& destination, const Ice::Current&)
+/**
+ * Provide lookup capability to the Asterisk SCF system for endpoints that this component mananges. This 
+ * operation is typically invoked by the routing service.
+ *
+ * Note: This interface is shared by the Routing Service, which is why it's specified as AMD. However, we aren't currently
+ * using any asynchrounous features in forming our reply. 
+ */
+void SipSessionManagerEndpointLocator::lookup_async(const ::AsteriskSCF::Core::Routing::V1::AMD_EndpointLocator_lookupPtr& cb, const ::std::string& destination, const ::Ice::Current&)
 {
     AsteriskSCF::Core::Endpoint::V1::EndpointSeq endpoints;
     SipEndpointPtr endpoint = mEndpointFactory->findByName(destination);
@@ -34,9 +41,12 @@ AsteriskSCF::Core::Endpoint::V1::EndpointSeq SipSessionManagerEndpointLocator::l
     if (endpoint != 0)
     {
         endpoints.push_back(endpoint->getEndpointProxy());
+        cb->ice_response(endpoints);
+        return;
     }
-
-    return endpoints;
+    
+    cb->ice_exception(::AsteriskSCF::Core::Routing::V1::DestinationNotFoundException(destination));
+    
 }
 
 }; // end SipSessionManager
diff --git a/src/SipSessionManagerEndpointLocator.h b/src/SipSessionManagerEndpointLocator.h
index c942e74..f5ce9e4 100644
--- a/src/SipSessionManagerEndpointLocator.h
+++ b/src/SipSessionManagerEndpointLocator.h
@@ -43,8 +43,12 @@ public:  // Overrides of EndpointLocator
      * The Routing Service will call this method when it needs to lookup an endpoint that
      * we have indicated that we are managing.
      */
+<<<<<<< HEAD
      ::AsteriskSCF::Core::Endpoint::V1::EndpointSeq lookup(const ::std::string& destination,
              const ::Ice::Current& = ::Ice::Current());
+=======
+    virtual void lookup_async(const ::AsteriskSCF::Core::Routing::V1::AMD_EndpointLocator_lookupPtr& cb, const ::std::string& destination, const ::Ice::Current& = ::Ice::Current());
+>>>>>>> Changes for amd/ami tags on routing operations.
 
 private:
     /**
diff --git a/src/SipSessionManagerEndpointLocator.h b/src/SipSessionManagerEndpointLocator.h~
similarity index 86%
copy from src/SipSessionManagerEndpointLocator.h
copy to src/SipSessionManagerEndpointLocator.h~
index c942e74..f5ce9e4 100644
--- a/src/SipSessionManagerEndpointLocator.h
+++ b/src/SipSessionManagerEndpointLocator.h~
@@ -43,8 +43,12 @@ public:  // Overrides of EndpointLocator
      * The Routing Service will call this method when it needs to lookup an endpoint that
      * we have indicated that we are managing.
      */
+<<<<<<< HEAD
      ::AsteriskSCF::Core::Endpoint::V1::EndpointSeq lookup(const ::std::string& destination,
              const ::Ice::Current& = ::Ice::Current());
+=======
+    virtual void lookup_async(const ::AsteriskSCF::Core::Routing::V1::AMD_EndpointLocator_lookupPtr& cb, const ::std::string& destination, const ::Ice::Current& = ::Ice::Current());
+>>>>>>> Changes for amd/ami tags on routing operations.
 
 private:
     /**

commit de1c49f45105d4a62b9572f8bf4efbf8c718933c
Author: Mark Michelson <mmichelson at digium.com>
Date:   Fri Apr 22 11:14:49 2011 -0500

    Get rid of shadow warnings and unused parameter warnings in SIP configuration code.

diff --git a/src/SipConfiguration.cpp b/src/SipConfiguration.cpp
index e374891..76fa596 100644
--- a/src/SipConfiguration.cpp
+++ b/src/SipConfiguration.cpp
@@ -235,7 +235,7 @@ ConfigurationGroupSeq ConfigurationServiceImpl::getConfiguration(const AsteriskS
     class visitor : public SipConfigurationGroupVisitor
     {
     public:
-	visitor(boost::shared_ptr<ConfigurationServiceImplPriv> implPriv, ConfigurationGroupSeq& groups) : mImplPriv(implPriv), mGroups(groups) { };
+	visitor(boost::shared_ptr<ConfigurationServiceImplPriv> implPriv, ConfigurationGroupSeq& visitorGroups) : mImplPriv(implPriv), mGroups(visitorGroups) { };
 
     private:
 	/**
@@ -380,11 +380,11 @@ ConfigurationGroupSeq ConfigurationServiceImpl::getConfigurationAll(const Asteri
     class visitor : public SipConfigurationGroupVisitor
     {
     public:
-	visitor(boost::shared_ptr<ConfigurationServiceImplPriv> implPriv, ConfigurationGroupSeq& groups) :
-	    mImplPriv(implPriv), mGroups(groups) { };
+	visitor(boost::shared_ptr<ConfigurationServiceImplPriv> implPriv, ConfigurationGroupSeq& visitorGroups) :
+	    mImplPriv(implPriv), mGroups(visitorGroups) { };
 	
     private:
-	void visitSipGeneralGroup(const ::AsteriskSCF::SIP::V1::SipGeneralGroupPtr& group)
+	void visitSipGeneralGroup(const ::AsteriskSCF::SIP::V1::SipGeneralGroupPtr&)
 	{
 	    if (!mImplPriv->mGeneralGroup)
 	    {
@@ -649,7 +649,7 @@ void ConfigurationServiceImpl::setConfiguration(const AsteriskSCF::System::Confi
 	    class udpTransportItemsVisitor : public SipConfigurationItemVisitor
 	    {
 	    public:
-		udpTransportItemsVisitor(boost::shared_ptr<UDPTransportImplPriv> localTransport) : mLocalTransport(localTransport) { };
+		udpTransportItemsVisitor(boost::shared_ptr<UDPTransportImplPriv> udpLocalTransport) : mLocalTransport(udpLocalTransport) { };
 		
 		void visitSipHostItem(const ::AsteriskSCF::SIP::V1::SipHostItemPtr& hostItem)
 		{
@@ -707,7 +707,7 @@ void ConfigurationServiceImpl::setConfiguration(const AsteriskSCF::System::Confi
             class tcpTransportItemsVisitor : public SipConfigurationItemVisitor
             {
             public:
-                tcpTransportItemsVisitor(boost::shared_ptr<TCPTransportImplPriv> localTransport) : mLocalTransport(localTransport) { };
+                tcpTransportItemsVisitor(boost::shared_ptr<TCPTransportImplPriv> tcpLocalTransport) : mLocalTransport(tcpLocalTransport) { };
 
                 void visitSipHostItem(const ::AsteriskSCF::SIP::V1::SipHostItemPtr& hostItem)
                 {
@@ -765,7 +765,7 @@ void ConfigurationServiceImpl::setConfiguration(const AsteriskSCF::System::Confi
 	    class tlsTransportItemsVisitor : public SipConfigurationItemVisitor
 	    {
 	    public:
-		tlsTransportItemsVisitor(boost::shared_ptr<TLSTransportImplPriv> localTransport) : mLocalTransport(localTransport) { };
+		tlsTransportItemsVisitor(boost::shared_ptr<TLSTransportImplPriv> tlsLocalTransport) : mLocalTransport(tlsLocalTransport) { };
 
 		void visitSipHostItem(const ::AsteriskSCF::SIP::V1::SipHostItemPtr& hostItem)
 		{
@@ -873,7 +873,7 @@ void ConfigurationServiceImpl::setConfiguration(const AsteriskSCF::System::Confi
             class endpointItemsVisitor : public SipConfigurationItemVisitor
             {
             public:
-		endpointItemsVisitor(SipEndpointPtr& endpoint) : mEndpoint(endpoint) { };
+		endpointItemsVisitor(SipEndpointPtr& visitedEndpoint) : mEndpoint(visitedEndpoint) { };
 
 		void visitSipAllowableCallDirectionItem(const ::AsteriskSCF::SIP::V1::SipAllowableCallDirectionItemPtr& direction)
 		{
@@ -1090,7 +1090,7 @@ void ConfigurationServiceImpl::removeConfigurationGroups(const AsteriskSCF::Syst
 	visitor(boost::shared_ptr<ConfigurationServiceImplPriv> implPriv) : mImplPriv(implPriv) { };
 	
     private:
-	void visitSipGeneralGroup(const ::AsteriskSCF::SIP::V1::SipGeneralGroupPtr& group)
+	void visitSipGeneralGroup(const ::AsteriskSCF::SIP::V1::SipGeneralGroupPtr&)
 	{
 	    if (!mImplPriv->mGeneralGroup)
 	    {

commit 0791f44ddb97bced3ded5da19580ba16966e9f63
Merge: 2d535b3 413bb63
Author: Joshua Colp <jcolp at digium.com>
Date:   Thu Apr 21 12:14:12 2011 -0300

    Merge branch 'indicate'


commit 2d535b3c8813521ba060c544c80baabc2b452f76
Merge: 4c8c74c 04e2c16
Author: Joshua Colp <jcolp at digium.com>
Date:   Wed Apr 20 19:44:02 2011 -0300

    Merge branch 'configuration'
    
    Conflicts:
    	src/SipEndpoint.cpp
    	src/SipEndpointFactory.cpp
    	src/SipEndpointFactory.h
    	src/SipSessionManagerApp.cpp

diff --cc src/SipEndpoint.cpp
index 58e4ff6,f883949..50d740e
--- a/src/SipEndpoint.cpp
+++ b/src/SipEndpoint.cpp
@@@ -118,7 -108,40 +118,40 @@@ SipEndpoint::SipEndpoint(const Ice::Obj
      setConfiguration(props);
  }
  
+ SipEndpoint::SipEndpoint(Ice::ObjectAdapterPtr adapter, boost::shared_ptr<SipEndpointFactory> factory, std::string name, PJSipManager *manager,
+     const AsteriskSCF::Core::Discovery::V1::ServiceLocatorPrx& serviceLocator, const AsteriskSCF::System::Component::V1::ReplicaPtr replica)
+     : mImplPriv(new SipEndpointImplPriv(adapter, factory, name, manager, serviceLocator, replica))
+ {
+     lg(Debug) << "Constructing SIP endpoint " << name;
+ 
+     mImplPriv->mEndpointProxy = AsteriskSCF::SessionCommunications::V1::SessionEndpointPrx::uncheckedCast(mImplPriv->mAdapter->addWithUUID(this));
+ }
+ 
+ void SipEndpoint::removeFromAdapter()
+ {
+     mImplPriv->mAdapter->remove(mImplPriv->mEndpointProxy->ice_getIdentity());
+ }
+ 
+ void SipEndpoint::setSourceAddress(std::string address, int port)
+ {
+     char source[64];
+     pj_ansi_snprintf(source, sizeof(source), "%s:%d", address.c_str(), port);
+     mImplPriv->mConfig.sessionConfig.sourceAddress = source;
+ }
+ 
+ void SipEndpoint::setTargetAddress(std::string address, int port)
+ {
+     char target[64];
+     pj_ansi_snprintf(target, sizeof(target), "%s:%d", address.c_str(), port);
+     mImplPriv->mConfig.transportConfig.address = target;
+ }
+ 
+ void SipEndpoint::setCallDirection(enum Direction direction)
+ {
+     mImplPriv->mConfig.sessionConfig.callDirection = direction;
+ }
+ 
 -void SipEndpoint::setConfiguration(Ice::PropertyDict props)
 +void SipEndpoint::setConfiguration(const Ice::PropertyDict& props)
  {
      setTransportConfiguration(props);
      //setAuthConfiguration(props);
diff --cc src/SipEndpoint.h
index 994554d,3704e28..fc3aa21
--- a/src/SipEndpoint.h
+++ b/src/SipEndpoint.h
@@@ -207,11 -207,12 +207,14 @@@ class SipEndpointImplPriv
  class SipEndpoint : public AsteriskSCF::SessionCommunications::V1::SessionEndpoint
  {
  public:
 -    SipEndpoint(Ice::ObjectAdapterPtr adapter, boost::shared_ptr<SipEndpointFactory> factory, std::string name, Ice::PropertyDict props, PJSipManager *manager,
 -        const AsteriskSCF::Core::Discovery::V1::ServiceLocatorPrx& serviceLocator, const AsteriskSCF::System::Component::V1::ReplicaPtr replica);
 +    SipEndpoint(const Ice::ObjectAdapterPtr& adapter, const boost::shared_ptr<SipEndpointFactory>& factory,
 +            const std::string& name, const Ice::PropertyDict& props, PJSipManager *manager,
 +            const AsteriskSCF::Core::Discovery::V1::ServiceLocatorPrx& serviceLocator,
 +            const AsteriskSCF::System::Component::V1::ReplicaPtr& replica);
  
+     SipEndpoint(Ice::ObjectAdapterPtr adapter, boost::shared_ptr<SipEndpointFactory> factory, std::string name, PJSipManager *manager,
+         const AsteriskSCF::Core::Discovery::V1::ServiceLocatorPrx& serviceLocator, const AsteriskSCF::System::Component::V1::ReplicaPtr replica);
+ 
      bool operator==(const std::string &name) const;
  
      /**
@@@ -231,17 -231,23 +234,26 @@@
  
      AsteriskSCF::SessionCommunications::V1::SessionEndpointPrx getEndpointProxy();
  
 -    // TODO: Find a way to use SipSessionPtr here, right now trying to do so results in the world exploding due to dependency insanity
 +    //
 +    // TODO: Find a way to use SipSessionPtr here, right now trying to do so results in the world exploding due to
 +    // dependency insanity
 +    //
      AsteriskSCF::SipSessionManager::SipSessionPtr createSession(const std::string&);
 -    AsteriskSCF::SipSessionManager::SipSessionPtr createSession(const std::string&, const Ice::Identity&, const Ice::Identity&,
 -        const AsteriskSCF::Media::V1::SessionPrx&, const AsteriskSCF::Media::V1::StreamSourceSeq&,
 -        const AsteriskSCF::Media::V1::StreamSinkSeq&);
 +    AsteriskSCF::SipSessionManager::SipSessionPtr createSession(const std::string&, const Ice::Identity&,
 +            const Ice::Identity&, const AsteriskSCF::Media::V1::SessionPrx&,
 +            const AsteriskSCF::Media::V1::StreamSourceSeq&, const AsteriskSCF::Media::V1::StreamSinkSeq&);
  
 -    void removeSession(AsteriskSCF::SessionCommunications::V1::SessionPtr);
 +    void removeSession(const AsteriskSCF::SessionCommunications::V1::SessionPtr&);
  
+     void removeFromAdapter();
+ 
+     /**
+      * Configuration related operations
+      */
+     void setSourceAddress(std::string, int);
+     void setTargetAddress(std::string, int);
+     void setCallDirection(enum Direction);
+ 
  private:
      /**
       * Private implementation details.
diff --cc src/SipEndpointFactory.cpp
index 9016be3,c6ffc46..09c4704
--- a/src/SipEndpointFactory.cpp
+++ b/src/SipEndpointFactory.cpp
@@@ -33,13 -32,24 +33,24 @@@ SipEndpointPtr SipEndpointFactory::crea
      return endpoint;
  }
  
- void SipEndpointFactory::remove(const SipEndpointPtr&)
+ SipEndpointPtr SipEndpointFactory::createEndpoint(std::string endpointName)
  {
-     // TODO: Do we even need to remove sip endpoints yet?
- //   mEndpoints.erase(std::remove(mEndpoints.begin(), mEndpoints.end(), endpoint), mEndpoints.end());
+     SipEndpointPtr endpoint = new SipEndpoint(mAdapter, shared_from_this(), endpointName, mManager, mServiceLocator, mReplica);
+     mEndpoints.push_back(endpoint);
+     return endpoint;
+ }
+ 
+ void SipEndpointFactory::remove(std::string endpointName)
+ {
+     SipEndpointPtr endpoint = findByName(endpointName);
+     if (endpoint != 0)
+     {
+ 	endpoint->removeFromAdapter();
+ 	mEndpoints.erase(std::remove(mEndpoints.begin(), mEndpoints.end(), endpoint), mEndpoints.end());
+     }
  }
  
 -SipEndpointPtr SipEndpointFactory::findByName(std::string endpointName)
 +SipEndpointPtr SipEndpointFactory::findByName(const std::string& endpointName)
  {
      std::vector<SipEndpointPtr>::iterator iter;
      for (iter = mEndpoints.begin(); iter != mEndpoints.end(); ++ iter)
diff --cc src/SipEndpointFactory.h
index 73c4d3a,2730186..6431604
--- a/src/SipEndpointFactory.h
+++ b/src/SipEndpointFactory.h
@@@ -36,16 -36,18 +36,18 @@@ namespace SipSessionManage
  class SipEndpointFactory : public boost::enable_shared_from_this<SipEndpointFactory>
  {
  public:
 -    SipEndpointFactory(Ice::ObjectAdapterPtr adapter, PJSipManager *manager,
 -        const AsteriskSCF::Core::Discovery::V1::ServiceLocatorPrx serviceLocator,
 -        const AsteriskSCF::System::Component::V1::ReplicaPtr replica) :
 +    SipEndpointFactory(const Ice::ObjectAdapterPtr& adapter, PJSipManager *manager,
 +        const AsteriskSCF::Core::Discovery::V1::ServiceLocatorPrx& serviceLocator,
 +        const AsteriskSCF::System::Component::V1::ReplicaPtr& replica) :
          mAdapter(adapter), mManager(manager), mServiceLocator(serviceLocator), mReplica(replica) { };
  
 -    SipEndpointPtr createEndpoint(std::string destination, Ice::PropertiesPtr props);
 +    SipEndpointPtr createEndpoint(const std::string& destination, const Ice::PropertiesPtr& props);
  
-     void remove(const SipEndpointPtr&);
+     SipEndpointPtr createEndpoint(std::string);
+ 
+     void remove(std::string);
  
 -    SipEndpointPtr findByName(std::string endpointName);
 +    SipEndpointPtr findByName(const std::string& endpointName);
  
      void generateRoutingDestinations(AsteriskSCF::Core::Routing::V1::RegExSeq&);
  private:
diff --cc src/SipSessionManagerApp.cpp
index ecd5338,134dca2..18b12d5
--- a/src/SipSessionManagerApp.cpp
+++ b/src/SipSessionManagerApp.cpp
@@@ -338,10 -336,7 +344,8 @@@ void SipSessionManager::registerWithRou
  
      mEndpointFactory->generateRoutingDestinations(destinations);
  
-     mRoutingId = mCommunicator->getProperties()->getPropertyWithDefault("Sip.RoutingId", "pjsip");
- 
 -    EndpointLocatorPrx locator = EndpointLocatorPrx::uncheckedCast(mGlobalAdapter->createDirectProxy(mCommunicator->stringToIdentity(EndpointLocatorObjectId)));
 +    EndpointLocatorPrx locator = EndpointLocatorPrx::uncheckedCast(
 +        mGlobalAdapter->createDirectProxy(mCommunicator->stringToIdentity(EndpointLocatorObjectId)));
      mRoutingServiceLocatorRegistry->addEndpointLocator(mRoutingId, destinations, locator);
  }
  

commit 4c8c74c547955dd93c9e15d2f5c188918517aeeb
Merge: ca95f56 0fafee7
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Apr 15 09:15:59 2011 -0500

    Merge branch 'wip'


commit ca95f560a6c8ccf5b3ffd2bff26249b982ecedea
Author: Joshua Colp <jcolp at digium.com>
Date:   Thu Apr 14 15:36:11 2011 -0300

    Enable support for SIP session timers.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index 27756f9..467a1ee 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -505,6 +505,10 @@ void PJSipSessionModule::handleNewInvite(pjsip_rx_data *rdata)
     // Add our own module as a dialog usage
     pjsip_dlg_add_usage(dlg, &mModule, NULL);
 
+    pjsip_timer_setting session_timer_settings;
+    pjsip_timer_setting_default(&session_timer_settings);
+    pjsip_timer_init_session(inv_session, &session_timer_settings);
+
     if (pjsip_inv_initial_answer(inv_session, rdata, 100, NULL, NULL, &tdata) != PJ_SUCCESS)
     {
         lg(Warning) << "Failed to create 100 Trying response";
diff --git a/src/PJSipSessionModuleConstruction.cpp b/src/PJSipSessionModuleConstruction.cpp
index 9f7d71e..f78c59d 100644
--- a/src/PJSipSessionModuleConstruction.cpp
+++ b/src/PJSipSessionModuleConstruction.cpp
@@ -140,6 +140,7 @@ PJSipSessionModule::PJSipSessionModule(pjsip_endpoint *endpt,
     pjsip_evsub_init_module(endpt);
     pjsip_xfer_init_module(endpt);
     pjsip_replaces_init_module(endpt);
+    pjsip_timer_init_module(endpt);
     pjsip_endpt_register_module(endpt, &mModule);
 }
 
diff --git a/src/SipSession.cpp b/src/SipSession.cpp
index e9609b6..8c0e659 100644
--- a/src/SipSession.cpp
+++ b/src/SipSession.cpp
@@ -481,6 +481,10 @@ void SipSession::start(const Ice::Current&)
 
     pjsip_dlg_add_usage(dialog, &mImplPriv->mManager->getSessionModule()->getModule(), NULL);
 
+    pjsip_timer_setting session_timer_settings;
+    pjsip_timer_setting_default(&session_timer_settings);
+    pjsip_timer_init_session(inviteSession, &session_timer_settings);
+
     // Record our session within the dialog so code handling pjsip events can do STUFF
     SipSessionPtr session = new SipSession(*this);
     PJSipSessionModInfo *session_mod_info = new PJSipSessionModInfo(inviteSession, session);

commit 307e2b902ca3b1466aff00951914feb31bdedfec
Author: Joshua Colp <jcolp at digium.com>
Date:   Thu Apr 14 15:25:14 2011 -0300

    Fix a bug where we would attempt to send a 405 Method Not Supported for ACKs when we really want another module to handle them.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index 8717d6c..27756f9 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -772,6 +772,8 @@ pj_bool_t PJSipSessionModule::on_rx_request(pjsip_rx_data *rdata)
     pjsip_dialog *dlg = pjsip_rdata_get_dlg(rdata);
     switch (rdata->msg_info.msg->line.req.method.id)
     {
+    case PJSIP_ACK_METHOD:
+	return PJ_FALSE;
     case PJSIP_INVITE_METHOD:
         if (dlg == NULL)
         {

commit 0fafee70d034c4406eb11b37817b12a70b50304e
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Thu Apr 14 13:25:27 2011 -0500

    Minor fixes for various code constructs that trip up GCC with new warning
    options enabled (-Wextra, -Wconversion, -Wformat, and others).

diff --git a/src/PJSipLoggingModule.cpp b/src/PJSipLoggingModule.cpp
index 729aaf0..c94dec1 100644
--- a/src/PJSipLoggingModule.cpp
+++ b/src/PJSipLoggingModule.cpp
@@ -31,7 +31,7 @@ namespace AsteriskSCF
 namespace SipSessionManager
 {
 
-pj_status_t PJSipLoggingModule::load(pjsip_endpoint *endpt)
+pj_status_t PJSipLoggingModule::load(pjsip_endpoint*)
 {
     return PJ_SUCCESS;
 }
@@ -79,7 +79,7 @@ pj_status_t PJSipLoggingModule::on_tx_response(pjsip_tx_data *tdata)
     return PJ_SUCCESS;
 }
 
-void PJSipLoggingModule::on_tsx_state(pjsip_transaction *tsx, pjsip_event *event)
+void PJSipLoggingModule::on_tsx_state(pjsip_transaction*, pjsip_event*)
 {
 }
 
diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index 8717d6c..f527ad9 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -406,7 +406,7 @@ void PJSipSessionModule::replicateState(PJSipDialogModInfo *dlgInfo, PJSipTransa
     }
 }
 
-pj_status_t PJSipSessionModule::load(pjsip_endpoint *endpt)
+pj_status_t PJSipSessionModule::load(pjsip_endpoint*)
 {
     return PJ_SUCCESS;
 }
@@ -803,25 +803,25 @@ pj_bool_t PJSipSessionModule::on_rx_request(pjsip_rx_data *rdata)
  *
  * Linking errors abound if these member functions are not defined, though.
  */
-pj_bool_t PJSipSessionModule::on_rx_response(pjsip_rx_data *rdata)
+pj_bool_t PJSipSessionModule::on_rx_response(pjsip_rx_data*)
 {
     return PJ_FALSE;
 }
-pj_status_t PJSipSessionModule::on_tx_request(pjsip_tx_data *tdata)
+pj_status_t PJSipSessionModule::on_tx_request(pjsip_tx_data*)
 {
     return PJ_SUCCESS;
 }
-pj_status_t PJSipSessionModule::on_tx_response(pjsip_tx_data *tdata)
+pj_status_t PJSipSessionModule::on_tx_response(pjsip_tx_data*)
 {
     return PJ_SUCCESS;
 }
-void PJSipSessionModule::on_tsx_state(pjsip_transaction *tsx, pjsip_event *e)
+void PJSipSessionModule::on_tsx_state(pjsip_transaction*, pjsip_event*)
 {
     return;
 }
 
-void PJSipSessionModule::handleInviteResponse(pjsip_inv_session *inv,
-    pjsip_rx_data *rdata, pjsip_dialog *dlg)
+void PJSipSessionModule::handleInviteResponse(pjsip_inv_session* inv,
+    pjsip_rx_data* rdata, pjsip_dialog*)
 {
     int respCode = rdata->msg_info.msg->line.status.code;
     PJSipSessionModInfo *session_mod_info = (PJSipSessionModInfo*)inv->mod_data[mModule.id];
@@ -1017,7 +1017,7 @@ void PJSipSessionModule::invOnStateChanged(pjsip_inv_session *inv, pjsip_event *
     }
 }
 
-void PJSipSessionModule::invOnNewSession(pjsip_inv_session *inv, pjsip_event *event)
+void PJSipSessionModule::invOnNewSession(pjsip_inv_session*, pjsip_event*)
 {
     //stub
 }
@@ -1082,13 +1082,13 @@ void PJSipSessionModule::invOnTsxStateChanged(pjsip_inv_session *inv, pjsip_tran
     }
 }
 
-void PJSipSessionModule::invOnRxOffer(pjsip_inv_session *inv, const pjmedia_sdp_session *offer)
+void PJSipSessionModule::invOnRxOffer(pjsip_inv_session* inv, const pjmedia_sdp_session*)
 {
     PJSipSessionModInfo *session_mod_info = (PJSipSessionModInfo*)inv->mod_data[mModule.id];
     pjsip_inv_set_sdp_answer(inv, session_mod_info->getSessionPtr()->createSDPOffer());
 }
 
-void PJSipSessionModule::invOnCreateOffer(pjsip_inv_session *inv, pjmedia_sdp_session **p_offer)
+void PJSipSessionModule::invOnCreateOffer(pjsip_inv_session*, pjmedia_sdp_session**)
 {
     //stub
 }
@@ -1129,7 +1129,7 @@ void PJSipSessionModule::invOnMediaUpdate(pjsip_inv_session *inv, pj_status_t st
         {
             FormatDiscoverySDPPtr params = new FormatDiscoverySDP();
             params->category = "media_format";
-            params->payload = pj_strtoul(&remote_sdp->media[stream]->desc.fmt[format]);
+            std::stringstream(pj_strbuf(&remote_sdp->media[stream]->desc.fmt[format])) >> params->payload;
             params->type = std::string(pj_strbuf(&remote_sdp->media[stream]->desc.media),
                     pj_strlen(&remote_sdp->media[stream]->desc.media));
 
@@ -1200,14 +1200,14 @@ void PJSipSessionModule::invOnMediaUpdate(pjsip_inv_session *inv, pj_status_t st
     }
 }
 
-pjsip_redirect_op PJSipSessionModule::invOnRedirected(pjsip_inv_session *inv, const pjsip_uri *target,
-        const pjsip_event *e)
+pjsip_redirect_op PJSipSessionModule::invOnRedirected(pjsip_inv_session*, const pjsip_uri*,
+        const pjsip_event*)
 {
     //stub
     return PJSIP_REDIRECT_REJECT;
 }
 
-pjsip_dialog *PJSipSessionModule::uaOnDialogForked(pjsip_dialog *first_set, pjsip_rx_data *rdata)
+pjsip_dialog *PJSipSessionModule::uaOnDialogForked(pjsip_dialog*, pjsip_rx_data*)
 {
     //stub
     return NULL;
diff --git a/src/SipEndpointFactory.cpp b/src/SipEndpointFactory.cpp
index ea072c4..9016be3 100644
--- a/src/SipEndpointFactory.cpp
+++ b/src/SipEndpointFactory.cpp
@@ -33,7 +33,7 @@ SipEndpointPtr SipEndpointFactory::createEndpoint(const std::string& destination
     return endpoint;
 }
 
-void SipEndpointFactory::remove(const SipEndpointPtr& endpoint)
+void SipEndpointFactory::remove(const SipEndpointPtr&)
 {
     // TODO: Do we even need to remove sip endpoints yet?
 //   mEndpoints.erase(std::remove(mEndpoints.begin(), mEndpoints.end(), endpoint), mEndpoints.end());
diff --git a/src/SipSession.cpp b/src/SipSession.cpp
index e9609b6..f6e312d 100644
--- a/src/SipSession.cpp
+++ b/src/SipSession.cpp
@@ -587,7 +587,7 @@ pjmedia_sdp_session *SipSession::createSDPOffer()
     pj_strdup2(mImplPriv->mDialog->pool, &sdp->origin.user, "AsteriskSCF");
     pj_time_val tv;
     pj_gettimeofday(&tv);
-    sdp->origin.version = sdp->origin.id = tv.sec + 2208988800UL;
+    sdp->origin.version = sdp->origin.id = (pj_uint32_t) (tv.sec + 2208988800UL);
     pj_strdup2(mImplPriv->mDialog->pool, &sdp->origin.net_type, "IN");
     pj_strdup2(mImplPriv->mDialog->pool, &sdp->origin.addr_type, "IP4");
     sdp->origin.addr = *pj_gethostname();
@@ -612,7 +612,7 @@ pjmedia_sdp_session *SipSession::createSDPOffer()
         static_cast<pjmedia_sdp_media*>(pj_pool_zalloc(mImplPriv->mDialog->pool, sizeof(pjmedia_sdp_media)));
     sdp->media[0] = media;
     pj_strdup2(mImplPriv->mDialog->pool, &media->desc.media, "audio");
-    media->desc.port = stream->getLocalPort();
+    media->desc.port = (pj_uint16_t) stream->getLocalPort();
     media->desc.port_count = 1;
     pj_strdup2(mImplPriv->mDialog->pool, &media->desc.transport, "RTP/AVP");
 
diff --git a/src/SipSessionManagerApp.cpp b/src/SipSessionManagerApp.cpp
index 34d4128..ecd5338 100644
--- a/src/SipSessionManagerApp.cpp
+++ b/src/SipSessionManagerApp.cpp
@@ -569,7 +569,7 @@ void SipSessionManager::initialize(const string& appName, const Ice::Communicato
 /**
  * Overload of the IceBox::Service::start method.
  */
-void SipSessionManager::start(const string& name, const Ice::CommunicatorPtr& ic, const Ice::StringSeq& args)
+void SipSessionManager::start(const string& name, const Ice::CommunicatorPtr& ic, const Ice::StringSeq&)
 {
     // Initialize this component.
     initialize(name, ic);
@@ -621,7 +621,7 @@ void SipSessionManager::stop()
 
 extern "C"
 {
-ASTERISK_SCF_ICEBOX_EXPORT IceBox::Service* create(Ice::CommunicatorPtr communicator)
+ASTERISK_SCF_ICEBOX_EXPORT IceBox::Service* create(Ice::CommunicatorPtr)
 {
     return new SipSessionManager;
 }
diff --git a/src/SipStateReplicatorApp.cpp b/src/SipStateReplicatorApp.cpp
index fae2b3b..9ad6f2b 100644
--- a/src/SipStateReplicatorApp.cpp
+++ b/src/SipStateReplicatorApp.cpp
@@ -214,7 +214,7 @@ void SipStateReplicatorService::initialize(const std::string& appName, const Ice
     mAdapter->activate();
 }
 
-void SipStateReplicatorService::start(const string &name, const Ice::CommunicatorPtr& ic, const Ice::StringSeq& args)
+void SipStateReplicatorService::start(const string& name, const Ice::CommunicatorPtr& ic, const Ice::StringSeq&)
 {
     initialize(name, ic);
     // Plug into the Asterisk SCF discovery system so that the interfaces we provide
@@ -230,7 +230,7 @@ void SipStateReplicatorService::stop()
 
 extern "C"
 {
-ASTERISK_SCF_ICEBOX_EXPORT IceBox::Service* create(Ice::CommunicatorPtr communicator)
+ASTERISK_SCF_ICEBOX_EXPORT IceBox::Service* create(Ice::CommunicatorPtr)
 {
     return new SipStateReplicatorService;
 }
diff --git a/src/SipStateReplicatorListener.cpp b/src/SipStateReplicatorListener.cpp
index 36c09e4..248e9b2 100644
--- a/src/SipStateReplicatorListener.cpp
+++ b/src/SipStateReplicatorListener.cpp
@@ -162,7 +162,7 @@ public:
                     pjsip_ua_unregister_dlg(pjsip_ua_instance(), localDialog);
                     pj_strdup2(localDialog->pool, &localDialog->local.info->tag, dialog->mLocalTag.c_str());
                     localDialog->local.tag_hval = pj_hash_calc(0, localDialog->local.info->tag.ptr,
-                            localDialog->local.info->tag.slen);
+                            (unsigned int) localDialog->local.info->tag.slen);
                     pjsip_ua_register_dlg(pjsip_ua_instance(), localDialog);
                 }
 
@@ -170,7 +170,7 @@ public:
                 {
                     pj_strdup2(localDialog->pool, &localDialog->remote.info->tag, dialog->mRemoteTag.c_str());
                     localDialog->remote.tag_hval = pj_hash_calc(0, localDialog->remote.info->tag.ptr,
-                            localDialog->remote.info->tag.slen);
+                            (unsigned int) localDialog->remote.info->tag.slen);
                 }
 
                 // TODO: Handle mRouteSet, which is not as easy as it sounds!

commit 1f886e1225940e228bec9a983cf4a7b844e69cb4
Author: Mark Michelson <mmichelson at digium.com>
Date:   Thu Apr 14 10:29:23 2011 -0500

    Fix a shadowing warning.
    
    Thanks there Mr. Fleming!

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index 8d18093..8717d6c 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -558,7 +558,7 @@ void PJSipSessionModule::handleNewInvite(pjsip_rx_data *rdata)
     SipSessionPtr session;
     try
     {
-        SipSessionPtr session = caller->createSession(destination);
+        session = caller->createSession(destination);
     }
     catch (const Ice::Exception& ex)
     {

commit 24244fa6392253ffe2ff6c60757435be1b26da20
Author: Mark Michelson <mmichelson at digium.com>
Date:   Wed Apr 13 15:03:25 2011 -0500

    Catch exception when attempting to release media sessions.
    
    This was discovered by killing the media component during the middle
    of a call and then trying to hang up.

diff --git a/src/SipSession.cpp b/src/SipSession.cpp
index ed8d08d..e9609b6 100644
--- a/src/SipSession.cpp
+++ b/src/SipSession.cpp
@@ -562,7 +562,14 @@ void SipSession::destroy()
         for (std::vector<AsteriskSCF::Media::RTP::V1::RTPSessionPrx>::const_iterator i =
                  mImplPriv->mRTPSessions.begin(); i != mImplPriv->mRTPSessions.end(); ++i)
         {
-            (*i)->release();
+            try
+            {
+                (*i)->release();
+            }
+            catch (const Ice::Exception& ex)
+            {
+                lg(Error) << "Exception caught while trying to release a media session\n" << ex.what();
+            }
         }
     }
 

commit 2b68a207e8b733c5d32f7f3baa63ab743a4a4f82
Merge: 872dc33 929982d
Author: Mark Michelson <mmichelson at digium.com>
Date:   Wed Apr 13 13:45:22 2011 -0500

    Merge branch 'master' of git.asterisk.org:asterisk-scf/release/sip


commit 872dc33703f403a63e896a8b778a1e43fa7bad09
Author: Mark Michelson <mmichelson at digium.com>
Date:   Wed Apr 13 13:43:58 2011 -0500

    Catch exceptions thrown during session creation.
    
    We were testing what happens when various components "die"
    and what happens when we try to place a call in such a state. This
    change results in it being safe to place a call if the media
    component is not running.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index 58a30c5..8fca880 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -535,7 +535,18 @@ void PJSipSessionModule::handleNewInvite(pjsip_rx_data *rdata)
         lg(Debug) << "Call is destined for " << destination;
     }
 
-    SipSessionPtr session = caller->createSession(destination);
+    SipSessionPtr session;
+    try
+    {
+        SipSessionPtr session = caller->createSession(destination);
+    }
+    catch (const Ice::Exception& ex)
+    {
+        lg(Error) << "Exception caught while trying to create SIP session\n" << ex.what();
+        pjsip_inv_end_session(inv_session, 500, NULL, &tdata);
+        pjsip_inv_send_msg(inv_session, tdata);
+        return;
+    }
     session->setInviteSession(inv_session);
     session->setDialog(dlg);
     PJSipSessionModInfo *session_mod_info = new PJSipSessionModInfo(inv_session, session);

commit 929982dac23f77950f2b7ff18ec85b51a42de558
Author: Joshua Colp <jcolp at digium.com>
Date:   Wed Apr 13 14:41:00 2011 -0300

    Respond with a 405 Method Not Allowed response for requests that we do not support.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index 165f35b..7bfa199 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -779,7 +779,8 @@ pj_bool_t PJSipSessionModule::on_rx_request(pjsip_rx_data *rdata)
             break;
         }
     default:
-        return PJ_FALSE;
+	pjsip_endpt_respond_stateless(mEndpoint, rdata, 405, NULL, NULL, NULL);
+	break;
     }
 
     return PJ_TRUE;

commit 95c838e77ca99e63a13721981e2aa07867c4bea1
Author: Joshua Colp <jcolp at digium.com>
Date:   Wed Apr 13 12:00:45 2011 -0300

    Verify we can handle incoming INVITEs and if we can not then respond accordingly.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index c770f45..165f35b 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -441,16 +441,36 @@ void PJSipSessionModule::handleNewInvite(pjsip_rx_data *rdata)
 
     //XXX Put caller identification code in here!
 
-    //XXX According to pjsip docs, we should call
-    //pjsip_inv_verify_request to be sure we can
-    //handle the request. For now, just plunge forward.
+    pjsip_tx_data *tdata = NULL;
+    unsigned options = PJSIP_INV_SUPPORT_100REL;
+
+    // Verify we can handle this invite request and respond accordingly if we can not
+    if (pjsip_inv_verify_request(rdata, &options, NULL, NULL, mEndpoint, &tdata) != PJ_SUCCESS)
+    {
+	if (tdata)
+	{
+	    pjsip_endpt_send_response2(mEndpoint, rdata, tdata, NULL, NULL);
+	}
+	else
+	{
+	    pjsip_endpt_respond_stateless(mEndpoint, rdata, 500, NULL, NULL, NULL);
+	}
+	return;
+    }
 
     pjsip_dialog *dlg, *replaced_dlg;
-    pjsip_tx_data *tdata;
 
     // If this is an attended transfer and something is amuck... respond accordingly
     if (pjsip_replaces_verify_request(rdata, &replaced_dlg, PJ_FALSE, &tdata) != PJ_SUCCESS)
     {
+	if (tdata)
+	{
+	    pjsip_endpt_send_response2(mEndpoint, rdata, tdata, NULL, NULL);
+	}
+	else
+	{
+	    pjsip_endpt_respond_stateless(mEndpoint, rdata, 500, NULL, NULL, NULL);
+	}
         return;
     }
 
diff --git a/src/PJSipSessionModule.h b/src/PJSipSessionModule.h
index a1fdde3..e22c31d 100644
--- a/src/PJSipSessionModule.h
+++ b/src/PJSipSessionModule.h
@@ -95,6 +95,7 @@ private:
     AsteriskSCF::Core::Discovery::V1::ServiceLocatorPrx mServiceLocator;
     AsteriskSCF::SmartProxy::SmartProxy<AsteriskSCF::SIP::V1::SipStateReplicatorPrx> mStateReplicator;
     AsteriskSCF::System::Component::V1::ReplicaPtr mReplica;
+    pjsip_endpoint *mEndpoint;
 };
 
 }; //end namespace SipSessionManager
diff --git a/src/PJSipSessionModuleConstruction.cpp b/src/PJSipSessionModuleConstruction.cpp
index c1da3a7..9f7d71e 100644
--- a/src/PJSipSessionModuleConstruction.cpp
+++ b/src/PJSipSessionModuleConstruction.cpp
@@ -99,7 +99,7 @@ PJSipSessionModule::PJSipSessionModule(pjsip_endpoint *endpt,
     const AsteriskSCF::System::Component::V1::ReplicaPtr& replica)
     : mName(moduleName), mEndpointFactory(endpointFactoryPtr),
       mSessionRouter(sessionRouter), mServiceLocator(serviceLocator),
-      mStateReplicator(stateReplicator), mReplica(replica)
+      mStateReplicator(stateReplicator), mReplica(replica), mEndpoint(endpt)
 {
     sessionModule = this;
     mModule.name = pj_str(moduleName);

commit d7418a0d23a8a23431e859442c782501abfc0553
Merge: 7a25b80 6ced932
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Tue Apr 12 16:35:43 2011 -0500

    Merge branch 'master' of git.asterisk.org:asterisk-scf/release/sip


commit 7a25b8073e1e0d2bb2391a3feafb61b6bdacb380
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Tue Apr 12 16:35:37 2011 -0500

    Resolve a variable shadowing warning.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index 58a30c5..de17ddc 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -1151,8 +1151,7 @@ void PJSipSessionModule::invOnMediaUpdate(pjsip_inv_session *inv, pj_status_t st
                 // format
                 if (service != 0)
                 {
-                    FormatPtr format = FormatPtr::dynamicCast(service->getFormat(params));
-                    formats.push_back(format);
+                    formats.push_back(FormatPtr::dynamicCast(service->getFormat(params)));
                 }
             }
             catch (...)

commit 6ced932f19f094541afd5c7ef8b069ea83f26438
Author: Joshua Colp <jcolp at digium.com>
Date:   Tue Apr 12 18:22:42 2011 -0300

    Fix a bug where attempting to send a message that would use a transport that is unavailable would cause a crash.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index 58a30c5..b2884f1 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -933,13 +933,19 @@ void PJSipSessionModule::invOnStateChanged(pjsip_inv_session *inv, pjsip_event *
         session_mod_info->mNeedsRemoval = true;
         pjsip_dialog *dlg = inv->dlg;
         PJSipDialogModInfo *dlg_mod_info = (PJSipDialogModInfo*) dlg->mod_data[mModule.id];
-        dlg_mod_info->mNeedsRemoval = true;
+	if (dlg_mod_info)
+	{
+	    dlg_mod_info->mNeedsRemoval = true;
+	}
         lg(Debug) << "Replicating state on DISCONNECTED inv_state.";
         replicateState(dlg_mod_info, NULL, session_mod_info);
         delete session_mod_info;
-        delete dlg_mod_info;
-        dlg->mod_data[mModule.id] = 0;
-        inv->mod_data[mModule.id] = 0;
+	inv->mod_data[mModule.id] = 0;
+	if (dlg_mod_info)
+	{
+	    delete dlg_mod_info;
+	    dlg->mod_data[mModule.id] = 0;
+	}
     }
     if (event->type == PJSIP_EVENT_RX_MSG && inv->state == PJSIP_INV_STATE_CONFIRMED)
     {

commit 238e6bb3ddcb4d697e3ac5189c73e0683132ad5e
Author: Mark Michelson <mmichelson at digium.com>
Date:   Tue Apr 12 10:52:47 2011 -0500

    Make sure not to try to end a non-existent inv_session.
    
    This was triggered by attempting to call a destination that did not
    have a host and port configured. The session setup would not be able
    to create a pjsip_inv_session, so when stop() was called on the session,
    we were passing a NULL pointer to PJSIP, triggering an assertion.
    
    It's perfectly valid for the pjsip_inv_session to be NULL when stopping
    a session, so we just need to make sure we don't pass it on to PJSIP.

diff --git a/src/SipSession.cpp b/src/SipSession.cpp
index cd003e3..ed8d08d 100644
--- a/src/SipSession.cpp
+++ b/src/SipSession.cpp
@@ -523,7 +523,7 @@ void SipSession::stop(const AsteriskSCF::SessionCommunications::V1::ResponseCode
     // On an outbound call, if we have not received a provisional response yet, then PJSIP will
     // set packet NULL but still return PJ_SUCCESS. In this case, if we attempt to call pjsip_inv_send_msg,
     // then we will trigger an assertion since the packet we pass in is NULL.
-    if ((pjsip_inv_end_session(mImplPriv->mInviteSession, code, NULL, &packet)) == PJ_SUCCESS && packet)
+    if (mImplPriv->mInviteSession && (pjsip_inv_end_session(mImplPriv->mInviteSession, code, NULL, &packet) == PJ_SUCCESS) && packet)
     {
         pjsip_inv_send_msg(mImplPriv->mInviteSession, packet);
     }

commit 04e2c162bc7f6cd6b9bceb74089d1a9a29148b59
Author: Joshua Colp <jcolp at digium.com>
Date:   Mon Apr 11 18:20:38 2011 -0300

    Fix visitor generation issue with some specific endpoint configuration items.

diff --git a/local-slice/SipConfigurationIf.ice b/local-slice/SipConfigurationIf.ice
index 5e6dc0b..58cae24 100644
--- a/local-slice/SipConfigurationIf.ice
+++ b/local-slice/SipConfigurationIf.ice
@@ -109,7 +109,7 @@ module V1
    /**
     * Host information configuration item
     */
-   class SipHostItem extends SipConfigurationItem
+   ["visitor:SipConfigurationItemVisitor"] class SipHostItem extends SipConfigurationItem
    {
       /**
        * String containing the IP address or string address
@@ -125,14 +125,14 @@ module V1
    /**
     * Source transport address configuration item
     */
-   class SipSourceTransportAddressItem extends SipHostItem
+   ["visitor:SipConfigurationItemVisitor"] class SipSourceTransportAddressItem extends SipHostItem
    {
    };
 
    /**
     * Target destination address configuration item
     */
-   class SipTargetDestinationAddressItem extends SipHostItem
+   ["visitor:SipConfigurationItemVisitor"] class SipTargetDestinationAddressItem extends SipHostItem
    {
    };
 

commit 0c1ba29dc6631ac5ce38a3d2629fe17afcd39627
Author: Joshua Colp <jcolp at digium.com>
Date:   Mon Apr 11 16:13:51 2011 -0300

    Fix a bug where the routing id was not present before being used.

diff --git a/src/SipSessionManagerApp.cpp b/src/SipSessionManagerApp.cpp
index c896e1c..134dca2 100644
--- a/src/SipSessionManagerApp.cpp
+++ b/src/SipSessionManagerApp.cpp
@@ -336,8 +336,6 @@ void SipSessionManager::registerWithRoutingService()
 
     mEndpointFactory->generateRoutingDestinations(destinations);
 
-    mRoutingId = mCommunicator->getProperties()->getPropertyWithDefault("Sip.RoutingId", "pjsip");
-
     EndpointLocatorPrx locator = EndpointLocatorPrx::uncheckedCast(mGlobalAdapter->createDirectProxy(mCommunicator->stringToIdentity(EndpointLocatorObjectId)));
     mRoutingServiceLocatorRegistry->addEndpointLocator(mRoutingId, destinations, locator);
 }
@@ -366,6 +364,9 @@ void SipSessionManager::locateRoutingService()
 
     AsteriskSCF::SmartProxy::SmartProxy<LocatorRegistryPrx> pw(mServiceLocator, genericparams, lg);
     mRoutingServiceLocatorRegistry = pw;
+
+    // This exists here since it may need to be known before actually contacting the routing service
+    mRoutingId = mCommunicator->getProperties()->getPropertyWithDefault("Sip.RoutingId", "pjsip");
 }
 
 void SipSessionManager::locateStateReplicator()

commit df6502431fb6d495c88eb9a223820f063432bd7e
Author: Joshua Colp <jcolp at digium.com>
Date:   Mon Apr 11 15:58:27 2011 -0300

    Move initialization of the routing service proxy so it can be passed to the configuration service.

diff --git a/src/SipSessionManagerApp.cpp b/src/SipSessionManagerApp.cpp
index 82738d5..c896e1c 100644
--- a/src/SipSessionManagerApp.cpp
+++ b/src/SipSessionManagerApp.cpp
@@ -533,6 +533,9 @@ void SipSessionManager::initialize(const std::string appName, const Ice::Communi
         mEndpointFactory.reset(new SipEndpointFactory(mGlobalAdapter, mPJSipManager, mServiceLocator, mReplicaService));
         lg(Debug) << "Created SIP endpoint factory";
 
+	// Locate the Routing Service so that we can do routing. This is done here so it can be passed to the configuration service.
+	locateRoutingService();
+
         // Create and publish our Configuration interface support.
         mConfigurationService = new ConfigurationServiceImpl(mPJSipManager, mEndpointFactory, mRoutingId, mRoutingServiceLocatorRegistry);
         mGlobalAdapter->add(mConfigurationService, mCommunicator->stringToIdentity(ConfigurationServiceId));
@@ -578,9 +581,6 @@ void SipSessionManager::start(const string& name, const Ice::CommunicatorPtr& ic
     // can be located.
     registerWithServiceLocator();
 
-    // Locate the Routing Service so that we can do routing.
-    locateRoutingService();
-
     // Locate the Session Router so we can REALLY do routing.
     locateSessionRouter();
 

commit 6fa0d1a69f5290d1154951965017380dc4e61825
Author: Joshua Colp <jcolp at digium.com>
Date:   Mon Apr 11 15:30:30 2011 -0300

    Do not attempt to start a TLS transport if pjsip has not been built with support for it.

diff --git a/src/PJSipManager.cpp b/src/PJSipManager.cpp
index 7571b80..2fb8f6f 100644
--- a/src/PJSipManager.cpp
+++ b/src/PJSipManager.cpp
@@ -189,7 +189,9 @@ pjsip_tpfactory *PJSipManager::createTLSTransport(std::string address, int port,
 
     pjsip_tpfactory *tlsTransport = NULL;
 
+#if PJSIP_HAS_TLS_TRANSPORT
     if (pjsip_tls_transport_start(mEndpoint, tlsSettings, &tlsAddr, NULL, 2, &tlsTransport) != PJ_SUCCESS)
+#endif
     {
         lg(Error) << "Failed to create TLS transport.";
     }

commit 06ba07d7d56ed8447eeb188eb4bb5770a9c41adc
Author: Joshua Colp <jcolp at digium.com>
Date:   Mon Apr 11 15:19:45 2011 -0300

    Fix incompatibility with latest visitor generation code. Yay these are now in the visitor!

diff --git a/local-slice/SipConfigurationIf.ice b/local-slice/SipConfigurationIf.ice
index c89ed18..5e6dc0b 100644
--- a/local-slice/SipConfigurationIf.ice
+++ b/local-slice/SipConfigurationIf.ice
@@ -97,7 +97,7 @@ module V1
     * Generic SIP transport group that others derive from, primarily created since each one has
     * the requirement of a name
     */
-   class SipTransportGroup extends SipConfigurationGroup
+   ["visitor:SipConfigurationGroupVisitor"] class SipTransportGroup extends SipConfigurationGroup
    {
       /**
        * Name of the specific transport. Since each one may have multiple transports this differentiates
@@ -347,21 +347,21 @@ module V1
    /**
     * Group of configuration items related to a UDP transport
    */
-   class SipUDPTransportGroup extends SipTransportGroup
+   ["visitor:SipConfigurationGroupVisitor"] class SipUDPTransportGroup extends SipTransportGroup
    {
    };
 
    /**
     * Group of configuration items related to a TCP transport
     */
-   class SipTCPTransportGroup extends SipTransportGroup
+   ["visitor:SipConfigurationGroupVisitor"] class SipTCPTransportGroup extends SipTransportGroup
    {
    };
 
    /**
     * Group of configuration items related to a TLS transport
     */
-   class SipTLSTransportGroup extends SipTransportGroup
+   ["visitor:SipConfigurationGroupVisitor"] class SipTLSTransportGroup extends SipTransportGroup
    {
    };
 

commit a2ce7d678f3574f6f63691dacead5e2574ded080
Author: Joshua Colp <jcolp at digium.com>
Date:   Mon Apr 11 14:30:08 2011 -0300

    Update the routing service when endpoint configurations are pushed into the SIP component.

diff --git a/src/SipConfiguration.cpp b/src/SipConfiguration.cpp
index 89e6d63..e374891 100644
--- a/src/SipConfiguration.cpp
+++ b/src/SipConfiguration.cpp
@@ -36,6 +36,7 @@ namespace SipSessionManager
 
 using namespace AsteriskSCF::SIP::V1;
 using namespace AsteriskSCF::System::Configuration::V1;
+using namespace AsteriskSCF::Core::Routing::V1;
 
 class UDPTransportImplPriv
 {
@@ -168,7 +169,9 @@ public:
     /**
      * Constructor for this private class
      */
-    ConfigurationServiceImplPriv(PJSipManager *manager, boost::shared_ptr<SipEndpointFactory> factory) : mPJSipManager(manager), mEndpointFactory(factory) { };
+    ConfigurationServiceImplPriv(PJSipManager *manager, boost::shared_ptr<SipEndpointFactory> factory, std::string& id,
+	AsteriskSCF::SmartProxy::SmartProxy<LocatorRegistryPrx> registry) :
+	mPJSipManager(manager), mEndpointFactory(factory), mRoutingId(id), mRoutingServiceLocatorRegistry(registry) { };
     
     /**
      * Configured SIP domains
@@ -209,10 +212,21 @@ public:
      * Pointer to the endpoint factory used to create endpoints
      */
     boost::shared_ptr<SipEndpointFactory> mEndpointFactory;
+
+    /**
+     * Identifier for our endpoint locator.
+     */
+    std::string mRoutingId;
+
+    /**
+     * Proxy to endpoint locator registry
+     */
+    AsteriskSCF::SmartProxy::SmartProxy<LocatorRegistryPrx> mRoutingServiceLocatorRegistry;
 };
 
-ConfigurationServiceImpl::ConfigurationServiceImpl(PJSipManager *manager, boost::shared_ptr<SipEndpointFactory> factory) :
-    mImplPriv(new ConfigurationServiceImplPriv(manager, factory))
+ConfigurationServiceImpl::ConfigurationServiceImpl(PJSipManager *manager, boost::shared_ptr<SipEndpointFactory> factory,
+    std::string& id, AsteriskSCF::SmartProxy::SmartProxy<LocatorRegistryPrx> registry) :
+    mImplPriv(new ConfigurationServiceImplPriv(manager, factory, id, registry))
 {
 }
 
@@ -917,6 +931,11 @@ void ConfigurationServiceImpl::setConfiguration(const AsteriskSCF::System::Confi
     {
 	(*group)->visit(v);
     }
+
+    // Update endpoint locator with any new destinations that may have been pushed
+    RegExSeq destinations;
+    mImplPriv->mEndpointFactory->generateRoutingDestinations(destinations);
+    mImplPriv->mRoutingServiceLocatorRegistry->setEndpointLocatorDestinationIds(mImplPriv->mRoutingId, destinations);
 }
 
 void ConfigurationServiceImpl::removeConfigurationItems(const AsteriskSCF::System::Configuration::V1::ConfigurationGroupSeq& groups, const Ice::Current&)
diff --git a/src/SipConfiguration.h b/src/SipConfiguration.h
index 5444ddd..d658614 100644
--- a/src/SipConfiguration.h
+++ b/src/SipConfiguration.h
@@ -21,6 +21,9 @@
 #include <boost/shared_ptr.hpp>
 
 #include <AsteriskSCF/System/Component/ConfigurationIf.h>
+#include <AsteriskSCF/Core/Routing/RoutingIf.h>
+
+#include <AsteriskSCF/SmartProxy.h>
 
 #include "PJSipManager.h"
 #include "SipEndpointFactory.h"
@@ -43,7 +46,8 @@ class ConfigurationServiceImplPriv;
 class ConfigurationServiceImpl : public AsteriskSCF::System::Configuration::V1::ConfigurationService
 {
 public:
-    ConfigurationServiceImpl(PJSipManager*, boost::shared_ptr<SipEndpointFactory>);
+    ConfigurationServiceImpl(PJSipManager*, boost::shared_ptr<SipEndpointFactory>, std::string&,
+	AsteriskSCF::SmartProxy::SmartProxy<AsteriskSCF::Core::Routing::V1::LocatorRegistryPrx>);
     AsteriskSCF::System::Configuration::V1::ConfigurationGroupSeq getConfiguration(const AsteriskSCF::System::Configuration::V1::ConfigurationGroupSeq&, const Ice::Current&);
     AsteriskSCF::System::Configuration::V1::ConfigurationGroupSeq getConfigurationAll(const AsteriskSCF::System::Configuration::V1::ConfigurationGroupSeq&, const Ice::Current&);
     AsteriskSCF::System::Configuration::V1::ConfigurationGroupSeq getConfigurationGroups(const Ice::Current&);
diff --git a/src/SipSessionManagerApp.cpp b/src/SipSessionManagerApp.cpp
index 9df89d0..82738d5 100644
--- a/src/SipSessionManagerApp.cpp
+++ b/src/SipSessionManagerApp.cpp
@@ -534,7 +534,7 @@ void SipSessionManager::initialize(const std::string appName, const Ice::Communi
         lg(Debug) << "Created SIP endpoint factory";
 
         // Create and publish our Configuration interface support.
-        mConfigurationService = new ConfigurationServiceImpl(mPJSipManager, mEndpointFactory);
+        mConfigurationService = new ConfigurationServiceImpl(mPJSipManager, mEndpointFactory, mRoutingId, mRoutingServiceLocatorRegistry);
         mGlobalAdapter->add(mConfigurationService, mCommunicator->stringToIdentity(ConfigurationServiceId));
         lg(Debug) << "Created SIP Configuration Implementation";
 

commit 413bb6369fb40c99a952305fa924dc087da7792c
Author: Joshua Colp <jcolp at digium.com>
Date:   Thu Apr 7 11:37:50 2011 -0300

    Remove old code.

diff --git a/src/SipSession.cpp b/src/SipSession.cpp
index 0354394..6fb6409 100644
--- a/src/SipSession.cpp
+++ b/src/SipSession.cpp
@@ -293,29 +293,6 @@ void SipSession::indicate(const AsteriskSCF::SessionCommunications::V1::Indicati
 }
 
 /**
- * An implementation of the connect method as defined in SessionCommunications.ice which sends
- * a 200 OK with SDP to the SIP endpoint.
- */
-void SipSession::connect(const Ice::Current&)
-{
-    pjmedia_sdp_session *sdp = createSDPOffer();
-    pjsip_tx_data *packet;
-    if ((pjsip_inv_answer(mImplPriv->mInviteSession, 200, NULL, sdp, &packet)) == PJ_SUCCESS)
-    {
-        pjsip_inv_send_msg(mImplPriv->mInviteSession, packet);
-    }
-}
-
-/**
- * An implementation of the flash method as defined in SessionCommunications.ice which sends
- * nothing, presently, to the SIP endpoint.
- */
-void SipSession::flash(const Ice::Current&)
-{
-    // This is usually transported using INFO or RFC2833, so for now just pretend it does not exist
-}
-
-/**
  * An implementation of the getEndpoint method as defined in SessionCommunications.ice
  */
 AsteriskSCF::SessionCommunications::V1::SessionEndpointPrx SipSession::getEndpoint(const Ice::Current&)
@@ -427,37 +404,6 @@ void SipSession::removeBridge(const AsteriskSCF::SessionCommunications::V1::Sess
 }
 
 /**
- * An implementation of the hold method as defined in SessionCommunications.ice which sends
- * a reinvite with sendonly attribute and no connection info to the SIP endpoint.
- */
-void SipSession::hold(const Ice::Current&)
-{
-    // TODO: Update SDP with sendonly attribute and no IP
-
-    // TODO: This is actually passing the hold through, we will need to support local generation
-
-    pjsip_tx_data *packet;
-    if ((pjsip_inv_reinvite(mImplPriv->mInviteSession, NULL, NULL, &packet)) == PJ_SUCCESS)
-    {
-        pjsip_inv_send_msg(mImplPriv->mInviteSession, packet);
-    }
-}
-
-/**
- * An implementation of the progress method as defined in SessionCommunications.ice which sends
- * a 183 Session Progress with SDP to the SIP endpoint.
- */
-void SipSession::progress(const AsteriskSCF::SessionCommunications::V1::ResponseCodePtr&, const Ice::Current&)
-{
-    pjmedia_sdp_session *sdp = createSDPOffer();
-    pjsip_tx_data *packet;
-    if ((pjsip_inv_answer(mImplPriv->mInviteSession, 183, NULL, sdp, &packet)) == PJ_SUCCESS)
-    {
-        pjsip_inv_send_msg(mImplPriv->mInviteSession, packet);
-    }
-}
-
-/**
  * An implementation of the removeListener method as defined in SessionCommunications.ice
  */
 void SipSession::removeListener(const AsteriskSCF::SessionCommunications::V1::SessionListenerPrx& listener, const Ice::Current&)
@@ -477,20 +423,6 @@ void SipSession::removeListener(const AsteriskSCF::SessionCommunications::V1::Se
 }
 
 /**
- * An implementation of the ring method as defined in SessionCommunications.ice which sends
- * a 180 Ringing without SDP to the SIP endpoint.
- */
-void SipSession::ring(const Ice::Current&)
-{
-    pjsip_tx_data *packet;
-
-    if ((pjsip_inv_answer(mImplPriv->mInviteSession, 180, NULL, NULL, &packet)) == PJ_SUCCESS)
-    {
-        pjsip_inv_send_msg(mImplPriv->mInviteSession, packet);
-    }
-}
-
-/**
  * An implementation of the start method as defined in SessionCommunications.ice which sends
  * an INVITE with SDP to the SIP endpoint.
  */
@@ -586,23 +518,6 @@ void SipSession::stop(const AsteriskSCF::SessionCommunications::V1::ResponseCode
 }
 
 /**
- * An implementation of the unhold method as defined in SessionCommunications.ice which sends
- * a reinvite with sendrecv attribute and connection information to the SIP endpoint.
- */
-void SipSession::unhold(const Ice::Current&)
-{
-    // TODO: Update SDP with sendrecv and IP
-
-    // TODO: This is actually passing the unhold through, we will need to support local generation
-
-    pjsip_tx_data *packet;
-    if ((pjsip_inv_reinvite(mImplPriv->mInviteSession, NULL, NULL, &packet)) == PJ_SUCCESS)
-    {
-        pjsip_inv_send_msg(mImplPriv->mInviteSession, packet);
-    }
-}
-
-/**
  * Internal function called to destroy an endpoint. This is controlled by signaling.
  */
 void SipSession::destroy()

commit 626ae7f220d8b0ad44820a5110eeceb61248d032
Author: Joshua Colp <jcolp at digium.com>
Date:   Thu Apr 7 11:20:21 2011 -0300

    Finish migration to new indicate support.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index b04d252..3b818f1 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -918,6 +918,8 @@ void PJSipSessionModule::invOnStateChanged(pjsip_inv_session *inv, pjsip_event *
         }
         std::vector<AsteriskSCF::SessionCommunications::V1::SessionListenerPrx> listeners = session->getListeners();
         lg(Debug) << "Relating stopped state to " << listeners.size() << " listeners";
+	AsteriskSCF::SessionCommunications::V1::StoppedIndicationPtr stopped(new AsteriskSCF::SessionCommunications::V1::StoppedIndication());
+	stopped->response = response;
         for (std::vector<AsteriskSCF::SessionCommunications::V1::SessionListenerPrx>::iterator listener =
                  listeners.begin();
              listener != listeners.end();
@@ -925,7 +927,7 @@ void PJSipSessionModule::invOnStateChanged(pjsip_inv_session *inv, pjsip_event *
         {
             try
             {
-                (*listener)->stopped(session->getSessionProxy(), response);
+                (*listener)->indicated(session->getSessionProxy(), stopped);
             }
             catch (const Ice::Exception &ex)
             {

commit ab478a5684fed6d71a1169104ff9067a240b1e81
Author: Joshua Colp <jcolp at digium.com>
Date:   Thu Apr 7 10:37:38 2011 -0300

    Use new method to send indications.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index 58a30c5..b04d252 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -823,9 +823,9 @@ void PJSipSessionModule::handleInviteResponse(pjsip_inv_session *inv,
             try
             {
                 ListenerCallbackPtr cb(new ListenerCallback(RingingCallbackName));
-                Callback_SessionListener_ringingPtr ringingCB =
-                    newCallback_SessionListener_ringing(cb, &ListenerCallback::failure);
-                (*listener)->begin_ringing(session->getSessionProxy(), ringingCB);
+                Callback_SessionListener_indicatedPtr ringingCB =
+                    newCallback_SessionListener_indicated(cb, &ListenerCallback::failure);
+                (*listener)->begin_indicated(session->getSessionProxy(), new RingingIndication(), ringingCB);
             }
             catch (const Ice::Exception &ex)
             {
@@ -846,9 +846,11 @@ void PJSipSessionModule::handleInviteResponse(pjsip_inv_session *inv,
             try
             {
                 ListenerCallbackPtr cb(new ListenerCallback(ProgressingCallbackName));
-                Callback_SessionListener_progressingPtr progressingCB =
-                    newCallback_SessionListener_progressing(cb, &ListenerCallback::failure);
-                (*listener)->begin_progressing(session->getSessionProxy(), response, progressingCB);
+                Callback_SessionListener_indicatedPtr progressingCB =
+                    newCallback_SessionListener_indicated(cb, &ListenerCallback::failure);
+		ProgressingIndicationPtr progressing(new ProgressingIndication());
+		progressing->response = response;
+                (*listener)->begin_indicated(session->getSessionProxy(), progressing, progressingCB);
             }
             catch (const Ice::Exception &ex)
             {
@@ -869,9 +871,9 @@ void PJSipSessionModule::handleInviteResponse(pjsip_inv_session *inv,
                 try
                 {
                     ListenerCallbackPtr cb(new ListenerCallback(ConnectedCallbackName));
-                    Callback_SessionListener_connectedPtr connectedCB =
-                        newCallback_SessionListener_connected(cb, &ListenerCallback::failure);
-                    (*listener)->begin_connected(session->getSessionProxy(), connectedCB);
+                    Callback_SessionListener_indicatedPtr connectedCB =
+                        newCallback_SessionListener_indicated(cb, &ListenerCallback::failure);
+                    (*listener)->begin_indicated(session->getSessionProxy(), new ConnectedIndication(), connectedCB);
                 }
                 catch (const Ice::Exception &ex)
                 {

commit dd6f1be516148b8f328adf3f174c43fe949a1b61
Author: Joshua Colp <jcolp at digium.com>
Date:   Thu Apr 7 10:18:30 2011 -0300

    Add new indicate support.

diff --git a/src/SipSession.cpp b/src/SipSession.cpp
index cd003e3..0354394 100644
--- a/src/SipSession.cpp
+++ b/src/SipSession.cpp
@@ -237,6 +237,62 @@ AsteriskSCF::SessionCommunications::V1::SessionInfoPtr SipSession::addListener(
 }
 
 /**
+ * An implementation of the indicate method as defined in SessionCommunications.ice
+ */
+void SipSession::indicate(const AsteriskSCF::SessionCommunications::V1::IndicationPtr& indication, const Ice::Current&)
+{
+    AsteriskSCF::SessionCommunications::V1::ConnectIndicationPtr connect;
+    AsteriskSCF::SessionCommunications::V1::FlashIndicationPtr flash;
+    AsteriskSCF::SessionCommunications::V1::HoldIndicationPtr hold;
+    AsteriskSCF::SessionCommunications::V1::ProgressIndicationPtr progress;
+    AsteriskSCF::SessionCommunications::V1::RingIndicationPtr ring;
+    AsteriskSCF::SessionCommunications::V1::UnholdIndicationPtr unhold;
+    pjsip_tx_data *packet = NULL;
+    pj_status_t status = -1;
+
+    if ((connect = AsteriskSCF::SessionCommunications::V1::ConnectIndicationPtr::dynamicCast(indication)))
+    {
+	pjmedia_sdp_session *sdp = createSDPOffer();
+	status = pjsip_inv_answer(mImplPriv->mInviteSession, 200, NULL, sdp, &packet);
+    }
+    else if ((flash = AsteriskSCF::SessionCommunications::V1::FlashIndicationPtr::dynamicCast(indication)))
+    {
+	// This is usually transported using INFO or RFC2833, so for now just pretend it does not exist
+    }
+    else if ((hold = AsteriskSCF::SessionCommunications::V1::HoldIndicationPtr::dynamicCast(indication)))
+    {
+	// TODO: Update SDP with sendonly attribute and no IP
+
+	// TODO: This is actually passing the hold through, we will need to support local generation
+
+	status = pjsip_inv_reinvite(mImplPriv->mInviteSession, NULL, NULL, &packet);
+    }
+    else if ((progress = AsteriskSCF::SessionCommunications::V1::ProgressIndicationPtr::dynamicCast(indication)))
+    {
+	pjmedia_sdp_session *sdp = createSDPOffer();
+	status = pjsip_inv_answer(mImplPriv->mInviteSession, 183, NULL, sdp, &packet);
+    }
+    else if ((ring = AsteriskSCF::SessionCommunications::V1::RingIndicationPtr::dynamicCast(indication)))
+    {
+	status = pjsip_inv_answer(mImplPriv->mInviteSession, 180, NULL, NULL, &packet);
+    }
+    else if ((unhold = AsteriskSCF::SessionCommunications::V1::UnholdIndicationPtr::dynamicCast(indication)))
+    {
+	// TODO: Update SDP with sendrecv and IP
+
+	// TODO: This is actually passing the unhold through, we will need to support local generation
+
+	status = pjsip_inv_reinvite(mImplPriv->mInviteSession, NULL, NULL, &packet);
+    }
+
+    // If the indication produced a packet send it out
+    if (status == PJ_SUCCESS)
+    {
+	pjsip_inv_send_msg(mImplPriv->mInviteSession, packet);
+    }
+}
+
+/**
  * An implementation of the connect method as defined in SessionCommunications.ice which sends
  * a 200 OK with SDP to the SIP endpoint.
  */
diff --git a/src/SipSession.h b/src/SipSession.h
index 9466267..3596260 100644
--- a/src/SipSession.h
+++ b/src/SipSession.h
@@ -77,6 +77,7 @@ public:
      */
     AsteriskSCF::SessionCommunications::V1::SessionInfoPtr
         addListener(const AsteriskSCF::SessionCommunications::V1::SessionListenerPrx&, const Ice::Current&);
+    void indicate(const AsteriskSCF::SessionCommunications::V1::IndicationPtr&, const Ice::Current&);
     void connect(const Ice::Current&);
     void flash(const Ice::Current&);
     AsteriskSCF::SessionCommunications::V1::SessionEndpointPrx getEndpoint(const Ice::Current&);

commit 0024d93bcf841b13eec471b2d3f726cdbe686978
Merge: db6b640 827fc66
Author: Brent Eagles <beagles at digium.com>
Date:   Fri Apr 1 13:20:31 2011 -0230

    Merge branch 'code-conventions'


commit db6b6404ec286000fcb921edfe080fc6c2cc1c9d
Author: Brent Eagles <beagles at digium.com>
Date:   Thu Mar 31 11:08:16 2011 -0230

    Add unsliceable keyword to classes deriving from an unsliceable parent.

diff --git a/local-slice/SipStateReplicationIf.ice b/local-slice/SipStateReplicationIf.ice
index 80d9fae..c7d16d9 100644
--- a/local-slice/SipStateReplicationIf.ice
+++ b/local-slice/SipStateReplicationIf.ice
@@ -31,7 +31,7 @@ module V1
    const string StateReplicatorComponentCategory = "SipStateReplicatorComponent";
    const string StateReplicatorDiscoveryCategory = "SipStateReplicator";
 
-   class SipStateReplicatorParams extends AsteriskSCF::Core::Discovery::V1::ServiceLocatorParams
+   unsliceable class SipStateReplicatorParams extends AsteriskSCF::Core::Discovery::V1::ServiceLocatorParams
    {
       string mName;
    };

commit 148efc74ad128c054300d461fb29ae8e31392bed
Author: Joshua Colp <jcolp at digium.com>
Date:   Tue Mar 22 09:14:59 2011 -0300

    Now that pjsip has IPv6 TLS transport support uncomment support for it in our component.

diff --git a/src/PJSipManager.cpp b/src/PJSipManager.cpp
index e13e846..7571b80 100644
--- a/src/PJSipManager.cpp
+++ b/src/PJSipManager.cpp
@@ -189,12 +189,11 @@ pjsip_tpfactory *PJSipManager::createTLSTransport(std::string address, int port,
 
     pjsip_tpfactory *tlsTransport = NULL;
 
-/*
     if (pjsip_tls_transport_start(mEndpoint, tlsSettings, &tlsAddr, NULL, 2, &tlsTransport) != PJ_SUCCESS)
     {
         lg(Error) << "Failed to create TLS transport.";
     }
-*/
+
     return tlsTransport;
 }
 

commit dc0dbb97620670914e030aab47cf1e0f90915ef1
Author: Joshua Colp <jcolp at digium.com>
Date:   Sun Mar 20 11:30:25 2011 -0300

    Incorporate code review feedback.

diff --git a/config/SipConfigurator.py b/config/SipConfigurator.py
index 018bdc0..d04f2ac 100755
--- a/config/SipConfigurator.py
+++ b/config/SipConfigurator.py
... 5443 lines suppressed ...


-- 
asterisk-scf/integration/sip.git



More information about the asterisk-scf-commits mailing list