Direct SIP dialing & direct IP dialing question

(1/3) > >>

VOIP_JoeSummy:
I did some experimentation with direct SIP address dialing and direct IP address dialing.

First I installed the Linphone softphone app to my Laptop.

Then I set my OBI110 SP1 to register with a SIP account, let's say, abc@iptel.org, and I set SP2 to be not registered, but still with a local dummy proxy and a user name of "1", and I set up router port forwarding for it.

Now, if I add and register a SIP account to my Linphone softphone app, I can call both my OBI SP1 ( using:  sip: abc@iptel.org ) and SP2 ( using:  1@My_Modem_Public_IP:5061 ) from this app from my laptop.

But if I remove this SIP account from my Linphone softphone app, to make it make outgoing calls with some default SIP identity, like  sip:1@192.168.0.2,  then I can still call my OBI SP1, but no longer the SP2.

Can someone give me some clues on it?  What extra steps do I need for direct IP->IP dialing?  Or is this softphone app inherently unable to do it?

azrobert:
First, I'm not familiar with Linphone. I use Phonerlite on my Windows computers.

I don't understand what you are trying to do.
Is Linphone register to a different service and you don't want to use that service?
You can define multiple accounts on Phonerlite.
You would define the 1st account to register to your service connected to SP1.
The 2nd you would point the Proxy to your public IP address and port 5061.
Use the 1st account to call SP1 and the 2nd to call SP2.

Edit:
Is the computer and OBi on the same LAN?

ianobi:
Quote

But if I remove this SIP account from my Linphone softphone app, to make it make outgoing calls with some default SIP identity, like  sip:1@192.168.0.2,  then I can still call my OBI SP1, but no longer the SP2.

I'm guessing that the Linphone / SIP account was using some sort of STUN arrangement to resolve the routing to sp2. The problem with an unregistered spX is that it normally sends back its internal ip address as its contact in the "OK" message. One way of getting it to send back its external ip address is described in this post - note the "keep-alive" settings.

http://www.obitalk.com/forum/index.php?topic=8511.0

The calling softphone needs to be able to "call without registration". I'm not familiar with Linphone. I do find that Phonerlite is good for this type of testing from laptop or pc as it can have registered or unregistered accounts and has a good debug facility. It's free, so no harm in trying.

Edit: posted before I read azrobert's comments. I'm assuming that you took the laptop to some remote place away from your local subnet and used a wifi hotspot or similar.

VOIP_JoeSummy:
The Linphone softphone app is able to make outgoing calls without registration. Otherwise it won't be able to call the sip account at my OBI SP1.

Why do we need the KeepAlive stuff here? The caller, the Linphone softphone app, already knows the public IP of the callee, since it is calling to:    1@My_Modem_Public_IP:5061.  It does not need the callee to tell it the callee public IP address AGAIN. Is there some inefficiency in the whole SIP protocol  specification/design?

ianobi:
Time to get a bit SIP nerdy here (and I'm missing out lots of details) :P

The caller (Linphone) sends an "INVITE" message using SIP protocol which contains a header with its "contact" details, that is its ip address and port to send the RTP protocol (speech) to. This message may be routed through many servers along the way depending on your ISP and it gets routed to:

Quote

1@My_Modem_Public_IP:5061

That's the ip address and port  of your OBi110 sp2. So far so good. Then your OBi110 sp2 will answer with an "OK" message using SIP protocol most likely back along the same route and many servers with its "contact" details, that is its ip address and port to send the RTP protocol (speech) to.

Now comes the clever part. Speech using RTP protocol needs the most direct path possible to keep latency etc to a minimum. Both devices now have each others actual ip address and port via the "contact" headers so they can send the speech (RTP) directly from one ip address and port to the other, not using the same route as the SIP protocol, which is used to set up, control and tear down the call.

An example of this is calling one OBi device to another using the OBiTALK network with both devices in your home router subnet. The call will be set up using the Obihai servers which may be very remote depending where you are in the world, but the speech will stay within your home subnet because the "contact" details of both devices will see that this is the most direct route.

I hope that helps - I have left out lots of detail, but the basics are SIP signalling routes like most computer data stuff, then the RTP speech stuff goes direct. This is why it can go wrong if the unregistered OBi110 spX gives out its private ip address and port rather than its public address and port as its contact.

Navigation

[0] Message Index

[#] Next page