[Asterisk-Users] siemens optipoint 400 SIP

Wilhelm Wimmreuter wilhelm at wimmreuter.de
Fri May 30 06:36:51 MST 2003


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 at willi.dyndns.info
SIP:16461 at 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;


More information about the asterisk-users mailing list