OBiTALK Community

General Support => New to Using the OBi / VoIP => Topic started by: ALAL on April 03, 2014, 08:20:49 AM

Title: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ALAL on April 03, 2014, 08:20:49 AM
Hi,
I was told that Obi110 can be used for the following scenario:
Objective: to call/receive Foreign Country's ("FC") phone calls in the US, using data plan only (thus avoiding international long distance call charges and roaming charges)
Wish to Set up something like this:
- Cell number in FC forwarded to landline in FC, which is connected to an Obi110
- Obi110 then forwards calls to my Android/iPhone in the US over the internet, using Android's native SIP client? or Obitalk App?
- So I can answer any calls to my Cell number in FC while i'm in the US
- thus this will result in no long distance or roaming charges

But so far, I can't figure out how. Obihai customer service won't help me.  I'm a complete newbie without any knowledge.  I'd appreciate if someone would lend a hand or guide me step by step.
Thanks!
Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ianobi on April 03, 2014, 09:23:55 AM
Welcome to the forum. There are several ways to achieve what you want. The simplest is to use the OBiON app on your android phone to answer the calls.

In the OBi110 set this:

Physical Interfaces > LINE Port > InboundCallRoute:
{12345678901:ph,pp(ob290123456)},{ph}

Where 12345678901 is your cell number in FC and 290123456 is the softphone number that is automatically allocated to you when you set up your OBi110 account.

With the above arrangement calls to the OBi110 with CallerID of 12345678901 will ring the phone attached to the OBi110 and your OBiON app. Any other call to the OBi110 will only ring the phone attached to the OBi110.

If you want the calls from the cell number in FC to forward to your OBiON app without ringing the phone attached to the OBi110, then set this:

Physical Interfaces > LINE Port > InboundCallRoute:
{12345678901:pp(ob290123456)},{ph}


I should issue a couple of warnings! For this to work CallerID has to be recognised by the OBi110. Different countries use different technical formats for their CallerID systems. The default OBi setting is for North American standard. I'm in the UK and easily changed the settings to work here.

Another potential problem is that the OBiON app really needs wifi or 4G to work well. 3G will work, but may not be as reliable as you want. On the upside, the OBiON app should work in any country where you can get a decent connection. I have used it in various European countries where hotels provide free wifi.

There are other solutions that would work, but are a little more complicated. For example, if you had an OBi in the US as well as the FC, then you could set up all sorts of other connections. The links between OBi devices and other OBi devices or OBiON apps use the OBiTALK network, which is free to use for OBi owners, so it provides a free bridge from say US to your FC, you only pay for the local part at each end.

Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ALAL on April 03, 2014, 10:28:26 PM
Thank you ianobi.

1. I've managed to direct my foreign cell number to ObiON app and successfully answered the phone calls with the app twice.  However, it failed to connect after those two times.  I followed your instructions, I'm not too sure what's happening.  I tried rebooting the Obi110.  It still doesn't work.
[edit: I rebooted a few times, and realized the "InboundCallRoute" keeps on resetting to "ph" instead of "{12345678901:pp(ob290123456)},{ph}".  Is there a way to stop Obi110 from clearing the settings each time it reboots?]
[edit: solved, thank you!]

2. If I missed any forwarded calls, how do I see the call history / missed call history? [edit: solved, thank you]

3. Also, as you mentioned, the OBiON App needs wifi or 4G to work well, is there a way to make sure the calls go through or are stable enough? Can my android SIP native client connect to the Obi110, instead of using the ObiON App?
[edit: I also realized I'll have to open the ObiON app in order to receive a call on both iOS and Android, an incoming call doesn't wake it up, and there's no way I'd know I have an incoming call unless I open the ObiON app and keep the phone awake (ie. not locked). is there a way to make it integrated into either iOS/Android, so I can receive a call without having to open the app all the time, or every now and then?]
[edit2: I looked into cSIPsimple posts, and it looks very intimidating! if you don't mind, can you point me to the easiest guide for me to follow? Do I need to set up a free SIP provider? If so, which do you recommend? thanks so much!]
[edit: solved, thank you!]

4. How do I place a phone call through the Obi110/ObiON App or another method?

5. Lastly, is it possible to direct the phone calls to a voicemail system if I didn't answer the phone?  I heard something like Asterisk or PBX in A Flash would help?  I'm hoping to get a voicemail via email, something like Google Voice.

Thank you!
Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ianobi on April 03, 2014, 11:00:04 PM
I'll be away from my pc for the rest of today, but I'll give a quick couple of answers, then follow up with more tomorrow. Others are welcome to jump in here!

2. Call History is available via your local OBi web page, not via the OBiTALK portal. Dial ***1 for the IP address. Default log in details are "admin" and "admin". Look for Status > Call History.

3. Do a search on this forum for "CSipSimple". It can register with a free SIP provider and integrate with your native android client. Don't be put off by some of the long complex posts on this subject!

I'll be back tomorrow with plenty of time, so feel free to add questions!
Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: giqcass on April 04, 2014, 10:22:23 PM
Quote from: ALAL on April 03, 2014, 10:28:26 PM
5. Lastly, is it possible to direct the phone calls to a voicemail system if I didn't answer the phone?  I heard something like Asterisk or PBX in A Flash would help?  I'm hoping to get a voicemail via email, something like Google Voice.

Thank you!

Let me tackle this question specifically.  If you were to use SIP like Csipsmple(suggested by ianobi) or Sipdroid(one I like) you would need to register to a SIP server.  Your cell phone can't register to the Obi itself.  A service like Callcentric becomes useful.  Callcentric would provide the sip server, the voicemail, and a call history in one place.  They can forward your voicemail to your email account.  For this set up you would forward calls to a Callcentric SIP address instead of forwarding to Obion.


Quote from: ALAL on April 03, 2014, 10:28:26 PM
[edit: I rebooted a few times, and realized the "InboundCallRoute" keeps on resetting to "ph" instead of "{12345678901:pp(ob290123456)},{ph}".  Is there a way to stop Obi110 from clearing the settings each time it reboots?]

It sounds like your setting are being overwritten by the web portal. 
http://www.obitalk.com/forum/index.php?topic=61.0
Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ianobi on April 05, 2014, 03:21:32 AM
How you make changes to your OBi config is a big subject. There are two methods, both have pros and cons. For now I suggest you stay with the Obihai preferred method, especially as your OBi may be remote from you:
Make changes via the OBi Expert Configuration pages. From your OBi Dashboard, click on your OBi number and follow the prompts to get there. To change a value uncheck both boxes to the right of the value and leave them unchecked. After changing the values on one page, press submit at the bottom of the page and wait a few minutes for the OBi to reboot. Then move on to the next page if required.

1. The above info and giqcass' advice should have cured this.

3. There are many ways to go! If you don't want to go with a paid account, then I suggest this for android:

Download the CSipSimple app to your cell phone (free).
Register for a sip2sip account (free). Install it on CSipSimple. I'll assume your sip2sip account id is alalalal@sip2sip.info

Now your cell phone can be called via your sip2sip account.  Your OBi110 now needs a "fake" SIP account, I'll use sp2:

Service Providers -> ITSP Profile B -> SIP -> ProxyServer : 127.0.0.1
Service Providers -> ITSP Profile B -> SIP -> X_SpoofCallerID : checked
Service Providers > ITSP Profile B > General > DigitMap:
([^*]@@.'@'@@.)


Voice Services -> SP2 Service -> Enable : (checked)
Voice Services -> SP2 Service -> AuthUserName : Something (don't leave blank)
Voice Services -> SP2 Service -> X_RegisterEnable : (unchecked)
Voice Services -> SP2 Service -> X_ServProvProfile : B
Voice Services -> SP2 Service -> X_UserAgentPort : 5061
Voice Services -> SP2 Service -> CallerIDName : Whatever
Voice Services -> SP2 Service -> MaxSessions : 4


Change the Line Port InboundCallRoute:

Physical Interfaces > LINE Port > InboundCallRoute:
{12345678901:sp2(alalalal@sip2sip.info)},{ph}

Now incoming calls to your OBi110 with CallerID 12345678901 should call your cell phone via your sip2sip account on CSipSimple.

There are other settings on CSipSimple to ensure it's "kept alive" etc, but we can do more detail if you choose to go this way and get this far! Sorry, it's quite a learning curve at the beginning. The good thing about CSipSimple is that it does integrate with the native android dial pad and will use your existing contacts.


4. Making an outgoing call from your cell phone via the OBi110:

OBiON app method: In your OBi Dashboard click on your softphone number – 290123456 – make sure that you have filled in the "OBi Voice Gateway" box with your OBi110 number – 200123456. Click save, wait for the OBi110 to reboot.

Now anything you dial from the OBiON app on your cell phone will be sent out from your OBi110 using its Primary Line. Default Primary Line for an OBi110 is PSTN Service, so calls will go out via the Line Port. This can be changed if required.


CSipSimple method: In your CSipSimple sip2sip account you need to tell it where your OBi110 is. Either your OBi110 is at a fixed IP address (your router's public ip address) followed by the OBi110's port (5061) so 123.12.112.10:5061 or you need a ddns address such as alalalal.ddns.me.com:5061. Then you set up a filter rule for your sip2sip account on CSipSimple, which says "All – Suffix with @alalalal.ddns.me.com:5061.

Now when you dial from your native android dial pad it will ask you to choose between "mobile" or "sip2sip". Choose "sip2sip" and dial say 12345678901. This will be sent to the sip2sip servers as 12345678901@alalalal.ddns.me.com:5061 and your router will remove all but 12345678901 and send that number to port 5061, which is the OBi110 sp2. (Phew, nearly there!)

Change sp2 InboundCallRoute:

Voice Services > SP2 Service > X_InboundCallRoute:
{(alalalal)>(xx.):li}

Any call coming into sp2 with a CallerID of "alalalal" will be sent out of the Line Port to PSTN. This can be changed to include ringing the OBi110 Phone Port, or connect to the Auto Attendant etc.


There are some potential problems. For example sip2sip won't allow through numbers starting with "0". Many countries (including where I live) use "0" rather than "1" as a national prefix. This can be overcome, but you have enough to think about for now!

As said earlier, these are only two options – using OBiON or CSipSimple. Both are free, but obviously use your data plan. The OBiON app is a bit clunky and is in need of updating. CSipSimple is a learning curve all of its own, but can be very useful.


5. sip2sip does have a voicemail facility. I've not used it with my sip2sip accounts, so I cannot comment on it. I guess we should not expect too much from a free account!
I'm no expert on PBX etc. You may wish to post that separately after you get past all of the other issues in this post.


By now I expect you are banging your head on the nearest wall or have fallen asleep – don't despair – many of us have been through this and remained almost sane   :D

Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ALAL on April 06, 2014, 09:09:29 AM
Oh wow, that is a lot to take in.  But I'd like to thank both of you, giqcass and ianobi! I tackled most of the problems!!!

1. Thanks giqcass! it's working now!
3. Yay! thanks ianobi.  I successfully used csipsimple to receive calls!
4. Outgoing call: having a bit of trouble here, I'm stuck at this stage. I'm trying to keep everything uniform and so i'll use csipsimple only.

CSipSimple method: In your CSipSimple sip2sip account you need to tell it where your OBi110 is. Either your OBi110 is at a fixed IP address (your router's public ip address) followed by the OBi110's port (5061) so 123.12.112.10:5061 or you need a ddns address such as alalalal.ddns.me.com:5061. Then you set up a filter rule for your sip2sip account on CSipSimple, which says "All – Suffix with @alalalal.ddns.me.com:5061.
-  does it mean I have to change port forwarding settings on the router to the Obi110? So, forward all 5061 to the obi110?
- filter rule: in csipsimple, under "filters" > "sip2sip" > "add filter" > ??? Do I select "can't call" "rewrite" "stop processing" "directly call" "Auto answer"? Then, "All"?  After selecting "all", I can't add "All – Suffix with @alalalal.ddns.me.com:5061"

There are some potential problems. For example sip2sip won't allow through numbers starting with "0". Many countries (including where I live) use "0" rather than "1" as a national prefix. This can be overcome, but you have enough to think about for now!
Can I set sip2sip or csipsimple to dial a non-zero prefix before the actual phone number? say "123"-[actual phone number]?
Thanks!!!!
Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ianobi on April 07, 2014, 03:56:38 AM
CSipSimple is a complex beast, but that's because it is very configurable, which suits our needs. Here's some general settings I recommend in addition to the defaults:

Settings > Network > Lock WiFi: check
Settings > Network > Hi perfs lock: check
Settings > Network > Resolve DNS SRV: check
Settings > User Interface > Use partial wake lock: check

Quotefilter rule: in csipsimple, under "filters" > "sip2sip" > "add filter" > Huh Do I select "can't call" "rewrite" "stop processing" "directly call" "Auto answer"? Then, "All"?  After selecting "all", I can't add "All – Suffix with @alalalal.ddns.me.com:5061"

Like me, I think you need two filter settings:

Settings > Filters > sip2sip (account name) > Add Filter > Rewrite > All > Prefix by: **7
Settings > Filters > sip2sip (account name) > Add Filter > Rewrite > All > Suffix with:
@alalalal.ddns.me.com:5061

Now if you dial 12345678901 from CSipSimple, then **712345678901@alalalal.ddns.me.com:5061 will be sent to your router. **712345678901 will make it through to your OBi110 sp2.

Change to this:

Voice Services > SP2 Service > X_InboundCallRoute:
{(alalalal)>(<**7:>(xx.)):li}

Any call coming into sp2 with a CallerID of "alalalal" and a prefix of **7 will have the prefix **7 removed and then be sent out of the Line Port to PSTN.


Quotedoes it mean I have to change port forwarding settings on the router to the Obi110? So, forward all 5061 to the obi110?

Yes, it's recommended to port forward the "UserAgentPorts". By default these are 5060 for sp1 and 5061 for sp2. Personally I like to change the UserAgentPorts to a random number as it helps to avoid sip scanners. You might pick something non-standard like 5490 and 5491. NB: If you do change the UserAgentPort for sp2 you must change the CSipSimple filter rule to agree with it.


If you wish to use this method with a 3G data plan, then it would be worth investing a few $ and buying the app CSipSimpleCodecG729.  I find it works pretty well with 3G. Set the codec settings in CSipSimple so that 3G is classed in the "Slow" list. Then set the slow list to prioritise G729 codec. Your OBi110 also supports G729 so you could also prioritise that in the relevant OBi110 codec list. Sip2sip does not support the G729 codec, but that's ok as it will simply pass the call through with any codec that's being used.

I don't think that any of us got all this working on our first attempt! Took me a while, and I'm still on a bit of a learning curve regarding CSipSimple!


Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ALAL on April 08, 2014, 04:31:31 AM
Going back to receiving calls on CSipSimple, I have two problems:

1. We can't hear each other
I managed to receive phone calls using CSipSimple BUT sometimes I can't hear anything at all, and same with the caller.  Or sometimes it's one way only, meaning I can hear what the caller is saying, but the caller can't hear me at all.  So it's really on and off.

2. CSipSimple or Obi110 doesn't pick up the call right away
When the phone call is redirected/call-forwarded to my landline (connected to Obi110), the phone call isn't picked up right away, the caller needs to let it ring a few more times before CSipSimple picks it up.  Is there a way to make CSipSimple or OBi110 pick it up right away?


Side note: I'm still trying to figure out the dialing out part.  I think my version of CSipSimple is different from yours, I don't see settings you're recommending.  The version I'm using is 1.02.00 r2330.
Thanks!
Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ianobi on April 08, 2014, 10:35:06 AM
1. This is usually a NAT traversal problem. Try to do your testing when CSipSimple is connected via your cell phone wifi connection. If this works reliably, then your router / OBi are probably set up correctly. Make sure you have the correct ports forwarded in your router. Obihai recommend:

TCP Ports: 6800, 5222, 5223
UDP Ports: 5060 to 5061, 10000 to 11000, 16600 to 16998, 19305

This assumes that you are still using 5060 & 5061 as your sp1 & sp2 UserAgentPorts. For speech 16600 to 16998 are the most important – these carry speech data using RTP (Real Time Protocol). To test if port forwarding is the problem, you could put the OBi LAN connection in your router's DMZ temporarily. This would leave it totally open to the internet for testing purposes.


2. An incoming call to the OBi110 Line Port is subject to a delay set by:

Physical Interfaces > LINE Port > LINE Port > RingDelay

The default is usually 4000 (4 seconds). This is to allow time for the OBi110 to decode the incoming CallerID. In North America CallerID is sent after the first ring and 4 seconds allows enough time to receive the first ring followed by the CallerID. Where I live in the UK CallerID comes in before the first ring, so I can set my delay to 0. If you tell us which country your OBi110 is in, then we should be able to work out what delay if any is needed. Or it might just be a question of trial and error. CallerIDMethod also needs to be set correctly for your country.


Apologies – I should have told you this part sooner: I am using the same version of CSipSimple as you, but here is yet another of its complications, you need to see "Expert Settings" See here:

https://code.google.com/p/csipsimple/wiki/ExpertSettingMode

Having said all that, the filters should work as I described previously.

CSipSimple is so not simple that it has a web site of its own including its own wiki:

https://code.google.com/p/csipsimple/


Another way to test a call from CSipSimple to your OBi and out to PSTN, is to set up a contact in the format **712345678901@alalalal.ddns.me.com:5061 and send it without any filters set up. You will need to use the CSipSimple dial pad to do this if your native key pad does not allow letters/symbols.

Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ALAL on April 09, 2014, 02:06:39 PM
Thank you ianobi for your help.
1. I'm currently testing it under different situations and connections (wifi vs 3G vs landline with different phones).  Thanks.
2. Currently, it's set to 4000, CallerIDMethod is FSK(Bell 202).  Under these settings, the Caller ID can be detected and seen.  I played around with those variables, such as lowering the RingDelay and changing the CallerIDMethod, but nothing seems to work.  The country is Hong Kong, which I think (not sure) should follow the UK standard.  If you know the appropriate settings, please let me know.  I've done some search but can't find any posts relating to this issue.
3. Calling out using CSipSimple:
I tried to dial out, and it says "404 / User not found".  The current filter settings are:
a. All Prefix by **7
b. All Suffix with [SIP2SIP username].[DDNS address]:[port]

In regards to 3.b., should it be "All Suffix with [DDNS address]:[port]"?

I further tested with different combinations without any filters set up:
- **7[phone number]@[SIP2SIP username].[DDNS address]:[port] => "500 / Server error occurred"
- **7[phone number]@[DDNS address]:[port] => "486 / Busy here"

Just to clarify, what exactly is "**7"?
Thanks.
Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ianobi on April 10, 2014, 03:53:31 AM
2. Wikipedia seems to think that Hong Kong uses the same CallerID format as USA (FSK Bell 202) so you should be ok on the OBi default settings. Unfortunately, that means you are stuck with the four seconds delay to decode the CallerID. If you were willing to allow all calls to be forwarded to your cell phone regardless of CallerID, then the RingDelay could be set to 0 and this changed to:

Physical Interfaces > LINE Port > InboundCallRoute:
{sp2(alalalal@sip2sip.info)}

This would send all calls incoming on the line port to CSipSimple on your cell phone.

Or:

Physical Interfaces > LINE Port > InboundCallRoute:
{ph,sp2(alalalal@sip2sip.info)}

This would send all calls incoming on the line port to CSipSimple on your cell phone and ring the phone attached to the OBi110.

I'm not sure if CallerID will make it through the OBi110 to CSipSimple using these methods.


3. Calling out using CSipSimple:

The correct formats are:

a. All Prefix by **7
b. All Suffix with @[DDNS address]:[port]


This is hopeful:

**7[phone number]@[DDNS address]:[port] => "486 / Busy here"

It suggests that the call got the OBi110, but the format or CallerID was not correct.

**7 is just my invented prefix.  It needs to be anything that the sip2sip servers do not recognise as a number that they should process, so they pass it through with no processing. The main thing here is that the prefix we add from CSipSimple needs to be the same as we remove in the OBi110 InboundCallRoute. We added **7 at the CSipSimple end so we remove it here at the OBi110 end:


Voice Services > SP2 Service > X_InboundCallRoute:
{(alalalal)>(<**7:>(xx.)):li}

Any call coming into sp2 with a CallerID of "alalalal" and a prefix of **7 will have the prefix **7 removed and then be sent out of the Line Port to PSTN.

I don't know what you are actually using as your CallerID (where I have used alalalal). If it contains reserved characters (m, M, s, S, x, X which have special meaning in the digit map syntax) then this can cause problems. If that is so, then use single quotes like so:

Voice Services > SP2 Service > X_InboundCallRoute:
{('alalalal')>(<**7:>(xx.)):li}

Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ALAL on April 12, 2014, 10:14:52 PM
thank you!!!
let me try these settings first. i'll let you know if it works.
just a quick question, is there an iPhone/iOS equivalent of CSipSimple?
Thanks!
Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ianobi on April 13, 2014, 02:13:26 AM
I'm no expert on iOS, but Acrobits seems popular. It has number rewriting like the CSipSimple filter rules. It costs a few $ and like CSipSimple, if you want to use it on 3G, then I recommend spending a few more $ on the G729 codec.
Title: Re: [Newbie] Forward Calls to Landline, Answer Using SIP Client/App/Other Methods
Post by: ALAL on September 10, 2014, 12:58:21 PM
Just want to share with everyone, after months of using this. I successfully made and received calls.  However, the call quality varied.  I tried testing on T-mobile (US) using 2G/3G, and wifi.  The calls are sometimes acceptable but there were some interruptions in between or dropped calls.
Used:  Samsung S3, Obi110, CSipSimple (native phone support for android, which is nice)

Question:  Does anyone know how to use an iOS SIP client for this purpose?  If so, I would be grateful if someone could give me some pointers.