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;

Reply via email to