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:3999@willi.dyndns.info
SIP:16461@fwd.pulver.com
Willi
-------------- next part --------------
--- ./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++;
}
-------------- next part --------------
--- ./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;