Unable to get outbound calls to work through RingCentral

I am pulling my hair out over this one. I am trying to connect my Asterisk server to RingCentral.com I can register and accept inbound calls, but outbound fail.

The information provided by Ringcentral (numbers and password changed) is:

SIP Domain sip.ringcentral.com:5060
Outbound Proxy sip20.ringcentral.com:5090
User Name 15015551212 – This is my DID number
Password Xyzzy
Authorization ID 123456789012 – This is some arbitrary string

For testing purposes I plugged all that into a Yealink SIPT22 and it works beautifully. I know Asterisk can talk to RingCentral, if only I can find the right combination of parameters.

For a register string I am using:
15015551212:Xyzzy:123456789012@sip20.ringcentral.com:5090/15015551212

My trunk configuration is: (and I have tried lots of other things, but with no improvement)
type=friend
secret=Xyzzy
port=5060
outboundproxy:5090=sip20.ringcentral.com
insecure=port,invite
host=sip.ringcentral.com
fromuser=15015551212
fromdomain=sip20.ringcentral.com
defaultuser=15015551212
authuser=123456789012
srvlookup=no
context=from-trunk
canreinvite=no

I show ringcentral as registered, but outbound calls result in the following:

[2015-04-07 17:45:28] VERBOSE[19433][C-0000005b] pbx.c: – Executing [s@macro-dialout-trunk:20] Dial(“SIP/102-000000ba”, “SIP/RingCentral/15013768111,300,Tt”) in new stack
[2015-04-07 17:45:28] VERBOSE[19433][C-0000005b] netsock2.c: == Using SIP RTP TOS bits 184
[2015-04-07 17:45:28] VERBOSE[19433][C-0000005b] netsock2.c: == Using SIP RTP CoS mark 5
[2015-04-07 17:45:28] VERBOSE[19433][C-0000005b] app_dial.c: – Called SIP/RingCentral/15013302830
[2015-04-07 17:45:28] NOTICE[1623][C-0000005b] chan_sip.c: Failed to authenticate on INVITE to ‘sip:15015551212@sip20.ringcentral.com;tag=as21c9e4e7’
[2015-04-07 17:45:28] VERBOSE[19433][C-0000005b] app_dial.c: – SIP/RingCentral-000000bb is circuit-busy

Interestingly, if I change the fromuser parameter to something other than my DID, the error changes to:

[2015-04-07 17:49:05] VERBOSE[19526][C-0000005e] pbx.c: – Executing [s@macro-dialout-trunk:20] Dial(“SIP/102-000000c0”, “SIP/RingCentral/15013302830,300,Tt”) in new stack
[2015-04-07 17:49:05] VERBOSE[19526][C-0000005e] netsock2.c: == Using SIP RTP TOS bits 184
[2015-04-07 17:49:05] VERBOSE[19526][C-0000005e] netsock2.c: == Using SIP RTP CoS mark 5
[2015-04-07 17:49:05] VERBOSE[19526][C-0000005e] app_dial.c: – Called SIP/RingCentral/15013302830
[2015-04-07 17:49:05] VERBOSE[1623][C-0000005e] chan_sip.c: – Got SIP response 486 “Busy Here” back from 199.255.120.177:5090
[2015-04-07 17:49:05] VERBOSE[19526][C-0000005e] app_dial.c: – SIP/RingCentral-000000c1 is busy

I have read everything I can find but there don’t seem to be many people discussing hooking Asterisk to RingCentral. I wouldn’t be either if it wasn’t the provider that my office has chosen to use.

Thanks in advance for any help.

This is the reply you are getting from your outbound proxy


486 Busy Here

The callee’s end system was contacted successfully, but the callee is
currently not willing or able to take additional calls at this end
system. The response MAY indicate a better time to call in the
Retry-After header field. The user could also be available.

I think you might need some collaboration from your carrier.

Your fromdomain doesn’t agree with the instructions given, but if that was the problem, I don’t think your wrong fromuser test would have failed in the way it did.

canreinvite is probably no longer recognized, but no is the default for directmedia.

type=peer is better than type=friend, but that only affects incoming calls.

There is a good chance that you will have problems with the source address of incoming calls; you need to find out what that is.

Using remotesecret instead of secret is generally better than using insecure=invite, and for most people, using insecure=port is simply insecure.

Okay, after beating on it for a couple more hours and resorting to sip trace and wireshark, I finally found the simple problem. It’s all because of that Authorization ID that almost no one else seems to use. That has to be configured in the username parameter. Sometimes the obvious eludes me. Hopefully this will help the next person who tries to use RingCentral.

My WORKING definition is now:
type=peer
secret=xyzzy
port=5060
host=sip.ringcentral.com
outboundproxy:5090=sip20.ringcentral.com
fromuser=15015551212
defaultuser=15015551212
username=123456789012
context=from-trunk

Try change the register string to use the trunk name not the DNS host. This is necessary to get the outboundproxy setting to work inside a trunk configuration. That doesn’t seem to be documented anywhere.

[code]For a register string I am using:
15015551212:Xyzzy:123456789012@sometrunkname/15015551212

My trunk configuration is: (and I have tried lots of other things, but with no improvement)
Trunk name : sometrunkname

type=friend
secret=Xyzzy
port=5060
outboundproxy:5090=sip20.ringcentral.com
insecure=port,invite
host=sip.ringcentral.com
fromuser=15015551212
fromdomain=sip20.ringcentral.com
defaultuser=15015551212
authuser=123456789012
srvlookup=no
context=from-trunk
canreinvite=no[/code]

I’m having the same trouble but using domiller’s settings doesn’t change my result for outbound…inbound works fine.

Surp, can you elaborate on what you mean by “sometrunkname” and how it affects the outboundproxy setting?

Domiller, are your Ring Central trunks still working?

Thanks!