aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2006-10-04 21:15:29 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2006-10-04 21:15:29 +0000
commitb0bb9cc6919118696cf00d2b02ef48924742a84f (patch)
treef0d218449dfed95dc06b18ff3b033714b33c1101
parente41a8105cfe153893fbfa78680ea6670b36d8516 (diff)
remove workaround for old Polycom firmware SUBSCRIBE requests
add workaround for new Polycom firmware SUBSCRIBE requests (bug is known to exist in 2.0.1 firmware) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@44392 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_sip.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index b5ce792c6..9c744edc7 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -10952,7 +10952,10 @@ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req,
if (!strcmp(event, "presence") || !strcmp(event, "dialog")) { /* Presence, RFC 3842 */
/* Header from Xten Eye-beam Accept: multipart/related, application/rlmi+xml, application/pidf+xml, application/xpidf+xml */
- if (strstr(accept, "application/pidf+xml")) {
+ /* don't supply pidf+xml to Polycom phones until they fix their firmware to
+ parse it properly
+ */
+ if (strstr(accept, "application/pidf+xml") && !strstr(p->useragent, "Polycom")) {
p->subscribed = PIDF_XML; /* RFC 3863 format */
} else if (strstr(accept, "application/dialog-info+xml")) {
p->subscribed = DIALOG_INFO_XML;
@@ -10961,8 +10964,6 @@ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req,
p->subscribed = CPIM_PIDF_XML; /* RFC 3863 format */
} else if (strstr(accept, "application/xpidf+xml")) {
p->subscribed = XPIDF_XML; /* Early pre-RFC 3863 format with MSN additions (Microsoft Messenger) */
- } else if (strstr(p->useragent, "Polycom")) {
- p->subscribed = XPIDF_XML; /* Polycoms subscribe for "event: dialog" but don't include an "accept:" header */
} else {
/* Can't find a format for events that we know about */
transmit_response(p, "489 Bad Event", req);