Thomas, On Fri, 2003-05-30 at 08:22, Tomaz Izanc wrote: > hi! > > anyone try siemens optipoint 400 economy SIP phone with * ? > Yes, it works pretty well and has message waiting indication. and has rfc2833 if you apply a workaround.
But you need: - Patch to replay contact address as is * usually replies his own address in contact header ... this shall be corrected by Asterisk <all-chan_sip_030524.diff> - Patch that provides a workaround for message waiting indication in rtp.c. This patch is just copied from a previous workaround for Cisco. This seems to be a problem of the OptiPoint 400. ... Siemens currently looks at the issue and may has a solution soon. <rtp.c-op400-2833-workaround.diff> in sip.conf it looks like: [3999] type=friend username=3999 host=dynamic dtmfmode=rfc2833 callerid="3999" <3999> mailbox=3999 context=SIPorig BTWY: What version has your Optipoint SIP-SW? ...mine is 1.1.4; I'm waiting for 2.0 you may call me at: SIP:[EMAIL PROTECTED] SIP:[EMAIL PROTECTED] Willi
--- ./a-cvs/asterisk/channels/chan_sip.c 2003-05-23 17:12:08.000000000 +0200 +++ ./a-wrk/asterisk/channels/chan_sip.c 2003-05-24 13:41:21.000000000 +0200 @@ -1901,7 +1901,11 @@ snprintf(contact, sizeof(contact), "%s;expires=%d", p->our_contact, p->expiry); snprintf(tmp, sizeof(tmp), "%d", p->expiry); add_header(resp, "Expires", tmp); + /*ww lwc change header to copy add_header(resp, "Contact", contact); + */ + copy_header(resp, req, "Contact"); + } else { add_header(resp, "Contact", p->our_contact); } @@ -2964,6 +2968,8 @@ char resp_hash[256]; char tmp[256] = ""; char *c; + /*ww need to check authorization headers for 'space' and ',' *z */ + char *z; char *response =""; char *resp_uri =""; @@ -3001,7 +3007,10 @@ } } else + /*ww we need to check for spaces as well c = strchr(c, ','); + */ + if ((z = strchr(c,' ')) || (z = strchr(c,','))) c=z; if (c) c++; }
--- ./a-cvs/asterisk/rtp.c 2003-05-16 04:50:46.000000000 +0200 +++ ./a-wrk/asterisk/rtp.c 2003-05-24 18:23:36.000000000 +0200 @@ -326,6 +326,12 @@ /* Comfort Noise */ f = process_rfc3389(rtp, rtp->rawdata + AST_FRIENDLY_OFFSET + hdrlen, res - hdrlen); if (f) return f; else return &null_frame; + /* OP400 payloadtype 100 */ + } else if (payloadtype == 100) { + /* Comfort Noise */ + f = process_rfc2833(rtp, rtp->rawdata + AST_FRIENDLY_OFFSET + hdrlen, res - hdrlen); + if (f) return f; else return &null_frame; + /* end OP400 */ } else { ast_log(LOG_NOTICE, "Unknown RTP codec %d received\n", payloadtype); return &null_frame;