How to forward call from asterisk to Elevenlab

Hi, everyone.
I bought VOIP number from messagenet.com

I am trying to forward call to this VOIP number to Elevenlab.

I imported numbers on the Elevenlab by using import phone number by SIP trunk.

Then I configured extensions and pjsip on the asterisk at my ubuntu server.

But when I called number it response successfully by Asterisk but forwarding (connecting) to ElevenLab fails.

What is the problem and how to solve this issue?
Please help me with this problem.

```; /etc/asterisk/extensions.conf - CORRECTED ROUTING

[general]
static=yes
writeprotect=no

[incoming-company2]
exten => 5406601645,1,NoOp(=== COMPANY 2 CALL VIA USERNAME - TO ELEVENLABS ===)
same => n,NoOp(Called User: ${EXTEN}, Caller: ${CALLERID(num)})
same => n,Set(COMPANY_ID=47)
same => n,Set(DID=04381736733)
same => n,Set(USERNAME=5406601645)
same => n,Goto(elevenlabs-forward,s,1) ; < Goes to ElevenLabs

exten => 04381736733,1,NoOp(=== COMPANY 2 CALL VIA DID - TO ELEVENLABS ===)
same => n,NoOp(Called: ${EXTEN}, From: ${CALLERID(num)})
same => n,Set(COMPANY_ID=47)
same => n,Set(DID=04381736733)
same => n,Set(USERNAME=5406601645)
same => n,Goto(elevenlabs-forward,s,1) ; < Goes to ElevenLabs

exten => 3904381736733,1,NoOp(=== COMPANY 2 CALL WITH PREFIX - TO ELEVENLABS ===)
same => n,NoOp(Called: ${EXTEN}, From: ${CALLERID(num)})
same => n,Set(COMPANY_ID=47)
same => n,Set(DID=04381736733)
same => n,Set(USERNAME=5406601645)
same => n,Goto(elevenlabs-forward,s,1) ; < Goes to ElevenLabs

exten => _X.,1,NoOp(=== COMPANY 2 CATCH-ALL - TO ELEVENLABS ===)
same => n,NoOp(Called: ${EXTEN}, From: ${CALLERID(num)})
same => n,Set(COMPANY_ID=47)
same => n,Set(DID=04381736733)
same => n,Set(USERNAME=5406601645)
same => n,Goto(elevenlabs-forward,s,1) ; < Goes to ElevenLabs

; ===== MAIN ROUTING FROM MESSAGENET =====
; THIS IS THE PROBLEM SECTION - FIX IT!
[from-messagenet]
exten => _X.,1,NoOp(Incoming call to: ${EXTEN}, from: ${CALLERID(num)})
same => n,GotoIf($[“${EXTEN}” = “5406601152”]?company1)
same => n,GotoIf($[“${EXTEN}” = “04221627525”]?company1)
same => n,GotoIf($[“${EXTEN}” = “3904221627525”]?company1)
same => n,GotoIf($[“${EXTEN}” = “5406601645”]?company2)
same => n,GotoIf($[“${EXTEN}” = “04381736733”]?company2)
same => n,GotoIf($[“${EXTEN}” = “3904381736733”]?company2)
same => n,Goto(company1) ; Default fallback

same => n(company1),Set(COMPANY_ID=2)
same => n,Set(DID=04221627525)
same => n,Goto(voice-bot-handler,s,1) ; < Python Bot

; FIX THIS SECTION - Change from voice-bot-handler to elevenlabs-forward:
same => n(company2),Set(COMPANY_ID=47)
same => n,Set(DID=04381736733)
same => n,Set(USERNAME=5406601645)
same => n,Goto(elevenlabs-forward,s,1) ; < CHANGED! Was voice-bot-handler

; ===== ELEVENLABS FORWARD HANDLER (Company 2) =====
[elevenlabs-forward]
exten => s,1,NoOp(=== FORWARDING TO ELEVENLABS ===)
same => n,NoOp(Company: ${COMPANY_ID}, Caller: ${CALLERID(num)})
same => n,Set(CALLSTART=${EPOCH})
same => n,System(echo “$(date): FORWARD START - Company ${COMPANY_ID}, Caller ${CALLERID(num)}” >> /var/log/asterisk/elevenlabs-calls.log)
same => n,Set(CALLERID(all)=5406601645 sip:5406601645@sip.messagenet.it)
same => n,Verbose(1,Dialing ElevenLabs via TCP)
same => n,Dial(PJSIP/elevenlabs-trunk,60,tTr)
same => n,NoOp(Dial Status: ${DIALSTATUS})
same => n,System(echo “$(date): STATUS: ${DIALSTATUS}” >> /var/log/asterisk/elevenlabs-calls.log)
same => n,GotoIf($[“${DIALSTATUS}” = “ANSWER”]?success:failed)

same => n(success),NoOp(Call answered)
same => n,System(echo “$(date): SUCCESS” >> /var/log/asterisk/elevenlabs-calls.log)
same => n,Goto(end)

same => n(failed),NoOp(Failed: ${DIALSTATUS})
same => n,System(echo “$(date): FAILED - ${DIALSTATUS}” >> /var/log/asterisk/elevenlabs-calls.log)
same => n,Answer()
same => n,Playback(tt-somethingwrong)
same => n,Goto(end)

same => n(end),Set(CALLEND=${EPOCH})
same => n,Set(DURATION=${MATH(${CALLEND}-${CALLSTART},i)})
same => n,System(echo “$(date): END - Duration ${DURATION}s” >> /var/log/asterisk/elevenlabs-calls.log)
same => n,Hangup()

exten => h,1,System(echo “$(date): HANGUP” >> /var/log/asterisk/elevenlabs-calls.log)


I’m waiting for your logs before I consider a serious attempt on this, but I doubt that ElevanLabs will understand anything after the second 5, in the number part.

Hi, @david551
Thank you for reaching out.
Here is the asterisk log when I called.


– Executing [5406601645@incoming-company2:1] NoOp(“PJSIP/messagenet-company2-00000147”, “=== COMPANY 2 CALL VIA USERNAME - TO ELEVENLABS ===”) in new stack– Executing [5406601645@incoming-company2:2] NoOp(“PJSIP/messagenet-company2-00000147”, “Called User: 5406601645, Caller: +3904221627525”) in new stack– Executing [5406601645@incoming-company2:3] Set(“PJSIP/messagenet-company2-00000147”, “COMPANY_ID=47”) in new stack– Executing [5406601645@incoming-company2:4] Set(“PJSIP/messagenet-company2-00000147”, “DID=04381736733”) in new stack– Executing [5406601645@incoming-company2:5] Set(“PJSIP/messagenet-company2-00000147”, “USERNAME=5406601645”) in new stack– Executing [5406601645@incoming-company2:6] Goto(“PJSIP/messagenet-company2-00000147”, “elevenlabs-forward,s,1”) in new stack– Goto (elevenlabs-forward,s,1)– Executing [s@elevenlabs-forward:1] NoOp(“PJSIP/messagenet-company2-00000147”, “=== FORWARDING TO ELEVENLABS ===”) in new stack– Executing [s@elevenlabs-forward:2] NoOp(“PJSIP/messagenet-company2-00000147”, “Caller: +3904221627525  DID: 04381736733”) in new stack– Executing [s@elevenlabs-forward:3] Dial(“PJSIP/messagenet-company2-00000147”, “PJSIP/elevenlabs-trunk,60”) in new stackEveryone is busy/congested at this time (1:0/0/1)– Executing [s@elevenlabs-forward:4] Set(“PJSIP/messagenet-company2-00000147”, “STATUS=CHANUNAVAIL”) in new stack– Executing [s@elevenlabs-forward:5] GotoIf(“PJSIP/messagenet-company2-00000147”, “0?ok:fail”) in new stack– Goto (elevenlabs-forward,s,7)– Executing [s@elevenlabs-forward:7] Answer(“PJSIP/messagenet-company2-00000147”, “”) in new stack

– Executing [s@elevenlabs-forward:8] Playback(“PJSIP/messagenet-company2-00000147”, “tt-somethingwrong”) in new stack– <PJSIP/messagenet-company2-00000147> Playing ‘tt-somethingwrong.gsm’ (language ‘en’)> 0x7f5d14041410 – Strict RTP learning after remote address set to: 109.233.129.93:19186

– Executing [s@elevenlabs-forward:9] Hangup(“PJSIP/messagenet-company2-00000147”, “”) in new stack== Spawn extension (elevenlabs-forward, s, 9) exited non-zero on ‘PJSIP/messagenet-company2-00000147’– Executing [h@elevenlabs-forward:1] System(“PJSIP/messagenet-company2-00000147”, “echo “$(date): HANGUP” >> /var/log/asterisk/elevenlabs-calls.log”) in new stack

Would you like help me please?

Especially section 2.1.