   # Authenticate, typically used in a client:
   #
   #     client = esl.createClient()
-  #     client.on 'esl_auth_request', ->
-  #       @auth 'ClueCon', ->
+  #     client.on 'esl_auth_request', (call) ->
+  #       call.auth 'ClueCon', ->
   #         # Start sending other commands here.
   #     client.connect ...
   #


#### Overview
# esl is modelled after Node.js' own httpServer and client.
# It offers two low-level ESL handlers, createClient() and
# createServer(), and a higher-level CallServer class.
#
# For more information about ESL consult the FreeSwitch wiki
# [Event Socket](http://wiki.freeswitch.org/wiki/Event_Socket)

#    &lt;action application="socket" data="127.0.0.1:7000 async full"/&gt;
# to hand the call over to an ESL server.
#
# If you'd like to get realtime channel variables after each command(),
# execute the "verbose_events" command first:
#
#     server = esl.createCallServer()
#
#     server.on 'CONNECT', (call) ->
#       # "verbose_events" will send us channel data after each "command".
#       call.command 'verbose_events', (call) ->
#         # command() will wait for the command to finish.
#         call.command 'play-file', 'voicemail/vm-hello', (call) ->
#           # You may now access realtime variables from call.body
#           foo = call.body.variable_foo
#
#     server.listen 7000
#
# For some applications you might want to capture channel events instead
# of using the command() / callback pattern:
#
#     server = esl.createCallServer()
#
#     server.on 'CONNECT', (call) ->
#       uri = call.body.variable_sip_req_uri
#
#       call.on 'CHANNEL_ANSWER', (call) ->
#         util.log 'Call was answered'
#       call.on 'CHANNEL_HANGUP_COMPLETE', (call) ->
