[Devel] loose_route() incorrectly strict routing locally forwarded messages

Bogdan-Andrei Iancu bogdan at voice-system.ro
Wed Apr 12 11:22:40 CEST 2006


Hi Tavis,

the loose_route() function use the an internal function check_myself() 
(similar to ==myself in cfg) to see if it's strict or loose route.

my guess is that the function sees the asterisk address (127.0.0.1:5080) 
as a local one. try to remove the alias from your cfg.

regards,
bogdan

Tavis P wrote:

>I've been having a problem where ACK and BYE messages that are being
>forwarded to another port on the local machine (where asterisk is
>running for example) are being incorrectly handled by loose_route().
>It seems to think it needs to use strict routing semantics (replacing
>the RURI with that of the Route: header field value) however the message
>is not structured to be strict routed so it causes local looping problems.
>
>Using the same UA but altering the routing slightly such that the messge
>is sent to a non-local different ip address (in which case the ACK/BYE
>is of the same structure but has a different destination and tags/flags,
>etc)) the loose_route() function properly classifies the ACK/BYE as
>needing to be loose routed and everything works as expected
>
>Attached is a stripped down openser config file that will exhibit the
>problem i've encountered
>The following lines will need modification:
>- "seturi("sip:400 at 127.0.0.1:5080");"   - you will need to have some
>local application (could be another openser that simply responds "200
>OK"!) that will listen on another port locally
>- "#seturi("sip:400 at some.other.system");"   - change to
>some.other.system to some external system that will accept an INVITE and
>initiate a dialog
>
>
>Initially the script will route the call to the local host and you will
>see in the log that loose_route() will treat the message using strict
>route semantics even though the message does not classify
>afterwards you can comment out the first seturi() command and uncomment
>the second seturi command, make the same phone call and see that
>loose_route() will properly classify the ACK and BYE messages
>
>
>This was tested on the latest version of openser 1.0.0 stable checked
>out of CVS on Friday April 7, 2006
>UACs tested with this configuration: (All of which do not do strict routing)
>Cisco 7960 W/Voice Software 7.5
>Sipura SPA2100 W/Firmware 3.2.5d
>Xlite 1105d
>
>
>I've stored pcap and openser debug (level 99) traces of each situation
>(local forward and external forward), they are available on request
>
>
>thanks!
>  
>




More information about the Devel mailing list