Quote from: Atrocia on June 20, 2013, 03:57:40 PM
Thanks. Once again, why is the (linux?) SIP situation so bad?
I'm not sure it is anything special with the Linux sip clients. You can encounter problems with any sip client. I recently setup my Android phone (using CSipSimple) to communicate using single stage dialing thru my OBi110. I have also setup a softphone on my local pc (XLite) which can communicate in a similiar manner but there is a difference in how you setup SPx to communicate with these two clients.
The problems you encounter in configuring for sip clients, such as softphones, android phones, etc., dialing thru an OBi using direct ip calling mostly relate to ip addresses and port numbers carried in the sip signalling packets between the sip client and the OBi. The problem often is the OBi is using its local network address when it should be using its external ip address or vice versa. Problems often occur with the addresses for the exchange of the rtp sound packets, although it could also be with the sip signalling exchange itself. The necessary addresses used can be either external or local network and the OBi seems to use external or local network addresses depending on how SPx is configured. Troubleshooting is easier if you can use a packet sniffing program such as Wireshark where you can examine the packet exchange of the OBi.
With the OBi there is a difference in packet formation depending on whether the SPx you are using is registered or not registered.
Of course you first need to find a sip client that allows you to configure the client to make calls without registration. Azrobert has an excellent posting on how to configure the Android client, CSipSimple, to operate without registration (
http://www.obitalk.com/forum/index.php?topic=4647.msg33746#msg33746). Without his posting it is not obvious how you do that.
The current version of XLite has a straight forward setting to Register or not Register. I don't believe they have a Linux version, though.
Generally you setup the sip client's proxy with the OBi's ip address (either external or local network as the case may be) including the SPx sip port number (unless the port number is the default 5060). The UserID you setup on the client will be the caller id of the incoming call to the OBi. Of course the SPx on the OBi you are calling needs to be configured for sip. If your sip client is external to the OBi's local network (external ip address) then the OBi's SPx generally needs to be registered to somebody's external server. If your sip client is on the local network then the OBi's SPx should not be registered.
If the sip client is external and is itself behind a local network router with a local network address of it's own, the client should be configured to use it's external ip address. This is often done configuring the client to use a STUN server.
For the single stage dialing on SPx you setup the SPx's X_InboundCallRoute with an element like this:
{(hwittenb)<(xxxxxxxxxx):sp1},
where hwittenb is the UserID you setup on your sip client and sp1 is the outgoing SPx configuration you want to use for the bridged outgoing call.