< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index  

Re: [reSIProcate-users] GetBestRoute problem?


Today I've configured the Default Gateway of the client machines using the IP number of our server, because another problem (MS Outlook was failing to connect to POP and SMTP server on Windows Vista machine), and after that the eyeBeam softphone started working!
 
Now it registers successfully the SIP account and then we can make calls. The audio quality is not as good as we expected yet, but we will keep trying other audio options to see if we can improve it.
 
However, it's still strange the fact that other softphones worked even without the default gateway information (besides the SJphone I've mencioned on the last post, I've also tried today a softphone called Express Talk and it worked as well, but now I don't remember if I've tested Express Talk before or after the gateway change).
 
 
----- Original Message -----
From: Lobo
Sent: Friday, April 11, 2008 3:09 PM
Subject: [reSIProcate-users] GetBestRoute problem?

Hello there.
 
I have Windows XP SP3 on my machine and I have a server with Windows Server 2003 R2 SP2, and the server is connected to a DSL modem that gives internet access to everyone on our small LAN. We also have a firewall software named Microsoft ISA Server 2004 installed on the server.
 
This month we contracted a SIP provider service and they offer the softphone eyeBeam, from CounterPath, for us to use with their SIP service. They said we had to allow access through ports 5060 UDP and the range of ports 10.000-20.000 UDP on our firewall software, so we can use the softphone. I've tried several ways of configuring this on ISA Server but none of them were successful.
 
After some research I found that the same problem occurred on all softphones that apparently use ReSIProcate library (I've tried with eyeBeam and X-Lite from CounterPath and Zoiper from Attractel), but no problem occurred on other softphones that do not seems to use ReSIProcate library (I've tested SJphone from SJLabs and Express Talk from NCH Swift Sound).
 
Looking at the log files generated from the "problematic" softphones (this one is from eyeBeam):
 
==============================================
[...]
[08-04-08]14:56:20.845 | Debug | RESIP | "BaseException at W:\Headsvn\SUA\Library\sipfoundry\main\rutil\WinCompat.cxx:294 Can't find source address for destination" |
[08-04-08]14:56:20.845 | Error | RESIP:TRANSPORT | "Can't find source interface to use" |
[08-04-08]14:56:20.845 | Debug | RESIP | "BaseException at W:\Headsvn\SUA\Library\sipfoundry\main\resip\stack\TransportSelector.cxx:397 Can't find source interface" |
[08-04-08]14:56:20.846 | Info | RESIP:TRANSPORT | "tid=b0021b1d60217e76 no route to target: [ V4 my-sip-provider-ip-address:5060 UDP target domain=my-sip-provider-url connectionId=0 ]" |
[08-04-08]14:56:20.946 | MaxDetails | RESIP:TRANSACTION | "Found matching transaction for TransportFailure: b0021b1d60217e76 -> tid=b0021b1d60217e76 [ ClientNonInvite/Trying unreliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT target domain=unspecified connectionId=0 ]]" |
[08-04-08]14:56:20.946 | MaxDetails | RESIP:TRANSACTION | "TransactionState::processClientNonInvite: TransportFailure: b0021b1d60217e76" |
[08-04-08]14:56:20.946 | Debug | RESIP:DNS | "Remove vip my-sip-provider-url(1)" |
[08-04-08]14:56:20.946 | Info | RESIP:TRANSACTION | "Try sending request to a different dns result" |
[08-04-08]14:56:20.946 | MaxDetails | RESIP:DNS | "Priming []" |
[08-04-08]14:56:20.946 | Info | RESIP:TRANSACTION | "Ran out of dns entries for my-sip-provider-url. Send 503" |
[...]

==============================================
   (Here I've changed the IP number information to "my-sip-provider-ip-address" and the domain to "my-sip-provider-url")
 
 
I found that the source of this error is a call to the Windows API function GetBestRoute (from "Iphlpapi.dll"):
 
---------------------------------------------------------------------------------------------
[...]
GenericIPAddress
WinCompat::determineSourceInterfaceWithoutIPv6(const GenericIPAddress& destination)
{
[...]

   if (NO_ERROR != GetBestRoute(sin.sin_addr.s_addr, 0, &bestRoute))
   {
      throw Exception("Can't find source address for destination", __FILE__,__LINE__);
   }

[...]
---------------------------------------------------------------------------------------------
 
I tried out this function GetBestRoute by myself and it returns the error code 1003 on my machine. So I tried connecting the modem directly on my machine and both worked, the Windows function GetBestRoute and the eyeBeam softphone. After that I installed eyeBeam on my server and it worked also, even with ISA Server running.
 
So, I don't know if this is a bug on ReSIProcate library (that CounterPath probably uses), if this is a bug on the GetBestRoute Windows API function, or, if this is a misconfiguration (ISA Server?) or a faulty component (hub or something?) at our LAN that causes an unexpected return value from the GetBestRoute function, but, the fact is that other SIP softphones, like SJphone and Express Talk, are working correctly on the same scenario.
 
Any thoughts about that?
 
I've also posted that on CounterPath forum:
 
 
Thanks in advance,
Pedro.


_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxx
List Archive: http://list.resiprocate.org/archive/resiprocate-users/