Hey all,
Trying to get the PA module working but I'm having some problems. From the logs on the server:
Mar 18 14:45:08 ser1 ser[30085]: parse_hfs(): Error while parsing headers Mar 18 14:45:08 ser1 ser[30085]: handle_subscription(): Error while parsing message header Mar 18 14:45:08 ser1 ser[30085]: handle_subscription about to send_reply and return -2
And the packets to and from SER look like this from eyeBeam's log. ngrep confirms the messages are the correct.
14:45:58.4 SENDING TO: 1.2.3.4:5060 SUBSCRIBE sip:username2@domain.com;transport=udp SIP/2.0 To: sip:username2@domain.com From: Evan Borgstromsip:username1@domain.com;tag=5021047d Via: SIP/2.0/UDP 2.3.4.5:6630;branch=z9hG4bK-d87543-194995238-1--d87543-;rport Call-ID: 0224d4088e377630 CSeq: 2 SUBSCRIBE Contact: sip:username1@domain.com:6630;transport=udp Expires: 3600 Max-Forwards: 70 Accept: multipart/related, application/rlmi+xml, application/pidf+xml, application/xpidf+xml Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO Proxy-Authorization: Digest username="username1",realm="ca.mci.com",nonce="423b30d096fc2ed8a93d627c171f66b609806c17",uri="sip:username2@domain.com;transport=udp",response="30d4781a4e489da04b7606fdd22a69fb",cnonce="4d305b610573f25e",nc=00000001,qop=auth,algorithm=MD5 Supported: eventlist User-Agent: MCI eyeBeam release 3004t stamp 16845 Event: presence Content-Length: 0
14:45:58.4 RECEIVING FROM: 1.2.3.4:5060 SIP/2.0 400 Bad Request To: sip:username2@domain.com;tag=a6a1c5f60faecf035a1ae5b6e96e979a-9f53 From: Evan Borgstromsip:username1@domain.com;tag=5021047d Via: SIP/2.0/UDP 2.3.4.5:6630;branch=z9hG4bK-d87543-194995238-1--d87543-;rport=6630 Call-ID: 0224d4088e377630 CSeq: 2 SUBSCRIBE Error while parsing headersUser-Agent: SER (0.9.0) Content-Length: 0
Looking through the code from subscribe.c we're looking for From:, Event:, Expires: & Accept: all of which are present in the SUBSCRIBE request.
if ( (parse_headers(_m, HDR_FROM | HDR_EVENT | HDR_EXPIRES | HDR_ACCEPT, 0) == -1) || (_m->from==0)||(_m->event==0)||(_m->expires==0) || (_m->accept==0) ) { paerrno = PA_PARSE_ERR; LOG(L_ERR, "parse_hfs(): Error while parsing headers\n"); return -1; }
Anyone see this before and have a fix or work around?
-Evan