No audio between extensions

Hello! I have 3 RaspberryPi in the same LAN, one with asterisk installed and the other two have Twinkle installed. I managed to make a call between these 2 softphones, but when i pick up one of them, i get no audio on either of phones. SIP port: 5160, RTP port range: 10000-10100. I could provide you some logs if necessary, but I need a bit of help because I am a newbie. Thank you!

In Asterisk SIP Settings, confirm that External Address and Local Networks are correctly set. If you change these, after Submit and Apply Config you must restart Asterisk.

If that’s not your issue:

If you call *43 (echo test), does the call show connected? Can you hear the prompt? The echo?

If not, use that as the failing example. If echo test works, use a call between extensions.

At the Asterisk command prompt, type
pjsip set logger on
sip set debug on
make a failing test call, paste the Asterisk log for the call at pastebin.com and post the link here.

You can get an Asterisk command prompt by typing
asterisk -r
at a root shell prompt. The Asterisk log is located at
/var/log/asterisk/full
Paste the text, starting from the time you initiated the test call.

I have set only the Local Address because I dont have a router, all Raspberrys are on the same LAN (172.16.1.0/16).
When calling *43, it fails because the extension is not configured in context [from-my-phones].
Here is the link, I hope I did it as you expected: [2024-01-26 05:47:34] NOTICE[1255][C-00000008]: chan_sip.c:26826 handle_request_ - Pastebin.com
Thank you for your time!

FreePBX does not have a built-in context named from-my-phones. Are you using plain Asterisk or some other PBX package? If you are using FreePBX, the default context for an extension is from-internal and you would normally have no reason to change it.

Also, 172.16.1.0/16 is not valid syntax. If your devices are all in the range 172.16.1.1 through 172.16.1.254, you should specify 172.16.1.0/24 . If the third octet is other than 1 for some of them, 172.16.0.0/16 may be correct.

BTW, the Asterisk log leading up the the error was missing. On future pastes, make sure that everything logged for the attempted call is present.

I am using Asterisk 16.28.0. I’ve made all the changes you recommended, and I added my extensions in [from-internal] context, but I still dont have audio after answering. Also, when calling *43, I dont hear the echo response. This is the full log during the call <--- SIP read from UDP:172.16.1.13:5160 --->INVITE sip:[email protected]:5160 SI - Pastebin.com

And this is the configuration for my 2 users in context [from-internal]. I want to mention that before using Twinkle, I used Zoiper through WAN connection and it worked perfectly.

[from-internal]
include => from-internal-noxfer
include => from-internal-xfer
include => bad-number ; auto-generated
exten => h,1,Macro(hangupcall)

exten => 400,1,NoOp(Someone is calling 400)
exten => 400,n,Answer()
exten => 400,n,Wait(1)
exten => 400,n,Dial(SIP/user4,30,r)

exten => 500,1,NoOp(Someone is calling 500)
exten => 500,n,Answer()
exten => 500,n,Wait(1)
exten => 500,n,Dial(SIP/user5,30,r)

I see nothing wrong with the SIP. Use tcpdump or similar to see whether RTP is coming in from the extensions and if so, whether it is being sent out to the correct IP and port.

If you are using Twinkle just for testing, try Zoiper or Linphone and if they work, forget about Twinkle.

If your application requires Twinkle (which I know nothing about), it likely has some debugging tools to determine why it isn’t sending and/or receiving audio.

As far as I know, Zoiper is not for Linux (it is mandatory to use RaspberryPi), and when I used Linphone, I had the same audio problem, but I guess it was having some compatibility issues or idk (I have not found a solution for this) because it freezes after awhile

OK, then take a packet capture to see what’s happening with the RTP. If you have trouble interpreting it, put it in a .tgz file and attach it to your post.