[Devel] [ openser-Bugs-1721210 ] Insert Route HF (from Path) messes up if UTF-8 chars around

SourceForge.net noreply at sourceforge.net
Sat May 19 19:37:32 CEST 2007


Bugs item #1721210, was opened at 2007-05-18 12:01
Message generated for change (Comment added) made by agranig
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=1721210&group_id=139143

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: modules
Group: ver 1.1.x
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Bernie Hoeneisen (bhoeneis)
Assigned to: Nobody/Anonymous (nobody)
Summary: Insert Route HF (from Path) messes up if UTF-8 chars around

Initial Comment:
Hi!

I have just submitted a bug report to Debian. For your 	convenience I mirror it here:


Debian Bug report logs - #424984

Package: openser
Version: 1.1.0-9etch1
Severity: normal
Tags: l10n

Hi!

I am testing the Path HF usage. When the usage of Path causes a insertion of a Route HF and the (original) SIP INVITE request contains UTF-8 characters, the Route HF gets inserted at the wrong place, e.g. between the <CR> and <LF> (Hexadecimal 0D and 0A) at the end of the From HF:

INVITE sip:bernie.hoeneisen at 192.168.1.3:6051;line=nfy9nuy8 SIP/2.0
Record-Route: <sip:127.0.0.1;r2=on;lr=on;ftag=as19d6b213>
Record-Route: <sip:130.89.10.194;r2=on;lr=on;ftag=as19d6b213>
Remote-Party-ID: "Bernie Höneisen" <sip:0123456789 at switch.ch>
Via: SIP/2.0/UDP 127.0.0.1;branch=z9hG4bK77a8.e46b2c74.1
Via: SIP/2.0/UDP 130.89.10.195:5060;branch=z9hG4bK53c948e4;rport=5060
From: "Bernie Höneisen" <sip:0123456789 at switch.ch>;tag=as19d6b213^MRoute:<sip:130.89.10.194;lr;received=sip:97.56.98.20:3051>

To: <sip:test at testie.switch.ch>
[....]

(This example has been anonymized. Original available on request.)

The Hexadecimal code of the UTF-8 char is: C3 B6 (o with Umlaut)

I guess the detection for the anchor, where the Route HF has to be inserted gets confused by the UTF-8 character.

cheers,
 Bernie
 

-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (990, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-4-686
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages openser depends on:
ii  adduser                     3.102        Add and remove users and groups
ii  libc6                       2.3.6.ds1-13 GNU C Library: Shared libraries

openser recommends no packages.

-- no debconf information



----------------------------------------------------------------------

Comment By: Andreas Granig (agranig)
Date: 2007-05-19 19:37

Message:
Logged In: YES 
user_id=825350
Originator: NO

Thanks. I will take care of that.

----------------------------------------------------------------------

Comment By: Bernie Hoeneisen (bhoeneis)
Date: 2007-05-19 14:39

Message:
Logged In: YES 
user_id=1441804
Originator: YES

Hi (again)

I believe to have located the problem an wrote a patch (against the
current debian stable, Openser 1.1) to circumvent it:

- The Route HF is inserted after the last Via HF,
  which means right before the From HF (in my case)

- If I also change the From HF, I run into the known limitation of
  OpenSER 'changing a HF twice gets unpredictable results' (lump stuff).

  It looks like that changing a HF and inserting a HF right before the
  changed one, ends up in same case as changing the HF twice.

- To circumvent the problem I rewrote the file
     openser/branches/1.1/modules/tm/path.c
  in such a way, that the Route HF is (if no Route HF present yet) always
  inserted right before the Call-ID HF, as the Call-ID MUST NOT be
changed
  (unless you are a B2BUA).
  If there is no Call-ID HF, an error is returned.
  (This means I presume, that Call-ID must be present and not be changed)

Please find the patch in the attachment.
I have tested it on my system and it appears to work fine.

cheers,
 Bernie

PS: I think this Patch could also be applied to Openser 1.2, but to the
new home of insert_path_as_route()
    (branches/1.2/msg_translator.c)
File Added: openser-1.1.0.debian.diff

----------------------------------------------------------------------

Comment By: Bernie Hoeneisen (bhoeneis)
Date: 2007-05-18 17:41

Message:
Logged In: YES 
user_id=1441804
Originator: YES

I made some further testing. It looks like the reason for the strange
behaviour is not the fact, that UTF-8 is around.
I figured out, that this behaviour has a different cause.

I use a feature, that adds a name to a phone number, when the call is
coming from the PSTN and the phonenumber is known (saved in the db). For
this I put the following line into the config:

 subst('/^(From:).*(<sip:[0-9]+\@switch\.ch>.*)$/\1 "$avp(s:679)
$avp(s:680)" \2/ig')

whereas avp(s:679) and avp(s:680) contain first- and lastname from the
db.

While the above line is commented out, the insertion of the Route HF works
correctly. Otherwise it inserts the Route HF between <CR> and <LF>.

Thus, it seems that calling the subst() function before the (Path-info)
Route HF is inserted causes the problem.

cheers,
 Bernie


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=1721210&group_id=139143



More information about the Devel mailing list