Tim Panton - Presentation at Emerging Communications Conference & Awards (eComm 2011)

723 views
666 views

Published on

Please see blog http://blog.eComm.ec

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
723
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Tim Panton - Presentation at Emerging Communications Conference & Awards (eComm 2011)

    1. 1. Asterisk SCFA developer’s view Tim Panton - PhoneFromHere.com twitter.com/steely_glint
    2. 2. Asterisk SCF recap• Scalability• Fault tolerant• Extensible• Performance
    3. 3. Developer Ecosystem• Tip of the hat to Digium Inc• Developers involved throughout• Requirements from ecosystem• Open development process
    4. 4. What I wanted• Extensibility• Modern Language support• Dynamic• Cloud friendly
    5. 5. The Experiment• Git snapshot of current code• Not a release !• Not a routing engine• Help from asterisk-scf-dev IRC• Used Groovy (via JVM)
    6. 6. Live code demo• Code at github• https://github.com/steely-glint/ascf-groovy- demo
    7. 7. Auto generated Static code un-demo java classes Initialize import AsteriskSCF.Configuration.SipSessionManager.V1.*; ICE RPC import AsteriskSCF.Core.Discovery.V1.*; protocol import AsteriskSCF.System.Configuration.V1.*; Connect toSer viceLocator Ser vice ic = Ice.Util.initialize(null); sloc = ServiceLocatorPrxHelper.checkedCast(ic.stringToProxy("LocatorService:tcp -p 4411")); List all services = Arrays.asList(sloc.locateAll(new SipConfigurationParams())); ser vices sipconf = services.findAll { item -> ConfigurationServicePrxHelper.checkedCast(item) != null} Find the SIP sc = ConfigurationServicePrxHelper.checkedCast(sipconf[0]);Session   cgrps = [ Pick the first Manager(s)     { g = new SipGeneralGroup(); g.configurationItems = [:] ; return g} , one     { u = new SipUDPTransportGroup();       u.name = "h-udp";       u.configurationItems = [ "host" : new SipHostItem(1,"127.0.0.1",5081)]; Define a       return u}, couple of local     { u = new SipUDPTransportGroup(); Convert to       u.name = "h-udp1"; ICE friendly endpoints       u.configurationItems = [ "host" : new SipHostItem(2,"127.0.0.1",5080)]; format       return u}]; grps = cgrps.collect{item -> item.call()} sc.setConfiguration((ConfigurationGroup[])grps.toArray()); Send the request to ASCF
    8. 8. What have I proved ?• Dynamic configuration• Cloud friendly• JVM language support (java, scala, javascript)• Components independently managable
    9. 9. Voice 3.0 ready• Adornment• Session Cookies• webRTC• Hooks
    10. 10. Conclusions• Still a work in progress• Much to be done• Much to be documented• Fundamentals are right• Future-proofing is in place
    11. 11. Thanks• Comments or questions @steely_glint• My blog at babyis60.wordpress.com

    ×