News:

On Tuesday September 6th the forum will be down for maintenance from 9:30 PM to 11:59 PM PDT

Main Menu

3CXPhone for Android? Alternative for Obion?

Started by threehappypenguins, June 10, 2014, 05:14:51 PM

Previous topic - Next topic

threehappypenguins

I keep finding all these threads for 3CX for Windows, but not for the Android App. Right now, I have the Obion Android App all set up, but it really sucks. There is no native dialer, there is no way to shut off the annoying sound when I press numbers, and the deal breaker for me... it won't stay open in the background of my phone.

I have used CSipSimple in the past, but it was really complicated and required me to do all these rules and have a dynamic DNS address and a spare Service Provider spot for Sip2Sip, etc.

Does anyone know how to set up 3CXPhone for Android? Can I make it function like Obion?


azrobert

#2
3CX requires registration, so you can't connect directly to the OBi.

See following for 2 stage dialing or single stage dialing using a phone book:
http://www.obitalk.com/forum/index.php?topic=7606.0

You can use Phonerlite from a computer, but it's not available for Android.

threehappypenguins

I followed all the steps in the link you provided. At first, I tried it with 3CXSoftphone, but gave up because it didn't  have a spot where I could put callcentric.com as the server or host. It was only asking for PBX info. I couldn't get it to register.

So I downloaded Zoiper and now I'm registered. It works with the 2-stage dialing. I'm not too concerned with 1 stage since I'll never remember those star codes anyway and I don't feel like programming them in my phone and having more phone numbers. Isn't there another way to have one stage dialing with putting in the actual phone number?

Also-- and here's the biggie-- how do I make Zoiper (or whatever softphone) ring when someone calls one of my home phone numbers? That is the whole reason why I want another app besides Obion. Obion works fine for dialing out (except for the annoying sound it makes when you dial the numbers). Obion won't stay open in the background of my phone. Zoiper will. So I want to rely on Zoiper for incoming calls.

threehappypenguins

I cannot for the life of me figure this out. The main purpose for having another app to replace Obion is so that I can receive calls, not necessarily make them (the Obion works fine for making them).

I have Callcentric on SP2, and I receive calls on both SP1 & SP3. In Voice Service > SP1 (& SP3) Service > X_InboundCallRoute I have tried:

{ph1,ph2,pp(ob290123456)},{sp2(17771234567)},{ph1,ph2}

I just don't understand how to route incoming calls on SP1 & SP3 to the Zoiper app on my Android. How do I get the calls to fork to it?

azrobert

Change the OBi InboundCallRoute on the inbound SP trunk:
{ph1,ph2,spx(17771234567101@in.callcentric.com;ui=$1)}

spx must be defined as SIP
ui is userid
$1 is an OBi variable containing the inbound callerid

You are forking the call to ph1, ph2 and callcentric.
I think (not sure) the max destinations is 3.
You can try 4 and see if it works.


The CSipSimple is the only single stage solution I know. I don't think it's all that difficult to setup. The OBi setup at the beginning of the thread has every possible routing and then some. It doesn't have to be that complicated and you only need a single simple rule. The CSipSimple setup is a little confusing.

I just bought a new Android phone that I have to setup. I wasn't planning to configure it for awhile, but if you're interested in CSipSimple I could do it in a day or two and create a guide while I'm setting up CSipSimple.

threehappypenguins

Thanks for your help. If you want to create a guide for CSipSimple, that would be great!

I tried your code that you gave. It's not working. Maybe I'm not understanding or doing it right.

In Voice Service > SP1 (& SP3) Service > X_InboundCallRoute, I couldn't get it to work. I got rid of everything I had in it, and put this:

{ph1,ph2,spx(17771234567101@in.callcentric.com;ui=$1)},{ph1,ph2}

The only thing substituted was the 17771234567101 with the actual phone number with extension. I kept everything *exactly* the same. You were explaining what ui meant and stuff. Was I supposed to change something? Substitute ui for my actual username? Was I supposed to substitute spx for the CallCentric server? I'm just confused, and it's not ringing my Android.

azrobert

#7
Try:
{ph1,ph2,sp2(17771234567101@in.callcentric.com;ui=$1)}

***************************************

{ph1,ph2,pp(ob290123456)},{sp2(17771234567)},{ph1,ph2}

Rule {ph1,ph2,pp(ob290123456)} is unconditional so it will always route the call.
After a rule routes a call the processing stops, so the following rules are ignored.

SP2 is registered to 1771234567, so {sp2(17771234567)} is calling itself.

{ph1,ph2,sp2(17771234567101)} will work, but the softphone will not get the correct CID. It will get 17771234567 as CID.

threehappypenguins

Yesssssssss!!!!!!!

{ph1,ph2,sp2(17771234567101@in.callcentric.com;ui=$1)} worked!

I just got rid of {ph1,ph2,pp(ob290123456)} because I figured it wasn't necessary. Thanks again!!!

threehappypenguins

Okay, so I caved and decided I would do the single stage dialing. But I can't get it going. Here is what I have. In SP2 (where I have the Callcentric account), I have:

{(17771234567x.)>([2-9]xxxxxxxxx):sp1},{(17771234567x.)>(1xxxxxxxxxx):sp3},{101>17771234567:aa},{ph1,ph2}

Something is not working. I don't know what.

For the Callcentric phonebook, I have for *7504 (as an example):

5001234567@username.dyn.com:5081

And another example for *7505:

16001234567@username.dyn.com:5081

I assume that I can put in a dynamic dns address which is working just fine (I use it for other purposes). Port 5061 didn't work. I think I needed to change it since SP2 service's X_UserAgentPort is 5081 and not 5061. Is this the port I'm supposed to be using? X_UserAgentPort?

As for the SP2 X_InboundCallRoute, I want the numbers that are in the Callcentric phonebook that are 11 digits to go through SP3, and the numbers with 10 digits to go through SP1. Am I doing this correctly?

azrobert

Yes, use X_UserAgentPort 5081.

You need to port forward 5081 in your router to the OBi's IP address.
IF you have audio problems you will also have to port forward RTP ports 16800 thru 16898.
That's 99 ports.
See: Service Providers -> ITSP Profile B -> RTP -> LocalPortMin/Max
Use Port Range Forwarding to avoid having 99 entries in you router.

If you are already port forwarding 5081, for a test change your SP2 InboundCallRoute to the default ph. This will test if the call is getting to the OBi. The Phone Port will ring.

You can also check Callcentric's dashboard to see if the call was sent.

Check back here later. I will create a config guide for CSipSimple. It' a much better solution. 

azrobert

#11
First, I don't want to take any credit for this solution. This is all ianobi's creativity. See:
http://www.obitalk.com/forum/index.php?topic=4647.0
It amazes me how he thought of this idea.
There are 5 pages of posts in the original topic and it would be difficult to go through it for a specific setup.

Anyway, here is the setup for you:

Create a free Sip2sip account here:
https://mdns.sipthor.net/register_sip_account.phtml

For Username use your Callcentric account number 17771234567.
If you use your CC account number the same rules in the OBi InboundCallRoute will work, so no changes in the OBi.
I'm talking about this:
{(17771234567x.)>([2-9]xxxxxxxxx):sp1},{(17771234567x.)>(1xxxxxxxxxx):sp3}

Otherwise, change 17771234567x. to the account name you select.


Install CSipSimple on you Android.

In CsipSimple:
Select Add Account
Select the Basic Wizard. It's near the end of the list.

Account Name: Anything
User: 17771234567
Server: sip2sip.info
Password: password
Save

Select Menu on phone
Select Settings
Select Filters
Select your newly created Account
Select add filter
Select 1st entry (Can't call) and change it to Rewrite.
Select 2nd entry (Starts with) and change it to All.
Select 3rd entry (Replace...) and change it to Suffix with.
4th entry: @username.dyn.com:5081
save

Different versions of Android might have a slightly different procedure.

You MUST dial from the Android Dialer and not the CSipSimple Dialer.
Filters won't work from the CSipSimple dialer.

Setup port forwarding as in my last post.
That's it.

threehappypenguins

Thanks, azrobert.

I already had both ports 5081 and 5061 forwarded in my router. I also already had ports 16600-17198 forwarded (using what was in LocalPortMin/Max in all the SP's). Just for the fun of it, I changed it to the 5061 default in SP2 (it was using the Obitalk default which was 5081).

What's happening is that when I dial *7504, the call quickly ends and says, "Not found (404)." It's like it's not reading my CallCentric phone book or something. The calls aren't even showing up as sent on the CallCentric dashboard. Just... nothing. I tried logging out and then back into Zoiper. No difference.

As for the CSipSimple, am I putting the credentials for Sip2Sip into SP2 just as I did for CallCentric? Also, how can I set it up to receive calls on my Android?

azrobert

#13
{ph1,ph2,sp2(17771234567@sip2sip.info;ui=$1)}

Do you know Dyndns cancelled all free accounts?
I use Freedns: http://freedns.afraid.org/zc.php?from=L21lbnUv
I tried a Callcentric phone book entry to my cancelled Dyndns and got the same "404 not found".
Try hard coding your public IP address.
I tried another phone book entry and it worked.
This wasn't to my OBi. I'm not setup for this anymore.

Edit:
My successful CC phone book call doesn't show on the dashboard.
Strange.

threehappypenguins

I switched from dyndns to no-ip.com. Like I had said before, my dynamic dns account with them works fine. I am using it right now with putty. And I can access my router using it just fine. Also, I tried putting in my actual public IP, and I still get the 404 not found error.

azrobert

I setup my OBi with following and it works.

Inbound Route:
{(17771234567x.)>(1?xxxxxxxxxx):sp2}

Phone Book:
16235941000@name.dyn.com:5061

I tried various errors and I can't get the 404 error except for the one I said before.
Your configuration looks good to me.
I'm running out of ideas.

Try the following CC Phone Book entry to see if calling this way works. It's to my cable company.
18668677644@tf.callwithus.com

Have you tried the CSipSimple solution?

threehappypenguins

No, I have not tried the CSipSimple solution yet. I am just getting such great call quality with Zoiper and it doesn't slow down my phone or drain the battery as much as CSipSimple. There is another problem with my setup now. It works fine on my home network, but when I try to make a call while on another network, it has one-way audio. What happens is I'll call 100 to get the Obi attendant, and it will ring once and then nothing. Just dead air (won't disconnect).

I suspected it might be that the audio wasn't working, so I pressed 1 to call the Obi at home (my husband was home). I still didn't hear anything, but I just waited. Then I hung up. I asked my husband if he heard anything, and he said the phone rung and he could hear all kinds of background noises from where I was, but I wasn't responding to him. So it's definitely one-way audio.

I have all the necessary ports open (as I noted from my previous post).

threehappypenguins

I also tried unchecking X_PublicAddress and then manually putting in my public home IP and I'm still getting one-way audio. But the Obion app works just fine.

threehappypenguins

I think it was in the Zoiper app. I went to Config > Accounts > Network Settings and checked off Use RPORT for signalling and Use RPORT for media. Then I could hear on my end no problem!