Internal SIP calling - RTP problem

Hi,

Having some problems with internal SIP calls using Polycom handsets. Not sure what the problem is.

The setup is:

Polycom phones located in Manchester office registering to Asterisk on a server located in a data centre.

The scenario is:

No RTP for internal calls. If a phone, extension 5151 calls 5152 there is no audio.

Sip.conf:

localsipphone
type=friend
secret=
disallow=all
allow=gsm
allow=alaw
;allow=ulaw
host=dynamic
dtmfmode=rfc2833
insecure=very
nat=yes
canreinvite=yes
qualify=yes
permit=X.X.X.X/24

From what I have researched online, the key parameter in sip.conf is the ‘canreinvite’ one. This was working last week yet now it is not. Nothing has changed on the server side (our side) but it’s difficult to say if the customer’s equipment is causing some issue.

If an external DDI number is routed through to the Polycom, that audio works fine. It just appears to be the extension to extension calls. The other odd thing is that if I register two phones from my office to the same server and make a call between them… the RTP stream is fine!!

Any help would be appreciated. If you want more info/logs, let me know!

You are using an obsolete version of Asterisk, or your configuration file contains some settings that have gone from deprecated to obsolete (and where probably bad choices in the first place).

From what you have said, I would guess that you want directmedia=no (obsolete name canreinvite=no), as it seems likely that the phones don’t know how to directly route to the other phones. Alternatively, you need to improve your routing infrastructure.

You should also check for firewalls taking out the RTP stream on the direct path between the phones. Note that both source and destination port numbers will be set by the phones, not by Asterisk.

[quote=“david55”]You are using an obsolete version of Asterisk, or your configuration file contains some settings that have gone from deprecated to obsolete (and where probably bad choices in the first place).

From what you have said, I would guess that you want directmedia=no (obsolete name canreinvite=no), as it seems likely that the phones don’t know how to directly route to the other phones. Alternatively, you need to improve your routing infrastructure.

You should also check for firewalls taking out the RTP stream on the direct path between the phones. Note that both source and destination port numbers will be set by the phones, not by Asterisk.[/quote]

Hi David,

I’m using Asterisk 1.4.36. This is what we use at all of our customer sites.
How do I know what RTP stream it is wanting to use? Asterisk is set to use 10000-20000 and that is what our customer has allowed on their firewall.

The phones determine their RTP port number. Asterisk only determines the port number for its side of the media “connection”. As you have direct media enabled Asterisk can instruct the phones to talk directly to each other, in which case neither port number will be determined by Asterisk.

There is no mechanism, in SIP, to force the remote side to use a particular port number for their side of the “connection”.

[quote=“david55”]The phones determine their RTP port number. Asterisk only determines the port number for its side of the media “connection”. As you have direct media enabled Asterisk can instruct the phones to talk directly to each other, in which case neither port number will be determined by Asterisk.

There is no mechanism, in SIP, to force the remote side to use a particular port number for their side of the “connection”.[/quote]

David,

Ohhhhh I see! That makes sense.

So in my scenario, I need to have canreinvite=no or (from what I have just read in voip-info.org)… canreinvite=nonat?

Is that right?

Thanks for your help!

canreinvite=no will force everything through Asterisk. As it is already working with media going through asterisk, that should work. However, it may generate a lot of excess traffic and poor voice quality. Setting the routing and firewalls to allow the phones to talk to each other is a better solution, if you can make it work.

David,

I will give that a go.

Do you have any idea/suggestions on how to get the phones to talk to each other? Would I need to find out what Polycom’s RTP range is?

Simon

David,

Polycom uses 2222-2269 for their RTP traffic! This is also showing in some log files that I previously captured. Doh!

If only I had known about this, I wouldn’t have had to have done so much head scratching.

Thanks for all your help. Canreinvite=no has fixed the issue, but should we see a peak in traffic then I know that we can revert and open the correct RTP port range.

Simon