[Users] Troubles parsing headers

Daniel-Constantin Mierla daniel at voice-system.ro
Thu Aug 10 12:08:30 CEST 2006


This trace helped to spot the problem, in the first, the line broke on 
the wrong character.

The empty space ' ' is not allowed after 'sip:'. If there is a space, it 
must be escaped. sip: must be followed by username or domain (see ruri).

Maybe in the configuration of the phone one space is present at 
beginning of username.

Cheers,
Daniel


On 08/10/06 12:43, Lars Sundqvist wrote:
> Yes, it is displayed as follows:
>
> U xxx.xxx.xx.xx:5061 -> yyy.yyy.yyy.yyy:5060
> REGISTER sip:sip.yyyyy.yyy SIP/2.0.
> Via: SIP/2.0/UDP xxx.xxx.xx.xx:5061;branch=z9hG4bK-d663b80b.
> From: aaaa.bbbbb <sip: username123 at sip.yyyyy.yyy>;tag=ea8cef4b108a99bco1.
> To: aaaa.bbbbb <sip: username123 at sip.yyyyy.yyy>.
> Call-ID: b96fead3-f03493d4 at xxx.xxx.xx.xx.
> CSeq: 3720 REGISTER.
> Max-Forwards: 70.
> Contact: aaaa.bbbbb <sip: username123 at xxx.xxx.xx.xx:5061>;expires=3600.
> User-Agent: Linksys/RT31P2-2.0.10(LIc).
> Content-Length: 0.
> Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER.
> Supported: x-sipura.
> .
>
>
> Thanks,
>
> Lars Sundqvist
>
> Daniel-Constantin Mierla wrote:
>> As I can see in the log, seems that the headers are not ended by 
>> \r\n, therefore none of the headers can be parsed. If you use
>>
>> ngrep -W byline
>>
>> do you see the message printed line by line?
>>
>> Cheers,
>> Daniel
>>
>>
>> On 08/10/06 12:04, Lars Sundqvist wrote:
>>> Thank you for your reply,
>>>
>>> Below is a extract from the log with the messages logged with xlog 
>>> MB: $mb
>>> (there is no special characters in the text that is replaced to 
>>> anonymize the message)
>>>
>>> /sbin/openser[28716]: -------------------------------------------
>>> /sbin/openser[28716]: ERROR: get_hdr_field: bad to header
>>> /sbin/openser[28716]: ERROR: bad header  field
>>> /sbin/openser[28716]: ERROR: get_hdr_field: bad to header
>>> /sbin/openser[28716]: ERROR: bad header  field
>>> /sbin/openser[28716]: ERROR:parse_from_header: bad from header
>>> /sbin/openser[28716]: xl_get_from: ERROR cannot parse FROM header
>>> /sbin/openser[28716]: ERROR: get_hdr_field: bad to header
>>> /sbin/openser[28716]: ERROR: bad header  field
>>> /sbin/openser[28716]: xl_get_to: ERROR cannot parse TO header
>>> /sbin/openser[28716]: [REGISTER] from [<null>] to [<null>]
>>> /sbin/openser[28716]: MB: REGISTER sip:sip.xxxxx.xxx SIP/2.0^M Via: 
>>> SIP/2.0/UDP xxx.xxx.xx.xx:5061;branch=z9hG4bK-2fab8548^M From: aaaa
>>> .bbbbb <sip: username123 at sip.xxxxx.xxx>;tag=ea8cef4b108a99bco1^M To: 
>>> aaaa.bbbbb <sip: username123 at sip.xxxxx.xxx>^M Call-ID: 
>>> b96fead3-f03493d4 at xxx.xxx.xx.xx^M
>>> CSeq: 3668 REGISTER^M Max-Forwards: 70^M Contact: aaaa.bbbbb <sip: 
>>> username123 at xxx.xxx.xx.xx:5061>;expires=3600^M User-Agent: 
>>> Linksys/RT31P2-2.0.10(LIc)^M Con
>>> tent-Length: 0^M Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, 
>>> OPTIONS, REFER^M Supported: x-sipura^M ^M
>>> /sbin/openser[28716]: ERROR: get_hdr_field: bad to header
>>> /sbin/openser[28716]: ERROR: bad header  field
>>> /sbin/openser[28716]: ERROR:maxfwd:is_maxfwd_present : parsing 
>>> MAX_FORWARD header failed!
>>> /sbin/openser[28716]: ERROR:parse_from_header: bad from header
>>> /sbin/openser[28716]: insert_RR(): From parsing failed
>>> /sbin/openser[28716]: record_route(): Error while inserting 
>>> Record-Route line
>>> /sbin/openser[28716]: ERROR: get_hdr_field: bad to header
>>> /sbin/openser[28716]: ERROR: bad header  field
>>> /sbin/openser[28716]: find_first_route: Error while parsing headers
>>> /sbin/openser[28716]: analyzing REGISTER request
>>> /sbin/openser[28716]: ERROR: get_hdr_field: bad to header
>>> /sbin/openser[28716]: ERROR: bad header  field
>>> /sbin/openser[28716]: find_credentials(): Error while parsing headers
>>> /sbin/openser[28716]: pre_auth(): Error while looking for credentials
>>> /sbin/openser[28716]: ERROR: get_hdr_field: bad to header
>>> /sbin/openser[28716]: ERROR: bad header  field
>>> /sbin/openser[28716]: ERROR: get_hdr_field: bad to header
>>> /sbin/openser[28716]: ERROR: bad header  field
>>> /sbin/openser[28716]: ERROR: build_res_buf_from_sip_req: alas, 
>>> parse_headers failed
>>> /sbin/openser[28716]: pre_auth(): Error while sending 400 reply
>>> /sbin/openser[28714]: -------------------------------------------
>>>
>>> Would love to get this issue resolved so if there is anything else 
>>> that could help in finding out what the problem is, please let me know.
>>>
>>> Cheers,
>>>
>>> Lars Sundqvist
>>>
>>>
>>> Daniel-Constantin Mierla wrote:
>>>> This looks a bit strange, because all headers are seen to be 
>>>> corupted. But they look ok. There is not rocket science with the 
>>>> Max-Forwards header.
>>>>
>>>> Do you get these mesages for all REGISTERs or just for certain 
>>>> cases. Could you print the message buffer with xlog $mb - that 
>>>> should show what OpenSER sees as SIP message.
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>>
>>>> On 08/09/06 16:26, Lars Sundqvist wrote:
>>>>> Hi everyone,
>>>>>
>>>>> We have been having a problem with our openser installation for a 
>>>>> while,
>>>>> certain REGISTER requests generates errors.
>>>>> The openser version we are running is 1.0.0 from cvs.
>>>>>
>>>>> Does anyone have a clue why the following register generates the 
>>>>> error
>>>>> below?
>>>>>
>>>>> Register:
>>>>> xxx.xxx.xx.xx:5061 -> yyy.yyy.yyy.yyy:5060
>>>>>  REGISTER sip:sip.xxxxx.xxx SIP/2.0..Via: SIP/2.0/UDP
>>>>> xxx.xxx.xx.xx:5061;branch=z9hG4bK-39f541a2..From: aaaa.bbbbb <sip:
>>>>> username123 at sip.xxxxx.xxx>;tag=ea
>>>>>  8cef4b108a99bco1..To: aaaa.bbbbb <sip:
>>>>> username123 at sip.xxxxx.xxx>..Call-ID:
>>>>> b96fead3-f03493d4 at xxx.xxx.xx.xx..CSeq: 2508 REGISTER..Max-Forwards:
>>>>> 70..Conta
>>>>>  ct: aaaa.bbbbb <sip:
>>>>> username123 at xxx.xxx.xx.xx:5061>;expires=3600..User-Agent:
>>>>> Linksys/RT31P2-2.0.10(LIc)..Content-Length: 0..Allow: ACK, BYE, 
>>>>> CANCEL, IN
>>>>>  FO, INVITE, NOTIFY, OPTIONS, REFER..Supported: x-sipura....
>>>>>
>>>>> Error:
>>>>> /sbin/openser[18198]: ERROR: get_hdr_field: bad to header
>>>>> /sbin/openser[18198]: ERROR: bad header  field
>>>>> /sbin/openser[18198]: ERROR: get_hdr_field: bad to header
>>>>> /sbin/openser[18198]: ERROR: bad header  field
>>>>> /sbin/openser[18198]: ERROR:parse_from_header: bad from header
>>>>> /sbin/openser[18198]: xl_get_from: ERROR cannot parse FROM header
>>>>> /sbin/openser[18198]: ERROR: get_hdr_field: bad to header
>>>>> /sbin/openser[18198]: ERROR: bad header  field
>>>>> /sbin/openser[18198]: xl_get_to: ERROR cannot parse TO header
>>>>> /sbin/openser[18198]: [REGISTER] from [<null>] to [<null>]
>>>>> /sbin/openser[18198]: ERROR: get_hdr_field: bad to header
>>>>> /sbin/openser[18198]: ERROR: bad header  field
>>>>> /sbin/openser[18198]: ERROR:maxfwd:is_maxfwd_present : parsing
>>>>> MAX_FORWARD header failed!
>>>>> /sbin/openser[18198]: ERROR:parse_from_header: bad from header
>>>>> /sbin/openser[18198]: insert_RR(): From parsing failed
>>>>> /sbin/openser[18198]: record_route(): Error while inserting 
>>>>> Record-Route
>>>>> line
>>>>> /sbin/openser[18198]: ERROR: get_hdr_field: bad to header
>>>>> /sbin/openser[18198]: ERROR: bad header  field
>>>>> /sbin/openser[18198]: find_first_route: Error while parsing headers
>>>>> /sbin/openser[18198]: analyzing REGISTER request
>>>>> /sbin/openser[18198]: ERROR: get_hdr_field: bad to header
>>>>> /sbin/openser[18198]: ERROR: bad header  field
>>>>> /sbin/openser[18198]: find_credentials(): Error while parsing headers
>>>>> /sbin/openser[18198]: pre_auth(): Error while looking for credentials
>>>>> /sbin/openser[18198]: ERROR: get_hdr_field: bad to header
>>>>> /sbin/openser[18198]: ERROR: bad header  field
>>>>> /sbin/openser[18198]: ERROR: get_hdr_field: bad to header
>>>>> /sbin/openser[18198]: ERROR: bad header  field
>>>>> /sbin/openser[18198]: ERROR: build_res_buf_from_sip_req: alas,
>>>>> parse_headers failed
>>>>> /sbin/openser[18198]: pre_auth(): Error while sending 400 reply
>>>>>
>>>>> Many thanks,
>>>>>
>>>>> Lars Sundqvist
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Users mailing list
>>>>> Users at openser.org
>>>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>
>>>
>>>
>
>




More information about the Users mailing list