From 9468e5cd063550e1b6a541d8341559f3a33e83d5 Mon Sep 17 00:00:00 2001 From: Olle Johansson Date: Wed, 12 Apr 2006 21:00:31 +0000 Subject: [PATCH] Fix for Polycom bug... git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@19549 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 480d952bef..7e9300dc70 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -350,6 +350,8 @@ static const struct cfsip_options { } sip_options[] = { /* XXX used in 3 places */ /* Replaces: header for transfer */ { SIP_OPT_REPLACES, SUPPORTED, "replaces" }, + /* One version of Polycom firmware has the wrong label */ + { SIP_OPT_REPLACES, SUPPORTED, "replace" }, /* RFC3262: PRACK 100% reliability */ { SIP_OPT_100REL, NOT_SUPPORTED, "100rel" }, /* SIP Session Timers */ @@ -8167,9 +8169,13 @@ static int _sip_show_peer(int type, int fd, struct mansession *s, struct message ast_cli(fd, " Def. Username: %s\n", peer->username); ast_cli(fd, " SIP Options : "); if (peer->sipoptions) { + int lastoption = -1; for (x=0 ; (x < (sizeof(sip_options) / sizeof(sip_options[0]))); x++) { - if (peer->sipoptions & sip_options[x].id) - ast_cli(fd, "%s ", sip_options[x].text); + if (sip_options[x].id != lastoption) { + if (peer->sipoptions & sip_options[x].id) + ast_cli(fd, "%s ", sip_options[x].text); + lastoption = x; + } } } else ast_cli(fd, "(none)");