[asterisk-scf-commits] asterisk-scf/integration/examples.git branch "basecomponentfix" created.

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Mon Sep 26 14:11:15 CDT 2011


branch "basecomponentfix" has been created
        at  dea70b5111a08460020562b45b48fdbb67f84d8a (commit)

- Log -----------------------------------------------------------------
commit dea70b5111a08460020562b45b48fdbb67f84d8a
Author: Benjamin Oldenburg <benjamin.oldenburg at bericom.eu>
Date:   Mon Sep 26 21:10:30 2011 +0200

    Config files changes in accordance to ASTSCF-289

diff --git a/configs/BridgeManager.conf b/configs/BridgeManager.conf
index e212132..4772576 100644
--- a/configs/BridgeManager.conf
+++ b/configs/BridgeManager.conf
@@ -7,6 +7,13 @@ BridgeManager.ServiceAdapter.Endpoints=tcp -p 4441
 BridgeManager.BackplaneAdapter.Endpoints=tcp -p 4442
 BridgeManager.Standalone=yes
 BridgeManager.ManagerInterface.ObjectId=BridgeManager
+
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+BridgeManager.InitServiceLocatorTimeout=30 # min: 1
+BridgeManager.InitServiceLocatorRetryDelay=2 # min: 1
+
 # this service name property is used when registering this component's 
 # services with the ServiceLocator. services are registered with
 # a Category, Service, and Instance.
diff --git a/configs/BridgeStateReplicator.conf b/configs/BridgeStateReplicator.conf
index 9bf283a..cb89280 100644
--- a/configs/BridgeStateReplicator.conf
+++ b/configs/BridgeStateReplicator.conf
@@ -7,6 +7,12 @@ BridgeReplicator.Adapter.ThreadPool.Size=4
 
 BridgeReplicator.Adapter.Endpoints=tcp -p 4491
 
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+BridgeReplicator.InitServiceLocatorTimeout=30 # min: 1
+BridgeReplicator.InitServiceLocatorRetryDelay=2 # min: 1
+
 # this service name property is used when registering this component's 
 # services with the ServiceLocator. services are registered with
 # a Category, Service, and Instance.
diff --git a/configs/Logger.conf b/configs/Logger.conf
index 76459b6..2f72540 100644
--- a/configs/Logger.conf
+++ b/configs/Logger.conf
@@ -3,6 +3,12 @@ IceBox.Service.Logger=logging-service:createLoggingService
 
 Logger.ServiceAdapter.Endpoints=tcp -p 4431
 
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+Logger.InitServiceLocatorTimeout=30 # min: 1
+Logger.InitServiceLocatorRetryDelay=2 # min: 1
+
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
 # this is used to connect to the IceStorm instance that lives in the same IceBox
diff --git a/configs/MediaFormatGeneric.conf b/configs/MediaFormatGeneric.conf
index bccc4a0..de99570 100644
--- a/configs/MediaFormatGeneric.conf
+++ b/configs/MediaFormatGeneric.conf
@@ -11,6 +11,12 @@ MediaFormatGeneric.Standalone=yes
 # a Category, Service, and Instance.
 MediaFormatGeneric.ServiceName=default
 
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+MediaFormatGeneric.InitServiceLocatorTimeout=30 # min: 1
+MediaFormatGeneric.InitServiceLocatorRetryDelay=2 # min: 1
+
 LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
diff --git a/configs/MediaOperationCoreStateReplicator.conf b/configs/MediaOperationCoreStateReplicator.conf
index af3f963..3feb9c3 100644
--- a/configs/MediaOperationCoreStateReplicator.conf
+++ b/configs/MediaOperationCoreStateReplicator.conf
@@ -12,6 +12,12 @@ MediaOperationsCoreReplicator.Adapter.Endpoints=tcp -p 4489
 # a Category, Service, and Instance.
 MediaOperationsCoreReplicator.ServiceName=default
 
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+MediaOperationsCoreReplicator.InitServiceLocatorTimeout=30 # min: 1
+MediaOperationsCoreReplicator.InitServiceLocatorRetryDelay=2 # min: 1
+
 LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
diff --git a/configs/MediaOperationsCore.conf b/configs/MediaOperationsCore.conf
index 6524812..592e677 100644
--- a/configs/MediaOperationsCore.conf
+++ b/configs/MediaOperationsCore.conf
@@ -11,6 +11,12 @@ MediaOperationsCore.Standalone=yes
 # a Category, Service, and Instance.
 MediaOperationsCore.ServiceName=default
 
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+MediaOperationsCore.InitServiceLocatorTimeout=30 # min: 1
+MediaOperationsCore.InitServiceLocatorRetryDelay=2 # min: 1
+
 LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
diff --git a/configs/MediaServiceRTP.conf b/configs/MediaServiceRTP.conf
index c6c8edf..3c41a68 100644
--- a/configs/MediaServiceRTP.conf
+++ b/configs/MediaServiceRTP.conf
@@ -11,6 +11,12 @@ MediaServiceRTP.Standalone=yes
 # a Category, Service, and Instance.
 MediaServiceRTP.ServiceName=default
 
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+MediaServiceRTP.InitServiceLocatorTimeout=30 # min: 1
+MediaServiceRTP.InitServiceLocatorRetryDelay=2 # min: 1
+
 LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
diff --git a/configs/MediaServiceRTPStateReplicator.conf b/configs/MediaServiceRTPStateReplicator.conf
index 12da59e..e1102af 100644
--- a/configs/MediaServiceRTPStateReplicator.conf
+++ b/configs/MediaServiceRTPStateReplicator.conf
@@ -21,6 +21,12 @@ RtpStateReplicator.IceStorm.Flush.Timeout=2000
 # a Category, Service, and Instance.
 RtpStateReplicator.ServiceName=default
 
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+RtpStateReplicator.InitServiceLocatorTimeout=30 # min: 1
+RtpStateReplicator.InitServiceLocatorRetryDelay=2 # min: 1
+
 LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
diff --git a/configs/RoutingService.conf b/configs/RoutingService.conf
index 7e471e6..8eb5758 100644
--- a/configs/RoutingService.conf
+++ b/configs/RoutingService.conf
@@ -18,6 +18,12 @@ RoutingService.ServiceName=default
 # (category: BridgeManager, service: default)
 RoutingService.BridgeServiceName=default
 
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+RoutingService.InitServiceLocatorTimeout=30 # min: 1
+RoutingService.InitServiceLocatorRetryDelay=2 # min: 1
+
 LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
diff --git a/configs/RoutingStateReplicator.conf b/configs/RoutingStateReplicator.conf
index 717ed84..3bd3d4b 100644
--- a/configs/RoutingStateReplicator.conf
+++ b/configs/RoutingStateReplicator.conf
@@ -12,6 +12,12 @@ RoutingStateReplicator.Adapter.Endpoints=tcp -p 4459
 # a Category, Service, and Instance.
 RoutingStateReplicator.ServiceName=default
 
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+RoutingStateReplicator.InitServiceLocatorTimeout=30 # min: 1
+RoutingStateReplicator.InitServiceLocatorRetryDelay=2 # min: 1
+
 LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
diff --git a/configs/ServiceDiscoveryStateReplicator.conf b/configs/ServiceDiscoveryStateReplicator.conf
index 7791750..2b1476e 100644
--- a/configs/ServiceDiscoveryStateReplicator.conf
+++ b/configs/ServiceDiscoveryStateReplicator.conf
@@ -12,6 +12,12 @@ ServiceLocatorStateReplicator.Adapter.Endpoints=tcp -p 4419
 # a Category, Service, and Instance.
 ServiceLocatorStateReplicator.ServiceName=default
 
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+ServiceLocatorStateReplicator.InitServiceLocatorTimeout=30 # min: 1
+ServiceLocatorStateReplicator.InitServiceLocatorRetryDelay=2 # min: 1
+
 # For the logger
 LocatorService.Proxy=LocatorService:tcp -p 4411
 
diff --git a/configs/SipService.conf b/configs/SipService.conf
index f7505db..0ccc2ad 100644
--- a/configs/SipService.conf
+++ b/configs/SipService.conf
@@ -16,6 +16,12 @@ SipService.ServiceName=default
 # be started in this instance
 SipService.Modules=Session Logging Registrar
 
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+SipService.InitServiceLocatorTimeout=30 # min: 1
+SipService.InitServiceLocatorRetryDelay=2 # min: 1
+
 LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
diff --git a/configs/SipStateReplicator.conf b/configs/SipStateReplicator.conf
index 385a3b7..74b1d05 100644
--- a/configs/SipStateReplicator.conf
+++ b/configs/SipStateReplicator.conf
@@ -21,6 +21,12 @@ SipStateReplicator.IceStorm.Flush.Timeout=2000
 # a Category, Service, and Instance.
 SipStateReplicator.ServiceName=default
 
+# These properties define the total timeout and delay 
+# per try in seconds for initialization of the 
+# service locator
+SipStateReplicator.InitServiceLocatorTimeout=30 # min: 1
+SipStateReplicator.InitServiceLocatorRetryDelay=2 # min: 1
+
 LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
diff --git a/configs/start_astscf.sh b/configs/start_astscf.sh
index 4368436..34c5bb3 100755
--- a/configs/start_astscf.sh
+++ b/configs/start_astscf.sh
@@ -4,7 +4,7 @@
 
 script="$(basename $0)"
 
-# components[i++]=ServiceDiscovery
+components[i++]=ServiceDiscovery
 components[i++]=Logger
 components[i++]=MediaFormatGeneric
 components[i++]=MediaOperationsCore
@@ -44,9 +44,6 @@ while test $# -gt 0; do
     esac
 done
 
-start_component ServiceDiscovery
-sleep 5
-
 for comp in "${components[@]}"
 do
     start_component "${comp}"

commit 1364e824c56415e088cdec1caaaaaeb5e6dd757f
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Thu Sep 22 18:14:31 2011 -0500

    Add an initial README

diff --git a/configs/README b/configs/README
new file mode 100644
index 0000000..f86e1de
--- /dev/null
+++ b/configs/README
@@ -0,0 +1,21 @@
+This directory contains basic configuration files and scripts to start and run
+Asterisk SCF components.
+
+Notes:
+
+* Port numbers used by each service have been assigned from ranges to keep
+  them moderately consistent. If you change these sample configuration files,
+  please follow this pattern:
+    * 441x - Service Discovery
+    * 442x - IceStorm (central instance collocated with Service Discovery)
+    * 443x - Logger Service
+    * 444x - Bridge Service
+    * 445x - Routing Service
+    * 446x - SIP Service
+    * 447x - Media RTP Service
+    * 448x - Media Operations (Core) Service
+    * 449x - unused
+    * 450x - Media Format (Generic) Service
+
+    Note also that replicator services for each primary service have ports
+    assigned from the same range as the primary service.

commit 93a8f221e09b44aa27facb28d607674beb54e6ca
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Wed Sep 21 16:59:24 2011 -0500

    Begin fleshing out startup script.

diff --git a/configs/start_astscf.sh b/configs/start_astscf.sh
old mode 100644
new mode 100755
index 5932327..4368436
--- a/configs/start_astscf.sh
+++ b/configs/start_astscf.sh
@@ -1,11 +1,53 @@
-#!/bin/sh
-
-# services to start:
-#   servicediscovery (plus replicator)
-#   logger
-#   mediaformatgeneric
-#   media_operations_core
-#   routing (plus replicator)
-#   bridging (plus replicator)
-#   media_rtp_pjmedia (plus replicator)
-#   sip (plus replicator)
+#!/bin/bash
+
+# arguments:
+
+script="$(basename $0)"
+
+# components[i++]=ServiceDiscovery
+components[i++]=Logger
+components[i++]=MediaFormatGeneric
+components[i++]=MediaOperationsCore
+components[i++]=MediaServiceRTP
+components[i++]=RoutingService
+components[i++]=BridgeManager
+components[i++]=SipService
+
+function usage()
+{
+    cat <<EOF
+usage: ${script}
+EOF
+}
+
+echo "Using Ice from ${ICE_HOME:=/opt/Ice-3.4}"
+echo "Using Asterisk SCF from ${ASTSCF_HOME:=/usr/local}"
+
+mkdir -p logs
+
+export LD_LIBRARY_PATH=${ICE_HOME}/lib:${ICE_HOME}/lib64:${ASTSCF_HOME}/lib:${ASTSCF_HOME}/lib/asterisk-scf/icebox
+
+function start_component()
+{
+# arguments:
+# 1 - component and config file name (friendly)
+    echo "Starting ${1}"
+    ${ICE_HOME}/bin/icebox --Ice.Config=${1}.conf  &>>logs/${1}.log &
+}
+
+while test $# -gt 0; do
+    case ${1} in
+        *)
+            usage >&2
+            exit 1
+            ;;
+    esac
+done
+
+start_component ServiceDiscovery
+sleep 5
+
+for comp in "${components[@]}"
+do
+    start_component "${comp}"
+done

commit 58688549bc692e632b5b6e8ac7245c21292bf54c
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Wed Sep 21 16:58:52 2011 -0500

    Fix up some duplicated and inconsistent port numbers.

diff --git a/configs/Logger.conf b/configs/Logger.conf
index 987849a..76459b6 100644
--- a/configs/Logger.conf
+++ b/configs/Logger.conf
@@ -8,4 +8,3 @@ LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 # this is used to connect to the IceStorm instance that lives in the same IceBox
 # container as the ServiceDiscovery service
 TopicManager.Proxy=ServiceDiscovery/TopicManager:tcp -p 4421
-
diff --git a/configs/MediaOperationCoreStateReplicator.conf b/configs/MediaOperationCoreStateReplicator.conf
index ecb15f5..af3f963 100644
--- a/configs/MediaOperationCoreStateReplicator.conf
+++ b/configs/MediaOperationCoreStateReplicator.conf
@@ -5,7 +5,7 @@ IceBox.Service.MediaOperationsCoreReplicator=MediaOperationStateReplicator:creat
 
 MediaOperationsCoreReplicator.Adapter.ThreadPool.Size=4
 
-MediaOperationsCoreReplicator.Adapter.Endpoints=tcp -p 4492
+MediaOperationsCoreReplicator.Adapter.Endpoints=tcp -p 4489
 
 # this service name property is used when registering this component's 
 # services with the ServiceLocator. services are registered with
diff --git a/configs/MediaServiceRTPStateReplicator.conf b/configs/MediaServiceRTPStateReplicator.conf
index bc75337..12da59e 100644
--- a/configs/MediaServiceRTPStateReplicator.conf
+++ b/configs/MediaServiceRTPStateReplicator.conf
@@ -5,13 +5,13 @@ IceBox.Service.RtpStateReplicator=RtpStateReplicator:create
 
 RtpStateReplicator.Adapter.ThreadPool.Size=4
 
-RtpStateReplicator.Adapter.Endpoints=tcp -p 4493
+RtpStateReplicator.Adapter.Endpoints=tcp -p 4479
 
 # Replicators have their own collocated IceStorm for replicating configuration
 # data. 
 RtpStateReplicator.IceStorm.InstanceName=RtpStateReplicator
-RtpStateReplicator.IceStorm.TopicManager.Endpoints=default -p 10007
-RtpStateReplicator.IceStorm.Publish.Endpoints=default -p 10008
+RtpStateReplicator.IceStorm.TopicManager.Endpoints=default -p 4477
+RtpStateReplicator.IceStorm.Publish.Endpoints=default -p 4478
 RtpStateReplicator.IceStorm.Trace.TopicManager=2
 RtpStateReplicator.IceStorm.Transient=1
 RtpStateReplicator.IceStorm.Flush.Timeout=2000
diff --git a/configs/RoutingStateReplicator.conf b/configs/RoutingStateReplicator.conf
index 2a5d9e8..717ed84 100644
--- a/configs/RoutingStateReplicator.conf
+++ b/configs/RoutingStateReplicator.conf
@@ -5,7 +5,7 @@ IceBox.Service.RoutingStateReplicator=RoutingStateReplicator:create
 
 RoutingStateReplicator.Adapter.ThreadPool.Size=4
 
-RoutingStateReplicator.Adapter.Endpoints=tcp -p 4492
+RoutingStateReplicator.Adapter.Endpoints=tcp -p 4459
 
 # this service name property is used when registering this component's 
 # services with the ServiceLocator. services are registered with
diff --git a/configs/ServiceDiscoveryStateReplicator.conf b/configs/ServiceDiscoveryStateReplicator.conf
index 9f39062..7791750 100644
--- a/configs/ServiceDiscoveryStateReplicator.conf
+++ b/configs/ServiceDiscoveryStateReplicator.conf
@@ -5,7 +5,7 @@ IceBox.Service.ServiceLocatorStateReplicator=ServiceLocatorStateReplicator:creat
 
 ServiceLocatorStateReplicator.Adapter.ThreadPool.Size=4
 
-ServiceLocatorStateReplicator.Adapter.Endpoints=tcp -p 4495:udp -p 4495
+ServiceLocatorStateReplicator.Adapter.Endpoints=tcp -p 4419
 
 # this service name property is used when registering this component's 
 # services with the ServiceLocator. services are registered with
diff --git a/configs/SipStateReplicator.conf b/configs/SipStateReplicator.conf
index c627890..385a3b7 100644
--- a/configs/SipStateReplicator.conf
+++ b/configs/SipStateReplicator.conf
@@ -5,17 +5,16 @@ IceBox.Service.SipStateReplicator=SipStateReplicator:create
 
 SipStateReplicator.Adapter.ThreadPool.Size=4
 
-SipStateReplicator.Adapter.Endpoints=tcp -p 4490 
+SipStateReplicator.Adapter.Endpoints=tcp -p 4469 
 
 # Replicators have their own collocated IceStorm for replicating configuration
 # data. 
 SipStateReplicator.IceStorm.InstanceName=SipStateReplicatorIceStorm
-SipStateReplicator.IceStorm.TopicManager.Endpoints=default -p 10007
-SipStateReplicator.IceStorm.Publish.Endpoints=default -p 10008
+SipStateReplicator.IceStorm.TopicManager.Endpoints=default -p 4467
+SipStateReplicator.IceStorm.Publish.Endpoints=default -p 4468
 SipStateReplicator.IceStorm.Trace.TopicManager=2
 SipStateReplicator.IceStorm.Transient=1
 SipStateReplicator.IceStorm.Flush.Timeout=2000
-SipStateReplicator.TopicManager.Proxy=SipStateReplicatorIceStorm/TopicManager:default -p 10007
 
 # this service name property is used when registering this component's 
 # services with the ServiceLocator. services are registered with

commit 792c3643fc0ce084f8ac9e8d6c0e3834e5308e76
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Wed Sep 21 15:58:37 2011 -0500

    Avoid duplicate port numbers.

diff --git a/configs/.gitignore b/configs/.gitignore
new file mode 100644
index 0000000..98d8a5a
--- /dev/null
+++ b/configs/.gitignore
@@ -0,0 +1 @@
+logs
diff --git a/configs/MediaFormatGeneric.conf b/configs/MediaFormatGeneric.conf
index c126ffe..bccc4a0 100644
--- a/configs/MediaFormatGeneric.conf
+++ b/configs/MediaFormatGeneric.conf
@@ -3,8 +3,8 @@ IceBox.InheritProperties=1
 Ice.ThreadPool.Client.Size=10
 IceBox.Service.MediaFormatGeneric=mediaformatgeneric:create
 
-MediaFormatGeneric.ServiceAdapter.Endpoints=tcp -p 4481
-MediaFormatGeneric.BackplaneAdapter.Endpoints=tcp -p 4482
+MediaFormatGeneric.ServiceAdapter.Endpoints=tcp -p 4501
+MediaFormatGeneric.BackplaneAdapter.Endpoints=tcp -p 4502
 MediaFormatGeneric.Standalone=yes
 # this service name property is used when registering this component's 
 # services with the ServiceLocator. services are registered with

commit 139f986811cf17d8f77c99eb2cadcedcefc5c898
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Tue Sep 20 11:55:57 2011 -0500

    The TopicManager.Proxy reference uses "ServiceDiscovery" instead of "ServiceDiscoveryIceStorm".

diff --git a/configs/BridgeManager.conf b/configs/BridgeManager.conf
index 0044e50..e212132 100644
--- a/configs/BridgeManager.conf
+++ b/configs/BridgeManager.conf
@@ -17,4 +17,4 @@ LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
 # this is used to connect to the IceStorm instance that lives in the same IceBox
 # container as the ServiceDiscovery service
-TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421
+TopicManager.Proxy=ServiceDiscovery/TopicManager:tcp -p 4421
diff --git a/configs/Logger.conf b/configs/Logger.conf
index 000580e..987849a 100644
--- a/configs/Logger.conf
+++ b/configs/Logger.conf
@@ -7,4 +7,5 @@ LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
 # this is used to connect to the IceStorm instance that lives in the same IceBox
 # container as the ServiceDiscovery service
-TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421
+TopicManager.Proxy=ServiceDiscovery/TopicManager:tcp -p 4421
+
diff --git a/configs/MediaFormatGeneric.conf b/configs/MediaFormatGeneric.conf
index eb8c069..c126ffe 100644
--- a/configs/MediaFormatGeneric.conf
+++ b/configs/MediaFormatGeneric.conf
@@ -16,4 +16,4 @@ LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
 # this is used to connect to the IceStorm instance that lives in the same IceBox
 # container as the ServiceDiscovery service
-TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421
+TopicManager.Proxy=ServiceDiscovery/TopicManager:tcp -p 4421
diff --git a/configs/MediaOperationsCore.conf b/configs/MediaOperationsCore.conf
index 1cda864..6524812 100644
--- a/configs/MediaOperationsCore.conf
+++ b/configs/MediaOperationsCore.conf
@@ -16,4 +16,4 @@ LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
 # this is used to connect to the IceStorm instance that lives in the same IceBox
 # container as the ServiceDiscovery service
-TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421
+TopicManager.Proxy=ServiceDiscovery/TopicManager:tcp -p 4421
diff --git a/configs/MediaServiceRTP.conf b/configs/MediaServiceRTP.conf
index 3f49fa4..c6c8edf 100644
--- a/configs/MediaServiceRTP.conf
+++ b/configs/MediaServiceRTP.conf
@@ -16,4 +16,4 @@ LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
 # this is used to connect to the IceStorm instance that lives in the same IceBox
 # container as the ServiceDiscovery service
-TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421
+TopicManager.Proxy=ServiceDiscovery/TopicManager:tcp -p 4421
diff --git a/configs/RoutingService.conf b/configs/RoutingService.conf
index e8b1f83..7e471e6 100644
--- a/configs/RoutingService.conf
+++ b/configs/RoutingService.conf
@@ -23,4 +23,5 @@ LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
 # this is used to connect to the IceStorm instance that lives in the same IceBox
 # container as the ServiceDiscovery service
-TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421
+TopicManager.Proxy=ServiceDiscovery/TopicManager:tcp -p 4421
+
diff --git a/configs/ServiceDiscovery.conf b/configs/ServiceDiscovery.conf
index e6df674..e06bef2 100644
--- a/configs/ServiceDiscovery.conf
+++ b/configs/ServiceDiscovery.conf
@@ -15,3 +15,4 @@ ServiceDiscovery.IceStorm.Publish.Endpoints=tcp -p 4422:udp -p 4422
 ServiceDiscovery.IceStorm.Trace.TopicManager=2
 ServiceDiscovery.IceStorm.Transient=1
 ServiceDiscovery.IceStorm.Flush.Timeout=2000
+
diff --git a/configs/SipService.conf b/configs/SipService.conf
index f6c435d..f7505db 100644
--- a/configs/SipService.conf
+++ b/configs/SipService.conf
@@ -21,4 +21,4 @@ LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
 # this is used to connect to the IceStorm instance that lives in the same IceBox
 # container as the ServiceDiscovery service
-TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421
+TopicManager.Proxy=ServiceDiscovery/TopicManager:tcp -p 4421

commit f1338fc2a3fb0bbc66e214fb6a5aad723420ee7a
Author: Joshua Colp <jcolp at digium.com>
Date:   Mon Sep 19 16:44:40 2011 -0300

    Remove TopicManager proxy. No longer needed.

diff --git a/configs/MediaServiceRTPStateReplicator.conf b/configs/MediaServiceRTPStateReplicator.conf
index f73fc31..bc75337 100644
--- a/configs/MediaServiceRTPStateReplicator.conf
+++ b/configs/MediaServiceRTPStateReplicator.conf
@@ -15,7 +15,6 @@ RtpStateReplicator.IceStorm.Publish.Endpoints=default -p 10008
 RtpStateReplicator.IceStorm.Trace.TopicManager=2
 RtpStateReplicator.IceStorm.Transient=1
 RtpStateReplicator.IceStorm.Flush.Timeout=2000
-RtpStateReplicator.TopicManager.Proxy=RtpStateReplicator/TopicManager:default -p 10007
 
 # this service name property is used when registering this component's 
 # services with the ServiceLocator. services are registered with

commit 961f13f1f435e1a9f464a9aeb4bae580bdae56ea
Author: Joshua Colp <jcolp at digium.com>
Date:   Mon Sep 19 16:24:39 2011 -0300

    Fix name of library for the media operations core state replicator.

diff --git a/configs/MediaOperationCoreStateReplicator.conf b/configs/MediaOperationCoreStateReplicator.conf
index b04c704..ecb15f5 100644
--- a/configs/MediaOperationCoreStateReplicator.conf
+++ b/configs/MediaOperationCoreStateReplicator.conf
@@ -1,7 +1,7 @@
 IceBox.InheritProperties=1
 # this value was empirically determined... it may need to be different on different systems
 Ice.ThreadPool.Client.Size=10
-IceBox.Service.MediaOperationsCoreReplicator=MediaOperationsCoreReplicator:create
+IceBox.Service.MediaOperationsCoreReplicator=MediaOperationStateReplicator:create
 
 MediaOperationsCoreReplicator.Adapter.ThreadPool.Size=4
 

commit 2c6805590e8c22e9d84fd80783d174a25973e357
Author: Joshua Colp <jcolp at digium.com>
Date:   Mon Sep 19 16:13:23 2011 -0300

    Add adapter for replication.

diff --git a/configs/ServiceDiscovery.conf b/configs/ServiceDiscovery.conf
index 83d2193..e6df674 100644
--- a/configs/ServiceDiscovery.conf
+++ b/configs/ServiceDiscovery.conf
@@ -1,6 +1,7 @@
 IceBox.InheritProperties=1
 IceBox.Service.ServiceDiscovery=service_locator:create
 
+ServiceDiscovery.BackplaneAdapter.Endpoints=tcp -p 4410
 ServiceDiscovery.Management.ServiceAdapter.Endpoints=tcp -p 4412
 ServiceDiscovery.Locator.ServiceAdapter.Endpoints=tcp -p 4411
 ServiceDiscovery.IceStorm.InstanceName=ServiceDiscovery

commit 50287adecc9dcf4faa45e9413928ab9e791a0cc7
Author: Brent Eagles <beagles at digium.com>
Date:   Mon Sep 19 16:18:02 2011 -0230

    Add missing "." between service name and "IceStorm"

diff --git a/configs/ServiceDiscovery.conf b/configs/ServiceDiscovery.conf
index 9617899..83d2193 100644
--- a/configs/ServiceDiscovery.conf
+++ b/configs/ServiceDiscovery.conf
@@ -3,14 +3,14 @@ IceBox.Service.ServiceDiscovery=service_locator:create
 
 ServiceDiscovery.Management.ServiceAdapter.Endpoints=tcp -p 4412
 ServiceDiscovery.Locator.ServiceAdapter.Endpoints=tcp -p 4411
-ServiceDiscovery.IceStorm.InstanceName=ServiceDiscoveryIceStorm
+ServiceDiscovery.IceStorm.InstanceName=ServiceDiscovery
 
 # This is necessary for the logger client library, since it needs to locate
 # the logger service using the service locator.
 LocatorService.Proxy=LocatorService:tcp -p 4411
 
-ServiceDiscoveryIceStorm.TopicManager.Endpoints=tcp -p 4421
-ServiceDiscoveryIceStorm.Publish.Endpoints=tcp -p 4422:udp -p 4422
-ServiceDiscoveryIceStorm.Trace.TopicManager=2
-ServiceDiscoveryIceStorm.Transient=1
-ServiceDiscoveryIceStorm.Flush.Timeout=2000
+ServiceDiscovery.IceStorm.TopicManager.Endpoints=tcp -p 4421
+ServiceDiscovery.IceStorm.Publish.Endpoints=tcp -p 4422:udp -p 4422
+ServiceDiscovery.IceStorm.Trace.TopicManager=2
+ServiceDiscovery.IceStorm.Transient=1
+ServiceDiscovery.IceStorm.Flush.Timeout=2000

commit 050039f903df6471d209cbeb8f88885633001d04
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Fri Sep 16 15:56:43 2011 -0500

    Service Discover state replicator config.

diff --git a/configs/ServiceDiscoveryStateReplicator.conf b/configs/ServiceDiscoveryStateReplicator.conf
new file mode 100644
index 0000000..9f39062
--- /dev/null
+++ b/configs/ServiceDiscoveryStateReplicator.conf
@@ -0,0 +1,17 @@
+IceBox.InheritProperties=1
+# this value was empirically determined... it may need to be different on different systems
+Ice.ThreadPool.Client.Size=10
+IceBox.Service.ServiceLocatorStateReplicator=ServiceLocatorStateReplicator:create
+
+ServiceLocatorStateReplicator.Adapter.ThreadPool.Size=4
+
+ServiceLocatorStateReplicator.Adapter.Endpoints=tcp -p 4495:udp -p 4495
+
+# this service name property is used when registering this component's 
+# services with the ServiceLocator. services are registered with
+# a Category, Service, and Instance.
+ServiceLocatorStateReplicator.ServiceName=default
+
+# For the logger
+LocatorService.Proxy=LocatorService:tcp -p 4411
+

commit 00630f84c635a6f2ddce976baea773fb29b8f536
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Fri Sep 16 15:51:13 2011 -0500

    Media Operation replicator config. Adding the Locator proxy for loggers.

diff --git a/configs/BridgeStateReplicator.conf b/configs/BridgeStateReplicator.conf
index 8049a85..9bf283a 100644
--- a/configs/BridgeStateReplicator.conf
+++ b/configs/BridgeStateReplicator.conf
@@ -12,5 +12,6 @@ BridgeReplicator.Adapter.Endpoints=tcp -p 4491
 # a Category, Service, and Instance.
 BridgeReplicator.ServiceName=default
 
+LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
diff --git a/configs/BridgeStateReplicator.conf b/configs/MediaOperationCoreStateReplicator.conf
similarity index 57%
copy from configs/BridgeStateReplicator.conf
copy to configs/MediaOperationCoreStateReplicator.conf
index 8049a85..b04c704 100644
--- a/configs/BridgeStateReplicator.conf
+++ b/configs/MediaOperationCoreStateReplicator.conf
@@ -1,16 +1,17 @@
 IceBox.InheritProperties=1
 # this value was empirically determined... it may need to be different on different systems
 Ice.ThreadPool.Client.Size=10
-IceBox.Service.BridgeReplicator=BridgeReplicator:create
+IceBox.Service.MediaOperationsCoreReplicator=MediaOperationsCoreReplicator:create
 
-BridgeReplicator.Adapter.ThreadPool.Size=4
+MediaOperationsCoreReplicator.Adapter.ThreadPool.Size=4
 
-BridgeReplicator.Adapter.Endpoints=tcp -p 4491
+MediaOperationsCoreReplicator.Adapter.Endpoints=tcp -p 4492
 
 # this service name property is used when registering this component's 
 # services with the ServiceLocator. services are registered with
 # a Category, Service, and Instance.
-BridgeReplicator.ServiceName=default
+MediaOperationsCoreReplicator.ServiceName=default
 
+LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
diff --git a/configs/RoutingStateReplicator.conf b/configs/RoutingStateReplicator.conf
index b5c04a3..2a5d9e8 100644
--- a/configs/RoutingStateReplicator.conf
+++ b/configs/RoutingStateReplicator.conf
@@ -12,5 +12,6 @@ RoutingStateReplicator.Adapter.Endpoints=tcp -p 4492
 # a Category, Service, and Instance.
 RoutingStateReplicator.ServiceName=default
 
+LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 

commit 768330fe2a8116509d21f89d4a405f6a020fe5a9
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Fri Sep 16 15:45:16 2011 -0500

    RTP and Routing state replicator configs.

diff --git a/configs/MediaServiceRTPStateReplicator.conf b/configs/MediaServiceRTPStateReplicator.conf
new file mode 100644
index 0000000..f73fc31
--- /dev/null
+++ b/configs/MediaServiceRTPStateReplicator.conf
@@ -0,0 +1,27 @@
+IceBox.InheritProperties=1
+# this value was empirically determined... it may need to be different on different systems
+Ice.ThreadPool.Client.Size=10
+IceBox.Service.RtpStateReplicator=RtpStateReplicator:create
+
+RtpStateReplicator.Adapter.ThreadPool.Size=4
+
+RtpStateReplicator.Adapter.Endpoints=tcp -p 4493
+
+# Replicators have their own collocated IceStorm for replicating configuration
+# data. 
+RtpStateReplicator.IceStorm.InstanceName=RtpStateReplicator
+RtpStateReplicator.IceStorm.TopicManager.Endpoints=default -p 10007
+RtpStateReplicator.IceStorm.Publish.Endpoints=default -p 10008
+RtpStateReplicator.IceStorm.Trace.TopicManager=2
+RtpStateReplicator.IceStorm.Transient=1
+RtpStateReplicator.IceStorm.Flush.Timeout=2000
+RtpStateReplicator.TopicManager.Proxy=RtpStateReplicator/TopicManager:default -p 10007
+
+# this service name property is used when registering this component's 
+# services with the ServiceLocator. services are registered with
+# a Category, Service, and Instance.
+RtpStateReplicator.ServiceName=default
+
+LocatorService.Proxy=LocatorService:tcp -p 4411
+LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
+
diff --git a/configs/RoutingStateReplicator.conf b/configs/RoutingStateReplicator.conf
new file mode 100644
index 0000000..b5c04a3
--- /dev/null
+++ b/configs/RoutingStateReplicator.conf
@@ -0,0 +1,16 @@
+IceBox.InheritProperties=1
+# this value was empirically determined... it may need to be different on different systems
+Ice.ThreadPool.Client.Size=10
+IceBox.Service.RoutingStateReplicator=RoutingStateReplicator:create
+
+RoutingStateReplicator.Adapter.ThreadPool.Size=4
+
+RoutingStateReplicator.Adapter.Endpoints=tcp -p 4492
+
+# this service name property is used when registering this component's 
+# services with the ServiceLocator. services are registered with
+# a Category, Service, and Instance.
+RoutingStateReplicator.ServiceName=default
+
+LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
+

commit ba1f5bd8b75be665f67a1dbf27151ff040f56374
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Fri Sep 16 15:31:40 2011 -0500

    Bridge state replicator config.

diff --git a/configs/BridgeStateReplicator.conf b/configs/BridgeStateReplicator.conf
new file mode 100644
index 0000000..8049a85
--- /dev/null
+++ b/configs/BridgeStateReplicator.conf
@@ -0,0 +1,16 @@
+IceBox.InheritProperties=1
+# this value was empirically determined... it may need to be different on different systems
+Ice.ThreadPool.Client.Size=10
+IceBox.Service.BridgeReplicator=BridgeReplicator:create
+
+BridgeReplicator.Adapter.ThreadPool.Size=4
+
+BridgeReplicator.Adapter.Endpoints=tcp -p 4491
+
+# this service name property is used when registering this component's 
+# services with the ServiceLocator. services are registered with
+# a Category, Service, and Instance.
+BridgeReplicator.ServiceName=default
+
+LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
+
diff --git a/configs/SipStateReplicator.conf b/configs/SipStateReplicator.conf
index ae3e32d..c627890 100644
--- a/configs/SipStateReplicator.conf
+++ b/configs/SipStateReplicator.conf
@@ -3,7 +3,7 @@ IceBox.InheritProperties=1
 Ice.ThreadPool.Client.Size=10
 IceBox.Service.SipStateReplicator=SipStateReplicator:create
 
-SipStateReplicator.ThreadPool.Size=4
+SipStateReplicator.Adapter.ThreadPool.Size=4
 
 SipStateReplicator.Adapter.Endpoints=tcp -p 4490 
 

commit 38f375457b8a584f714064c154c615b609dbd27e
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Fri Sep 16 15:24:04 2011 -0500

    Added SIP State Replicator config.

diff --git a/configs/SipStateReplicator.conf b/configs/SipStateReplicator.conf
new file mode 100644
index 0000000..ae3e32d
--- /dev/null
+++ b/configs/SipStateReplicator.conf
@@ -0,0 +1,27 @@
+IceBox.InheritProperties=1
+# this value was empirically determined... it may need to be different on different systems
+Ice.ThreadPool.Client.Size=10
+IceBox.Service.SipStateReplicator=SipStateReplicator:create
+
+SipStateReplicator.ThreadPool.Size=4
+
+SipStateReplicator.Adapter.Endpoints=tcp -p 4490 
+
+# Replicators have their own collocated IceStorm for replicating configuration
+# data. 
+SipStateReplicator.IceStorm.InstanceName=SipStateReplicatorIceStorm
+SipStateReplicator.IceStorm.TopicManager.Endpoints=default -p 10007
+SipStateReplicator.IceStorm.Publish.Endpoints=default -p 10008
+SipStateReplicator.IceStorm.Trace.TopicManager=2
+SipStateReplicator.IceStorm.Transient=1
+SipStateReplicator.IceStorm.Flush.Timeout=2000
+SipStateReplicator.TopicManager.Proxy=SipStateReplicatorIceStorm/TopicManager:default -p 10007
+
+# this service name property is used when registering this component's 
+# services with the ServiceLocator. services are registered with
+# a Category, Service, and Instance.
+SipStateReplicator.ServiceName=default
+
+LocatorService.Proxy=LocatorService:tcp -p 4411
+LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
+

commit 9208a6dafe7b602a2085c7443e7bbc6e2016763f
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Sep 16 15:05:43 2011 -0500

    Basic configuration for Media Operations (Core)

diff --git a/configs/MediaOperationsCore.conf b/configs/MediaOperationsCore.conf
new file mode 100644
index 0000000..1cda864
--- /dev/null
+++ b/configs/MediaOperationsCore.conf
@@ -0,0 +1,19 @@
+IceBox.InheritProperties=1
+# this value was empirically determined... it may need to be different on different systems
+Ice.ThreadPool.Client.Size=10
+IceBox.Service.MediaOperationsCore=MediaOperationsCore:create
+
+MediaOperationsCore.ServiceAdapter.Endpoints=tcp -p 4481
+MediaOperationsCore.BackplaneAdapter.Endpoints=tcp -p 4482
+MediaOperationsCore.Standalone=yes
+# this service name property is used when registering this component's 
+# services with the ServiceLocator. services are registered with
+# a Category, Service, and Instance.
+MediaOperationsCore.ServiceName=default
+
+LocatorService.Proxy=LocatorService:tcp -p 4411
+LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
+
+# this is used to connect to the IceStorm instance that lives in the same IceBox
+# container as the ServiceDiscovery service
+TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421

commit 418d7a93286e551ed4737fe3f15883788af05590
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Sep 16 15:04:21 2011 -0500

    Basic configuration for Media Format Generic

diff --git a/configs/MediaFormatGeneric.conf b/configs/MediaFormatGeneric.conf
new file mode 100644
index 0000000..eb8c069
--- /dev/null
+++ b/configs/MediaFormatGeneric.conf
@@ -0,0 +1,19 @@
+IceBox.InheritProperties=1
+# this value was empirically determined... it may need to be different on different systems
+Ice.ThreadPool.Client.Size=10
+IceBox.Service.MediaFormatGeneric=mediaformatgeneric:create
+
+MediaFormatGeneric.ServiceAdapter.Endpoints=tcp -p 4481
+MediaFormatGeneric.BackplaneAdapter.Endpoints=tcp -p 4482
+MediaFormatGeneric.Standalone=yes
+# this service name property is used when registering this component's 
+# services with the ServiceLocator. services are registered with
+# a Category, Service, and Instance.
+MediaFormatGeneric.ServiceName=default
+
+LocatorService.Proxy=LocatorService:tcp -p 4411
+LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
+
+# this is used to connect to the IceStorm instance that lives in the same IceBox
+# container as the ServiceDiscovery service
+TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421

commit 19b16dd974edb0dc4081ff6fd393fe94d2a833c7
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Sep 16 15:02:19 2011 -0500

    Basic configuration for PJMEDIA-based RTP Media Service

diff --git a/configs/MediaServiceRTP.conf b/configs/MediaServiceRTP.conf
new file mode 100644
index 0000000..3f49fa4
--- /dev/null
+++ b/configs/MediaServiceRTP.conf
@@ -0,0 +1,19 @@
+IceBox.InheritProperties=1
+# this value was empirically determined... it may need to be different on different systems
+Ice.ThreadPool.Client.Size=10
+IceBox.Service.MediaServiceRTP=media_rtp_pjmedia:create
+
+MediaServiceRTP.ServiceAdapter.Endpoints=tcp -p 4471
+MediaServiceRTP.BackplaneAdapter.Endpoints=tcp -p 4472
+MediaServiceRTP.Standalone=yes
+# this service name property is used when registering this component's 
+# services with the ServiceLocator. services are registered with
+# a Category, Service, and Instance.
+MediaServiceRTP.ServiceName=default
+
+LocatorService.Proxy=LocatorService:tcp -p 4411
+LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
+
+# this is used to connect to the IceStorm instance that lives in the same IceBox
+# container as the ServiceDiscovery service
+TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421

commit bf38bcd8f66f8c9f11d08fab030c94ee501de6d5
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Sep 16 14:55:20 2011 -0500

    Basic configuration for Sip Service

diff --git a/configs/SipService.conf b/configs/SipService.conf
new file mode 100644
index 0000000..f6c435d
--- /dev/null
+++ b/configs/SipService.conf
@@ -0,0 +1,24 @@
+IceBox.InheritProperties=1
+# this value was empirically determined... it may need to be different on different systems
+Ice.ThreadPool.Client.Size=10
+IceBox.Service.SipService=SipSessionManager:create
+
+SipService.ServiceAdapter.Endpoints=tcp -p 4461
+SipService.ServiceAdapter.ThreadPool.Size=4
+SipService.BackplaneAdapter.Endpoints=tcp -p 4462
+SipService.BackplaneAdapter.ThreadPool.Size=4
+SipService.Standalone=yes
+# this service name property is used when registering this component's 
+# services with the ServiceLocator. services are registered with
+# a Category, Service, and Instance.
+SipService.ServiceName=default
+# this property specifies which of the available service modules should
+# be started in this instance
+SipService.Modules=Session Logging Registrar
+
+LocatorService.Proxy=LocatorService:tcp -p 4411
+LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
+
+# this is used to connect to the IceStorm instance that lives in the same IceBox
+# container as the ServiceDiscovery service
+TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421

commit 4fe004d39946a3d826db046fca12fd4204291fd2
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Sep 16 14:42:49 2011 -0500

    Set service names for registration with Service Locator

diff --git a/configs/BridgeManager.conf b/configs/BridgeManager.conf
index 72fbf99..0044e50 100644
--- a/configs/BridgeManager.conf
+++ b/configs/BridgeManager.conf
@@ -7,10 +7,9 @@ BridgeManager.ServiceAdapter.Endpoints=tcp -p 4441
 BridgeManager.BackplaneAdapter.Endpoints=tcp -p 4442
 BridgeManager.Standalone=yes
 BridgeManager.ManagerInterface.ObjectId=BridgeManager
-
-# This service name property is used in registering this components 
-# services with the Service Locator. Services are registered in
-# a Category, Service, and Instance Id for discovery.
+# this service name property is used when registering this component's 
+# services with the ServiceLocator. services are registered with
+# a Category, Service, and Instance.
 BridgeManager.ServiceName=default
 
 LocatorService.Proxy=LocatorService:tcp -p 4411
diff --git a/configs/RoutingService.conf b/configs/RoutingService.conf
index a617afc..e8b1f83 100644
--- a/configs/RoutingService.conf
+++ b/configs/RoutingService.conf
@@ -6,6 +6,10 @@ IceBox.Service.RoutingService=BasicRoutingService:create
 RoutingService.ServiceAdapter.Endpoints=tcp -p 4451
 RoutingService.BackplaneAdapter.Endpoints=tcp -p 4452
 RoutingService.Standalone=yes
+# this service name property is used when registering this component's 
+# services with the ServiceLocator. services are registered with
+# a Category, Service, and Instance.
+RoutingService.ServiceName=default
 # the RoutingService will use the ServiceLocator to locate the BridgeManager;
 # to do so it needs to specify the category (which is always “BridgeManager”, it is not
 # configurable), and the service name. the service name is configurable in the

commit a6bbfe3c993a925dc140c8dc318143e2a26e1c55
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Fri Sep 16 14:40:24 2011 -0500

    Added ServiceName

diff --git a/configs/BridgeManager.conf b/configs/BridgeManager.conf
index 1c8fba4..72fbf99 100644
--- a/configs/BridgeManager.conf
+++ b/configs/BridgeManager.conf
@@ -8,6 +8,11 @@ BridgeManager.BackplaneAdapter.Endpoints=tcp -p 4442
 BridgeManager.Standalone=yes
 BridgeManager.ManagerInterface.ObjectId=BridgeManager
 
+# This service name property is used in registering this components 
+# services with the Service Locator. Services are registered in
+# a Category, Service, and Instance Id for discovery.
+BridgeManager.ServiceName=default
+
 LocatorService.Proxy=LocatorService:tcp -p 4411
 LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 

commit 599eb16bced55975a4a07d17710cc47a8831d711
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Sep 16 14:38:07 2011 -0500

    Basic configuration for Routing Service

diff --git a/configs/RoutingService.conf b/configs/RoutingService.conf
new file mode 100644
index 0000000..a617afc
--- /dev/null
+++ b/configs/RoutingService.conf
@@ -0,0 +1,22 @@
+IceBox.InheritProperties=1
+# this value was empirically determined... it may need to be different on different systems
+Ice.ThreadPool.Client.Size=10
+IceBox.Service.RoutingService=BasicRoutingService:create
+
+RoutingService.ServiceAdapter.Endpoints=tcp -p 4451
+RoutingService.BackplaneAdapter.Endpoints=tcp -p 4452
+RoutingService.Standalone=yes
+# the RoutingService will use the ServiceLocator to locate the BridgeManager;
+# to do so it needs to specify the category (which is always “BridgeManager”, it is not
+# configurable), and the service name. the service name is configurable in the
+# configuration file of the BridgeManager itself, and in the example config it is set to
+# “default”, so the configuration item below tells the RoutingService to look up
+# (category: BridgeManager, service: default)
+RoutingService.BridgeServiceName=default
+
+LocatorService.Proxy=LocatorService:tcp -p 4411
+LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
+
+# this is used to connect to the IceStorm instance that lives in the same IceBox
+# container as the ServiceDiscovery service
+TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421

commit 319251699e0f9f0333d558d957f1549e6c912031
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Sep 16 14:24:45 2011 -0500

    Basic configuration for Bridge Manager

diff --git a/configs/BridgeManager.conf b/configs/BridgeManager.conf
new file mode 100644
index 0000000..1c8fba4
--- /dev/null
+++ b/configs/BridgeManager.conf
@@ -0,0 +1,16 @@
+IceBox.InheritProperties=1
+# this value was empirically determined... it may need to be different on different systems
+Ice.ThreadPool.Client.Size=10
+IceBox.Service.BridgeManager=bridgeservice:create
+
+BridgeManager.ServiceAdapter.Endpoints=tcp -p 4441
+BridgeManager.BackplaneAdapter.Endpoints=tcp -p 4442
+BridgeManager.Standalone=yes
+BridgeManager.ManagerInterface.ObjectId=BridgeManager
+
+LocatorService.Proxy=LocatorService:tcp -p 4411
+LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
+
+# this is used to connect to the IceStorm instance that lives in the same IceBox
+# container as the ServiceDiscovery service
+TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421

commit d5719e160d0af4e4a72dbed95a05a5db13ffa6e0
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Sep 16 14:16:11 2011 -0500

    * Specify 'tcp' instead of 'default' for object adapter endpoints.
    * Assign a port number range to each service, and don't use randomly-assigned
      port numbers.

diff --git a/configs/Logger.conf b/configs/Logger.conf
index a2f3ac7..000580e 100644
--- a/configs/Logger.conf
+++ b/configs/Logger.conf
@@ -1,10 +1,10 @@
 IceBox.InheritProperties=1
 IceBox.Service.Logger=logging-service:createLoggingService
 
-Logger.ServiceAdapter.Endpoints=default
+Logger.ServiceAdapter.Endpoints=tcp -p 4431
 
-LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4422
+LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4412
 
 # this is used to connect to the IceStorm instance that lives in the same IceBox
 # container as the ServiceDiscovery service
-TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:default -p 10000
+TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:tcp -p 4421
diff --git a/configs/ServiceDiscovery.conf b/configs/ServiceDiscovery.conf
index 266bfb4..9617899 100644
--- a/configs/ServiceDiscovery.conf
+++ b/configs/ServiceDiscovery.conf
@@ -1,7 +1,7 @@
 IceBox.InheritProperties=1
 IceBox.Service.ServiceDiscovery=service_locator:create
 
-ServiceDiscovery.Management.ServiceAdapter.Endpoints=tcp -p 4422
+ServiceDiscovery.Management.ServiceAdapter.Endpoints=tcp -p 4412
 ServiceDiscovery.Locator.ServiceAdapter.Endpoints=tcp -p 4411
 ServiceDiscovery.IceStorm.InstanceName=ServiceDiscoveryIceStorm
 
@@ -9,8 +9,8 @@ ServiceDiscovery.IceStorm.InstanceName=ServiceDiscoveryIceStorm
 # the logger service using the service locator.
 LocatorService.Proxy=LocatorService:tcp -p 4411
 
-ServiceDiscoveryIceStorm.TopicManager.Endpoints=default -p 10000
-ServiceDiscoveryIceStorm.Publish.Endpoints=tcp -p 10001:udp -p 10001
+ServiceDiscoveryIceStorm.TopicManager.Endpoints=tcp -p 4421
+ServiceDiscoveryIceStorm.Publish.Endpoints=tcp -p 4422:udp -p 4422
 ServiceDiscoveryIceStorm.Trace.TopicManager=2
 ServiceDiscoveryIceStorm.Transient=1
 ServiceDiscoveryIceStorm.Flush.Timeout=2000

commit bb2563a3e9e922aa8f9b29ab27f66c6617b4388e
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Sep 16 14:06:17 2011 -0500

    Basic configuration for Logger

diff --git a/configs/Logger.conf b/configs/Logger.conf
new file mode 100644
index 0000000..a2f3ac7
--- /dev/null
+++ b/configs/Logger.conf
@@ -0,0 +1,10 @@
+IceBox.InheritProperties=1
+IceBox.Service.Logger=logging-service:createLoggingService
+
+Logger.ServiceAdapter.Endpoints=default
+
+LocatorServiceManagement.Proxy=LocatorServiceManagement:tcp -p 4422
+
+# this is used to connect to the IceStorm instance that lives in the same IceBox
+# container as the ServiceDiscovery service
+TopicManager.Proxy=ServiceDiscoveryIceStorm/TopicManager:default -p 10000

commit a1b7370ecba8d7e1fc0b7e53431f442d71ee7bef
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Sep 16 13:52:48 2011 -0500

    Basic configuration for Service Discovery

diff --git a/configs/ServiceDiscovery.conf b/configs/ServiceDiscovery.conf
new file mode 100644
index 0000000..266bfb4
--- /dev/null
+++ b/configs/ServiceDiscovery.conf
@@ -0,0 +1,16 @@
+IceBox.InheritProperties=1
+IceBox.Service.ServiceDiscovery=service_locator:create
+
+ServiceDiscovery.Management.ServiceAdapter.Endpoints=tcp -p 4422
+ServiceDiscovery.Locator.ServiceAdapter.Endpoints=tcp -p 4411
+ServiceDiscovery.IceStorm.InstanceName=ServiceDiscoveryIceStorm
+
+# This is necessary for the logger client library, since it needs to locate
+# the logger service using the service locator.
+LocatorService.Proxy=LocatorService:tcp -p 4411
+
+ServiceDiscoveryIceStorm.TopicManager.Endpoints=default -p 10000
+ServiceDiscoveryIceStorm.Publish.Endpoints=tcp -p 10001:udp -p 10001
+ServiceDiscoveryIceStorm.Trace.TopicManager=2
+ServiceDiscoveryIceStorm.Transient=1
+ServiceDiscoveryIceStorm.Flush.Timeout=2000

commit b31f6cdb046b13499a37491e3506044a77456df5
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Sep 16 13:23:35 2011 -0500

    List of services to start in a usable order

diff --git a/configs/start_astscf.sh b/configs/start_astscf.sh
index 40f6c61..5932327 100644
--- a/configs/start_astscf.sh
+++ b/configs/start_astscf.sh
@@ -1,3 +1,11 @@
 #!/bin/sh
 
-# TODO... put stuff here
+# services to start:
+#   servicediscovery (plus replicator)
+#   logger
+#   mediaformatgeneric
+#   media_operations_core
+#   routing (plus replicator)
+#   bridging (plus replicator)
+#   media_rtp_pjmedia (plus replicator)
+#   sip (plus replicator)

commit 135b5fdd5168af0230e40fdafbe37b04d011cb42
Author: Kevin P. Fleming <kpfleming at digium.com>
Date:   Fri Sep 16 12:55:54 2011 -0500

    Add a 'configs' directory for example configs, and start a shell script
    that will be able to start all the Asterisk SCF services using the example
    configs.

diff --git a/configs/start_astscf.sh b/configs/start_astscf.sh
new file mode 100644
index 0000000..40f6c61
--- /dev/null
+++ b/configs/start_astscf.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+# TODO... put stuff here

commit 3d8ac5eed7e3c2546939212cc90c0e2584270bda
Author: Joshua Colp <jcolp at digium.com>
Date:   Wed Aug 3 17:18:39 2011 -0300

    Provide a sane default for the service locator proxy.

diff --git a/ExampleSipAuthHook.py b/ExampleSipAuthHook.py
index 31e979d..2154f52 100755
--- a/ExampleSipAuthHook.py
+++ b/ExampleSipAuthHook.py
@@ -63,6 +63,7 @@ class ExampleAuthHookApp(Ice.Application):
 
         serviceLocator = None
         extensionPoint = None
+        serviceLocatorString = "LocatorService:tcp -p 4411"
 
         for o, a in opts:
             if o in ("-h", "--help"):
@@ -70,7 +71,9 @@ class ExampleAuthHookApp(Ice.Application):
                 return 1
 
             elif o in ("-l", "--locator"):
-                serviceLocator = ServiceLocatorPrx.checkedCast(self.communicator().stringToProxy(a))
+                serviceLocatorString = a
+
+        serviceLocator = ServiceLocatorPrx.checkedCast(self.communicator().stringToProxy(serviceLocatorString))
 
         if serviceLocator == None:
             print >> sys.stderr, "No service locator proxy specified. For usage details please run " + sys.argv[0] + " --help"

commit 466b8d4f2d72ad8926253303e1379a92a587c6b3
Author: Joshua Colp <jcolp at digium.com>
Date:   Wed Aug 3 16:47:27 2011 -0300

    Add an example SIP authentication hook python script.

diff --git a/ExampleSipAuthHook.py b/ExampleSipAuthHook.py
new file mode 100755
index 0000000..31e979d
--- /dev/null
+++ b/ExampleSipAuthHook.py
@@ -0,0 +1,105 @@
+#!/usr/bin/env python
+
+#
+# Asterisk SCF -- An open-source communications framework.
+#
+# Copyright (C) 2011, Digium, Inc.
+#
+# See http://www.asterisk.org for more information about
+# the Asterisk SCF project. Please do not directly contact
+# any of the maintainers of this project for assistance;
+# the project provides a web site, mailing lists and IRC
+# channels for your use.
+#
+# This program is free software, distributed under the terms of
+# the GNU General Public License Version 2. See the LICENSE.txt file
+# at the top of the source tree.
+#
+
+# Sip Example Authentication Hook
+
+import sys, threading, Ice, os, getopt
+
+Ice.loadSlice("--underscore -I" + os.environ["ASTSCF_HOME"] + " -I" + Ice.getSliceDir() + " --all " + os.environ["ASTSCF_HOME"] + "/AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice")
+Ice.loadSlice("--underscore -I" + os.environ["ASTSCF_HOME"] + " -I" + Ice.getSliceDir() + " --all " + os.environ["ASTSCF_HOME"] + "/AsteriskSCF/SIP/SIPExtensionPointIf.ice")
+
+from AsteriskSCF.Core.Discovery.V1 import *
+from AsteriskSCF.SIP.ExtensionPoint.V1 import *
+from AsteriskSCF.System.Hook.V1 import *
+
+class ExampleAuthHook(AuthHook):
+    def challengeRequest(self, info, challenges):
+        result = HookResult()
+        result.status = HookStatus.Succeeded
+
+        challenge = MD5DigestChallenge()
+        challenge.username = "bob"
+        challenge.password = "alice"
+        challenge.realm = "example"
+        challenge.domain = [ "example.com" ]
+        
+        challenges = [ challenge ]
+
+        return (result, challenges)
+
+class ExampleAuthHookApp(Ice.Application):
+    def usage(self):
+        """Print usage information for the example SIP authentication hook"""
+
+        print "Usage: " + self.appName() + " [--locator=stringified service locator proxy]"
+        print "Hook into a SIP component and provide authentication."
+        print ""
+        print "Mandatory arguments to long options are mandatory for short options too."
+        print "-h, --help              display help information"
+        print "-l, --locator=PROXY     use specified proxy for service locator"
+
+    def run(self, args):
+        try:
+            opts, arguments = getopt.getopt(args[1:], "hl:", ["help", "locator="])
+        except getopt.GetoptError, err:
+            print str(err)
+            self.usage()
+            return 1
+
+        serviceLocator = None
+        extensionPoint = None
+
+        for o, a in opts:
+            if o in ("-h", "--help"):
+                self.usage()
+                return 1
+
+            elif o in ("-l", "--locator"):
+                serviceLocator = ServiceLocatorPrx.checkedCast(self.communicator().stringToProxy(a))
+
+        if serviceLocator == None:
+            print >> sys.stderr, "No service locator proxy specified. For usage details please run " + sys.argv[0] + " --help"
+            return -1
+
+        serviceLocatorParams = ServiceLocatorParams()
+        serviceLocatorParams.category = "SipAuthExtensionPoint"
+
+        try:
+            service = serviceLocator.locate(serviceLocatorParams)
+        except AsteriskSCF.Core.Discovery.V1.ServiceNotFound:
+            print >> sys.stderr, "SIP authentication extension point could not be found in service locator."
+            return -1
+
+        extensionPoint = AuthExtensionPointPrx.checkedCast(service)
+
+        adapter = self.communicator().createObjectAdapterWithEndpoints("ExampleAuthHookApp", "default");
+        adapter.activate();
+
+        hook = ExampleAuthHook()
+
+        proxy = AuthHookPrx.uncheckedCast(adapter.addWithUUID(hook))
+
+        extensionPoint.addAuthHook(proxy, 1, [ RequestType.DialogEstablishing ])
+
+        self.communicator().waitForShutdown()
+        extensionPoint.removeAuthHook(proxy)
+
+        return 0
+
+app = ExampleAuthHookApp()
+sys.exit(app.main(sys.argv))
diff --git a/README.txt b/README.txt
index d0fa295..b792160 100644
--- a/README.txt
+++ b/README.txt
@@ -25,3 +25,9 @@ When sessions are added to a bridge, it then adds itself as a SessionListener. A
 events on bridges and sessions are caught by this script. The script simply prints
 a message to stdout when an event is received. For usage information, run
 'Bridge_SessionListener.py -h' .
+
+* ExampleSipAuthHook.py
+
+This scripts attaches to the SIP session gateway and challenges for authentication
+using the username 'bob' and the password 'alice'. For usage information, run
+'ExampleSipAuthHook.py -h' .

commit 700889d2e714815b4b57c324cfef94d6d0b287ae
Author: Mark Michelson <mmichelson at digium.com>
Date:   Fri Jul 1 09:23:39 2011 -0500

    Address Joshua's comments on CR-ASTSCF-113
    
    * Correct typo of "tryint" into "trying"
    * Add message about how to get usage instructions in the README.txt

diff --git a/Bridge_SessionListener.py b/Bridge_SessionListener.py
index 0621d3a..b537047 100755
--- a/Bridge_SessionListener.py
+++ b/Bridge_SessionListener.py
@@ -211,7 +211,7 @@ class ListenerApp(Ice.Application):
         try:
             self.bridgeManager.removeListener(self.bridgeManagerListenerPrx)
         except Ice.Exception as ex:
-            print "Error tryint to remove ourself as a bridge manager listener: " + ex.what()
+            print "Error trying to remove ourself as a bridge manager listener: " + ex.what()
 
         Ice.Application._destroyOnInterruptCallback(sig)
 
diff --git a/README.txt b/README.txt
index 17c5284..d0fa295 100644
--- a/README.txt
+++ b/README.txt
@@ -23,4 +23,5 @@ This script creates a BridgeListener, BridgeManagerListener, and a SessionListen
 At startup, it adds itself as a BridgeManagerListener and a default BridgeListener.
 When sessions are added to a bridge, it then adds itself as a SessionListener. All
 events on bridges and sessions are caught by this script. The script simply prints
-a message to stdout when an event is received.
+a message to stdout when an event is received. For usage information, run
+'Bridge_SessionListener.py -h' .

commit f86a322c06b95490698aa8c93fef3afec4367571
Author: Mark Michelson <mmichelson at digium.com>
Date:   Fri Jun 24 17:45:32 2011 -0500

    Add comment as suggested on CR-ASTSCF-113

diff --git a/Bridge_SessionListener.py b/Bridge_SessionListener.py
index edf35d3..0621d3a 100755
--- a/Bridge_SessionListener.py
+++ b/Bridge_SessionListener.py
@@ -197,6 +197,10 @@ class ListenerApp(Ice.Application):
         return 0
 
     def interruptCallback(self, sig):
+        # Ideally, we would keep track of all sessions and bridges we
+        # currently set up as listeners on and remove ourselves as listeners.
+        # For the sake of clarity and efficiency, we simply remove ourselves
+        # as a default bridge listener and a bridge manager listener.
         print "Removing ourself as a default bridge listener"
         try:
             self.bridgeManager.removeDefaultBridgeListener(self.bridgeListenerPrx)

commit 379116368a81d03afdaa7e6b213abfc141750b44
Author: Mark Michelson <mmichelson at digium.com>
Date:   Fri Jun 24 15:54:19 2011 -0500

    Make the service locator proxy a command line argument.
    
    As suggested in CR-ASTSCF-113

diff --git a/Bridge_SessionListener.py b/Bridge_SessionListener.py
index 3ba9067..edf35d3 100755
--- a/Bridge_SessionListener.py
+++ b/Bridge_SessionListener.py
@@ -16,7 +16,7 @@
 # at the top of the source tree.
 #
 
-import Ice, os, sys
+import Ice, os, sys, getopt
 
 Ice.loadSlice("-I" + Ice.getSliceDir() + " -I" + os.environ["ASTSCF_HOME"] + " --all " + os.environ["ASTSCF_HOME"] + "/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice")
 
@@ -86,9 +86,36 @@ class BridgeManagerListener(AsteriskSCF.SessionCommunications.V1.BridgeManagerLi
         self.adapter.remove(self.communicator().stringToIdentity(BridgeManagerListenerId))
 
 class ListenerApp(Ice.Application):
+    def usage(self):
+        print "Usage: " + self.appName()
+        print "Listen to all sessions and bridges"
+        print ""
+        print "Options:"
+        print "-h, --help              Display help information"
+        print "-l, --locator=PROXY     Use specified proxy for Service locator"
+        print "                        Default: 'LocatorService:tcp -p 4411"
+        
     def run(self, args):
         
-        print "Starting " + sys.argv[0]
+        try:
+            opts, arguments = getopt.getopt(args[1:], "hl:", ["help", "locator="])
+        except getopt.GetoptError, err:
+            print str(err)
+            self.usage()
+            return -1
+
+        # The default value for the service locator is to assume it's running
+        # on the same machine on port 4411
+        serviceLocatorString = "LocatorService:tcp -p 4411"
+
+        for o, a in opts:
+            if o in ("-h", "--help"):
+                self.usage()
+                return -1
+            if o in ("-l", "--locator"):
+                serviceLocatorString = a
+
+        print "Starting " + self.appName()
 
         # First thing we're going to do is create an object adapter.
         adapter = self.communicator().createObjectAdapterWithEndpoints("ExampleListener", "default")
@@ -115,7 +142,7 @@ class ListenerApp(Ice.Application):
 
         # Now we need to find the bridge manager. We use the service locator for this.
         # First, we get a proxy to the service locator.
-        serviceLocator = AsteriskSCF.Core.Discovery.V1.ServiceLocatorPrx.checkedCast(self.communicator().stringToProxy("LocatorService:tcp -p 4411"))
+        serviceLocator = AsteriskSCF.Core.Discovery.V1.ServiceLocatorPrx.checkedCast(self.communicator().stringToProxy(serviceLocatorString))
         
         if not serviceLocator:
             print "Couldn't get the service locator"

commit ec3f700b76bc50eb45b91269f0c92497e11de1bc
Author: Mark Michelson <mmichelson at digium.com>
Date:   Fri Jun 24 15:39:39 2011 -0500

    Make adjustments based on comments on CR-ASTSCF-113.
    
    * Check the result of the checkedCast of the BridgeManager
    * Use addWithUUID when adding the BridgeManagerListener and
      BridgeListener to our object adapter

diff --git a/Bridge_SessionListener.py b/Bridge_SessionListener.py
index def0b16..3ba9067 100755
--- a/Bridge_SessionListener.py
+++ b/Bridge_SessionListener.py
@@ -55,8 +55,6 @@ class SessionListener(AsteriskSCF.SessionCommunications.V1.SessionListener):
         if isinstance(event, AsteriskSCF.SessionCommunications.V1.ProgressIndication):
             print "Session %s received Progress indication: %d" % (source.ice_getIdentity().name, event.response.isdnCode)
 
-BridgeListenerID = "BridgeListener"
-
 class BridgeListener(AsteriskSCF.SessionCommunications.V1.BridgeListener):
     def __init__(self, adapter):
         self.adapter = adapter
@@ -69,14 +67,13 @@ class BridgeListener(AsteriskSCF.SessionCommunications.V1.BridgeListener):
             except Ice.Exception as ex:
                 print "Exception caught while attempting to add ourself as a SessionListener: " + ex.what()
     def sessionsRemoved(self, sessionBridge, sessions, current = None):
-        print "Sessions removed from bridge %s" % (sessionBridge.ice_getIdentity().name)
+        for s in sessions:
+            print "Session %s removed from bridge %s" % (s.ice_getIdentity().name, sessionBridge.ice_getIdentity().name)
     def stopped(self, sessionBridge, current = None):
         print "Bridge %s stopped" % (sessionBridge.ice_getIdentity().name)
     def stopping(self, sessionBridge, current = None):
         print "Bridge %s stopping" % (sessionBridge.ice_getIdentity().name)
 
-BridgeManagerListenerID = "BridgeManagerListener"
-
 class BridgeManagerListener(AsteriskSCF.SessionCommunications.V1.BridgeManagerListener):
     def __init__(self, adapter):
         self.adapter = adapter
@@ -99,12 +96,17 @@ class ListenerApp(Ice.Application):
         # Now we add instances of our listeners to the object adapter. This will allow
         # us to create proxies to the objects when we want to add ourself as a listener
         # to sessions, bridges, etc.
-        adapter.add(BridgeManagerListener(adapter), self.communicator().stringToIdentity(BridgeManagerListenerID))
+        bridgeManagerListenerObjPrx = adapter.addWithUUID(BridgeManagerListener(adapter))
         print "Added BridgeManagerListener to our object adapter"
 
-        adapter.add(BridgeListener(adapter), self.communicator().stringToIdentity(BridgeListenerID))
+        bridgeListenerObjPrx = adapter.addWithUUID(BridgeListener(adapter))
         print "Added BridgeListener to our object adapter"
 
+        # Unlike with the BridgeManagerListener and BridgeListener, we specify an ID
+        # for the SessionListener. This is because we will be retrieving this object using
+        # its ID later. We don't technically *have* to do this. We could pass the Object
+        # proxy returned by adapter.add() to the constructor of the BridgeListener for future use,
+        # but for demonstration purposes, we'll do things this way.
         adapter.add(SessionListener(adapter), self.communicator().stringToIdentity(SessionListenerID))
         print "Added SessionListener to our object adapter"
 
@@ -131,10 +133,14 @@ class ListenerApp(Ice.Application):
             print "Exception while attempting to locate BridgeManager: " + ex.what()
         self.bridgeManager = AsteriskSCF.SessionCommunications.V1.BridgeManagerPrx.checkedCast(service)
 
+        if not self.bridgeManager:
+            print "Couldn't get the bridge manager"
+            return -1
+
         print "Acquired proxy to the BridgeManager"
 
         # We add ourself as a listener to the bridge manager.
-        self.bridgeManagerListenerPrx = AsteriskSCF.SessionCommunications.V1.BridgeManagerListenerPrx.uncheckedCast(adapter.createDirectProxy(self.communicator().stringToIdentity(BridgeManagerListenerID)))
+        self.bridgeManagerListenerPrx = AsteriskSCF.SessionCommunications.V1.BridgeManagerListenerPrx.uncheckedCast(bridgeManagerListenerObjPrx)
         try:
             self.bridgeManager.addListener(self.bridgeManagerListenerPrx)
         except Ice.Exception as ex:
@@ -144,7 +150,7 @@ class ListenerApp(Ice.Application):
 
         # We also add ourself as a default bridge listener. This means that we will automatically
         # have ourself added as a listener to any bridge that gets created.
-        self.bridgeListenerPrx = AsteriskSCF.SessionCommunications.V1.BridgeListenerPrx.uncheckedCast(adapter.createDirectProxy(self.communicator().stringToIdentity(BridgeListenerID)))
+        self.bridgeListenerPrx = AsteriskSCF.SessionCommunications.V1.BridgeListenerPrx.uncheckedCast(bridgeListenerObjPrx)
         try:
             self.bridgeManager.addDefaultBridgeListener(self.bridgeListenerPrx)
         except Ice.Exception as ex:

commit effb3b18afe57134efeafd90818add85b99f0af7
Author: Mark Michelson <mmichelson at digium.com>
Date:   Fri Jun 24 11:44:28 2011 -0500

    Add COPYING and LICENSE files, and add licensing boilerplate to README.txt

diff --git a/COPYING.txt b/COPYING.txt
new file mode 100644
index 0000000..cf87abb
--- /dev/null
+++ b/COPYING.txt
@@ -0,0 +1,340 @@
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
... 615 lines suppressed ...


-- 
asterisk-scf/integration/examples.git



More information about the asterisk-scf-commits mailing list