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
- 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.
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.c2003-05-23 17:12:08.0 +0200
+++ ./a-wrk/asterisk/channels/chan_sip.c2003-05-24 13:41:21.0 +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.0 +0200
+++ ./a-wrk/asterisk/rtp.c 2003-05-24 18:23:36.0 +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;