Which version of Asterisk? (Needs to be 1.4.2x or 1.6.0.x to be worth debugging).
Does 3CX PBX support SIP re-invites, and is it configured to do so?
Do the DSL phones have visibility of each others’ IP addresses, and are they firewalled (etc.) in a way that allows direct traffic between those addresses?
Have you tried disabling re-invites on Asterisk?
What IP addresses appear in the SIP Invites and SDP payloads (sip debug output)?
To identify problems you can use
set sip debug peer {number of your peer}
or only
set sip debug
Then set sip debug off
Using tolls like tcpdump on same computer with asterisk you can check where are packets forwarded.
I have couple of hardware phones. And got ugly problem - no sound in.
Tried everything - every option for nat {yes, no, route, never} transfer, reinvite… And - last thing which solved my problems was setting STUN server.
My suggestion - try first to stop canreinvite = no
Then - STUN server.
And of course if nothing helps - tcpdump, and set sip debug
[quote=“david55”]
Does 3CX PBX support SIP re-invites, and is it configured to do so?[/quote]
[quote=“david55”]
Do the DSL phones have visibility of each others’ IP addresses, and are they firewalled (etc.) in a way that allows direct traffic between those addresses?[/quote]
They are not behind firewalls or anything. The phones are working perfectly, remember please, that only from one DSL side to another DSL side is the bad working.
[quote=“david55”]
Have you tried disabling re-invites on Asterisk?[/quote]
That feature is already disabled.
[quote=“david55”]
What IP addresses appear in the SIP Invites and SDP payloads (sip debug output)?[/quote]
Only appears the public IP address.[/quote]
If one PABX was using re-invites and the other not, the speech path for the re-invite one would be direct between the phones, but the signalling path would be towards the PABX.
The big problem here is that, if there are no re-invites, there will be essentially no difference in how Asterisk handles the DSL to DSL case from the DSL to internal case, because it will handle the two legs of the call independently.
Whose public IP address? As I understand it the DSL phones’ public address is their only address. I presume that the LAN and Asterisk have a private address.
Without re-invites, one would expect the SDP from the remote phones to have the remote phones’ public address and the SDP from Asterisk to have Asterisk’s public address, and one would expect that both for the remote to local case and the remote to remote case. The big problem is that, for each leg, one would expect the same result as though the other leg was the internal phone. Without re-invites, the SIP protocol for the two parties is decoupled in a way that means that the other side would not know whether it is talking to remote or local.
With re-invites, one would expect the SDP from Asterisk to have the (public) address of the other remote phone, when going remote to remote.
Can you double check that you are not actually getting native bridging.
Also, is the audio connection failure in one direction, or both directions?
Are the remote and local phones of the same type?
Do the traces or RTCP statistics indicate that Asterisk is receiving RTP packets?
[quote=“bira_more”]Then - STUN server.
And of course if nothing helps - tcpdump, and set sip debug[/quote]
How do you use STUN server with Asterisk???
[quote]Can you double check that you are not actually getting native bridging.
Also, is the audio connection failure in one direction, or both directions?
Are the remote and local phones of the same type?
Do the traces or RTCP statistics indicate that Asterisk is receiving RTP packets?[/quote]
Thanks David!
Audio fails in both directions. Both phones are the same type. And Asterisk is receiving RTP packets normally…
It is possible set Asterisk for handle the complete communication. I mean, all the RTP packets passingfor Asterisk ??
That is what should happen if you have canreinvite=no, which you say you do have.
Are you sure that you are not defaulting to enabling re-invites, and that the external phones are matching a sip.conf entry (e.g if the inbound wasn’t matched and you used user@ip (rather than referencing a sip.conf section) in the dialplan, you might get default handling)?
trust me… whatever your problem it most certainly isn’t the fault of Asterisk. I use this model with our entire office.
i have on-LAN extensions and off-LAN extensions. The off-LAN extensions can talk just fine with each other.
So long as your phones aren’t trying to re-invite to get a direct audio path, the model will work just fine. With no audio in either direction, i am guessing the problem is that your phones are re-inviting.
Why don’t you run WireShark on one of the machines with the extension to see what the SIP messaging looks like… i don’t think you need to add another SIP proxy to the mix. That would just complicate matters.
All the extensions are configurated with canrenvite=no
I already run WireShark and the results looks well to me…
Tell me g2010, are you using Asterisk 1.4 ? 1.6 ? If you have the same model of network, may be you can help me… Did you have any problem? Did you set something special?
May be there is something in SIP.conf that I didn’t do it.
I don’t know what else show you guys… there is no many secret on this…
Anyway… How can be:
from internal phone to external → Work Perfect
from external phone to internal → Work Perfect
from internal phone to internal → Work Perfect
from external phone to external → No audio
I believe I see your problem. You need to set the externip of the asterisk machine. Also, I don’t believe the nat=route option is correct in this scenario. Try modifying the [general] section of your sip.conf to contain the following (obviously specific to your network)