Adhearsion 2.5.4 + Asterisk not playing file from URL

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Adhearsion 2.5.4 + Asterisk not playing file from URL

Eric Ravelo
Hello,

I have setup an Asterisk VM with the great Telephony-Dev-Box vagrant project.
In a very basic Adhearsion app, I was able to play a file from the Asterisk file system :

  def run
    answer
    play
'/var/lib/asterisk/sounds/en/demo-thanks.gsm'
 
end


But when the same file is played from an URL, I'm getting Adhearsion + Asterisk Errors :

  def run
    answer
    play
'http://server.domain.com/demo-thanks.gsm'
 
end


I have noticed the file extension .gsm is not shown in the Asterisk logs (see below).
Is this a bug, or a misconfiguration from my side?

Thanks,
Eric


The application logs:



[2014-10-24 17:35:38.662] ERROR Adhearsion::Call: 6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc@: <Adhearsion::CallController::Output::PlaybackError> Output failed due to #<Adhearsion::Error: Terminated due to playback error: #<Punchblock::Component::Output target_call_id="6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc", target_mixer_name=nil, component_id="8d6563e1-14f6-4d1f-8a0e-54989200170e", source_uri="8d6563e1-14f6-4d1f-8a0e-54989200170e", domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, request_id="1beb2e44-63e8-491a-838a-e8d61911d4ce", voice=nil, interrupt_on=nil, start_offset=nil, start_paused=nil, repeat_interval=nil, repeat_times=nil, max_time=nil, renderer=nil, render_documents=[#<Punchblock::Component::Output::Document target_call_id=nil, target_mixer_name=nil, component_id=nil, source_uri=nil, domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, url=nil, content_type="application/ssml+xml", value=<speak xmlns="http://www.w3.org/2001/10/synthesis" version="1.0" xml:lang="en-US">
 
<audio src="http://server.domain.com/demo-thanks.gsm"/>
</speak>>]>>
    /
home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:23:in `rescue in output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:13:in `
output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/abstract_player.rb:18:in `play_ssml'

   
/home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output.rb:102:in `play'
    /home/eravelo/ahn_apps/tuto-tdb/app/call_controllers/simon_game.rb:9:in `
run'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:120:in `execute!'

   
/home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:95:in `block in exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `
catch'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `exec'

   
/home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:111:in `exec_with_callback'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:105:in `
block (2 levels) in bg_exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/foundation/exception_handler.rb:5:in `catching_standard_errors'






Asterisk logs:


<------------>
Scheduling destruction of SIP dialog '3d1cc5ec-b64a-4052-aa48-4f91cfd90ce6' in 32000 ms (Method: REGISTER)
    -- AGI Script Executing Application: (Playback) Options: (
http://server.domain.com/demo-thanks)
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:701 ast_openstream_full: File
http://server.domain.com/demo-thanks does not exist in any format
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:1017 ast_streamfile: Unable to open
http://server.domain.com/demo-thanks (format (ulaw)): No such file or directory
[Oct 24 15:35:38] WARNING[2172][C-00000006]: app_playback.c:484 playback_exec: ast_streamfile failed on SIP/usera-00000006 for http://vxml-stage.voicepublisher.net/audio/en/demo-thanks
    -- Manager 'manager' from 10.203.175.1, hanging up channel: SIP/usera-00000006
  == Spawn extension (adhearsion, 22, 1) exited non-zero on 'SIP/usera-00000006'
    -- Executing [h@adhearsion:1] AGI("SIP/usera-00000006", "agi:async") in new stack
  == Spawn extension (adhearsion, h, 1) exited non-zero on 'SIP/usera-00000006'
Scheduling destruction of SIP dialog '97de68ff-d4ae-48e5-801e-e1570ea9a2c3' in 32000 ms (Method: ACK)
set_destination: Parsing
<sip:usera@10.33.35.13:5060> for address/port to send to
set_destination: set destination to 10.33.35.13:5060
Reliably Transmitting (no NAT) to 10.33.35.13:5060:
BYE sip:10.33.35.13:5060 SIP/2.0
v: SIP/2.0/UDP 10.203.175.11:5060;branch=z9hG4bK09797e41;rport
Max-Forwards: 70
f:
<sip:22@asterisk.local-dev.mojolingo.com>;tag=as396c2914
t:
<sip:usera@asterisk.local-dev.mojolingo.com>;tag=d28f592d-ee38-446f-b9a1-d7af42a089a0
i: 97de68ff-d4ae-48e5-801e-e1570ea9a2c3
CSeq: 102 BYE
User-Agent: Asterisk with Adhearsion
Proxy-Authorization: Digest username="usera", realm="asterisk", algorithm=MD5, uri="sip:asterisk.local-dev.mojolingo.com", nonce="4d805c8f", response="59cec369a95030f8d4e5c1f8b278c9c7"
X-Asterisk-HangupCause: Normal Clearing
X-Asterisk-HangupCauseCode: 16
l: 0

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Adhearsion 2.5.4 + Asterisk not playing file from URL

Ben Klang-2
Hi Eric,

Welcome to the Adhearsion community!


Il giorno Oct 24, 2014, alle ore 8:51 AM, Eric Ravelo <[hidden email]> ha scritto:

Hello,

I have setup an Asterisk VM with the great Telephony-Dev-Box vagrant project.
In a very basic Adhearsion app, I was able to play a file from the Asterisk file system :

  def run
    answer
    play '/var/lib/asterisk/sounds/en/demo-thanks.gsm'
  end


But when the same file is played from an URL, I'm getting Adhearsion + Asterisk Errors :

  def run
    answer
    play 'http://server.domain.com/demo-thanks.gsm'
  end


I have noticed the file extension .gsm is not shown in the Asterisk logs (see below).
Is this a bug, or a misconfiguration from my side?

This is a limitation of Asterisk.  Unfortunately, Asterisk does not know how to fetch audio resources from a URL for playback. It can only accept file-based URLs.  Note that it also means the audio file has to be readable from the perspective of the Asterisk process, since we just pass that URL back to Asterisk for processing.

If fetching the audio from HTTP is really a requirement, you could fetch the file with Adhearsion and then pass the temporary filename to Asterisk. Of course, to do that, Adhearsion and Asterisk would have to be on the same server, or otherwise share a filesystem.

/BAK/


Thanks,
Eric


The application logs:



[2014-10-24 17:35:38.662] ERROR Adhearsion::Call: 6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc@: <Adhearsion::CallController::Output::PlaybackError> Output failed due to #<Adhearsion::Error: Terminated due to playback error: #<Punchblock::Component::Output target_call_id="6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc", target_mixer_name=nil, component_id="8d6563e1-14f6-4d1f-8a0e-54989200170e", source_uri="8d6563e1-14f6-4d1f-8a0e-54989200170e", domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, request_id="1beb2e44-63e8-491a-838a-e8d61911d4ce", voice=nil, interrupt_on=nil, start_offset=nil, start_paused=nil, repeat_interval=nil, repeat_times=nil, max_time=nil, renderer=nil, render_documents=[#<Punchblock::Component::Output::Document target_call_id=nil, target_mixer_name=nil, component_id=nil, source_uri=nil, domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, url=nil, content_type="application/ssml+xml", value=<speak xmlns="http://www.w3.org/2001/10/synthesis" version="1.0" xml:lang="en-US">
  <audio src="http://server.domain.com/demo-thanks.gsm"/>
</speak>>]>>
    /
home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:23:in `rescue in output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:13:in `
output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/abstract_player.rb:18:in `play_ssml'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output.rb:102:in `play'
    /home/eravelo/ahn_apps/tuto-tdb/app/call_controllers/simon_game.rb:9:in `
run'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:120:in `execute!'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:95:in `block in exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `
catch'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `exec'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:111:in `exec_with_callback'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:105:in `
block (2 levels) in bg_exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/foundation/exception_handler.rb:5:in `catching_standard_errors'






Asterisk logs:


<------------>
Scheduling destruction of SIP dialog '3d1cc5ec-b64a-4052-aa48-4f91cfd90ce6' in 32000 ms (Method: REGISTER)
    -- AGI Script Executing Application: (Playback) Options: (http://server.domain.com/demo-thanks)
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:701 ast_openstream_full: File http://server.domain.com/demo-thanks does not exist in any format
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:1017 ast_streamfile: Unable to open http://server.domain.com/demo-thanks (format (ulaw)): No such file or directory
[Oct 24 15:35:38] WARNING[2172][C-00000006]: app_playback.c:484 playback_exec: ast_streamfile failed on SIP/usera-00000006 for http://vxml-stage.voicepublisher.net/audio/en/demo-thanks
    -- Manager 'manager' from 10.203.175.1, hanging up channel: SIP/usera-00000006
  == Spawn extension (adhearsion, 22, 1) exited non-zero on 'SIP/usera-00000006'
    -- Executing [h@adhearsion:1] AGI("SIP/usera-00000006", "agi:async") in new stack
  == Spawn extension (adhearsion, h, 1) exited non-zero on 'SIP/usera-00000006'
Scheduling destruction of SIP dialog '97de68ff-d4ae-48e5-801e-e1570ea9a2c3' in 32000 ms (Method: ACK)
set_destination: Parsing <<a href="sip:usera" class="">sip:usera@10.33.35.13:5060> for address/port to send to
set_destination: set destination to 10.33.35.13:5060
Reliably Transmitting (no NAT) to 10.33.35.13:5060:
BYE <a href="sip:10.33.35.13:5060" class="">sip:10.33.35.13:5060 SIP/2.0
v: SIP/2.0/UDP 10.203.175.11:5060;branch=z9hG4bK09797e41;rport
Max-Forwards: 70
f: <<a href="sip:22" class="">sip:22@asterisk.local-dev.mojolingo.com>;tag=as396c2914
t: <<a href="sip:usera" class="">sip:usera@asterisk.local-dev.mojolingo.com>;tag=d28f592d-ee38-446f-b9a1-d7af42a089a0
i: 97de68ff-d4ae-48e5-801e-e1570ea9a2c3
CSeq: 102 BYE
User-Agent: Asterisk with Adhearsion
Proxy-Authorization: Digest username="usera", realm="asterisk", algorithm=MD5, uri="<a href="sip:asterisk.local-dev.mojolingo.com" class="">sip:asterisk.local-dev.mojolingo.com", nonce="4d805c8f", response="59cec369a95030f8d4e5c1f8b278c9c7"
X-Asterisk-HangupCause: Normal Clearing
X-Asterisk-HangupCauseCode: 16
l: 0


--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Adhearsion 2.5.4 + Asterisk not playing file from URL

Ben Langfeld-2
On 24 October 2014 14:23, Ben Klang <[hidden email]> wrote:
Hi Eric,

Welcome to the Adhearsion community!


Il giorno Oct 24, 2014, alle ore 8:51 AM, Eric Ravelo <[hidden email]> ha scritto:

Hello,

I have setup an Asterisk VM with the great Telephony-Dev-Box vagrant project.
In a very basic Adhearsion app, I was able to play a file from the Asterisk file system :

  def run
    answer
    play '/var/lib/asterisk/sounds/en/demo-thanks.gsm'
  end


But when the same file is played from an URL, I'm getting Adhearsion + Asterisk Errors :

  def run
    answer
    play 'http://server.domain.com/demo-thanks.gsm'
  end


I have noticed the file extension .gsm is not shown in the Asterisk logs (see below).
Is this a bug, or a misconfiguration from my side?

This is a limitation of Asterisk.  Unfortunately, Asterisk does not know how to fetch audio resources from a URL for playback. It can only accept file-based URLs.  Note that it also means the audio file has to be readable from the perspective of the Asterisk process, since we just pass that URL back to Asterisk for processing.

If fetching the audio from HTTP is really a requirement, you could fetch the file with Adhearsion and then pass the temporary filename to Asterisk. Of course, to do that, Adhearsion and Asterisk would have to be on the same server, or otherwise share a filesystem.

Alternatively you could switch Asterisk for FreeSWITCH and it'll work perfectly!
 

/BAK/


Thanks,
Eric


The application logs:



[2014-10-24 17:35:38.662] ERROR Adhearsion::Call: 6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc@: <Adhearsion::CallController::Output::PlaybackError> Output failed due to #<Adhearsion::Error: Terminated due to playback error: #<Punchblock::Component::Output target_call_id="6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc", target_mixer_name=nil, component_id="8d6563e1-14f6-4d1f-8a0e-54989200170e", source_uri="8d6563e1-14f6-4d1f-8a0e-54989200170e", domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, request_id="1beb2e44-63e8-491a-838a-e8d61911d4ce", voice=nil, interrupt_on=nil, start_offset=nil, start_paused=nil, repeat_interval=nil, repeat_times=nil, max_time=nil, renderer=nil, render_documents=[#<Punchblock::Component::Output::Document target_call_id=nil, target_mixer_name=nil, component_id=nil, source_uri=nil, domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, url=nil, content_type="application/ssml+xml", value=<speak xmlns="http://www.w3.org/2001/10/synthesis" version="1.0" xml:lang="en-US">
  <audio src="http://server.domain.com/demo-thanks.gsm"/>
</speak>>]>>
    /
home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:23:in `rescue in output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:13:in `
output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/abstract_player.rb:18:in `play_ssml'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output.rb:102:in `play'
    /home/eravelo/ahn_apps/tuto-tdb/app/call_controllers/simon_game.rb:9:in `
run'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:120:in `execute!'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:95:in `block in exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `
catch'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `exec'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:111:in `exec_with_callback'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:105:in `
block (2 levels) in bg_exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/foundation/exception_handler.rb:5:in `catching_standard_errors'






Asterisk logs:


<------------>
Scheduling destruction of SIP dialog '3d1cc5ec-b64a-4052-aa48-4f91cfd90ce6' in 32000 ms (Method: REGISTER)
    -- AGI Script Executing Application: (Playback) Options: (http://server.domain.com/demo-thanks)
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:701 ast_openstream_full: File http://server.domain.com/demo-thanks does not exist in any format
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:1017 ast_streamfile: Unable to open http://server.domain.com/demo-thanks (format (ulaw)): No such file or directory
[Oct 24 15:35:38] WARNING[2172][C-00000006]: app_playback.c:484 playback_exec: ast_streamfile failed on SIP/usera-00000006 for http://vxml-stage.voicepublisher.net/audio/en/demo-thanks
    -- Manager 'manager' from 10.203.175.1, hanging up channel: SIP/usera-00000006
  == Spawn extension (adhearsion, 22, 1) exited non-zero on 'SIP/usera-00000006'
    -- Executing [h@adhearsion:1] AGI("SIP/usera-00000006", "agi:async") in new stack
  == Spawn extension (adhearsion, h, 1) exited non-zero on 'SIP/usera-00000006'
Scheduling destruction of SIP dialog '97de68ff-d4ae-48e5-801e-e1570ea9a2c3' in 32000 ms (Method: ACK)
set_destination: Parsing <sip:usera@10.33.35.13:5060> for address/port to send to
set_destination: set destination to 10.33.35.13:5060
Reliably Transmitting (no NAT) to 10.33.35.13:5060:
BYE sip:10.33.35.13:5060 SIP/2.0
v: SIP/2.0/UDP 10.203.175.11:5060;branch=z9hG4bK09797e41;rport
Max-Forwards: 70
f: <sip:22@asterisk.local-dev.mojolingo.com>;tag=as396c2914
t: <sip:usera@asterisk.local-dev.mojolingo.com>;tag=d28f592d-ee38-446f-b9a1-d7af42a089a0
i: 97de68ff-d4ae-48e5-801e-e1570ea9a2c3
CSeq: 102 BYE
User-Agent: Asterisk with Adhearsion
Proxy-Authorization: Digest username="usera", realm="asterisk", algorithm=MD5, uri="sip:asterisk.local-dev.mojolingo.com", nonce="4d805c8f", response="59cec369a95030f8d4e5c1f8b278c9c7"
X-Asterisk-HangupCause: Normal Clearing
X-Asterisk-HangupCauseCode: 16
l: 0


--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Adhearsion 2.5.4 + Asterisk not playing file from URL

Eric Ravelo
Hi Ben & Ben,

Thanks a lot for the replies.

I thought that Adhearsion was dealing with the "impedance adaptation" between the URL and the file needed by Asterisk, since the Play from URL feature is in the documentattion, without a mention to the telephony backend.

Anyway. Is this the only area where FreeSWITCH beats Asterisk when working with Adhearsion? What would be your advise for a production platform?


On Friday, October 24, 2014 6:43:59 PM UTC+2, Ben Langfeld wrote:
On 24 October 2014 14:23, Ben Klang <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="8Z_k0meTaDwJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">bkl...@...> wrote:
Hi Eric,

Welcome to the Adhearsion community!


Il giorno Oct 24, 2014, alle ore 8:51 AM, Eric Ravelo <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="8Z_k0meTaDwJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">era...@...> ha scritto:

Hello,

I have setup an Asterisk VM with the great Telephony-Dev-Box vagrant project.
In a very basic Adhearsion app, I was able to play a file from the Asterisk file system :

  def run
    answer
    play '/var/lib/asterisk/sounds/en/demo-thanks.gsm'
  end


But when the same file is played from an URL, I'm getting Adhearsion + Asterisk Errors :

  def run
    answer
    play '<a href="http://server.domain.com/demo-thanks.gsm'" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks.gsm\47\46sa\75D\46sntz\0751\46usg\75AFQjCNHLTVsXfCH5bQFsVKL9E2Knp4OTPA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks.gsm\47\46sa\75D\46sntz\0751\46usg\75AFQjCNHLTVsXfCH5bQFsVKL9E2Knp4OTPA';return true;">http://server.domain.com/demo-thanks.gsm'
  end


I have noticed the file extension .gsm is not shown in the Asterisk logs (see below).
Is this a bug, or a misconfiguration from my side?

This is a limitation of Asterisk.  Unfortunately, Asterisk does not know how to fetch audio resources from a URL for playback. It can only accept file-based URLs.  Note that it also means the audio file has to be readable from the perspective of the Asterisk process, since we just pass that URL back to Asterisk for processing.

If fetching the audio from HTTP is really a requirement, you could fetch the file with Adhearsion and then pass the temporary filename to Asterisk. Of course, to do that, Adhearsion and Asterisk would have to be on the same server, or otherwise share a filesystem.

Alternatively you could switch Asterisk for FreeSWITCH and it'll work perfectly!
 

/BAK/


Thanks,
Eric


The application logs:



[2014-10-24 17:35:38.662] ERROR Adhearsion::Call: 6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc@: <Adhearsion::CallController::Output::PlaybackError> Output failed due to #<Adhearsion::Error: Terminated due to playback error: #<Punchblock::Component::Output target_call_id="6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc", target_mixer_name=nil, component_id="8d6563e1-14f6-4d1f-8a0e-54989200170e", source_uri="8d6563e1-14f6-4d1f-8a0e-54989200170e", domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, request_id="1beb2e44-63e8-491a-838a-e8d61911d4ce", voice=nil, interrupt_on=nil, start_offset=nil, start_paused=nil, repeat_interval=nil, repeat_times=nil, max_time=nil, renderer=nil, render_documents=[#<Punchblock::Component::Output::Document target_call_id=nil, target_mixer_name=nil, component_id=nil, source_uri=nil, domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, url=nil, content_type="application/ssml+xml", value=<speak xmlns="<a href="http://www.w3.org/2001/10/synthesis" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.w3.org%2F2001%2F10%2Fsynthesis\46sa\75D\46sntz\0751\46usg\75AFQjCNFqjm6NM14_EJaEnQY0QPVBzOEhHg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.w3.org%2F2001%2F10%2Fsynthesis\46sa\75D\46sntz\0751\46usg\75AFQjCNFqjm6NM14_EJaEnQY0QPVBzOEhHg';return true;">http://www.w3.org/2001/10/synthesis" version="1.0" xml:lang="en-US">
  <audio src="<a href="http://server.domain.com/demo-thanks.gsm" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks.gsm\46sa\75D\46sntz\0751\46usg\75AFQjCNEKjMqEvt2mnHMo_M2JbR8maTnOkA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks.gsm\46sa\75D\46sntz\0751\46usg\75AFQjCNEKjMqEvt2mnHMo_M2JbR8maTnOkA';return true;">http://server.domain.com/demo-thanks.gsm"/>
</speak>>]>>
    /
home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:23:in `rescue in output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:13:in `
output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/abstract_player.rb:18:in `play_ssml'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output.rb:102:in `play'
    /home/eravelo/ahn_apps/tuto-tdb/app/call_controllers/simon_game.rb:9:in `
run'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:120:in `execute!'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:95:in `block in exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `
catch'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `exec'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:111:in `exec_with_callback'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:105:in `
block (2 levels) in bg_exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/foundation/exception_handler.rb:5:in `catching_standard_errors'






Asterisk logs:


<------------>
Scheduling destruction of SIP dialog '3d1cc5ec-b64a-4052-aa48-4f91cfd90ce6' in 32000 ms (Method: REGISTER)
    -- AGI Script Executing Application: (Playback) Options: (<a href="http://server.domain.com/demo-thanks" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;">http://server.domain.com/demo-thanks)
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:701 ast_openstream_full: File <a href="http://server.domain.com/demo-thanks" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;">http://server.domain.com/demo-thanks does not exist in any format
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:1017 ast_streamfile: Unable to open <a href="http://server.domain.com/demo-thanks" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;">http://server.domain.com/demo-thanks (format (ulaw)): No such file or directory
[Oct 24 15:35:38] WARNING[2172][C-00000006]: app_playback.c:484 playback_exec: ast_streamfile failed on SIP/usera-00000006 for <a href="http://vxml-stage.voicepublisher.net/audio/en/demo-thanks" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fvxml-stage.voicepublisher.net%2Faudio%2Fen%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNHHRNDPb2r8xq6qr2Y-9ObIs5JE7g';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fvxml-stage.voicepublisher.net%2Faudio%2Fen%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNHHRNDPb2r8xq6qr2Y-9ObIs5JE7g';return true;">http://vxml-stage.voicepublisher.net/audio/en/demo-thanks
    -- Manager 'manager' from 10.203.175.1, hanging up channel: SIP/usera-00000006
  == Spawn extension (adhearsion, 22, 1) exited non-zero on 'SIP/usera-00000006'
    -- Executing [h@adhearsion:1] AGI("SIP/usera-00000006", "agi:async") in new stack
  == Spawn extension (adhearsion, h, 1) exited non-zero on 'SIP/usera-00000006'
Scheduling destruction of SIP dialog '97de68ff-d4ae-48e5-801e-e1570ea9a2c3' in 32000 ms (Method: ACK)
set_destination: Parsing <sip:usera@<a href="http://10.33.35.13:5060" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;">10.33.35.13:5060> for address/port to send to
set_destination: set destination to <a href="http://10.33.35.13:5060" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;">10.33.35.13:5060
Reliably Transmitting (no NAT) to <a href="http://10.33.35.13:5060" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;">10.33.35.13:5060:
BYE sip:10.33.35.13:5060 SIP/2.0
v: SIP/2.0/UDP 10.203.175.11:5060;branch=z9hG4bK09797e41;rport
Max-Forwards: 70
f: <sip:22@asterisk.local-dev.mojolingo.com>;tag=as396c2914
t: <sip:usera@asterisk.local-dev.mojolingo.com>;tag=d28f592d-ee38-446f-b9a1-d7af42a089a0
i: 97de68ff-d4ae-48e5-801e-e1570ea9a2c3
CSeq: 102 BYE
User-Agent: Asterisk with Adhearsion
Proxy-Authorization: Digest username="usera", realm="asterisk", algorithm=MD5, uri="sip:asterisk.local-dev.mojolingo.com", nonce="4d805c8f", response="59cec369a95030f8d4e5c1f8b278c9c7"
X-Asterisk-HangupCause: Normal Clearing
X-Asterisk-HangupCauseCode: 16
l: 0


--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="8Z_k0meTaDwJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">adhearsion+...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="8Z_k0meTaDwJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">adhearsion+...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Adhearsion 2.5.4 + Asterisk not playing file from URL

Andrius Kairiukstis-2
Hi Eric, actually you could download file and take care to convert it to the asterisk format. 
I suggest to do that prior starting your AHN application, there are a lot of ruby-ways how to fetch remote file.

Regards,

Andrius Kairiukstis

e-mail: [hidden email], web: andrius.mobi
(ES) +34 652 299 183, (UK) +44 20 3603 3803, (LT) +370 5 203 0095


On 27 October 2014 11:16, Eric Ravelo <[hidden email]> wrote:
Hi Ben & Ben,

Thanks a lot for the replies.

I thought that Adhearsion was dealing with the "impedance adaptation" between the URL and the file needed by Asterisk, since the Play from URL feature is in the documentattion, without a mention to the telephony backend.

Anyway. Is this the only area where FreeSWITCH beats Asterisk when working with Adhearsion? What would be your advise for a production platform?


On Friday, October 24, 2014 6:43:59 PM UTC+2, Ben Langfeld wrote:
On 24 October 2014 14:23, Ben Klang <[hidden email]> wrote:
Hi Eric,

Welcome to the Adhearsion community!


Il giorno Oct 24, 2014, alle ore 8:51 AM, Eric Ravelo <[hidden email]> ha scritto:

Hello,

I have setup an Asterisk VM with the great Telephony-Dev-Box vagrant project.
In a very basic Adhearsion app, I was able to play a file from the Asterisk file system :

  def run
    answer
    play '/var/lib/asterisk/sounds/en/demo-thanks.gsm'
  end


But when the same file is played from an URL, I'm getting Adhearsion + Asterisk Errors :

  def run
    answer
    play 'http://server.domain.com/demo-thanks.gsm'
  end


I have noticed the file extension .gsm is not shown in the Asterisk logs (see below).
Is this a bug, or a misconfiguration from my side?

This is a limitation of Asterisk.  Unfortunately, Asterisk does not know how to fetch audio resources from a URL for playback. It can only accept file-based URLs.  Note that it also means the audio file has to be readable from the perspective of the Asterisk process, since we just pass that URL back to Asterisk for processing.

If fetching the audio from HTTP is really a requirement, you could fetch the file with Adhearsion and then pass the temporary filename to Asterisk. Of course, to do that, Adhearsion and Asterisk would have to be on the same server, or otherwise share a filesystem.

Alternatively you could switch Asterisk for FreeSWITCH and it'll work perfectly!
 

/BAK/


Thanks,
Eric


The application logs:



[2014-10-24 17:35:38.662] ERROR Adhearsion::Call: 6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc@: <Adhearsion::CallController::Output::PlaybackError> Output failed due to #<Adhearsion::Error: Terminated due to playback error: #<Punchblock::Component::Output target_call_id="6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc", target_mixer_name=nil, component_id="8d6563e1-14f6-4d1f-8a0e-54989200170e", source_uri="8d6563e1-14f6-4d1f-8a0e-54989200170e", domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, request_id="1beb2e44-63e8-491a-838a-e8d61911d4ce", voice=nil, interrupt_on=nil, start_offset=nil, start_paused=nil, repeat_interval=nil, repeat_times=nil, max_time=nil, renderer=nil, render_documents=[#<Punchblock::Component::Output::Document target_call_id=nil, target_mixer_name=nil, component_id=nil, source_uri=nil, domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, url=nil, content_type="application/ssml+xml", value=<speak xmlns="http://www.w3.org/2001/10/synthesis" version="1.0" xml:lang="en-US">
  <audio src="http://server.domain.com/demo-thanks.gsm"/>
</speak>>]>>
    /
home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:23:in `rescue in output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:13:in `
output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/abstract_player.rb:18:in `play_ssml'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output.rb:102:in `play'
    /home/eravelo/ahn_apps/tuto-tdb/app/call_controllers/simon_game.rb:9:in `
run'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:120:in `execute!'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:95:in `block in exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `
catch'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `exec'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:111:in `exec_with_callback'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:105:in `
block (2 levels) in bg_exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/foundation/exception_handler.rb:5:in `catching_standard_errors'






Asterisk logs:


<------------>
Scheduling destruction of SIP dialog '3d1cc5ec-b64a-4052-aa48-4f91cfd90ce6' in 32000 ms (Method: REGISTER)
    -- AGI Script Executing Application: (Playback) Options: (http://server.domain.com/demo-thanks)
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:701 ast_openstream_full: File http://server.domain.com/demo-thanks does not exist in any format
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:1017 ast_streamfile: Unable to open http://server.domain.com/demo-thanks (format (ulaw)): No such file or directory
[Oct 24 15:35:38] WARNING[2172][C-00000006]: app_playback.c:484 playback_exec: ast_streamfile failed on SIP/usera-00000006 for http://vxml-stage.voicepublisher.net/audio/en/demo-thanks
    -- Manager 'manager' from 10.203.175.1, hanging up channel: SIP/usera-00000006
  == Spawn extension (adhearsion, 22, 1) exited non-zero on 'SIP/usera-00000006'
    -- Executing [h@adhearsion:1] AGI("SIP/usera-00000006", "agi:async") in new stack
  == Spawn extension (adhearsion, h, 1) exited non-zero on 'SIP/usera-00000006'
Scheduling destruction of SIP dialog '97de68ff-d4ae-48e5-801e-e1570ea9a2c3' in 32000 ms (Method: ACK)
set_destination: Parsing <sip:usera@10.33.35.13:5060> for address/port to send to
set_destination: set destination to 10.33.35.13:5060
Reliably Transmitting (no NAT) to 10.33.35.13:5060:
BYE sip:10.33.35.13:5060 SIP/2.0
v: SIP/2.0/UDP 10.203.175.11:5060;branch=z9hG4bK09797e41;rport
Max-Forwards: 70
f: <sip:22@asterisk.local-dev.mojolingo.com>;tag=as396c2914
t: <sip:usera@asterisk.local-dev.mojolingo.com>;tag=d28f592d-ee38-446f-b9a1-d7af42a089a0
i: 97de68ff-d4ae-48e5-801e-e1570ea9a2c3
CSeq: 102 BYE
User-Agent: Asterisk with Adhearsion
Proxy-Authorization: Digest username="usera", realm="asterisk", algorithm=MD5, uri="sip:asterisk.local-dev.mojolingo.com", nonce="4d805c8f", response="59cec369a95030f8d4e5c1f8b278c9c7"
X-Asterisk-HangupCause: Normal Clearing
X-Asterisk-HangupCauseCode: 16
l: 0


--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adhearsion+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adhearsion+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Adhearsion 2.5.4 + Asterisk not playing file from URL

Ben Klang-2
In reply to this post by Eric Ravelo

Il giorno Oct 27, 2014, alle ore 5:16 AM, Eric Ravelo <[hidden email]> ha scritto:

Hi Ben & Ben,

Thanks a lot for the replies.

I thought that Adhearsion was dealing with the "impedance adaptation" between the URL and the file needed by Asterisk, since the Play from URL feature is in the documentattion, without a mention to the telephony backend.

Thanks for that note. I’ll update the documentation to be a bit more clear on that handling.


Anyway. Is this the only area where FreeSWITCH beats Asterisk when working with Adhearsion? What would be your advise for a production platform?

A couple of things come to mind:

* Asterisk can do Answering Machine Detection (word counting), while FreeSWITCH can’t (it can do beep detection, but that’s not the same thing)
* Asterisk through version 11 has a bug that prevents detecting DTMF while bridged, but this is fixed in Asterisk 13 (not sure about 12, but don’t use 12). Also note that Adhearsion does not yet support Asterisk 13, but will in the near future, as Asterisk 13 only came out yesterday.
* Asterisk has some odd behaviors if you try to pass very long ASR grammars or TTS documents (SSML) due to a hard-coded 1024-character limit in processing AGI commands.  The workaround is to pass grammars and synthesis documents by HTTP or file URL (in this case, yes, Asterisk can handle an http URL)
* FreeSWITCH can handle asymmetric joins (the kind of thing where one side can only speak, or only listen), while Asterisk can only manage full-duplex

Hope this helps,
/BAK/
-- 
Ben Klang
Principal/Technology Strategist, Mojo Lingo
+1.404.475.4841

Mojo Lingo -- Voice applications that work like magic
Twitter: @MojoLingo





On Friday, October 24, 2014 6:43:59 PM UTC+2, Ben Langfeld wrote:
On 24 October 2014 14:23, Ben Klang <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="8Z_k0meTaDwJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;" class="">bkl...@...> wrote:
Hi Eric,

Welcome to the Adhearsion community!


Il giorno Oct 24, 2014, alle ore 8:51 AM, Eric Ravelo <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="8Z_k0meTaDwJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;" class="">era...@...> ha scritto:

Hello,

I have setup an Asterisk VM with the great Telephony-Dev-Box vagrant project.
In a very basic Adhearsion app, I was able to play a file from the Asterisk file system :

  def run
    answer
    play '/var/lib/asterisk/sounds/en/demo-thanks.gsm'
  end


But when the same file is played from an URL, I'm getting Adhearsion + Asterisk Errors :

  def run
    answer
    play '<a href="http://server.domain.com/demo-thanks.gsm'" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks.gsm\47\46sa\75D\46sntz\0751\46usg\75AFQjCNHLTVsXfCH5bQFsVKL9E2Knp4OTPA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks.gsm\47\46sa\75D\46sntz\0751\46usg\75AFQjCNHLTVsXfCH5bQFsVKL9E2Knp4OTPA';return true;" class="">http://server.domain.com/demo-thanks.gsm'
  end


I have noticed the file extension .gsm is not shown in the Asterisk logs (see below).
Is this a bug, or a misconfiguration from my side?

This is a limitation of Asterisk.  Unfortunately, Asterisk does not know how to fetch audio resources from a URL for playback. It can only accept file-based URLs.  Note that it also means the audio file has to be readable from the perspective of the Asterisk process, since we just pass that URL back to Asterisk for processing.

If fetching the audio from HTTP is really a requirement, you could fetch the file with Adhearsion and then pass the temporary filename to Asterisk. Of course, to do that, Adhearsion and Asterisk would have to be on the same server, or otherwise share a filesystem.

Alternatively you could switch Asterisk for FreeSWITCH and it'll work perfectly!
 

/BAK/


Thanks,
Eric


The application logs:



[2014-10-24 17:35:38.662] ERROR Adhearsion::Call: 6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc@: <Adhearsion::CallController::Output::PlaybackError> Output failed due to #<Adhearsion::Error: Terminated due to playback error: #<Punchblock::Component::Output target_call_id="6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc", target_mixer_name=nil, component_id="8d6563e1-14f6-4d1f-8a0e-54989200170e", source_uri="8d6563e1-14f6-4d1f-8a0e-54989200170e", domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, request_id="1beb2e44-63e8-491a-838a-e8d61911d4ce", voice=nil, interrupt_on=nil, start_offset=nil, start_paused=nil, repeat_interval=nil, repeat_times=nil, max_time=nil, renderer=nil, render_documents=[#<Punchblock::Component::Output::Document target_call_id=nil, target_mixer_name=nil, component_id=nil, source_uri=nil, domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, url=nil, content_type="application/ssml+xml", value=<speak xmlns="<a href="http://www.w3.org/2001/10/synthesis" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.w3.org%2F2001%2F10%2Fsynthesis\46sa\75D\46sntz\0751\46usg\75AFQjCNFqjm6NM14_EJaEnQY0QPVBzOEhHg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.w3.org%2F2001%2F10%2Fsynthesis\46sa\75D\46sntz\0751\46usg\75AFQjCNFqjm6NM14_EJaEnQY0QPVBzOEhHg';return true;" class="">http://www.w3.org/2001/10/synthesis" version="1.0" xml:lang="en-US">
  <audio src="<a href="http://server.domain.com/demo-thanks.gsm" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks.gsm\46sa\75D\46sntz\0751\46usg\75AFQjCNEKjMqEvt2mnHMo_M2JbR8maTnOkA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks.gsm\46sa\75D\46sntz\0751\46usg\75AFQjCNEKjMqEvt2mnHMo_M2JbR8maTnOkA';return true;" class="">http://server.domain.com/demo-thanks.gsm"/>
</speak>>]>>
    /
home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:23:in `rescue in output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:13:in `
output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/abstract_player.rb:18:in `play_ssml'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output.rb:102:in `play'
    /home/eravelo/ahn_apps/tuto-tdb/app/call_controllers/simon_game.rb:9:in `
run'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:120:in `execute!'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:95:in `block in exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `
catch'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `exec'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:111:in `exec_with_callback'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:105:in `
block (2 levels) in bg_exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/foundation/exception_handler.rb:5:in `catching_standard_errors'






Asterisk logs:


<------------>
Scheduling destruction of SIP dialog '3d1cc5ec-b64a-4052-aa48-4f91cfd90ce6' in 32000 ms (Method: REGISTER)
    -- AGI Script Executing Application: (Playback) Options: (<a href="http://server.domain.com/demo-thanks" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;" class="">http://server.domain.com/demo-thanks)
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:701 ast_openstream_full: File <a href="http://server.domain.com/demo-thanks" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;" class="">http://server.domain.com/demo-thanks does not exist in any format
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:1017 ast_streamfile: Unable to open <a href="http://server.domain.com/demo-thanks" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;" class="">http://server.domain.com/demo-thanks (format (ulaw)): No such file or directory
[Oct 24 15:35:38] WARNING[2172][C-00000006]: app_playback.c:484 playback_exec: ast_streamfile failed on SIP/usera-00000006 for <a href="http://vxml-stage.voicepublisher.net/audio/en/demo-thanks" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fvxml-stage.voicepublisher.net%2Faudio%2Fen%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNHHRNDPb2r8xq6qr2Y-9ObIs5JE7g';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fvxml-stage.voicepublisher.net%2Faudio%2Fen%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNHHRNDPb2r8xq6qr2Y-9ObIs5JE7g';return true;" class="">http://vxml-stage.voicepublisher.net/audio/en/demo-thanks
    -- Manager 'manager' from 10.203.175.1, hanging up channel: SIP/usera-00000006
  == Spawn extension (adhearsion, 22, 1) exited non-zero on 'SIP/usera-00000006'
    -- Executing [h@adhearsion:1] AGI("SIP/usera-00000006", "agi:async") in new stack
  == Spawn extension (adhearsion, h, 1) exited non-zero on 'SIP/usera-00000006'
Scheduling destruction of SIP dialog '97de68ff-d4ae-48e5-801e-e1570ea9a2c3' in 32000 ms (Method: ACK)
set_destination: Parsing <sip:usera@<a href="http://10.33.35.13:5060/" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;" class="">10.33.35.13:5060> for address/port to send to
set_destination: set destination to <a href="http://10.33.35.13:5060/" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;" class="">10.33.35.13:5060
Reliably Transmitting (no NAT) to <a href="http://10.33.35.13:5060/" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;" class="">10.33.35.13:5060:
BYE sip:10.33.35.13:5060 SIP/2.0
v: SIP/2.0/UDP 10.203.175.11:5060;branch=z9hG4bK09797e41;rport
Max-Forwards: 70
f: <sip:22@asterisk.local-dev.mojolingo.com>;tag=as396c2914
t: <sip:usera@asterisk.local-dev.mojolingo.com>;tag=d28f592d-ee38-446f-b9a1-d7af42a089a0
i: 97de68ff-d4ae-48e5-801e-e1570ea9a2c3
CSeq: 102 BYE
User-Agent: Asterisk with Adhearsion
Proxy-Authorization: Digest username="usera", realm="asterisk", algorithm=MD5, uri="sip:asterisk.local-dev.mojolingo.com", nonce="4d805c8f", response="59cec369a95030f8d4e5c1f8b278c9c7"
X-Asterisk-HangupCause: Normal Clearing
X-Asterisk-HangupCauseCode: 16
l: 0


--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="8Z_k0meTaDwJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;" class="">adhearsion+...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;" class="">https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="8Z_k0meTaDwJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;" class="">adhearsion+...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;" class="">https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Adhearsion 2.5.4 + Asterisk not playing file from URL

Eric Ravelo
In reply to this post by Andrius Kairiukstis-2
Hi Ben and Andrius,

Thanks again.

I realy need to able to play sounds from URLs, and to do so dynamically. Even the call flow in the AHN app needs to be dynamic (i.e. depends on some business logic, out of a data base). So, I will try the FreeSWITCH route then.

Regards,
Eric

On Tuesday, October 28, 2014 11:27:30 PM UTC+1, Andrius Kairiukstis wrote:
Hi Eric, actually you could download file and take care to convert it to the asterisk format. 
I suggest to do that prior starting your AHN application, there are a lot of ruby-ways how to fetch remote file.

Regards,

Andrius Kairiukstis

e-mail: <a href="javascript:" target="_blank" gdf-obfuscated-mailto="4lfXTuOAiUoJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">k...@..., web: <a href="https://andrius.mobi/" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fandrius.mobi%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNHBqqp728NjrmF0QBzs99tbhpWGtw';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fandrius.mobi%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNHBqqp728NjrmF0QBzs99tbhpWGtw';return true;">andrius.mobi
(ES) +34 652 299 183, (UK) +44 20 3603 3803, (LT) +370 5 203 0095


On 27 October 2014 11:16, Eric Ravelo <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="4lfXTuOAiUoJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">era...@...> wrote:
Hi Ben & Ben,

Thanks a lot for the replies.

I thought that Adhearsion was dealing with the "impedance adaptation" between the URL and the file needed by Asterisk, since the Play from URL feature is in the documentattion, without a mention to the telephony backend.

Anyway. Is this the only area where FreeSWITCH beats Asterisk when working with Adhearsion? What would be your advise for a production platform?


On Friday, October 24, 2014 6:43:59 PM UTC+2, Ben Langfeld wrote:
On 24 October 2014 14:23, Ben Klang <[hidden email]> wrote:
Hi Eric,

Welcome to the Adhearsion community!


Il giorno Oct 24, 2014, alle ore 8:51 AM, Eric Ravelo <[hidden email]> ha scritto:

Hello,

I have setup an Asterisk VM with the great Telephony-Dev-Box vagrant project.
In a very basic Adhearsion app, I was able to play a file from the Asterisk file system :

  def run
    answer
    play '/var/lib/asterisk/sounds/en/demo-thanks.gsm'
  end


But when the same file is played from an URL, I'm getting Adhearsion + Asterisk Errors :

  def run
    answer
    play '<a href="http://server.domain.com/demo-thanks.gsm'" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks.gsm\47\46sa\75D\46sntz\0751\46usg\75AFQjCNHLTVsXfCH5bQFsVKL9E2Knp4OTPA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks.gsm\47\46sa\75D\46sntz\0751\46usg\75AFQjCNHLTVsXfCH5bQFsVKL9E2Knp4OTPA';return true;">http://server.domain.com/demo-thanks.gsm'
  end


I have noticed the file extension .gsm is not shown in the Asterisk logs (see below).
Is this a bug, or a misconfiguration from my side?

This is a limitation of Asterisk.  Unfortunately, Asterisk does not know how to fetch audio resources from a URL for playback. It can only accept file-based URLs.  Note that it also means the audio file has to be readable from the perspective of the Asterisk process, since we just pass that URL back to Asterisk for processing.

If fetching the audio from HTTP is really a requirement, you could fetch the file with Adhearsion and then pass the temporary filename to Asterisk. Of course, to do that, Adhearsion and Asterisk would have to be on the same server, or otherwise share a filesystem.

Alternatively you could switch Asterisk for FreeSWITCH and it'll work perfectly!
 

/BAK/


Thanks,
Eric


The application logs:



[2014-10-24 17:35:38.662] ERROR Adhearsion::Call: 6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc@: <Adhearsion::CallController::Output::PlaybackError> Output failed due to #<Adhearsion::Error: Terminated due to playback error: #<Punchblock::Component::Output target_call_id="6b94de5f-3c9e-4f0f-93d7-1c80dd2f72fc", target_mixer_name=nil, component_id="8d6563e1-14f6-4d1f-8a0e-54989200170e", source_uri="8d6563e1-14f6-4d1f-8a0e-54989200170e", domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, request_id="1beb2e44-63e8-491a-838a-e8d61911d4ce", voice=nil, interrupt_on=nil, start_offset=nil, start_paused=nil, repeat_interval=nil, repeat_times=nil, max_time=nil, renderer=nil, render_documents=[#<Punchblock::Component::Output::Document target_call_id=nil, target_mixer_name=nil, component_id=nil, source_uri=nil, domain=nil, transport=nil, timestamp=Fri, 24 Oct 2014 17:35:38 +0200, url=nil, content_type="application/ssml+xml", value=<speak xmlns="<a href="http://www.w3.org/2001/10/synthesis" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.w3.org%2F2001%2F10%2Fsynthesis\46sa\75D\46sntz\0751\46usg\75AFQjCNFqjm6NM14_EJaEnQY0QPVBzOEhHg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.w3.org%2F2001%2F10%2Fsynthesis\46sa\75D\46sntz\0751\46usg\75AFQjCNFqjm6NM14_EJaEnQY0QPVBzOEhHg';return true;">http://www.w3.org/2001/10/synthesis" version="1.0" xml:lang="en-US">
  <audio src="<a href="http://server.domain.com/demo-thanks.gsm" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks.gsm\46sa\75D\46sntz\0751\46usg\75AFQjCNEKjMqEvt2mnHMo_M2JbR8maTnOkA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks.gsm\46sa\75D\46sntz\0751\46usg\75AFQjCNEKjMqEvt2mnHMo_M2JbR8maTnOkA';return true;">http://server.domain.com/demo-thanks.gsm"/>
</speak>>]>>
    /
home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:23:in `rescue in output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/player.rb:13:in `
output'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output/abstract_player.rb:18:in `play_ssml'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller/output.rb:102:in `play'
    /home/eravelo/ahn_apps/tuto-tdb/app/call_controllers/simon_game.rb:9:in `
run'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:120:in `execute!'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:95:in `block in exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `
catch'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:94:in `exec'

    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:111:in `exec_with_callback'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/call_controller.rb:105:in `
block (2 levels) in bg_exec'
    /home/eravelo/.rvm/gems/ruby-2.1.2/gems/adhearsion-2.5.4/lib/adhearsion/foundation/exception_handler.rb:5:in `catching_standard_errors'






Asterisk logs:


<------------>
Scheduling destruction of SIP dialog '3d1cc5ec-b64a-4052-aa48-4f91cfd90ce6' in 32000 ms (Method: REGISTER)
    -- AGI Script Executing Application: (Playback) Options: (<a href="http://server.domain.com/demo-thanks" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;">http://server.domain.com/demo-thanks)
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:701 ast_openstream_full: File <a href="http://server.domain.com/demo-thanks" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;">http://server.domain.com/demo-thanks does not exist in any format
[Oct 24 15:35:38] WARNING[2172][C-00000006]: file.c:1017 ast_streamfile: Unable to open <a href="http://server.domain.com/demo-thanks" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fserver.domain.com%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNH92BFMJcham0mXlx5pACYEQOmtCg';return true;">http://server.domain.com/demo-thanks (format (ulaw)): No such file or directory
[Oct 24 15:35:38] WARNING[2172][C-00000006]: app_playback.c:484 playback_exec: ast_streamfile failed on SIP/usera-00000006 for <a href="http://vxml-stage.voicepublisher.net/audio/en/demo-thanks" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fvxml-stage.voicepublisher.net%2Faudio%2Fen%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNHHRNDPb2r8xq6qr2Y-9ObIs5JE7g';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fvxml-stage.voicepublisher.net%2Faudio%2Fen%2Fdemo-thanks\46sa\75D\46sntz\0751\46usg\75AFQjCNHHRNDPb2r8xq6qr2Y-9ObIs5JE7g';return true;">http://vxml-stage.voicepublisher.net/audio/en/demo-thanks
    -- Manager 'manager' from 10.203.175.1, hanging up channel: SIP/usera-00000006
  == Spawn extension (adhearsion, 22, 1) exited non-zero on 'SIP/usera-00000006'
    -- Executing [h@adhearsion:1] AGI("SIP/usera-00000006", "agi:async") in new stack
  == Spawn extension (adhearsion, h, 1) exited non-zero on 'SIP/usera-00000006'
Scheduling destruction of SIP dialog '97de68ff-d4ae-48e5-801e-e1570ea9a2c3' in 32000 ms (Method: ACK)
set_destination: Parsing <sip:usera@<a href="http://10.33.35.13:5060" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;">10.33.35.13:5060> for address/port to send to
set_destination: set destination to <a href="http://10.33.35.13:5060" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;">10.33.35.13:5060
Reliably Transmitting (no NAT) to <a href="http://10.33.35.13:5060" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2F10.33.35.13%3A5060\46sa\75D\46sntz\0751\46usg\75AFQjCNEddpmB_BbAJOdqBGAKIJQFBG8URA';return true;">10.33.35.13:5060:
BYE sip:10.33.35.13:5060 SIP/2.0
v: SIP/2.0/UDP 10.203.175.11:5060;branch=z9hG4bK09797e41;rport
Max-Forwards: 70
f: <sip:22@asterisk.local-dev.mojolingo.com>;tag=as396c2914
t: <sip:usera@asterisk.local-dev.mojolingo.com>;tag=d28f592d-ee38-446f-b9a1-d7af42a089a0
i: 97de68ff-d4ae-48e5-801e-e1570ea9a2c3
CSeq: 102 BYE
User-Agent: Asterisk with Adhearsion
Proxy-Authorization: Digest username="usera", realm="asterisk", algorithm=MD5, uri="sip:asterisk.local-dev.mojolingo.com", nonce="4d805c8f", response="59cec369a95030f8d4e5c1f8b278c9c7"
X-Asterisk-HangupCause: Normal Clearing
X-Asterisk-HangupCauseCode: 16
l: 0


--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adhearsion+...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adhearsion+...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="4lfXTuOAiUoJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">adhearsion+...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.