# Extended Distributed Calling Package for Umbraco

- 16 Mar 2014

- Dan Lister

* * *

The Extended Distributed Calling package allows developers to create and use Distributed Calling providers to cater for different scenarios. Specifically where a hard coded list of server addresses is not possible to obtain for use within Umbraco's Distributed Calling configuration. For example, when hosting an Umbraco application in an Amazon Elastic Load Balanced application. The Extended Distributed Calling package uses a specified provider to obtain a collection of server addresses. Once obtained, a cache refresh request is sent to each server. You can [download](http://ageba.se/1p1nFJX) the Extended Distributed Calling package from [our.umbraco.org](http://our.umbraco.org/).

## Configuration

Add the following configuration section to web.config to configure and enable Extended Distributed Calling. As default, we've set-up the below example configuration to use the Amazon Distributed Calling provider:

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
[Learn more about bidirectional Unicode characters](https://github.co/hiddenchars)

[Show hidden characters](/content/blog/extended-distributed-calling-package-for-umbraco/index.html)

|     |     |
| --- | --- |
|  | <configuration> |
|  | <configSections> |
|  | <section name="extendedDistributedCalling" type="AgeBase.ExtendedDistributedCalling.Configuration.ExtendedDistributedCallingConfigSection, AgeBase.ExtendedDistributedCalling" /> |
|  | </configSections> |
|  | <extendedDistributedCalling enabled="true" user="0" type="AgeBase.ExtendedDistributedCalling.Providers.AmazonDistributedCallingProvider" assembly="AgeBase.ExtendedDistributedCalling" /> |
|  | </configuration> |

[view raw](https://gist.github.com/danlister/0f8d5320dddeb3855332/raw/556d4f50fba422cdfc8474293e8017c04f3dde53/web.config) [web.config](https://gist.github.com/danlister/0f8d5320dddeb3855332#file-web-config)
hosted with ❤ by [GitHub](https://github.com/)

The enabled attribute can be used to turn Extended Distributed Calling on or off. The user attribute must contain the user id which will be used to authenticate any cache refresh request. The type attribute must contain the fully qualified class name. The assembly attribute must contain the assembly name where the type resides.

## Providers

To write your own provider, create a new class which implements the IExtendedDistributedCallingProvider interface. The interface contains one method which requires a list of addresses to be returned. To use your provider, change your type and assembly configuration in web.config to the your new provider. To get you started, the Extended Distributed Calling assembly contains the following providers for use within your Umbraco applications:

## AWS Distributed Calling

For use on scalable Amazon Elastic Load Balanced applications. Type and assembly details are as follows:

- Type

AgeBase.ExtendedDistributedCalling.Providers.AmazonDistributedCallingProvider
- Assembly

AgeBase.ExtendedDistributedCalling

The provider requires the following Application Settings via web.config. These can either be manually or dynamically added via the AWS console:

[Show hidden characters](/content/blog/extended-distributed-calling-package-for-umbraco/index.html)

|     |     |
| --- | --- |
|  | <configuration> |
|  | <appSettings> |
|  | <add key="AWS\_ACCESS\_KEY\_ID" value="" /> |
|  | <add key="AWS\_SECRET\_KEY" value="" /> |
|  | <add key="AWS\_ENV\_NAME" value="" /> |
|  | <add key="AWS\_REGION" value="" /> |
|  | </appSettings> |
|  | </configuration> |

[view raw](https://gist.github.com/danlister/95c8e2c9d75b30dc79f4/raw/5620d1985cb2c1500c86e6d2a8d0186eb199980b/web.config) [web.config](https://gist.github.com/danlister/95c8e2c9d75b30dc79f4#file-web-config)
hosted with ❤ by [GitHub](https://github.com/)

The AWS\_ACCESS\_KEY\_ID app setting must contain a valid access key to access the AWS API. The AWS\_SECRET\_KEY app setting must contain a valid secret key to access the AWS API. The AWS\_ENV\_NAME app setting must contain the name of the current ELB's environment. The AWS\_REGION must contain the region of the current ELB's environment. The follow region values are accepted:

- us-east-1
- us-west-1
- us-west-2
- eu-west-1
- ap-northeast-1
- ap-southeast-1
- ap-southeast-2
- sa-east-1
- us-gov-west-1
- cn-north-1

**Note:** For the Amazon Distributed Calling provider to work correctly, each EC2 instance attached to the load balancer must be able to communicate with all other attached EC2 instances. To allow this, the EC2 instance security group must allow incoming HTTP calls from the ELB security group on port 80. Allowing this rule does not open up each EC2 instance to the public.

## Contributing

To raise a new bug, create an [issue](https://github.com/agebase/umbraco-extended-distributed-calling/issues) on the Github repository. To fix a bug or add new features, fork the repository and send a [pull request](https://github.com/agebase/umbraco-extended-distributed-calling/pulls) with your changes. Feel free to add ideas to the repository's [issues](https://github.com/agebase/umbraco-extended-distributed-calling/issues) list if you would to discuss anything related to the package.

* * *

Disqus Comments

We were unable to load Disqus. If you are a moderator please see our [troubleshooting guide](https://docs.disqus.com/help/83/).

G

Start the discussion…

Comment

###### Log in with

###### or sign up with Disqus  or pick a name

### Disqus is a discussion network

- Don't be a jerk or do anything illegal. Everything is easier that way.

[Read full terms and conditions](https://docs.disqus.com/kb/terms-and-policies/)

This comment platform is hosted by Disqus, Inc. I authorize Disqus and its affiliates to:

- Use, sell, and share my information to enable me to use its comment services and for marketing purposes, including cross-context behavioral advertising, as described in our [Terms of Service](https://help.disqus.com/customer/portal/articles/466260-terms-of-service) and [Privacy Policy](https://disqus.com/privacy-policy), including supplementing that information with other data about me, such as my browsing and location data.
- Contact me or enable others to contact me by email with offers for goods or services
- Process any sensitive personal information that I submit in a comment. See our [Privacy Policy](https://disqus.com/privacy-policy) for more information

Acknowledge I am 18 or older

I'd rather post as a guest

- [Favorite this discussion](https://disqus.com/embed/comments/?base=default&f=agebase&t_u=https%3A%2F%2Fagebase.co.uk%2Fblog%2Fextended-distributed-calling-package-for-umbraco%2F&t_d=Extended%20Distributed%20Calling%20Package%20for%20Umbraco&t_t=Extended%20Distributed%20Calling%20Package%20for%20Umbraco&s_o=default# "Favorite this discussion")

- ## Discussion Favorited!

Favoriting means this is a discussion worth sharing. It gets shared to your followers' Disqus feeds, and gives the creator kudos!

[Find More Discussions](https://disqus.com/home/?utm_source=disqus_embed&utm_content=recommend_btn)

[Share](https://disqus.com/embed/comments/?base=default&f=agebase&t_u=https%3A%2F%2Fagebase.co.uk%2Fblog%2Fextended-distributed-calling-package-for-umbraco%2F&t_d=Extended%20Distributed%20Calling%20Package%20for%20Umbraco&t_t=Extended%20Distributed%20Calling%20Package%20for%20Umbraco&s_o=default#)

- Tweet this discussion
  - Share this discussion on Facebook
  - Share this discussion via email
  - Copy link to discussion

- [Best](https://disqus.com/embed/comments/?base=default&f=agebase&t_u=https%3A%2F%2Fagebase.co.uk%2Fblog%2Fextended-distributed-calling-package-for-umbraco%2F&t_d=Extended%20Distributed%20Calling%20Package%20for%20Umbraco&t_t=Extended%20Distributed%20Calling%20Package%20for%20Umbraco&s_o=default#)
  - [Newest](https://disqus.com/embed/comments/?base=default&f=agebase&t_u=https%3A%2F%2Fagebase.co.uk%2Fblog%2Fextended-distributed-calling-package-for-umbraco%2F&t_d=Extended%20Distributed%20Calling%20Package%20for%20Umbraco&t_t=Extended%20Distributed%20Calling%20Package%20for%20Umbraco&s_o=default#)
  - [Oldest](https://disqus.com/embed/comments/?base=default&f=agebase&t_u=https%3A%2F%2Fagebase.co.uk%2Fblog%2Fextended-distributed-calling-package-for-umbraco%2F&t_d=Extended%20Distributed%20Calling%20Package%20for%20Umbraco&t_t=Extended%20Distributed%20Calling%20Package%20for%20Umbraco&s_o=default#)

Be the first to comment.

[Load more comments](https://disqus.com/embed/comments/?base=default&f=agebase&t_u=https%3A%2F%2Fagebase.co.uk%2Fblog%2Fextended-distributed-calling-package-for-umbraco%2F&t_d=Extended%20Distributed%20Calling%20Package%20for%20Umbraco&t_t=Extended%20Distributed%20Calling%20Package%20for%20Umbraco&s_o=default#)

live.rezync.com

# live.rezync.com is blocked

This page has been blocked by an extension

- Try disabling your extensions.

ERR\_BLOCKED\_BY\_CLIENT

Reload

This page has been blocked by an extension

pippio.com

# pippio.com is blocked

This page has been blocked by an extension

- Try disabling your extensions.

ERR\_BLOCKED\_BY\_CLIENT

Reload

This page has been blocked by an extension
